Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Mar 2014 08:51:43 -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:  <5336CFEF.5080400@FreeBSD.org>
In-Reply-To: <893AE220-E1DA-4F3A-93E1-D7820B3C5FC4@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> <532F23DD.5020008@FreeBSD.org> <893AE220-E1DA-4F3A-93E1-D7820B3C5FC4@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)
--5WUrjuLI88AkjqGmvdQP3Dd9MJwJvL9SQ
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 3/23/2014 1:31 PM, Adam Weinberger wrote:
> On 23 Mar 2014, at 14:11, Bryan Drewery wrote:
>=20
>> On 3/23/2014 12:49 PM, Adam Weinberger wrote:
>>> On 23 Mar 2014, at 12:20, Bryan Drewery wrote:
>>>
>>>> On 3/23/2014 11:18 AM, Mathieu Arnold wrote:
>>>>>
>>>>>
>>>>> +--On 23 mars 2014 11:15:51 -0500 Bryan Drewery <bdrewery@FreeBSD.o=
rg>
>>>>> 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
>>>>> file.
>>>>> |>
>>>>> |
>>>>> | 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.
>>>
>>> Staging only installs things listed in the plist. If the ZSH option i=
s
>>> enabled, that file is in the plist. Stage orphans are files that neve=
r
>>> 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 stag=
e
>> 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 fo=
r
>> that. It's intended to make leftovers impossible and allow packaging a=
s
>> 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 stagi=
ng
>> 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
> The ability to dramatically simply a port's Makefile and let simple
> plist %%OPTIONS%% figure out the rest is an incredibly powerful, useful=
,
> and advantageous thing. I am having trouble understanding why we should=

> give it all up so "to pass poudriere testing." Ports work perfectly
> right now. They install exactly what we intend them to install, and it
> works perfectly for users. If poudriere is unhappy, then it seems to me=

> that the problem is with poudriere.
>=20
> Maybe it wasn't how you originally envisioned that staging would work.
> But people have adopted it not because of "awfully incorrect advice,"
> but because that's how we want it to work.
>=20
> Hitachi doesn't recall Magic Wands just because they wanted a back
> massager.

I also want it work like that. However, having false-positives leads to
ignoring them entirely and causing breakage.

I am working to merge the poudriere and check-orphans script into
check-orphans, enable in tinderbox, and also cleanup EXAMPLES/DOCS
false-positives with check-orphans.

I also have work in progress for a way to mark files as explicitly
ignored so they stop showing in orphans.

>=20
> # Adam
>=20
>=20
> --=20
> Adam Weinberger
> adamw@adamw.org
> http://www.adamw.org


--=20
Regards,
Bryan Drewery


--5WUrjuLI88AkjqGmvdQP3Dd9MJwJvL9SQ
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/

iQEcBAEBAgAGBQJTNs/vAAoJEDXXcbtuRpfPxUEIAMOTuV5R7CKOyFNni9/X3PXn
8JunaoETr68RQLysR9scRPzxc09SrPaOlQIfNf99ptXY0u5ThEhDiAJ8oP8diGyE
R1fYmLzchA7XpAdMkchsyUvFj32zPKp614Ycq3CMMF2akY7ZUUSS8yWatGc7bn2u
K0Fbpo1iy1ceKF4jSbz4ArwK8vTZJnV66u6JjAdeVIayxDL4cObRijNKbbh9iqCs
NKEboJCsHcQPOtsZHUTG0qSbDwyTFYCn89giaRyznmTi8Q9nm1eAcFKWyAwlFEH0
Wb8OhPHUa+UyTdVywiJf3cj8j4CrkNvoAyoC19Vn4yQl3bvlMRou3y6vdcSBp48=
=qepw
-----END PGP SIGNATURE-----

--5WUrjuLI88AkjqGmvdQP3Dd9MJwJvL9SQ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5336CFEF.5080400>