Moo 009 - quick, advanced remastering tool

Core libraries and systems
Post Reply
Message
Author
User avatar
Iguleder
Posts: 2026
Joined: Tue 11 Aug 2009, 09:36
Location: Israel, somewhere in the beautiful desert
Contact:

Moo 009 - quick, advanced remastering tool

#1 Post by Iguleder »

Here it is, Moo, the remaster tool! :)

First of all, many thanks to sc0ttman for his work on Woofy, which inspired me to make Moo.

Moo started as an experiment, because I wanted to help sco0ttman with Woofy. Then I realized how fun this thing is ... so I made it more usable :wink:

List of features:
- Remasters quickly. Fast as Woofy.
- Allows you to slipstream PETs.
- Allows you to remove PETs: supply a PET, Moo will "detach" it. :D
- Allows you to add custom files.
- Allows you to change the GTK theme, JWM theme, icon theme and the wallpaper through a graphical wizard.
- Automatically detects your Puppy version.
- Allows you to update the Woof skeleton (all Puppy wizards, yaf-splash, the init scripts) and refreshes all help pages ... a remaster with this option enabled feels like an entirely new Woof-built distro.
- Allows you to set the default hostname and window manager.
- Full verbosity through the console (i.e if you run it through the console, you'll see a detailed log of all operations Moo performed).
- Allows you to change the distro name, version and prefix.
- Allows you to integrate Moo itself into the puplet.
- Works on any Woof-built Puppy (4.3.x, 5.x, upup, spup, dpup, apup, Quirky, whatever)!

I use it to build a puplet named Kinda Lucid Puppy, here.

Here's the log from the Moo session used to build the first version of Kinda Lucid Puppy:

Code: Select all

Creating a mount point for the ISO
Mounting the ISO
Creating the ISO working directory
Extracting the ISO
  boot.cat
  boot.msg
  help.msg
  initrd.gz
  isolinux.bin
  isolinux.cfg
  logo.16
  vmlinuz
Creating the SFS working directory
Extracting the Puppy SFS
Unmounting the ISO
Removing the ISO mount point
Adding quickpet-2.9.pet
  Extracting
  Copying files to the SFS working directory
  Cleaning the PET working directory
Adding Lupu_Utilities-5.0.1.pet
  Extracting
  Copying files to the SFS working directory
  Cleaning the PET working directory
Adding first-run-1.0-lupu.pet
  Extracting
  Copying files to the SFS working directory
  Cleaning the PET working directory
Adding browser-default-0.9-lupu.pet
  Extracting
  Copying files to the SFS working directory
  Executing pinstall.sh
  Cleaning the PET working directory
Deleting the PET working directory
Adding other stuff
Setting the puplet details
  Setting the puplet name
  Setting the puplet version
  Setting the puplet file prefix
Slipstreaming Woof
  Downloading Woof
  Extracting Woof
  Transplanting Woof files
  Generating help pages
  Generating boot splash

  - pnmcolormap messages -

  - ppmtogif messages -

Cleaning up
Listing the artwork
  Setting the icon theme
  Setting the JWM theme
  Setting the wallpaper
  Setting the GTK theme
Doing all last-minute stuff
  Adding Moo
  Running fixmenus
  Setting default window manager
  Setting the hostname
Remastering the initramfs
  Creating the initramfs working directory
  Moving over the initramfs
  Extracting the initramfs
4931 blocks
  Writing the puplet information
  Transplanting Woof files
  Creating the remastered initramfs
4926 blocks
Deleting the initramfs working directory
Cleaning up
Creating the remastered SFS

  - mksquashfs messages -

Deleting the SFS working directory
Creating the ISO
 
  - mkisofs messages -

Deleting the ISO working directory
Done.
Changelog:
001 - a stupid prototype that adds PETs, custom stuff and custom puplet name, version and prefix.
002 - silly attempt to set the themes and other experiments.
003 - better GUI, error detection, faster, artwork selection wizard.
004 - slightly improved error detection, simple validation of all selected options.
005 - superb error detection and handling, Woof slipstreaming, help page writing, better validation of selected options, much better verbosity.
006 - more verbosity, option to remove PETs, hostname and window manager settings, some minor fixes, more efficiency, generation of a new boot splash and an updated initramfs if Woof is downloaded.
007 - rewritten from scratch with better error handling and return codes.
008 - fixes for 007, some stability improvements, better clean up code, detection of SFS3/SFS4 (finally! :)), less use of [ and ].
009 - many small fixes.

