Auto-build a Puppy iso; single script with optional gui

A home for all kinds of Puppy related projects
Message
Author
wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

makepup version 0.1.4 uploaded

#241 Post by wiak »

makepup version 0.1.4 uploaded.

Changes ver 0.1.4:


Added UbuntuArtful

Fixed order of UbuntuTahr and UbuntuXenial

Haven't had time to test. Please let me know if any problems.

EDIT: Please note that though arm is included as an option in the gui menu, that is just a placeholder - arm is not currently supported in makepup (you need to use woof-CE manually for arm builds).

User avatar
OvrMaHd
Posts: 14
Joined: Fri 10 Nov 2017, 05:07

#242 Post by OvrMaHd »

Oh Thank You,
I am at such a loss for term cmds but learning, The forum is so wonderfull, today will try unsquashing, last efforts on opening dvd-linux iso took 23 trys before success
Will follow this thread and report progress
Ovr

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#243 Post by wiak »

Had to re-upload makepup 0.1.4 because I realised Artful Pup had only been created for x86 (i.e. 32bit version) not 64bit. Hence makepup user has to choose a different release number from the gui depending on whether they are building a 32bit or a 64bit ubuntu (since 1 gives Artful when building 32bit x86 ubuntu pup whereas 1 gives tahrpup when building 64bit x86_64 ubuntu pup).

Please re-download makepup if you are previously downloaded ver 0.1.4 before I posted this message.

wiak

User avatar
OvrMaHd
Posts: 14
Joined: Fri 10 Nov 2017, 05:07

#244 Post by OvrMaHd »

Thank You,

Got it, maybe some time lapse for feedback from me, juggling resposibility, LOL

Ovr

User avatar
OvrMaHd
Posts: 14
Joined: Fri 10 Nov 2017, 05:07

#245 Post by OvrMaHd »

Thank You,

Got it, maybe some time lapse for feedback from me, juggling resposibility, LOL

Ovr

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#246 Post by mistfire »

Hi @wiak is it possible to add these the following features on your script?

1. Set a default desktop environment.
For example if I want xfce environment for my pup to build. The script will download the entire suite of xfce desktop environment. If I select none then the DE components of puppy will not be included, Otherwise the jwm+rox desktop environment will be the default desktop. Also for JWM, ICEWM, or Desktop Environment without desktop let the user decide what will be their filemanager, whether Rox, spacefm, or PcmanFM

2. Configurable SFS compression settings. Let the user specify sfs compression if they want more compact pup by selecting block size from 128k-1M. Also the compression method whether gz, xz, or lz4

3. Allow to use initrd from other puppy. If the initrd is specified just edit the DISTRO_SPECS file and recompile the initrd

4. Allow to import kernel file and kernel modules from other puppy live cd. This will lessen the build process.

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#247 Post by wiak »

mistfire wrote:Hi @wiak is it possible to add these the following features on your script?
All your suggestions would be nice mistfire. However... makepup is just a simple frontend to woof-CE itself. If the facilities you would like (and they would be good) were available from woof-CE functions, they could no doubt be added to makepup.

wiak

mistfire
Posts: 1411
Joined: Wed 05 Nov 2008, 00:35
Location: PH

#248 Post by mistfire »

@wiak well in that case just apply the features little by little. Selectable block size and selectable compression algorithm on creating sfs is the easiest to implement. Its the best to start with.

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

#249 Post by wiak »

Hi mistfire,

My point is that makepup is no more really than a simple front-end to the woof-CE build system. I'm not intending or trying to make it the build system itself - it isn't even included as part of woof-CE. The creation of the sfs and so on are done by the scripts within woof-CE so the people creating these are the ones who would add alternative compression functionality and so on. That doesn't mean that an external program such as makepup couldn't intervene in the process once woof-CE scripts are downloaded. But I myself don't feel that is the best place to add or modify woof-CE functionality (though, to some extent, it could be done) - that would really just be a hack since woof-CE is the place woof-CE developments are continually being made - i.e. you could ask for same functionality additions, but on the woof-CE development thread would be my suggestion.

Alternatively, I am happy for anyone to fork makepup with a view to making it more than a front-end only for woof-CE - indeed fork isn't necessary: anyone who would like to take over makepup development is welcome - I'm kind of busy of other things just now, so that would actually suit me.

It has to also be understood that woof-CE hasn't been designed for any auto-create front-end in mind; it's not as if there is any published woof-CE API - so any change in woof-CE (for example, when Artful-Pup became part of woof-CE offerings) can stop makepup working. It is easier in such an environment to keep makepup as simple as it can be so more easily adapted to changes in woof-CE itself. So best of all would be for woof-CE itself to slowly be modified with a front-end API in mind - easier to keep both parts in sync then.

