Message ID | 20230215012034.403356-7-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v6,01/12] kbuild: add a tool to list files ignored by git | expand |
On Wed, Feb 15, 2023 at 10:20:29AM +0900 Masahiro Yamada wrote: > Change the source format from "1.0" to "3.0 (quilt)" because it works > more cleanly. > > All files except .config and debian/ go into the orig tarball. > Add a single patch, debian/patches/config, and delete the ugly > extend-diff-ignore patterns. > > The debian tarball will be compressed into *.debian.tar.xz by default. > If you like to use a different compression mode, you can pass the > command line option, DPKG_FLAGS=-Zgzip, for example. > > The orig tarball only supports gzip for now. The combination of > gzip and xz is somewhat clumsy, but it is not a practical problem. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- Thanks, that switch to 3.0/quilt sounds really good to me. > > Changes in v6: > - Fix error when KCONFIG_CONFIG is set > > Changes in v4: > - New patch > > scripts/Makefile.package | 2 +- > scripts/package/mkdebian | 41 ++++++++++++++++++---------------------- > 2 files changed, 19 insertions(+), 24 deletions(-) > > diff --git a/scripts/Makefile.package b/scripts/Makefile.package > index 80a96eb61426..5538deacb136 100644 > --- a/scripts/Makefile.package > +++ b/scripts/Makefile.package > @@ -105,7 +105,7 @@ debian-orig: linux.tar.gz debian > PHONY += deb-pkg > deb-pkg: debian-orig > +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) $(DPKG_FLAGS) \ > - --build=source,binary --source-option=-sP -nc -us -uc > + --build=source,binary -nc -us -uc > > PHONY += bindeb-pkg > bindeb-pkg: debian > diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian > index 534e9713761a..22fc73a5e4f2 100755 > --- a/scripts/package/mkdebian > +++ b/scripts/package/mkdebian > @@ -135,29 +135,24 @@ else > fi > > mkdir -p debian/source/ > -echo "1.0" > debian/source/format > - > -# Ugly: ignore anything except .config or debian/ > -cat<<'EOF' > debian/source/local-options > -diff-ignore > - > -extend-diff-ignore = ^[^.d] > - > -extend-diff-ignore = ^\.[^c] > -extend-diff-ignore = ^\.c($|[^o]) > -extend-diff-ignore = ^\.co($|[^n]) > -extend-diff-ignore = ^\.con($|[^f]) > -extend-diff-ignore = ^\.conf($|[^i]) > -extend-diff-ignore = ^\.confi($|[^g]) > -extend-diff-ignore = ^\.config. > - > -extend-diff-ignore = ^d($|[^e]) > -extend-diff-ignore = ^de($|[^b]) > -extend-diff-ignore = ^deb($|[^i]) > -extend-diff-ignore = ^debi($|[^a]) > -extend-diff-ignore = ^debia($|[^n]) > -extend-diff-ignore = ^debian[^/] > -EOF > +echo "3.0 (quilt)" > debian/source/format > + > +{ > + echo "diff-ignore" > + echo "extend-diff-ignore = .*" > +} > debian/source/local-options > + > +# Add .config as a patch > +mkdir -p debian/patches > +{ > + echo "Subject: Add .config" > + echo "Author: ${maintainer}" > + echo > + echo "--- /dev/null" > + echo "+++ linux/.config" bike-shedding: cat <<-eof Subject: Add .config Author: ${maintainer} --- /dev/null +++ linux/.config eof > + diff -u /dev/null "${KCONFIG_CONFIG}" | tail -n +3 > +} > debian/patches/config > +echo config > debian/patches/series > > echo $debarch > debian/arch > extra_build_depends=", $(if_enabled_echo CONFIG_UNWINDER_ORC libelf-dev:native)" > -- > 2.34.1 Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
On Sat, Feb 25, 2023 at 7:48 AM Nicolas Schier <nicolas@fjasle.eu> wrote: > > bike-shedding: > > cat <<-eof > Subject: Add .config > Author: ${maintainer} > > --- /dev/null > +++ linux/.config > eof I agree this is more readable, but I used echo to avoid a process fork. 'echo' is a shell built-in for bash and dash but 'cat' is not. So, this is a trade-off between readability vs one less process fork. If the code were much longer, I would prefer 'cat'. > > > + diff -u /dev/null "${KCONFIG_CONFIG}" | tail -n +3 > > +} > debian/patches/config > > +echo config > debian/patches/series > > > > echo $debarch > debian/arch > > extra_build_depends=", $(if_enabled_echo CONFIG_UNWINDER_ORC libelf-dev:native)" > > -- > > 2.34.1 > > Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> -- Best Regards Masahiro Yamada
diff --git a/scripts/Makefile.package b/scripts/Makefile.package index 80a96eb61426..5538deacb136 100644 --- a/scripts/Makefile.package +++ b/scripts/Makefile.package @@ -105,7 +105,7 @@ debian-orig: linux.tar.gz debian PHONY += deb-pkg deb-pkg: debian-orig +dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) $(DPKG_FLAGS) \ - --build=source,binary --source-option=-sP -nc -us -uc + --build=source,binary -nc -us -uc PHONY += bindeb-pkg bindeb-pkg: debian diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian index 534e9713761a..22fc73a5e4f2 100755 --- a/scripts/package/mkdebian +++ b/scripts/package/mkdebian @@ -135,29 +135,24 @@ else fi mkdir -p debian/source/ -echo "1.0" > debian/source/format - -# Ugly: ignore anything except .config or debian/ -cat<<'EOF' > debian/source/local-options -diff-ignore - -extend-diff-ignore = ^[^.d] - -extend-diff-ignore = ^\.[^c] -extend-diff-ignore = ^\.c($|[^o]) -extend-diff-ignore = ^\.co($|[^n]) -extend-diff-ignore = ^\.con($|[^f]) -extend-diff-ignore = ^\.conf($|[^i]) -extend-diff-ignore = ^\.confi($|[^g]) -extend-diff-ignore = ^\.config. - -extend-diff-ignore = ^d($|[^e]) -extend-diff-ignore = ^de($|[^b]) -extend-diff-ignore = ^deb($|[^i]) -extend-diff-ignore = ^debi($|[^a]) -extend-diff-ignore = ^debia($|[^n]) -extend-diff-ignore = ^debian[^/] -EOF +echo "3.0 (quilt)" > debian/source/format + +{ + echo "diff-ignore" + echo "extend-diff-ignore = .*" +} > debian/source/local-options + +# Add .config as a patch +mkdir -p debian/patches +{ + echo "Subject: Add .config" + echo "Author: ${maintainer}" + echo + echo "--- /dev/null" + echo "+++ linux/.config" + diff -u /dev/null "${KCONFIG_CONFIG}" | tail -n +3 +} > debian/patches/config +echo config > debian/patches/series echo $debarch > debian/arch extra_build_depends=", $(if_enabled_echo CONFIG_UNWINDER_ORC libelf-dev:native)"
Change the source format from "1.0" to "3.0 (quilt)" because it works more cleanly. All files except .config and debian/ go into the orig tarball. Add a single patch, debian/patches/config, and delete the ugly extend-diff-ignore patterns. The debian tarball will be compressed into *.debian.tar.xz by default. If you like to use a different compression mode, you can pass the command line option, DPKG_FLAGS=-Zgzip, for example. The orig tarball only supports gzip for now. The combination of gzip and xz is somewhat clumsy, but it is not a practical problem. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- Changes in v6: - Fix error when KCONFIG_CONFIG is set Changes in v4: - New patch scripts/Makefile.package | 2 +- scripts/package/mkdebian | 41 ++++++++++++++++++---------------------- 2 files changed, 19 insertions(+), 24 deletions(-)