BY THE WAY: USE AT YOUR OWN RISK.
Attachments
moo-009.pet
(7.38 KiB) Downloaded 1047 times
moo-008.png
Screenshot of Moo 008
(53.28 KiB) Downloaded 2596 times
Last edited by Iguleder on Sun 11 Jul 2010, 06:13, edited 9 times in total.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

big_bass
Posts: 1740
Joined: Mon 13 Aug 2007, 12:21

#2 Post by big_bass »

Hey Iguleder

nice coding !

I built a "re building tool" for myself using the 4.12 base (pre- woof)
but using slackware packages not pets I wont go into details why but keeping things simple is fine for me

TXZ can remove pre installed packages as is
that was the main reason I built it so you can easily keep it updated

its really simple if you dont use pet-get and use slackwares pkgtools

I am working on "TXZ" rebuilding a version
maybe you dont see it yet but you are too just using a different base
and different tools


what you will discover is that woof will always change breaking your code somewhere
as it becomes more advanced and complex *I would like to be wrong here but experience speaks louder and I wont win any popularity contests with that statement
but I said it anyway

*of course things could change but if they dont plan B is better than no plan


I do think your tool will be most useful to yourself as being a means to an end of tools also :D

and you should continue to refine it it will come in handy for minor edits during testing stages

the only way to maintain any type of control of the build is have your own packages then the old fashioned way tried and true
of installing packages to build the system
just as every other linux distro does it


because of the live cd and the initrd there will always be some minor extra things to take account for


its just so much easier to maintain if you have a stable package base

and thats what is needed the only thing thats needed

if you have any stuff you want to talk about you could PM me

we are walking the same road but the end goal is the same some control of things
and I passed some of the road blocks and land mines in the way

Joe
Last edited by big_bass on Thu 19 Aug 2010, 19:51, edited 2 times in total.

User avatar
Billtoo
Posts: 3720
Joined: Tue 07 Apr 2009, 13:47
Location: Ontario Canada

Moo - quick, advanced remastering tool

#3 Post by Billtoo »

I tried it out on a quirky 1.20 iso that I made with woof the other day.I had removed many apps from quirky and the iso that I made was only 78mb.I used your remastering utility today and added firefox,vlc,htop,sakura, and a few other applications.
It worked, pretty quickly too.
Good stuff! :)

EDIT:

I tried another iso that had seamonkey in it and adding firefox didn't work properly when remastering with moo.They both use a mozilla directory so I guess that caused the problem, at least it caused some sort of conflict.

The smaller iso which had pretty much everything removed works pretty well though. Vlc,firefox,sakura,dosbox,mc,nano,htop,sfs installer,streamripper,and weechat all work.
Last edited by Billtoo on Tue 29 Jun 2010, 22:06, edited 1 time in total.

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

#4 Post by Iguleder »

big_bass wrote: the only way to maintain any type of control of the build is have your own packages then the old fashioned way tried and true
of installing packages to build the system
just as every other linux distro does it
I'm not trying to reinvent the wheel and make another Woof ... but that's the next stage, I want to teach Moo how to split the main SFS from the devx ... the rest will follow :wink:

I'm doing this for fun ... as you see the result is very pleasing. I like the challenge, so I think I'll make it split dev and NLS stuff like Woof ... maybe even make it create a devx by merging the dev stuff with the devx.

