PPM: dependency search deeper, faster

I have been puzzling over this for the last three days, finally nailed it.

When you click on a package in the PPM, then on "Examine dependencies" button, the script 'dependencies.sh' searches for all missing dependent packages. I have been using 'vlc' (audio/video player) for most of my testing, as that has a lot of missing deps -- 72 in fact.

Previously, not all missing deps were being found, also the search was slow. Also, the "hierarchy view" was not what I intended it should be.

I have fixed all three of those. Now, dependencies.sh goes down up to 11 levels searching for missing deps, and does it fast. The "hierarchy view" now looks like what it should be.

There are two scripts that I have modified, dependencies.sh and installpreview.sh. Woof commit:

Posted on 7 Sep 2012, 9:42


Posted on 7 Sep 2012, 14:58 by BarryK
VLC root
Yeah, so what happens after I have installed VLC and its 72 deps? This:

VLC is not supposed to be run as root. Sorry.

I hate it when a developer takes it upon themselves to act as policman.

If this is the case with recent VLC's, or is it a pre-compile configure option. If the former, I think that I will filter VLC out of the display-list in PPM. If the latter, I will only filter out for Debian/Ubuntu.

Posted on 7 Sep 2012, 15:42 by BarryK
Precise: missing libs
There were a few missing libs that should really be in the base Precise Puppy build.

I have also gone back to the Ubuntu 'libcddb' DEB instead of a PET (that I got from Wary). The DEB does not have the 'cddb_query' utility, which was the original reason that I changed to a PET.

I don't recall what application uses 'cddb_query'. I think that it might have been one of zigbert's apps. I would like to know if that app can be designed to not need cddb_query.

If necessary, I can compile a PET with that utility. The PET from Wary is not quite compatible with Precise Puppy.

Posted on 7 Sep 2012, 15:50 by BarryK
VLC deps
If anyone would like to compile VLC for Precise Puppy, could you please do it in the next release (beta6/RC), as that will have some extra libs built-in.

Posted on 7 Sep 2012, 16:15 by BarryK
bbe: sed for binary files
This will be in the next release of Precise Puppy.


Ubuntu package:

It is very small, so an excellent utility to have in all pups.

Apparently VLC can be fixed to run as root:

This is good. With bbe I should be able to automate a fix. Haven't tried it yet.

Posted on 7 Sep 2012, 16:23 by BarryK
bbe: debian, raspbian
I have also added 'bbe' to the package lists for Debian and Raspbian, arm and x86.

Posted on 7 Sep 2012, 16:42 by BarryK
VLC: runs as root
Yes! This does it:

# bbe -e 's/geteuid/getppid/' /usr/bin/vlc > /usr/bin/vlc1
# chmod 777 /usr/bin/vlc1
# vlc1

Ok, I am going to see about automating this, for whenever someone installs VLC.

Posted on 8 Sep 2012, 5:14 by Peter Nehem
PPM Changes
I was wondering if I could add these changes to my version of Slacko Actually I saved the original files and added these changes, will this work for Slacko Puppy?
The changes to DISTRO_PKGS_SPECS would they be ok for Beta Slacko as well? Thanks for the info.

Posted on 8 Sep 2012, 7:15 by Peter Nehem
Works Great!
I tried it out and it works great! Love the new looks, I love Puppy. I spend all day messing with it and trying different things.

Posted on 8 Sep 2012, 9:38 by technosaurus
vlc fix - sed?
I don't know what bbe is (typo?), but I use sed to do this in libflashplayer to change the version string. The equivalent would be:
sed -i 's/geteuid._libc_start_main/geteuid._libc_start_main/g' `which vlc`

Posted on 8 Sep 2012, 9:41 by technosaurus
typo in previous comment
If only we had an edit function in pplog... I always see my typo 1 second after hitting submit
sed -i 's/geteuid._libc_start_main/getppid._libc_start_main/g' `which vlc`

Posted on 9 Sep 2012, 8:00 by BarryK
sed vs bbe
Apparently sed does not work reliably with binary files. That was the very reason for which bbe was created.

Posted on 9 Sep 2012, 12:17 by broomdodger
man bbe
man bbe


bbe - binary block editor

bbe [options]...

bbe is a sed-like editor for binary files.
It performs binary transformations on the blocks of input stream.

from Wikipedia

sed (stream editor) is a Unix utility that parses text and implements a programming language which can apply transformations to such text. It reads input line by line (sequentially).

Posted on 9 Sep 2012, 23:45 by rodin.s
long search for dependencies
I'm trying to install one small game and it takes so long to find all of the dependencies. Now i So I guess that 'Cancel' button would be a good thing if I change my mind while searching for dependencies.
I wanted to install kajongg_4.8.4 in Precise. It says that I need to download 562Mb of dependencies.

Posted on 9 Sep 2012, 23:55 by K Godt
Rodin, everything starting with ' x ' is 90% Xorg related and with ' g ' may many times relate to gnome or gimp (Gtk-GimpToolKit) so ' k ' should many times relate to KDE desktop environment .

KDE only 500-600 MB ?

I have actually made a script to head/tail/grep/sed/echo Macros into sh-scripts and one of the Macro is


Posted on 10 Sep 2012, 3:29 by BarryK
PPM: fast search
A cancel button is not needed. My first post above reports that searching is now fast.

Posted on 10 Sep 2012, 5:56 by rodin.s
re PPM: fast search
But I used new scripts and it took few minutes to find 165 dependencies. Maybe my PC or network are slow, or maybe it's faster in English locale.

Posted on 10 Sep 2012, 8:06 by BarryK
Re 165 deps
165 deps, wow! What app is that?

If the search got slower, the deeper the search level, then you haven't got the latest code.

I don't recall if the above commit has the fix that makes it faster at deeper levels (time proportional to how many deps it finds on a level).

Posted on 10 Sep 2012, 14:51 by rodin.s
165 deps
The app was kajongg_4.8.4 in latest Precise. But I downloaded petget scripts from woof and copied them to /usr/local/petget