From 64857a709bcccd0f6738633e313f36d96219de54 Mon Sep 17 00:00:00 2001 From: Gyorgy Sarvari Date: Wed, 3 Sep 2025 20:03:43 +0200 Subject: apt: upgrade 2.6.1 -> 3.0.3 Changelog: https://metadata.ftp-master.debian.org/changelogs/main/a/apt/apt_3.0.3_changelog Dropped patches which are included in this release, or became obsolete: 0001-Fix-compilation-error-with-clang-libc-18.patch - included in this release 0001-Fix-musl-build.patch - included in this release 0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch - included in this release 0001-Remove-using-std-binary_function.patch - became obsolete, fixed upstream 0001-aptwebserver.cc-Include-array.patch - became obsolete, fixed upstream 0001-strutl-Add-missing-include-cstdint-gcc-15.patch - included in this release Added a new patch to avoid compilation error with musl: error: 'basename' was not declared in this scope; did you mean 'rename'? Adapted DEPENDS list - gnutls and gcrypt dependencies were dropped in favor of openssl in version 2.9.19. Added a new PACKAGECONFIG, 'usrmerge', which displays a gentle warning if the system isn't a usrmerge system during package installation. Added new COMMON_ARCH CMake argument - if it is not defined, CMake is trying to determine the value of this variable by running dpkg, which is usually a futile endeavour. It is used in config creation, and to print some system info. Also adapt a self test: the apt-key command has been deprecated since a while, and in this release it was completely removed. Instead sources.list file contains the signature data, on a per-repository basis. (From OE-Core rev: 1413a6144679a8347a3487f1950612ee20ff382c) Signed-off-by: Gyorgy Sarvari Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- ...txt-avoid-changing-install-paths-based-on.patch | 2 +- ...isable-documentation-directory-altogether.patch | 2 +- ...o-not-init-tables-from-dpkg-configuration.patch | 2 +- ...-Fix-compilation-error-with-clang-libc-18.patch | 29 ----- .../apt/apt/0001-Fix-musl-build.patch | 28 ---- ..._minimum_required-to-3.13-to-avoid-warnin.patch | 47 ------- .../0001-Remove-using-std-binary_function.patch | 87 ------------- ...ys-run-dpkg-configure-a-at-the-end-of-our.patch | 4 +- .../apt/0001-aptwebserver.cc-Include-array.patch | 30 ----- .../apt/apt/0001-cmake-Do-not-build-po-files.patch | 6 +- .../apt/apt/0001-fix-compilation-with-musl.patch | 49 +++++++ ...strutl-Add-missing-include-cstdint-gcc-15.patch | 26 ---- meta/recipes-devtools/apt/apt_2.6.1.bb | 144 -------------------- meta/recipes-devtools/apt/apt_3.0.3.bb | 145 +++++++++++++++++++++ 14 files changed, 202 insertions(+), 399 deletions(-) delete mode 100644 meta/recipes-devtools/apt/apt/0001-Fix-compilation-error-with-clang-libc-18.patch delete mode 100644 meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch delete mode 100644 meta/recipes-devtools/apt/apt/0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch delete mode 100644 meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch delete mode 100644 meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch create mode 100644 meta/recipes-devtools/apt/apt/0001-fix-compilation-with-musl.patch delete mode 100644 meta/recipes-devtools/apt/apt/0001-strutl-Add-missing-include-cstdint-gcc-15.patch delete mode 100644 meta/recipes-devtools/apt/apt_2.6.1.bb create mode 100644 meta/recipes-devtools/apt/apt_3.0.3.bb (limited to 'meta/recipes-devtools') diff --git a/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch b/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch index 199f11bf20..d37aa811cd 100644 --- a/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch +++ b/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch @@ -14,7 +14,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cd4f8e..4759812 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -21,9 +21,9 @@ set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "-lgcov") +@@ -28,9 +28,9 @@ set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "-lgcov") set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "-lgcov") # Work around bug in GNUInstallDirs diff --git a/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch b/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch index 5443ff6caa..4bc6dce760 100644 --- a/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch +++ b/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch @@ -16,7 +16,7 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt index 668e2d762..62f441bfa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -246,7 +246,7 @@ add_subdirectory(apt-private) +@@ -251,7 +251,7 @@ add_subdirectory(apt-private) endif() add_subdirectory(cmdline) add_subdirectory(completions) diff --git a/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch b/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch index 37a3133010..d21f5a49c5 100644 --- a/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch +++ b/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch @@ -16,7 +16,7 @@ diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index b9d9b15d2..1725c5966 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc -@@ -281,8 +281,8 @@ bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys) +@@ -295,8 +295,8 @@ bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys) return _error->Error(_("Unable to determine a suitable packaging system type")); } diff --git a/meta/recipes-devtools/apt/apt/0001-Fix-compilation-error-with-clang-libc-18.patch b/meta/recipes-devtools/apt/apt/0001-Fix-compilation-error-with-clang-libc-18.patch deleted file mode 100644 index e55205ca3f..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-Fix-compilation-error-with-clang-libc-18.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b4488583424b33f51cb031562a9e8df820ffda23 Mon Sep 17 00:00:00 2001 -From: Chongyun Lee -Date: Thu, 15 Aug 2024 21:31:24 +0800 -Subject: [PATCH] Fix compilation error with clang/libc++ 18 - -Upstream-Status: Backport [https://salsa.debian.org/apt-team/apt/-/commit/b4488583424b33f51cb031562a9e8df820ffda23] -Signed-off-by: Khem Raj ---- - apt-pkg/cacheset.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h -index 5dbb9bf08..1c67a65d6 100644 ---- a/apt-pkg/cacheset.h -+++ b/apt-pkg/cacheset.h -@@ -218,11 +218,11 @@ public: - operator container_iterator(void) const { return _iter; } - inline iterator_type& operator++() { ++_iter; return static_cast(*this); } - inline iterator_type operator++(int) { iterator_type tmp(*this); operator++(); return tmp; } -- inline iterator_type operator+(typename container_iterator::difference_type const &n) { return iterator_type(_iter + n); } -+ inline iterator_type operator+(typename container_iterator::difference_type const &n) const { return iterator_type(_iter + n); } - inline iterator_type operator+=(typename container_iterator::difference_type const &n) { _iter += n; return static_cast(*this); } - inline iterator_type& operator--() { --_iter;; return static_cast(*this); } - inline iterator_type operator--(int) { iterator_type tmp(*this); operator--(); return tmp; } -- inline iterator_type operator-(typename container_iterator::difference_type const &n) { return iterator_type(_iter - n); } -+ inline iterator_type operator-(typename container_iterator::difference_type const &n) const { return iterator_type(_iter - n); } - inline typename container_iterator::difference_type operator-(iterator_type const &b) { return (_iter - b._iter); } - inline iterator_type operator-=(typename container_iterator::difference_type const &n) { _iter -= n; return static_cast(*this); } - inline bool operator!=(iterator_type const &i) const { return _iter != i._iter; } diff --git a/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch b/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch deleted file mode 100644 index 0cefbedd6d..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6b8547161b902b01b639d05a4cdf849d7694556f Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 22 May 2020 15:29:23 +0000 -Subject: [PATCH] apt-pkg/contrib/srvrec.h: Explicitly include sys/types.h - -This avoids type errors with musl C library. - -Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/200] -Signed-off-by: Alexander Kanavin ---- - apt-pkg/contrib/srvrec.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/apt-pkg/contrib/srvrec.h b/apt-pkg/contrib/srvrec.h -index e5d0f43..2010184 100644 ---- a/apt-pkg/contrib/srvrec.h -+++ b/apt-pkg/contrib/srvrec.h -@@ -9,6 +9,7 @@ - #ifndef SRVREC_H - #define SRVREC_H - -+#include - #include - #include - #include --- -2.20.1 - diff --git a/meta/recipes-devtools/apt/apt/0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch b/meta/recipes-devtools/apt/apt/0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch deleted file mode 100644 index c3a5ded494..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch +++ /dev/null @@ -1,47 +0,0 @@ -From dc7a8b3050a2a43f49515a03ae19713dfced75dc Mon Sep 17 00:00:00 2001 -From: David Kalnischkies -Date: Sat, 18 Nov 2023 13:10:05 +0000 -Subject: [PATCH] Raise cmake_minimum_required to 3.13 to avoid warnings - -CMake Deprecation Warning at CMakeLists.txt:6 (cmake_minimum_required): - Compatibility with CMake < 3.5 will be removed from a future version of - CMake. - - Update the VERSION argument value or use a ... suffix to tell - CMake that the project does not need compatibility with older versions. - -Picking 3.13 here is a semi-random choice to avoid raising the requirement -too much needlessly while also hopefully avoiding needing to raise it -soon again based on the referenced mail. - -While we are at it, lets also fix the other spewed warning: - -CMake Warning (dev) at CMakeLists.txt:5 (project): - cmake_minimum_required() should be called prior to this top-level project() - call. Please see the cmake-commands(7) manual for usage documentation of - both commands. - -References: https://lists.debian.org/msgid-search/20230617162957.6pklb6632zf4nijc@mail.gaussglocke.de - -Upstream-Status: Backport [https://salsa.debian.org/apt-team/apt/-/commit/dc7a8b3050a2a43f49515a03ae19713dfced75dc] -Signed-off-by: Moritz Haase ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 62182cddf..dae12e7c3 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -2,8 +2,8 @@ - # Licensed under the same terms as APT; i.e. GPL 2 or later. - - # set minimum version -+cmake_minimum_required(VERSION 3.13) - project(apt) --cmake_minimum_required(VERSION 3.4.0) - # Generic header locations - include_directories(${PROJECT_BINARY_DIR}/include) - --- -GitLab diff --git a/meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch b/meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch deleted file mode 100644 index 15b036b90d..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch +++ /dev/null @@ -1,87 +0,0 @@ -From e91fb0618ce0a5d42f239d0fca602544858f0819 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 16 Aug 2022 08:44:18 -0700 -Subject: [PATCH] Remove using std::binary_function - -std::binary_function and std::unary_function are deprecated since c++11 -and removed in c++17, therefore remove it and use lambda functions to get same -functionality implemented. - -Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/253] -Signed-off-by: Khem Raj ---- - ftparchive/apt-ftparchive.cc | 33 ++++++++++----------------------- - 1 file changed, 10 insertions(+), 23 deletions(-) - -diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc -index 0f6587281..0a253b12b 100644 ---- a/ftparchive/apt-ftparchive.cc -+++ b/ftparchive/apt-ftparchive.cc -@@ -48,6 +48,11 @@ - using namespace std; - unsigned Quiet = 0; - -+auto ContentsCompare = [](const auto &a, const auto &b) { return a.ContentsMTime < b.ContentsMTime; }; -+auto DBCompare = [](const auto &a, const auto &b) { return a.BinCacheDB < b.BinCacheDB; }; -+auto SrcDBCompare = [](const auto &a, const auto &b) { return a.SrcCacheDB < b.SrcCacheDB; }; -+ -+ - static struct timeval GetTimevalFromSteadyClock() /*{{{*/ - { - auto const Time = std::chrono::steady_clock::now().time_since_epoch(); -@@ -116,24 +121,6 @@ struct PackageMap - bool SrcDone; - time_t ContentsMTime; - -- struct ContentsCompare -- { -- inline bool operator() (const PackageMap &x,const PackageMap &y) -- {return x.ContentsMTime < y.ContentsMTime;}; -- }; -- -- struct DBCompare -- { -- inline bool operator() (const PackageMap &x,const PackageMap &y) -- {return x.BinCacheDB < y.BinCacheDB;}; -- }; -- -- struct SrcDBCompare -- { -- inline bool operator() (const PackageMap &x,const PackageMap &y) -- {return x.SrcCacheDB < y.SrcCacheDB;}; -- }; -- - void GetGeneral(Configuration &Setup,Configuration &Block); - bool GenPackages(Configuration &Setup,struct CacheDB::Stats &Stats); - bool GenSources(Configuration &Setup,struct CacheDB::Stats &Stats); -@@ -869,7 +856,7 @@ static bool DoGenerateContents(Configuration &Setup, - else - I->ContentsMTime = A.st_mtime; - } -- stable_sort(PkgList.begin(),PkgList.end(),PackageMap::ContentsCompare()); -+ stable_sort(PkgList.begin(),PkgList.end(),ContentsCompare); - - /* Now for Contents.. The process here is to do a make-like dependency - check. Each contents file is verified to be newer than the package files -@@ -941,8 +928,8 @@ static bool Generate(CommandLine &CmdL) - LoadBinDir(PkgList,Setup); - - // Sort by cache DB to improve IO locality. -- stable_sort(PkgList.begin(),PkgList.end(),PackageMap::DBCompare()); -- stable_sort(PkgList.begin(),PkgList.end(),PackageMap::SrcDBCompare()); -+ stable_sort(PkgList.begin(),PkgList.end(),DBCompare); -+ stable_sort(PkgList.begin(),PkgList.end(),SrcDBCompare); - - // Generate packages - if (_config->FindB("APT::FTPArchive::ContentsOnly", false) == false) -@@ -993,8 +980,8 @@ static bool Clean(CommandLine &CmdL) - LoadBinDir(PkgList,Setup); - - // Sort by cache DB to improve IO locality. -- stable_sort(PkgList.begin(),PkgList.end(),PackageMap::DBCompare()); -- stable_sort(PkgList.begin(),PkgList.end(),PackageMap::SrcDBCompare()); -+ stable_sort(PkgList.begin(),PkgList.end(),DBCompare); -+ stable_sort(PkgList.begin(),PkgList.end(),SrcDBCompare); - - string CacheDir = Setup.FindDir("Dir::CacheDir"); - diff --git a/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch index 6f4d5b6e72..43ab6a4cd8 100644 --- a/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch +++ b/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch @@ -23,7 +23,7 @@ diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 93effa959..4375781d1 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc -@@ -1199,12 +1199,6 @@ void pkgDPkgPM::BuildPackagesProgressMap() +@@ -1210,12 +1210,6 @@ void pkgDPkgPM::BuildPackagesProgressMap() } } } @@ -36,7 +36,7 @@ index 93effa959..4375781d1 100644 } /*}}}*/ void pkgDPkgPM::StartPtyMagic() /*{{{*/ -@@ -1741,7 +1735,8 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress) +@@ -1752,7 +1746,8 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress) // support subpressing of triggers processing for special // cases like d-i that runs the triggers handling manually diff --git a/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch b/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch deleted file mode 100644 index 2c1e617e55..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5985f366750a73c81c7d86893a2b959b4af062a5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 26 May 2021 22:12:46 -0700 -Subject: [PATCH] aptwebserver.cc: Include - -This helps getting std::array definition - -Fixes -test/interactive-helper/aptwebserver.cc:36:55: error: constexpr variable cannot have non-literal type 'const std::array, 6>' - constexpr std::array,6> htmlencode = {{ - -Upstream-Status: Submitted [https://github.com/Debian/apt/pull/133] -Signed-off-by: Khem Raj - ---- - test/interactive-helper/aptwebserver.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc -index f4f8d95..361c7a9 100644 ---- a/test/interactive-helper/aptwebserver.cc -+++ b/test/interactive-helper/aptwebserver.cc -@@ -23,6 +23,7 @@ - - #include - #include -+#include - #include - #include - #include diff --git a/meta/recipes-devtools/apt/apt/0001-cmake-Do-not-build-po-files.patch b/meta/recipes-devtools/apt/apt/0001-cmake-Do-not-build-po-files.patch index 036ce35963..08815a3ec4 100644 --- a/meta/recipes-devtools/apt/apt/0001-cmake-Do-not-build-po-files.patch +++ b/meta/recipes-devtools/apt/apt/0001-cmake-Do-not-build-po-files.patch @@ -11,14 +11,14 @@ Fixes Upstream-Status: Inappropriate [Cross-compile specific] Signed-off-by: Khem Raj --- - CMakeLists.txt | 7 ------- - 1 file changed, 7 deletions(-) + CMakeLists.txt | 9 --------- + 1 file changed, 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be157a55f..54163ae6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -252,15 +252,6 @@ add_subdirectory(ftparchive) +@@ -257,15 +257,6 @@ add_subdirectory(ftparchive) add_subdirectory(methods) add_subdirectory(test) diff --git a/meta/recipes-devtools/apt/apt/0001-fix-compilation-with-musl.patch b/meta/recipes-devtools/apt/apt/0001-fix-compilation-with-musl.patch new file mode 100644 index 0000000000..d3c5fe658e --- /dev/null +++ b/meta/recipes-devtools/apt/apt/0001-fix-compilation-with-musl.patch @@ -0,0 +1,49 @@ +From a6b024ceb71c43977838d625f5ac64b7e4815a56 Mon Sep 17 00:00:00 2001 +From: Gyorgy Sarvari +Date: Thu, 28 Aug 2025 08:11:58 +0200 +Subject: [PATCH] fix compilation with musl + +The basename() function requires the libgen.h header when +compiling with musl-libc, otherwise it complains: + +error: 'basename' was not declared in this scope; did you mean 'rename'? + +Also, musl's basename requires char* instead of const char* argument: + +error: invalid conversion from 'const char*' to 'char*' [-fpermissive] + +The musl implementation of basename modifies the argument only in case +it is a folder path (it cuts off the trailing slashes). In our case, +when argv[0] is passed, it is always a filename without a trailing +slash, so just cast the argument. + +Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/508] +Signed-off-by: Gyorgy Sarvari +--- + cmdline/apt-internal-solver.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc +index ceedd96c7..74ed38c50 100644 +--- a/cmdline/apt-internal-solver.cc ++++ b/cmdline/apt-internal-solver.cc +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -119,7 +120,7 @@ int main(int argc,const char *argv[]) /*{{{*/ + _config->Set("Debug::EDSP::WriteSolution", true); + + _config->Set("APT::System", "Debian APT solver interface"); +- if (strcmp(basename(argv[0]), "solver3") == 0) ++ if (strcmp(basename((char*)argv[0]), "solver3") == 0) + _config->Set("APT::Solver", "3.0"); + else if (_config->Find("APT::Solver") != "3.0") + _config->Set("APT::Solver", "internal"); +-- +2.39.5 + diff --git a/meta/recipes-devtools/apt/apt/0001-strutl-Add-missing-include-cstdint-gcc-15.patch b/meta/recipes-devtools/apt/apt/0001-strutl-Add-missing-include-cstdint-gcc-15.patch deleted file mode 100644 index b86ed8bb92..0000000000 --- a/meta/recipes-devtools/apt/apt/0001-strutl-Add-missing-include-cstdint-gcc-15.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9da1b0dbdcc90455bc9de49f73a96e7d18f83493 Mon Sep 17 00:00:00 2001 -From: Julian Andres Klode -Date: Tue, 18 Feb 2025 10:29:40 +0100 -Subject: [PATCH] strutl: Add missing #include [gcc 15] - -Closes: #1096322 - -Upstream-Status: Backport [https://salsa.debian.org/apt-team/apt/-/commit/f82dcd7e4ebb3f70d28e9feb3621676f8c0cc024] - -Signed-off-by: Khem Raj ---- - apt-pkg/contrib/strutl.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc -index 67100f1..c0a1cbc 100644 ---- a/apt-pkg/contrib/strutl.cc -+++ b/apt-pkg/contrib/strutl.cc -@@ -26,6 +26,7 @@ - - #include - #include -+#include - #include - #include - #include diff --git a/meta/recipes-devtools/apt/apt_2.6.1.bb b/meta/recipes-devtools/apt/apt_2.6.1.bb deleted file mode 100644 index b039599395..0000000000 --- a/meta/recipes-devtools/apt/apt_2.6.1.bb +++ /dev/null @@ -1,144 +0,0 @@ -SUMMARY = "Advanced front-end for dpkg" -DESCRIPTION = "APT is the Advanced Package Tool, an advanced interface to the Debian packaging system which provides the apt-get program." -HOMEPAGE = "https://packages.debian.org/sid/apt" -LICENSE = "GPL-2.0-or-later" -SECTION = "base" - -# Triehash script taken from https://github.com/julian-klode/triehash -SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \ - file://triehash \ - file://0001-Disable-documentation-directory-altogether.patch \ - file://0001-Fix-musl-build.patch \ - file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \ - file://0001-cmake-Do-not-build-po-files.patch \ - file://0001-aptwebserver.cc-Include-array.patch \ - file://0001-Remove-using-std-binary_function.patch \ - file://0001-strutl-Add-missing-include-cstdint-gcc-15.patch \ - file://0001-Raise-cmake_minimum_required-to-3.13-to-avoid-warnin.patch \ - file://0001-Fix-compilation-error-with-clang-libc-18.patch \ - " - -SRC_URI:append:class-native = " \ - file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ - file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ - " - -SRC_URI:append:class-nativesdk = " \ - file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ - file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ - " - -SRC_URI[sha256sum] = "86b888c901fa2e78f1bf52a2aaa2f400ff82a472b94ff0ac6631939ee68fa6fd" -LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -# the package is taken from snapshots.debian.org; that source is static and goes stale -# so we check the latest upstream from a directory that does get updated -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/" -# apt seems to follow a peculiar version policy, where every *other* even version -# is considered stable, e.g. 1.0, 1.4, 1.8, 2.2, 2.6, etc. As there is no way -# to express 'divisible by 4 plus 2' in regex (that I know of), let's hardcode a few. -UPSTREAM_CHECK_REGEX = "[^\d\.](?P((2\.2)|(2\.6)|(3\.0)|(3\.4)|(3\.8)|(4\.2))(\.\d+)+)\.tar" - -inherit cmake perlnative bash-completion useradd - -# User is added to allow apt to drop privs, will runtime warn without -USERADD_PACKAGES = "${PN}" -USERADD_PARAM:${PN} = "--system --home /nonexistent --no-create-home _apt" - -BBCLASSEXTEND = "native nativesdk" - -DEPENDS += "db gnutls lz4 zlib bzip2 xz libgcrypt xxhash" - -EXTRA_OECMAKE:append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False \ - -DDPKG_DATADIR=${datadir}/dpkg \ - -DTRIEHASH_EXECUTABLE=${UNPACKDIR}/triehash \ - -DCMAKE_DISABLE_FIND_PACKAGE_ZSTD=True \ - -DCMAKE_DISABLE_FIND_PACKAGE_SECCOMP=True \ - -DWITH_TESTS=False \ -" - -do_configure:prepend() { - echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >> ${WORKDIR}/toolchain.cmake -} - -# Unfortunately apt hardcodes this all over the place -FILES:${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt" -RDEPENDS:${PN} += "bash perl dpkg" - -customize_apt_conf_sample() { - cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF -Dir "${STAGING_DIR_NATIVE}/" -{ - State "var/lib/apt/" - { - Lists "#APTCONF#/lists/"; - status "#ROOTFS#/var/lib/dpkg/status"; - }; - Cache "var/cache/apt/" - { - Archives "archives/"; - pkgcache ""; - srcpkgcache ""; - }; - Bin "${STAGING_BINDIR_NATIVE}/" - { - methods "${STAGING_LIBDIR}/apt/methods/"; - gzip "/bin/gzip"; - dpkg "dpkg"; - dpkg-source "dpkg-source"; - dpkg-buildpackage "dpkg-buildpackage"; - apt-get "apt-get"; - apt-cache "apt-cache"; - }; - Etc "#APTCONF#" - { - Preferences "preferences"; - }; - Log "var/log/apt"; -}; - -APT -{ - Install-Recommends "true"; - Immediate-Configure "false"; - Architecture "i586"; - Get - { - Assume-Yes "true"; - }; -}; - -Acquire -{ - AllowInsecureRepositories "true"; -}; - -DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-force-overwrite";"--no-debsig"}; -DPkg::Path ""; -EOF -} - -do_install:append:class-native() { - customize_apt_conf_sample -} - -do_install:append:class-nativesdk() { - customize_apt_conf_sample - rm -rf ${D}${localstatedir}/log -} - -do_install:append:class-target() { - # Write the correct apt-architecture to apt.conf - APT_CONF=${D}${sysconfdir}/apt/apt.conf - echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF} - - # Remove /var/log/apt. /var/log is normally a link to /var/volatile/log - # and /var/volatile is a tmpfs mount. So anything created in /var/log - # will not be available when the tmpfs is mounted. - rm -rf ${D}${localstatedir}/log -} - -do_install:append() { - # Avoid non-reproducible -src package - sed -i -e "s,${B}/include/,,g" ${B}/apt-pkg/tagfile-keys.cc -} diff --git a/meta/recipes-devtools/apt/apt_3.0.3.bb b/meta/recipes-devtools/apt/apt_3.0.3.bb new file mode 100644 index 0000000000..03a6869393 --- /dev/null +++ b/meta/recipes-devtools/apt/apt_3.0.3.bb @@ -0,0 +1,145 @@ +SUMMARY = "Advanced front-end for dpkg" +DESCRIPTION = "APT is the Advanced Package Tool, an advanced interface to the Debian packaging system which provides the apt-get program." +HOMEPAGE = "https://packages.debian.org/sid/apt" +LICENSE = "GPL-2.0-or-later" +SECTION = "base" + +# Triehash script taken from https://github.com/julian-klode/triehash +SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \ + file://triehash \ + file://0001-Disable-documentation-directory-altogether.patch \ + file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \ + file://0001-cmake-Do-not-build-po-files.patch \ + file://0001-fix-compilation-with-musl.patch \ + " + +SRC_URI:append:class-native = " \ + file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ + file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ + " + +SRC_URI:append:class-nativesdk = " \ + file://0001-Do-not-init-tables-from-dpkg-configuration.patch \ + file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ + " + +SRC_URI[sha256sum] = "5b5f6f6d26121742a83aa80d4ed0eb0c6ce9bea259518db412edefd95760e4ef" +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +# the package is taken from snapshots.debian.org; that source is static and goes stale +# so we check the latest upstream from a directory that does get updated +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/" +# apt seems to follow a peculiar version policy, where every *other* even version +# is considered stable, e.g. 1.0, 1.4, 1.8, 2.2, 2.6, etc. As there is no way +# to express 'divisible by 4 plus 2' in regex (that I know of), let's hardcode a few. +UPSTREAM_CHECK_REGEX = "[^\d\.](?P((2\.2)|(2\.6)|(3\.0)|(3\.4)|(3\.8)|(4\.2))(\.\d+)+)\.tar" + +inherit cmake perlnative bash-completion useradd + +# User is added to allow apt to drop privs, will runtime warn without +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = "--system --home /nonexistent --no-create-home _apt" + +BBCLASSEXTEND = "native nativesdk" + +DEPENDS += "db lz4 zlib bzip2 xz xxhash openssl" + +EXTRA_OECMAKE:append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False \ + -DDPKG_DATADIR=${datadir}/dpkg \ + -DTRIEHASH_EXECUTABLE=${UNPACKDIR}/triehash \ + -DCMAKE_DISABLE_FIND_PACKAGE_ZSTD=True \ + -DCMAKE_DISABLE_FIND_PACKAGE_SECCOMP=True \ + -DWITH_TESTS=False \ + -DCOMMON_ARCH=${DPKG_ARCH} \ +" + +PACKAGECONFIG ??= "" +# usrmerge displays a runtime warning during package installation in case +# the system doesn't have merged /usr folders. +PACKAGECONFIG[usrmerge] = "-DREQUIRE_MERGED_USR=ON,-DREQUIRE_MERGED_USR=OFF" + +do_configure:prepend() { + echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >> ${WORKDIR}/toolchain.cmake +} + +# Unfortunately apt hardcodes this all over the place +FILES:${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt" +RDEPENDS:${PN} += "bash perl dpkg" + +customize_apt_conf_sample() { + cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF +Dir "${STAGING_DIR_NATIVE}/" +{ + State "var/lib/apt/" + { + Lists "#APTCONF#/lists/"; + status "#ROOTFS#/var/lib/dpkg/status"; + }; + Cache "var/cache/apt/" + { + Archives "archives/"; + pkgcache ""; + srcpkgcache ""; + }; + Bin "${STAGING_BINDIR_NATIVE}/" + { + methods "${STAGING_LIBDIR}/apt/methods/"; + gzip "/bin/gzip"; + dpkg "dpkg"; + dpkg-source "dpkg-source"; + dpkg-buildpackage "dpkg-buildpackage"; + apt-get "apt-get"; + apt-cache "apt-cache"; + }; + Etc "#APTCONF#" + { + Preferences "preferences"; + }; + Log "var/log/apt"; +}; + +APT +{ + Install-Recommends "true"; + Immediate-Configure "false"; + Architecture "i586"; + Get + { + Assume-Yes "true"; + }; +}; + +Acquire +{ + AllowInsecureRepositories "true"; +}; + +DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-force-overwrite";"--no-debsig"}; +DPkg::Path ""; +EOF +} + +do_install:append:class-native() { + customize_apt_conf_sample +} + +do_install:append:class-nativesdk() { + customize_apt_conf_sample + rm -rf ${D}${localstatedir}/log +} + +do_install:append:class-target() { + # Write the correct apt-architecture to apt.conf + APT_CONF=${D}${sysconfdir}/apt/apt.conf + echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF} + + # Remove /var/log/apt. /var/log is normally a link to /var/volatile/log + # and /var/volatile is a tmpfs mount. So anything created in /var/log + # will not be available when the tmpfs is mounted. + rm -rf ${D}${localstatedir}/log +} + +do_install:append() { + # Avoid non-reproducible -src package + sed -i -e "s,${B}/include/,,g" ${B}/apt-pkg/tagfile-keys.cc +} -- cgit v1.2.3-54-g00ecf