[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <odiitinwxck2dc6jori4iakp6hwqnnguk2ar6dvmbo6ugrt7nz@h65drwkv374s>
Date: Mon, 5 Aug 2024 21:26:58 -0600
From: Jose Fernandez <jose.fernandez@...ux.dev>
To: Nathan Chancellor <nathan@...nel.org>
Cc: Thomas Weißschuh <linux@...ssschuh.net>,
Masahiro Yamada <masahiroy@...nel.org>, Nicolas Schier <nicolas@...sle.eu>,
Christian Heusel <christian@...sel.eu>, Peter Jung <ptr1337@...hyos.org>, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] kbuild: control extra pacman packages with
PACMAN_EXTRAPACKAGES
On 24/08/05 07:58PM, Nathan Chancellor wrote:
> On Mon, Aug 05, 2024 at 04:30:15PM -0600, Jose Fernandez wrote:
> > On 24/08/05 04:01PM, Thomas Weißschuh wrote:
> > > > This changes the behavior of the pacman-pkg target to only create the
> > > > main kernel package by default. The rest of the packages will be opt-in
> > > > going forward.
> > >
> > > I had the impression that by default all extrapackages should be
> > > built. The variable can then be used by expert users where needed.
> > > Other Opinions?
> >
> > I think switching to defaulting to all packages is a good idea. One concern I
> > had was how regular users would discover the customization options. Expert users
> > will likely look at the Makefile and figure out how to opt out.
>
> I think that most users will likely want all of the packages built by
> default. I think leaving this to be discovered by power users in the
> Makefile is reasonable.
Sounds good!
> > > > In a previous patch, there was concern that adding a new debug package
> > > > would increase t.he package time. To address this concern and provide
> > > > more flexibility, this change has been added to allow users to decide
> > > > which extra packages to include before introducing an optional debug
> > > > package [1].
> > >
> > > This paragraph seems like it shouldn't be part of the final commit.
> > > If you put it after a line with "---" it will be dropped from the
> > > commit, like so:
> > >
> > > ---
> > >
> > > In a previous patch, ...
> >
> > Agreed, I will move this paragraph to below --- for v2.
> >
> > >
> > > >
> > > > [1] https://lore.kernel.org/lkml/20240801192008.GA3923315@thelio-3990X/T/
> > > >
> > > > Signed-off-by: Jose Fernandez <jose.fernandez@...ux.dev>
> > > > Reviewed-by: Peter Jung <ptr1337@...hyos.org>
> > > > ---
> > > > scripts/Makefile.package | 5 +++++
> > > > scripts/package/PKGBUILD | 11 ++++++++---
> > > > 2 files changed, 13 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/scripts/Makefile.package b/scripts/Makefile.package
> > > > index 4a80584ec771..146e828cb4f1 100644
> > > > --- a/scripts/Makefile.package
> > > > +++ b/scripts/Makefile.package
> > > > @@ -144,6 +144,10 @@ snap-pkg:
> > > > # pacman-pkg
> > > > # ---------------------------------------------------------------------------
> > > >
> > > > +# Space-separated list of extra packages to build
> > > > +# The available extra packages are: headers api-headers
> > > > +PACMAN_EXTRAPACKAGES ?=
> > >
> > > The assignment doesn't do anything.
> > > Do we need the documentation if the default enables all subpackages?
> > >
> > > > +
> > > > PHONY += pacman-pkg
> > > > pacman-pkg:
> > > > @ln -srf $(srctree)/scripts/package/PKGBUILD $(objtree)/PKGBUILD
> > > > @@ -152,6 +156,7 @@ pacman-pkg:
> > > > CARCH="$(UTS_MACHINE)" \
> > > > KBUILD_MAKEFLAGS="$(MAKEFLAGS)" \
> > > > KBUILD_REVISION="$(shell $(srctree)/scripts/build-version)" \
> > > > + PACMAN_EXTRAPACKAGES="$(PACMAN_EXTRAPACKAGES)" \
> > >
> > > This line is superfluous.
> >
> > Ack.
>
> Is it superfluous if PACMAN_EXTRAPACKAGES is not exported to makepkg? If
> I remove this while changing the default of PACMAN_EXTRAPACKAGES in
> scripts/Makefile.package, its value is not visible in makepkg, so only
> the default package gets built. I think
>
> export PACMAN_EXTRAPACKAGES
>
> is needed after the '?=' assignment line.
Nathan, I removed the line and it appears to work as expected.
If I set the default packages to:
PACMAN_EXTRAPACKAGES ?= headers api-headers
Then any of these commands builds only the main kernel package:
make pacman-pkg PACMAN_EXTRAPACKAGES=
make pacman-pkg PACMAN_EXTRAPACKAGES=""
This command builds the main package + headers package:
make pacman-pkg PACMAN_EXTRAPACKAGES="headers"
I'm not quite sure how PACMAN_EXTRAPACKAGES makes it to makepkg without that
line. But it appears like it does.
>
> > > > makepkg $(MAKEPKGOPTS)
> > > >
> > > > # dir-pkg tar*-pkg - tarball targets
> > > > diff --git a/scripts/package/PKGBUILD b/scripts/package/PKGBUILD
> > > > index 663ce300dd06..41bd0d387f0a 100644
> > > > --- a/scripts/package/PKGBUILD
> > > > +++ b/scripts/package/PKGBUILD
> > > > @@ -3,10 +3,15 @@
> > > > # Contributor: Jan Alexander Steffens (heftig) <heftig@...hlinux.org>
> > > >
> > > > pkgbase=${PACMAN_PKGBASE:-linux-upstream}
> > > > -pkgname=("${pkgbase}" "${pkgbase}-api-headers")
> > > > -if grep -q CONFIG_MODULES=y include/config/auto.conf; then
> > > > - pkgname+=("${pkgbase}-headers")
> > > > +pkgname=("${pkgbase}")
> > > > +
> > > > +_extrapackages=${PACMAN_EXTRAPACKAGES:-}
> > > > +if [ -n "$_extrapackages" ]; then
> > >
> > > No need for this check. The loop over an empty variable work fine.
> >
> > Ack. Will update in v2.
> >
> > > > + for pkg in $_extrapackages; do
> > > > + pkgname+=("${pkgbase}-$pkg")
> > >
> > > Use consistent variable references: "${pkgbase}-${pkg}"
> >
> > Ack. Will update in v2.
> >
> > > > + done
> > > > fi
> > > > +
> > > > pkgver="${KERNELRELEASE//-/_}"
> > > > # The PKGBUILD is evaluated multiple times.
> > > > # Running scripts/build-version from here would introduce inconsistencies.
> > > > --
> > > > 2.46.0
> > > >
Powered by blists - more mailing lists