[arch-general] Something really wrong with yum-createrepo from AUR - doesn't work. [Solved - sort of]
David C. Rankin
drankinatty at suddenlinkmail.com
Sat Mar 13 21:52:44 CET 2010
On 03/13/2010 01:57 PM, David C. Rankin wrote:
> Guys,
>
> The yum-createrepo package seems not to be the same as the createrepo package
> that you normally see. Specifically executing the yum-createrepo script with the
> help option discloses:
>
> [13:35 nirvana:/home/backup/rpms] # createrepo --help
> Usage: genpkgmetadata.py [options]
>
> Options:
> --version show program's version number and exit
> -h, --help show this help message and exit
> -q, --quiet output nothing except for serious errors
> -v, --verbose output more debugging info.
> <snip>
>
> Huh?? Usage: genpkgmetadata.py [options]
>
> genpkgmetadata.py is part of createrepo, but the expected output is:
>
> 13:38 nemesis:~> createrepo --help
>
> createrepo [options] directory-of-packages
>
> Options:
> -u, --baseurl <url> = optional base url location for all files
> -o, --outputdir <dir> = optional directory to output to
> -x, --exclude = files globs to exclude, can be specified multiple times
> -q, --quiet = run quietly
>
> The AUR package doesn't seem to be looking for the correct input. You can't
> create or update a repository without specifying where the repository is??
> However, the packages do share many of the same options "-p pretty, -d create
> sqlite dbs, etc..", but regardless, running the yum-createrepo from AUR fails:
>
> [13:41 nirvana:/home/backup/rpms] # createrepo --update -d factory_11.0/
> Traceback (most recent call last):
> File "/usr/share/createrepo/genpkgmetadata.py", line 249, in <module>
> main(sys.argv[1:])
> File "/usr/share/createrepo/genpkgmetadata.py", line 223, in main
> mdgen.doPkgMetadata()
> File "/usr/lib/python2.6/site-packages/createrepo/__init__.py", line 367, in
> doPkgMetadata
> self.writeMetadataDocs(packages)
> File "/usr/lib/python2.6/site-packages/createrepo/__init__.py", line 531, in
> writeMetadataDocs
> self.primaryfile.write(po.xml_dump_primary_metadata())
> File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1082, in
> xml_dump_primary_metadata
> msg += misc.to_unicode(self._dump_format_items())
> File "/usr/lib/python2.6/site-packages/yum/packages.py", line 967, in
> _dump_format_items
> msg += self._dump_requires()
> File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1022, in
> _dump_requires
> mylist = self._requires_with_pre()
> File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1278, in
> _requires_with_pre
> pre = map(self._is_pre_req, lst)
> File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1268, in _is_pre_req
> rpm.RPMSENSE_SCRIPT_PRE |
> AttributeError: 'module' object has no attribute 'RPMSENSE_PREREQ'
>
> Anybody have an idea what is going on? I think if the errors are corrected it
> will work, but I'm nut sure the PKGCONFIG is putting all the pieces together
> correctly. I guess I'll try just putting the package together from source and
> compare what is going on, but if anybody has any ideas, I would welcome the
> input and help.
>
>
Alright,
The answer to the first question is AUR is pulling in the development version
of 'yum-createrepo' which is much different from the stable release of
createrepo. They are the same package, but miles apart.
The stable release is:
http://createrepo.baseurl.org/download/createrepo-0.4.11.tar.gz
The development release used by AUR is:
http://createrepo.baseurl.org/download/createrepo-0.9.8.tar.gz
Using the stable release, installed from source works, but gives deprecation
warnings. The following just calls "createrepo -d --update opensuse_11.0/" and
then call gpg to sign the repo. The warnings from create repo are the first 3
below. Yes, I know libgladeui is a corrupt package. How do I work around the
deprecations:
[14:12 nirvana:/home/backup/rpms] # ./data/updt-sign-repo.sh
sqlite metadata tables found --> updating
/usr/share/createrepo/dumpMetadata.py:24: DeprecationWarning: the md5 module is
deprecated; use hashlib instead
import md5
/usr/share/createrepo/dumpMetadata.py:25: DeprecationWarning: the sha module is
deprecated; use the hashlib module instead
import sha
/usr/share/createrepo/dumpMetadata.py:47: DeprecationWarning: use the name attribute
fname = self.filename[:-3]
980/5301 * i586/libopencore-amrwb0-0.1.2-0.pm.1.1.i586.rpm mm
Error opening package - i586/libgladeui-1-7-3.4.3-24.1.i586.rpm
5301/5301 * src/cairomm-1.4.8-16.1.src.rpm
rpmpmmpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Update of metadata (sqlite) --> OK
Signing the repository after update...
Other than the deprecation warnings, with the stable version of createrepo,
repoview and gpg, I can completely manage the 3 rpm repositories I maintain on
my Arch box -- that's cool...
--
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