I'm just a regular murga forum member; not a Puppy Linux 'Steward' of any sort. I've never requested or been granted any Puppy git or repo access. I am in no way myself a part of the woof-CE development team, who may prefer an entirely different front-end approach to building Pups. As someone simply interested in developing new apps or systems (sometimes, when I'm in the mood or it suits me), I just wanted to offer something simple for woof-CE beginners (or as a quick-auto-build convenience).

wiak

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

makepup version 0.1.5 uploaded

#250 Post by wiak »

makepup version 0.1.5 uploaded.

Changes ver 0.1.5:


Changed name UbuntuArtful to UbuntuPupBB

Haven't had time to test. Please let me know if any problems.

EDIT: Please note that though arm is included as an option in the gui menu, that is just a placeholder - arm is not currently supported in makepup (you need to use woof-CE manually for arm builds).

wiak

User avatar
peebee
Posts: 4370
Joined: Sun 21 Sep 2008, 12:31
Location: Worcestershire, UK
Contact:

#251 Post by peebee »

Thanks - and apologies - I had meant to alert you to this change - but great that you noticed it for yourself. Cheers!
ImageLxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64

User avatar
davids45
Posts: 1326
Joined: Sun 26 Nov 2006, 23:33
Location: Chatswood, NSW

Numbered lists of kernels

#252 Post by davids45 »

G'day wiak,

I thought I'd do a few new makepup Pups after a six-months break from DIY Puppying.

I have replaced my make-pup-0.1.2 with 0.1.5, and made a couple of Pups with it. But I'm stuck trying to change the defaults in makepup.conf.

Between my 'boy-looks' and my 'senior moments' :oops: , I cannot find the latest listing of the numbered kernels - to edit the conf file.

I'd like to do a Bionic or two but can't find any 'bionic' listing in the huge-kernels drop-down menu of the gui. There are 31 kernel options (twice?) but none have bionic or artful in their name.

Thanks for any help.

David S.

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#253 Post by greengeek »

Hi Wiak, i just became aware of this project as a result of smokey's comments in the newsletter. Fascinating stuff! Unfortunately I am too far behind the 8 ball to become proficient so i wondered if i could chuck into the mix the first thought that came to my mind as I read the first few posts...

This project seems to be about assisting pup users to build an iso that represents the best pup for their needs.

I have often wondered if it might be possible to achieve something similar by using an "opposite" strategy. ie; instead of configuring a build script (as I think makepup is doing) and pulling all the desired building blocks together - start instead with a fully configured pup (all driver modules, libraries, wifi firmware etc etc) then after boot run a script ("unmakepup" comes to mind) to strip out all of the wifi fware etc that has not been used during the boot process (or first usage session) and produce a shrunken iso that represents the smallest iso that is capable of booting and running on that hardware.

You don't need another project of course (although I know you could achieve what I have been thinking about) - but I just wanted to throw an idea into the brainosphere.

Now I will get back to reading the rest of the thread...
:-)

User avatar
peebee
Posts: 4370
Joined: Sun 21 Sep 2008, 12:31
Location: Worcestershire, UK
Contact:

Re: Numbered lists of kernels

#254 Post by peebee »

davids45 wrote:G'day wiak,

I thought I'd do a few new makepup Pups after a six-months break from DIY Puppying.

I have replaced my make-pup-0.1.2 with 0.1.5, and made a couple of Pups with it. But I'm stuck trying to change the defaults in makepup.conf.

Between my 'boy-looks' and my 'senior moments' :oops: , I cannot find the latest listing of the numbered kernels - to edit the conf file.

I'd like to do a Bionic or two but can't find any 'bionic' listing in the huge-kernels drop-down menu of the gui. There are 31 kernel options (twice?) but none have bionic or artful in their name.

Thanks for any help.

David S.
Hi David

I haven't loaded any kernels used in artful / bionic up to ibiblio - which probably explains why they're not in the list. The set on ibiblio is getting a bit "long in the tooth" now but there are kernels in many places with links available on the forum - I don't know if wiak's tool is able to make use of these or not - but in a traditional woof-ce build you just put the kernel you want to use into the huge_kernel folder.....

The name of a kernel is purely that - just a name - what really matters is the huge config file which defines which modules are included and what firmware is included. Sometimes the name gives a clue as to which build the kernel was first used in.

Cheers
peebee
ImageLxPup = Puppy + LXDE
Main version used daily: LxPupSc; Assembler of UPups, ScPup & ScPup64, LxPup, LxPupSc & LxPupSc64

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#255 Post by nosystemdthanks »

great idea. this was sort of the idea around refractahrpup, except that one mixed two isos together instead of building from woof-ce

i tried woof-ce, i thought it should be more like this makepup idea:

automatic by default-- lots of options that are... optional.

i consider this its own class of tools-- youve got makepup, refractahrpup, olpc-builder (builds olpc platform automatically from ubuntu.)

and the best part is, people can download custom distributions without distributing isos. which means that if you make a small change, people dont have to download the entire iso again-- they can just run the program and (if most of it is cached) download the part that has changed.

