Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jul 2021 13:35:31 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>, ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   Re: git: e497a16a2869 - main - ports-mgmt/pkg*: Release 1.17.0
Message-ID:  <f5d0be1a-7f7c-7dd5-61d0-f88328847722@FreeBSD.org>
In-Reply-To: <202107220806.16M862GC052436@gitrepo.freebsd.org>
References:  <202107220806.16M862GC052436@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--nsmZJgTixvE5apZr2PukrsjEEKaBgTsF5
Content-Type: multipart/mixed; boundary="nRYNoTKFcD9sCdzZnSHJMTAMrbHfLLWPI";
 protected-headers="v1"
From: Bryan Drewery <bdrewery@FreeBSD.org>
To: Baptiste Daroussin <bapt@FreeBSD.org>, ports-committers@FreeBSD.org,
 dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Message-ID: <f5d0be1a-7f7c-7dd5-61d0-f88328847722@FreeBSD.org>
Subject: Re: git: e497a16a2869 - main - ports-mgmt/pkg*: Release 1.17.0
References: <202107220806.16M862GC052436@gitrepo.freebsd.org>
In-Reply-To: <202107220806.16M862GC052436@gitrepo.freebsd.org>

--nRYNoTKFcD9sCdzZnSHJMTAMrbHfLLWPI
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

On 7/22/2021 1:06 AM, Baptiste Daroussin wrote:
> The branch main has been updated by bapt:
>=20
> URL: https://cgit.FreeBSD.org/ports/commit/?id=3De497a16a286972bfcab908=
209b11ee6a13d99dc9
>=20
> commit e497a16a286972bfcab908209b11ee6a13d99dc9
> Author:     Baptiste Daroussin <bapt@FreeBSD.org>
> AuthorDate: 2021-07-22 07:54:38 +0000
> Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
> CommitDate: 2021-07-22 08:05:59 +0000
>=20
>     ports-mgmt/pkg*: Release 1.17.0
>    =20
>     TL;DR: new uniq package file extension: '.pkg'
>    =20
>     Full changelog for pkg:
>     - add a new "snap" prefix, to deal with pkg base snapshots
>     - pkg repo now accepts packages with different compression formats
>     - pkg now have a single extension: ".pkg" and a backward compatible=

>       symlink is created when the package is created to help transition=
ing
>     - Default compression level for zstd is now set to 19
>     - the default compression level is now a configuration option
>     - plenty of portability fixes
>     - fix plenty of typos
>     - expose the name of the package to lua and shell scripts
>     - plist:
>       remove internal support for @*exec (this is now in the ports tree=
)
>       remove support for @ignore
>       remove support for @dirrm/@dirrmtry
>       remove support for @pkgdep
>       remove stub support for @stopdaemon
>       remove stub support for @display
>       remove stub support for @mtree
>       remove stub support for @conflict
>     - VUXML: fetch .xz compressed version of the file by default
>     - triggers are deferred to later command (firstboot is planned) if =
run
>       with pkg -r
>     - pkg triggers commands has been added and can execute the deferred=

