site  contact  subhomenews

Faster deb pkg db to pup pkg db

March 17, 2013 — BarryK
Those running Precise Puppy 5.5 will have noticed that if they choose to update the local package database via the Configure window of the Puppy Package Manager, that it has become rather slow.

There was a huge increase in speed when I rewrote the conversion in BaCon (see /usr/local/petget/debdb2pupdb, or support/debdb2pupdb.bac in Woof), but for Precise 5.5 I introduced some extra checking for invalid dependencies, which slowed the conversion down somewhat.

Running Precise 5.5 on my laptop, with Intel i3 CPU and 4GB RAM, the Ubuntu 'universe' package database took spot-on 2 minutes to convert to Puppy-db-format. My laptop is modest by today's standards, but many of our users have older PCs, and were reporting 4 - 7 minutes conversion time.

Too long. So, I have revisited the code that detects invalid dependencies, and have made it much faster. Now, the 'universe' database converts in 70 seconds on my laptop ('main' in 16 seconds).

The changed files are 'debdb2pupdb.bac', '0setup' and '3builddistro':
http://bkhome.org/fossil/woof2.cgi/info/3b2710862b

For anyone who wants to know, these are the invalid dependencies found:
amd-libopencl1 fglrx-driver libcuda1 mplayer-nogui upstart-job xorg-video-abi-11

Invalid means that a package has a dependency that does not actually exist in the repository. This may be an error, or in some cases the name of the dependency has changed.

This is where packages are that reference these invalid deps:
amd-libopencl1 multiverse
fglrx-driver multiverse
libcuda1 multiverse
mplayer-nogui multiverse
upstart-job main, universe, multiverse
xorg-video-abi-11 main, universe, multiverse


Note, you cannot easily upgrade your Precise 5.5 to this faster conversion. Well, you can, but it involves some work.
You need to create a file /usr/local/petget/invaliddepslist, with a single line in it of the invalid deps, as per the list in italics above.
Then copy the x86 binary 'debdb2pupdb' and the script '0setup' to /usr/local/petget.

Comments

Manual upgrade failed
Username: Terryphi
I followed instructions above but PPM manual upgrade not working for me. Deb processing produces this error for all Ubuntu repositories: /usr/local/petget/0setup : line 544: /usr/local/petget/debdb2pupdb: Permission denied

findpkgs problem
Username: pemasu
"New duplicate elimination gives headache. yes|gettext|gettext-base,gettext|exe>dev,dev,doc,nls yes|gettext|gettext-base,gettext|exe,dev>null,doc>null,nls>null Both of them are eliminated and so...they are not downloaded or processed. There are other duplicated rows in DISTRO_SPECS as you know. This is with DISTRO_PKGS_SPECS-ubuntu-precise I had to revert back to pre march findpkgs file. I hope it does not give problems with building.

Duplicate generic names
Username: BarryK
"pemasu, More than just 'gettext': [i]./x86/ubuntu/precise/DISTRO_PKGS_SPECS-ubuntu-precise gettext gettext perl-digest-sha1 perl-digest-sha1 perl-html-parser perl-html-parser rsync rsync[/i] I have changed all the package lists to avoid these duplicate names. Woof commit: http://bkhome.org/fossil/woof2.cgi/info/a925e7342a

off topic
Username: darkcity
"OpenSuse has another take on rolling release http://en.opensuse.org/Portal:Tumbleweed

re: duplicate names
Username: technosaurus
"that is why a lot of package managers have a "provides" entry. for example libreoffice-gtk provides libreoffice (and others as does libreoffice-kde{4}) ... in puppy's case this could extend to the parent distro libreoffice-gtk-debian provides libreoffice-gtk and libreoffice-gtk provides libreoffice,... this concept could be extend to things like defaultbrowser,... (provided by firefox, seamonkey, opera,...)

more findpkgs problems
Username: pemasu
"Packages-puppy-*-official duplicate generic name problems. They inhibit the package processing also: http://www.murga-linux.com/puppy/viewtopic.php?p=693043#693043

re e2fsprogs vs util-linux
Username: BarryK
"OK, I have commented out that section of code in 3builddistro: http://bkhome.org/fossil/woof2.cgi/info/5b0b23fcc0

re missing xdialog
Username: BarryK
"pemasu, I think that I see what the problem is. For now, a quick solution is to append "pet:common" to the package-list: [i]yes|xdialog||exe,dev,doc,nls|pet:common[/i]


Tags: woof