Progress on versioning support for dependencies

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.


Posted on 23 Jul 2011, 20:44


Comments:

Posted on 23 Jul 2011, 21:03 by GCMartin
Versioning
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.


Posted on 23 Jul 2011, 21:33 by GCMartin
Woof
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]Question:
Is this an issue for resolution in Woof for all distros?

Hope this helps


Posted on 24 Jul 2011, 7:29 by wombat01
Versioning
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.


Posted on 24 Jul 2011, 8:23 by BarryK
re download deps
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.



Posted on 24 Jul 2011, 8:42 by BarryK
Test post
test post


Posted on 24 Jul 2011, 8:46 by BarryK
All passwords reset
wombat01,
I cleared the blog password file, a clean slate. All commenters can now enter a username and password of their preference.



Posted on 24 Jul 2011, 8:47 by bkauler
Test post
test post


Posted on 24 Jul 2011, 9:14 by smokey01
Passwords
Thanks


Posted on 24 Jul 2011, 12:21 by disciple
or instead of reinventing the wheel again
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


Posted on 28 Jul 2011, 15:43 by SouthPaws
Test Post
test