site  contact  subhomenews

Woof: multiarch directories

January 11, 2013 — BarryK
This is a post for Woof users and other system-level Puppy developers.

Some major distributions now have "multiarch" directories for libraries and some applications, for example:

/usr/lib/i386-linux-gnu

With puppies built from these distro's binary packages, Woof changes those directories into symlinks, for example:

> ln -s ./ /usr/lib/i386-linux-gnu

...in other words, /usr/lib/i386-linux-gnu is a symlink to /usr/lib.

However, I am thinking of redesigning Woof to retain the original multiarch directories structure, that is, not have the symlinks.

At this stage, I don't know what, if any, downsides there will be to doing this. As long as the libraries and applications can be "found" by the system, it should be OK.
If anyone can think of any gotchas with this, please let me know.

I might start work on it tonight.

Comments

re multiarch
Username: 01micko
I vote "yes". Probably the biggest deal is x86_64, because as far as I know all distros use /lib64 and /usr/lib64 with /lib(i386) and /usr/lib(i386) as a 32 bit compatibility layer. Will make the transition to 64 bit for woof much simpler. The only "gotchas" would be any scripts hard coded to /lib, /usr/lib, I can't think of any. Maybe less compatibility of pets between slacko and the debian based systems.. which isn't a problem in my eyes as long as pet/sfs builders are responsible.

Mageia multiarch
Username: BarryK
"I have added proper multiarch support for Mageia. At least I think so, haven't actually got Mageia installed right now. Woof commit: http://bkhome.org/fossil/woof2.cgi/info/9c33c91eac

Mageia multiarch
Username: BarryK
"Refine a bit more: http://bkhome.org/fossil/woof2.cgi/info/8fa56fa1c1

not multiarch but Python updates
Username: pemasu
"First. Python is real pain in the as*...as common viper would be. Next. This python row will be needed for Precise Puppy: yes|python|python,python2.7-minimal,python-minimal,python-support,python2.7|exe,doc,nls|.... The reason. python-minimal has the needed /usr/share/python/python_defaults file and python-support has the needed update-python-modules binary. And then the real problem. Both of those are needed for .deb control files for getting python apps really work. There are several confused posts in murga-forum, why installed python apps does not work. Like Gourmet (recipe manager), Griffith (movie manager),Nicotine (soulseek client) The reason: they need that .deb control file postinst has been executed after .deb installation. And.../usr/local/petget/installpkg.sh does not execute dpkg-deb -e command, which extracts control files and then installpkg.sh does not also execute that postinst script either...and the installed python app does not work. The modules are not updated with update-python-modules and that postinst script has not been executed (not even extracted) 666philb aka Mrfricks brought this to our attention and after that I babbled about it here: http://www.murga-linux.com/puppy/viewtopic.php?p=674204#674204 Suggestion: woof updates for including those missing python packages and consideration for extracting control files and executing postinst file like debbi-1.1.pet does Well....python-central installed python apps needs full dpkg also, because busybox dpkg does not understand the arguments python-central wants. That is another story. Cheers from wonderful world of Python

Debian folder included .deb extraction
Username: pemasu
"Here is an example of nicotine .deb package, extracted with: dpkg-deb -R which includes the DEBIAN folder which has control files inside. http://www.smokey01.com/pemasu/Misc/nicotine_1.2.16+dfsg-1_all.deb.tar.gz -R|--raw-extract Extract control info and files

Mageia and Slackware, re: multiarch
Username: 01micko
"Just for the record.. I have an i586 magaeia-2.0 install on one of my laptops and it uses /lib and /usr/lib I also have a full install of slackware-14.0 ARM on my raspberry pi and it uses /lib and /usr/lib.

Re Mageia multiarch
Username: BarryK
"01micko, Thanks for the feedback. Mageia does have /usr/bin/multiarch-i386-linux, the contents of which Woof was copying to /usr/bin. I have modified that now, for consistency with Debian/Ubuntu, multiarch-i386-linux is now a symlink to /usr/bin. The alternative, that I am still planning on implementing in Woof, will be the choice of not creating symlinks. In the Mageia case, /usr/bin/multiarch-i386-linux would have to be added to PATH. pemasu, OK, I will look into this Python stuff.

Re multiarch dirs
Username: BarryK
"Well, I was up late last night, implementing the option (default) of keeping the multiarch directories, not having symlinks. There is a lot to it. I had to modify many templates. But, I ended up feeling dissatisfied. I don't even like what Debian has done, I think that it is a messy technique. So, I might dump the night's work, rethink it. I woke up this morning with the thought of another way to solve it.

Keeping multiarch symlinks
Username: BarryK
"It's too much trouble, I am keeping the multiarch-symlinks technique.


Tags: woof