Package: apt-cacher-ng Version: 0.1.13-1 Severity: normal Tags: patch
If there are symlinks in the /var/cache/apt-cacher-ng/_import directory, they are not imported, failing with a messages stating they could not be copied or linked. The following trivial patch fixes that. -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (500, 'testing'), (500, 'stable'), (1, 'experimental'), (1, 'unstable'), (1, 'testing'), (1, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core) Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
diff -Naur apt-cacher-ng_0.1.13-1/debian/changelog apt-cacher-ng-0.1.13/debian/changelog --- apt-cacher-ng_0.1.13-1/debian/changelog 2008-06-06 04:00:26.000000000 -0400 +++ apt-cacher-ng-0.1.13/debian/changelog 2008-06-06 05:05:56.000000000 -0400 @@ -1,3 +1,9 @@ +apt-cacher-ng (0.1.13-2dfd1) unstabled; urgency=low + + * Fixed failure to import symlinks in _import + + -- Daniel Dickinson <[EMAIL PROTECTED]> Fri, 06 Jun 2008 06:05:55 -0500 + apt-cacher-ng (0.1.13-1) unstable; urgency=low * New upstream release diff -Naur apt-cacher-ng_0.1.13-1/source/pkgimport.cc apt-cacher-ng-0.1.13/source/pkgimport.cc --- apt-cacher-ng_0.1.13-1/source/pkgimport.cc 2008-06-06 04:00:26.000000000 -0400 +++ apt-cacher-ng-0.1.13/source/pkgimport.cc 2008-06-06 05:07:02.000000000 -0400 @@ -30,6 +30,7 @@ void pkgimport::ProcessOther(const string &sPath, const struct stat &stinfo) { // NOOP; + } void pkgimport::ProcessRegular(const string &sPath, const struct stat &stinfo) { @@ -167,17 +168,19 @@ { char buf[PATH_MAX+1]; buf[PATH_MAX]=0x0; - - readlink(from.c_str(), buf, PATH_MAX); - if (buf[0]!=*SZPATHSEP) // not absolute, crap... - { + + // readlink and check for absolute is bogus given later use + // of realpath + // readlink(from.c_str(), buf, PATH_MAX); + // if (buf[0]!=*SZPATHSEP) // not absolute, crap... + // { // stupid stuff inside, resolve it, hope that's ok - if (!realpath(from.c_str(), buf)) + if (!realpath(from.c_str(), buf)) return false; if(0==symlink(buf, to.c_str())) return true; - } + // } } else {