Woofy 0.91
Woofy 0.91
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
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 2201 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.
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
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
- 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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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
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!
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]
[url=https://github.com/dimkr]My GitHub profile[/url]
Thanks jemimah..jemimah wrote:In Puppeee I added fixmenus to /etc/rc.d/rc.update to get around this problem.
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
...
Code: Select all
chroot /
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...
[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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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
You can use this ... here's a simple algorithm:
Btw, I have another suggestion, a fixes directory, just a directory with stuff to add after everything ... for manual tweaks.
Code: Select all
#!/bin/sh
echo "before chroot"
chroot /mnt/sda6 \
grep --version | head -1
echo "after chroot"
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
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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 ...
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
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.
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
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."
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]
[url=https://github.com/dimkr]My GitHub profile[/url]
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?
And I'm definitely stealing some of its features
Is unsquashfs better than mounting the sfs file?
Thanks for this.. Gonna try it out soon
Is the above better than using dir2sfs? I assumed dir2sfs was present in all Puppies..
Again, is the above better than using dir2iso?
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..?
I just went in and changed the wallpaper picture, using ROX.
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?
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?
Thanks very much.. Much nicer, cleaner code than mine..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 ...
And I'm definitely stealing some of its features
Code: Select all
unsquashfs -d "$sfsWorkingDirectory" "$isoMountPoint/$sfsFileName" > /dev/null 2>&1
Code: Select all
if [ -f "$sfsWorkingDirectory/pinstall.sh" ]; then
echo " Executing pinstall.sh"
chroot $sfsWorkingDirectory bash pinstall.sh
rm $sfsWorkingDirectory/pinstall.sh
fi
Code: Select all
mksquashfs "$sfsWorkingDirectory" "$isoWorkingDirectory/$pupletPrefix-$pupletVersion.sfs" -all-root
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"
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
}
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..?
Woofy allows the manual editing of the sfs before it's mounted..By the way, how did you change the themes in that example Woofylet you made?
I just went in and changed the wallpaper picture, using ROX.
That's a shame.. What was the issue?It's impossible to run the icon/gtk/jwm theme chooser from within chroot ...
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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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 ...
I think it should be faster ... here you don't have to mount it, just extract it.Is unsquashfs better than mounting the sfs file?
I really don't know what dir2sfs does ... I just like it barebones, I use mksquashfs in my own distro for everything ...Is the above better than using dir2sfs?
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.Again, is the above better than using dir2iso?
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]
Add it to the part that runs in Pupmode 5, after updating the network-drivers-list, gtk-icon-cache, and desk-icons.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..
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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]
[url=https://github.com/dimkr]My GitHub profile[/url]
that sounds great.. and thanks...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
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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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.
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]
[url=https://github.com/dimkr]My GitHub profile[/url]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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)
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
- 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
- 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]
[url=https://github.com/dimkr]My GitHub profile[/url]
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..
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
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..
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]
- Iguleder
- Posts: 2026
- Joined: Tue 11 Aug 2009, 09:36
- Location: Israel, somewhere in the beautiful desert
- Contact:
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.
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]
[url=https://github.com/dimkr]My GitHub profile[/url]
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..
then i'm done with it..
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..
then i'm done with it..
[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]
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!
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!
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]