site  contact  subhomenews

Puppy version numbers

July 13, 2009 — BarryK
There was a comment to this blog yesterday that the releases and version numbers of Puppy have become confusing. Yes, if you are "in there" following all the development then you would likely know what is going on, but otherwise you might see it all as a bit strange -- like, why am I releasing version 416, wasn't the last official release 421 (4.21 or 4.2.1)?

This needs to be clarified on and elsewhere, that I intend to do. For now though, a brief clarification...

Version numbering
Puppy uses three digits for version numbering. Actually, the decimal points are irrelevant. So, 421, 4.21 and 4.2.1 mean the same thing. We do assign significance to the first digit: it represents a particular "series" of Puppy, that is a particular software base or core.

2.x series
This was originally compiled from source in T2, back in 2006. The last official release in this series was 2.17.1, but there were other branches by Dougal and more recently by ttuuxxx. So, this series is still alive and used by people. Why use it? -- some people with old hardware find the older Linux kernel works for them. They may also like the particular applications, features and smaller size of the 2-series.

3.x series
This series was based on Slackware 12.2 packages. It is also continuing to be used by some people who like the Slackware compatibility. MU has continued a branch of this series.

4.x series
This was compiled in T2 in November 2007. The last official release from me was 412, and WhoDo coordinated 420 and 421. So 421 is the most recent.
I have stepped back in temporarily to develop the next release in this series, mostly because it is now based on Woof (a new system for building puppies from packages from different distros, including earlier puppies) and Woof is evolving and I'm the guy who knows most about Woof.
I am releasing alphas numbered 413, 414, 415, 416 etc., simply for convenience. These are unused version numbers. For the final, it will be numbered 430.

I think that the 4.x series has a lot of life in it, and will continue for the next couple of years, in parallel with upcoming 5.x releases.

5.x series
The Woof build system can put together puppies from packages from almost any distro. Currently the plan is to base 500 on Ubuntu packages, and we are nicknaming this "Upup". I'm working on Upup, or rather I will be when I get 430 out of the way. I have again been using some unused version numbers, 471, 472, etc. -- the last Upup alpha I released was 476.

The 5.x series is wide open, and not limited to Upup. Kirk is developing "Fatdog", based on T2, using our shorthand nickname, that is a "Tpup". Ttuuxx is interested in "Dpup" (Debian). All of these can be official releases in the 5.x series.

...when this is expanded into a web page, it needs some links! Also, I haven't mentioned everybody working on some branch or puplet. The above is just intended to clarify the profusion of version numbers.

Of course, if a newcomer asks which one to download, recommend the last official one, 421. If they want to be a bit more experimental, then by all means grab my 416, etc. Even more adventurous, try 476 etc. Of course, the profusion of choice causes confusion, and it is not going to get better -- even 430 I plan to release in 3 different kernel flavours.


Username: kirk
Tpup is looking pretty good. I did another T2 build recently, but this time I used the Xorg packages from last summer (T2 revision 30200) except for Pixman. The newer Pixman is needed by Cairo. Anyway, now Tpup has all the latest packages, except for Xorg, which is at the latest version of 7.3 (xorg-server 1.4.2). I've also made a version without all the Fatdog extras, it's 90MB (using lzma). I got a 64bit motherboard and cpu the other day, so I'm trying a 64bit T2 build right now. So if all goes well I might post a 64bit version of Fatdog.

Username: linuxcbon
"Thanks, it's clearer now. But you could name it 430Alpha1, 430A2, 430A3 instead of 413, 414 ? And 500A1, 500A2 instead of 471, 472 ? Are you going to settle down for one flavor ? I like when all is done from source, but I understand that downloading from other distros is faster. cheers.

kernel version
Username: 01micko
"Hi Barry, I notice you say 3 kernel version builds for 430, would that be the current and the retro and a new one with a 2.6.3 kernel? Cheers

