Precise: libicu48, Python

Getting the PPM to work flawlessly with the Ubuntu repositories is a work-in-progress.

I tested installing the 'scribus' package, and after installation ran "scribus" in a terminal window. It reported 'libicui18n.so.48' missing, and a quick check at packages.ubuntu.com showed that package 'libicu48' is required.

The problem is, the Ubuntu package database for 'scribus' does not show 'libicu48' as a needed dependency. Unfortunately, the Debian and Ubuntu package databases do not always show correct dependencies -- sometimes they show a dependency that actually does not exist, or they miss out a needed dependency.

In the case of libicu48, the scribus developers probably never realised the oversight as libicu48 is likely in all builds of Ubuntu. It is only in a cut-down distro such as Puppy that the oversight shows up.

So, I decided to add 'libicu48' inbuilt to Precise Puppy. I am grumbling about this, as the package is about 8MB. It is needed by webkit, midori, etc, so I suppose has some usefulness being pre-installed.

Then there is Python. Scribus needs Python, but we build Puppy with Python in the 'devx' SFS.
Scribus will not run unless the 'devx' is loaded.
I need an elegant solution to this, but will do that after Precise 5.4-final is released -- for now, will advise users to load the 'devx' for any apps that need Python.


Posted on 21 Oct 2012, 18:57


Comments:

Posted on 21 Oct 2012, 19:19 by BarryK
PPM: deps checking
Note, the PPM follows the dependency tree. That is, it will look at the deps of scribus, then at the deps-of-the-deps, etc., down many levels until all missing deps are found.

In the case of scribus, libicu48 was not found in any of the levels.



Posted on 21 Oct 2012, 20:17 by 666philb
python paths
speaking of python, python in lucid puppy was a bit of a nightmare. if you saw a python module in the dependencies you would avoid it as in 90% of cases it wouldn't work.

i would like things to be different in precise.

as an example: install pybik (fun:precise universe) from the ppm. one of the dependencies is 'python-opengl' which is found and installed.

however when you try to run pybik you get
'ImportError: No module named OpenGL'

is the python-opengl module being installed to a place that puppies python isn't looking? it being a path problem?

python module errors like this where numerous on lucid puppy, and it would be nice if precise could be better than lucid in this regard.


Posted on 21 Oct 2012, 20:38 by pemasu
libicu will be noticed when compiling
When you include libicu inbuild to the build...and you compile stuff which sniff libicu if installed, it will become required dependency....at least with my skills. For example Qt sniffs libicu and I couldnt find a way to disable it. Only way what to have base sfs without libicu...

I recall couple of other apps which did the same. Probably Deadbeef was one of them. Libicu sniffer I mean.

Just my humble observation. I could be wrong also...


Posted on 21 Oct 2012, 20:38 by pemasu
libicu will be noticed when compiling
When you include libicu inbuild to the build...and you compile stuff which sniff libicu if installed, it will become required dependency....at least with my skills. For example Qt sniffs libicu and I couldnt find a way to disable it. Only way what to have base sfs without libicu...

I recall couple of other apps which did the same. Probably Deadbeef was one of them. Libicu sniffer I mean.

Just my humble observation. I could be wrong also...


Posted on 21 Oct 2012, 22:33 by saif
Dependency overlay
would it be easier to have a sort of dependency overlay rather than include libraries by default, and increasing the size of puppy. Granted this overlay is additional work and maintenance...but might be a work around...


Posted on 22 Oct 2012, 5:52 by technosaurus
re: icu
I recall building icu down to ~1mb and grumbling about that. IBM's website had a tutorial for shrinking it. The easy stuff got it down to 1mb, but there were other suggestions for embedded environments that seemed like they wouldn't be worth the time. Sadly, I tossed my notes on it once webkitgtk was able to build with glib instead.


Posted on 22 Oct 2012, 6:14 by technosaurus
gtk3
another fyi, we already had to add libstdc++ to gtk because of Pango (more specifically the harfbuzz component of Pango) Now harfbuzz is adding icu as a dependency. QT is looking cuter and cuter.

Re: python
the last time I built python (2.6 series) and pygtk (with dependencies) the build was <5mb for all of them (the gtk parts were only ~1mb). Unlike ICU, at least pygtk would open up a ton of nice small programs (most of the rox apps need it which may help unify the desktop) ... about half of the nicer small apps on gtk-apps.org are pygtk as well. One thing I do recall about building python was having to sed the hell out of the build system to make it listen to my CFLAGS/LDFLAGS that cut the size nearly in half (same goes for Perl btw) The other thing I did was make a wrapper for python that ran the .py files without building the .pyc and .pyo files and filling up the save file.
The 4.5mb package is here and seems to work in wary/racy.
http://puppy-development.googlecode.com/files/Python%2B-2.6.4-i486.pet


Posted on 22 Oct 2012, 8:09 by BarryK
libicu, python fixes
For libicu48, I have manually added this dependency in the scribus db entry in file Packages-ubuntu-precise-main.

This is a one-off manual fix. Really, we should contact the Debian/Ubuntu scribus maintainers and ask them to add that dep.

For python, I have moved it from the devx to the main f.s. This will greatly improve package compatibility for any that need python, and the devx won't be needed.

This will be the first Puppy I have built with Python built-in!



Posted on 23 Oct 2012, 7:51 by GCMartin
Python
This add flexibility in what development (and some users) can do with your distros.

Good addition for the general purpose services in Puppy.

Here to help