>       triggers for example at firstboot
>    =20
>     Changes in the framework:
>     - Add a backward compatibility layer, so people are not forced to m=
ove
>       to pkg 1.17 yet (new quarter we will enforce the switch for trigg=
ers
>       anyway, but it gives time to people to switch)
>     - Introduce a new PKG_COMPRESSION_FORMAT for users to specify the
>       compression format they are willing to use when creating packages=
:
>       txz, tar, tgz, tbz, tzst are the valid ones (note that tzst is on=
ly
>       usable on FreeBSD 13 and 14)
>     - Add a backward compatibility for people who specified the compres=
sion
>       format already via PKG_SUFX and issue a warning to tell them abou=
t the
>       deprecation of PKG_SUFX
> ---
>  Mk/bsd.port.mk                | 58 +++++++++++++++++++++++------------=
--------
>  ports-mgmt/pkg-devel/Makefile |  4 +--
>  ports-mgmt/pkg-devel/distinfo |  6 ++---
>  ports-mgmt/pkg/Makefile       |  2 +-
>  ports-mgmt/pkg/distinfo       |  6 ++---
>  5 files changed, 40 insertions(+), 36 deletions(-)
>=20
> diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
> index 228644a1845f..5eba5d89da95 100644
> --- a/Mk/bsd.port.mk
> +++ b/Mk/bsd.port.mk
> @@ -1211,6 +1211,14 @@ _OSVERSION_MAJOR=3D	${OSVERSION:C/([0-9]?[0-9])(=
[0-9][0-9])[0-9]{3}/\1/}
>  .if !defined(_PKG_VERSION)
>  _PKG_VERSION!=3D	${PKG_BIN} -v
>  .endif
> +# XXX hack for smooth transition towards pkg 1.17
> +_PKG_BEFORE_PKGEXT!=3D ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} =
1.17.0
> +.if ${_PKG_BEFORE_PKGEXT} =3D=3D "<"
> +_PKG_TRANSITIONING_TO_NEW_EXT=3D	yes
> +_EXPORTED_VARS+=3D	_PKG_TRANSITIONING_TO_NEW_EXT
> +.warning "It is strongly recommanded to upgrade to a newer vertion of =
pkg first"
> +.endif
> +# XXX End of hack
>  _PKG_STATUS!=3D	${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} ${MINIM=
AL_PKG_VERSION}
>  .if ${_PKG_STATUS} =3D=3D "<"
>  IGNORE=3D		pkg(8) must be version ${MINIMAL_PKG_VERSION} or greater, b=
ut you have ${_PKG_VERSION}. You must upgrade the ${PKG_ORIGIN} port firs=
t
> @@ -2227,23 +2235,29 @@ _PKGMESSAGES+=3D	${PKGMESSAGE}
> =20
>  TMPPLIST?=3D	${WRKDIR}/.PLIST.mktmp
> =20
> -.if ${WITH_PKG} =3D=3D devel
> -PKG_SUFX?=3D	.pkg
> +# backward compatibility for users
> +.if defined(_PKG_TRANSITIONING_TO_NEW_EXT)
>  .if defined(PKG_NOCOMPRESS)
> -PKG_OLDSUFX?=3D	.tar
> +PKG_SUFX?=3D	.tar
>  .else
> -#.if ${OSVERSION} > 1400000
> -#PKG_OLDSUFX?=3D	.tzst
> -#.else
> -PKG_OLDSUFX?=3D	.txz
> -#.endif
> +PKG_SUFX?=3D	.txz
>  .endif
> +PKG_COMPRESSION_FORMAT?=3D	${PKG_SUFX:S/.//}
>  .else
> +.if defined(PKG_SUFX)
> +PKG_COMPRESSION_FORMAT?=3D	${PKG_SUFX:S/.//}
> +.warning PKG_SUFX is defined, if should be replace with PKG_COMPRESSIO=
N_FORMAT
> +.endif
> +PKG_SUFX=3D	.pkg
> +.endif

I love the idea here but can this be reverted for now please? Poudriere
is not prepared for a default PKG_EXT change.

1. Now that it finds a new PKG_EXT of .pkg, it cannot find the existing
bootstrap pkg.txz because it looks for Latest/pkg.pkg ->
=2E./All/pkg-*.pkg even though the *existing* one is .txz. I'm not sure
how this symlink is added before pkg is even built but it's not done in
a compatible way.

2. The new PKG_EXT makes Poudriere now find no existing packages so
everything is rebuilt. Not a deal breaker in itself but a problem for
future builds...

3. The rebuild won't remove all the .txz files. I assume once `pkg repo`
runs it will find both .txz and .pkg files and cause duplicate version
problems in `pkg repo`

I see something creates a .txz -> .pkg symlink. What deles that symlink
if Poudriere only deletes/rebuilds the .pkg?

***
"all those .txz entries are actually _duplicates_ in packagesite.yaml"
seen on IRC just now by someone.
I can confirm that looking in a packagesite.yaml I just generated. Both
the older .txz version of a port and a new revision-bumped one appear in
the yaml.
***

4. I've seen reports of packagesite.pkg which is concerning because
Poudriere manages packagesite.txz with its own symlinks for
hardlink-copied repositories. It does not use PKG_EXT there as they
weren't packages, but I suspect we need special handling even with
PKG_EXT added there.

--=20
Regards,
Bryan Drewery


--nRYNoTKFcD9sCdzZnSHJMTAMrbHfLLWPI--

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

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEE+Rc8ssOq6npcih8JNddxu25Gl88FAmD8eZMFAwAAAAAACgkQNddxu25Gl8/B
WQf9HJJqdjja0GN9LUnHBiS+sWcejG4EK1JJ70NM+VtSRS23EVU8TLzDq076YB+KdC0XjJkyJF7t
m0uLEuY2Bi8vhuA7Gq3VN7kPwlifCra82Um7BaRD2/nH+Tkozna/HPNIxR/Fqo2VR+rWFuZVkDaO
1X8txE+s1MqCtk8cGTJv4E2ZkyLID8BUNf6K7MVijo7na3Exw4GOzHslG++lJjWAYbMd3HuBwlXl
8MTDwCDC5mrSRPffhQc4t+gjurpkPRenGoty7Zgn65MsOjQMLPpbmZstFTF6vAjy1yJylKd4ggZK
2Rl79vkZQyBxD8ImYeBKD3WyGLVA2/hZQ77d3SQzqg==
=QU2U
-----END PGP SIGNATURE-----

--nsmZJgTixvE5apZr2PukrsjEEKaBgTsF5--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f5d0be1a-7f7c-7dd5-61d0-f88328847722>