Browse Source

* apt-ftparchive might write corrupt Release files (LP: #46439)


			
			
				debian/1.8.y
			
			
		
Michael Vogt 14 years ago
parent
commit
742f980e2d
  1. 12
      COMPILING
  2. 2
      README.arch
  3. 16
      README.make
  4. 29
      apt-pkg/acquire-item.cc
  5. 2
      apt-pkg/acquire.cc
  6. 8
      apt-pkg/algorithms.cc
  7. 2
      apt-pkg/contrib/cmndline.cc
  8. 2
      apt-pkg/contrib/cmndline.h
  9. 6
      apt-pkg/contrib/strutl.cc
  10. 51
      apt-pkg/deb/dpkgpm.cc
  11. 2
      apt-pkg/deb/dpkgpm.h
  12. 2
      apt-pkg/depcache.cc
  13. 2
      apt-pkg/orderlist.cc
  14. 2
      apt-pkg/versionmatch.cc
  15. 2
      buildlib/apti18n.h.in
  16. 2
      buildlib/copy.mak
  17. 7
      buildlib/inttypes.h.in
  18. 2
      cmdline/apt-key
  19. 12
      cmdline/makefile
  20. 92
      debian/apt.cron.daily
  21. 182
      debian/changelog
  22. 9
      doc/apt-cache.8.xml
  23. 6
      doc/apt-get.8.xml
  24. 23
      doc/apt-key.8.xml
  25. 2
      doc/apt-mark.8.xml
  26. 8
      doc/apt.8
  27. 3
      doc/apt.conf.5.xml
  28. 2
      doc/apt.ent
  29. 3
      doc/apt_preferences.5.xml
  30. 2
      doc/ja/apt-secure.ja.8.xml
  31. 2
      doc/ja/apt.ent.ja
  32. 18
      doc/offline.sgml
  33. 2
      ftparchive/makefile
  34. 20
      methods/makefile
  35. 105
      po/ChangeLog
  36. 41
      po/ar.po
  37. 50
      po/bg.po
  38. 41
      po/bs.po
  39. 386
      po/ca.po
  40. 128
      po/cs.po
  41. 43
      po/cy.po
  42. 41
      po/da.po
  43. 344
      po/de.po
  44. 41
      po/dz.po
  45. 262
      po/el.po
  46. 41
      po/en_GB.po
  47. 160
      po/es.po
  48. 50
      po/eu.po
  49. 41
      po/fi.po
  50. 114
      po/fr.po
  51. 46
      po/gl.po
  52. 41
      po/he.po
  53. 41
      po/hu.po
  54. 41
      po/it.po
  55. 46
      po/ja.po
  56. 41
      po/km.po
  57. 422
      po/ko.po
  58. 41
      po/ku.po
  59. 2797
      po/lt.po
  60. 41
      po/mr.po
  61. 85
      po/nb.po
  62. 41
      po/ne.po
  63. 41
      po/nl.po
  64. 41
      po/nn.po
  65. 46
      po/pl.po
  66. 50
      po/pt.po
  67. 46
      po/pt_BR.po
  68. 948
      po/ro.po
  69. 48
      po/ru.po
  70. 224
      po/sk.po
  71. 41
      po/sl.po
  72. 68
      po/sv.po
  73. 41
      po/th.po
  74. 41
      po/tl.po
  75. 41
      po/uk.po
  76. 46
      po/vi.po
  77. 50
      po/zh_CN.po
  78. 164
      po/zh_TW.po

12
COMPILING

@ -9,14 +9,14 @@ To compile this you need a couple things
g++ 2.8 works OK and newer egcs work well also. Nobody has tried it
on other compilers :< You will need a properly working STL as well.
- A C library with the usual POSIX functions and a BSD socket layer.
If you OS conforms to the Single Unix Spec then you are fine:
If your OS conforms to the Single Unix Spec then you are fine:
http://www.opengroup.org/onlinepubs/7908799/index.html
- Refer to the Build-Depends information in debian/control for
additional requirements (some of which are Debian-specific)
** NOTICE **
The C++ global constructors do not link correctly when using non-shared
libaries. This is probably the correct behavior of the linker, but I have
libraries. This is probably the correct behavior of the linker, but I have
not yet had time to devise a work around for it. The correct thing to
do is add a reference to debSystem in apt-pkg/init.cc,
assert(&debSystem == 0) would be fine for instance.
@ -29,7 +29,7 @@ I don't really care if your not-SUS OS doesn't work. It is simply too
much work to maintain patches for dysfunctional OSs. I highly suggest you
contact your vendor and express intrest in a conforming C library.
That said, there are lots of finniky problems that must be delt with even
That said, there are lots of finicky problems that must be dealt with even
between the supported OS's. Primarily the path I choose to take is to put
a shim header file in build/include that transparently adds the required
functionality. Patches to make autoconf detect these cases and generate the
@ -39,12 +39,12 @@ Current shims:
* C99 integer types 'inttypes.h'
* sys/statvfs.h to convert from BSD/old-glibc statfs to SUS statvfs
* rfc2553 hostname resolution (methods/rfc*), shims to normal gethostbyname.
The more adventerous could steal the KAME IPv6 enabled resolvers for those
The more adventurous could steal the KAME IPv6 enabled resolvers for those
OS's with IPv6 support but no rfc2553 (why?)
* define _XOPEN_EXTENDED_SOURCE to bring in h_errno on HP-UX
* socklen_t shim in netdb.h if the OS does not have socklen_t
The only completely non-shimed OS is Linux with glibc2.1, glibc2.0 requires
The only completely non-shimmed OS is Linux with glibc2.1, glibc2.0 requires
the first three shims.
Platform Notes
@ -77,7 +77,7 @@ OpenBSD
HP-UX
HP-UX nyquist B.10.20 C 9000/780 2016574337 32-user license
- Evil OS, does not conform very well to SUS
1) snprintf exists but is not prototyped, ignore spurios warnings
1) snprintf exists but is not prototyped, ignore spurious warnings
2) No socklen_t
3) Requires -D_XOPEN_SOURCE_EXTENDED for h_errno
configure should fix the last two (see above)

2
README.arch

@ -1,7 +1,7 @@
You can build apt from arch, but this needs the following additional
packages (in addtion to the usual build-depends):
autoconf automake xmlto perlsgml sgml2x sgmlspl docbook
autoconf automake xmlto perlsgml sgml2x sgmlspl docbook doxygen
then run:

16
README.make