The shorter the better
Username: Leon
"I like the current 3 digit numbering. It's easy to remember and to distinguish one release from another and to name system files. It's like Puppy. Small, fast and efficient. I vote to keep it.

2.17 vs 4.1.2
Username: disciple
"> So, 421, 4.21 and 4.2.1 mean the same thing. Clearly they didn't in the past though - 4.21 might mean the same as 4.2.1, and is a minor minor release of 4.2, but 2.17 is not a minor release of 2.1 - in fact there was 2.17.1, which uses four digits. You might need to explain this history too.

Version Numbers
Username: WN2A
" Numbers are fine. As long as Puppy can find the correct .sfs and .2fs files (as during boot), everything should play well. As for us packagers, we need to be able to say which versions support our apps and if a version did not, the libraries,etc that would allow an application to do so. Definitely prefer nice and simple version numbers to endless wildlife species! 73's

Username: BarryK
"Puppy uses a 3 digit numbering system internally. Always has. For awhile there I was using a fourth digit, for example 2.17.1, but that was for announcement naming purposes only -- internally it was just version 217, the same as the previous 2.17. The 3 digit naming is internal, but you can of course append any clarifications when it is announced, for example I announced "416alpha". The purpose of the major version number, the first digit, is to group packages into compatible groups. You create a PET package that works in the 4.x series for example. That's pretty simple. fact the new package database system makes it crystal clear as each package entry identifies what series the package is compiled for. For example, the entry for grub: [i]grub-0.97|grub|0.97||BuildingBlock|492K|pet_packages-4||+ncurses|The GRand Unified Bootloader|puppy|4|official|[/i] "|puppy|4|" means it was compiled in Puppy, version 4, that is, for the 4.x series. Note, the new 'dir2pet' script will create this database entry for you, and store it inside the package.

Same base?
Username: Jota
" Barry, one thing is not clear to me: You say that 4.xx series is based on T2. But you also said that 4.30 is being build with Woof, right? So, what's the difference between 4.30 and a 5.xx series build with Woof from T2, like Kirk's one? [i] "Kirk is developing "Fatdog", based on T2, using our shorthand nickname, that is a "Tpup""[/i] It seems to me that the "software base or core" will be the same, no?

Re: Woof
Username: BarryK
"Woof is only a collection of scripts that put a collection of packages together to make a puppy. Woof could just as easily build 412 from the 412 pet packages. 430 will be built from 4.x pet pkgs. Kirk's 5-series Tpup is built from the latest sources compiled in T2, so it's a whole new base/core system.

Build systems
Username: Pizzasgood
"In other words, there are two things involved - the package source and the build system. T2, Slackware, and Ubuntu are sources of the packages fed into the build system. The build system is what takes the packages and combines them into a Puppy. Puppy 1.x, 2.x, 3.x, and 4.0-4.2.1 all used Unleashed as the build system. In 4.3 Woof will replace Unleashed. Note: I don't believe "build system" is any kind of official term or anything. It's just what I call it.

Username: Pizzasgood
"But I don't think that what I just wrote had much to do with the question. I read it too fast I guess. T2 lets you compile a bunch of stuff together at once. So like Barry said, 5.x is a completely new recompile of everything using newer/different sources. With the 4.x series, even though things were occasionally upgraded to newer versions, all the really low-level stuff stayed pretty much the same. 5.x will be a more jarring change, with nearly everything changing. Even if a program stayed at the same version, it would be compiled against other libraries that were different versions or had different configuration options set, which in turn were compiled against different versions of other libraries, all the way down to the compiler itself.

Woof vx Unleashed
Username: BarryK
"Pizzasgood, Yes, Woof is really "Unleashed on steroids". Instead of being limited to building from PET packages, Woof can handle packages from just about anywhere, even takes care of downloading them from the "compatible-distro's" repositories. With T2, compiling from source is a separate thing. Woof can read the binary packages that T2 creates, then build a puppy from that. As kirk has found, that works pretty well.

