diff options
Diffstat (limited to 'meta/recipes-devtools/dpkg')
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg.inc | 57 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch | 39 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch | 53 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch | 23 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch | 68 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch | 27 | ||||
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg_1.20.9.bb (renamed from meta/recipes-devtools/dpkg/dpkg_1.19.7.bb) | 15 |
7 files changed, 229 insertions, 53 deletions
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc index 1c3c585d79..b6807b004f 100644 --- a/meta/recipes-devtools/dpkg/dpkg.inc +++ b/meta/recipes-devtools/dpkg/dpkg.inc @@ -1,20 +1,22 @@ SUMMARY = "Package maintenance system from Debian" LICENSE = "GPLv2.0+" +HOMEPAGE = "https://salsa.debian.org/dpkg-team/dpkg" +DESCRIPTION = "The primary interface for the dpkg suite is the dselect program. A more low-level and less user-friendly interface is available in the form of the dpkg command." SECTION = "base" DEPENDS = "zlib bzip2 perl ncurses" -DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native" -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} perl" -RDEPENDS_${PN}_class-native = "" +DEPENDS:class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native" +RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_update-alternatives} perl" +RDEPENDS:${PN}:class-native = "" -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/" +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" inherit autotools gettext perlnative pkgconfig perl-version update-alternatives -PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" +PERL:class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}" -PERL_LIBDIR_class-native = "${libdir}/perl-native/perl/${@get_perl_version(d)}" +PERL_LIBDIR:class-native = "${libdir}/perl-native/perl/${@get_perl_version(d)}" EXTRA_OECONF = "\ --disable-dselect \ @@ -25,34 +27,48 @@ EXTRA_OECONF = "\ TAR=tar \ " -EXTRA_OECONF_append_class-target = " --disable-update-alternatives DEB_HOST_ARCH=${DPKG_ARCH}" +EXTRA_OECONF:append:class-target = " --disable-update-alternatives DEB_HOST_ARCH=${DPKG_ARCH}" +EXTRA_OECONF:append:class-nativesdk = " --disable-update-alternatives DEB_HOST_ARCH=${DPKG_ARCH}" PACKAGECONFIG = "liblzma" PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" -do_install_append () { + +#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux +AUTOTOOLS_AUXDIR = "${S}/build-aux" + +do_configure:prepend () { + mkdir -p ${AUTOTOOLS_AUXDIR} + # autotools_do_configure updates po/Makefile.in.in, we also need + # update dselect/po and scripts/po + cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/dselect/po/ + cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/scripts/po/ +} + +do_install:append () { if [ "${PN}" = "dpkg-native" ]; then # update-alternatives doesn't have an offline mode rm ${D}${bindir}/update-alternatives - sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env nativeperl|' ${D}${bindir}/dpkg-* + sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env nativeperl|' ${D}${bindir}/dpkg-* else - sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-* + sed -i -e 's|^#!.*${STAGING_BINDIR_NATIVE}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-* fi } PROV = "virtual/update-alternatives" -PROV_class-native = "" +PROV:class-native = "" +PROV:class-nativesdk = "" PROVIDES += "${PROV}" PACKAGES =+ "update-alternatives-dpkg" -FILES_update-alternatives-dpkg = "${bindir}/update-alternatives ${localstatedir}/lib/dpkg/alternatives ${sysconfdir}/alternatives" -RPROVIDES_update-alternatives-dpkg += "update-alternatives" +FILES:update-alternatives-dpkg = "${bindir}/update-alternatives ${localstatedir}/lib/dpkg/alternatives ${sysconfdir}/alternatives" +RPROVIDES:update-alternatives-dpkg += "update-alternatives" PACKAGES += "${PN}-perl" -FILES_${PN}-perl = "${libdir}/perl/${@get_perl_version(d)}" +FILES:${PN}-perl = "${libdir}/perl/${@get_perl_version(d)}" -RDEPENDS_${PN}-perl += "perl-module-carp perl-module-constant \ +RDEPENDS:${PN}-perl += "perl-module-carp perl-module-constant \ perl-module-cwd perl-module-digest \ perl-module-digest-md5 perl-module-errno \ perl-module-exporter perl-module-fcntl \ @@ -76,12 +92,13 @@ RDEPENDS_${PN}-perl += "perl-module-carp perl-module-constant \ # the bitbake version. # PACKAGES =+ "${PN}-start-stop" -FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon.${BPN}" -ALTERNATIVE_${PN}-start-stop = "start-stop-daemon" +FILES:${PN}-start-stop = "${sbindir}/start-stop-daemon.${BPN}" +ALTERNATIVE:${PN}-start-stop = "start-stop-daemon" ALTERNATIVE_LINK_NAME[start-stop-daemon] = "${sbindir}/start-stop-daemon" ALTERNATIVE_PRIORITY = "100" -RDEPENDS_${PN} += "${PN}-start-stop" - +EXTRA_RDPENDS = "ldconfig" +EXTRA_RDPENDS:libc-musl = "" +RDEPENDS:${PN} += "${PN}-start-stop ${EXTRA_RDPENDS}" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch b/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch new file mode 100644 index 0000000000..52e85705fa --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch @@ -0,0 +1,39 @@ +From 279e4c274f5f295823cf9fa95d3ba131f6d711db Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 29 Apr 2020 22:02:23 -0700 +Subject: [PATCH] Add support for riscv32 CPU + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + data/cputable | 1 + + scripts/Dpkg/Vendor/Debian.pm | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/data/cputable b/data/cputable +index 9f2a8e0..1d935b1 100644 +--- a/data/cputable ++++ b/data/cputable +@@ -41,6 +41,7 @@ powerpc powerpc (powerpc|ppc) 32 big + powerpcel powerpcle powerpcle 32 little + ppc64 powerpc64 (powerpc|ppc)64 64 big + ppc64el powerpc64le powerpc64le 64 little ++riscv32 riscv32 riscv32 32 little + riscv64 riscv64 riscv64 64 little + s390 s390 s390 32 big + s390x s390x s390x 64 big +diff --git a/scripts/Dpkg/Vendor/Debian.pm b/scripts/Dpkg/Vendor/Debian.pm +index a352bbd..fa1d90b 100644 +--- a/scripts/Dpkg/Vendor/Debian.pm ++++ b/scripts/Dpkg/Vendor/Debian.pm +@@ -306,6 +306,7 @@ sub _add_build_flags { + powerpc + ppc64 + ppc64el ++ riscv32 + riscv64 + s390x + sparc +-- +2.26.2 + diff --git a/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch b/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch new file mode 100644 index 0000000000..2dc68e2064 --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch @@ -0,0 +1,53 @@ +From d6f5fed6bc56e1f3b885a796a43aa2868ace57bc Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.microsoft.com> +Date: Tue, 16 Jun 2020 03:57:25 +0000 +Subject: [PATCH] build.c: ignore return of 1 from tar -cf + +When running do_package_write_deb, we have trees of hardlinked files +such as the dbg source files in ${PN}-dbg. If something makes another +copy of one of those files (or deletes one), the number of links a file +has changes and tar can notice this, e.g.: + +| DEBUG: Executing python function do_package_deb +| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'. +| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it +| dpkg-deb: error: subprocess tar -cf returned error exit status 1 + +Tar returns an error of 1 when files 'change' and other errors codes +in other error cases. We tweak dpkg-deb here so that it ignores an exit +code of 1 from tar. The files don't really change (and we have locking in +place to avoid that kind of issue). + +Upstream-Status: Inappropriate [OE specific] + +Original patch by RP 2015/3/27, rebased by Paul Eggleton + +Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com> + +--- + dpkg-deb/build.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c +index d13a21c1e..059f2be6d 100644 +--- a/dpkg-deb/build.c ++++ b/dpkg-deb/build.c +@@ -480,6 +480,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, + { + int pipe_filenames[2], pipe_tarball[2]; + pid_t pid_tar, pid_comp; ++ int rc; + + /* Fork off a tar. We will feed it a list of filenames on stdin later. */ + m_pipe(pipe_filenames); +@@ -532,7 +533,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, + /* All done, clean up wait for tar and <compress> to finish their job. */ + close(pipe_filenames[1]); + subproc_reap(pid_comp, _("<compress> from tar -cf"), 0); +- subproc_reap(pid_tar, "tar -cf", 0); ++ rc = subproc_reap(pid_tar, "tar -cf", SUBPROC_RETERROR); ++ if (rc && rc != 1) ++ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc); + } + + static intmax_t diff --git a/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch b/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch new file mode 100644 index 0000000000..292b72ab5d --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch @@ -0,0 +1,23 @@ +From 0decc62904571582147f2273fa1b521e00485dda Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 3 Feb 2021 20:47:58 +0100 +Subject: [PATCH] scripts/dpkg-fsys-usrunmess.pl: correct shebang + +Otherwise automake will write the full native perl path into it. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + scripts/dpkg-fsys-usrunmess.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/dpkg-fsys-usrunmess.pl b/scripts/dpkg-fsys-usrunmess.pl +index 9220df3c0..9ce368955 100755 +--- a/scripts/dpkg-fsys-usrunmess.pl ++++ b/scripts/dpkg-fsys-usrunmess.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # + # dpkg-fsys-usrunmess - Undoes the merged-/usr-via-aliased-dirs mess + # diff --git a/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch b/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch new file mode 100644 index 0000000000..ece18a33ac --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/0014-arch-Add-support-for-ARCv2-CPU.patch @@ -0,0 +1,68 @@ +From c6acfba64b470c7e919fd5bd29124d7228492537 Mon Sep 17 00:00:00 2001 +From: Guillem Jover <guillem@debian.org> +Date: Fri, 28 May 2021 04:07:49 +0200 +Subject: [PATCH] arch: Add support for ARCv2 CPU + +This is based on the ARCv2 32-bit little-endian hard-float ISA. + +Closes: #980963 + +Upstream-Status: Backport [https://salsa.debian.org/dpkg-team/dpkg/-/commit/0d134cdcb0dcc6b21fa7926964c1426a5821181d] + +Based-on-patch-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com> +Signed-off-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com> +--- + data/cputable | 1 + + scripts/Dpkg/Shlibs/Objdump.pm | 1 + + scripts/t/Dpkg_Arch.t | 4 ++-- + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/data/cputable b/data/cputable +index 9f2a8e0e4..277bed88f 100644 +--- a/data/cputable ++++ b/data/cputable +@@ -20,6 +20,7 @@ i386 i686 (i[34567]86|pentium) 32 little + ia64 ia64 ia64 64 little + alpha alpha alpha.* 64 little + amd64 x86_64 (amd64|x86_64) 64 little ++arc arc arc 32 little + armeb armeb arm.*b 32 big + arm arm arm.* 32 little + arm64 aarch64 aarch64 64 little +diff --git a/scripts/Dpkg/Shlibs/Objdump.pm b/scripts/Dpkg/Shlibs/Objdump.pm +index 4cee866e7..93319d1eb 100644 +--- a/scripts/Dpkg/Shlibs/Objdump.pm ++++ b/scripts/Dpkg/Shlibs/Objdump.pm +@@ -100,6 +100,7 @@ use constant { + ELF_MACH_OR1K => 92, + ELF_MACH_XTENSA => 94, + ELF_MACH_MICROBLAZE => 189, ++ ELF_MACH_ARCV2 => 195, + ELF_MACH_AVR_OLD => 0x1057, + ELF_MACH_OR1K_OLD => 0x8472, + ELF_MACH_ALPHA => 0x9026, +diff --git a/scripts/t/Dpkg_Arch.t b/scripts/t/Dpkg_Arch.t +index a3a9e6fee..f0bba272a 100644 +--- a/scripts/t/Dpkg_Arch.t ++++ b/scripts/t/Dpkg_Arch.t +@@ -16,7 +16,7 @@ + use strict; + use warnings; + +-use Test::More tests => 16836; ++use Test::More tests => 18407; + + use_ok('Dpkg::Arch', qw(debarch_to_debtuple debarch_to_multiarch + debarch_eq debarch_is debarch_is_wildcard +@@ -174,7 +174,7 @@ is(gnutriplet_to_debarch(undef), undef, 'undef gnutriplet'); + is(gnutriplet_to_debarch('unknown-unknown-unknown'), undef, 'unknown gnutriplet'); + is(gnutriplet_to_debarch('x86_64-linux-gnu'), 'amd64', 'known gnutriplet'); + +-is(scalar get_valid_arches(), 539, 'expected amount of known architectures'); ++is(scalar get_valid_arches(), 554, 'expected amount of known architectures'); + + { + local $ENV{CC} = 'false'; +-- +2.16.2 + diff --git a/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch b/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch deleted file mode 100644 index e9119918b1..0000000000 --- a/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch +++ /dev/null @@ -1,27 +0,0 @@ -GNU tar >= 1.27 is required for --owner=NAME:ID and --group=NAME:ID. And fails -to build .deb packages with error: - -| dpkg-deb: building package 'linux-libc-headers-dbg' in '.../tmp/work/i586-poky-linux/linux-libc-headers/4.19-r0/deploy-debs/i586/linux-libc-headers-dbg_ 4.19-r0.0_i386.deb'. -| tar: root\:0: Invalid owner -| tar: Error is not recoverable: exiting now -| dpkg-deb: error: tar -cf subprocess returned error exit status 2 - -Tweak tar options in dpkg-deb source code to make it work on old machines. - -Upstream-Status: Inappropriate [cross build specific] - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c -index 68d187511..86fe22e25 100644 ---- a/dpkg-deb/build.c -+++ b/dpkg-deb/build.c -@@ -462,7 +462,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, - if (options->mode) - command_add_args(&cmd, "--mode", options->mode, NULL); - if (options->root_owner_group) -- command_add_args(&cmd, "--owner", "root:0", "--group", "root:0", NULL); -+ command_add_args(&cmd, "--owner", "root", "--group", "root", NULL); - command_add_args(&cmd, "--null", "--no-unquote", "--no-recursion", - "-T", "-", NULL); - command_exec(&cmd); diff --git a/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb b/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb index e9dec337b3..34b6bfe0a8 100644 --- a/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb +++ b/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb @@ -1,7 +1,7 @@ require dpkg.inc LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ +SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https;branch=1.20.x \ file://noman.patch \ file://remove-tar-no-timestamp.patch \ file://arch_pm.patch \ @@ -13,10 +13,13 @@ SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ file://0001-dpkg-Support-muslx32-build.patch \ file://pager.patch \ + file://0001-Add-support-for-riscv32-CPU.patch \ + file://0013-scripts-dpkg-fsys-usrunmess.pl-correct-shebang.patch \ + file://0014-arch-Add-support-for-ARCv2-CPU.patch \ " -SRC_URI_append_class-native = " \ - file://tweak-options-require-tar-1.27.patch \ -" -SRC_URI[md5sum] = "60f57c5494e6dfa177504d47bfa0e383" -SRC_URI[sha256sum] = "4c27fededf620c0aa522fff1a48577ba08144445341257502e7730f2b1a296e8" +SRC_URI:append:class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch" + +SRCREV = "2177b782b16e77e97c9643961a5ae3c639bcc4a3" + +S = "${WORKDIR}/git" |