summaryrefslogtreecommitdiff
path: root/debian/apt.cron.daily
diff options
context:
space:
mode:
authorMichael Vogt <egon@tas>2008-10-28 18:45:36 +0100
committerMichael Vogt <egon@tas>2008-10-28 18:45:36 +0100
commit742f980e2df763c76431026bd0e03f724797cc50 (patch)
tree9e8ae81c145f34e3e585de7cb5678dffbdfe1afe /debian/apt.cron.daily
parentcfb776e816dc21c27f422216a9aff8700b28f30b (diff)
parentd210bd7f6a72a2b24a1402f51b39c61438482827 (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.daily92
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