diff mbox series

[5/7] apt: Do not use std::binary_function

Message ID 20220816165857.2342796-5-raj.khem@gmail.com
State Accepted, archived
Commit 7fcf108c4e115077cf01754c37bb8ce216c24dc8
Headers show
Series [1/7] boost: Compile out stdlib unary/binary_functions for c++11 and newer | expand

Commit Message

Khem Raj Aug. 16, 2022, 4:58 p.m. UTC
This feature is removed from c++17

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...-init-tables-from-dpkg-configuration.patch |  4 +-
 ...001-Remove-using-std-binary_function.patch | 87 +++++++++++++++++++
 ...n-dpkg-configure-a-at-the-end-of-our.patch |  4 +-
 meta/recipes-devtools/apt/apt_2.4.5.bb        |  1 +
 4 files changed, 92 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch
diff mbox series

Patch

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 59b9cd190f5..37a31330102 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
@@ -1,4 +1,4 @@ 
-From 11ba49594ae9d11f0070198c146b5e437fa83022 Mon Sep 17 00:00:00 2001
+From b84280fec4e1d0d33eca78e76556023f8f8fe5b7 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 10 May 2019 16:47:38 +0200
 Subject: [PATCH] Do not init tables from dpkg configuration
@@ -13,7 +13,7 @@  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc
-index b9d9b15..1725c59 100644
+index b9d9b15d2..1725c5966 100644
 --- a/apt-pkg/init.cc
 +++ b/apt-pkg/init.cc
 @@ -281,8 +281,8 @@ bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys)
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
new file mode 100644
index 00000000000..3065210a04b
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/0001-Remove-using-std-binary_function.patch
@@ -0,0 +1,87 @@ 
+From e91fb0618ce0a5d42f239d0fca602544858f0819 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+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 <raj.khem@gmail.com>
+---
+ 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 87ce9153c..56fdc2246 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 : public binary_function<PackageMap,PackageMap,bool>
+-   {
+-      inline bool operator() (const PackageMap &x,const PackageMap &y)
+-      {return x.ContentsMTime < y.ContentsMTime;};
+-   };
+-    
+-   struct DBCompare : public binary_function<PackageMap,PackageMap,bool>
+-   {
+-      inline bool operator() (const PackageMap &x,const PackageMap &y)
+-      {return x.BinCacheDB < y.BinCacheDB;};
+-   };  
+-
+-   struct SrcDBCompare : public binary_function<PackageMap,PackageMap,bool>
+-   {
+-      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 593ed7d0968..6f4d5b6e729 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
@@ -1,4 +1,4 @@ 
-From 47c2b42af60ceefd8ed52b32a3a365facf0e05b8 Mon Sep 17 00:00:00 2001
+From a2dd661484536492b47d4c88998f2bf516749bc8 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 21 May 2020 20:13:25 +0000
 Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our
@@ -20,7 +20,7 @@  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 2 insertions(+), 7 deletions(-)
 
 diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
-index 93effa9..4375781 100644
+index 93effa959..4375781d1 100644
 --- a/apt-pkg/deb/dpkgpm.cc
 +++ b/apt-pkg/deb/dpkgpm.cc
 @@ -1199,12 +1199,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
diff --git a/meta/recipes-devtools/apt/apt_2.4.5.bb b/meta/recipes-devtools/apt/apt_2.4.5.bb
index 53849f80a30..564bdeec410 100644
--- a/meta/recipes-devtools/apt/apt_2.4.5.bb
+++ b/meta/recipes-devtools/apt/apt_2.4.5.bb
@@ -13,6 +13,7 @@  SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \
            file://0001-cmake-Do-not-build-po-files.patch \
            file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \
            file://0001-aptwebserver.cc-Include-array.patch \
+           file://0001-Remove-using-std-binary_function.patch \
            "
 
 SRC_URI:append:class-native = " \