Woofy 0.91

Core libraries and systems
Message
Author
User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

Woofy 0.91

#1 Post by sc0ttman »

Woofy
a simple remaster tool

https://github.com/sc0ttj/woofy

- Woofy allows users to remaster an ISO file, without having to boot it up..
- Just choose your 'base' - the ISO you want to remaster

Download: Woofy 0.91

Features:

- Woofy can remaster any Puppy Linux ISO, using any version of Puppy Linux.
- add packages, remove files, edit themes, edit initrd.gz,
- choose to remaster with or without a zdrv
- check for missing dependencies in your new ISO
- supports grub or isolinux
- supports jwm, gtk, openbox and icon themes
- allows manual edit of SFS and ISO before building the final product

Video Demo: http://www.youtube.com/watch?v=cpMk7frOEho

To load it:

Type 'woofy' in the terminal, then you'll see all the background workings
in the terminal, as your new sfs and iso files are being created

Or use the menu entry, found at "Menu->System->Woofy"
(no messages during remaster)

Usage:

1. select the ISO you want to remaster
2. choose a name for your new ISO file
3. choose a working dir (a linux partition with lots of space, choose /tmp to use your RAM)
4. choose a suffix for your sfs file (optional, must not contain spaces)
5. add a text file, listing all files to be deleted from the iso (the list must contain full paths)
6. choose a package dir, containing the packages you want added (supports pet, sfs, tar.gz, deb, rpm, txz, xz)
7. choose to edit defaults apps, themes, sfs and boot options (or not)
8. Click 'Go', follow the on screen instructions.

Requirements:

You need a Puppy Linux ISO to remaster, any version should do.

You can use Woofy on any pup, full install or frugal, save file or no save file.
If you have a Linux partition, or a large save file (400mb+ free space), you do not even need much RAM.

The only real requirement is that you have enough space in your chosen working directory
(which could be your RAM, a save file, or a mounted linux partition)

"Enough space" means 3 or 4 times more than your ISO file size.

If remastering a Puppy ISO with a different SFS version than the one running Woofy,
you must have both mksquashfs3 and mksquashfs4 installed to remaster successfully.

Notes:

Woofy has a nice Help dialog, read it.

Thanks to stu90, iguleder, jemimah, 01micko, shinobar, others

Changelog:

version 0.91 - http://www.murga-linux.com/puppy/viewto ... 665#641665

version 0.9

- fixed: duplicate and old listings in gtk, jwm, openbox, icon themes
- fixed: general code cleanup and fixes, improved logic
- fixed: creation of zdrv for other kernels
- fixed: initrd-editor.sh for unsupported files
- fixed: handling of installing SFS addon packages
- fixed: required to run as root, asks for root passwd if not root
- fixed: improved terminal output, easier to understand
- fixed: theme GUIs fixed for Pups with no ROX
- added: change default window manager of ISO, with wmswitcher
- added: offer to check deps, list missing libs in new SFS (thanks jemimah)
- added: GUI progress bars when building the SFS files (thanks jemimah)
- added: GUI dialogs for pkg install and ISO creation
- updated: re-organized pkg; fewer deps, all moved to /usr/local/woofy
- updated: woofy auto-update in ISO synced with new pkg format
- updated: remove initrd-editor and defaults-chooser auto-update in ISO
- updated: defaults-chooser, supports more apps
- updated: Help GUI has lots more info than before
- removed all binaries from the pkg (they should be in your pup!)
- woofy pkg now only 25k

version 0.8

- fixed: update of defaults-chooser and initrd-editor.sh in new ISO
- fixed: always check for full paths in list of files to delete
- fixed: get kernel version from base ISO, user must enter it manually if not found
- fixed: better detection and support of zdrvs in the base ISO
- fixed: remove zdrv on remastered ISO, if added back into main SFS
- fixed: creation of png icons, when updating icons theme
- fixed: wallpaper only updated if supplied image exists
- updated: improvement of terminal messages given during remaster

version 0.7

- new: option to edit initrd.gz, when setting boot options
- new: auto update initrd-editor in remastered ISO, if it's already installed
- new: auto update defaults-chooser in remastered ISO, if it's already installed
- new: added openbox themes support
- new: icon creation, now scales/converts SVG and 24x24 icons, if needed (like icon_switcher)
- new: choose desktop icon layout setup, with smart choice of "default" icon layout for different pups
- fixed: supports all new puppy sfs names, even from latest woof
- fixed: chooses correct zdrv file name for all puppies, even latest from woof
- fixed copying of icon themes into default theme folder on ISO
- fixed: improved automatic deletion of supplied list of files on ISO
- updated: defaults-changer (built in to woofy) updated to 0.8
- updated: better GUI layout and boot settings GUI logic, nicer timing and info on tooltips and help dialogs
- updated: help info screen, more up to date with all features
- updated: sfsver comparison for zdrv naming, puplets fix
- updated: better comments in main script
- Known issues with latest (0.7): here


version 0.6
- new: remaster lupu, luci, lupq, quirky, wary, dpup, tpup, spup (etc), puppy4, puppy3 and puppy2
- new: remaster any puppy version, not only the one which is booted
- new: editable boot options for both grub4dos and isolinux booting ISOs
- new: creates joliet iso file with a nice volume name
- new: supports remaster of isos with either sfs3 or sfs4
- new: option to create or remove zdrv sfs for the new live cd
- new: supports remaster of isos with multiple sfs files
- new: auto-update woofy, if installed on the chosen iso
- new: option to delete any working dirs during remaster process that are no longer required (save space)
- new: option to manually edit iso files before building the new iso file (to edit splash.xpm, etc)
- fixed: many, many bugfixes, plus very reliable error-handling at each step
- fixed: runs cleanup and exits whenever any step of the remaster fails
- faster, safer