wiak
Posts: 2040
Joined: Tue 11 Dec 2007, 05:12
Location: not Bulgaria

Re: Numbered lists of kernels

#256 Post by wiak »

peebee wrote:The set on ibiblio is getting a bit "long in the tooth" now but there are kernels in many places with links available on the forum - I don't know if wiak's tool is able to make use of these or not
Yes there is a button on the gui that opens a folder that the user simply needs to drop a huge kernel into. makepup looks after later transferring that kernel into the huge kernels directory peebee mentions.

wiak

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#257 Post by wanderer »

hi wiak

just a question

could your script be used to build (as a default setting)
a super tiny woof-ce puppy
with just the absolute minimum to start
that is very fast to build

I think a lot of people
would like to start out very simple
so that it would be easier for them to learn the woof-ce system

the 2 biggests impediments for me were
complexity
and the time it took to build each iso

wanderer

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#258 Post by nosystemdthanks »

wanderer wrote: the 2 biggests impediments for me were
complexity
and the time it took to build each iso
yeah i gave up on woof-ce rather quickly. it wasnt just the complexity, i was also being lazy. thats why i think this is such a great idea.

whenever its possible to have sane defaults that allow the inexperienced to "just run it and get a result" before learning how to to tweak the results, i think youve got a winner.

could your script be used to build (as a default setting)
a super tiny woof-ce puppy
with just the absolute minimum to start
that is very fast to build

I think a lot of people
would like to start out very simple

i would be very tempted to use the settings for minimal if they were available. however, i think more people would want "full" or at least "basic" (more than minimal) to be the default.

if you go this route, you dont technically need to have "profiles" as a feature. but imagine if you had that.

imagine if you built into this, a variety of profiles that you could select very easily-- and optionally-- by name:

basic (medium)
minimal
full (dvd required?)

i mean this could become a very exciting new way to build puppy, where instead of making an iso you could just write a profile and then put it on the forum (or pastebin.)

but you wouldnt have to write a profile unless you wanted to-- because you could select one of the profiles thats included.

but you wouldnt have to do that either unless you wanted to-- because wiak would choose whatever profile was the best default, unless you selected one.

if i had designed everything about puppy (years later, after all the hard work was already completed) this is how i would do it. note that in the late 1980s or early 90s i said "it would be so cool if we could have programmable cpus that could behave like a motorola or intel chip."

i didnt think it was possible (commercially) but we have those chips now. and i think the future is programmable distro building. you can share iso files, but you can also share a text file that says how the iso should be built.

set it with all the effort of starting the wash, and come back to a brand new iso file. wave of the future-- but partly inspired by woof-ce for sure.

i mean everything ive done to remaster was inspired by woof-ce, actually. wiaks script is even closer to what i was thinking. so yeah i will throw these ideas around, but i dont expect wiak to use them. very cool if he does!

i first proposed the idea of a small/medium/large puppy about 10 years ago; today i could actually produce it. back then, sfs was magic and (i was quite the noob) losetup was like the dark arts.

but just based on this thread, i believe wiak could do it better than i would. and like i said: im lazy. the reason i made my remaster script automatic is that i dont want to go to the trouble of remastering the usual way. this communitys attitude towards remastering (and fighting unwanted complexity) is the primary attraction for me. i dont think any distro community (ever) is more devoted to remixing.

one of the coolest things about profile-based building would be its ability to bring back older, favourite versions. obviously no profile would perfectly recreate every aspect of an older version. for nostalgia, for demonstration, for more practical uses even, it would make it easier to maintain and approximate your favourite older versions of puppy.

i was a fan of puppy 2.x. one of the features was the 2.x kernel. if i made a profile for that version, it would probably not use the same kernel, it would use a newer one (and lose one of the advantages of that older version. but gain some new advantages.) but if the goal was "an update of good old 2.x" that would be much more possible and practical this way.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#259 Post by wanderer »

yeah profiles

that's a great idea


wanderer

User avatar
nosystemdthanks
Posts: 703
Joined: Thu 03 May 2018, 16:13
Contact:

#260 Post by nosystemdthanks »

it sounds really complicated, but how we would get profiles isnt:

1. first hook a few options in the existing script to make it so you can have a "minimal" and "regular" build just like you want.

2. wiak can pick whether regular or minimal is the default profile, so if one isnt selected then you get the default.

3. make it you can choose either profile from the gui or without it.

4. gradually add features that each profile can use. like maybe you want the profile to be able to select wm and wallpaper. so you add those.

5. i wrote a program language with nearly a 100 commands this way. just adding a couple features at a time, youd be amazed what it can become. still, no one is saying wiak has to do this.
[color=green]The freedom to NOT run the software, to be free to avoid vendor lock-in through appropriate modularization/encapsulation and minimized dependencies; meaning any free software can be replaced with a user’s preferred alternatives.[/color]

Post Reply