diff options
-rw-r--r-- | apt-pkg/acquire.cc | 21 | ||||
-rw-r--r-- | apt-pkg/acquire.h | 8 | ||||
-rw-r--r-- | apt-pkg/algorithms.cc | 21 | ||||
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 21 | ||||
-rw-r--r-- | apt-pkg/contrib/fileutl.h | 9 | ||||
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 3 | ||||
-rw-r--r-- | apt-pkg/indexcopy.cc | 10 | ||||
-rw-r--r-- | apt-pkg/versionmatch.cc | 2 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | debian/changelog | 12 | ||||
-rw-r--r-- | doc/po/fr.po | 18 | ||||
-rw-r--r-- | test/integration/framework | 23 |
12 files changed, 75 insertions, 75 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 63825da93..6ec557397 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -93,27 +93,6 @@ bool pkgAcquire::Setup(pkgAcquireStatus *Progress, string const &Lock) return true; } /*}}}*/ -// Acquire::CheckDirectory - ensure that the given directory exists /*{{{*/ -// --------------------------------------------------------------------- -/* a small wrapper around CreateDirectory to check if it exists and to - remove the trailing "/apt/" from the parent directory if needed */ -bool pkgAcquire::CheckDirectory(string const &Parent, string const &Path) const -{ - if (DirectoryExists(Path) == true) - return true; - - size_t const len = Parent.size(); - if (len > 5 && Parent.find("/apt/", len - 6, 5) == len - 5) - { - if (CreateDirectory(Parent.substr(0,len-5), Path) == true) - return true; - } - else if (CreateDirectory(Parent, Path) == true) - return true; - - return false; -} - /*}}}*/ // Acquire::~pkgAcquire - Destructor /*{{{*/ // --------------------------------------------------------------------- /* Free our memory, clean up the queues (destroy the workers) */ diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 82be8b843..e3a4435b8 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -362,14 +362,6 @@ class pkgAcquire private: /** \brief FD of the Lock file we acquire in Setup (if any) */ int LockFD; - - /** \brief Ensure the existence of the given Path - * - * \param Parent directory of the Path directory - a trailing - * /apt/ will be removed before CreateDirectory call. - * \param Path which should exist after (successful) call - */ - bool CheckDirectory(string const &Parent, string const &Path) const; }; /** \brief Represents a single download source from which an item diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index bd9a9df62..3c8711b74 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -987,24 +987,6 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) pkgCache::VerIterator Ver(Cache,*V); pkgCache::PkgIterator Pkg = Ver.ParentPkg(); - /* Ignore a target that is not a candidate - This can happen if: - installed package provides video-6 - candidate provides video-8 - now if a package Start breaks/conflicts video-6 - Start.AllTargets() will return the now-installed - versions even though these are not candidates - we can ignore them - */ - if (Cache[Pkg].CandidateVerIter(Cache) != Ver) - { - if (Debug) - clog << " Version " << Ver.VerStr() << " for " - << Pkg.Name() << " is not a candidate, ignoring" - << endl; - continue; - } - if (Debug == true) clog << " Considering " << Pkg.FullName(false) << ' ' << (int)Scores[Pkg->ID] << " as a solution to " << I.FullName(false) << ' ' << (int)Scores[I->ID] << endl; @@ -1098,7 +1080,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if (Start->Type == pkgCache::Dep::DpkgBreaks) { - // first, try upgrading the package, if that + // first, try upgradring the package, if that // does not help, the breaks goes onto the // kill list // FIXME: use DoUpgrade(Pkg) instead? @@ -1123,7 +1105,6 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) LEnd++; if (Start->Type != pkgCache::Dep::Conflicts && - Start->Type != pkgCache::Dep::DpkgBreaks && Start->Type != pkgCache::Dep::Obsoletes) break; } diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 2b73d1424..94d994e8b 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -251,6 +251,27 @@ bool CreateDirectory(string const &Parent, string const &Path) return true; } /*}}}*/ +// CheckDirectory - ensure that the given directory exists /*{{{*/ +// --------------------------------------------------------------------- +/* a small wrapper around CreateDirectory to check if it exists and to + remove the trailing "/apt/" from the parent directory if needed */ +bool CheckDirectory(string const &Parent, string const &Path) +{ + if (DirectoryExists(Path) == true) + return true; + + size_t const len = Parent.size(); + if (len > 5 && Parent.find("/apt/", len - 6, 5) == len - 5) + { + if (CreateDirectory(Parent.substr(0,len-5), Path) == true) + return true; + } + else if (CreateDirectory(Parent, Path) == true) + return true; + + return false; +} + /*}}}*/ // GetListOfFilesInDir - returns a vector of files in the given dir /*{{{*/ // --------------------------------------------------------------------- /* If an extension is given only files with this extension are included diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index cb4655798..f79c9032f 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -94,6 +94,15 @@ int GetLock(string File,bool Errors = true); bool FileExists(string File); bool DirectoryExists(string const &Path) __attrib_const; bool CreateDirectory(string const &Parent, string const &Path); + +/** \brief Ensure the existence of the given Path + * + * \param Parent directory of the Path directory - a trailing + * /apt/ will be removed before CreateDirectory call. + * \param Path which should exist after (successful) call + */ +bool CheckDirectory(string const &Parent, string const &Path); + std::vector<string> GetListOfFilesInDir(string const &Dir, string const &Ext, bool const &SortList, bool const &AllowNoExt=false); std::vector<string> GetListOfFilesInDir(string const &Dir, std::vector<string> const &Ext, diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 5530ef129..d3c432ce1 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -641,7 +641,8 @@ void pkgDPkgPM::WriteHistoryTag(string const &tag, string value) bool pkgDPkgPM::OpenLog() { string const logdir = _config->FindDir("Dir::Log"); - if(not FileExists(logdir)) + if(CheckDirectory(logdir, logdir) == false) + // FIXME: use a better string after freeze return _error->Error(_("Directory '%s' missing"), logdir.c_str()); // get current time diff --git a/apt-pkg/indexcopy.cc b/apt-pkg/indexcopy.cc index a2a1d5934..fb33ed461 100644 --- a/apt-pkg/indexcopy.cc +++ b/apt-pkg/indexcopy.cc @@ -673,9 +673,13 @@ bool SigVerify::RunGPGV(std::string const &File, std::string const &FileGPG, std::clog << "Keyring path: " << trustedPath << std::endl; } - std::vector<string> keyrings = GetListOfFilesInDir(trustedPath, "gpg", false); - if (FileExists(trustedFile) == true) - keyrings.push_back(trustedFile); + std::vector<string> keyrings; + if (DirectoryExists(trustedPath)) + { + keyrings = GetListOfFilesInDir(trustedPath, "gpg", false, true); + if (FileExists(trustedFile) == true) + keyrings.push_back(trustedFile); + } std::vector<const char *> Args; Args.reserve(30); diff --git a/apt-pkg/versionmatch.cc b/apt-pkg/versionmatch.cc index 17a54bc4c..c40b1fdbc 100644 --- a/apt-pkg/versionmatch.cc +++ b/apt-pkg/versionmatch.cc @@ -118,7 +118,7 @@ pkgVersionMatch::pkgVersionMatch(string Data,MatchType Type) : Type(Type) if (Type == Origin) { - if (Data[0] == '"' && Data.end()[-1] == '"') + if (Data[0] == '"' && Data.length() >= 2 && Data.end()[-1] == '"') OrSite = Data.substr(1, Data.length() - 2); else OrSite = Data; diff --git a/configure.in b/configure.in index 8b212c1bc..151885d66 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +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.26~exp6") +AC_DEFINE_UNQUOTED(VERSION,"0.8.1") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/changelog b/debian/changelog index e37a5504f..c81026041 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +apt (0.8.2) unstable; urgency=low + + * apt-pkg/indexcopy.cc: + - only use trusted.gpg.d directory if it exists + + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 03 Sep 2010 20:21:43 +0200 + apt (0.8.1) UNRELEASED; urgency=low [ Programs translations ] @@ -40,8 +47,11 @@ apt (0.8.1) UNRELEASED; urgency=low - let the pin origin actually work as advertised in the manpage which means "" are optional and pinning a local archive does work - even if it is a non-flat archive (Closes: #594435) + * apt-pkg/deb/dpkgpm.cc: + - create Dir::Log if needed to support /var/log as tmpfs or similar, + inspired by Thomas Bechtold, thanks! (Closes: #523919, LP: #220239) - -- Michael Vogt <mvo@debian.org> Mon, 30 Aug 2010 11:53:30 +0200 + -- David Kalnischkies <kalnischkies@gmail.com> Thu, 02 Sep 2010 12:41:32 +0200 apt (0.8.0) unstable; urgency=low diff --git a/doc/po/fr.po b/doc/po/fr.po index de55bed1d..43f8b87ee 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -1095,7 +1095,6 @@ msgstr "" " <listitem><para>Liste d'état des paquets installés automatiquement.\n" " Élément de configuration : <literal>Dir::State::extended_states</literal>.</para></listitem>\n" " </varlistentry>\n" -"\">\n" #. type: Plain text #: apt.ent:377 @@ -3885,24 +3884,21 @@ msgstr "" "<command>apt-get</command> <arg><option>-sqdyfmubV</option></arg> <arg> " "<option>-o= <replaceable>option_de_configuration</replaceable> </option> </" "arg> <arg> <option>-c= <replaceable>fichier_de_configuration</replaceable> </" -"option> </arg> <arg> <option>-t=</option> <arg " -"choice='plain'> <replaceable>nom_version_cible</replaceable> </arg> </arg> <group " +"option> </arg> <arg> <option>-t=</option> <group choice='req'> <arg " +"choice='plain'> <replaceable>nom_version_cible</replaceable> </arg> <group " "choice=\"req\"> <arg choice='plain'>update</arg> <arg " "choice='plain'>upgrade</arg> <arg choice='plain'>dselect-upgrade</arg> <arg " "choice='plain'>dist-upgrade</arg> <arg choice='plain'>install <arg choice=" "\"plain\" rep=\"repeat\"><replaceable>pkg</replaceable> <arg> <group " "choice='req'> <arg choice='plain'> =<replaceable>numero_version_paquet</" "replaceable> </arg> <arg choice='plain'> /<replaceable>nom_version_cible</" -"replaceable> </arg> </group> </arg> </arg> </arg>" -"<arg choice='plain'>remove <arg choice=\"plain\" rep=" +"replaceable> </arg> <arg choice='plain'>remove <arg choice=\"plain\" rep=" "\"repeat\"><replaceable>pkg</replaceable></arg></arg> <arg " "choice='plain'>purge <arg choice=\"plain\" rep=\"repeat\"><replaceable>pkg</" "replaceable></arg></arg> <arg choice='plain'>source <arg choice=\"plain\" " -"rep=\"repeat\"><replaceable>paquet</replaceable> <arg> <group choice='req'> " -"<arg choice='plain'> =<replaceable>numéro_version_paquet</replaceable> </arg> " -"<arg choice='plain'> /<replaceable>nom_version_cible</replaceable> </arg> </" -"group> </arg> </arg> </arg> <arg choice='plain'>build-dep <arg choice=\"plain\"" -" rep=\"repeat" +"rep=\"repeat\"><replaceable>paquet</replaceable> <arg> " +"=<replaceable>numéro_version_paquet</replaceable> </arg> </arg> </arg> <arg " +"choice='plain'>build-dep <arg choice=\"plain\" rep=\"repeat" "\"><replaceable>paquet</replaceable></arg></arg> <arg choice='plain'>check</" "arg> <arg choice='plain'>clean</arg> <arg choice='plain'>autoclean</arg> " "<arg choice='plain'>autoremove</arg> <arg choice='plain'> <group " @@ -7154,7 +7150,7 @@ msgstr "" "La liste <literal>Ignore-Files-Silently</literal> permet d'indiquer quels " "sont les fichiers qu'APT peut ignorer sans avertissement dans les " "répertoires contenant des fragments de configuration. Par défaut, les " -"fichiers qui se terminent par <literal>.disabled</literal>, <literal>~</" +"fichiers qui se terminent par literal>.disabled</literal>, <literal>~</" "literal>, <literal>.bak</literal> ou <literal>.dpkg-[a-z]+</literal> sont " "ignorés. Comme cela est visible dans le dernier élément de cette liste, il " "est possible d'utiliser la syntaxe des expressions rationnelles." diff --git a/test/integration/framework b/test/integration/framework index 8efe47330..d832bedbe 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -72,11 +72,14 @@ aptconfig() { runapt apt-config $*; } aptcache() { runapt apt-cache $*; } aptget() { runapt apt-get $*; } aptftparchive() { runapt apt-ftparchive $*; } +dpkg() { + $(which dpkg) --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log $* +} setupenvironment() { TMPWORKINGDIRECTORY=$(mktemp -d) local TESTDIR=$(readlink -f $(dirname $0)) - msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… " + msgninfo "Preparing environment for ${CCMD}$(basename $0)${CINFO} in ${TMPWORKINGDIRECTORY}… " BUILDDIRECTORY="${TESTDIR}/../../build/bin" test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" local OLDWORKINGDIRECTORY=$(pwd) @@ -85,10 +88,10 @@ setupenvironment() { cd $TMPWORKINGDIRECTORY mkdir rootdir aptarchive keys cd rootdir - mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d var/cache - mkdir -p var/log/apt var/lib/apt + mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d + mkdir -p var/cache var/lib var/log mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers - local STATUSFILE=$(echo "$(basename $0)" | sed 's/^test-/status-/') + local STATUSFILE=$(echo "$(basename $0)" | sed -e 's/^test-/status-/' -e 's/^skip-/status-/') if [ -f "${TESTDIR}/${STATUSFILE}" ]; then cp "${TESTDIR}/${STATUSFILE}" var/lib/dpkg/status else @@ -98,7 +101,7 @@ setupenvironment() { mkdir -p usr/lib/apt ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods cd .. - local PACKAGESFILE=$(echo "$(basename $0)" | sed 's/^test-/Packages-/') + local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/') if [ -f "${TESTDIR}/${PACKAGESFILE}" ]; then cp "${TESTDIR}/${PACKAGESFILE}" aptarchive/Packages else @@ -228,6 +231,10 @@ buildaptarchive() { createaptftparchiveconfig() { local ARCHS="$(find pool/ -name '*.deb' | grep -oE '_[a-z0-9-]+\.deb$' | sort | uniq | sed -e '/^_all.deb$/ d' -e 's#^_\([a-z0-9-]*\)\.deb$#\1#' | tr '\n' ' ')" + if [ -z "$ARCHS" ]; then + # the pool is empty, so we will operate on faked packages - let us use the configured archs + ARCHS="$(aptconfig dump | grep APT::Architecture | cut -d'"' -f 2 | sed '/^$/ d' | sort | uniq | tr '\n' ' ')" + fi echo -n 'Dir { ArchiveDir "' >> ftparchive.conf echo -n $(readlink -f .) >> ftparchive.conf @@ -297,7 +304,7 @@ buildaptftparchivedirectorystructure() { } buildaptarchivefromincoming() { - msginfo "Build APT archive for ${CCMD}$0${CINFO} based on incoming packages…" + msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on incoming packages…" cd aptarchive [ -e pool ] || ln -s ../incoming pool [ -e ftparchive.conf ] || createaptftparchiveconfig @@ -314,7 +321,7 @@ buildaptarchivefromincoming() { } buildaptarchivefromfiles() { - msginfo "Build APT archive for ${CCMD}$0${CINFO} based on prebuild files…" + msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on prebuild files…" cd aptarchive if [ -f Packages ]; then msgninfo "\tPackages file… " @@ -476,7 +483,7 @@ N: No packages found" local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH_CPU) eval `apt-config shell ARCH APT::Architecture` echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE - aptcache show $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail + aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail rm $COMPAREFILE } |