diff options
author | Michael Vogt <egon@tas> | 2008-10-28 18:45:36 +0100 |
---|---|---|
committer | Michael Vogt <egon@tas> | 2008-10-28 18:45:36 +0100 |
commit | 742f980e2df763c76431026bd0e03f724797cc50 (patch) | |
tree | 9e8ae81c145f34e3e585de7cb5678dffbdfe1afe /debian/apt.cron.daily | |
parent | cfb776e816dc21c27f422216a9aff8700b28f30b (diff) | |
parent | d210bd7f6a72a2b24a1402f51b39c61438482827 (diff) |
* apt-ftparchive might write corrupt Release files (LP: #46439)
* Apply --important option to apt-cache depends (LP: #16947)
* 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)
* 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)
* 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)
* doc/apt-cache.8.xml:
- add missing citerefentry
* Upload to unstable
* 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)
* apt-pkg/pkgcachegen.cc:
- do not add multiple identical descriptions for the same
language (closes: #400768)
* Catalan updated. Closes: #499462
* Fix typo in cron.daily script. Closes: #486179
* 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.
* 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
* Russian updated. Closes: #479777, #499029
* fix FTBFS by changing build-depends to
* ABI library name change because it's built against
* Package that contains all the new features
* Branch that contains all the new features:
Diffstat (limited to 'debian/apt.cron.daily')
-rw-r--r-- | debian/apt.cron.daily | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily index 472d20c6d..cdec7eea0 100644 --- a/debian/apt.cron.daily +++ b/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 |