@ -36,12 +36,12 @@ cd into it to edit your source code!
The make system also performs dependency generation on the fly as the
compiler runs. This is extremely fast and accurate. There is however
one failure condition that occures when a header file is erased. In
one failure condition that occurs when a header file is erased. In
this case you should run make clean to purge the .o and .d files to
rebuild.
The final significant deviation from normal make practicies is
in how the build directory is managed. It is not mearly a mirror of
The final significant deviation from normal make practices is
in how the build directory is managed. It is not nearly a mirror of
the source directory but is logically divided in the following manner
bin/
methods/
@ -51,12 +51,12 @@ the source directory but is logically divided in the following manner
apt-pkg/
obj/
apt-pkg/
cmndline/
cmdline/
[...]
Only .o and .d files are placed in the obj/ subdirectory. The final compiled
binaries are placed in bin, published headers for inter-component linking
are placed in include/ and documentation is generated into doc/. This means
all runnable programs are within the bin/ directory, a huge benifit for
all runnable programs are within the bin/ directory, a huge benefit for
debugging inter-program relationships. The .so files are also placed in
bin/ for simplicity.
@ -87,9 +87,9 @@ Autoconf
~~~~~~~~
Straight out of CVS you have to initialize autoconf. This requires
automake (I really don't know why) and autoconf and requires doing
aclocal -I buidlib
aclocal -I buildlib
autoconf
[Altertatively you can run make startup in the top level build dir]
[Alternatively you can run make startup in the top level build dir]
Autoconf is configured to do some basic system probes for optional and
required functionality and generate an environment.mak and include/config.h
@ -103,7 +103,7 @@ build include/ dir and perhaps writing some replacement code and
linking it in. To the fullest extent possible the source code should conform
to standards and not cater to broken systems.
Autoconf will also wite a makefile into the top level of the build dir,
Autoconf will also write a makefile into the top level of the build dir,
this simply acts as a wrapper to the main top level make in the source tree.
There is one big warning, you can't use both this make file and the
ones in the top level tree. Make is not able to resolve rules that

29
apt-pkg/acquire-item.cc

@ -568,9 +568,9 @@ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner,
else
CompressionExtension = ".gz";
} else {
CompressionExtension = comprExt;
CompressionExtension = (comprExt == "plain" ? "" : comprExt);
}
Desc.URI = URI + CompressionExtension;
Desc.URI = URI + CompressionExtension;
Desc.Description = URIDesc;
Desc.Owner = this;
@ -597,19 +597,30 @@ string pkgAcqIndex::Custom600Headers()
void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
{
bool descChanged = false;
// no .bz2 found, retry with .gz
if(Desc.URI.substr(Desc.URI.size()-3) == "bz2") {
Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz";
Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz";
// retry with a gzip one
new pkgAcqIndex(Owner, RealURI, Desc.Description,Desc.ShortDesc,
new pkgAcqIndex(Owner, RealURI, Desc.Description,Desc.ShortDesc,
ExpectedHash, string(".gz"));
descChanged = true;
}
// no .gz found, retry with uncompressed
else if(Desc.URI.substr(Desc.URI.size()-2) == "gz") {
Desc.URI = Desc.URI.substr(0,Desc.URI.size()-2);
new pkgAcqIndex(Owner, RealURI, Desc.Description,Desc.ShortDesc,
ExpectedHash, string("plain"));
descChanged = true;
}
if (descChanged) {
Status = StatDone;
Complete = false;
Dequeue();
return;
}
}
// on decompression failure, remove bad versions in partial/
if(Decompression && Erase) {
string s = _config->FindDir("Dir::State::lists") + "partial/";
@ -700,12 +711,14 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
else
Local = true;
string compExt = Desc.URI.substr(Desc.URI.size()-3);
string compExt = flExtension(URI(Desc.URI).Path);
const char *decompProg;
if(compExt == "bz2")
decompProg = "bzip2";
else if(compExt == ".gz")
decompProg = "gzip";
else if(compExt == "")
decompProg = "copy";
else {
_error->Error("Unsupported extension: %s", compExt.c_str());
return;

2
apt-pkg/acquire.cc

@ -797,7 +797,7 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
// Compute the CPS
struct timeval NewTime;
gettimeofday(&NewTime,0);
if (NewTime.tv_sec - Time.tv_sec == 6 && NewTime.tv_usec > Time.tv_usec ||
if ((NewTime.tv_sec - Time.tv_sec == 6 && NewTime.tv_usec > Time.tv_usec) ||
NewTime.tv_sec - Time.tv_sec > 6)
{
double Delta = NewTime.tv_sec - Time.tv_sec +

8
apt-pkg/algorithms.cc

@ -497,7 +497,7 @@ void pkgProblemResolver::MakeScores()
signed short &Score = Scores[I->ID];
/* This is arbitary, it should be high enough to elevate an
/* This is arbitrary, it should be high enough to elevate an
essantial package above most other packages but low enough
to allow an obsolete essential packages to be removed by
a conflicts on a powerfull normal package (ie libc6) */
@ -1342,7 +1342,11 @@ bool ListUpdate(pkgAcquireStatus &Stat,
(*I)->Finished();
_error->Warning(_("Failed to fetch %s %s\n"),(*I)->DescURI().c_str(),
::URI uri((*I)->DescURI());
uri.User.clear();
uri.Password.clear();
string descUri = string(uri);
_error->Warning(_("Failed to fetch %s %s\n"), descUri.c_str(),
(*I)->ErrorText.c_str());
if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError)

2
apt-pkg/contrib/cmndline.cc

@ -189,7 +189,7 @@ bool CommandLine::HandleOpt(int &I,int argc,const char *argv[],
if ((A->Flags & ConfigFile) == ConfigFile)
return ReadConfigFile(*Conf,Argument);
// Arbitary item specification
// Arbitrary item specification
if ((A->Flags & ArbItem) == ArbItem)
{
const char *J;

2
apt-pkg/contrib/cmndline.h

@ -34,7 +34,7 @@
ConfigFile - Means this flag should be interprited as the name of
a config file to read in at this point in option processing.
Implies HasArg.
ArbItem - Means the item is an arbitary configuration string of
ArbItem - Means the item is an arbitrary configuration string of
the form item=value, where item is passed directly
to the configuration class.
The default, if the flags are 0 is to use Boolean

6
apt-pkg/contrib/strutl.cc

@ -459,9 +459,9 @@ string Base64Encode(const string &S)
return Final;
}
/*}}}*/
// stringcmp - Arbitary string compare /*{{{*/
// stringcmp - Arbitrary string compare /*{{{*/
// ---------------------------------------------------------------------
/* This safely compares two non-null terminated strings of arbitary
/* This safely compares two non-null terminated strings of arbitrary
length */
int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd)
{
@ -517,7 +517,7 @@ int stringcmp(string::const_iterator A,string::const_iterator AEnd,
}
#endif
/*}}}*/
// stringcasecmp - Arbitary case insensitive string compare /*{{{*/
// stringcasecmp - Arbitrary case insensitive string compare /*{{{*/
// ---------------------------------------------------------------------
/* */
int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd)

51
apt-pkg/deb/dpkgpm.cc

@ -25,6 +25,8 @@
#include <signal.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <sstream>
#include <map>
@ -39,7 +41,38 @@
using namespace std;
namespace
{
// Maps the dpkg "processing" info to human readable names. Entry 0
// of each array is the key, entry 1 is the value.
const std::pair<const char *, const char *> PackageProcessingOps[] = {
std::make_pair("install", N_("Installing %s")),
std::make_pair("configure", N_("Configuring %s")),
std::make_pair("remove", N_("Removing %s")),
std::make_pair("trigproc", N_("Running post-installation trigger %s"))
};
const std::pair<const char *, const char *> * const PackageProcessingOpsBegin = PackageProcessingOps;
const std::pair<const char *, const char *> * const PackageProcessingOpsEnd = PackageProcessingOps + sizeof(PackageProcessingOps) / sizeof(PackageProcessingOps[0]);
// Predicate to test whether an entry in the PackageProcessingOps
// array matches a string.
class MatchProcessingOp
{
const char *target;
public:
MatchProcessingOp(const char *the_target)
: target(the_target)
{
}
bool operator()(const std::pair<const char *, const char *> &pair) const
{
return strcmp(pair.first, target) == 0;
}
};
}
// DPkgPM::pkgDPkgPM - Constructor /*{{{*/
// ---------------------------------------------------------------------
@ -362,17 +395,19 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
if(strncmp(list[0], "processing", strlen("processing")) == 0)
{
char s[200];
map<string,string>::iterator iter;
char *pkg_or_trigger = _strstrip(list[2]);
action =_strstrip( list[1]);
iter = PackageProcessingOps.find(action);
if(iter == PackageProcessingOps.end())
const std::pair<const char *, const char *> * const iter =
std::find_if(PackageProcessingOpsBegin,
PackageProcessingOpsEnd,
MatchProcessingOp(action));
if(iter == PackageProcessingOpsEnd)
{
if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
std::clog << "ignoring unknwon action: " << action << std::endl;
return;
}
snprintf(s, sizeof(s), _(iter->second.c_str()), pkg_or_trigger);
snprintf(s, sizeof(s), _(iter->second), pkg_or_trigger);
status << "pmstatus:" << pkg_or_trigger
<< ":" << (PackagesDone/float(PackagesTotal)*100.0)
@ -601,12 +636,6 @@ bool pkgDPkgPM::Go(int OutStatusFd)
},
};
// populate the "processing" map
PackageProcessingOps.insert( make_pair("install",N_("Installing %s")) );
PackageProcessingOps.insert( make_pair("configure",N_("Configuring %s")) );
PackageProcessingOps.insert( make_pair("remove",N_("Removing %s")) );
PackageProcessingOps.insert( make_pair("trigproc",N_("Running post-installation trigger %s")) );
// init the PackageOps map, go over the list of packages that
// that will be [installed|configured|removed|purged] and add
// them to the PackageOps map (the dpkg states it goes through)

2
apt-pkg/deb/dpkgpm.h

@ -47,8 +47,6 @@ class pkgDPkgPM : public pkgPackageManager
// the int is the state that is already done (e.g. a package that is
// going to be install is already in state "half-installed")
map<string,unsigned int> PackageOpsDone;
// map the dpkg "processing" info to human readable names
map<string,string> PackageProcessingOps;
// progress reporting
unsigned int PackagesDone;
unsigned int PackagesTotal;

2
apt-pkg/depcache.cc

@ -1001,7 +1001,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
if(Pkg.Section() && ConfigValueInSubTree("APT::Never-MarkAuto-Sections", Pkg.Section()))
{
if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true)
std::clog << "Setting NOT as auto-installed (direct dep of pkg in APT::Never-MarkAuto-Section)" << std::endl;
std::clog << "Setting NOT as auto-installed (direct dep of pkg in APT::Never-MarkAuto-Sections)" << std::endl;
MarkInstall(InstPkg,true,Depth + 1, true);
}
else

2
apt-pkg/orderlist.cc

@ -39,7 +39,7 @@
ordering.
Each of the features can be enabled in the sorting routine at an
arbitary priority to give quite abit of control over the final unpacking
arbitrary priority to give quite abit of control over the final unpacking
order.
The rules listed above may never be violated and are called Critical.

2
apt-pkg/versionmatch.cc

@ -124,7 +124,7 @@ bool pkgVersionMatch::MatchVer(const char *A,string B,bool Prefix)
const char *Ae = Ab + strlen(A);
// Strings are not a compatible size.
if ((unsigned)(Ae - Ab) != B.length() && Prefix == false ||
if (((unsigned)(Ae - Ab) != B.length() && Prefix == false) ||
(unsigned)(Ae - Ab) < B.length())
return false;

2
buildlib/apti18n.h.in

@ -18,6 +18,8 @@
#else
// apt will not use any gettext
# define setlocale(a, b)
# define textdomain(a)
# define bindtextdomain(a, b)
# define _(x) x
# define N_(x) x
#endif

2
buildlib/copy.mak

@ -1,6 +1,6 @@
# -*- make -*-
# This installs arbitary files into a directory
# This installs arbitrary files into a directory
# Input
# $(SOURCE) - The documents to use

7
buildlib/inttypes.h.in

@ -4,6 +4,13 @@
#include <config.h>
#undef int32_t
#undef uint32_t
#undef int16_t
#undef uint16_t
#undef int8_t
#undef uint8_t
/* Generate the fixed bit size types */
#if SIZEOF_INT == 4
typedef int int32_t;

2
cmdline/apt-key

@ -114,6 +114,8 @@ usage() {
echo " apt-key update - update keys using the keyring package"
echo " apt-key net-update - update keys using the network"
echo " apt-key list - list keys"
echo " apt-key finger - list fingerprints"
echo " apt-key adv - pass advanced options to gpg (download key)"
echo
}

12
cmdline/makefile

@ -7,42 +7,42 @@ include ../buildlib/defaults.mak
# The apt-cache program
PROGRAM=apt-cache
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-cache.cc
include $(PROGRAM_H)
# The apt-get program
PROGRAM=apt-get
SLIBS = -lapt-pkg -lutil
SLIBS = -lapt-pkg -lutil $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-get.cc acqprogress.cc
include $(PROGRAM_H)
# The apt-config program
PROGRAM=apt-config
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-config.cc
include $(PROGRAM_H)
# The apt-cdrom program
PROGRAM=apt-cdrom
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-cdrom.cc
include $(PROGRAM_H)
# The apt-sortpkgs program
PROGRAM=apt-sortpkgs
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-sortpkgs.cc
include $(PROGRAM_H)
# The apt-extracttemplates program
PROGRAM=apt-extracttemplates
SLIBS = -lapt-pkg -lapt-inst
SLIBS = -lapt-pkg -lapt-inst $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = apt-extracttemplates.cc
include $(PROGRAM_H)

92
debian/apt.cron.daily

@ -102,6 +102,96 @@ update_stamp()
touch $stamp
}
# we check here if autoclean was enough sizewise
check_size_constraints()
{
# min-age in days
MaxAge=0
MinAge=2
MaxSize=0
CacheDir="var/cache/apt"
CacheArchive="archives/"
eval $(apt-config shell MaxAge APT::Archives::MaxAge)
eval $(apt-config shell MinAge APT::Archives::MinAge)
eval $(apt-config shell MaxSize APT::Archives::MaxSize)
eval $(apt-config shell Dir Dir)
eval $(apt-config shell CacheDir Dir::Cache)
eval $(apt-config shell CacheArchive Dir::Cache::archives)
# sanity check
if [ -z "$CacheDir" -o -z "$CacheArchive" ]; then
echo "empty Dir::Cache or Dir::Cache::archives, exiting"
exit
fi
Cache="${Dir%/}/${CacheDir%/}/${CacheArchive%/}/"
# check age
if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then
find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f
elif [ ! $MaxAge -eq 0 ]; then
find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f
fi
# check size
if [ ! $MaxSize -eq 0 ]; then
# maxSize is in MB
MaxSize=$(($MaxSize*1024))
#get current time
now=$(date --date=$(date --iso-8601) +%s)
MinAge=$(($MinAge*24*60*60))
# reverse-sort by mtime
for file in $(ls -rt $Cache/*.deb 2>/dev/null); do
du=$(du -s $Cache)
size=${du%%/*}
# check if the cache is small enough
if [ $size -lt $MaxSize ]; then
break
fi
# check for MinAge of the file
if [ ! $MinAge -eq 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
#echo "$file ($delta), $MinAge"
if [ $delta -le $MinAge ]; then
#echo "Skiping $file (delta=$delta)"
break
fi
fi
# delete oldest file
rm -f $file
done
fi
}
# sleep for a random interval of time (default 30min)
# (some code taken from cron-apt, thanks)
random_sleep()
{
RandomSleep=1800
eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep)
if [ $RandomSleep -eq 0 ]; then
return
fi
if [ -z "$RANDOM" ] ; then
# A fix for shells that do not have this bash feature.
RANDOM=$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -c"1-5")
fi
TIME=$(($RANDOM % $RandomSleep))
sleep $TIME
}
debug_echo()
{
# Display message if $VERBOSE >= 1
@ -110,6 +200,8 @@ debug_echo()
fi
}
# main
# check apt-config exstance
if ! which apt-config >/dev/null ; then
exit 0

182
debian/changelog

@ -1,4 +1,4 @@
apt (0.7.15) UNRELEASED; urgency=low
apt (0.7.17) UNRELEASED; urgency=low
[ Osamu Aoki ]
* Updated cron script to support backups by hardlinks and
@ -10,23 +10,11 @@ apt (0.7.15) UNRELEASED; urgency=low
configure-index.
[ Michael Vogt ]
* apt-pkg/deb/dpkgpm.cc:
- improve apt progress reporting, display trigger actions
* apt-pkg/depcache.cc:
- when checking for new important deps, skip critical ones
(LP: #236360)
* merge patch that enforces stricter https server certificate
checking (thanks to Arnaud Ebalard, closes: #485960)
* allow per-mirror specific https settings
(thanks to Arnaud Ebalard, closes: #485965)
* add doc/examples/apt-https-method-example.cof
(thanks to Arnaud Ebalard, closes: #485964)
* add DPkg::NoTriggers option so that applications that call
apt/aptitude (like the installer) defer trigger processing
(thanks to Joey Hess)
* document --install-recommends and --no-install-recommends
(thanks to Dereck Wonnacott, LP: #126180)
* fix various -Wall warnings
* make "apt-get build-dep" installed packages marked automatic
by default. This can be changed by setting the value of
APT::Get::Build-Dep-Automatic to false (thanks to Aaron
@ -38,25 +26,163 @@ apt (0.7.15) UNRELEASED; urgency=low
* cmdline/apt-cache.cc:
- 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/pkgcachegen.cc:
- do not add multiple identical descriptions for the same
language (closes: #400768)
[ Dereck Wonnacott ]
* apt-ftparchive might write corrupt Release files (LP: #46439)
* Apply --important option to apt-cache depends (LP: #16947)
-- Michael Vogt <michael.vogt@ubuntu.com> Fri, 12 Sep 2008 11:34:24 +0200
apt (0.7.17~exp2) experimental; urgency=low
[ Eugene V. Lyubimkin ]
* apt-pkg/acquire-item.cc:
- Added fallback to uncompressed 'Packages' if neither 'bz2' nor 'gz'
available. (Closes: #409284)
* apt-pkg/algorithm.cc:
- Strip username and password from source URL in error message.
(Closes: #425150)
-- Eugene V. Lyubimkin <jackyf.devel@gmail.com> Fri, 24 Oct 2008 23:45:17 +0300
apt (0.7.17~exp1) experimental; urgency=low
[ Luca Bruno ]
* Fix typos:
- apt-pkg/depcache.cc
* Fix compilation warnings:
- apt-pkg/acquire.cc
- apt-pkg/versionmatch.cc
* Compilation fixes and portability improvement for compiling APT against non-GNU libc
(thanks to Martin Koeppe, closes: #392063):
- buildlib/apti18n.h.in:
+ textdomain() and bindtextdomain() must not be visible when --disable-nls
- buildlib/inttypes.h.in: undefine standard int*_t types
- Append INTLLIBS to SLIBS:
+ cmdline/makefile
+ ftparchive/makefile
+ methods/makefile
* doc/apt.conf.5.xml:
- clarify whether configuration items of apt.conf are case-sensitive
(thanks to Vincent McIntyre, closes: #345901)
-- Luca Bruno <lethalman88@gmail.com> Sat, 11 Oct 2008 09:17:46 +0200
apt (0.7.16) unstable; urgency=low
[ Luca Bruno ]
* doc/apt-cache.8.xml:
- search command uses POSIX regex, and searches for virtual packages too
(closes: #277536)
* doc/offline.sgml: clarify remote and target hosts
(thanks to Nikolaus Schulz, closes: #175940)
* Fix several typos in docs, translations and debian/changelog
(thanks to timeless, Nicolas Bonifas and Josh Triplett,
closes: #368665, #298821, #411532, #431636, #461458)
* Document apt-key finger and adv commands
(thanks to Stefan Schmidt, closes: #350575)
* Better documentation for apt-get --option
(thanks to Tomas Pospisek, closes: #386579)
* Retitle the apt-mark.8 manpage (thanks to Justin Pryzby, closes: #471276)
* Better documentation on using both APT::Default-Release and
/etc/apt/preferences (thanks to Ingo Saitz, closes: #145575)
[ Michael Vogt ]
* doc/apt-cache.8.xml:
- add missing citerefentry
-- Michael Vogt <mvo@debian.org> Fri, 10 Oct 2008 23:44:50 +0200
apt (0.7.15) unstable; urgency=low
* Upload to unstable
-- Michael Vogt <mvo@debian.org> Sun, 05 Oct 2008 13:23:47 +0200
apt (0.7.15~exp3) experimental; urgency=low
[Daniel Burrows]
* apt-pkg/deb/dpkgpm.cc:
- Store the trigger state descriptions in a way that does not break
the ABI. The approach taken makes the search for a string O(n) rather
than O(lg(n)), but since n == 4, I do not consider this a major
concern. If it becomes a concern, we can sort the static array and
use std::equal_range(). (Closes: #499322)
[ Michael Vogt ]
* apt-pkg/packagemanager.cc, apt-pkg/deb/dpkgpm.cc:
- move the state file writting into the Go() implementation
of dpkgpm (closes: #498799)
* apt-pkg/algorithms.cc:
- fix simulation performance drop (thanks to Ferenc Wagner
for reporting the issue)
[ Dereck Wonnacott ]
* apt-ftparchive might write corrupt Release files (LP: #46439)
* Apply --important option to apt-cache depends (LP: #16947)
-- Michael Vogt <michael.vogt@ubuntu.com> Fri, 12 Sep 2008 11:34:24 +0200
-- Michael Vogt <mvo@debian.org> Wed, 01 Oct 2008 18:09:49 +0200
apt (0.7.15~exp2) experimental; urgency=low
[ Michael Vogt ]
* apt-pkg/pkgcachegen.cc:
- do not add multiple identical descriptions for the same
language (closes: #400768)
[ Program translations ]
* Catalan updated. Closes: #499462
-- Michael Vogt <mvo@debian.org> Tue, 23 Sep 2008 07:29:59 +0200
apt (0.7.15~exp1) experimental; urgency=low
[ Christian Perrier ]
* Fix typo in cron.daily script. Closes: #486179
[ Program translations ]
* Traditional Chinese updated. Closes: #488526
* German corrected and completed. Closes: #490532, #480002, #498018
* French completed
* Bulgarian updated. Closes: #492473
* Slovak updated. Closes: #492475
* Galician updated. Closes: #492794
* Japanese updated. Closes: #492975
* Fix missing space in Greek translation. Closes: #493922
* Greek updated.
* Brazilian Portuguese updated.
* Basque updated. Closes: #496754
* Romanian updated. Closes: #492773, #488361
* Portuguese updated. Closes: #491790
* Simplified Chinese updated. Closes: #489344
* Norwegian Bokmål updated. Closes: #480022
* Czech updated. Closes: #479628, #497277
* Korean updated. Closes: #464515
* Spanish updated. Closes: #457706
* Lithuanian added. Closes: #493328
* Swedish updated. Closes: #497496
* Vietnamese updated. Closes: #497893
* Portuguese updated. Closes: #498411
* Greek updated. Closes: #498687
* Polish updated.
[ Michael Vogt ]
* merge patch that enforces stricter https server certificate
checking (thanks to Arnaud Ebalard, closes: #485960)
* allow per-mirror specific https settings
(thanks to Arnaud Ebalard, closes: #485965)
* add doc/examples/apt-https-method-example.cof
(thanks to Arnaud Ebalard, closes: #485964)
* apt-pkg/depcache.cc:
- when checking for new important deps, skip critical ones
(closes: #485943)
* improve apt progress reporting, display trigger actions
* add DPkg::NoTriggers option so that applications that call
apt/aptitude (like the installer) defer trigger processing
(thanks to Joey Hess)
* doc/makefile:
- add examples/apt-https-method-example.conf
-- Michael Vogt <mvo@debian.org> Tue, 16 Sep 2008 21:27:03 +0200
apt (0.7.14) unstable; urgency=low
@ -78,7 +204,7 @@ apt (0.7.14) unstable; urgency=low
* Korean updated. Closes: #479426
* Basque updated. Closes: #479452
* Vietnamese updated. Closes: #479748
* Russian updated. Closes: #479777
* Russian updated. Closes: #479777, #499029
* Galician updated. Closes: #479792
* Portuguese updated. Closes: #479847
* Swedish updated. Closes: #479871
@ -486,7 +612,7 @@ apt (0.7.3) unstable; urgency=low
Daniel Burrows, closes: #429378)
* fixes in the auto-mark code (thanks to Daniel
Burrows)
* fix FTFBFS by changing build-depends to
* fix FTBFS by changing build-depends to
libcurl4-gnutls-dev (closes: #428363)
* cmdline/apt-get.cc:
- fix InstallTask code when a pkgRecord ends
@ -550,7 +676,7 @@ apt (0.7.2) unstable; urgency=low
apt (0.7.1) experimental; urgency=low
* ABI library name change because its build against
* ABI library name change because it's built against
new glibc
* implement SourceVer() in pkgRecords
(thanks to Daniel Burrows for the patch!)
@ -600,9 +726,9 @@ apt (0.7.1) experimental; urgency=low
apt (0.7.0) experimental; urgency=low
* Package that contains tall the new features
* Package that contains all the new features
* Removed all #pragma interface/implementation
* Branch that contains tall the new features:
* Branch that contains all the new features:
* translated package descriptions
* task install support
* automatic dependency removal (thanks to Daniel Burrows)

9
doc/apt-cache.8.xml

@ -197,9 +197,14 @@ Reverse Provides:
<varlistentry><term>search <replaceable>regex [ regex ... ]</replaceable></term>
<listitem><para><literal>search</literal> performs a full text search on all available package
lists for the regex pattern given. It searches the package names and the
lists for the POSIX regex pattern given, see
<citerefentry><refentrytitle><command>regex</command></refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
It searches the package names and the
descriptions for an occurrence of the regular expression and prints out
the package name and the short description. If <option>--full</option> is given
the package name and the short description, including virtual package
names.
If <option>--full</option> is given
then output identical to <literal>show</literal> is produced for each matched
package, and if <option>--names-only</option> is given then the long description
is not searched, only the package name is.</para>

6
doc/apt-get.8.xml

@ -379,8 +379,10 @@
<term><option>--target-release</option></term>
<term><option>--default-release</option></term>
<listitem><para>This option controls the default input to the policy engine, it creates
a default pin at priority 990 using the specified release string. The
preferences file may further override this setting. In short, this option
a default pin at priority 990 using the specified release string.
This overrides the general settings in <filename>/etc/apt/preferences</filename>.
Specifically pinned packages are not affected by the value
of this option. In short, this option
lets you have simple control over which distribution packages will be
retrieved from. Some common examples might be
<option>-t '2.1*'</option> or <option>-t unstable</option>.

23
doc/apt-key.8.xml

@ -93,6 +93,29 @@
</para>
</listitem>
</varlistentry>
<varlistentry><term>finger</term>
<listitem>
<para>
List fingerprints of trusted keys.
</para>
</listitem>
</varlistentry>
<varlistentry><term>adv</term>
<listitem>
<para>
Pass advanced options to gpg. With adv --recv-key you can download the
public key.
</para>
</listitem>
</varlistentry>

2
doc/apt-mark.8.xml

@ -26,7 +26,7 @@
<!-- Man page title -->
<refnamediv>
<refname>apt-mark</refname>
<refpurpose>Utility to sort package index files</refpurpose>
<refpurpose>mark/unmark a package as being automatically-installed</refpurpose>
</refnamediv>
<!-- Arguments -->

8
doc/apt.8

@ -21,11 +21,13 @@ apt \- Advanced Package Tool
.B apt
.SH DESCRIPTION
APT is a management system for software packages. For normal day to day
package management there are several frontends available, like
package management there are several frontends available, such as
.BR aptitude (8)
for the command line or
.BR synaptic (8)for X-Windows. Some options are only implemented in
.BR apt-get (8) though.
.BR synaptic (8)
for the X Window System. Some options are only implemented in
.BR apt-get (8)
though.
.SH OPTIONS
None.
.SH FILES

3
doc/apt.conf.5.xml

@ -75,6 +75,9 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
<filename>&docdir;examples/apt.conf</filename> &configureindex;
is a good guide for how it should look.</para>
<para>The names of the configuration items are not case-sensitive. So in the previous example
you could use <literal>dpkg::pre-install-pkgs</literal>.</para>
<para>Two specials are allowed, <literal>#include</literal> and <literal>#clear</literal>
<literal>#include</literal> will include the given file, unless the filename
ends in a slash, then the whole directory is included.

2
doc/apt.ent

@ -259,6 +259,8 @@
<term><option>--option</option></term>
<listitem><para>Set a Configuration Option; This will set an arbitrary
configuration option. The syntax is <option>-o Foo::Bar=bar</option>.
<option>-o</option> and <option>--option</option> can be used multiple
times to set different options.
</para>
</listitem>
</varlistentry>

3
doc/apt_preferences.5.xml

@ -60,6 +60,9 @@ belongs. It is possible to single out a distribution, "the target release",
which receives a higher priority than other distributions do by default.
The target release can be set on the <command>apt-get</command> command
line or in the APT configuration file <filename>/etc/apt/apt.conf</filename>.
Note that this has precedence over any general priority you set in the
<filename>/etc/apt/preferences</filename> file described later, but not
over specifically pinned packages.
For example,
<programlisting>

2
doc/ja/apt-secure.ja.8.xml

@ -282,7 +282,7 @@
<listitem><para><literal>Create a toplevel Release
file</literal>. if it does not exist already. You can do this
by running <command>apt-ftparchive release</command>
(provided inftp apt-utils).</para></listitem>
(provided in package apt-utils).</para></listitem>
-->
<listitem><para><literal>上位 Release ファイルの作成</literal>
既にこれが存在しているのでなければ、

2
doc/ja/apt.ent.ja

@ -296,7 +296,7 @@
<term><option>-o</option></term>
<term><option>--option</option></term>
<!--
<listitem><para>Set a Configuration Option; This will set an arbitary
<listitem><para>Set a Configuration Option; This will set an arbitrary
configuration option. The syntax is <option>-o Foo::Bar=bar</option>.
</para>
-->

18
doc/offline.sgml

@ -44,7 +44,9 @@ archive but can easily fit a subset large enough for most users. The idea
is to use APT to generate a list of packages that are required and then fetch
them onto the disc using another machine with good connectivity. It is
even possible to use another Debian machine with APT or to use a completely
different OS and a download tool like wget.
different OS and a download tool like wget. Let <em>remote host</em> mean the
machine downloading the packages, and <em>target host</em> the one with bad or
no connection.
<p>
This is achieved by creatively manipulating the APT configuration file. The
@ -87,9 +89,9 @@ download. The disk directory structure should look like:
The configuration file should tell APT to store its files on the disc and
to use the configuration files on the disc as well. The sources.list should
contain the proper sites that you wish to use from the remote machine, and
the status file should be a copy of <em>/var/lib/dpkg/status</em>. Please note,
if you are using a local archive you must use copy URIs, the syntax is identical
to file URIs.
the status file should be a copy of <em>/var/lib/dpkg/status</em> from the
<em>target host</em>. Please note, if you are using a local archive you must use
copy URIs, the syntax is identical to file URIs.
<p>
<em>apt.conf</em> must contain the necessary information to make APT use the
@ -99,7 +101,7 @@ disc:
APT
{
/* This is not necessary if the two machines are the same arch, it tells
the remote APT what architecture the Debian machine is */
the remote APT what architecture the target machine is */
Architecture "i386";
Get::Download-Only "true";
@ -125,7 +127,7 @@ More details can be seen by examining the apt.conf man page and the sample
configuration file in <em>/usr/share/doc/apt/examples/apt.conf</em>.
<p>
On the remote Debian machine the first thing to do is mount the disc and copy
On the target machine the first thing to do is mount the disc and copy
<em>/var/lib/dpkg/status</em> to it. You will also need to create the directories
outlined in the Overview, <em>archives/partial/</em> and <em>lists/partial/</em>
Then take the disc to the remote machine and configure the sources.list.
@ -136,7 +138,7 @@ On the remote machine execute the following:
# apt-get update
[ APT fetches the package files ]
# apt-get dist-upgrade
[ APT fetches all the packages needed to upgrade your machine ]
[ APT fetches all the packages needed to upgrade the target machine ]
</example>
The dist-upgrade command can be replaced with any-other standard APT commands,
@ -146,7 +148,7 @@ selections back to the local computer.
<p>
Now the disc contains all of the index files and archives needed to upgrade
the Debian machine. Take the disc back and run:
the target machine. Take the disc back and run:
<example>
# export APT_CONFIG="/disc/apt.conf"

2
ftparchive/makefile

@ -8,7 +8,7 @@ include ../buildlib/defaults.mak
# The apt-ftparchive program
ifdef BDBLIB
PROGRAM=apt-ftparchive
SLIBS = -lapt-pkg -lapt-inst $(BDBLIB)
SLIBS = -lapt-pkg -lapt-inst $(BDBLIB) $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile apt-inst/makefile
SOURCE = apt-ftparchive.cc cachedb.cc writer.cc contents.cc override.cc \
multicompress.cc

20
methods/makefile

@ -12,70 +12,70 @@ APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR)
# The file method
PROGRAM=file
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = file.cc
include $(PROGRAM_H)
# The copy method
PROGRAM=copy
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = copy.cc
include $(PROGRAM_H)
# The gzip method
PROGRAM=gzip
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = gzip.cc
include $(PROGRAM_H)
# The gpgv method
PROGRAM=gpgv
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = gpgv.cc
include $(PROGRAM_H)
# The cdrom method
PROGRAM=cdrom
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = cdrom.cc
include $(PROGRAM_H)
# The http method
PROGRAM=http
SLIBS = -lapt-pkg $(SOCKETLIBS)
SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = http.cc rfc2553emu.cc connect.cc
include $(PROGRAM_H)
# The https method
PROGRAM=https
SLIBS = -lapt-pkg -lcurl
SLIBS = -lapt-pkg -lcurl $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = https.cc
include $(PROGRAM_H)
# The ftp method
PROGRAM=ftp
SLIBS = -lapt-pkg $(SOCKETLIBS)
SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = ftp.cc rfc2553emu.cc connect.cc
include $(PROGRAM_H)
# The rred method
PROGRAM=rred
SLIBS = -lapt-pkg $(SOCKETLIBS)
SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = rred.cc
include $(PROGRAM_H)
# The rsh method
PROGRAM=rsh
SLIBS = -lapt-pkg
SLIBS = -lapt-pkg $(INTLLIBS)
LIB_MAKES = apt-pkg/makefile
SOURCE = rsh.cc
include $(PROGRAM_H)

105
po/ChangeLog

@ -1,3 +1,108 @@
2008-09-19 Jordi Mallach <jordi@debian.org>
* ca.po: Update to 538t
2008-09-16 Wiktor Wandachowicz <siryes@gmail.com>
* pl.po: Update to 538t
2008-09-16 Yuri Kozlov <kozlov.y@gmail.com>
* ru.po: Update to 538t
2008-09-12 Emmanuel Galatoulas <galaxico@quad-nrg.net>
* el.po: Update to 538t
2008-09-10 Miguel Figueiredo <elmig@debianpt.org>
* pt.po: Updated to 538t
2008-09-05 Clytie Siddall <clytie@riverland.net.au>
* vi.po: updated to 538t.
2008-09-01 Hans Fredrik Nordhaug <hans@nordhaug.priv.no>
* nb.po: updated to 538t.
2008-08-31 Miroslav Kure <kurem@upcase.inf.upol.cz>
* cs.po: updated to 538t.
2008-08-28 Piarres Beobide <pi@beobide.net>
* eu.po: updated to 538t.
2008-08-26 Felipe Augusto van de Wiel (faw) <faw@debian.org>
* pt_BR.po: updated to 538t.
2008-08-18 Deng Xiyue <manphiz-guest@users.alioth.debian.org>
* zh_CN.po: updated to 538t.
2008-08-07 Serafeim Zanikolas <serzan@hellug.gr>
* el.po: updated to 534t3f1u.
2008-08-02 Gintautas Miliauskas <gintas@akl.lt>
* lt.po: updated to 300t4f234u.
2008-08-01 Kenshi Muto <kmuto@debian.org>
* ja.po: updated to 538t.
2008-07-28 Eddy Petrisor <eddy.petrisor@gmail.com>
* ro.po: updated to 538t.
2008-07-28 Jacobo Tarrio <jtarrio@trasno.net>
* gl.po: updated to 538t.
2008-07-27 Ivan Masár <helix84@centrum.sk>
* sk.po: Updated to 538t
2008-07-26 Damyan Ivanov <dmn@debian.org>
* bg.po: Updated to 538t
2008-07-26 Christian Perrier <bubulle@debian.org>
* fr.po: Updated to 538t
2008-07-25 Michael Vogt <mvo@debian.org>
* Update all PO files and apt-all.pot. 538 strings.
Formerly complete PO files are now 536t1f1u
2008-07-21 Miguel Figueiredo <elmig@debianpt.org>
* pt.po: Updated to 536t
2008-07-19 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated to 536t
2008-07-12 Holger Wansing <linux@wansing-online.de>
* de.po: corrected.
2008-06-29 Asho Yeh <asho@debian.org.tw>
* zh_TW.po: Updated to 536t
2008-06-27 Eddy Petrisor <eddy.petrisor@gmail.com>
* ro.po: updated to 536t.
2008-05-14 Hans Fr. Nordhaug <hans@nordhaug.priv.no>
* nb.po: updated to 536t.
2008-05-11 SZERVÁC Attila <sas@321.hu>
* hu.po: updated to 536t.

41
po/ar.po

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: apt_po\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-05-04 09:18+0200\n"
"POT-Creation-Date: 2008-05-22 16:56+0200\n"
"PO-Revision-Date: 2006-10-20 21:28+0300\n"
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n"
@ -2601,68 +2601,79 @@ msgstr ""
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr ""
#: apt-pkg/deb/dpkgpm.cc:452
#: apt-pkg/deb/dpkgpm.cc:486
#, c-format
msgid "Directory '%s' missing"
msgstr ""
#: apt-pkg/deb/dpkgpm.cc:535
#: apt-pkg/deb/dpkgpm.cc:569
#, c-format
msgid "Preparing %s"
msgstr "تحضير %s"
#: apt-pkg/deb/dpkgpm.cc:536
#: apt-pkg/deb/dpkgpm.cc:570
#, c-format
msgid "Unpacking %s"
msgstr "فتح %s"
#: apt-pkg/deb/dpkgpm.cc:541
#: apt-pkg/deb/dpkgpm.cc:575
#, c-format
msgid "Preparing to configure %s"
msgstr "التحضير لتهيئة %s"
#: apt-pkg/deb/dpkgpm.cc:542
#: apt-pkg/deb/dpkgpm.cc:576 apt-pkg/deb/dpkgpm.cc:605
#, c-format
msgid "Configuring %s"
msgstr "تهيئة %s"
#: apt-pkg/deb/dpkgpm.cc:544 apt-pkg/deb/dpkgpm.cc:545
#: apt-pkg/deb/dpkgpm.cc:578 apt-pkg/deb/dpkgpm.cc:579
#, fuzzy, c-format
msgid "Processing triggers for %s"
msgstr "خطأ في معالجة الدليل %s"
#: apt-pkg/deb/dpkgpm.cc:547
#: apt-pkg/deb/dpkgpm.cc:581
#, c-format
msgid "Installed %s"
msgstr "تم تثبيت %s"
#: apt-pkg/deb/dpkgpm.cc:552 apt-pkg/deb/dpkgpm.cc:554
#: apt-pkg/deb/dpkgpm.cc:555
#: apt-pkg/deb/dpkgpm.cc:586 apt-pkg/deb/dpkgpm.cc:588
#: apt-pkg/deb/dpkgpm.cc:589
#, c-format
msgid "Preparing for removal of %s"
msgstr "التحضير لإزالة %s"
#: apt-pkg/deb/dpkgpm.cc:557
#: apt-pkg/deb/dpkgpm.cc:591 apt-pkg/deb/dpkgpm.cc:606
#, c-format
msgid "Removing %s"
msgstr "إزالة %s"
#: apt-pkg/deb/dpkgpm.cc:558
#: apt-pkg/deb/dpkgpm.cc:592
#, c-format
msgid "Removed %s"
msgstr "تم إزالة %s"
#: apt-pkg/deb/dpkgpm.cc:563
#: apt-pkg/deb/dpkgpm.cc:597
#, c-format
msgid "Preparing to completely remove %s"
msgstr "التحضير لإزالة %s بالكامل"
#: apt-pkg/deb/dpkgpm.cc:564
#: apt-pkg/deb/dpkgpm.cc:598
#, c-format
msgid "Completely removed %s"
msgstr "تمت إزالة %s بالكامل"
#: apt-pkg/deb/dpkgpm.cc:716
#. populate the "processing" map
#: apt-pkg/deb/dpkgpm.cc:604
#, fuzzy, c-format
msgid "Installing %s"
msgstr "تم تثبيت %s"
#: apt-pkg/deb/dpkgpm.cc:607
#, fuzzy, c-format
msgid "Triggering %s"
msgstr "تحضير %s"
#: apt-pkg/deb/dpkgpm.cc:756
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""

50
po/bg.po

@ -1,4 +1,4 @@
# translation of bg.po to Bulgarian
# translation of apt_po_bg.po to Bulgarian
# Bulgarian translation of apt.
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the apt package.
@ -9,10 +9,10 @@
# Damyan Ivanov <dmn@debiian.org>, 2008.
msgid ""
msgstr ""
"Project-Id-Version: bg\n"
"Project-Id-Version: apt_po_bg\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-05-04 09:18+0200\n"
"PO-Revision-Date: 2008-05-04 17:19+0300\n"
"POT-Creation-Date: 2008-05-22 16:56+0200\n"
"PO-Revision-Date: 2008-07-26 14:55+0300\n"
"Last-Translator: Damyan Ivanov <dmn@debian.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"MIME-Version: 1.0\n"
@ -2839,68 +2839,79 @@ msgstr "Записани са %i записа с %i несъответстващ
msgid "Wrote %i records with %i missing files and %i mismatched files\n"
msgstr "Записани са %i записа с %i липсващи и %i несъответстващи файла\n"
#: apt-pkg/deb/dpkgpm.cc:452
#: apt-pkg/deb/dpkgpm.cc:486
#, c-format
msgid "Directory '%s' missing"
msgstr "Директорията „%s“ липсва"
#: apt-pkg/deb/dpkgpm.cc:535
#: apt-pkg/deb/dpkgpm.cc:569
#, c-format
msgid "Preparing %s"
msgstr "Подготвяне на %s"
#: apt-pkg/deb/dpkgpm.cc:536
#: apt-pkg/deb/dpkgpm.cc:570
#, c-format
msgid "Unpacking %s"
msgstr "Разпакетиране на %s"
#: apt-pkg/deb/dpkgpm.cc:541
#: apt-pkg/deb/dpkgpm.cc:575
#, c-format
msgid "Preparing to configure %s"
msgstr "Подготвяне на %s за конфигуриране"
#: apt-pkg/deb/dpkgpm.cc:542
#: apt-pkg/deb/dpkgpm.cc:576 apt-pkg/deb/dpkgpm.cc:605
#, c-format
msgid "Configuring %s"
msgstr "Конфигуриране на %s"
#: apt-pkg/deb/dpkgpm.cc:544 apt-pkg/deb/dpkgpm.cc:545
#: apt-pkg/deb/dpkgpm.cc:578 apt-pkg/deb/dpkgpm.cc:579
#, c-format
msgid "Processing triggers for %s"
msgstr "Обработка на тригерите на %s"
#: apt-pkg/deb/dpkgpm.cc:547
#: apt-pkg/deb/dpkgpm.cc:581
#, c-format
msgid "Installed %s"
msgstr "%s е инсталиран"
#: apt-pkg/deb/dpkgpm.cc:552 apt-pkg/deb/dpkgpm.cc:554
#: apt-pkg/deb/dpkgpm.cc:555
#: apt-pkg/deb/dpkgpm.cc:586 apt-pkg/deb/dpkgpm.cc:588
#: apt-pkg/deb/dpkgpm.cc:589
#, c-format
msgid "Preparing for removal of %s"
msgstr "Подготвяне за премахване на %s"
#: apt-pkg/deb/dpkgpm.cc:557
#: apt-pkg/deb/dpkgpm.cc:591 apt-pkg/deb/dpkgpm.cc:606
#, c-format
msgid "Removing %s"
msgstr "Премахване на %s"
#: apt-pkg/deb/dpkgpm.cc:558
#: apt-pkg/deb/dpkgpm.cc:592
#, c-format
msgid "Removed %s"
msgstr "%s е премахнат"
#: apt-pkg/deb/dpkgpm.cc:563
#: apt-pkg/deb/dpkgpm.cc:597
#, c-format
msgid "Preparing to completely remove %s"
msgstr "Подготовка за пълно премахване на %s"
#: apt-pkg/deb/dpkgpm.cc:564
#: apt-pkg/deb/dpkgpm.cc:598
#, c-format
msgid "Completely removed %s"
msgstr "%s е напълно премахнат"
#: apt-pkg/deb/dpkgpm.cc:716
#. populate the "processing" map
#: apt-pkg/deb/dpkgpm.cc:604
#, c-format
msgid "Installing %s"
msgstr "Инсталиране на %s"
#: apt-pkg/deb/dpkgpm.cc:607
#, fuzzy, c-format
msgid "Triggering %s"
msgstr "Подготвяне на %s"
#: apt-pkg/deb/dpkgpm.cc:756
msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
msgstr ""
"Неуспех при запис в журнала, openpty() се провали (дали /dev/pts е "
@ -2913,3 +2924,6 @@ msgstr "Неуспех при закърпване на файла"
#: methods/rsh.cc:330
msgid "Connection closed prematurely"
msgstr "Връзката прекъсна преждевременно"
#~ msgid "Running post-installation trigger %s"
#~ msgstr "Изпълнение на тригер след инсталиране %s"

41