site  contact  subhomenews

PPM: dependency search deeper, faster

September 07, 2012 — BarryK
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:
http://bkhome.org/fossil/woof2.cgi/info/3343d0f880

Comments

VLC root
Username: BarryK
Yeah, so what happens after I have installed VLC and its 72 deps? This: [i]VLC is not supposed to be run as root. Sorry.[/i] 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.

Precise: missing libs
Username: BarryK
"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.

VLC deps
Username: BarryK
"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.

bbe: sed for binary files
Username: BarryK
"This will be in the next release of Precise Puppy. Homepage: http://sourceforge.net/projects/bbe-/ Ubuntu package: http://packages.ubuntu.com/precise/bbe It is very small, so an excellent utility to have in all pups. Apparently VLC can be fixed to run as root: http://www.backtrack-linux.org/forums/showthread.php?t=40400 This is good. With bbe I should be able to automate a fix. Haven't tried it yet.

bbe: debian, raspbian
Username: BarryK
"I have also added 'bbe' to the package lists for Debian and Raspbian, arm and x86.

VLC: runs as root
Username: BarryK
"Yes! This does it: [i]# bbe -e 's/geteuid/getppid/' /usr/bin/vlc > /usr/bin/vlc1 # chmod 777 /usr/bin/vlc1 # vlc1[/i] Ok, I am going to see about automating this, for whenever someone installs VLC.

PPM Changes
Username: Peter Nehem
" I was wondering if I could add these changes to my version of Slacko 5.3.5.3? 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.

vlc fix - sed?
Username: technosaurus
"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: [code]sed -i 's/geteuid._libc_start_main/geteuid._libc_start_main/g' `which vlc`[/code]

typo in previous comment
Username: technosaurus
"If only we had an edit function in pplog... I always see my typo 1 second after hitting submit [code]sed -i 's/geteuid._libc_start_main/getppid._libc_start_main/g' `which vlc`[/code]

sed vs bbe
Username: BarryK
"Apparently sed does not work reliably with binary files. That was the very reason for which bbe was created.

man bbe
Username: broomdodger
"man bbe [code]NAME bbe - binary block editor SYNOPSIS bbe [options]... DESCRIPTION bbe is a sed-like editor for binary files. It performs binary transformations on the blocks of input stream. [/code] from Wikipedia [code]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).[/code]

long search for dependencies
Username: rodin.s
"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.

kajongg_4.8.4
Username: 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 ? :cry: :happy: I have actually made a script to head/tail/grep/sed/echo Macros into sh-scripts and one of the Macro is MACRO_TRAP=' trap "exit" HUP INT QUIT ABRT KILL TERM '

PPM: fast search
Username: BarryK
"rodin.s, A cancel button is not needed. My first post above reports that searching is now fast.

Re 165 deps
Username: BarryK
"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).


Tags: woof