[pacman-dev] download / database problems

Dan McGee dpmcgee at gmail.com
Wed Sep 23 19:19:21 EDT 2009


On Wed, Sep 23, 2009 at 6:15 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> On Wed, Sep 23, 2009 at 6:04 PM, Aaron Griffin <aaronmgriffin at gmail.com> wrote:
>> On Wed, Sep 23, 2009 at 5:25 PM, Xavier <shiningxc at gmail.com> wrote:
>>> Today I got very strange results downloading packages with pacman.
>>> For example :
>>>  gnome-common-2.28.0...     8,9K  112,2K/s 00:00:00
>>> [#####################] 21167%
>>>
>>>> ls -lh /var/cache/pacman/pkg/gnome-common-2.28.0-1-any.pkg.tar.gz
>>> -rw-r--r-- 1 root root 8,9K sept. 24 00:17
>>> /var/cache/pacman/pkg/gnome-common-2.28.0-1-any.pkg.tar.gz
>>>
>>> /var/lib/pacman/sync/gnome-unstable/gnome-common-2.28.0-1/desc:%CSIZE%
>>> /var/lib/pacman/sync/gnome-unstable/gnome-common-2.28.0-1/desc-43
>>>
>>> 43 bytes instead of 8900 ? wtf ?
>>
>> Hmmm repo-add problem with symlinks? The any packages are symlinks...
>> maybe it needs fixing for how it determines filesize
>
> Ding! We have a winner, the symlink size itself is 43:
>
> $ ll /srv/ftp/gnome-unstable/os/i686/gnome-common-2.28.0-1-any.pkg.tar.gz
> lrwxrwxrwx 1 jgc ftp-extra 43 2009-09-21 18:35
> /srv/ftp/gnome-unstable/os/i686/gnome-common-2.28.0-1-any.pkg.tar.gz
> -> ../any/gnome-common-2.28.0-1-any.pkg.tar.gz
>
> Too bad you point this out the day after we release, hah. Looks like
> we need to add the -L option to the stat call in sizecmd, but let's
> talk about that on the pacman ML.
>
> For now I added -L to the repo-add script on gerolde; that will be
> blown away the next time we update though.
>
> -Dan
>

Whoops, we are on pacman-dev! Proposed patch, and BSD/Darwin should be
safe to add -L too according to
http://www.freebsd.org/cgi/man.cgi?query=stat&apropos=0&sektion=1&manpath=FreeBSD+7.2-RELEASE&format=html

diff --git a/configure.ac b/configure.ac
index 1e9ab35..9f3445d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -184,11 +184,11 @@ GCC_VISIBILITY_CC
 GCC_GNU89_INLINE_CC

 # Host-dependant definitions
-SIZECMD="stat -c %s"
+SIZECMD="stat -L -c %s"
 SEDINPLACE="sed -i"
 case "${host_os}" in
        *bsd*)
-               SIZECMD="stat -f %z"
+               SIZECMD="stat -L -f %z"
                SEDINPLACE="sed -i ''"
                ;;
        cygwin*)
@@ -197,7 +197,7 @@ case "${host_os}" in
                ;;
        darwin*)
                host_os_darwin=yes
-               SIZECMD="/usr/bin/stat -f %z"
+               SIZECMD="/usr/bin/stat -L -f %z"
                SEDINPLACE="/usr/bin/sed -i ''"
                ;;
 esac


More information about the pacman-dev mailing list