Sorry, there is a lot to read here. This post badly needs re-organised/re-written but not sure when I'll do that. Anyway, simple usage is to create empty build directory (on filesystem that has lots of space on it...); put makepup script into that and make it executable with chmod +x; and then run it in gui mode with makepup -g; then uncheck the -k keep previous downloads advanced option, and press "Build your pup!". It takes ages... However, after first build you can rebuild another one without having to download all the distro packages again (just specify the -k keep advanced option when running makepup -g this other time...). So handy for experimenting with different builds.
BionicPup64 is currently the default build (i.e. -t 3 -d 2 -r 1)
If instead you are building upupBB32, please note the following post from PeeBee regarding kernels for it:
http://murga-linux.com/puppy/viewtopic. ... 107#994107
I wouldn't recommend building a pup on a usb stick via usb2 interface - that takes forever (very slow), but fine on a hard drive partition in my experience.
========================================
gui has gettext dialogs so looking-for/inviting language translators and for testing.
------------------------------------------------------------------------------------
Translations for makepup gui (many thanks to the authors as listed)
Note that I'm not sure how current these translations are. Please test.
nilsonmorales: Spanish NLS for makepup, fake .tar, delete: http://www.murga-linux.com/puppy/viewto ... 250#967250
RSH (LazY Puppy): German NLS: http://www.murga-linux.com/puppy/viewto ... 032#968032
-------------------------------------------------------------------------------------
makepup can be used when you want to set up an unattended (or almost unattended) Pup build from woof-CE (woof-CE provides the distribution; makepup just automates the selection of choices and now automates addition of extra dotpets, distro-compatible packages, and kernels, without needing to remaster the iso). A nice example of using makepup's pets2add facility to add missing build libs can be found via link below (thanks davids45). Note that, since current woof-CE pet install mechanisms won't resolve dependencies it is important to include all dependency pets when using pets2add or pkgs2add. However, this makepup extra facility to bog-standard woof-CE remains very handy for installing simple Puppy gtkwialog utility pets such as weX, Precord or 'other' without needing to also remaster the iso):
http://www.murga-linux.com/puppy/viewto ... 898#968898
More details of makepup usage of other facilities here per the previous 0.1.2 version:
http://www.murga-linux.com/puppy/viewto ... 512#968512
Note that any huge_kernel tarball placed in local-repositories/kernel2add/ will be automatically used in preference to any other selected. (Note folder name changed from kernels2add into kernel2add (singular).
If more than one huge kernel tarball in local-repositories/kernel2add then script will automatically pause during 3builddistro-Z process and ask user to choose from these kernels.
Usage: Just run the makepup script in gui mode (makepup -g) from terminal at required build directory and press Build button (or select from some options first, such as default selected -k option, to keep previous downloads)!
A default versions of makepup.conf text-based config file is generated automatically if one has not already been created.
Commandline arg options override the makepup.conf file settings and if makepup gui is used the options selected there override all others.
See below for details of operation.
This version of makepup includes the ability to add your own dotpets to the build by simply drag and drop[/b] your dotpets to folder local-repositories/pets2add/ and tick checkbox makepup option -a (or --addpets) in the advanced tab of the gui. You no longer need to edit any woof-CE config files for this; makepup now does it for you automatically. Personally, I like to also tick optional checkbox for pause [-p] just in case I change my mind and want to add something else at that end-of-woof-CE-0setup stage. Same now for distro-compatible pkgs2add. Note that I don't know if any dependencies are being resolved - don't seem to be. I'll have to look into the related woof-CE code for answers to that...
Note that you need to create the directory local-repositories/pets2add/ and then simply drop the dotpets you want added to the build into that (local-repositories/ is in same dir as where makepup script is). In practice, however, you can actually let makepup create the directory for you automatically if you want (it does so as soon as it starts up).
The makepup gui now includes button to open filemanager at local-repositories/pets2add/ directory so you can conveniently drag and drop dotpets there to automatically include in your build.
If you wish, you can also still add dotpets to the build manually, using makepup --pause in makepup, as explained in below link (but not necessary anymore since this method is what makepup now automates):
Some (old, now unnecessary) details of using --pause (-p) makepup option to manually arrange adding dotpet packages to build can be found here:
http://www.murga-linux.com/puppy/viewto ... 945#967945
the makepup download is available near the foot of this post. Put a copy of the script in a Linux compatible filesystem (e.g. ext2, ext3, ext4 etc) in the directory you want to make the woof-CE build (around 4 to 5 GB free space is required - a Linux formatted usbstick would be fine, or harddrive with suitably-formatted Linux partition).
To run with gui, open terminal at the above directory (i.e. cd into it), and then:
Before running the script, remove the dummy .tar extension. Open a terminal where the script is, and make it executable with command:
Code: Select all
chmod +x makepup
Code: Select all
./makepup -g
Once you are happy with the settings in the gui, simply press button "Build Your Pup!" and then answer the couple of terminal outputted questions with y followed by Enter (to confirm) and then go and have a coffee or something whilst you wait patiently for your Pup to be built to completion. Once the scripts have finished, you should find your built Puppy in woof-out_*/sandbox3/build (as frugal install files) or as a bootable iso in woof-out_*/woof-output-*.
For details of running makepup with commandline switches see this older post:
http://www.murga-linux.com/puppy/viewto ... 761#966761
Hopefully makepup is useful if you need to upgrade your distribution with new security fixes and so on since re-running makepup with the same selections will by default download any changes packaged (and can be only changed ones) and rebuild the iso. Updating critical packages can often be difficult or impossible whilst the Puppy is actually running so makepup provides one way currently round that issue.
Disclaimer: For above upgrade scheme to work it is very important that woof branch distro developers maintain their woof-CE builds carefully (and avoid using remastering techniques) since makepup can only (currently) download what is actually provided by woof-CE. makepup may also be useful for experimenting with woof-CE builds so you don't have to sit there continually select options throughout the build process each time you want to rebuild! Not everyone will find makepup useful.
For commandline usage examples see: Some Simple one-liner Build Pup Recipes Using makepup
With makepup any distribution type of Pup can be built that is supported by woof-CE (e.g. slackware, debian stretch, ubuntu xenial, devuan, trisquel).
Please refer to the following post for numeric values for the optional commandline arguments to makepup:
http://www.murga-linux.com/puppy/viewto ... 543#965543
Before using makepup, please read all of the following carefully. The usual disclaimers apply in terms of using this script at your own risk, though I can't imagine any major issues...
NOTE WELL: At the current stage, the attached "makepup" script needs to be run on a relatively recent Puppy Linux system (not on any other type of Linux system). I developed and tested it on my PuppySlacko64 version 6.3.2 system. No devx needs to be loaded though for some woof-ce-derived distros you may end up with smaller iso if devx is loaded - depends if any binaries need stripped (the program that can do binary strip is in devx).
The default config builds a woof-CE slacko-6.9.9.9.iso from woof-CE-testing branch (using default hugekernel huge-4.4.70-s32-700_PAE) and also by default requires no user input or interaction once the initial "Enter y to continue, any other key to quit" questions are answered. However, the script should basically build from any branch and for any distro once supplied with appropriate commandline options or makepup.conf configuration file.
The directory you run the script from should be on a Linux filesystem (e.g. ext2, ext3, or ext4) of sufficient space to build the new Puppy. The filesystem I used it on had 5GB free and that proved sufficient to complete the build. I don't at this stage know what minimum free space would be sufficient.
Using:
No script installation is required. Simply download the "makepup.tar" script and copy it into the directory you wish to build the Puppy iso in. You do not need to download or clone woof-CE; the script takes care of all that for you.
Before running the script, remove the dummy .tar extension. Open a terminal where the script is, and make it executable with command:
Code: Select all
chmod +x makepup
Code: Select all
./makepup
Notes:
Once the script has finished you will find the bootable iso in directory:
woof-out_<main_distro_name>/woof-output-<derived_distro_name>
Per standard woof-CE practice, the script also provides the files required for a frugal install separately in directory:
woof-out_<main_distro_name>/sandbox3/build
NOTE WELL that the script does present the usual woof-CE build script dialogs, some of which may appear on the screen for a few seconds. But by default, you should not answer the questions manually because the makepup script will by default do that for you. The first build takes a long time, since all woof-CE files are being downloaded from woof-CE github, so be patient!... Later builds can use the already downloaded files so bandwidth is saved and build time much less.
The script has only been briefly tested (since tests take a long time because of the amount of downloading involved in building the iso) and should be considered alpha at this stage.
If you want to try modifying the default script yourself, be warned that you should brush up on sed first (!) since it uses sed as an alternative to the likes of tcl expect for auto dialog answering (tcl expect would have required a big download but the makepup script could easily be modified to use that as an alternative).
Although, by default, no separate config files are required, makepup can utilise two separate config files, which need to be stored in the same directory as the makepup script itself: makepup.conf and makepup_extra.conf. The makepup_extra.conf file stores a list of the special woof-out_*/rootfs-packages extra you might also want to install.
You can use option -p (--pause) to pause the script at a convenient time to modify the list of optional extra packages you might want to install (which you will add to makepup_extra.conf config file). To do that you would run the script to include the option like so:
Code: Select all
./makepup -p [any other optional args you like]
If you also want a devx squashfile to be created, use option --DEVX (or -D) on the commandline (note it is capital D).
There are some other makepup options. You can view brief usage with command:
Code: Select all
./makepup -h