Anyway, thanks for the comments, guys :P
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
smokey01
Posts: 2813
Joined: Sat 30 Dec 2006, 23:15
Location: South Australia :-(
Contact:

#5 Post by smokey01 »

Iguleder I just tried moo and it sure was fast.

I did encounter a couple of problems.

How do you add or exclude programs?

It could not find the .sfs file when booting from cd.

I did not populate all the fields in moo as it said they optional so I assume they really are not optional after all.

It would be nice to see a step by step instruction manual.

I will play more tonight.

User avatar
smokey01
Posts: 2813
Joined: Sat 30 Dec 2006, 23:15
Location: South Australia :-(
Contact:

#6 Post by smokey01 »

Just tried again. This time I pointed to my download directory where there were lots of pets, now that was a mistake as it also had lots of sfs and other types of files. The script eventually crashed but that's not unreasonable under the circumstances. Now that I have worked out how to add pets but how do I remove them from the original iso.

It would be nice to pick from a list of installed applications to remove then another list of applications to add.

Thanks

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

#7 Post by Iguleder »

Removing pets is more complicated because they're integrated into the main SFS.

I can implement some basic mechanism that takes a pet, lists the files in it and removes them, i.e you need to the supply the pet you wish to remove from the main SFS.
How do you add or exclude programs?
You can add PETs by specifying a directory with pets inside. You can't remove stuff automatically in Moo's current state. As I said, I'll add the option to remove pets by supplying them.
It could not find the .sfs file when booting from cd.
Maybe something went wrong, that cannot happen unless the remastering got totally messed up. Can you post the log?
I did not populate all the fields in moo as it said they optional so I assume they really are not optional after all.
The "stuff directory" and the pets directory are optional. If you enter some valid directory, it will use it, otherwise, Moo will skip this stage. By the way, it searches for pets in the pets directory, so I think it shouldn't crash if you put other files there too.
It would be nice to see a step by step instruction manual.
Got that. I'll write a tutorial. :)
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
smokey01
Posts: 2813
Joined: Sat 30 Dec 2006, 23:15
Location: South Australia :-(
Contact:

#8 Post by smokey01 »

Iguleder wrote:Removing pets is more complicated because they're integrated into the main SFS.

I can implement some basic mechanism that takes a pet, lists the files in it and removes them, i.e you need to the supply the pet you wish to remove from the main SFS.
If a pet is installed it can be uninstalled with PPM. What is required is a list of standard files that come with puppy so they can be uninstalled. Now there are a few files of course that need to remain, such as the kernel.
How do you add or exclude programs?
Iguleder wrote:You can add PETs by specifying a directory with pets inside. You can't remove stuff automatically in Moo's current state. As I said, I'll add the option to remove pets by supplying them.
It could not find the .sfs file when booting from cd.
Iguleder wrote:Maybe something went wrong, that cannot happen unless the remastering got totally messed up. Can you post the log?
I will have to see if I can find it.
I did not populate all the fields in moo as it said they optional so I assume they really are not optional after all.
Iguleder wrote:The "stuff directory" and the pets directory are optional. If you enter some valid directory, it will use it, otherwise, Moo will skip this stage. By the way, it searches for pets in the pets directory, so I think it shouldn't crash if you put other files there too.
That's probably why it crashed as there were txt, zip, sfs and image files in the same directory.
It would be nice to see a step by step instruction manual.
Iguleder wrote:Got that. I'll write a tutorial. :)
It doesn't need to be very detailed. Just the basics to reduce the scare factor for some.

Thanks

User avatar
smokey01
Posts: 2813
Joined: Sat 30 Dec 2006, 23:15
Location: South Australia :-(
Contact:

#9 Post by smokey01 »

Iguleder I just tried moo again. This time I was very careful to make sure I only had pet files in the directory.

Same result as before when booting the CD, it could not find the .sfs file.

I called the distro SmokeyPup with a prefix of smup version 001

The smup-001.sfs is on the CD but it could not be found during the boot sequence.

I'm using luci-205 as the base.

What is the log file called and where do I find it?

Thanks
Last edited by smokey01 on Wed 30 Jun 2010, 11:04, edited 1 time in total.

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

#10 Post by Iguleder »

There is no log file. Go to the console and run "moo". I double-checked this, Moo only extracts PETs and ignores all other files.

By the way, what kernel and file system do you use?
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
smokey01
Posts: 2813
Joined: Sat 30 Dec 2006, 23:15
Location: South Australia :-(
Contact:

#11 Post by smokey01 »

I just tried moo-006.

I used Quirky 120 as the main source.

This time it loaded the sfs file, keyboard, locale.

When it asked for the local time I pressed OK and it crashed.

error: libc.so.6 version GLIBC_2.11 not found

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

#12 Post by Iguleder »

Well, that cannot be Moo's fault, that must be one of your packages. You're trying to use packages that were compiled against a glibc 2.11.x system on Quirky, which has glibc 2.10.something.
[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

#13 Post by sc0ttman »

Hey Iguleder... Just a quick question, not gonna be on Puppy for a bit, so need a quick favour..

I have never downloaded Woof (yet)... So..

I'd like Woofy to make these changes ( found here )..
But I don't know how many are included in Woof, or how to add the Woof updates..

Also, I saw Moo-008, and so I saw that Woof has a rootfs-skeleton..

1. How many of these updates will be done by copying over the contents of Woofs rootfs-skeleton to the remastered ISO?

2. In Woofy, will it be enough to copy all contents of rootfs-skeleton to the new sfs, then run its pinstall.sh?
Will copying all of it break something?

3. I want to rebuild the new ISO to use DISTROSPECS (if not used already). Does Moo do this?
And would I need to edit the contents of initrd.gz and rebuild it?

4. I saw Woof is pretty big, will Woofy need to download Woof itself?
Or can I just use a few files from Woof, just for Woofy?

Cheers in advance, sorry to bug you about this!
[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:

#14 Post by Iguleder »

Basically, copying the rootfs-skeleton from Woof will add all the stuff that come Woof, so the answer is yes - things like init scripts, PPM and Puppy's wizards will be updated. Copying won't break Puppy totally, but maybe it won't boot because you don't remove the old skeleton, who knows. Also, maybe PPM won't work because it works differently with Woof.

And yes, you'll need to remaster the initramfs too, with DISTRO_SPECS and the initrd-skeleton thing. Take a look at the latest Moo. I no longer upload every version of Moo to this thread, instead, it comes with my puplet, here.

You'll have to download Woof for that, but I don't think adding Woof to a pre-Woof Puppy is a good idea because some things may break. You'll also have to write the DISTRO_SPECS file, because you don't have it at all.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#15 Post by abushcrafter »

Iguleder wrote:Take a look at the latest Moo. I no longer upload every version of Moo to this thread, instead, it comes with my puplet, here
I would like to have your newer versions of Moo please. For when I use it on my very customised Puppy.
[url=http://www.adobe.com/flashplatform/]adobe flash is rubbish![/url]
My Quote:"Humans are stupid, though some are clever but stupid." http://www.dependent.de/media/audio/mp3/System_Syn_Heres_to_You.zip http://www.systemsyn.com/

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

#16 Post by Iguleder »

Alright, I'll upload the latest tommorow maybe. It doesn't have anything special, just a couple of fixes.
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#17 Post by abushcrafter »

Thanks.
[url=http://www.adobe.com/flashplatform/]adobe flash is rubbish![/url]
My Quote:"Humans are stupid, though some are clever but stupid." http://www.dependent.de/media/audio/mp3/System_Syn_Heres_to_You.zip http://www.systemsyn.com/

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

Thoughts

#18 Post by abushcrafter »

  • Bug: "/etc/puppyversion" number removed but not updated.
  • Feature request: Option to bypass theme selections.
  • Bug: Does not like other SFS files in ISO.
  • Feature request: Instead of giving it a ISO. A option for just the main file system SFS and/or the initrd.gz.
[url=http://www.adobe.com/flashplatform/]adobe flash is rubbish![/url]
My Quote:"Humans are stupid, though some are clever but stupid." http://www.dependent.de/media/audio/mp3/System_Syn_Heres_to_You.zip http://www.systemsyn.com/

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

#19 Post by Iguleder »

I'm working on something BIG at the moment, sort of a Woof-like thing. I want to merge it with Moo and rewrite it from scratch as a wizard ("next next next" interface) to make it easier.

Be sure I'll upload any new Moo I write :)
[url=http://dimakrasner.com/]My homepage[/url]
[url=https://github.com/dimkr]My GitHub profile[/url]

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#20 Post by abushcrafter »

I will be keeping a eye on you :lol:.
[url=http://www.adobe.com/flashplatform/]adobe flash is rubbish![/url]
My Quote:"Humans are stupid, though some are clever but stupid." http://www.dependent.de/media/audio/mp3/System_Syn_Heres_to_You.zip http://www.systemsyn.com/

Post Reply