5 series
Username: BarryK
"Just a little extra note. This discussion about the 2-, 3- ,4- and 5- series as having a compatible core or base of packages, is going to break down when we read 5.x, as there is going to be great divergence. It looks like Upup (built from Jaunty or Karmic) and Tpup are going to be active projects, possibly ttuuxxx would like to go for Dpup, and they all have different code bases. But, as I already said, I have anticipated this huge divergence and the compatibility data will be built into the database entry for each package. The Puppy Package Manager reads that data and only offers compatible packages.

Username: BarryK
"Regarding Upup, there is an active project to support many Asian languages: shinobar, that is great!

why not adopt even/odd scheme?
Username: greenpossum
"Why not adopt the even/odd scheme? You could have used 43x for the current updates to Puppy 4, and release the final as 440 with fixes as 441, etc. That way you don't have to go backwards (or so it seems) for numbering. Similar the pre-5 series could be 49x, if you feel confident there won't be more than 9 goes to get it right.

Username: ttuuxxx
"Hi Barry, as Dpup goes, Yes I want go for it, There are currently just a couple things holding me back, One is 2.14X, thats been real fun and educational, and I do recommend others to try to update an older version of puppy also :)But I can switch back and fourth if need be :) I would like to keep 2.14X moving forward, Once its stable enough I'll ease off somewhat, But the thing about Dpup it needs another kernel compile, I've reported before that user 'Beem' could not bootup Dpup, he had a kernel panic, where as he's had no problems with Upup booting, SMP kernel might be nice to use as default, Since its not a main release but a spin off, the size restraint shouldn't really be enforced, I'm not saying 150MB iso either,lol I mean nothing wrong with 105MB or so. Was the Compiler ever fixed in Dpup remember alpha 3 it was somewhat broken? As for the Name am I stuck with Dpup or can I call It "Fire Hydrant", I kind of miss building those beauties? lol I would like to build it the way I used to, like 3 versions small=default puppy size 105Mb or less, Medium around 125MB Large=medium+OpenOffice and others around 350MB, I could use my dormant ibiblio account to host them, They keep bugging once in a blue moon to post something, lol I was saving it for something I could get involved with long term. Dpup I think that could be. so really just need to get 2.14x stable enough and then need a kernel in Dpup and I should be good to go. ttuuxxx

Sour note
Username: PaulBx1
"Puppy's numbering system is a mess. There should be no 476, because it is not a version 4 product. Instead it should be 500. It's silly to "save" the number 500 for a finished product. And, 416 should be exactly like 410, except only for bug fixes. Built the same way too. Will the 3-digit system distinguish ubuntu from debian in version 5? If not, it is inadequate for the task. Well, I guess no distro is perfect, and version numbering is certainly one of Puppy's warts.

5-series divergence
Username: BarryK
"[i]Will the 3-digit system distinguish ubuntu from debian in version 5?[/i] Good, question, and I should introduce something else that is in Woof. I have thought about this, and the versioning does cater for divergence into Upup, Tpup, Dpup, etc. To an extent. /etc/puppyversion is not used any more in Puppy. In 416 it is there for historical reasons only. The new replacement is /etc/DISTRO_SPECS and this has various variables, including: DISTRO_VERSION=416 DISTRO_BINARY_COMPAT="puppy" DISTRO_NAME="Puppy" DISTRO_FILE_PREFIX="pup4" DISTRO_COMPAT_VERSION="4" These variables provide comprehensive compatibility information. For example, the main Puppy file pup4-416.sfs and the save file pup4save.2fs, have the extra DISTRO_FILE_PREFIX encoded into them, to avoid clashes with other compatible-distro builds. It means that we can release Puppy 500 in Upup, Tpup, Dpup etc. flavours and there is no conflict even if they are all installed on the same PC. Same thing with the Puppy Package Manager, it reads those variables and only offers compatible packages.

Tags: woof