[arch-general] Howto fix yum-createrepo PKGBUILD from AUR? (rpm is replaced by rpm-org - now rpm module missing?)

David C. Rankin drankinatty at suddenlinkmail.com
Tue Sep 14 13:35:05 EDT 2010


Guys,

     How do I fix the yum-createrepo PKGBUILD so that yum-createrepo looks for 
the module 'rpm-org' instead of looking for the outdated 'rpm' module? In the 
PKGBUILD, the depends currently is:

depends=('python' 'python-lxml' 'rpm' 'yum')

     However, 'rpm-org' now provides 'rpm' so the depends line needs to be:

depends=('python' 'python-lxml' 'rpm-org' 'yum')

     The problem is that when you build yum-createrepo with 'rpm-org' it fails 
with the following error:

[12:19 archangel:/home/backup/rpms] # createrepo --update -d openSUSE_11.3/
Traceback (most recent call last):
   File "/usr/share/createrepo/genpkgmetadata.py", line 28, in <module>
     import createrepo
   File "/usr/lib/python2.6/site-packages/createrepo/__init__.py", line 22, in 
<module>
     import yumbased
   File "/usr/lib/python2.6/site-packages/createrepo/yumbased.py", line 19, in 
<module>
     import rpm
ImportError: No module named rpm

     So it looks to me like it tries to 'import rpm' and fails because 'package 
rpm' isn't installed, instead the new package 'rpm-org' is installed and 
provides rpm:

12:28 archangel:~/arch/pkg/bld/yum-createrepo> rpm --version
RPM version 4.8.0

     So what do I need to fix (by patch, symlink somewhere in python, or 
otherwise) to cure this problem?

     Currently I'm making an outline for what it takes to install createrepo and 
repoview on Arch for managing rpm repositories. There are quite a number of 
steps required to do this. For those interested, here is the sequence so far:

Install beecrypt
   http://aur.archlinux.org/packages.php?ID=16387
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   sudo pacman -U beecrypt-4.2.1-2-x86_64.pkg.tar.xz

Installl rpm-org
   http://aur.archlinux.org/packages.php?ID=30317
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   sudo pacman -U rpm-org-4.8.0-3-x86_64.pkg.tar.xz

Install yum-metadata-parser
   http://aur.archlinux.org/packages.php?ID=22978
   (OUT OF DATE -- here is the updated PKGBUILD)
   (download tarball, untar/ungzip, cd into directory)

   fix PKGBUILD as follows:

# Maintainer: Chris Tusa <linisys at gmail.com>
pkgname=yum-metadata-parser
pkgver=1.1.4
pkgrel=2
pkgdesc="C-based metadata parser to quickly parse xml metadata into sqlite 
databases."
arch=('i686' 'x86_64')
license=('GPL')
url="http://yum.baseurl.org/"
groups=('lib')
depends=('python' 'glib2')
source=(http://yum.baseurl.org/download/yum-metadata-parser/${pkgname}-${pkgver}.tar.gz)
md5sums=('05289971e5cfde532631f2a99f6c58c7')

build() {
   cd ${srcdir}/${pkgname}-${pkgver}
   python ./setup.py build || return 1
   python ./setup.py install --prefix=${pkgdir}/usr || return 1

}

   makepkg -s
   sudo pacman -U yum-metadata-parser-1.1.4-2-x86_64.pkg.tar.xz

Install python-iniparse
   http://aur.archlinux.org/packages.php?ID=22977
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   sudo pacman -U python-iniparse-0.4-1-x86_64.pkg.tar.xz

Install yum
   http://aur.archlinux.org/packages.php?ID=22976
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   Targets (2): python-pycurl-7.19.0-4  urlgrabber-3.9.1-1
   <snip>
   sudo pacman -U yum-3.2.28-1-x86_64.pkg.tar.xz

Install yum-createrepo
   http://aur.archlinux.org/packages.php?ID=22951
   (OUT OF DATE -- here is the updated PKGBUILD)
   (download tarball, untar/ungzip, cd into directory)

   fix PKGBUILD as follows (In work - not finished) :

# Maintainer: Chris Tusa <linisys at gmail.com>
pkgname=yum-createrepo
pkgver=0.9.8
pkgrel=3
pkgdesc="A tool to create yum repositories from ArchLinux systems."
arch=('i686' 'x86_64')
license=('GPL')
url="http://createrepo.baseurl.org"
groups=('system')
depends=('python' 'python-lxml' 'rpm-org' 'yum')
source=(http://createrepo.baseurl.org/download/createrepo-${pkgver}.tar.gz
         createrepo0.patch
         createrepo1.patch)

md5sums=('e37418bebb559e7420532574c1bdb18c'
          'b074d7ccf1327346570ce14592470b05'
          'b63a92689cfb7d4aea1cd0c7a0f55c56')

build() {
   cd ${srcdir}/createrepo-${pkgver}

   # Apply Makefile patches to rename files during install
   cd ${srcdir}/createrepo-${pkgver}/docs
   patch -p1 < ${srcdir}/createrepo0.patch
   cd ${srcdir}/createrepo-${pkgver}/bin
   patch -p1 < ${srcdir}/createrepo1.patch


   cd ${srcdir}/createrepo-${pkgver}

   make || return 1
   make DESTDIR=${pkgdir} install || return 1

}

   makepkg -s
   Targets (1): python-lxml-2.2.8-1
   <snip>
   sudo pacman -U yum-createrepo-0.9.8-3-x86_64.pkg.tar.xz


NOTE: yum-createrepo fails (rpm/rpm-org issue) with:

[12:19 archangel:/home/backup/rpms] # createrepo --update -d openSUSE_11.3/
Traceback (most recent call last):
   File "/usr/share/createrepo/genpkgmetadata.py", line 28, in <module>
     import createrepo
   File "/usr/lib/python2.6/site-packages/createrepo/__init__.py", line 22, in 
<module>
     import yumbased
   File "/usr/lib/python2.6/site-packages/createrepo/yumbased.py", line 19, in 
<module>
     import rpm
ImportError: No module named rpm

Install kid
   http://aur.archlinux.org/packages.php?ID=2831
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   sudo pacman -U kid-0.9.6-4-x86_64.pkg.tar.xz

Install repoview (to gen html pages for rpms)
   http://aur.archlinux.org/packages.php?ID=35377
   (download tarball, untar/ungzip, cd into directory)
   makepkg -s
   sudo pacman -U repoview-0.6.5-1-any.pkg.tar.xz


-- 
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com


More information about the arch-general mailing list