summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2009-08-24 13:30:05 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2009-08-24 13:30:05 +0200
commitf408836a80f20359c87d8815608af651199e3d73 (patch)
tree68223e0ef145325ccb75b4c25df7579236260e19
parent04876c50b8416ee0736b3233f968ecc805a5e05c (diff)
parentc6aa14e46842b0059c1648125562793e5edd08ee (diff)
merged from the mvo branch
-rw-r--r--apt-pkg/contrib/mmap.cc2
-rw-r--r--apt-pkg/pkgcache.cc12
-rw-r--r--apt-pkg/sourcelist.cc9
-rw-r--r--cmdline/apt-get.cc4
-rw-r--r--configure.in3
-rw-r--r--debian/NEWS (renamed from debian/NEWS.Debian)9
-rw-r--r--debian/apt.cron.daily69
-rw-r--r--debian/changelog55
-rw-r--r--debian/control5
-rw-r--r--doc/apt.conf.5.xml15
-rw-r--r--methods/ftp.cc33
-rw-r--r--methods/http.cc31
-rw-r--r--methods/https.cc31
13 files changed, 200 insertions, 78 deletions
diff --git a/apt-pkg/contrib/mmap.cc b/apt-pkg/contrib/mmap.cc
index aa52b4c30..4d5fcf71e 100644
--- a/apt-pkg/contrib/mmap.cc
+++ b/apt-pkg/contrib/mmap.cc
@@ -317,7 +317,7 @@ unsigned long DynamicMMap::WriteString(const char *String,
but why we should not at least try to grow it before we give up? */
bool DynamicMMap::Grow()
{
-#ifdef _POSIX_MAPPED_FILES
+#if defined(_POSIX_MAPPED_FILES) && defined(__linux__)
unsigned long newSize = WorkSpace + 1024*1024;
if(Fd != 0)
diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc
index 2a9756c45..b0ce6e598 100644
--- a/apt-pkg/pkgcache.cc
+++ b/apt-pkg/pkgcache.cc
@@ -275,13 +275,13 @@ pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const
return NeedsUnpack;
if (Pkg->CurrentState == pkgCache::State::UnPacked ||
- Pkg->CurrentState == pkgCache::State::HalfConfigured ||
- //we don't need to care for triggers awaiting packages
- //dpkg will deal with them automatically when the
- //trigger pending action is run (those packages are usually
- //in half-configured or triggers-pending state)
+ Pkg->CurrentState == pkgCache::State::HalfConfigured)
+ // we leave triggers alone complettely. dpkg deals with
+ // them in a hard-to-predict manner and if they get
+ // resolved by dpkg before apt run dpkg --configure on
+ // the TriggersPending package dpkg returns a error
//Pkg->CurrentState == pkgCache::State::TriggersAwaited
- Pkg->CurrentState == pkgCache::State::TriggersPending)
+ //Pkg->CurrentState == pkgCache::State::TriggersPending)
return NeedsConfigure;
if (Pkg->CurrentState == pkgCache::State::HalfInstalled ||
diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc
index 47a08ad90..4b3abe918 100644
--- a/apt-pkg/sourcelist.cc
+++ b/apt-pkg/sourcelist.cc
@@ -157,15 +157,18 @@ bool pkgSourceList::ReadMainList()
// CNC:2003-11-28 - Entries in sources.list have priority over
// entries in sources.list.d.
string Main = _config->FindFile("Dir::Etc::sourcelist");
+ string Parts = _config->FindDir("Dir::Etc::sourceparts");
+
if (FileExists(Main) == true)
Res &= ReadAppend(Main);
- else
+ else if (FileExists(Parts) == false)
+ // Only warn if there are no sources.list.d.
_error->WarningE("FileExists",_("Unable to read %s"),Main.c_str());
- string Parts = _config->FindDir("Dir::Etc::sourceparts");
if (FileExists(Parts) == true)
Res &= ReadSourceDir(Parts);
- else
+ else if (FileExists(Main) == false)
+ // Only warn if there is no sources.list file.
_error->WarningE("FileExists",_("Unable to read %s"),Parts.c_str());
return Res;
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 7385c3dd3..49553157e 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1262,7 +1262,8 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
/* Lookup the version of the package we would install if we were to
install a version and determine the source package name, then look
in the archive for a source package of the same name. */
- if (_config->FindB("APT::Get::Only-Source") == false)
+ bool MatchSrcOnly = _config->FindB("APT::Get::Only-Source");
+ if (MatchSrcOnly == false)
{
if (Pkg.end() == false)
{
@@ -1280,7 +1281,6 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
unsigned long Offset = 0;
string Version;
bool IsMatch = false;
- bool MatchSrcOnly = false;
// No source package name..
if (Src.empty() == true)
diff --git a/configure.in b/configure.in
index f590310a4..7287b925a 100644
--- a/configure.in
+++ b/configure.in
@@ -18,8 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
dnl -- SET THIS TO THE RELEASE VERSION --
-
-AC_DEFINE_UNQUOTED(VERSION,"0.7.21")
+AC_DEFINE_UNQUOTED(VERSION,"0.7.22.3")
PACKAGE="apt"
AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
AC_SUBST(PACKAGE)
diff --git a/debian/NEWS.Debian b/debian/NEWS
index f44d1966b..19f06793e 100644
--- a/debian/NEWS.Debian
+++ b/debian/NEWS
@@ -1,3 +1,12 @@
+apt (0.7.22.3) unstable; urgency=low
+
+ * Code that determines which proxy to use was changed. Now
+ 'Acquire::{http,ftp}::Proxy[::<host>]' options have the highest priority,
+ and '{http,ftp}_proxy' environment variables are used only if options
+ mentioned above are not specified.
+
+ -- Eugene V. Lyubimkin <jackyf.devel@gmail.com> Thu, 19 Aug 2009 11:26:16 +0200
+
apt (0.6.44) unstable; urgency=low
* apt-ftparchive --db now uses Berkeley DB_BTREE instead of DB_HASH.
diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily
index 980bfbb9d..328282a41 100644
--- a/debian/apt.cron.daily
+++ b/debian/apt.cron.daily
@@ -4,17 +4,58 @@
#set -e
#
# This file understands the following apt configuration variables:
+# Values here are the default.
+# Create /etc/apt/apt.conf.d/02periodic file to set your preference.
#
-# "APT::Periodic::Update-Package-Lists=1"
+# Dir "/";
+# - RootDir for all configuration files
+#
+# Dir::Cache "var/apt/cache/";
+# - Set apt package cache directory
+#
+# Dir::Cache::Archive "archives/";
+# - Set package archive directory
+#
+# APT::Periodic::Enable "1";
+# - Enable the update/upgrade script (0=disable)
+#
+# APT::Periodic::BackupArchiveInterval "0";
+# - Backup after n-days if archive contents changed.(0=disable)
+#
+# APT::Periodic::BackupLevel "3";
+# - Backup level.(0=disable), 1 is invalid.
+#
+# Dir::Cache::Backup "backup/";
+# - Set periodic package backup directory
+#
+# APT::Archives::MaxAge "0"; (old, deprecated)
+# APT::Periodic::MaxAge "0"; (new)
+# - Set maximum allowed age of a cache package file. If a cache
+# package file is older it is deleted (0=disable)
+#
+# APT::Archives::MinAge "2"; (old, deprecated)
+# APT::Periodic::MinAge "2"; (new)
+# - Set minimum age of a package file. If a file is younger it
+# will not be deleted (0=disable). Usefull to prevent races
+# and to keep backups of the packages for emergency.
+#
+# APT::Archives::MaxSize "0"; (old, deprecated)
+# APT::Periodic::MaxSize "0"; (new)
+# - Set maximum size of the cache in MB (0=disable). If the cache
+# is bigger, cached package files are deleted until the size
+# requirement is met (the biggest packages will be deleted
+# first).
+#
+# APT::Periodic::Update-Package-Lists "0";
# - Do "apt-get update" automatically every n-days (0=disable)
#
# "APT::Periodic::Download-Upgradeable-Packages=0",
# - Do "apt-get upgrade --download-only" every n-days (0=disable)
-#
-# "APT::Periodic::AutocleanInterval"
-# - Do "apt-get autoclean" every n-days (0=disable)
#
-# "APT::Periodic::Unattended-Upgrade"
+# APT::Periodic::Download-Upgradeable-Packages-Debdelta "1";
+# - Use debdelta-upgrade to download updates if available (0=disable)
+#
+# APT::Periodic::Unattended-Upgrade "0";
# - Run the "unattended-upgrade" security upgrade script
# every n-days (0=disabled)
# Requires the package "unattended-upgrades" and will write
@@ -301,12 +342,18 @@ if ! which apt-config >/dev/null ; then
exit 0
fi
+# check if the user really wants to do something
+AutoAptEnable=1 # default is yes
+eval $(apt-config shell AutoAptEnable APT::Periodic::Enable)
+
+if [ $AutoAptEnable -eq 0 ]; then
+ exit 0
+fi
+
# Set VERBOSE mode from apt-config (or inherit from environment)
+VERBOSE=0
eval $(apt-config shell VERBOSE APT::Periodic::Verbose)
debug_echo "verbose level $VERBOSE"
-if [ -z "$VERBOSE" ]; then
- VERBOSE="0"
-fi
if [ "$VERBOSE" -le 2 ]; then
# quiet for 0,1,2
XSTDOUT=">/dev/null"
@@ -367,6 +414,9 @@ eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval)
BackupArchiveInterval=0
eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval)
+Debdelta=1
+eval $(apt-config shell Debdelta APT::Periodic::Download-Upgradeable-Packages-Debdelta)
+
# check if we actually have to do anything
if [ $UpdateInterval -eq 0 ] &&
[ $DownloadUpgradeableInterval -eq 0 ] &&
@@ -432,6 +482,9 @@ fi
# download all upgradeable packages (if it is requested)
DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp
if [ $UPDATED -eq 1 ] && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then
+ if [ $Debdelta -eq 1 ]; then
+ debdelta-upgrade >/dev/null 2>&1 || true
+ fi
if eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then
update_stamp $DOWNLOAD_UPGRADEABLE_STAMP
debug_echo "download upgradable (success)"
diff --git a/debian/changelog b/debian/changelog
index 01fc6e2c7..dbd8fe5b3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,19 @@
-apt (0.7.23ubuntu1) karmic; urgency=low
+apt (0.7.22.3) UNRELEASED; urgency=low
+ [ Eugene V. Lyubimkin ]
+ * methods/{http,https,ftp}, doc/apt.conf.5.xml:
+ - Changed and unified the code that determines which proxy to use. Now
+ 'Acquire::{http,ftp}::Proxy[::<host>]' options have the highest priority,
+ and '{http,ftp}_proxy' environment variables are used only if options
+ mentioned above are not specified.
+ (Closes: #445985, #157759, #320184, #365880, #479617)
+
[ Michael Vogt ]
- * merged from the debian-sid bzr branch
-
- * cmdline/apt-get.cc:
- - honor APT::Get::Only-Source properly in FindSrc() (thanks to
- Martin Pitt for reporting the problem)
+ * apt-pkg/pkgcache.cc:
+ - do not set internel "needs-configure" state for packages in
+ triggers-pending state. dpkg will deal with the trigger and
+ it if does it before we trigger it, dpkg will error out
+ (LP: #414631)
[ Matt Zimmerman ]
* apt-pkg/deb/dpkgpm.cc:
@@ -16,7 +24,36 @@ apt (0.7.23ubuntu1) karmic; urgency=low
* cmdline/apt-get.cc:
- typo fix (LP: #370094)
- -- Matt Zimmerman <mdz@ubuntu.com> Thu, 06 Aug 2009 16:37:04 +0100
+ -- Michael Vogt <mvo@debian.org> Wed, 19 Aug 2009 11:14:15 +0200
+
+apt (0.7.22.2) unstable; urgency=low
+
+ * debian/apt.cron.daily:
+ - Make sure that VERBOSE is always set (Closes: #539366)
+ - Script can be disabled by APT::Periodic::Enable=0 (Closes: #485476)
+ - Support using debdelta to download packages (Closes: #532079)
+
+ -- Julian Andres Klode <jak@debian.org> Thu, 06 Aug 2009 12:17:19 +0200
+
+apt (0.7.22.1) unstable; urgency=low
+
+ [ Michael Vogt ]
+ * cmdline/apt-get.cc:
+ - honor APT::Get::Only-Source properly in FindSrc() (thanks to
+ Martin Pitt for reporting the problem), also Closes: #535362.
+
+ [ Julian Andres Klode ]
+ * apt-pkg/contrib/mmap.cc:
+ - Fix FTBFS on GNU/kFreeBSD by disabling DynamicMMap::Grow() on
+ non-Linux architectures as it uses mremap (Closes: #539742).
+ * apt-pkg/sourcelist.cc:
+ - Only warn about missing sources.list if there is no sources.list.d
+ and vice versa as only one of them is needed (Closes: #539731).
+ * debian/control:
+ - Add myself to Uploaders.
+ - Increase Standards-Version to 3.8.2.0.
+
+ -- Julian Andres Klode <jak@debian.org> Mon, 03 Aug 2009 12:48:31 +0200
apt (0.7.22) unstable; urgency=low
@@ -135,7 +172,7 @@ apt (0.7.22) unstable; urgency=low
[ Osamu Aoki ]
* Updated cron script to support backups by hardlinks and
verbose levels. All features turned off by default.
- * Added more error handlings. Closes: #438803, #462734, #454989,
+ * Added more error handlings. Closes: #438803, #462734, #454989
* Documented all cron script related configuration items in
configure-index.
@@ -373,7 +410,7 @@ apt (0.7.20) unstable; urgency=low
* buildlib/config.{sub,guess}:
- Renewed. This fixes lintian errors.
* doc/apt.conf.5.xml, debian/apt-transport-https:
- - Documented briefly 'APT::https' group of options. (Closes: #507398)
+ - Documented briefly 'Acquire::https' group of options. (Closes: #507398)
- Applied patch from Daniel Burrows to document 'Debug' group of options.
(Closes: #457265)
- Mentioned 'APT::Periodic' and 'APT::Archives' groups of options.
diff --git a/debian/control b/debian/control
index 03cc52d87..6587c2eb6 100644
--- a/debian/control
+++ b/debian/control
@@ -5,10 +5,9 @@ Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
XSBC-Original-Maintainer: APT Development Team <deity@lists.debian.org>
Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>,
Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>,
- Luca Bruno <lethalman88@gmail.com>
-Standards-Version: 3.8.1.0
+ Luca Bruno <lethalman88@gmail.com>, Julian Andres Klode <jak@debian.org>
+Standards-Version: 3.8.2.0
Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, docbook-utils (>= 0.6.12), xsltproc, docbook-xsl, xmlto, intltool
-Vcs-Bzr: http://code.launchpad.net/~ubuntu-core-dev/apt/ubuntu
Package: apt
Architecture: any
diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml
index 2b2430c83..1fe980d28 100644
--- a/doc/apt.conf.5.xml
+++ b/doc/apt.conf.5.xml
@@ -203,8 +203,9 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
standard form of <literal>http://[[user][:pass]@]host[:port]/</literal>. Per
host proxies can also be specified by using the form
<literal>http::Proxy::&lt;host&gt;</literal> with the special keyword <literal>DIRECT</literal>
- meaning to use no proxies. The <envar>http_proxy</envar> environment variable
- will override all settings.</para>
+ meaning to use no proxies. If no one of the above settings is specified,
+ <envar>http_proxy</envar> environment variable
+ will be used.</para>
<para>Three settings are provided for cache control with HTTP/1.1 compliant
proxy caches. <literal>No-Cache</literal> tells the proxy to not use its cached
@@ -252,9 +253,13 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
</para></listitem></varlistentry>
<varlistentry><term>ftp</term>
- <listitem><para>FTP URIs; ftp::Proxy is the default proxy server to use. It is in the
- standard form of <literal>ftp://[[user][:pass]@]host[:port]/</literal> and is
- overridden by the <envar>ftp_proxy</envar> environment variable. To use a ftp
+ <listitem><para>FTP URIs; ftp::Proxy is the default ftp proxy to use. It is in the
+ standard form of <literal>ftp://[[user][:pass]@]host[:port]/</literal>. Per
+ host proxies can also be specified by using the form
+ <literal>ftp::Proxy::&lt;host&gt;</literal> with the special keyword <literal>DIRECT</literal>
+ meaning to use no proxies. If no one of the above settings is specified,
+ <envar>ftp_proxy</envar> environment variable
+ will be used. To use a ftp
proxy you will have to set the <literal>ftp::ProxyLogin</literal> script in the
configuration file. This entry specifies the commands to send to tell
the proxy server what to connect to. Please see
diff --git a/methods/ftp.cc b/methods/ftp.cc
index 554a24cf5..c91600ad5 100644
--- a/methods/ftp.cc
+++ b/methods/ftp.cc
@@ -112,23 +112,28 @@ bool FTPConn::Open(pkgAcqMethod *Owner)
Close();
// Determine the proxy setting
- if (getenv("ftp_proxy") == 0)
+ string SpecificProxy = _config->Find("Acquire::ftp::Proxy::" + ServerName.Host);
+ if (!SpecificProxy.empty())
{
- string DefProxy = _config->Find("Acquire::ftp::Proxy");
- string SpecificProxy = _config->Find("Acquire::ftp::Proxy::" + ServerName.Host);
- if (SpecificProxy.empty() == false)
- {
- if (SpecificProxy == "DIRECT")
- Proxy = "";
- else
- Proxy = SpecificProxy;
- }
- else
- Proxy = DefProxy;
+ if (SpecificProxy == "DIRECT")
+ Proxy = "";
+ else
+ Proxy = SpecificProxy;
}
else
- Proxy = getenv("ftp_proxy");
-
+ {
+ string DefProxy = _config->Find("Acquire::ftp::Proxy");
+ if (!DefProxy.empty())
+ {
+ Proxy = DefProxy;
+ }
+ else
+ {
+ char* result = getenv("ftp_proxy");
+ Proxy = result ? result : "";
+ }
+ }
+
// Parse no_proxy, a , separated list of domains
if (getenv("no_proxy") != 0)
{
diff --git a/methods/http.cc b/methods/http.cc
index 859dbd39c..7b61973d7 100644
--- a/methods/http.cc
+++ b/methods/http.cc
@@ -311,22 +311,27 @@ bool ServerState::Open()
Persistent = true;
// Determine the proxy setting
- if (getenv("http_proxy") == 0)
+ string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host);
+ if (!SpecificProxy.empty())
{
- string DefProxy = _config->Find("Acquire::http::Proxy");
- string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host);
- if (SpecificProxy.empty() == false)
- {
- if (SpecificProxy == "DIRECT")
- Proxy = "";
- else
- Proxy = SpecificProxy;
- }
- else
- Proxy = DefProxy;
+ if (SpecificProxy == "DIRECT")
+ Proxy = "";
+ else
+ Proxy = SpecificProxy;
}
else
- Proxy = getenv("http_proxy");
+ {
+ string DefProxy = _config->Find("Acquire::http::Proxy");
+ if (!DefProxy.empty())
+ {
+ Proxy = DefProxy;
+ }
+ else
+ {
+ char* result = getenv("http_proxy");
+ Proxy = result ? result : "";
+ }
+ }
// Parse no_proxy, a , separated list of domains
if (getenv("no_proxy") != 0)
diff --git a/methods/https.cc b/methods/https.cc
index 8bf44b52a..37d93e308 100644
--- a/methods/https.cc
+++ b/methods/https.cc
@@ -61,19 +61,26 @@ void HttpsMethod::SetupProxy()
URI ServerName = Queue->Uri;
// Determine the proxy setting
- if (getenv("http_proxy") == 0)
+ string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host);
+ if (!SpecificProxy.empty())
{
- string DefProxy = _config->Find("Acquire::http::Proxy");
- string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host);
- if (SpecificProxy.empty() == false)
- {
- if (SpecificProxy == "DIRECT")
- Proxy = "";
- else
- Proxy = SpecificProxy;
- }
- else
- Proxy = DefProxy;
+ if (SpecificProxy == "DIRECT")
+ Proxy = "";
+ else
+ Proxy = SpecificProxy;
+ }
+ else
+ {
+ string DefProxy = _config->Find("Acquire::http::Proxy");
+ if (!DefProxy.empty())
+ {
+ Proxy = DefProxy;
+ }
+ else
+ {
+ char* result = getenv("http_proxy");
+ Proxy = result ? result : "";
+ }
}
// Parse no_proxy, a , separated list of domains