Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Mar 2014 13:11:41 -0500
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Adam Weinberger <adamw@adamw.org>
Cc:        Mathieu Arnold <mat@FreeBSD.org>, svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r348866 - head/ports-mgmt/poudriere-devel
Message-ID:  <532F23DD.5020008@FreeBSD.org>
In-Reply-To: <BA78CE46-49AC-4895-8EEA-973DADA0F8DB@adamw.org>
References:  <201403231540.s2NFeBjV061182@svn.freebsd.org> <9753239EA269BEFE3D11835F@atuin.in.mat.cc> <532F08B7.8010602@FreeBSD.org> <79C5E9B2B1255838D240E362@atuin.in.mat.cc> <532F09E2.6090309@FreeBSD.org> <BA78CE46-49AC-4895-8EEA-973DADA0F8DB@adamw.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--5rxogObxpp3bunXr0SG9AfPcEIwrTD5ts
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 3/23/2014 12:49 PM, Adam Weinberger wrote:
> On 23 Mar 2014, at 12:20, Bryan Drewery wrote:
>=20
>> On 3/23/2014 11:18 AM, Mathieu Arnold wrote:
>>>
>>>
>>> +--On 23 mars 2014 11:15:51 -0500 Bryan Drewery <bdrewery@FreeBSD.org=
>
>>> wrote:
>>> | On 3/23/2014 11:11 AM, Mathieu Arnold wrote:
>>> |> +--On 23 mars 2014 15:40:11 +0000 Bryan Drewery
>>> <bdrewery@FreeBSD.org>
>>> |> wrote:
>>> |> |  .include <bsd.port.options.mk>
>>> |> |
>>> |> | +post-install:
>>> |> |  .if ${PORT_OPTIONS:MZSH}
>>> |> | -PLIST_FILES+=3D    share/zsh/site-functions/_poudriere
>>> |> | -PLIST_DIRSTRY+=3D    share/zsh/site-functions
>>> |> | -PLIST_DIRSTRY+=3D    share/zsh/
>>> |> | -.else
>>> |> | -MAKE_ENV+=3D    NO_ZSH=3Dyes
>>> |> | +    @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>> |> | +    ${INSTALL_DATA} ${WRKSRC}/completions/zsh/_poudriere \
>>> |> | +        ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>> |> |  .endif
>>> |>
>>> |> I think you could do without the include and always install the fi=
le.
>>> |>
>>> |
>>> | What?
>>>
>>> Replace:
>>>
>>> .include <bsd.port.options.mk>
>>>
>>> post-install:
>>> .if ${PORT_OPTIONS:MZSH}
>>>       @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>>       ${INSTALL_DATA} ${WRKSRC}/completions/zsh/_poudriere \
>>>           ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>> .endif
>>>
>>> With:
>>>
>>> post-install:
>>>       @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>>       ${INSTALL_DATA} ${WRKSRC}/completions/zsh/_poudriere \
>>>           ${STAGEDIR}${PREFIX}/share/zsh/site-functions/
>>>
>>> The package won't register the file if the option is disabled, and it=

>>> removes the need for make to parse bsd.port.mk twice.
>>>
>>
>> And then there is a stage orphan.
>>
>> No.
>=20
> Staging only installs things listed in the plist. If the ZSH option is
> enabled, that file is in the plist. Stage orphans are files that never
> get installed, no matter which options are selected.

Right, there are no *leftovers*, but there are *orphans*. Files which
are in stagedir and never installed. I invented the whole idea of stage
orphans and checking for them in poudriere, before it was a target in
ports. Installing a file to the stagedir and never installing in the
package creates a fatal error in poudriere as an orphan. Leaving
false-positive orphans creates a very hard to maintain situation.
Someone will come along in the future and update, see orphans, and not
know if they are new or not. The point is to find files you forgot to
add to the plist.

Sorry but the stagedir cannot have orphans in it, it's not intended for
that. It's intended to make leftovers impossible and allow packaging as
non-root. Leaving untracked files in there is a big red flag that your
package is missing something. You must handle them either by not
installing them or by removing them.

People are missing this point. You must keep the stagedir clean if you
want to pass poudriere testing. Many people have been giving incorrect
advice on how to treat the stagedir and it's going to be a big problem
once we start doing daily QAT/poudriere on the tree to find leftovers
and orphans. Right now orphans are going unfound because QAT/tinderbox
doesn't check for orphans. That is a big problem right now. When staging
a port, you now have no idea if there are files missing from plist if
you are depending on QAT.

I really wish people would stop giving the awfully incorrect advice
here. People are making it into some kind of style or opinion matter,
but it's simply not the case.

There are ideas and plans to only consider an orphan as something that
is not in any plist (for subpackages), but we don't have subpackages
yet. So we are left with keeping the stagedir clean.

--=20
Regards,
Bryan Drewery


--5rxogObxpp3bunXr0SG9AfPcEIwrTD5ts
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTLyPdAAoJEDXXcbtuRpfPEk0H/1vpIakLLYbNan3juif4wYEI
gw3I75XvrwD+g8sBm25GO9RscisBiYcRGiDRT4e4x4RtBzTtsCawAoabpZpb/vft
DxocrpxiUoO1A5iiaFrxNJEQ0ePmWqGH3PvYlhthp5zKezAQ3Fa3l77z79GeNTsW
zdTQtifc7BT5hO1zacTa5yLHUktt817sicsZWSF0gTzvRh+xO4L0ZHje0SD7Sjth
hnn42ADDvac6GJ8ZI3qzNbNjCjNUW8ZrQDPmVgVlWmFWr6rCryjw210fIPMvu1UN
YMWASnqbg9eWJuojykqMjg6urI150lJx7aVWMUpTk62K9GvyLQ+cjvP0xsNio10=
=xNQO
-----END PGP SIGNATURE-----

--5rxogObxpp3bunXr0SG9AfPcEIwrTD5ts--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?532F23DD.5020008>