Unlimited dotted version numbers
April 23, 2011 —
BarryK
I posted yesterday about dotted version numbers:
http://bkhome.org/archive/blog2/201104/version-compare-utility.html
File /etc/DISTRO_SPECS has the variable DISTRO_VERSION which has the version number of Puppy (in very old puppies it used to be in /etc/puppyversion). Up until now, this version number has been limited to three numeric digits, for example 512, and we had to imagine dots inserted if wanted.
This limitation came about because we wanted to keep Puppy filenames in the 8.3 format, for example wary_512.sfs. There were two reason for that limitation: the files are in a old msdos filesystem that cannot handle long filenames, or an iso9660 (optical drive) filesystem created without Joliet extensions and thus not supporting long filenames under Windows.
The latter problem came about because I create Puppy ISOs without Joliet extensions, and I did that because I found that Joliet extensions could mess up multisession-saving (saving sessions back to CD/DVD).
I think that the Joliet problem is the only serious one. It affects people who are running Windows and want to copy the files off the CD -- filenames longer than 8.3 will be changed to fit the 8.3 format. Because of this we have had to suffer the 3-digit-version limitation. No more, I don't think that this is sufficient reason to keep that restriction.
...people in such a situation can rename the files to the correct names. Well, in most cases there would only be one file affected, the main Puppy SFS.
Now, you can have DISTRO_VERSION=5.1.2.34 for example, no restriction!
I have changed the default traditional naming:
puppy_wary_5.1.2.34.sfs
devx_wary_5.1.2.34.sfs
zdrv_wary_5.1.2.34.sfs
As before, these filenames are in variables DISTRO_PUPPYSFS and DISTRO_ZDRVSFS in /etc/DISTRO_SPECS.
...this is very good from the user's point of view, more meaningful names. The zdrv for example, was a very cryptic name, like 'zw512228.sfs'.
Woof updated
The following files have been updated in Woof:
woof_gui_tabs, 4quirkybuild, 3builddistro
boot/initrd-tree0/init
rootfs-skeleton/usr/sbin/sfsget, remasterpup2, puppyinstaller, bootmanager
rootfs-complete/sbin/dir2sfs
rootfs-complete/pinstall.sh
rootfs-complete/etc/rc.d/rc.update
ID string
The id-string that can be appended to some Puppy files, is not needed for the traditional filenames, but is needed for vmlinuz. This string is now increased from 16 to 32 bytes to take longer version-number, of format:
w110423092024ZZZZ5.1.2XXXXXXXXXX
...version number 5.1.2, starting at offset 18.
This is how the id-string is generated:
IDDATE="`date +%y%m%d%H%M%S`" #12 bytes, ex: 100911153319
IDPREFIX="`echo -n "$DISTRO_FILE_PREFIX" | cut -b 1`"
IDSTRING="${IDPREFIX}${IDDATE}ZZZZ${DISTRO_VERSION}"
#...ZZZZ reserved space for future use.
LEN1=`echo -n "$IDSTRING" | wc -c`
LEN2=`expr 32 - $LEN1`
EXTX=''
while [ $LEN2 -gt 0 ];do
LEN2=`expr $LEN2 - 1`
EXTX="${EXTX}X"
done
IDSTRING="${IDSTRING}${EXTX}" #32 bytes ex: w110423092024ZZZZ5.1.2XXXXXXXXXX
Comments
Dotted versionsUsername: Sage
8.3 imposes a useful mental discipline, keeps things tidy. Not difficult to organise a personal mnemonic to accommodate most eventualities, at least within menus & file headings. Different matter with individual files within directories. Separately, the recent release of 0.7 Incognito, announced on DW, might appeal to you. A refreshingly different Debian implementation, that indirectly addresses the contemporary Puppy/root discussions, whilst sidestepping the substantive issue. Loads of good ideas that might be your cuppa tea, although this particular one is hardly compact?
Tags: woof