...

version 0.3
- change the default apps, wallpaper and gtk/jwm/icon themes
- (slightly) better help info, dialogs and tooltips
- (thanks to lguleder for many changes..)

version 0.2
- choose to edit sfs and boot options before remaster
- added help GUI when editing boot params
- rename sfs file to use the chosen suffix
- better tooltips in gui fields
- pinstall is executed in the new sfs, for each pet added (thanks to lguleder)
- fixmenus is executed on the sfs before its created (thanks to lguleder)
- fixmenus added to first boot stuff in new rc.update file (thanks to jemimah)
- better start and finish dialogs

ENJOY
Attachments
woofy-0.9.pet
version 0.9
(25.8 KiB) Downloaded 2159 times
woofy.png
screenshot
(41.08 KiB) Downloaded 13613 times
Last edited by sc0ttman on Sun 24 Nov 2019, 16:30, edited 44 times in total.

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#2 Post by sc0ttman »

I would love someone to help me update the puppy menu (reading /usr/share/applications/*) in the remastered sfs, before the iso is created..

I tried adding 'fixmenus' in '.xinitrc' using 'sed', before and after the 'exec jwm' line, but it wouldn't work..

although sed worked fine, adding fixmenus before jwm starts causes it to repeatedly restart on boot, while adding it after jwm starts is obviously pointless..

So... Anyone know how to run 'fixmenus' on a mounted pup_*.sfs file?

Also, to show Woofy works.. Here is a screenshot of my first woofy iso..

I used Puppy Arcade 8 as a base, and removed all the emulator and gaming stuff..
I also added a goffice sfs (abiword, gnumeric and inkscape) plus a load of pet files (around 20)..

This took me 5 mins to build with woofy :D
Attachments
woofy-01.png
a screenshot of my first woofy-remastered ISO
(107.23 KiB) Downloaded 13302 times
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#3 Post by jemimah »

In Puppeee I added fixmenus to /etc/rc.d/rc.update to get around this problem.

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#4 Post by Iguleder »

Just chroot into the extracted SFS and do fixmenus. Woof uses chroot to run the pinstall stuff ... and I use it in my own distro for full-frugal-hybrid-installs :lol:

This looks kinda promising ... I think I'll try to write something similar ... I think you should make it extract the SFS, then extract all pets one by one, chroot, pinstall, exit chroot, then chroot again for fixmenus and change the version number/distro name as Woof does.

EDIT: even more fun stuff! Make it run the wallpaper setting tool, the JWM theme chooser, the GTK thingy and the icons thingy, while within chroot!
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#5 Post by sc0ttman »

jemimah wrote:In Puppeee I added fixmenus to /etc/rc.d/rc.update to get around this problem.
Thanks jemimah..
I noticed rc.update already calls fixmenus, but only if the Puppy version was found to be updated..

Can i simply move the existing call to fixmenus (which is inside the 'if puppy was updated' clause) outside the if statement, so that it is executed every boot? I'm guessing yes..

And lguleder, I'm guessing I can make the chroot changes work, although I will include only pinstall and fixmenus, for now..

How would I do it? I'm unfamiliar with using chroot...

I would like to check for and then run pinstall, after each package is extracted to the mounted sfs...

I only need to chroot to /mnt/old.sfs, no other place...

So would I only call chroot once or each time I want to run a command on the mounted sfs?
Is this something like it? (I know its not correct code syntax..)

Code: Select all

...
(foreach package)
  cp ./package/* /mnt/old.sfs/
  chroot /mnt/old.sfs [ -x /pinstall ] && /pinstall
(end foreach)
...
chroot /mnt/old.sfs fixmenus
...
And then... How do I change root back to '/'? Maybe this...

Code: Select all

chroot / 
But I'm guessing not, as '/' is now '/mnt/old.sfs'

Any help on using chroot and where I would call it regarding a foreach file loop, would be greatly appreciated..

Finally..

What changes to I need to make to enable users to rename the pup_*sfs in the new iso?
I'm guessing after renaming the file, I will have to update some other files to point to it correctly..

So.. What should I do to make the pup_*.sfs renaming process work?

Also, I don't think it's really worth letting users change the official version number in the remastered iso, it will always be whatever the base was..

Anyway, thanks for your suggestions guys, they are very helpful... :D
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#6 Post by Iguleder »

If you want to know how to use chroot in a script for just one command ... here's a simple example, returns your grep version :)

Code: Select all


#!/bin/sh

echo "before chroot"

chroot /mnt/sda6 \
grep --version | head -1

echo "after chroot"

You can use this ... here's a simple algorithm:

Code: Select all

if there are PETs to add (ummm ... output of `ls /pets/directory/*.pet | wc -l` maybe?)

  for each PET

    extract the pet
    chroot and run pinstall.sh
    delete pinstall.sh

  end for each

  delete the pet specs file

end if
Btw, I have another suggestion, a fixes directory, just a directory with stuff to add after everything ... for manual tweaks.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#7 Post by sc0ttman »

weird double post removed...
Last edited by sc0ttman on Thu 24 Jun 2010, 12:39, edited 1 time in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#8 Post by Iguleder »

Working on my own remaster thingy ... so far it works great and even does fixmenus/pinstall.sh. Here it is, sc0ttman, have a look. Should be useful for Woofy ... :D

I took a look at your script, mine works differently ... just take my chroot commands, I think that's all you need in Woofy ... good job, dude :)

I think I'll write a simple frontend for my script as you did with yours ... fun thing :wink:

Code: Select all

#!/bin/busybox ash

# Moo - a simple Puppy remaster tool
# Iguleder, June 2010, GPL, gl hf

# the ISO you wish to remaster
export originalIso="/root/pup-431.iso"

# a temporary mount point for the ISO
export isoMountPoint="/mnt/isotemp"

# a working directory where the SFS is extracted, needs plenty of space
export sfsWorkingDirectory="/tmp/sfstemp"

# a working directory for the initramfs
export initramfsWorkingDirectory="/tmp/initramfstemp"

# a working directory for the extracted, remastered ISO
export isoWorkingDirectory="/tmp/isotemp"

# a working directory for PETs
export petWorkingDirectory="/tmp/pettemp"

# a directory with PETs to slipstream and an optional directory to copy over to the main SFS
export petsDirectory="/root/mootest/pets"
export stuffDirectory="/root/mootest/stuff"

# the directory for the remastered iso
#export isoDirectory="`dirname $originalIso`"
export isoDirectory="/mnt/home"

# the puplet name, prefix and version
export pupletName="MooPup"
export pupletPrefix="moo"
export pupletVersion="600"

mount_iso()
{

  echo "Creating mount point for the ISO"
  mkdir -p "$isoMountPoint"

  echo "Mounting the ISO"
  mount -t iso9660 -o loop,ro "$originalIso" "$isoMountPoint"

}

extract_iso()
{  

  echo "Creating the ISO working directory"
  mkdir -p "$isoWorkingDirectory"

  sfsFileName="$(basename `ls $isoMountPoint/*.sfs`)"
  
  echo "Extracting the ISO"
  for file in `ls $isoMountPoint/*`; do
  
    temp=`basename $file`

    if [ "$temp" != "$sfsFileName" ]; then

      echo "  $temp"
      cp $file "$isoWorkingDirectory"

    fi

  done

}

unmount_iso()
{

  echo "Unmounting the ISO"
  umount -d "$isoMountPoint"

  echo "Removing the ISO mount point"
  rmdir "$isoMountPoint"

}

extract_sfs()
{

  echo "Extracting the Puppy SFS"
  unsquashfs -d "$sfsWorkingDirectory" "$isoMountPoint/$sfsFileName" > /dev/null 2>&1

}

# usage: add_pet /path/to/pet
add_pet()
{

  echo "Adding `basename $1`"
  
  echo "  Extracting"
  tar xzf $1 -C $petWorkingDirectory > /dev/null 2>&1

  echo "  Copying files to the SFS working directory"
  cp -r $petWorkingDirectory/*/* "$sfsWorkingDirectory"
  
  if [ -f "$sfsWorkingDirectory/pinstall.sh" ]; then

    echo "  Executing pinstall.sh"
    chroot $sfsWorkingDirectory bash pinstall.sh   

    rm $sfsWorkingDirectory/pinstall.sh

  fi
  
  echo "  Cleaning the PET working directory"
  rm -r $petWorkingDirectory/*
  
}

add_pets()
{

  echo "Creating the PET working directory"
  mkdir "$petWorkingDirectory"

  for pet in `find $petsDirectory -name '*.pet'`; do

    add_pet `realpath $pet`

  done

  if [ -f "$sfsWorkingDirectory/*/pet.specs" ]; then
 
    rm "$sfsWorkingDirectory/*.pet.specs"

  fi
  
  echo "Deleting PET working directory"
  rmdir "$petWorkingDirectory"

}

