diff options
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | apt-private/private-source.cc | 2 | ||||
-rw-r--r-- | debian/apt.dirs | 1 | ||||
-rw-r--r-- | debian/changelog | 23 | ||||
-rw-r--r-- | doc/apt-key.8.xml | 28 | ||||
-rw-r--r-- | doc/apt-verbatim.ent | 2 | ||||
-rw-r--r-- | doc/apt.ent | 4 | ||||
-rw-r--r-- | doc/po/apt-doc.pot | 4 | ||||
-rw-r--r-- | po/apt-all.pot | 4 | ||||
-rw-r--r-- | po/zh_CN.po | 19 | ||||
-rwxr-xr-x | test/integration/run-tests | 2 | ||||
-rwxr-xr-x | test/integration/test-apt-get-satisfy | 89 | ||||
-rwxr-xr-x | test/integration/test-github-111-invalid-armember | 6 | ||||
-rwxr-xr-x | test/integration/test-policy-pinning | 23 |
14 files changed, 150 insertions, 59 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 55469d8d4..b8836763d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,7 +200,7 @@ endif() # Configure some variables like package, version and architecture. set(PACKAGE ${PROJECT_NAME}) set(PACKAGE_MAIL "APT Development Team <deity@lists.debian.org>") -set(PACKAGE_VERSION "2.3.14") +set(PACKAGE_VERSION "2.3.15") string(REGEX MATCH "^[0-9.]+" PROJECT_VERSION ${PACKAGE_VERSION}) if (NOT DEFINED DPKG_DATADIR) diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc index e007c542f..14bc5b43e 100644 --- a/apt-private/private-source.cc +++ b/apt-private/private-source.cc @@ -740,7 +740,7 @@ bool DoBuildDep(CommandLine &CmdL) break; } } - std::string const pseudo = "command line argument"; + std::string const pseudo = "satisfy:command-line"; WriteBuildDependencyPackage(buildDepsPkgFile, pseudo, pseudoArch, BuildDeps); pseudoPkgs.emplace_back(pseudo, pseudoArch, ""); } diff --git a/debian/apt.dirs b/debian/apt.dirs index 54adcaa05..3e1f9e1d3 100644 --- a/debian/apt.dirs +++ b/debian/apt.dirs @@ -1,2 +1,3 @@ etc/kernel/postinst.d usr/share/bug/apt +etc/apt/keyrings diff --git a/debian/changelog b/debian/changelog index f4525287c..3de4149a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,26 @@ +apt (2.3.15) unstable; urgency=medium + + [ Arnaud Rebillout ] + * Fix incorrect type when parsing Size (int to unsigned long long) + (Closes: #1004064) + + [ Julian Andres Klode ] + * Add a --full mode to apt show + + [ Ville Skyttä ] + * Fix "was already not hold" message grammar + + [ Jörn-Thorben Hinz ] + * Also bash-complete .deb filenames after `apt install` for paths starting with ~ + * Bash-complete either package name or .deb filename for `apt install` + * Start bash-completing .deb file paths after the first . passed in an argument to `apt install` + * Provide bash-completion of .dsc filenames for `apt build-dep` + (Closes: #985899) + * Don’t fail bash-completion for `apt` when the nounset option is set + * bash-completion: Don’t misidentify short options as commands to `apt` + + -- Julian Andres Klode <jak@debian.org> Tue, 01 Feb 2022 18:04:58 +0100 + apt (2.3.14) unstable; urgency=medium [ Helge Kreutzmann ] diff --git a/doc/apt-key.8.xml b/doc/apt-key.8.xml index eace6a02e..6167a7826 100644 --- a/doc/apt-key.8.xml +++ b/doc/apt-key.8.xml @@ -196,6 +196,34 @@ </variablelist> </refsect1> + <refsect1><title>Deprecation</title> + + <para>Except for using <command>apt-key del</command> in maintainer scripts, the use of <command>apt-key</command> is deprecated. This section shows how to replace existing use of <command>apt-key</command>.</para> + +<para>If your existing use of <command>apt-key add</command> looks like this:</para> +<para><literal>wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add -</literal></para> +<para>Then you can directly replace this with:</para> +<para><literal>wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc</literal></para> +<para>Make sure to use the "<literal>asc</literal>" extension for ASCII armored +keys and the "<literal>gpg</literal>" extension for the binary OpenPGP +format (also known as "GPG key public ring"). The binary OpenPGP format works +for all apt versions, while the ASCII armored format works for apt version >= +1.4.</para> +<para>Instead of placing keys into the <filename>/etc/apt/trusted.gpg.d</filename> +directory, you can place them anywhere on your filesystem by using the +<literal>Signed-By</literal> option in your <literal>sources.list</literal> and +pointing to the filename of the key. See &sources-list; for details. +Since APT 2.4, <filename>/etc/apt/keyrings</filename> is provided as the recommended +location for keys not managed by packages. +When using a deb822-style sources.list, and with apt version >= 2.4, the +<literal>Signed-By</literal> option can also be used to include the full ASCII +armored keyring directly in the <literal>sources.list</literal> without an +additional file. +</para> + + </refsect1> + + <refsect1><title>Files</title> <variablelist> diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index 9d11593a3..f8217839d 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -274,7 +274,7 @@ "> <!-- this will be updated by 'prepare-release' --> -<!ENTITY apt-product-version "2.3.14"> +<!ENTITY apt-product-version "2.3.15"> <!-- (Code)names for various things used all over the place --> <!ENTITY debian-oldstable-codename "buster"> diff --git a/doc/apt.ent b/doc/apt.ent index 6a3837b95..db4cb6f38 100644 --- a/doc/apt.ent +++ b/doc/apt.ent @@ -159,6 +159,10 @@ be stored here (by other packages or the administrator). Configuration Item <literal>Dir::Etc::TrustedParts</literal>.</para></listitem> </varlistentry> + <varlistentry><term><filename>/etc/apt/keyrings/</filename></term> + <listitem><para>Place to store additional keyrings to be used with <literal>Signed-By</literal>. + </para></listitem> + </varlistentry> "> <!ENTITY file-extended_states " diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index d481cc219..7262ce2f9 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt-doc 2.3.14\n" +"Project-Id-Version: apt-doc 2.3.15\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2022-01-06 20:58+0100\n" +"POT-Creation-Date: 2022-02-01 18:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/po/apt-all.pot b/po/apt-all.pot index 2df553d33..095d5490b 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: apt 2.3.14\n" +"Project-Id-Version: apt 2.3.15\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" -"POT-Creation-Date: 2022-01-06 20:58+0100\n" +"POT-Creation-Date: 2022-02-01 18:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index c387f87fd..e44dddff5 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -5,14 +5,14 @@ # Carlos Z.F. Liu <carlosliu@users.sourceforge.net>, 2004, 2006. # Aron Xu <happyaron.xu@gmail.com>, 2009, 2010. # Mo Zhou <cdluminate@gmail.com>, 2014, 2015, 2016, 2017, 2019. -# Boyuan Yang <073plan@gmail.com>, 2018, 2020. +# Boyuan Yang <073plan@gmail.com>, 2018, 2020, 2022. # msgid "" msgstr "" -"Project-Id-Version: apt 2.0.1\n" +"Project-Id-Version: apt 2.3.15\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" "POT-Creation-Date: 2021-11-17 18:30+0100\n" -"PO-Revision-Date: 2020-03-26 17:38-0400\n" +"PO-Revision-Date: 2022-02-03 13:55-0500\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <debian-l10n-chinese@lists.debian.org>\n" "Language: zh_CN\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 3.0.1\n" #: apt-pkg/acquire-item.cc msgid "" @@ -650,10 +650,9 @@ msgid "Tar checksum failed, archive corrupted" msgstr "Tar 的校验和不符,文件已损坏" #: apt-pkg/contrib/extracttar.cc -#, fuzzy, c-format -#| msgid "Unknown TAR header type %u, member %s" +#, c-format msgid "Unknown TAR header type %u" -msgstr "未知的 TAR 数据头类型 %u,成员 %s" +msgstr "未知的 TAR 数据头类型 %u" #: apt-pkg/contrib/fileutl.cc #, c-format @@ -1880,7 +1879,7 @@ msgstr "虽然您指定了仅执行常规操作,但这并不是常规操作。 msgid "" "Removing essential system-critical packages is not permitted. This might " "break the system." -msgstr "" +msgstr "不允许移除系统必需的关键软件包。这么做可能损坏系统。" #: apt-private/private-install.cc cmdline/apt-mark.cc msgid "Do you want to continue?" @@ -2015,7 +2014,7 @@ msgstr "正在列表" msgid "There is %i additional version. Please use the '-a' switch to see it" msgid_plural "" "There are %i additional versions. Please use the '-a' switch to see them." -msgstr[0] "还有 %i 个版本。请使用 -a 选项来查看它(他们)。" +msgstr[0] "还有 %i 个版本。请使用 -a 选项来查看它(它们)。" #. TRANSLATORS: placeholder is a binary name like apt or apt-get #: apt-private/private-main.cc @@ -2243,7 +2242,7 @@ msgstr " 版本列表:" #: apt-private/private-show.cc msgid "phased" -msgstr "" +msgstr "阶段更新" #: apt-private/private-source.cc #, c-format diff --git a/test/integration/run-tests b/test/integration/run-tests index 80f1fc61d..f5a39f244 100755 --- a/test/integration/run-tests +++ b/test/integration/run-tests @@ -104,6 +104,8 @@ if [ -n "$APT_TEST_JOBS" ]; then parallel=parallel if command -v moreutils-parallel >/dev/null 2>&1; then parallel=moreutils-parallel + elif command -v parallel.moreutils >/dev/null 2>&1; then + parallel=parallel.moreutils fi exec $parallel -j "$APT_TEST_JOBS" "./$(basename "$0")" -- $(echo "$TESTLIST") fi diff --git a/test/integration/test-apt-get-satisfy b/test/integration/test-apt-get-satisfy index 23daf069a..267760ffd 100755 --- a/test/integration/test-apt-get-satisfy +++ b/test/integration/test-apt-get-satisfy @@ -13,9 +13,12 @@ insertinstalledpackage 'conflicts' 'i386' '1' 'Multi-Arch: same' insertinstalledpackage 'conflicts' 'amd64' '1' 'Multi-Arch: same' setupaptarchive - -testsuccessequal "Reading package lists... -Building dependency tree... +testrun() { + local TYPE="$1" + local HEADER="$2" + shift 2 + msgmsg "$TYPE: Normal" + testsuccessequal "$HEADER The following packages will be REMOVED: conflicts The following NEW packages will be installed: @@ -23,10 +26,9 @@ The following NEW packages will be installed: 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Remv conflicts [1] Inst depends (1 stable [i386]) -Conf depends (1 stable [i386])" aptget satisfy --simulate "depends (>= 1)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" +Conf depends (1 stable [i386])" aptget satisfy --simulate "depends (>= 1)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" "$@" -testsuccessequal "Reading package lists... -Building dependency tree... + testsuccessequal "$HEADER The following packages will be REMOVED: conflicts:amd64 The following NEW packages will be installed: @@ -34,43 +36,76 @@ The following NEW packages will be installed: 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. Remv conflicts:amd64 [1] Inst depends:amd64 (1 stable [amd64]) -Conf depends:amd64 (1 stable [amd64])" aptget satisfy --simulate "depends (>= 1)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --host-architecture amd64 +Conf depends:amd64 (1 stable [amd64])" aptget satisfy --simulate "depends (>= 1)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --host-architecture amd64 "$@" -msgmsg "Build profile" + msgmsg "$TYPE: Build profile" -testsuccessequal "Reading package lists... -Building dependency tree... -0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" + testsuccessequal "$HEADER +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" "$@" -testsuccessequal "Reading package lists... -Building dependency tree... + testsuccessequal "$HEADER The following NEW packages will be installed: depends:amd64 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst depends:amd64 (1 stable [amd64]) -Conf depends:amd64 (1 stable [amd64])" aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" -P a +Conf depends:amd64 (1 stable [amd64])" aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" -P a "$@" -testsuccessequal "Reading package lists... -Building dependency tree... + testsuccessequal "$HEADER The following NEW packages will be installed: depends 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Inst depends (1 stable [i386]) -Conf depends (1 stable [i386])" aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" -P i +Conf depends (1 stable [i386])" aptget satisfy --simulate "depends:amd64 <a>, depends:i386 <i>" -P i "$@" + msgmsg "$TYPE: Broken syntax" + testfailureequal "E: Problem parsing dependency: apt (>= 2" aptget satisfy 'foo' 'apt (>= 2' -s "$@" + testfailureequal "E: Problem parsing dependency: Conflicts: apt (>= 2" aptget satisfy 'foo' 'Conflicts: apt (>= 2' -s "$@" -msgmsg "Broken syntax" -testfailureequal "E: Problem parsing dependency: apt (>= 2" aptget satisfy 'foo' 'apt (>= 2' -s -testfailureequal "E: Problem parsing dependency: Conflicts: apt (>= 2" aptget satisfy 'foo' 'Conflicts: apt (>= 2' -s + msgmsg "$TYPE: Legacy operators" + testfailureequal "E: Invalid operator '<' at offset 5, did you mean '<<' or '<='? - in: foo (< 1)" aptget satisfy 'foo (< 1)' -s "$@" + testfailureequal "E: Invalid operator '>' at offset 5, did you mean '>>' or '>='? - in: foo (> 1)" aptget satisfy 'foo (> 1)' -s "$@" + msgmsg "$TYPE: Unsupported dependency type" + testfailureequal "E: Problem parsing dependency: Recommends: foo" aptget satisfy 'Recommends: foo' -s "$@" -msgmsg "Legacy operators" -testfailureequal "E: Invalid operator '<' at offset 5, did you mean '<<' or '<='? - in: foo (< 1)" aptget satisfy 'foo (< 1)' -s -testfailureequal "E: Invalid operator '>' at offset 5, did you mean '>>' or '>='? - in: foo (> 1)" aptget satisfy 'foo (> 1)' -s + msgmsg "$TYPE: Empty dependency" + testfailureequal "E: Problem parsing dependency: " aptget satisfy '' -s "$@" +} -msgmsg "Unsupported dependency type" -testfailureequal "E: Problem parsing dependency: Recommends: foo" aptget satisfy 'Recommends: foo' -s +testrun 'Internal' 'Reading package lists... +Building dependency tree...' +testrun 'External' 'Reading package lists... +Building dependency tree... +Execute external solver...' --solver apt + +testfailureequal "Reading package lists... +Building dependency tree... +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: -msgmsg "Empty dependency" -testfailureequal "E: Problem parsing dependency: " aptget satisfy '' -s +The following packages have unmet dependencies: + satisfy:command-line : Depends: depends (>= 2) but it is not going to be installed +E: Unable to correct problems, you have held broken packages." aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" + +testfailureequal "Reading package lists... +Building dependency tree... +Execute external solver... +The solver encountered an error of type: ERR_UNSOLVABLE +The following information might help you to understand what is wrong: +The following packages have unmet dependencies: + satisfy:command-line : Depends: depends (>= 2) but it is not going to be installed + +Some packages could not be installed. This may mean that you have +requested an impossible situation or if you are using the unstable +distribution that some required packages have not yet been created +or been moved out of Incoming. +The following information may help to resolve the situation: + +The following packages have unmet dependencies: + satisfy:command-line : Depends: depends (>= 2) but it is not going to be installed + Conflicts: conflicts:i386 (>= 1) +E: External solver failed with: The following packages have unmet dependencies:" aptget satisfy --simulate "depends (>= 2)" "Conflicts: conflicts:i386 (>= 1) [i386], conflicts:amd64 (>= 1) [amd64]" --solver apt diff --git a/test/integration/test-github-111-invalid-armember b/test/integration/test-github-111-invalid-armember index e4b897ec3..2340321ce 100755 --- a/test/integration/test-github-111-invalid-armember +++ b/test/integration/test-github-111-invalid-armember @@ -9,13 +9,13 @@ setupaptarchive # this used to crash, but it should treat it as an invalid member header touch ' ' -ar -q test.deb ' ' +testsuccess ar -q test.deb ' ' testsuccessequal "E: Invalid archive member header" ${APTTESTHELPERSBINDIR}/testdeb test.deb rm test.deb touch 'x' -ar -q test.deb 'x' +testsuccess ar -q test.deb 'x' testsuccessequal "E: This is not a valid DEB archive, missing 'debian-binary' member" ${APTTESTHELPERSBINDIR}/testdeb test.deb @@ -30,5 +30,5 @@ gzip control.tar cp control.tar.gz data.tar.gz touch debian-binary rm test.deb -ar -q test.deb debian-binary control.tar.gz data.tar.gz +testsuccess ar -q test.deb debian-binary control.tar.gz data.tar.gz testsuccessequal "W: Unknown TAR header type 88" ${APTTESTHELPERSBINDIR}/testdeb test.deb diff --git a/test/integration/test-policy-pinning b/test/integration/test-policy-pinning index 23e90bab6..fccef6da3 100755 --- a/test/integration/test-policy-pinning +++ b/test/integration/test-policy-pinning @@ -18,9 +18,9 @@ testequalpolicy() { local AP="$2" shift 2 testsuccessequal "Package files: - $(echo "$SP" | awk '{ printf("%3s\n",$0) }') ${STATUS} + $(printf '%3s' "$SP") ${STATUS} release a=now - $(echo "$AP" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} Packages + $(printf '%3s' "$AP") file:${APTARCHIVE} Packages release c= Pinned packages:" aptcache policy "$@" } @@ -110,11 +110,11 @@ testequalpolicycoolstuff() { local BPO2ARCHIVE="" if [ ! "$7" = "2.0~bpo2" ]; then BPO1PIN="$AB" - BPO1ARCHIVE=" $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages" + BPO1ARCHIVE=" $(printf '%3s' "$AB") file:${APTARCHIVE} backports/main all Packages" else BPO2ARCHIVE=" 2.0~bpo2 $AB - $(echo "$AB" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} backports/main all Packages" + $(printf '%3s' "$AB") file:${APTARCHIVE} backports/main all Packages" SB="$(echo "$SB" | tail -n 1)" shift fi @@ -126,7 +126,7 @@ testequalpolicycoolstuff() { $IB 2.0~bpo1 $PB ${BPO1ARCHIVE}$SB $IS 1.0 $AS - $(echo "$AS" | awk '{ printf("%3s\n",$0) }') file:${APTARCHIVE} stable/main all Packages$SS" \ + $(printf '%3s' "$AS") file:${APTARCHIVE} stable/main all Packages$SS" \ aptcache policy coolstuff -o Policy=${INSTALLED}-${CANDIDATE}-${AB}-${AS}-${PB} $* } @@ -157,9 +157,8 @@ testequalpolicycoolstuff "" "1.0" 500 990 600 "" -o Test=RegexPin -t stable echo "Package: coolstuff Pin: release n=backports Pin-Priority: 200" > rootdir/etc/apt/preferences -#FIXME: policy can't differentiate between two sources where one has a package specific pin in place -# testequalpolicycoolstuff "" "1.0" 500 500 200 "2.0~bpo1" -o Test=PackagePin -# testequalpolicycoolstuff "" "1.0" 990 500 200 "2.0~bpo1" -o Test=PackagePin -t backports +testequalpolicycoolstuff "" "1.0" 500 500 200 "2.0~bpo1" -o Test=PackagePin +testequalpolicycoolstuff "" "1.0" 990 500 200 "2.0~bpo1" -o Test=PackagePin -t backports testequalpolicycoolstuff "" "1.0" 500 990 200 "2.0~bpo1" -o Test=PackagePin -t stable echo "Package: coolstuff Pin: release n=backports @@ -171,9 +170,9 @@ testequalpolicycoolstuff "" "2.0~bpo1" 990 500 600 "2.0~bpo1" -o Test=PackagePin echo "Package: coolstuff Pin: release n=backports Pin-Priority: -1" > rootdir/etc/apt/preferences -# testequalpolicycoolstuff "" "1.0" 500 500 -1 "2.0~bpo1" -o Test=PackagePin -# testequalpolicycoolstuff "" "1.0" 990 500 -1 "2.0~bpo1" -o Test=PackagePin -t backports -# testequalpolicycoolstuff "" "1.0" 500 990 -1 "2.0~bpo1" -o Test=PackagePin -t stable +testequalpolicycoolstuff "" "1.0" 500 500 -1 "2.0~bpo1" -o Test=PackagePin +testequalpolicycoolstuff "" "1.0" 990 500 -1 "2.0~bpo1" -o Test=PackagePin -t backports +testequalpolicycoolstuff "" "1.0" 500 990 -1 "2.0~bpo1" -o Test=PackagePin -t stable rm rootdir/etc/apt/preferences sed -i aptarchive/dists/backports/Release -e 1i"NotAutomatic: yes" @@ -268,7 +267,7 @@ testequalpolicycoolstuff "2.0~bpo1" "2.0~bpo2" 100 990 100 "" "2.0~bpo2" -o Test testequalpolicycoolstuff "2.0~bpo1" "2.0~bpo2" 990 500 100 "" "2.0~bpo2" -o Test=ButAutomaticUpgrades -t backports -tmppath=$(readlink -f .) +tmppath="$(readlink -f .)" # Check 16-bit integers echo "Package: coolstuff |