[pacman-dev] repo-add sanity check

Xavier shiningxc at gmail.com
Fri Feb 27 08:58:03 EST 2009


On Fri, Feb 27, 2009 at 2:28 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> On Fri, Feb 27, 2009 at 7:03 AM, Xavier <shiningxc at gmail.com> wrote:
>> On Fri, Feb 27, 2009 at 3:31 AM, Allan McRae <allan at archlinux.org> wrote:
>>> Hi,
>>>
>>> I took repo-add from the pacman package and one built from the latest git
>>> will all Xavier's patches and made a repo db from all packages in my cache
>>> (all of testing, core and extra, some community).  There are a few
>>> differences (see http://dev.archlinux.org/~allan/repoadd-diff.txt).
>>> A summary of the differences:
>>>
>>> A bunch of packages have the ARCH field removed:
>>> -%ARCH%
>>> -i686
> Hmm, this I'm not sure about.
>

These packages don't have the arch set in their PKGINFO. So it is also
missing from the database, as expected.
It was actually a bug in repo-add 3.2.2 :
the arch variable, unlike all the other variables is not declared
anywhere and is not declared as local.
So when the old code did eval "arch=i686", it created a global arch
variable. So you just have to call db_write_entry with one arch, then
arch will be set. And you can add other packages with no arch, they
will just use the old value of $arch.
The new code does declare arch=i686, which declares the arch variable
with a local scope, so the value is not kept on further calls of
db_write_entry.

The only thing to keep from that is that maybe we should check that
all variables used are indeed explicitly declared as local in
db_write_entry. $arch could be the only one missing though.

>>>
>>> This change is not so good...  (k3b-i18n package)
>>> %DEPENDS%
>>> -k3b>=1.0.5-1
>>> +k3b>=$pkgver
> This happened in the makepkg stage, and I will bet a lot of money you
> will find the following in the PKGBUILD:
> depends=('k3b>=$pkgver')
> rather than
> depends=("k3b>=$pkgver")
>
> (single vs. double quotes) The only thing we do differently now is
> actually respect the *entire* text string, so this variable is no
> longer (incorrectly) substituted.
>

That is correct :)


More information about the pacman-dev mailing list