From: Michael Vogt Date: Tue, 21 Jul 2009 14:05:52 +0000 (+0200) Subject: * apt-pkg/acquire.cc: X-Git-Tag: 0.7.22~16 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/53391d0fc55f118194467b3d436f91fbc1097c31 * apt-pkg/acquire.cc: - make the max pipeline depth of the acquire queue configurable via Acquire::Max-Pipeline-Depth * apt-pkg/deb/dpkgpm.cc: - add Dpkg::UseIoNice boolean option to run dpkg with ionice -c3 (off by default) - send "dpkg-exec" message on the status fd when dpkg is run - provide DPkg::Chroot-Directory config option (useful for testing) - fix potential hang when in a backgroud process group * apt-pkg/algorithms.cc: - consider recommends when making the scores for the problem resolver * apt-pkg/acquire-worker.cc: - show error details of failed methods * apt-pkg/contrib/fileutl.cc: - if a process aborts with signal, show signal number * methods/http.cc: - ignore SIGPIPE, we deal with EPIPE from write in HttpMethod::ServerDie() (LP: #385144) * apt-pkg/indexcopy.cc: - support having CDs with no Packages file (just a Packages.gz) by not forcing a verification on non-existing files (LP: #255545) - remove the gettext from a string that consists entirely of variables (LP: #56792) * apt-pkg/cacheiterators.h: - add missing checks for Owner == 0 in end() * apt-pkg/indexrecords.cc: - fix some i18n issues * apt-pkg/contrib/strutl.h: - add new strprintf() function to make i18n strings easier - fix compiler warning * apt-pkg/deb/debsystem.cc: - make strings i18n able * fix problematic use of tolower() when calculating the version hash by using locale independant tolower_ascii() function. Thanks to M. Vefa Bicakci (LP: #80248) * build fixes for g++-4.4 * cmdline/apt-mark: - add "showauto" option to show automatically installed packages * document --install-recommends and --no-install-recommends (thanks to Dereck Wonnacott, LP: #126180) * 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, * Refactored condition structure to make download and upgrade performed if only previous steps succeeded. Closes: #341970 * Documented all cron script related configuration items in configure-index. * apt-ftparchive might write corrupt Release files (LP: #46439) * Apply --important option to apt-cache depends (LP: #16947) --- 53391d0fc55f118194467b3d436f91fbc1097c31 diff --cc apt-pkg/algorithms.cc index 2ad064319,b6f4705f3..1fd3d39a4 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@@ -489,34 -489,6 +489,36 @@@ void pkgProblemResolver::MakeScores( unsigned long Size = Cache.Head().PackageCount; memset(Scores,0,sizeof(*Scores)*Size); + // Important Required Standard Optional Extra + signed short PrioMap[] = { + 0, + _config->FindI("pkgProblemResolver::Scores::Important",3), + _config->FindI("pkgProblemResolver::Scores::Required",2), + _config->FindI("pkgProblemResolver::Scores::Standard",1), + _config->FindI("pkgProblemResolver::Scores::Optional",-1), + _config->FindI("pkgProblemResolver::Scores::Extra",-2) + }; + signed short PrioEssentials = _config->FindI("pkgProblemResolver::Scores::Essentials",100); + signed short PrioInstalledAndNotObsolete = _config->FindI("pkgProblemResolver::Scores::NotObsolete",1); + signed short PrioDepends = _config->FindI("pkgProblemResolver::Scores::Depends",1); ++ signed short PrioRecommends = _config->FindI("pkgProblemResolver::Scores::Recommends",1); + signed short AddProtected = _config->FindI("pkgProblemResolver::Scores::AddProtected",10000); + signed short AddEssential = _config->FindI("pkgProblemResolver::Scores::AddEssential",5000); + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + clog << "Settings used to calculate pkgProblemResolver::Scores::" << endl + << " Important => " << PrioMap[1] << endl + << " Required => " << PrioMap[2] << endl + << " Standard => " << PrioMap[3] << endl + << " Optional => " << PrioMap[4] << endl + << " Extra => " << PrioMap[5] << endl + << " Essentials => " << PrioEssentials << endl + << " InstalledAndNotObsolete => " << PrioInstalledAndNotObsolete << endl + << " Depends => " << PrioDepends << endl ++ << " Recommends => " << PrioRecommends << endl + << " AddProtected => " << AddProtected << endl + << " AddEssential => " << AddEssential << endl; + // Generate the base scores for a package based on its properties for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { @@@ -552,8 -526,10 +554,11 @@@ for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++) { - if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) - Scores[D.TargetPkg()->ID]+= PrioDepends; + if (D->Type == pkgCache::Dep::Depends || - D->Type == pkgCache::Dep::PreDepends || - D->Type == pkgCache::Dep::Recommends) - Scores[D.TargetPkg()->ID]++; ++ D->Type == pkgCache::Dep::PreDepends) ++ Scores[D.TargetPkg()->ID] += PrioDepends; ++ else if (D->Type == pkgCache::Dep::Recommends) ++ Scores[D.TargetPkg()->ID] += PrioRecommends; } } diff --cc debian/apt.cron.daily index b40bb2c30,cdec7eea0..7e4214775 --- a/debian/apt.cron.daily +++ b/debian/apt.cron.daily @@@ -42,47 -69,26 +69,51 @@@ check_stamp( interval="$2" if [ $interval -eq 0 ]; then - debug_echo "check_stamp: interval=0." ++ debug_echo "check_stamp: interval=0" + # treat as no time has passed return 1 fi if [ ! -f $stamp ]; then + update_stamp $stamp - debug_echo "check_stamp: missing time stamp file: $stamp." ++ debug_echo "check_stamp: missing time stamp file: $stamp" + # treat as enough time has passed return 0 fi # compare midnight today to midnight the day the stamp was updated - stamp=$(date -r $stamp '+%s') + stamp_file="$stamp" + stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null) + if [ "$?" != "0" ]; then + # Due to some timezones returning 'invalid date' for midnight on + # certain dates (eg America/Sao_Paulo), if date returns with error + # remove the stamp file and return 0. See coreutils bug: + # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html + rm -f "$stamp_file" + return 0 + fi + + now=$(date --date=$(date --iso-8601) +%s 2>/dev/null) + if [ "$?" != "0" ]; then + # As above, due to some timezones returning 'invalid date' for midnight + # on certain dates (eg America/Sao_Paulo), if date returns with error + # return 0. + return 0 + fi + delta=$(($now-$stamp)) - # intervall is in days, + # intervall is in days, convert to sec. interval=$(($interval*60*60*24)) - #echo "stampfile: $1" - #echo "interval=$interval, now=$now, stamp=$stamp, delta=$delta" + debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)" + # remove timestamps a day (or more) in the future and force re-check + if [ $stamp -gt $(($now+86400)) ]; then + echo "WARNING: file $stamp_file has a timestamp in the future: $stamp" + rm -f "$stamp_file" + return 0 + fi + if [ $delta -ge $interval ]; then return 0 fi @@@ -188,17 -191,128 +216,130 @@@ random_sleep( sleep $TIME } - # main - if ! which apt-config >/dev/null; then + debug_echo() + { + # Display message if $VERBOSE >= 1 + if [ "$VERBOSE" -ge 1 ]; then + echo $1 1>&2 + fi + } + -# main ++ ++# ----------------- main ---------------- + + # check apt-config exstance + if ! which apt-config >/dev/null ; then exit 0 fi + # Set VERBOSE mode from apt-config (or inherit from environment) + eval $(apt-config shell VERBOSE APT::Periodic::Verbose) + if [ -z "$VERBOSE" ]; then + VERBOSE="0" + fi + if [ "$VERBOSE" -le 2 ]; then + # quiet for 0,1,2 + XSTDOUT=">/dev/null" + XSTDERR="2>/dev/null" + XAPTOPT="-qq" + XUUPOPT="" + else + XSTDOUT="" + XSTDERR="" + XAPTOPT="" + XUUPOPT="-d" + fi + if [ "$VERBOSE" -ge 3 ]; then + # trace output + set -x + fi + + # laptop check, on_ac_power returns: + # 0 (true) System is on main power + # 1 (false) System is not on main power + # 255 (false) Power status could not be determined + # Desktop systems always return 255 it seems + if which on_ac_power >/dev/null; then + on_ac_power + POWER=$? + if [ $POWER -eq 1 ]; then - debug_echo "exit: system on main power." ++ debug_echo "exit: system NOT on main power." + exit 0 + elif [ $POWER -ne 0 ]; then - debug_echo "exit: power status ($POWER) undetermined." - exit 0 ++ debug_echo "power status ($POWER) undetermined." + fi + debug_echo "system is on main power." + fi + + # check if we can lock the cache and if the cache is clean -if which apt-get >/dev/null && ! eval apt-get check $XAPTOPT $XSTDERR ; then ++if which apt-get >/dev/null && ! apt-get check $XAPTOPT $XSTDERR ; then + debug_echo "error encountered in cron job with \"apt-get check\"." + exit 0 + fi + # No need to check for apt-get below + + # Global current time in seconds since 1970-01-01 00:00:00 UTC + now=$(date +%s) + + # Set default values and normalize + Dir="/" + eval $(apt-config shell Dir Dir) + Dir=${Dir%/} + + CacheDir="var/cache/apt/" + eval $(apt-config shell CacheDir Dir::Cache) + CacheDir=${CacheDir%/} + if [ -z "$CacheDir" ]; then + debug_echo "practically empty Dir::Cache, exiting" + exit 0 + fi + + CacheArchive="archives/" + eval $(apt-config shell CacheArchive Dir::Cache::Archives) + CacheArchive=${CacheArchive%/} + if [ -z "$CacheArchive" ]; then + debug_echo "practically empty Dir::Cache::archives, exiting" + exit 0 + fi + + BackupArchiveInterval=0 + eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval) + + BackupLevel=3 + eval $(apt-config shell BackupLevel APT::Periodic::BackupLevel) -if [ $BackupLevel -le 1 ]; then BackupLevel=2 ; fi ++if [ $BackupLevel -le 1 ]; then ++ BackupLevel=2 ; ++fi + + CacheBackup="backup/" + eval $(apt-config shell CacheBackup Dir::Cache::Backup) + CacheBackup=${CacheBackup%/} + if [ -z "$CacheBackup" ]; then - echo "practically empty Dir::Cache::Backup, exiting" 1>&2 - exit 0 ++ echo "empty Dir::Cache::Backup, using default" 1>&2 ++ CacheBackup="backup/" + fi + + # Support old Archive for compatibility. + # Document only Periodic for all controling parameters of this script. + MaxAge=0 + eval $(apt-config shell MaxAge APT::Archives::MaxAge) + eval $(apt-config shell MaxAge APT::Periodic::MaxAge) + + MinAge=2 + eval $(apt-config shell MinAge APT::Archives::MinAge) + eval $(apt-config shell MinAge APT::Periodic::MinAge) + + MaxSize=0 + eval $(apt-config shell MaxSize APT::Archives::MaxSize) + eval $(apt-config shell MaxSize APT::Periodic::MaxSize) + UpdateInterval=0 + eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists) + DownloadUpgradeableInterval=0 - eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) - AutocleanInterval=$DownloadUpgradeableInterval - eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval) + eval $(apt-config shell DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) + UnattendedUpgradeInterval=0 eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade) @@@ -210,61 -335,138 +362,141 @@@ if [ $UpdateInterval -eq 0 ] & exit 0 fi - # laptop check, on_ac_power returns: - # 0 (true) System is on mains power - # 1 (false) System is not on mains power - # 255 (false) Power status could not be determined - # Desktop systems always return 255 it seems - if which on_ac_power >/dev/null; then - on_ac_power - if [ $? -eq 1 ]; then - exit 0 - fi - fi - +# sleep random amount of time to avoid hitting the +# mirrors at the same time +random_sleep - # check if we can access the cache - if ! apt-get check -q -q 2>/dev/null; then - # wait random amount of time before retrying - random_sleep - # check again - if ! apt-get check -q -q 2>/dev/null; then - echo "$0: could not lock the APT cache while performing daily cron job. " - echo "Is another package manager working?" - exit 1 + # backup after n-days if archive contents changed. + # (This uses hardlink to save disk space) + BACKUP_ARCHIVE_STAMP=/var/lib/apt/periodic/backup-archive-stamp + if check_stamp $BACKUP_ARCHIVE_STAMP $BackupArchiveInterval; then + if [ $({(cd $Cache 2>/dev/null; find . -name "*.deb"); (cd $Back0 2>/dev/null;find . -name "*.deb") ;}| sort|uniq -u|wc -l) -ne 0 ]; then + mkdir -p $Back + rm -rf $Back$((${BackupLevel}-1)) + for y in $(seq $((${BackupLevel}-1)) -1 1); do + eval BackY=${Back}$y + eval BackZ=${Back}$(($y-1)) + if [ -e $BackZ ]; then mv -f $BackZ $BackY ; fi + done + cp -la $Cache $Back ; mv -f $BackX $Back0 + update_stamp $BACKUP_ARCHIVE_STAMP + debug_echo "backup with hardlinks. (success)" + else + + debug_echo "skip backup since same content." fi + else + debug_echo "skip backup since too new." fi - UPDATE_STAMP=/var/lib/apt/periodic/update-stamp - if check_stamp $UPDATE_STAMP $UpdateInterval; then - if apt-get -qq update 2>/dev/null; then - if which dbus-send >/dev/null && pidof dbus-daemon >/dev/null; then - dbus-send --system / app.apt.dbus.updated boolean:true - fi - update_stamp $UPDATE_STAMP - fi + # package archive contnts removal by package age + if [ $MaxAge -ne 0 ] && [ $MinAge -ne 0 ]; then + find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f + debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge and ctime>$MinAge and mtime>$MinAge" + elif [ $MaxAge -ne 0 ]; then + find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f + debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge only" + else + debug_echo "skip aging since MaxAge is 0" fi + + # package archive contnts removal down to $MaxSize + if [ $MaxSize -ne 0 ]; then + + MinAgeSec=$(($MinAge*24*60*60)) + + # reverse-sort by mtime + for file in $(ls -rt $Cache/*.deb 2>/dev/null); do + du=$(du -m -s $Cache) + size=${du%%/*} + # check if the cache is small enough + if [ $size -lt $MaxSize ]; then + debug_echo "end remove by archive size: size=$size < $MaxSize" + break + fi + + # check for MinAge in second of the file + if [ $MinAgeSec -ne 0 ]; then + # check both ctime and mtime + mtime=$(stat -c %Y $file) + ctime=$(stat -c %Z $file) + if [ $mtime -gt $ctime ]; then + delta=$(($now-$mtime)) + else + delta=$(($now-$ctime)) + fi + if [ $delta -le $MinAgeSec ]; then + debug_echo "skip remove by archive size: $file, delta=$delta < $MinAgeSec" + else + # delete oldest file + debug_echo "remove by archive size: $file, delta=$delta >= $MinAgeSec (sec), size=$size >= $MaxSize" + rm -f $file + fi + fi - DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp - if check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then - apt-get -qq -d dist-upgrade 2>/dev/null - update_stamp $DOWNLOAD_UPGRADEABLE_STAMP + done fi - UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp - if check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then - unattended-upgrade - update_stamp $UPGRADE_STAMP + # update package lists + UPDATE_STAMP=/var/lib/apt/periodic/update-stamp + if check_stamp $UPDATE_STAMP $UpdateInterval; then + if eval apt-get $XAPTOPT -y update $XSTDERR; then + debug_echo "download updated metadata (success)." + if which dbus-send >/dev/null && pidof dbus-daemon >/dev/null; then + if dbus-send --system / app.apt.dbus.updated boolean:true ; then + debug_echo "send dbus signal (success)" + else + debug_echo "send dbus signal (error)" + fi + else + debug_echo "dbus signal not send (command not available)" + fi + update_stamp $UPDATE_STAMP + # download all upgradeable packages if it is requested + DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp + if check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then + if eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then + update_stamp $DOWNLOAD_UPGRADEABLE_STAMP + debug_echo "download upgradable (success)." + # auto upgrade all upgradeable packages + UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp + if which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then + if unattended-upgrade $XUUPOPT; then + update_stamp $UPGRADE_STAMP + debug_echo "unattended-upgrade (success)." + else + debug_echo "unattended-upgrade (error)." + fi + else + debug_echo "unattended-upgrade (not run)." + fi + else + debug_echo "download upgradable (error)." + fi + else + debug_echo "download upgradable (not run)." + fi + else + debug_echo "download updated metadata (error)." + fi + else + debug_echo "download updated metadata (not run)." fi + # autoclean package archive AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then - apt-get -qq autoclean - update_stamp $AUTOCLEAN_STAMP + if apt-get $XAPTOPT -y autoclean $XSTDERR; then + debug_echo "autoclean (success)." + update_stamp $AUTOCLEAN_STAMP + else + debug_echo "autoclean (error)." + fi + else + debug_echo "autoclean (not run)." fi - # check cache size - check_size_constraints + # + # vim: set sts=4 ai : + # + diff --cc debian/changelog index 6ce3b7c7d,cf9231105..6e03bbbd4 --- a/debian/changelog +++ b/debian/changelog @@@ -1,97 -1,89 +1,154 @@@ -apt (0.7.21) UNRELEASED; urgency=low +apt (0.7.22) UNRELEASED; 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, - * Refactored condition structure to make download and upgrade performed - if only previous steps succeeded. Closes: #341970 - * Documented all cron script related configuration items in - configure-index. + [ Christian Perrier ] + * Documentation translations: + - Fix a typo in apt-get(8) French translation. Closes: #525043 + Thanks to Guillaume Delacour for spotting it. + - Updated apt.conf(5) manpgae French translation. + Thanks to Aurélien Couderc. + * Translations: + - fr.po + - sk.po. Closes: #525857 + - ru.po. Closes: #526816 + - eu.po. Closes: #528985 + - zh_CN.po. Closes: #531390 + - fr.po + - it.po. Closes: #531758 + - ca.po. Closes: #531921 + - de.po. Closes: #536430 + * Added translations + - ast.po (Asturian by Marcos Alvareez Costales). + Closes: #529007, #529730, #535328 + + [ David Kalnischkies ] + * [ABI break] support '#' in apt.conf and /etc/apt/preferences + (closes: #189866) + * [ABI break] Allow pinning by codename (closes: #97564) + * support running "--simulate" as user + * add depth information to the debug output and show what depends + type triggers a autoinst (closes: #458389) + * add Debug::pkgDepCache::Marker with more detailed debug output + (closes: #87520) + * add Debug::pkgProblemResolver::ShowScores and make the scores + adjustable + * do not write state file in simulate mode (closes: #433007) + * add hook for auto-install (closes: #470035) + * support IsAutoInstallOk in the resolver too + * fix typo in apt-pkg/acquire.cc which prevents Dl-Limit to work + correctly when downloading from multiple sites (Closes: #534752) [ Michael Vogt ] + * honor the dpkg hold state in AutoInstOk (closes: #64141) + * debian/apt.cron.daily: + - if the timestamp is too far in the future, delete it + * apt-pkg/acquire.cc: + - make the max pipeline depth of the acquire queue configurable + via Acquire::Max-Pipeline-Depth + * apt-pkg/deb/dpkgpm.cc: + - add Dpkg::UseIoNice boolean option to run dpkg with ionice -c3 + (off by default) + - send "dpkg-exec" message on the status fd when dpkg is run ++ - provide DPkg::Chroot-Directory config option (useful for testing) ++ - fix potential hang when in a backgroud process group + * apt-pkg/algorithms.cc: + - consider recommends when making the scores for the problem + resolver + * apt-pkg/acquire-worker.cc: + - show error details of failed methods + * apt-pkg/contrib/fileutl.cc: + - if a process aborts with signal, show signal number + * methods/http.cc: + - ignore SIGPIPE, we deal with EPIPE from write in + HttpMethod::ServerDie() (LP: #385144) - * apt-pkg/deb/dpkgpm.cc: - - provide DPkg::Chroot-Directory config option (useful for testing) - - -- Michael Vogt Thu, 28 May 2009 17:51:42 +0200 - - [ Michael Vogt ] + * apt-pkg/indexcopy.cc: + - support having CDs with no Packages file (just a Packages.gz) + by not forcing a verification on non-existing files + (LP: #255545) + - remove the gettext from a string that consists entirely + of variables (LP: #56792) - * doc/makefile: - - add examples/apt-https-method-example.conf + * apt-pkg/cacheiterators.h: + - add missing checks for Owner == 0 in end() - * apt-pkg/deb/dpkgpm.cc: - - fix potential hang when in a backgroud process group + * apt-pkg/indexrecords.cc: + - fix some i18n issues + * apt-pkg/contrib/strutl.h: + - add new strprintf() function to make i18n strings easier - * methods/gpgv.cc: + - fix compiler warning - * cmdline/apt-get.cc: - - fix "apt-get source pkg=ver" if binary name != source name - and show a message (LP: #202219) - - fix "apt-get source pkg" if there is a binary package and - a source package of the same name but from different - packages (LP: #330103) + * apt-pkg/deb/debsystem.cc: + - make strings i18n able - * apt-pkg/contrib/strutl.cc: - - fix TimeToStr i18n (LP: #289807) - * [ABI break] merge support for http redirects, thanks to - Jeff Licquia and Anthony Towns - * [ABI break] use int for the package IDs (thanks to Steve Cotton) - * apt-pkg/pkgcache.cc: - - do not run "dpkg --configure pkg" if pkg is in trigger-awaited - state (LP: #322955) - * methods/https.cc: - - add Acquire::https::AllowRedirect support - * methods/gpgv.cc: - - properly check for expired and revoked keys (closes: #433091) + * fix problematic use of tolower() when calculating the version + hash by using locale independant tolower_ascii() function. + Thanks to M. Vefa Bicakci (LP: #80248) + * build fixes for g++-4.4 + * cmdline/apt-mark: + - add "showauto" option to show automatically installed packages ++ * document --install-recommends and --no-install-recommends ++ (thanks to Dereck Wonnacott, LP: #126180) + + [ Julian Andres Klode ] + * apt-pkg/contrib/configuration.cc: Fix a small memory leak in + ReadConfigFile. + * Introduce support for the Enhances field. (Closes: #137583) + * Support /etc/apt/preferences.d, by adding ReadPinDir() (Closes: #535512) + * configure-index: document Dir::Etc::SourceParts and some other options + (Closes: #459605) + * Remove Eugene V. Lyubimkin from uploaders as requested. + * apt-pkg/contrib/hashes.cc, apt-pkg/contrib/md5.cc: + - Support reading until EOF if Size=0 to match behaviour of + SHA1Summation and SHA256Summation + ++ [ 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, ++ * Refactored condition structure to make download and upgrade performed ++ if only previous steps succeeded. Closes: #341970 ++ * Documented all cron script related configuration items in ++ configure-index. + + [ Dereck Wonnacott ] + * apt-ftparchive might write corrupt Release files (LP: #46439) + * Apply --important option to apt-cache depends (LP: #16947) - * Clarify the --help for 'purge' (LP: #243948) + + ++ + -- Julian Andres Klode Fri, 03 Jul 2009 08:27:35 +0200 + +apt (0.7.21) unstable; urgency=low + + [ Christian Perrier ] + * Translations: + - bg.po. Closes: #513211 + - zh_TW.po. Closes: #513311 + - nb.po. Closes: #513843 + - fr.po. Closes: #520430 + - sv.po. Closes: #518070 + - sk.po. Closes: #520403 + - it.po. Closes: #522222 + - sk.po. Closes: #520403 + + [ Jamie Strandboge ] + * apt.cron.daily: catch invalid dates due to DST time changes + in the stamp files + + [ Michael Vogt ] + * methods/gpgv.cc: + - properly check for expired and revoked keys (closes: #433091) + * apt-pkg/contrib/strutl.cc: + - fix TimeToStr i18n (LP: #289807) + * [ABI break] merge support for http redirects, thanks to + Jeff Licquia and Anthony Towns + * [ABI break] use int for the package IDs (thanks to Steve Cotton) + * apt-pkg/pkgcache.cc: + - do not run "dpkg --configure pkg" if pkg is in trigger-awaited + state (LP: #322955) + * methods/https.cc: + - add Acquire::https::AllowRedirect support + * Clarify the --help for 'purge' (LP: #243948) + * cmdline/apt-get.cc + - fix "apt-get source pkg" if there is a binary package and + a source package of the same name but from different + packages (LP: #330103) + [ Colin Watson ] * cmdline/acqprogress.cc: - Call pkgAcquireStatus::Pulse even if quiet, so that we still get diff --cc po/apt-all.pot index d1b705837,ae7cb4795..b8305c25c --- a/po/apt-all.pot +++ b/po/apt-all.pot @@@ -7,7 -7,7 +7,7 @@@ msgid " msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2009-06-30 14:09+0200\n" -"POT-Creation-Date: 2008-05-22 16:56+0200\n" ++"POT-Creation-Date: 2009-07-21 15:49+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@@ -15,153 -15,153 +15,148 @@@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" --#: cmdline/apt-cache.cc:143 ++#: cmdline/apt-cache.cc:141 #, c-format msgid "Package %s version %s has an unmet dep:\n" msgstr "" --#: cmdline/apt-cache.cc:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640 --#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018 --#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570 ++#: cmdline/apt-cache.cc:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:644 ++#: cmdline/apt-cache.cc:800 cmdline/apt-cache.cc:1022 ++#: cmdline/apt-cache.cc:1423 cmdline/apt-cache.cc:1575 #, c-format msgid "Unable to locate package %s" msgstr "" --#: cmdline/apt-cache.cc:247 ++#: cmdline/apt-cache.cc:245 msgid "Total package names: " msgstr "" --#: cmdline/apt-cache.cc:287 ++#: cmdline/apt-cache.cc:285 msgid " Normal packages: " msgstr "" --#: cmdline/apt-cache.cc:288 ++#: cmdline/apt-cache.cc:286 msgid " Pure virtual packages: " msgstr "" --#: cmdline/apt-cache.cc:289 ++#: cmdline/apt-cache.cc:287 msgid " Single virtual packages: " msgstr "" --#: cmdline/apt-cache.cc:290 ++#: cmdline/apt-cache.cc:288 msgid " Mixed virtual packages: " msgstr "" --#: cmdline/apt-cache.cc:291 ++#: cmdline/apt-cache.cc:289 msgid " Missing: " msgstr "" --#: cmdline/apt-cache.cc:293 ++#: cmdline/apt-cache.cc:291 msgid "Total distinct versions: " msgstr "" --#: cmdline/apt-cache.cc:295 ++#: cmdline/apt-cache.cc:293 msgid "Total distinct descriptions: " msgstr "" --#: cmdline/apt-cache.cc:297 ++#: cmdline/apt-cache.cc:295 msgid "Total dependencies: " msgstr "" --#: cmdline/apt-cache.cc:300 ++#: cmdline/apt-cache.cc:298 msgid "Total ver/file relations: " msgstr "" --#: cmdline/apt-cache.cc:302 ++#: cmdline/apt-cache.cc:300 msgid "Total Desc/File relations: " msgstr "" --#: cmdline/apt-cache.cc:304 ++#: cmdline/apt-cache.cc:302 msgid "Total Provides mappings: " msgstr "" --#: cmdline/apt-cache.cc:316 ++#: cmdline/apt-cache.cc:314 msgid "Total globbed strings: " msgstr "" --#: cmdline/apt-cache.cc:330 ++#: cmdline/apt-cache.cc:328 msgid "Total dependency version space: " msgstr "" --#: cmdline/apt-cache.cc:335 ++#: cmdline/apt-cache.cc:333 msgid "Total slack space: " msgstr "" --#: cmdline/apt-cache.cc:343 ++#: cmdline/apt-cache.cc:341 msgid "Total space accounted for: " msgstr "" --#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218 ++#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1222 #, c-format msgid "Package file %s is out of sync." msgstr "" --#: cmdline/apt-cache.cc:1293 ++#: cmdline/apt-cache.cc:1297 msgid "You must give exactly one pattern" msgstr "" --#: cmdline/apt-cache.cc:1447 ++#: cmdline/apt-cache.cc:1451 msgid "No packages found" msgstr "" --#: cmdline/apt-cache.cc:1524 ++#: cmdline/apt-cache.cc:1528 msgid "Package files:" msgstr "" --#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617 ++#: cmdline/apt-cache.cc:1535 cmdline/apt-cache.cc:1622 msgid "Cache is out of sync, can't x-ref a package file" msgstr "" --#: cmdline/apt-cache.cc:1532 --#, c-format --msgid "%4i %s\n" --msgstr "" -- #. Show any packages have explicit pins --#: cmdline/apt-cache.cc:1544 ++#: cmdline/apt-cache.cc:1549 msgid "Pinned packages:" msgstr "" --#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597 ++#: cmdline/apt-cache.cc:1561 cmdline/apt-cache.cc:1602 msgid "(not found)" msgstr "" #. Installed version --#: cmdline/apt-cache.cc:1577 ++#: cmdline/apt-cache.cc:1582 msgid " Installed: " msgstr "" --#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587 ++#: cmdline/apt-cache.cc:1584 cmdline/apt-cache.cc:1592 msgid "(none)" msgstr "" #. Candidate Version --#: cmdline/apt-cache.cc:1584 ++#: cmdline/apt-cache.cc:1589 msgid " Candidate: " msgstr "" --#: cmdline/apt-cache.cc:1594 ++#: cmdline/apt-cache.cc:1599 msgid " Package pin: " msgstr "" #. Show the priority tables --#: cmdline/apt-cache.cc:1603 ++#: cmdline/apt-cache.cc:1608 msgid " Version table:" msgstr "" --#: cmdline/apt-cache.cc:1618 ++#: cmdline/apt-cache.cc:1623 #, c-format msgid " %4i %s\n" msgstr "" --#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 ++#: cmdline/apt-cache.cc:1719 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547 -#: cmdline/apt-get.cc:2571 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2586 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "" --#: cmdline/apt-cache.cc:1721 ++#: cmdline/apt-cache.cc:1726 msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] add file1 [file2 ...]\n" @@@ -780,7 -780,7 +775,7 @@@ msgstr " msgid "Do you want to continue [Y/n]? " msgstr "" - #: cmdline/apt-get.cc:987 cmdline/apt-get.cc:2227 apt-pkg/algorithms.cc:1400 -#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2214 apt-pkg/algorithms.cc:1344 ++#: cmdline/apt-get.cc:987 cmdline/apt-get.cc:2227 apt-pkg/algorithms.cc:1407 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@@ -1386,9 -1370,9 +1381,9 @@@ msgstr " msgid "File %s/%s overwrites the one in the package %s" msgstr "" -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 --#: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 ++#: apt-pkg/acquire.cc:419 apt-pkg/clean.cc:34 apt-pkg/policy.cc:268 #, c-format msgid "Unable to read %s" msgstr "" @@@ -1613,7 -1597,7 +1608,7 @@@ msgstr " msgid "Server closed the connection" msgstr "" - #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:538 methods/rsh.cc:190 -#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:536 methods/rsh.cc:190 ++#: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:541 methods/rsh.cc:190 msgid "Read error" msgstr "" @@@ -1625,7 -1609,7 +1620,7 @@@ msgstr " msgid "Protocol corruption" msgstr "" - #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:577 methods/rsh.cc:232 -#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:575 methods/rsh.cc:232 ++#: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:580 methods/rsh.cc:232 msgid "Write error" msgstr "" @@@ -2043,8 -1992,7 +2038,8 @@@ msgstr " msgid "Unable to stat the mount point %s" msgstr "" -#: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/acquire.cc:424 apt-pkg/clean.cc:40 +#: apt-pkg/contrib/cdromutl.cc:146 apt-pkg/contrib/cdromutl.cc:180 - #: apt-pkg/acquire.cc:424 apt-pkg/acquire.cc:449 apt-pkg/clean.cc:40 ++#: apt-pkg/acquire.cc:425 apt-pkg/acquire.cc:450 apt-pkg/clean.cc:40 #, c-format msgid "Unable to change to %s" msgstr "" @@@ -2078,45 -2026,45 +2073,50 @@@ msgstr " msgid "Waited for %s but it wasn't there" msgstr "" - #: apt-pkg/contrib/fileutl.cc:454 -#: apt-pkg/contrib/fileutl.cc:452 ++#: apt-pkg/contrib/fileutl.cc:455 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "" -#: apt-pkg/contrib/fileutl.cc:455 +#: apt-pkg/contrib/fileutl.cc:457 +#, c-format ++msgid "Sub-process %s received signal %u." ++msgstr "" ++ ++#: apt-pkg/contrib/fileutl.cc:460 + #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "" - #: apt-pkg/contrib/fileutl.cc:459 -#: apt-pkg/contrib/fileutl.cc:457 ++#: apt-pkg/contrib/fileutl.cc:462 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "" - #: apt-pkg/contrib/fileutl.cc:503 -#: apt-pkg/contrib/fileutl.cc:501 ++#: apt-pkg/contrib/fileutl.cc:506 #, c-format msgid "Could not open file %s" msgstr "" - #: apt-pkg/contrib/fileutl.cc:559 -#: apt-pkg/contrib/fileutl.cc:557 ++#: apt-pkg/contrib/fileutl.cc:562 #, c-format msgid "read, still have %lu to read but none left" msgstr "" - #: apt-pkg/contrib/fileutl.cc:589 -#: apt-pkg/contrib/fileutl.cc:587 ++#: apt-pkg/contrib/fileutl.cc:592 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "" - #: apt-pkg/contrib/fileutl.cc:664 -#: apt-pkg/contrib/fileutl.cc:662 ++#: apt-pkg/contrib/fileutl.cc:667 msgid "Problem closing the file" msgstr "" - #: apt-pkg/contrib/fileutl.cc:670 -#: apt-pkg/contrib/fileutl.cc:668 ++#: apt-pkg/contrib/fileutl.cc:673 msgid "Problem unlinking the file" msgstr "" - #: apt-pkg/contrib/fileutl.cc:681 -#: apt-pkg/contrib/fileutl.cc:679 ++#: apt-pkg/contrib/fileutl.cc:684 msgid "Problem syncing the file" msgstr "" @@@ -2302,40 -2246,40 +2302,40 @@@ msgid " "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" - #: apt-pkg/algorithms.cc:1147 -#: apt-pkg/algorithms.cc:1106 ++#: apt-pkg/algorithms.cc:1154 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" - #: apt-pkg/algorithms.cc:1149 -#: apt-pkg/algorithms.cc:1108 ++#: apt-pkg/algorithms.cc:1156 msgid "Unable to correct problems, you have held broken packages." msgstr "" - #: apt-pkg/algorithms.cc:1426 apt-pkg/algorithms.cc:1428 -#: apt-pkg/algorithms.cc:1370 apt-pkg/algorithms.cc:1372 ++#: apt-pkg/algorithms.cc:1433 apt-pkg/algorithms.cc:1435 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." msgstr "" --#: apt-pkg/acquire.cc:59 ++#: apt-pkg/acquire.cc:60 #, c-format msgid "Lists directory %spartial is missing." msgstr "" --#: apt-pkg/acquire.cc:63 ++#: apt-pkg/acquire.cc:64 #, c-format msgid "Archive directory %spartial is missing." msgstr "" #. only show the ETA if it makes sense #. two days - #: apt-pkg/acquire.cc:828 -#: apt-pkg/acquire.cc:827 ++#: apt-pkg/acquire.cc:829 #, c-format msgid "Retrieving file %li of %li (%s remaining)" msgstr "" - #: apt-pkg/acquire.cc:830 -#: apt-pkg/acquire.cc:829 ++#: apt-pkg/acquire.cc:831 #, c-format msgid "Retrieving file %li of %li" msgstr "" @@@ -2355,12 -2299,12 +2355,12 @@@ msgstr " msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" --#: apt-pkg/init.cc:124 ++#: apt-pkg/init.cc:125 #, c-format msgid "Packaging system '%s' is not supported" msgstr "" --#: apt-pkg/init.cc:140 ++#: apt-pkg/init.cc:141 msgid "Unable to determine a suitable packaging system type" msgstr "" @@@ -2381,16 -2325,16 +2381,17 @@@ msgstr " msgid "You may want to run apt-get update to correct these problems" msgstr "" - #: apt-pkg/policy.cc:281 -#: apt-pkg/policy.cc:267 --msgid "Invalid record in the preferences file, no Package header" ++#: apt-pkg/policy.cc:329 ++#, c-format ++msgid "Invalid record in the preferences file %s, no Package header" msgstr "" - #: apt-pkg/policy.cc:303 -#: apt-pkg/policy.cc:289 ++#: apt-pkg/policy.cc:351 #, c-format msgid "Did not understand pin type %s" msgstr "" - #: apt-pkg/policy.cc:311 -#: apt-pkg/policy.cc:297 ++#: apt-pkg/policy.cc:359 msgid "No priority (or zero) specified for pin" msgstr "" @@@ -2528,6 -2472,6 +2529,21 @@@ msgstr " msgid "Size mismatch" msgstr "" ++#: apt-pkg/indexrecords.cc:40 ++#, c-format ++msgid "Unable to parse Release file %s" ++msgstr "" ++ ++#: apt-pkg/indexrecords.cc:47 ++#, c-format ++msgid "No sections in Release file %s" ++msgstr "" ++ ++#: apt-pkg/indexrecords.cc:81 ++#, c-format ++msgid "No Hash entry in Release file %s" ++msgstr "" ++ #: apt-pkg/vendorlist.cc:66 #, c-format msgid "Vendor block %s contains no fingerprint" @@@ -2582,6 -2526,6 +2598,12 @@@ msgid " "zu signatures\n" msgstr "" ++#: apt-pkg/cdrom.cc:689 ++msgid "" ++"Unable to locate any package files, perhaps this is not a Debian Disc or the " ++"wrong architecture?" ++msgstr "" ++ #: apt-pkg/cdrom.cc:715 #, c-format msgid "Found label '%s'\n" @@@ -2610,103 -2554,100 +2632,119 @@@ msgstr " msgid "Source list entries for this disc are:\n" msgstr "" --#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:823 ++#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:833 #, c-format msgid "Wrote %i records.\n" msgstr "" --#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:825 ++#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:835 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "" --#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:828 ++#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:838 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "" --#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:831 ++#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:841 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:486 +#: apt-pkg/deb/dpkgpm.cc:49 #, c-format -msgid "Directory '%s' missing" +msgid "Installing %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:612 -#: apt-pkg/deb/dpkgpm.cc:569 ++#: apt-pkg/deb/dpkgpm.cc:50 apt-pkg/deb/dpkgpm.cc:642 #, c-format -msgid "Preparing %s" +msgid "Configuring %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:627 -#: apt-pkg/deb/dpkgpm.cc:570 ++#: apt-pkg/deb/dpkgpm.cc:51 apt-pkg/deb/dpkgpm.cc:649 #, c-format -msgid "Unpacking %s" +msgid "Removing %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:575 +#: apt-pkg/deb/dpkgpm.cc:52 #, c-format -msgid "Preparing to configure %s" +msgid "Running post-installation trigger %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:521 -#: apt-pkg/deb/dpkgpm.cc:576 apt-pkg/deb/dpkgpm.cc:605 ++#: apt-pkg/deb/dpkgpm.cc:546 #, c-format -msgid "Configuring %s" +msgid "Directory '%s' missing" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:605 -#: apt-pkg/deb/dpkgpm.cc:578 apt-pkg/deb/dpkgpm.cc:579 ++#: apt-pkg/deb/dpkgpm.cc:635 #, c-format -msgid "Processing triggers for %s" +msgid "Preparing %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:606 -#: apt-pkg/deb/dpkgpm.cc:581 ++#: apt-pkg/deb/dpkgpm.cc:636 #, c-format -msgid "Installed %s" +msgid "Unpacking %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:611 -#: apt-pkg/deb/dpkgpm.cc:586 apt-pkg/deb/dpkgpm.cc:588 -#: apt-pkg/deb/dpkgpm.cc:589 ++#: apt-pkg/deb/dpkgpm.cc:641 #, c-format -msgid "Preparing for removal of %s" +msgid "Preparing to configure %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:614 apt-pkg/deb/dpkgpm.cc:615 - #, c-format - msgid "Processing triggers for %s" - msgstr "" - - #: apt-pkg/deb/dpkgpm.cc:617 -#: apt-pkg/deb/dpkgpm.cc:591 apt-pkg/deb/dpkgpm.cc:606 ++#: apt-pkg/deb/dpkgpm.cc:643 #, c-format -msgid "Removing %s" +msgid "Installed %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:622 apt-pkg/deb/dpkgpm.cc:624 - #: apt-pkg/deb/dpkgpm.cc:625 -#: apt-pkg/deb/dpkgpm.cc:592 ++#: apt-pkg/deb/dpkgpm.cc:648 +#, c-format +msgid "Preparing for removal of %s" +msgstr "" + - #: apt-pkg/deb/dpkgpm.cc:628 ++#: apt-pkg/deb/dpkgpm.cc:650 #, c-format msgid "Removed %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:633 -#: apt-pkg/deb/dpkgpm.cc:597 ++#: apt-pkg/deb/dpkgpm.cc:655 #, c-format msgid "Preparing to completely remove %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:634 -#: apt-pkg/deb/dpkgpm.cc:598 ++#: apt-pkg/deb/dpkgpm.cc:656 #, c-format msgid "Completely removed %s" msgstr "" - #: apt-pkg/deb/dpkgpm.cc:789 -#. populate the "processing" map -#: apt-pkg/deb/dpkgpm.cc:604 ++#: apt-pkg/deb/dpkgpm.cc:820 +msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" +msgstr "" + ++#: apt-pkg/deb/dpkgpm.cc:848 ++msgid "Running dpkg" ++msgstr "" ++ ++#: apt-pkg/deb/debsystem.cc:70 + #, c-format -msgid "Installing %s" ++msgid "" ++"Unable to lock the administration directory (%s), is another process using " ++"it?" + msgstr "" + -#: apt-pkg/deb/dpkgpm.cc:607 ++#: apt-pkg/deb/debsystem.cc:73 + #, c-format -msgid "Triggering %s" ++msgid "Unable to lock the administration directory (%s), are you root?" + msgstr "" + -#: apt-pkg/deb/dpkgpm.cc:756 -msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" ++#: apt-pkg/deb/debsystem.cc:82 ++msgid "" ++"dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct " ++"the problem. " ++msgstr "" ++ +#: apt-pkg/deb/debsystem.cc:100 +msgid "Not locked" msgstr "" #: methods/rred.cc:219