site  contact  subhomenews

Progress on versioning support for dependencies

July 23, 2011 — BarryK
This has been a long time coming. I had it in my to-do list back in the early days of developing Woof, but it never happened.

When someone compiles a package and creates a PET, they might want to specify that the dependencies require certain versions.

Also, there are some packages that are kernel-version-sensitive, for example 'dhcpcd' seems to be. I recall a tentative list of such packages being made up some years ago, yes, in this page (search for the word "sensitive"):
http://puppylinux.com/news/news217.1-220a.htm

There is a method of choosing a package based on kernel version implemented in Woof, but it is a kludge.

I am now implementing versioning support for dependencies in a systematic manner. In the case of the latest 'dhcpcd' package that I have compiled in Drake Puppy, running a 2.6.39-3 kernel, I have created 'pet.specs' file with this content:

dhcpcd-5.2.12-i486-m1|dhcpcd|5.2.12-i486-m1||BuildingBlock|176K||dhcpcd-5.2.12-i486-m1.pet|+linux_kernel&ge2.6.39|network connection client daemon|mageia|1||

Here is another hypothetical package:

abiword-2.8.6-w5|abiword|2.8.6-w5||Document|7012K||abiword-2.8.6-w5.pet|+cairo,+enchant,+fribidi,+geany,+goffice&eq0.8.9,+gtk+,+libgsf,+libxml,+wv|The GNOME word processor|puppy|wary5||

It is very simple. You only need to specify a version for a dependency when you know or suspect the repo may have alternate packages, for example more than one 'goffice' and you want to make sure the correct version is installed.

The allowed operators are:

&le &ge &lt &gt &eq

I did think of implementing &or and &and to make the versioning more sophisticated, but I don't think that is needed.

I have already modified /usr/local/petget/dependencies.sh and /usr/local/petget/findmissingpkgs.sh to support versioning in the PPM (Puppy Package Manager).

I am now working on this in Woof, building a distro, which is a lot more work. The pet.specs GUI builder will also be upgraded.

Comments

Versioning
Username: GCMartin
WOW! Thanks Barry, I fully recognize how very important this is in Puppy and how it supports PET/SFS/Distro development. Woof-Puppy is REALLY MATURING! This will help everyone. directly/indirectly.

Woof
Username: GCMartin
"Barry, I reported a problem which seems to be in all PUPs; namely "HOSTNAME problem and internal Puppy discrepancies". @Shinobar reports back:[quote="Shinobar"]As for the HOSTNME variable as gcmartin pointed out, the problem is the ROX-Term do not read /etc/profile... The urxvt reads /etc/profile. [/quote][b]Question:[/b] Is this an issue for resolution in Woof for all distros? Hope this helps

Versioning
Username: wombat01
"Barry it would also be very nice if it could either automatically download the dependency or provide the link for manual download. Another advantage would be to have some sort of checking of what dependencies are already installed during the PET installation process so one PET doesn't break another.

re download deps
Username: BarryK
"wombat01, The PPM does download dependencies. Yes, one thing the PPM does not yet do is check if an already-installed dependency has adequate version. That needs to go on the to-do list. Note, if you just click on a stand-alone PET that you have downloaded, no dependency checking is done. This is reasonable as such PETs may have no known "pedigree" as those in a repo. But, that could also be added to the to-do list, at least popup an info-box that such-and-such installed deps are the wrong version.

All passwords reset
Username: BarryK
"wombat01, I cleared the blog password file, a clean slate. All commenters can now enter a username and password of their preference.

or instead of reinventing the wheel again
Username: disciple
"When building a Puppy from Ubuntu or Slack packages or whatever, it could be made to use the native Ubuntu or Slackware package manager. Wouldn't that be a novel idea? ;) Like sickgut has done with "Pussy" linux: http://murga-linux.com/puppy/viewtopic.php?t=69475


Tags: woof