add_stuff()
{

  if [ -f "$stuffDirectory" ]; then
  
    if [ "`ls $stuffDirectory`" != "" ]; then
    
      echo "Adding other stuff"
      cp -r $stuffDirectory/* "$sfsWorkingDirectory" 

    fi
    
  fi
   
}

create_sfs()
{

  echo "Creating the remastered SFS"
  mksquashfs "$sfsWorkingDirectory" "$isoWorkingDirectory/$pupletPrefix-$pupletVersion.sfs" -all-root

  echo "Deleting the SFS working directory"
  rm -r "$sfsWorkingDirectory"

}

create_iso()
{

  cd "$isoWorkingDirectory"
  
  echo "Creating the ISO"
  mkisofs -D -R -o "$isoDirectory/$pupletPrefix-$pupletVersion.iso" -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "$isoWorkingDirectory"

  echo "Deleting the ISO working directory"
  rm -r "$isoWorkingDirectory"

}

last_minute()
{

  . $sfsWorkingDirectory/etc/DISTRO_SPECS
  
  echo "Doing all last-minute stuff"
  
  echo "  Setting the puplet name"
  sed s/DISTRO_NAME=\'$DISTRO_NAME\'/DISTRO_NAME=\'$pupletName\'/ $sfsWorkingDirectory/etc/DISTRO_SPECS > $sfsWorkingDirectory/etc/DISTRO_SPECS_temp
  mv $sfsWorkingDirectory/etc/DISTRO_SPECS_temp $sfsWorkingDirectory/etc/DISTRO_SPECS

  echo "  Setting the puplet version"
  sed s/DISTRO_VERSION=$DISTRO_VERSION/DISTRO_VERSION=$pupletVersion/ $sfsWorkingDirectory/etc/DISTRO_SPECS > $sfsWorkingDirectory/etc/DISTRO_SPECS_temp
  mv $sfsWorkingDirectory/etc/DISTRO_SPECS_temp $sfsWorkingDirectory/etc/DISTRO_SPECS

  echo "  Setting the puplet file prefix"
  sed s/DISTRO_FILE_PREFIX=\'$DISTRO_FILE_PREFIX\'/DISTRO_FILE_PREFIX=\'$pupletPrefix\'/ $sfsWorkingDirectory/etc/DISTRO_SPECS > $sfsWorkingDirectory/etc/DISTRO_SPECS_temp
  mv $sfsWorkingDirectory/etc/DISTRO_SPECS_temp $sfsWorkingDirectory/etc/DISTRO_SPECS

  echo "  Running fixmenus"
  chroot $sfsWorkingDirectory fixmenus > /dev/null 2>&1
  
}

# must run before create_sfs (!!!)
create_initramfs()
{

  echo "Remastering the initramfs"
  
  echo "  Creating the initramfs working directory"
  mkdir "$initramfsWorkingDirectory"
  
  echo "  Moving over the initramfs"
  mv "$isoWorkingDirectory/initrd.gz" "$initramfsWorkingDirectory"
 
  cd "$initramfsWorkingDirectory"
  
  echo "  Extracting the initramfs"
  gunzip initrd.gz
  cpio -i < initrd
  rm initrd
  
  echo "  Writing the puplet information"
  cp "$sfsWorkingDirectory/etc/DISTRO_SPECS" .
  
  echo "  Creating the remastered initramfs"
  find . | cpio -o -H newc | gzip -9 > "$isoWorkingDirectory/initrd.gz"
  
  echo "Deleting the initramfs working directory"
  rm -r "$initramfsWorkingDirectory"

}

mount_iso
extract_iso
extract_sfs
unmount_iso
add_pets
add_stuff
last_minute
create_initramfs
create_sfs
create_iso

echo "Done! Your remastered ISO is $isoDirectory/$pupletPrefix-$pupletVersion.iso."
Regarding the version number and distro version, it's in DISTRO_SPECS. Just a couple of seds. I'm gonna add that to Moo, just for fun ...

By the way, how did you change the themes in that example Woofylet you made? It's impossible to run the icon/gtk/jwm theme chooser from within chroot ...

EDIT: found an easy way to set the name, version and prefix of the puplet ... still need to make one puplet and boot it. Updated the code.

EDIT: it doesn't work, because the initramfs has DISTRO_SPECS too. It needs to be replaced too ... not a problem, I'll do it.

EDIT 2: fixed it! Now it also remasters the initramfs. Only two problems left: the help page and the boot splash.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#9 Post by sc0ttman »

OK.. Adding fixmenus to rc.update did nothing - and it was already in there twice!
I made sure 'fixmenus' is called at various points, from early on in the script to right at the end..
Still nothing... Restarting X did nothing to update the menu, rebooting also did nothing..

Any ideas?
Iguleder wrote:Working on my own remaster thingy ... so far it works great and even does fixmenus/pinstall.sh. Here it is, sc0ttman, have a look. Should be useful for Woofy ... :D
Thanks very much.. Much nicer, cleaner code than mine.. :oops:
And I'm definitely stealing some of its features ;)

Code: Select all

unsquashfs -d "$sfsWorkingDirectory" "$isoMountPoint/$sfsFileName" > /dev/null 2>&1
Is unsquashfs better than mounting the sfs file?

Code: Select all

  if [ -f "$sfsWorkingDirectory/pinstall.sh" ]; then

    echo "  Executing pinstall.sh"
    chroot $sfsWorkingDirectory bash pinstall.sh   

    rm $sfsWorkingDirectory/pinstall.sh

  fi
Thanks for this.. Gonna try it out soon :D

Code: Select all

mksquashfs "$sfsWorkingDirectory" "$isoWorkingDirectory/$pupletPrefix-$pupletVersion.sfs" -all-root
Is the above better than using dir2sfs? I assumed dir2sfs was present in all Puppies..

Code: Select all

mkisofs -D -R -o "$isoDirectory/$pupletPrefix-$pupletVersion.iso" -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "$isoWorkingDirectory"
Again, is the above better than using dir2iso?

Code: Select all

last_minute()
{

  . $sfsWorkingDirectory/etc/DISTRO_SPECS
  
  echo "  Setting the puplet name"
  sed s/DISTRO_NAME=\'$DISTRO_NAME\'/DISTRO_NAME=\'$pupletName\'/ $sfsWorkingDirectory/etc/DISTRO_SPECS > $sfsWorkingDirectory/etc/DISTRO_SPECS_temp
  mv $sfsWorkingDirectory/etc/DISTRO_SPECS_temp $sfsWorkingDirectory/etc/DISTRO_SPECS

  ... 
 
  echo "  Running fixmenus"
  chroot $sfsWorkingDirectory fixmenus > /dev/null 2>&1
  
}
I'll be stealing most of this... Or I would..
Except, I can't find DISTRO_SPECS anywhere in TurboPup, or my puplets (all based on Turboup)..
I even unpacked the initrd.gz, then initrd, and it wasn't there..


So for now, I will be leaving out the DISTRO_SPECS changes in Woofy...
Unless there is another way to change version numbers and puplet name..?

By the way, how did you change the themes in that example Woofylet you made?
Woofy allows the manual editing of the sfs before it's mounted..
I just went in and changed the wallpaper picture, using ROX.
It's impossible to run the icon/gtk/jwm theme chooser from within chroot ...
That's a shame.. :( What was the issue?

Another note... Renaming the new pup_*.sfs file is an important feature for me..
So, I edited an iso manually as a test...

I renamed its sfs file, and rebuilt the iso.. and it booted fine..

So.. Can I just rename the pup_*.sfs in the new iso and it will still boot fine?
No other changes needed?


Because I want to let users choose a new suffix (or none) for the new sfs file..

In Woofy, I want to get the version number from the original sfs filename and rename the new one to "pup_$ver$suffix.sfs",
where "$ver" may be "420" or "431", etc and "$suffix" is any [a-z] string..

I tried sed and other ways...
What is the easy way to do get the version number out of the pup_*.sfs filename?
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#10 Post by Iguleder »

I have no idea how it works on non-Woof puppies, that's the problem. I just know how to pull everything from DISTRO_SPECS and replace it under Puppy 4.3.1 and newer, because it's Woof ...
Is unsquashfs better than mounting the sfs file?
I think it should be faster ... here you don't have to mount it, just extract it.
Is the above better than using dir2sfs?
I really don't know what dir2sfs does ... I just like it barebones, I use mksquashfs in my own distro for everything ... :)
Again, is the above better than using dir2iso?
What is that dir2iso you used? I tried to find it on 4.3.1 ... anyway, I used the command Barry uses in Woof to build the ISO.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#11 Post by jemimah »

sc0ttman wrote: Thanks jemimah..
I noticed rc.update already calls fixmenus, but only if the Puppy version was found to be updated..

Can i simply move the existing call to fixmenus (which is inside the 'if puppy was updated' clause) outside the if statement, so that it is executed every boot? I'm guessing yes..
Add it to the part that runs in Pupmode 5, after updating the network-drivers-list, gtk-icon-cache, and desk-icons.

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#12 Post by sc0ttman »

updated to 0.2 ... thanks for the help guys :)
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#13 Post by Iguleder »

I found a way to set the GTK/JWM/icon themes, I'm working on it. I found a way to detect all present themes and change them manually. Now I'll put the lists in listboxes as I did with the default applications wizard ... btw, I like the 002 GUI :)
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#14 Post by sc0ttman »

Iguleder wrote:I found a way to set the GTK/JWM/icon themes, I'm working on it. I found a way to detect all present themes and change them manually. Now I'll put the lists in listboxes as I did with the default applications wizard ... btw, I like the 002 GUI :)
that sounds great.. and thanks...

I would also love to use chroot to integrate my defaults-app changer thing...
or yours, depending on which is installed.. :)

Could you get that working too? That would be really nice...
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#15 Post by Iguleder »

I don't think it's possible. As far as I see, it's impossible to run gtkdialog stuff from within chroot, only outside ... so I'm currently working on a dialog that has lists of all themes, lets you choose and then changes them without chroot (sort of a hack to do whatever the wizards do, but manually).

Currently my wizard lists all icon themes, JWM themes and wallpapers. There's a little mess with JWM themes, I'll sort that out. When all three work, I'll add GTK themes.

However, I think I can make a hacked version of your wizard that uses relative paths, then include it with Woofy, copy to the extracted SFS directory, then run it, then delete it. This way it can set everything without chroot ... theoretically, should work :)

EDIT: fixed the JWM themes thing.
Attachments
wiz.png
(12.57 KiB) Downloaded 12556 times
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#16 Post by Iguleder »

Here it is, Moo 003:
- JWM theme, icon theme, GTK theme and wallpaper selection GUI
- More fixes, detection of errors
- Slightly faster
- Better GUI
- Puplet name, version and prefix
- Works with Puppy 4.3.1 and above (all Woofed puppies)

TODO:
- Default applications wizard integration
- Make the pets/stuff directories really optional (no need to specify if you don't want them)

Code: Select all

#!/bin/busybox ash

# Moo - a simple Puppy remaster tool
# Iguleder, June 2010, GPL, gl hf

. /etc/DISTRO_SPECS

# the puplet name, prefix and version
export pupletName=$DISTRO_NAME
export pupletPrefix=$DISTRO_FILE_PREFIX
export pupletVersion=$DISTRO_VERSION

# the ISO you wish to remaster
export originalIso="/path/to/iso"

# a directory with PETs to slipstream and an optional directory to copy over to the main SFS
export petsDirectory="/root/moo/pets"
export stuffDirectory="/root/moo/stuff"

# a working for all operations directory
export workingDirectory="/tmp"

# the directory for the remastered iso
export isoDirectory="/root"
 
# a working directory where the SFS is extracted, needs plenty of space
export sfsWorkingDirectory="$workingDirectory/sfstemp"

# a working directory for the initramfs
export initramfsWorkingDirectory="$workingDirectory/initramfstemp"

# a working directory for the extracted, remastered ISO
export isoWorkingDirectory="$workingDirectory/isotemp"

# a working directory for PETs
export petWorkingDirectory="$workingDirectory/pettemp"

# a temporary mount point for the ISO
export isoMountPoint="/mnt/`basename $originalIso`"

# export all functions, credit goes to sc0ttman
set -a

mount_iso()
{

  echo "Creating a mount point for the ISO"
  mkdir -p "$isoMountPoint"

  echo "Mounting the ISO"
  mount -t iso9660 -o loop,ro "$originalIso" "$isoMountPoint"
  
}

extract_iso()
{  

  echo "Creating the ISO working directory"
  mkdir -p "$isoWorkingDirectory"

  sfsFileName="$(basename `ls $isoMountPoint/*.sfs`)"
  
  echo "Extracting the ISO"
  for file in `ls $isoMountPoint/*`; do
  
    temp=`basename $file`

    if [ "$temp" != "$sfsFileName" ]; then

      echo "  $temp"
      cp $file "$isoWorkingDirectory"

    fi

  done

}

unmount_iso()
{

  echo "Unmounting the ISO"
  umount -d "$isoMountPoint"

  echo "Removing the ISO mount point"
  rmdir "$isoMountPoint"

}

extract_sfs()
{

  echo "Extracting the Puppy SFS"
  unsquashfs -d "$sfsWorkingDirectory" "$isoMountPoint/$sfsFileName" > /dev/null 2>&1

}

# usage: add_pet /path/to/pet
add_pet()
{

  echo "Adding `basename $1`"
  
  echo "  Extracting"
  tar xzf $1 -C $petWorkingDirectory > /dev/null 2>&1
  
  echo "  Copying files to the SFS working directory"
  cp -r $petWorkingDirectory/*/* "$sfsWorkingDirectory"
  
  if [ -f "$sfsWorkingDirectory/pinstall.sh" ]; then

    echo "  Executing pinstall.sh"
    chroot $sfsWorkingDirectory bash pinstall.sh   

    rm $sfsWorkingDirectory/pinstall.sh

  fi
  
  echo "  Cleaning the PET working directory"
  rm -r $petWorkingDirectory/*
  
}

add_pets()
{

  echo "Creating the PET working directory"
  mkdir "$petWorkingDirectory"

  for pet in `find $petsDirectory -name '*.pet'`; do

    add_pet `realpath $pet`

  done

  echo "Deleting PET working directory"
  rmdir "$petWorkingDirectory"
  
  rm $sfsWorkingDirectory/*pet.specs

}

add_stuff()
{

  if [ -f "$stuffDirectory" ]; then
  
    if [ "`ls $stuffDirectory`" != "" ]; then
    
      echo "Adding other stuff"
      cp -r $stuffDirectory/* "$sfsWorkingDirectory" 

    fi
    
  fi
   
}

create_sfs()
{

  echo "Creating the remastered SFS"
  mksquashfs "$sfsWorkingDirectory" "$isoWorkingDirectory/$pupletPrefix-$pupletVersion.sfs"

  echo "Deleting the SFS working directory"
  rm -r "$sfsWorkingDirectory"

}

create_iso()
{

  cd "$isoWorkingDirectory"
  
  echo "Creating the ISO"
  mkisofs -D -R -o "$isoDirectory/$pupletPrefix-$pupletVersion.iso" -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "$isoWorkingDirectory"

  echo "Deleting the ISO working directory"
  rm -r "$isoWorkingDirectory"

  if [ -f $isoDirectory/$pupletPrefix-$pupletVersion.iso ]; then
  
    export flag=1
    
  fi
  
}

last_minute()
{

  cd $sfsWorkingDirectory

  . etc/DISTRO_SPECS
  
  echo "Doing all last-minute stuff"
  
  echo "  Setting the puplet name"
  sed s/DISTRO_NAME=\'$DISTRO_NAME\'/DISTRO_NAME=\'$pupletName\'/ etc/DISTRO_SPECS > etc/DISTRO_SPECS_temp
  mv etc/DISTRO_SPECS_temp etc/DISTRO_SPECS

  echo "  Setting the puplet version"
  sed s/DISTRO_VERSION=$DISTRO_VERSION/DISTRO_VERSION=$pupletVersion/ etc/DISTRO_SPECS > etc/DISTRO_SPECS_temp
  mv etc/DISTRO_SPECS_temp etc/DISTRO_SPECS

  echo "  Setting the puplet file prefix"
  sed s/DISTRO_FILE_PREFIX=\'$DISTRO_FILE_PREFIX\'/DISTRO_FILE_PREFIX=\'$pupletPrefix\'/ etc/DISTRO_SPECS > etc/DISTRO_SPECS_temp
  mv etc/DISTRO_SPECS_temp etc/DISTRO_SPECS
  
  echo "  Running fixmenus"
  chroot . fixmenus > /dev/null 2>&1

}

# must run before create_sfs (!!!)
create_initramfs()
{

  echo "Remastering the initramfs"
  
  echo "  Creating the initramfs working directory"
  mkdir "$initramfsWorkingDirectory"
  
  echo "  Moving over the initramfs"
  mv "$isoWorkingDirectory/initrd.gz" "$initramfsWorkingDirectory"
 
  cd "$initramfsWorkingDirectory"
  
  echo "  Extracting the initramfs"
  gunzip initrd.gz
  cpio -i < initrd
  rm initrd
  
  echo "  Writing the puplet information"
  cp "$sfsWorkingDirectory/etc/DISTRO_SPECS" .
  
  echo "  Creating the remastered initramfs"
  find . | cpio -o -H newc | gzip -9 > "$isoWorkingDirectory/initrd.gz"
  
  echo "Deleting the initramfs working directory"
  rm -r "$initramfsWorkingDirectory"

}

# a wrapper for everything
remaster()
{

  if [ "`initial_checks`" = "passed" ]; then
  
    msgbox "The remastering process will begin now. It may take time; you will see a message when it is over. Press \"OK\" to continue."

    mount_iso
    
    if [ "$(mount | grep "on $isoMountPoint")" != "" ]; then
   
      extract_iso
  
      if [ "`ls $isoWorkingDirectory`" != "" ]; then
  
        extract_sfs
    
        if [ "`ls $sfsWorkingDirectory`" != "" ]; then
      
          unmount_iso
      
          if [ "$(mount | grep "on $isoMountPoint")" = "" ]; then
     
            add_pets
            add_stuff
            last_minute
            select_artwork
          
            create_initramfs
          
            if [ -f "$isoWorkingDirectory/initrd.gz" ]; then
          
              create_sfs
            
              if [ -f "$isoWorkingDirectory/$pupletPrefix-$pupletVersion.sfs" ]; then
            
                create_iso
       
              else
              
                error="unable to create the SFS."
                
              fi
            
            else
            
              error="unable to create the initramfs."
              
            fi
          
          else
          
            error="unable to unmount the ISO."
            
          fi
        
        else
        
          error="unable to extract the SFS."
          
        fi

      else
      
        error="unable to extract the ISO."
        
      fi
    
    else
    
      error="unable to mount the ISO."
      
    fi
  
    if [ "$flag" = 1 ]; then
  
      msgbox "Done! Your remastered ISO is $isoDirectory/$pupletPrefix-$pupletVersion.iso."

    else
  
      msgbox "Error: $error"
      clean_up
    
    fi
  
  else
  
    msgbox "Something is wrong with the selected options. Make sure all fields contain valid values."
    
  fi
  
}

select_artwork()
{

  echo "Locating artwork"

  cd "$sfsWorkingDirectory"

  for iconTheme in `ls -1 usr/local/lib/X11/themes`; do

    if [ "`file usr/local/lib/X11/themes/$iconTheme | grep directory`" != "" ]; then
    
      export iconThemes="$iconThemes<item>$iconTheme</item>"

    fi
    
  done

  for jwmTheme in `ls -1 root/.jwm/themes | grep jwmrc`; do

    export jwmThemes="$jwmThemes<item>${jwmTheme%%-jwmrc*}</item>"

  done

  for wallpaper in `ls -1 usr/share/backgrounds`; do

    export wallpapers="$wallpapers<item>$wallpaper</item>"

  done

  for gtkTheme in `ls -1 usr/share/themes`; do

    if [ "$gtkTheme" != "Default" ]; then
    
      export gtkThemes="$gtkThemes<item>$gtkTheme</item>"

    fi
    
  done
  export themeChooser='

  <vbox>

    <hbox>
      <text><label>Icon theme:</label></text>
      <combobox width-request="250">
      <variable>iconTheme</variable>
      '$iconThemes'
      </combobox>
    </hbox>

    <hbox>
      <text><label>JWM theme:</label></text>
      <combobox width-request="250">
      <variable>jwmTheme</variable>
      '$jwmThemes'
      </combobox>
    </hbox>

    <hbox>
      <text><label>Wallpaper:</label></text>
      <combobox width-request="250">
      <variable>wallpaper</variable>
      '$wallpapers'
      </combobox>
    </hbox>

    <hbox>
      <text><label>GTK theme:</label></text>
      <combobox width-request="250">
      <variable>gtkTheme</variable>
      '$gtkThemes'
      </combobox>
    </hbox>
    
    <button label="OK" has-focus="true">
      <action>echo $iconTheme > /tmp/moo</action>
      <action>echo $jwmTheme >> /tmp/moo</action>
      <action>echo $wallpaper >> /tmp/moo</action>
      <action>echo $gtkTheme >> /tmp/moo</action>
      <action>EXIT:Exit</action>
    </button> 

  </vbox>'

  gtkdialog3 -c -p themeChooser > /dev/null 2>&1

  iconTheme=`cat /tmp/moo | head -1`
  jwmTheme=`cat /tmp/moo | head -2 | tail -1`
  wallpaper=`cat /tmp/moo | head -3 | tail -1`
  gtkTheme=`cat /tmp/moo | tail -1`

  rm /tmp/moo
  
  echo "Setting artwork"

  rm usr/local/lib/X11/pixmaps/*
  cp -a usr/local/lib/X11/themes/$iconTheme/* usr/local/lib/X11/pixmaps
  echo $iconTheme > etc/desktop_icon_theme

  cp -f root/.jwm/themes/$jwmTheme-colors root/.jwm/jwm_colors
  cp -f root/.jwm/themes/$jwmTheme-jwmrc root/.jwm/jwmrc-theme

  cp usr/share/backgrounds/$wallpaper usr/share/backgrounds/default.jpg 

  echo "# -- THEME AUTO-WRITTEN DO NOT EDIT
include \"/usr/share/themes/$gtkTheme/gtk-2.0/gtkrc\"

include \"/root/.gtkrc.mine\"

# -- THEME AUTO-WRITTEN DO NOT EDIT" > root/.gtkrc-2.0
  
}

msgbox()
{

  export message="
  <vbox>
    <text><label>$1</label></text> 
      <button label=\"OK\" has-focus=\"true\">
        <action>EXIT:Exit</action>
      </button> 
  </vbox>"

  gtkdialog3 -c -p message > /dev/null 2>&1

}

initial_checks()
{

  if [[ -f "$originalIso" && -d "$workingDirectory" && -d "$petsDirectory" && -d "$stuffDirectory" && "$pupletName" != "" && "$pupletVersion" != "" && "$pupletPrefix" != "" && -d "$isoDirectory" ]]; then
  
    echo "passed"
    
  fi

}

clean_up()
{
  
  echo "Cleaning up"
  
  if [ -d "$isoMountPooint" ]; then
  
    if [ "$(mount | grep "on $isoMountPoint")" != "" ]; then
  
      umount "$isoMountPoint"
  
    fi

    rmdir "$isoMountPoint"
    
  fi
  
  if [ -f "$sfsWorkingDirectory" ]; then
  
    rm -r "$sfsWorkingDirectory"
    
  fi
  
  if [ -f "$initramfsWorkingDirectory" ]; then
  
    rm -r "$initramfsWorkingDirectory"
    
  fi
  
  if [ -f "$isoWorkingDirectory" ]; then
  
    rm -r "$isoWorkingDirectory"
    
  fi
  
  if [ -f /tmp/moo ]; then
  
    rm /tmp/moo
    
  fi
  
}

export gui='
<window title="Moo 003" allow-grow="false"> 

  <vbox>
    
    <text><label>Welcome to the Moo remaster tool.</label></text> 
    
    <frame Technical Stuff>

      <hbox>
    
        <text><label>The Puppy ISO to remaster:</label></text>
      
        <entry accept="file" >
          <default>"'$originalIso'"</default>
          <variable>originalIso</variable>
        </entry>
      
        <button>
          <input file icon="gtk-file"></input>
          <action type="fileselect">originalIso</action>
        </button>

      </hbox>

      <hbox>
    
        <text><label>A working directory (at least 512 MB free):</label></text>
      
        <entry accept="directory">
          <default>"'$workingDirectory'"</default>
          <variable>workingDirectory</variable>
        </entry>
      
        <button>
          <input file icon="gtk-file"></input>
          <action type="fileselect">workingDirectory</action>
        </button>

      </hbox>
      
      <hbox>
    
        <text><label>A directory with PETs to slipstream (optional):</label></text>
      
        <entry accept="directory">
          <default>"'$petsDirectory'"</default>
          <variable>petsDirectory</variable>
        </entry>
      
        <button>
          <input file icon="gtk-file"></input>
          <action type="fileselect">petsDirectory</action>
        </button>

      </hbox>
       
      <hbox>
    
        <text><label>A directory with stuff to copy to the main SFS (optional):</label></text>
      
        <entry accept="directory">
          <default>"'$stuffDirectory'"</default>
          <variable>stuffDirectory</variable>
        </entry>
      
        <button>
          <input file icon="gtk-file"></input>
          <action type="fileselect">stuffDirectory</action>
        </button>

      </hbox>     
      
    </frame>
    
    <frame The Puplet Information>
    
      <hbox>
      
        <vbox>
    
          <text><label>The puplet name:</label></text>
      
          <entry>
            <default>"'$pupletName'"</default>
            <variable>pupletName</variable>
          </entry>
     
        </vbox>
 
        <vbox>
    
          <text><label>The puplet prefix:</label></text>
      
          <entry>
            <default>"'$pupletPrefix'"</default>
            <variable>pupletPrefix</variable>
          </entry>
     
        </vbox>
 
        <vbox>
    
          <text><label>The puplet version:</label></text>
      
          <entry>
            <default>"'$pupletVersion'"</default>
            <variable>pupletVersion</variable>
          </entry>
     
        </vbox>
      
      </hbox>

    </frame>
		
	<hbox>
    
      <text><label>Location for the remastered ISO:</label></text>
      
      <entry>
        <default>"'$isoDirectory'"</default>
        <variable>isoDirectory</variable>
      </entry>
      
      <button>
        <input file icon="gtk-file"></input>
        <action type="fileselect">isoDirectory</action>
      </button>

    </hbox>
    
    <hbox>
    
	  <button>
        <label>Remaster</label>
        <action>remaster</action>
      </button> 

	  <button use-stock="true" label="gtk-quit">
        <label>Exit</label>
        <action type="exit">EXIT_NOW</action>
      </button> 

    </hbox>
          
  </vbox>      

</window>'

gtkdialog3 -p gui
Here's a screeny of Cow 001, an example puplet ... 431 with pwidgets, Bones and the Stardust icon theme. Works just fine, it's moo-001.iso and moo-001.sfs, and the save file is moo too :D
Attachments
moo-003.png
(47.61 KiB) Downloaded 1127 times
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#17 Post by sc0ttman »

Looks great... Just a few questions...

Moo will not change the version number, sfs prefix or puplet name on my puppies..

Because as mentioned, Puppy 4.2 (all Unleashed puppies, I guess) don't have 'DISTRO_SPECS'..

(Maybe it's just a TurboPup thing though... Anyone confirm this?
Cos strangely, 214X has DISTRO_SPECS..
but ttuuxxx changed it so much, I don't know if thats normal..)

So...

1. I still need to be sure of the correct method used in 4.2 and under (Unleashed puppies) to set distro name?


2. I want to be able to change sfs prefix, but methods seem to differ in <4.2 and 4.3>

The sfs prefix in the 4.2 init script is hardcoded to 'pup_', is this the same in all Puppies?
Or is the prefix value (in the init script) now taken from DISTRO_SPECS, as your code suggests?


About version numbers:

Actually, in Woofy, I will simply leave the version number unchanged from the base..
I don't think its right to change the version number - they are not new versions built from nothing, only puplets..
People could remaster a 4.2 iso, and call it 431, 433, or even 503, just to be first..
I dont want to contribute to even more confusing puppy version numbers.. :wink:


Finally..

I'm 99% sure that my defaults-changer will just need a prefix added to the file paths to work on an extracted sfs...
I'm doing it now.. At least that should be nice and quick :)
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

#18 Post by Iguleder »

I think 2.14x has DISTRO_SPECS because ttuxxx took many scripts from Woof ... they determine the version number and distro name according to that file.

I've noticed some stuff use /etc/puppyversion ... like pwidgets. I added that to Moo already.

Try to take a look in the 4.2.1 init scripts (in /etc/rc.d) and see how they detect the distro name and version. Maybe it's fixed, so you'll need some sed work.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#19 Post by sc0ttman »

updated to version 0.3.. see main post (thanks lguleder!)

themes and default apps now can be changed...
That all works great..


still gotta do the distro name and sfs prefix for 4.2, then i'll add the DISTRO_SPECS stuff...
and add a splash message before the sfs is created.. :roll:

then i'm done with it.. :lol:
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

User avatar
sc0ttman
Posts: 2812
Joined: Wed 16 Sep 2009, 05:44
Location: UK

#20 Post by sc0ttman »

Would it be a good idea to have a list/dir of bugfixes to be applied to the remastered sfs?
Perhaps Woofy could check for the version and apply fixes for that version...

.. Such as replacing old system files with updated ones, searching for bugs and replacing with updated code...

For example, Patriots clean unmount pup save file fix, updated init script?

I'd like Woofy to be able to bring remastered puplets 'up to date' a litte bit, in terms of bugfixes..

Just a thought...

But then, only 7 downloads, so I guess no one cares! :D
Last edited by sc0ttman on Tue 29 Jun 2010, 07:09, edited 1 time in total.
[b][url=https://bit.ly/2KjtxoD]Pkg[/url], [url=https://bit.ly/2U6dzxV]mdsh[/url], [url=https://bit.ly/2G49OE8]Woofy[/url], [url=http://goo.gl/bzBU1]Akita[/url], [url=http://goo.gl/SO5ug]VLC-GTK[/url], [url=https://tiny.cc/c2hnfz]Search[/url][/b]

Post Reply