First step (Re: [BRAINSTORMING] simplifying maintainer's life)

Matthias Andree matthias.andree at gmx.de
Fri Sep 5 16:34:40 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 05.09.2014 um 10:19 schrieb Baptiste Daroussin:
> After the discussion that happened here is what I think we should do
> If no stong objections are raised thise this will happen in pkg 1.3.8
> 
> - Ignore mtree in packages
> - Automatically handle directory removal for any directory under PREFIX
> - Introduce @dir (in fact already there) for directories with special care:
>   * empty directories
>   * directories with special credential (@dir(user,group,mode))
> - Consider directories out of PREFIX as special hence needing to be listed with
>   @dir
> 
> @dirrmtry and @dirrm will be considered changed into aliases for @dir but remain
> for compatibility (with a warning if DEVELOPER_MODE is set)

Is pkg now ready to reference-count multiple packages referencing the
same directory?

> 
> - the possibility to accept regular plist entry as directories will be in but
>   disable by default, allowing vendors to rely on it if they do want but leaving
>   the ports tree not accepting them (that clarifies a lot what the the plist for
>   maintainers)

I strongly object to this part, and request that such dead code not be
added to pkg.  This is a gratuitious change, for "vendors" that as of
now are phantoms (lack a particular use case), and, as written before,
it voids error checking on the file type, and dead code is usually
buggier than used code because noone sees the bugs until the code is
enabled (but not properly reintegrated) years later.

The use case why we need the distinction is the common error
if a maintainer forgets the mkdir in the {pre,do,post}-install: target,
and the install path lacks the trailing slash, then packaging will no
longer fail.

Example:

post-install:
	${INSTALL_DATA} blah/something ${STAGEDIR}${DOCSDIR}/blah

This will rename something to blah while installing into ${DOCSDIR},
rather than installing "something" into ${DOCSDIR}/blah/.

Especially with make makeplist or auto-plist rigs, this is bound to
fail, and sit undiscovered for a while.

If the distinction between directory and other file types remains
explicit and mandatory, these errors are much harder to find.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlQJ4wIACgkQvmGDOQUufZU+ZwCggmcsS2yyo761R8X3a9xUHnm7
/yYAn0L3wvhqQYR21uTedLTco3sAXxvt
=NJdy
-----END PGP SIGNATURE-----


More information about the freebsd-ports mailing list