summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/apt/apt-1.0.9.9
diff options
context:
space:
mode:
authorRoy Li <rongqing.li@windriver.com>2015-05-27 15:58:49 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-29 10:17:15 +0100
commit2efd475a98602758c98290263d17a8ac55d32a39 (patch)
treea3f825d1e1024afa8631c0ce2a7142a7fcc687bd /meta/recipes-devtools/apt/apt-1.0.9.9
parent320d766fe405c686b5339897f6f5a1baaed4c61d (diff)
downloadpoky-2efd475a98602758c98290263d17a8ac55d32a39.tar.gz
apt: upgrade to 1.0.9.9
1. Upgrade to fix the several CVEs: CVE-2014-0488, CVE-2014-0490 2. Remove apt-0.9.9.4-CVE-2014-0478.patch, which was backport. 3. Romve no-ko-translation.patch, apt-1.0.9.9 has ko translation 4. Update use-host.patch no-curl.patch db_linking_hack.patch and noconfigure.patch 5. Not build the test cases since it requires gtest 6. install libapt-private.so.* to libdir, otherwise this file is not installed into sysroot for native, and apt-get will use host's, and lead to fail 7. Revert apt commit[a2a75ff45]"always run 'dpkg --configure -a' at the end of our dpkg callings" for native package, otherwise the postscript for these installed packages will be run, and fail since the rootfs dir is not considered 8. Add lzma dependency by PACKAGECONFIG for target, and add xz dependency for native 9. Support to compile apt-native on centos6 (From OE-Core rev: 7dd4a53a99277b46696dea5558fa321a2267af0a) Signed-off-by: Roy Li <rongqing.li@windriver.com> Acked-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/apt/apt-1.0.9.9')
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch378
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/0001-fix-the-gcc-version-check.patch160
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/0001-remove-Wsuggest-attribute-from-CFLAGS.patch43
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/disable-configure-in-makefile.patch18
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/disable-test.patch58
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/fix-gcc-4.6-null-not-defined.patch12
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/makerace.patch23
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/no-nls-dpkg.patch26
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/noconfigure.patch37
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/nodoc.patch18
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/truncate-filename.patch35
-rw-r--r--meta/recipes-devtools/apt/apt-1.0.9.9/use-host.patch15
12 files changed, 823 insertions, 0 deletions
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
new file mode 100644
index 0000000000..d33069b73a
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
@@ -0,0 +1,378 @@
1From 106797f1c66fa578dad21fd9380bf9d576573dfd Mon Sep 17 00:00:00 2001
2From: Roy Li <rongqing.li@windriver.com>
3Date: Fri, 22 May 2015 08:05:15 +0800
4Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our
5 dpkg callings"
6
7Upstream-Status: Inappropriate [embedded specific]
8
9This reverts commit a2a75ff4516f7609f4c55b42270abb8d08943c60, which
10always run 'dpkg --configure -a' at the end of our dpkg callings,
11but it does not work for cross-compile, since the rootfs dir can not
12be passed into dpkg, and lead to the below similar error:
13 -------
14 |mkdir: cannot create directory '/usr/lib/opkg': Permission denied
15 -------
16
17Signed-off-by: Roy Li <rongqing.li@windriver.com>
18---
19 apt-pkg/deb/dpkgpm.cc | 9 +--
20 test/integration/framework | 25 ++++----
21 test/integration/test-apt-progress-fd | 67 +++++++++----------
22 test/integration/test-apt-progress-fd-deb822 | 18 ++----
23 test/integration/test-apt-progress-fd-error | 2 +-
24 ...est-bug-769609-triggers-still-pending-after-run | 75 ----------------------
25 .../test-no-fds-leaked-to-maintainer-scripts | 6 +-
26 7 files changed, 56 insertions(+), 146 deletions(-)
27 delete mode 100755 test/integration/test-bug-769609-triggers-still-pending-after-run
28
29diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
30index b187efb..f269764 100644
31--- a/apt-pkg/deb/dpkgpm.cc
32+++ b/apt-pkg/deb/dpkgpm.cc
33@@ -1049,12 +1049,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
34 PackagesTotal++;
35 }
36 }
37- /* one extra: We don't want the progress bar to reach 100%, especially not
38- if we call dpkg --configure --pending and process a bunch of triggers
39- while showing 100%. Also, spindown takes a while, so never reaching 100%
40- is way more correct than reaching 100% while still doing stuff even if
41- doing it this way is slightly bending the rules */
42- ++PackagesTotal;
43 }
44 /*}}}*/
45 #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
46@@ -1294,8 +1288,9 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress)
47
48 // support subpressing of triggers processing for special
49 // cases like d-i that runs the triggers handling manually
50+ bool const SmartConf = (_config->Find("PackageManager::Configure", "all") != "all");
51 bool const TriggersPending = _config->FindB("DPkg::TriggersPending", false);
52- if (_config->FindB("DPkg::ConfigurePending", true) == true)
53+ if (_config->FindB("DPkg::ConfigurePending", SmartConf) == true)
54 List.push_back(Item(Item::ConfigurePending, PkgIterator()));
55
56 // for the progress
57diff --git a/test/integration/framework b/test/integration/framework
58index 70ad381..00672ad 100644
59--- a/test/integration/framework
60+++ b/test/integration/framework
61@@ -1178,13 +1178,10 @@ testnopackage() {
62 fi
63 }
64
65-testdpkgstatus() {
66- local STATE="$1"
67- local NR="$2"
68- shift 2
69- msgtest "Test that $NR package(s) are in state $STATE with" "dpkg -l $*"
70- local PKGS="$(dpkg -l "$@" 2>/dev/null | grep "^${STATE}" | wc -l)"
71- if [ "$PKGS" != $NR ]; then
72+testdpkginstalled() {
73+ msgtest "Test for correctly installed package(s) with" "dpkg -l $*"
74+ local PKGS="$(dpkg -l "$@" 2>/dev/null | grep '^i' | wc -l)"
75+ if [ "$PKGS" != $# ]; then
76 echo >&2 $PKGS
77 dpkg -l "$@" | grep '^[a-z]' >&2
78 msgfail
79@@ -1193,12 +1190,16 @@ testdpkgstatus() {
80 fi
81 }
82
83-testdpkginstalled() {
84- testdpkgstatus 'ii' "$#" "$@"
85-}
86-
87 testdpkgnotinstalled() {
88- testdpkgstatus 'ii' '0' "$@"
89+ msgtest "Test for correctly not-installed package(s) with" "dpkg -l $*"
90+ local PKGS="$(dpkg -l "$@" 2> /dev/null | grep '^i' | wc -l)"
91+ if [ "$PKGS" != 0 ]; then
92+ echo
93+ dpkg -l "$@" | grep '^[a-z]' >&2
94+ msgfail
95+ else
96+ msgpass
97+ fi
98 }
99
100 testmarkedauto() {
101diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd
102index 68cc043..d72e7e7 100755
103--- a/test/integration/test-apt-progress-fd
104+++ b/test/integration/test-apt-progress-fd
105@@ -19,14 +19,13 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
106 dlstatus:1:0:Retrieving file 1 of 1
107 pmstatus:dpkg-exec:0:Running dpkg
108 pmstatus:testing:0:Installing testing (amd64)
109-pmstatus:testing:16.6667:Preparing testing (amd64)
110-pmstatus:testing:33.3333:Unpacking testing (amd64)
111-pmstatus:testing:50:Preparing to configure testing (amd64)
112-pmstatus:dpkg-exec:50:Running dpkg
113-pmstatus:testing:50:Configuring testing (amd64)
114-pmstatus:testing:66.6667:Configuring testing (amd64)
115-pmstatus:testing:83.3333:Installed testing (amd64)
116-pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
117+pmstatus:testing:20:Preparing testing (amd64)
118+pmstatus:testing:40:Unpacking testing (amd64)
119+pmstatus:testing:60:Preparing to configure testing (amd64)
120+pmstatus:dpkg-exec:60:Running dpkg
121+pmstatus:testing:60:Configuring testing (amd64)
122+pmstatus:testing:80:Configuring testing (amd64)
123+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
124
125 # upgrade
126 exec 3> apt-progress.log
127@@ -35,14 +34,13 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
128 dlstatus:1:0:Retrieving file 1 of 1
129 pmstatus:dpkg-exec:0:Running dpkg
130 pmstatus:testing:0:Installing testing (amd64)
131-pmstatus:testing:16.6667:Preparing testing (amd64)
132-pmstatus:testing:33.3333:Unpacking testing (amd64)
133-pmstatus:testing:50:Preparing to configure testing (amd64)
134-pmstatus:dpkg-exec:50:Running dpkg
135-pmstatus:testing:50:Configuring testing (amd64)
136-pmstatus:testing:66.6667:Configuring testing (amd64)
137-pmstatus:testing:83.3333:Installed testing (amd64)
138-pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
139+pmstatus:testing:20:Preparing testing (amd64)
140+pmstatus:testing:40:Unpacking testing (amd64)
141+pmstatus:testing:60:Preparing to configure testing (amd64)
142+pmstatus:dpkg-exec:60:Running dpkg
143+pmstatus:testing:60:Configuring testing (amd64)
144+pmstatus:testing:80:Configuring testing (amd64)
145+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
146
147 # reinstall
148 exec 3> apt-progress.log
149@@ -51,24 +49,22 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
150 dlstatus:1:0:Retrieving file 1 of 1
151 pmstatus:dpkg-exec:0:Running dpkg
152 pmstatus:testing:0:Installing testing (amd64)
153-pmstatus:testing:16.6667:Preparing testing (amd64)
154-pmstatus:testing:33.3333:Unpacking testing (amd64)
155-pmstatus:testing:50:Preparing to configure testing (amd64)
156-pmstatus:dpkg-exec:50:Running dpkg
157-pmstatus:testing:50:Configuring testing (amd64)
158-pmstatus:testing:66.6667:Configuring testing (amd64)
159-pmstatus:testing:83.3333:Installed testing (amd64)
160-pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
161+pmstatus:testing:20:Preparing testing (amd64)
162+pmstatus:testing:40:Unpacking testing (amd64)
163+pmstatus:testing:60:Preparing to configure testing (amd64)
164+pmstatus:dpkg-exec:60:Running dpkg
165+pmstatus:testing:60:Configuring testing (amd64)
166+pmstatus:testing:80:Configuring testing (amd64)
167+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
168
169 # and remove
170 exec 3> apt-progress.log
171 testsuccess aptget remove testing -y -o APT::Status-Fd=3
172 testequal "pmstatus:dpkg-exec:0:Running dpkg
173 pmstatus:testing:0:Removing testing (amd64)
174-pmstatus:testing:25:Preparing for removal of testing (amd64)
175-pmstatus:testing:50:Removing testing (amd64)
176-pmstatus:testing:75:Removed testing (amd64)
177-pmstatus:dpkg-exec:75:Running dpkg" cat apt-progress.log
178+pmstatus:testing:33.3333:Preparing for removal of testing (amd64)
179+pmstatus:testing:66.6667:Removing testing (amd64)
180+pmstatus:testing:100:Removed testing (amd64)" cat apt-progress.log
181
182 # install non-native and ensure we get proper progress info
183 exec 3> apt-progress.log
184@@ -79,13 +75,12 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
185 dlstatus:1:0:Retrieving file 1 of 1
186 pmstatus:dpkg-exec:0:Running dpkg
187 pmstatus:testing2:0:Installing testing2 (i386)
188-pmstatus:testing2:16.6667:Preparing testing2 (i386)
189-pmstatus:testing2:33.3333:Unpacking testing2 (i386)
190-pmstatus:testing2:50:Preparing to configure testing2 (i386)
191-pmstatus:dpkg-exec:50:Running dpkg
192-pmstatus:testing2:50:Configuring testing2 (i386)
193-pmstatus:testing2:66.6667:Configuring testing2 (i386)
194-pmstatus:testing2:83.3333:Installed testing2 (i386)
195-pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
196+pmstatus:testing2:20:Preparing testing2 (i386)
197+pmstatus:testing2:40:Unpacking testing2 (i386)
198+pmstatus:testing2:60:Preparing to configure testing2 (i386)
199+pmstatus:dpkg-exec:60:Running dpkg
200+pmstatus:testing2:60:Configuring testing2 (i386)
201+pmstatus:testing2:80:Configuring testing2 (i386)
202+pmstatus:testing2:100:Installed testing2 (i386)" cat apt-progress.log
203
204 rm -f apt-progress*.log
205diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822
206index badc985..9d22794 100755
207--- a/test/integration/test-apt-progress-fd-deb822
208+++ b/test/integration/test-apt-progress-fd-deb822
209@@ -27,41 +27,37 @@ Message: Installing testing (amd64)
210
211 Status: progress
212 Package: testing:amd64
213-Percent: 16.6667
214+Percent: 20
215 Message: Preparing testing (amd64)
216
217 Status: progress
218 Package: testing:amd64
219-Percent: 33.3333
220+Percent: 40
221 Message: Unpacking testing (amd64)
222
223 Status: progress
224 Package: testing:amd64
225-Percent: 50
226+Percent: 60
227 Message: Preparing to configure testing (amd64)
228
229 Status: progress
230-Percent: 50
231+Percent: 60
232 Message: Running dpkg
233
234 Status: progress
235 Package: testing:amd64
236-Percent: 50
237+Percent: 60
238 Message: Configuring testing (amd64)
239
240 Status: progress
241 Package: testing:amd64
242-Percent: 66.6667
243+Percent: 80
244 Message: Configuring testing (amd64)
245
246 Status: progress
247 Package: testing:amd64
248-Percent: 83.3333
249+Percent: 100
250 Message: Installed testing (amd64)
251-
252-Status: progress
253-Percent: 83.3333
254-Message: Running dpkg
255 " cat apt-progress.log
256
257
258diff --git a/test/integration/test-apt-progress-fd-error b/test/integration/test-apt-progress-fd-error
259index 6323007..a47095b 100755
260--- a/test/integration/test-apt-progress-fd-error
261+++ b/test/integration/test-apt-progress-fd-error
262@@ -18,7 +18,7 @@ setupaptarchive
263 exec 3> apt-progress.log
264 testfailure aptget install foo1 foo2 -y -o APT::Status-Fd=3
265 msgtest "Ensure correct error message"
266-if grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb:36.3636:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log; then
267+if grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb:40:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log; then
268 msgpass
269 else
270 cat apt-progress.log
271diff --git a/test/integration/test-bug-769609-triggers-still-pending-after-run b/test/integration/test-bug-769609-triggers-still-pending-after-run
272deleted file mode 100755
273index 146fa76..0000000
274--- a/test/integration/test-bug-769609-triggers-still-pending-after-run
275+++ /dev/null
276@@ -1,75 +0,0 @@
277-#!/bin/sh
278-set -e
279-
280-TESTDIR=$(readlink -f $(dirname $0))
281-. $TESTDIR/framework
282-
283-setupenvironment
284-configarchitecture 'amd64'
285-
286-msgtest 'Check if installed dpkg supports' 'noawait trigger'
287-if dpkg-checkbuilddeps -d 'dpkg (>= 1.16.1)' /dev/null; then
288- msgpass
289-else
290- msgskip 'dpkg version too old'
291- exit 0
292-fi
293-configdpkgnoopchroot
294-
295-buildtriggerpackages() {
296- local TYPE="$1"
297- setupsimplenativepackage "triggerable-$TYPE" 'all' '1.0' 'unstable' "Depends: trigdepends-$TYPE"
298- BUILDDIR="incoming/triggerable-${TYPE}-1.0"
299- cat >${BUILDDIR}/debian/postinst <<EOF
300-#!/bin/sh
301-if [ "\$1" = 'triggered' ]; then
302- ls -l /proc/self/fd/
303-fi
304-EOF
305- echo "$TYPE /usr/share/doc" > ${BUILDDIR}/debian/triggers
306- buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
307- rm -rf "$BUILDDIR"
308- buildsimplenativepackage "trigdepends-$TYPE" 'all' '1.0' 'unstable'
309-}
310-
311-#buildtriggerpackages 'interest'
312-buildtriggerpackages 'interest-noawait'
313-buildsimplenativepackage "trigstuff" 'all' '1.0' 'unstable'
314-
315-setupaptarchive
316-
317-runtests() {
318- local TYPE="$1"
319- msgmsg 'Working with trigger type' "$TYPE"
320- testsuccess aptget install triggerable-$TYPE -y
321- cp rootdir/tmp/testsuccess.output terminal.output
322- testsuccess grep '^REWRITE ' terminal.output
323- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
324-
325- testsuccess aptget install trigdepends-$TYPE -y --reinstall
326- cp rootdir/tmp/testsuccess.output terminal.output
327- testsuccess grep '^REWRITE ' terminal.output
328- testsuccess grep ' root root ' terminal.output
329- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
330-
331- testsuccess aptget install trigstuff -y
332- cp rootdir/tmp/testsuccess.output terminal.output
333- testsuccess grep '^REWRITE ' terminal.output
334- testsuccess grep ' root root ' terminal.output
335- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE trigstuff
336-
337- testsuccess aptget purge trigstuff -y
338- cp rootdir/tmp/testsuccess.output terminal.output
339- testsuccess grep '^REWRITE ' terminal.output
340- testsuccess grep ' root root ' terminal.output
341- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
342- testdpkgnotinstalled trigstuff
343-
344- testsuccess aptget purge trigdepends-$TYPE -y
345- cp rootdir/tmp/testsuccess.output terminal.output
346- testfailure grep '^REWRITE ' terminal.output
347- testfailure grep ' root root ' terminal.output
348- testdpkgnotinstalled triggerable-$TYPE trigdepends-$TYPE
349-}
350-#runtests 'interest'
351-runtests 'interest-noawait'
352diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts
353index 41c0570..d3960d7 100755
354--- a/test/integration/test-no-fds-leaked-to-maintainer-scripts
355+++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts
356@@ -59,8 +59,7 @@ startup packages configure
357 configure $PKGNAME 1.0 <none>
358 status unpacked $PKGNAME 1.0
359 status half-configured $PKGNAME 1.0
360-status installed $PKGNAME 1.0
361-startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log
362+status installed $PKGNAME 1.0" cut -f 3- -d' ' rootdir/var/log/dpkg.log
363 }
364 checkinstall
365
366@@ -85,8 +84,7 @@ status config-files $PKGNAME 1.0
367 status config-files $PKGNAME 1.0
368 status config-files $PKGNAME 1.0
369 status config-files $PKGNAME 1.0
370-status not-installed $PKGNAME <none>
371-startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log
372+status not-installed $PKGNAME <none>" cut -f 3- -d' ' rootdir/var/log/dpkg.log
373 }
374 checkpurge
375
376--
3772.1.4
378
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/0001-fix-the-gcc-version-check.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-fix-the-gcc-version-check.patch
new file mode 100644
index 0000000000..beea56d2ae
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-fix-the-gcc-version-check.patch
@@ -0,0 +1,160 @@
1From 15c6ef6a827d3681ad06e862d27ab3dfb84cb687 Mon Sep 17 00:00:00 2001
2From: Roy Li <rongqing.li@windriver.com>
3Date: Wed, 27 May 2015 14:30:28 +0800
4Subject: [PATCH] fix the gcc version check
5
6Upstream-Status: pending
7
8"GCC diagnostic push" is gcc 4.6 feature, gcc 4.4.7 on centos did not know it
9
10Signed-off-by: Roy Li <rongqing.li@windriver.com>
11---
12 apt-pkg/cacheset.h | 4 ++--
13 apt-pkg/deb/debsrcrecords.cc | 12 ++++++------
14 apt-pkg/srcrecords.cc | 4 ++--
15 apt-pkg/srcrecords.h | 4 ++--
16 apt-pkg/vendorlist.cc | 4 ++--
17 5 files changed, 14 insertions(+), 14 deletions(-)
18
19diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h
20index b7229bc..8cc2917 100644
21--- a/apt-pkg/cacheset.h
22+++ b/apt-pkg/cacheset.h
23@@ -119,12 +119,12 @@ public:
24 inline std::string FullName(bool const Pretty) const { return getPkg().FullName(Pretty); }
25 inline std::string FullName() const { return getPkg().FullName(); }
26 APT_DEPRECATED inline const char *Section() const {
27-#if __GNUC__ >= 4
28+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
29 #pragma GCC diagnostic push
30 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
31 #endif
32 return getPkg().Section();
33-#if __GNUC__ >= 4
34+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
35 #pragma GCC diagnostic pop
36 #endif
37 }
38diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc
39index 49a348d..4bc9dcf 100644
40--- a/apt-pkg/deb/debsrcrecords.cc
41+++ b/apt-pkg/deb/debsrcrecords.cc
42@@ -126,13 +126,13 @@ bool debSrcRecordParser::Files(std::vector<pkgSrcRecords::File> &F)
43 for (std::vector<pkgSrcRecords::File2>::const_iterator f2 = F2.begin(); f2 != F2.end(); ++f2)
44 {
45 pkgSrcRecords::File2 f;
46-#if __GNUC__ >= 4
47+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
48 #pragma GCC diagnostic push
49 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
50 #endif
51 f.MD5Hash = f2->MD5Hash;
52 f.Size = f2->Size;
53-#if __GNUC__ >= 4
54+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
55 #pragma GCC diagnostic pop
56 #endif
57 f.Path = f2->Path;
58@@ -190,14 +190,14 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
59 // we have it already, store the new hash and be done
60 if (file != List.end())
61 {
62-#if __GNUC__ >= 4
63+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
64 // set for compatibility only, so warn users not us
65 #pragma GCC diagnostic push
66 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
67 #endif
68 if (checksumField == "Files")
69 file->MD5Hash = hash;
70-#if __GNUC__ >= 4
71+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
72 #pragma GCC diagnostic pop
73 #endif
74 // an error here indicates that we have two different hashes for the same file
75@@ -212,7 +212,7 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
76 F.FileSize = strtoull(size.c_str(), NULL, 10);
77 F.Hashes.push_back(hashString);
78
79-#if __GNUC__ >= 4
80+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
81 // set for compatibility only, so warn users not us
82 #pragma GCC diagnostic push
83 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
84@@ -220,7 +220,7 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
85 F.Size = F.FileSize;
86 if (checksumField == "Files")
87 F.MD5Hash = hash;
88-#if __GNUC__ >= 4
89+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
90 #pragma GCC diagnostic pop
91 #endif
92
93diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc
94index 3175ee7..340e796 100644
95--- a/apt-pkg/srcrecords.cc
96+++ b/apt-pkg/srcrecords.cc
97@@ -160,7 +160,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
98 for (std::vector<pkgSrcRecords::File>::const_iterator f = F.begin(); f != F.end(); ++f)
99 {
100 pkgSrcRecords::File2 f2;
101-#if __GNUC__ >= 4
102+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
103 #pragma GCC diagnostic push
104 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
105 #endif
106@@ -168,7 +168,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
107 f2.Size = f->Size;
108 f2.Hashes.push_back(HashString("MD5Sum", f->MD5Hash));
109 f2.FileSize = f->Size;
110-#if __GNUC__ >= 4
111+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
112 #pragma GCC diagnostic pop
113 #endif
114 f2.Path = f->Path;
115diff --git a/apt-pkg/srcrecords.h b/apt-pkg/srcrecords.h
116index dde22bd..91f8061 100644
117--- a/apt-pkg/srcrecords.h
118+++ b/apt-pkg/srcrecords.h
119@@ -30,7 +30,7 @@ class pkgSrcRecords
120 {
121 public:
122
123-#if __GNUC__ >= 4
124+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
125 // ensure that con- & de-structor don't trigger this warning
126 #pragma GCC diagnostic push
127 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
128@@ -48,7 +48,7 @@ class pkgSrcRecords
129 unsigned long long FileSize;
130 HashStringList Hashes;
131 };
132-#if __GNUC__ >= 4
133+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
134 #pragma GCC diagnostic pop
135 #endif
136
137diff --git a/apt-pkg/vendorlist.cc b/apt-pkg/vendorlist.cc
138index fb33ff1..ba1d3c3 100644
139--- a/apt-pkg/vendorlist.cc
140+++ b/apt-pkg/vendorlist.cc
141@@ -11,7 +11,7 @@
142
143 #include <apti18n.h>
144
145-#if __GNUC__ >= 4
146+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
147 #pragma GCC diagnostic push
148 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
149 #endif
150@@ -163,6 +163,6 @@ const Vendor* pkgVendorList::FindVendor(const std::vector<string> GPGVOutput) /*
151 }
152 /*}}}*/
153
154-#if __GNUC__ >= 4
155+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
156 #pragma GCC diagnostic pop
157 #endif
158--
1591.9.1
160
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/0001-remove-Wsuggest-attribute-from-CFLAGS.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-remove-Wsuggest-attribute-from-CFLAGS.patch
new file mode 100644
index 0000000000..7c42ff07b8
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/0001-remove-Wsuggest-attribute-from-CFLAGS.patch
@@ -0,0 +1,43 @@
1From 2bff7ee06a4f96e7d326991d61fb86f8aa651d48 Mon Sep 17 00:00:00 2001
2From: Roy Li <rongqing.li@windriver.com>
3Date: Wed, 27 May 2015 09:48:45 +0800
4Subject: [PATCH] remove Wsuggest-attribute from CXXFLAGS
5
6Upstream-Status: Inappropriate
7
8Wsuggest-attribute is GCC 4.6 feature, centos6 is using GCC
94.4.7 which unknown this flag, so remove it from CXXFLAGS
10
11Signed-off-by: Roy Li <rongqing.li@windriver.com>
12---
13 buildlib/environment.mak.in | 1 -
14 test/libapt/makefile | 1 -
15 2 files changed, 2 deletions(-)
16
17diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
18index b0a8d9d..91ed011 100644
19--- a/buildlib/environment.mak.in
20+++ b/buildlib/environment.mak.in
21@@ -11,7 +11,6 @@ CPPFLAGS+= @CPPFLAGS@ @DEFS@ -D_REENTRANT -D_FORTIFY_SOURCE=2
22 CXX = @CXX@
23 CXXFLAGS+= @CXXFLAGS@ -Wall -Wextra
24 CXXFLAGS+= -Wcast-align -Wlogical-op -Wredundant-decls -Wmissing-declarations -Wunsafe-loop-optimizations
25-CXXFLAGS+= -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn
26 # a bit too pedantic to be run by default
27 #CXXFLAGS+= -Wpedantic -Wno-long-long -Wno-vla -Wno-variadic-macros
28 NUM_PROCS = @NUM_PROCS@
29diff --git a/test/libapt/makefile b/test/libapt/makefile
30index 7f23ace..e805f13 100644
31--- a/test/libapt/makefile
32+++ b/test/libapt/makefile
33@@ -39,7 +39,6 @@ CXXFLAGS += -pthread
34 # disable some flags for gtest again
35 CXXFLAGS+= -Wno-missing-declarations
36 CXXFLAGS+= -Wno-missing-field-initializers
37-CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn
38
39 # All Google Test headers. Usually you shouldn't change this definition.
40 GTEST_HEADERS = /usr/include/gtest/*.h \
41--
421.9.1
43
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/disable-configure-in-makefile.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/disable-configure-in-makefile.patch
new file mode 100644
index 0000000000..7c2f64e3e6
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/disable-configure-in-makefile.patch
@@ -0,0 +1,18 @@
1Disable configure at compilation stage
2
3Upstream-Status: Inappropriate [configuration]
4Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
5
6Index: apt-0.9.7.7/Makefile
7===================================================================
8--- apt-0.9.7.7.orig/Makefile
9+++ apt-0.9.7.7/Makefile
10@@ -33,7 +33,7 @@ veryclean: clean
11 # The startup target builds the necessary configure scripts. It should
12 # be used after a CVS checkout.
13 CONVERTED=environment.mak include/config.h include/apti18n.h build/doc/Doxyfile makefile
14-include buildlib/configure.mak
15+#include buildlib/configure.mak
16 $(BUILDDIR)/include/config.h: buildlib/config.h.in
17 $(BUILDDIR)/include/apti18n.h: buildlib/apti18n.h.in
18 $(BUILDDIR)/environment.mak: buildlib/environment.mak.in
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/disable-test.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/disable-test.patch
new file mode 100644
index 0000000000..676795dc8a
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/disable-test.patch
@@ -0,0 +1,58 @@
1[PATCH] disable test
2
3Upstream-Status: Inappropriate [configuration]
4
5test needs gtest package, so not build the test dir
6
7Signed-off-by: Roy Li <rongqing.li@windriver.com>
8---
9 Makefile | 7 +++----
10 configure.ac | 6 ------
11 2 files changed, 3 insertions(+), 10 deletions(-)
12
13diff --git a/Makefile b/Makefile
14index 5f5fb27..5070e96 100644
15--- a/Makefile
16+++ b/Makefile
17@@ -9,8 +9,8 @@ endif
18 .PHONY: default
19 default: startup all
20
21-.PHONY: headers library clean veryclean all binary program doc test update-po
22-all headers library clean veryclean binary program doc manpages docbook test update-po startup dirs:
23+.PHONY: headers library clean veryclean all binary program doc update-po
24+all headers library clean veryclean binary program doc manpages docbook update-po startup dirs:
25 $(MAKE) -C vendor $@
26 $(MAKE) -C apt-pkg $@
27 $(MAKE) -C apt-inst $@
28@@ -21,9 +21,8 @@ all headers library clean veryclean binary program doc manpages docbook test upd
29 $(MAKE) -C dselect $@
30 # $(MAKE) -C doc $@
31 $(MAKE) -C po $@
32- $(MAKE) -C test $@
33
34-all headers library clean veryclean binary program doc manpages docbook test update-po: startup dirs
35+all headers library clean veryclean binary program doc manpages docbook update-po: startup dirs
36
37 dirs: startup
38
39diff --git a/configure.ac b/configure.ac
40index 5663aaf..b0f9564 100644
41--- a/configure.ac
42+++ b/configure.ac
43@@ -89,12 +89,6 @@ AC_CHECK_LIB(curl, curl_easy_init,
44 AC_MSG_ERROR([failed: I need CURL due https support]),
45 )
46
47-AC_LANG_PUSH([C++])
48-AC_CHECK_HEADER(gtest/gtest.h,,
49- AC_MSG_ERROR([failed: I need gtest to build tests]),
50-)
51-AC_LANG_POP([C++])
52-
53
54 AC_SUBST(BDBLIB)
55
56--
571.9.1
58
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/fix-gcc-4.6-null-not-defined.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/fix-gcc-4.6-null-not-defined.patch
new file mode 100644
index 0000000000..801ae6dddb
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/fix-gcc-4.6-null-not-defined.patch
@@ -0,0 +1,12 @@
1Upstream-Status: Pending
2
3--- a/apt-pkg/contrib/weakptr.h
4+++ b/apt-pkg/contrib/weakptr.h
5@@ -21,6 +21,7 @@
6 #ifndef WEAK_POINTER_H
7 #define WEAK_POINTER_H
8
9+#include <cstdlib>
10 #include <set>
11 /**
12 * Class for objects providing support for weak pointers.
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/makerace.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/makerace.patch
new file mode 100644
index 0000000000..46e3161b67
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/makerace.patch
@@ -0,0 +1,23 @@
1I was seeing various issues with parallel make, mainly due to to what was likely
2partially installed headers. If you change into the source directory and
3"NOISY=1 make ../obj/apt-pkg/sourcelist.opic" in apt-pkg, you'll see it
4doesn't have any dependencies on the headers being installed. This patch
5fixes that so things build correctly.
6
7RP 2012/3/19
8
9Upstream-Status: Pending
10
11Index: apt-0.9.9.4/buildlib/library.mak
12===================================================================
13--- apt-0.9.9.4.orig/buildlib/library.mak 2013-07-31 15:45:07.320440575 +0300
14+++ apt-0.9.9.4/buildlib/library.mak 2013-07-31 15:46:49.440440561 +0300
15@@ -61,7 +61,7 @@
16
17 # Compilation rules
18 vpath %.cc $(SUBDIRS)
19-$(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS)
20+$(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS) $($(LOCAL)-HEADERS)
21 echo Compiling $< to $@
22 $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $<
23 $(DoDep)
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/no-nls-dpkg.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/no-nls-dpkg.patch
new file mode 100644
index 0000000000..a0996d4d44
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/no-nls-dpkg.patch
@@ -0,0 +1,26 @@
1Upstream-Status: Pending
2
3--- a/apt-pkg/deb/dpkgpm.cc
4+++ b/apt-pkg/deb/dpkgpm.cc
5@@ -42,6 +42,12 @@
6 #include <apti18n.h>
7 /*}}}*/
8
9+#ifdef USE_NLS
10+#define _dpkg(x) dgettext("dpkg", x)
11+#else
12+#define _dpkg(x) x
13+#endif
14+
15 using namespace std;
16
17 namespace
18@@ -1279,7 +1285,7 @@ void pkgDPkgPM::WriteApportReport(const
19 }
20
21 // check if its not a follow up error
22- const char *needle = dgettext("dpkg", "dependency problems - leaving unconfigured");
23+ const char *needle = _dpkg("dependency problems - leaving unconfigured");
24 if(strstr(errormsg, needle) != NULL) {
25 std::clog << _("No apport report written because the error message indicates its a followup error from a previous failure.") << std::endl;
26 return;
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/noconfigure.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/noconfigure.patch
new file mode 100644
index 0000000000..ebc67203b4
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/noconfigure.patch
@@ -0,0 +1,37 @@
1Upstream-Status: Inappropriate [configuration]
2Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
3
4
5diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
6index 249542c..0a1911f 100644
7--- a/apt-pkg/packagemanager.cc
8+++ b/apt-pkg/packagemanager.cc
9@@ -952,10 +952,12 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
10 return false;
11
12 if (Immediate == true) {
13+#if 0
14 // Perform immedate configuration of the package.
15 if (SmartConfigure(Pkg, Depth + 1) == false)
16 _error->Error(_("Could not perform immediate configuration on '%s'. "
17 "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.FullName().c_str(),2);
18+#endif
19 }
20
21 return true;
22@@ -1038,6 +1040,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
23 }
24 }
25
26+#if 0
27 // Final run through the configure phase
28 if (ConfigureAll() == false)
29 return Failed;
30@@ -1052,6 +1055,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
31 return Failed;
32 }
33 }
34+#endif
35
36 return Completed;
37 }
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/nodoc.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/nodoc.patch
new file mode 100644
index 0000000000..449e42df4a
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/nodoc.patch
@@ -0,0 +1,18 @@
1Disable documentation
2
3Upstream-Status: Inappropriate [configuration]
4Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
5
6Index: apt-0.9.7.7/Makefile
7===================================================================
8--- apt-0.9.7.7.orig/Makefile
9+++ apt-0.9.7.7/Makefile
10@@ -17,7 +17,7 @@ all headers library clean veryclean bina
11 $(MAKE) -C cmdline $@
12 $(MAKE) -C ftparchive $@
13 $(MAKE) -C dselect $@
14- $(MAKE) -C doc $@
15+# $(MAKE) -C doc $@
16 $(MAKE) -C po $@
17 $(MAKE) -C test $@
18
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/truncate-filename.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/truncate-filename.patch
new file mode 100644
index 0000000000..db1c42b66c
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/truncate-filename.patch
@@ -0,0 +1,35 @@
1strutl.cc: the filename can't be longer than 255
2
3The URItoFileName translates the path into the filename, but the
4filename can't be longer than 255 according to
5/usr/include/linux/limits.h.
6
7Truncate it when it is longer than 240 (leave some spaces for
8".Packages" and "._Release" suffix)
9
10Upstream-Status: Pending
11Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
12---
13 apt-pkg/contrib/strutl.cc | 7 ++++++-
14 1 file changed, 6 insertions(+), 1 deletion(-)
15
16diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
17--- a/apt-pkg/contrib/strutl.cc
18+++ b/apt-pkg/contrib/strutl.cc
19@@ -399,7 +399,12 @@ string URItoFileName(const string &URI)
20 // "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF";
21 string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*");
22 replace(NewURI.begin(),NewURI.end(),'/','_');
23- return NewURI;
24+
25+ // Truncate from the head when it is longer than 240
26+ if(NewURI.length() > 240)
27+ return NewURI.substr(NewURI.length() - 240, NewURI.length() - 1);
28+ else
29+ return NewURI;
30 }
31 /*}}}*/
32 // Base64Encode - Base64 Encoding routine for short strings /*{{{*/
33--
341.7.10.4
35
diff --git a/meta/recipes-devtools/apt/apt-1.0.9.9/use-host.patch b/meta/recipes-devtools/apt/apt-1.0.9.9/use-host.patch
new file mode 100644
index 0000000000..b30fcff0d6
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-1.0.9.9/use-host.patch
@@ -0,0 +1,15 @@
1Upstream-Status: Pending
2
3Index: apt-0.9.7.7/configure.ac
4===================================================================
5--- apt-0.9.7.7.orig/configure.ac
6+++ apt-0.9.7.7/configure.ac
7@@ -112,7 +112,7 @@ dnl This is often the dpkg architecture
8 dnl First check against the full canonical canoncial-system-type in $target
9 dnl and if that fails, just look for the cpu
10 AC_MSG_CHECKING(debian architecture)
11-archset="`dpkg-architecture -qDEB_HOST_ARCH`"
12+archset="`echo $host_alias|cut -d'-' -f1`"
13 if test "x$archset" = "x"; then
14 AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
15 fi