alternative puppy build system

A home for all kinds of Puppy related projects
Message
Author
wanderer
Posts: 1098
Joined: Sat 20 Oct 2007, 23:17

#161 Post by wanderer »

hi musher0

try the devuan puppy in the repository
and use the devuan build tarball

it boots fine
but of course has a lot of work that needs to be done

remember this is to be an alternative to woof-ce
so i assume it will take a little effort to complete

wanderer

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#162 Post by jamesbond »

Some clarifications for woof-next in no particular order:

1. "pkglist" aka "package list" aka the list of packages that will be assembled into the puppy.sfs:
--> located in your workdir, the filename is "basesfs"

2. The directories in the tarball:
- builder -> builder scripts (builders for .deb and .txz packages), scripts to make packages (.txz and .deb), scripts to prepare a repository which you can "ftp-upload" to somewhere else
- kernel-kit -> supposedly to compiler kernel, this is part of Woof-CE proper; I didn't modify it for woof-next and I don't use it.
- woof-arch -> arch-dependent programs (mostly compiled binaries, there are ones for x86, x86_64, arm)
- woof-code -> arch-independent programs (mostly scripts, like SNS, etc)
- woof-distro -> specification to build based on a particular parent distro. Contains default pkglist (basesfs) and location of the repository URL

woof-code is most interesting. In it, you will find:
- boot -> this is puppy's initrd in "exploded" form
- kernel-skeleton -> original Woof-CE hacks for firmware loading, not used (the "huge kernel" mode replaces this)
- rootfs-packages -> contains packages in "exploded" form (=dirs + pinstall.sh script).
- rootfs-skeleton -> puppy's scripts
- woof2-scripts_and_files -> Woof-CE original build scripts, not used, left for reference purposes

what's inside "rootfs-packages"?
These are the places where you can add your hacks and custom stuff, if you don't want to build a proper package for it. What are the current ones?
- debian-setup -> contains adaptation that must be done to debian-based distros to make it boot/work.
- pthemes -> should be obvious what this is
- rox-filer-data -> should also be obvious
- slack-setup -> contains adaptation that must be done to make slackware-based distros to make it work/boot

These "rootfs-packages" are added into the build chroot when you use the "directive" %addpkg in the pkglist. For example, for in the pkglist for devuan, you will see "%addpkg debian-setup" which means import and install "debian-setup" package which is located in the woof-code/rootfs-skeleton/debian-setup package.

3. Some clarifications for the commands used in pkglist. Note that different parent distro supports different commands; e.g. debian-based pkglist has "%depend" command which activatest dependency-tracking (e.g. installing a package will also install its dependencies); while slackware-based pkglist doesn't have this command because, well, slackware packages do not have dependency tracking encoded into it.

Common commands:
%include -> include another file
%makesfs -> run mksquashfs and create SFS of chroot

%repo -> specificy additional repositories (obsolete, this should be done by updating repo-url instead)
%import -> copy over a given directory to chroot (similar to %addpkg, but does not support pinstall.sh and the copy is not registered as a package)
%addpkg -> copy over a given directory to chroot, run pinstall.sh, and record this as a "package" (which means they will be visible by the package management tools and can be un-installed)
%reinstall -> re-install a given package
%remove -> remove an already installed package (perhaps pulled automatically by dependency, etc)

%addbase -> install rootfs-skeleton (puppy scripts)
%bblinks -> install busybox symlinks (obviously you must already install busybox before this can work)
%cutdown -> try to reduce size by moving components outside the main chroot to elsewhere

%symlink -> make a symlink
%rm -> remove a file
%mkdir -> make a directory
%touch -> create an empty file
%chroot -> run a given common inside the build chroot
%exit -> stop processing pkglist here and ignore the rest of the file (useful for debugging)

--- additional commands for debian-based distro only:
%lock -> lock package so they cannot be updated
%depend -> turn on dependency tracking
%nodepend -> turn off dependency tracking
%pkg_by_prio -> install packages given by the named "priority" (or category).

%bootstrap -> install packages using simulated dpkg
%dpkg -> install packages using dpkg (dpkg must be installed in host system)
%dpkgchroot -> install packages using dpkg installed in chroot (obviously you must already install "dpkg" package before this can work)
%dpkg_configure -> run dpkg-reconfigure

4. Under the workdir, there is a repo-XXX directory. Under this directory, there is a file called "pkgdb". This is the file that contains the names of all packages in the repositories. If you, for example, need to add a package but you're not sure what is the exact name, look into this file. The file contain lines separated by a vertical bar ("|"), the package name is the first filed. E.g you see this:

Code: Select all

acpi-support|0.142|acpi-support_0.142_i386.deb|http://archive.ubuntu.com/ubuntu/pool/main/a/acpi-support/acpi-support_0.142_i386.deb|optional|admin|d76d0009b493c61694b6ec5a85ef0fbf|acpid,
The package name is "acpi-support".

Enjoy.

========================

I was wrong to say that the scripts won't build trusty packages. I was wrong to say that trusty repos were deleted. (They were moved, and woof-next's repo-url have been updated to point to these archive repos). Perhaps I just had a bad network connection at that time; because now I have just re-run trusty build and it builds and works.

I have added some workarounds and more packages to trusty build so that SNS now works (for wired). I have added wpa supplicant and wireless-tools too, but I don't know if they work because I test in qemu which does not emulate wifi. I have added the same modification for devuan too and it works as well. I have applied the same modification for slackware too.

Please re-download the tarball from https://github.com/puppylinux-woof-CE/w ... ext.tar.gz, or you can see the changes from https://github.com/puppylinux-woof-CE/w ... /woof-next

==========

Note: Let me repeat again: building Puppy from parent distro requires modifications. Some of the modifications are generic, some are specific to each distro, some are specific to a distro version.

woof-next is an old project, a dead project. Its puppy scripts were dated from 5 years ago; and the modifications I've applied were applicable to distro versions from 5 years ago --> this is true either of slackware (14.1), ubuntu (trusty), and debian (sid). I have recently added devuan-ascii for curiosity sake, and to my pleasant surprise it would build only very little change (change of "udev" to "eudev"); but please do not always assume that this is the case. Especially, if you're building from "debian sid" which is a rolling release (=its content always changes, "sid" today is not the same as "sid" 5 years ago), then don't expect an immediately working build.

Similar comment applies if you try to build from e.g. bionic. It will build (as in, it will make the SFS for you) but it may or may not work because you're specifying the wrong package (package got renamed), or because you need new modifications. Until you supply a better package list, and modify the scripts to make it work - then it won't.

Short story is that, as I have written elsewhere (see my comment that s243a saved from the other deleted thread), if you are expecting a build script that produces fully working puppy - then woof-next is not for you. However if you think that it can help you achieve your goal, and you're prepared to spend some effort to make it work; then ask away.
fredx181 wrote:P.S. I'm busy myself with creating a build system using similar as above for Devuan(Dog) "beowulf", will probably share soon.
Inspired by all the talk recently about building a system, so thanks !
You are welcome. The more the merrier.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

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

#163 Post by wanderer »

hi jamesbond

thank you once again
for this masterpiece
and for all your help getting it going

it already builds a working devuan
just needs tweaking
as you say
we just need to put the right instructions in

once we learn it
anyone can build puppies at will

and we now longer need to constantly whine
about not having a woof-ce we can use

this really is a game changer

wanderer

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#164 Post by jamesbond »

For those who want to try, follow wanderer advice above. Start with a parent distro that has been tested to work. Slackware, devuan, trusty. Then once you get the hang on it, you can try other parent distro and start modifying. Or perhaps even write new builder scripts to make it work from e.g. fedora or opensuse or alpine limux etc.

I no longer test the debian sid build because: sid is rolling release so testing is useless. My successful twst today does not guarantee your success tomorrow. E.g. i twsted sid 2015 and it no longer works now, while the trusty/slackware stuff works because they dont change.

Of course you can test with other distro too. But i suggest you learn to walk before you run. Test build with a known successful build, so when you build with your own parent dostro, you know what to do when the build fail by comparing between successful build amd the failed ones.

Good luck eveeyone.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

foxpup
Posts: 1132
Joined: Fri 29 Jul 2016, 21:08

#165 Post by foxpup »

@jamesbond

Thank you for the explanation of your build system!
Just what I needed!

I still have a question:. :oops: :)
What is the (best) way to add .pet packages?

User avatar
fredx181
Posts: 4448
Joined: Wed 11 Dec 2013, 12:37
Location: holland

#166 Post by fredx181 »

jamesbond wrote:...
fredx181 wrote:P.S. I'm busy myself with creating a build system using similar as above for Devuan(Dog) "beowulf", will probably share soon.
Inspired by all the talk recently about building a system, so thanks !
You are welcome. The more the merrier.
Thanks, for DevuanDog "beowulf" build system see here.
But again, this is not "real" Puppy (whatever it means?), the most ideal IMHO would be a merge of 'Dog' and 'Puppy', but I'm not capable to do that, oh well.. maybe it's good like it is, one way or the other...

Fred

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

#167 Post by wanderer »

hi fredx and everyone

i think this thread should be for all puppy inspired build systems
because they will all eventually merge together

for example i am using parts of corepup upupbb and woof-next
in my system

the overall idea is that an ordinary mortal
will be able to build a puppy like system

puppy will be the base
so no one will be able to say it isnt puppy
but the point is to modify and improve puppy
not just remain static

wanderer

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

#168 Post by wanderer »

hi all

i have posted my 3 initial attempts
at building a woof-next devuan puppy
in the repository on the first post

since i like really long names
they are

d1.iso
had mpaint as the only application for some reason

d2.iso
i added leafpad
and removed mpaint

d3.iso - built with jamesbonds latest woof-next today
i added leafpad and dillo
and removed mpaint

had to keep running build-sfs.sh over and over
but it finally downloaded the debs

all built and load fine
but a lot is messed up
and will need to be corrected

and no internet yet

but i will continue to build more isos until i learn the system

thanks again jamesbond

wanderer

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

#169 Post by wanderer »

hi all

i have posted jamesbonds latest woof-next tarball
in the repository on the first post
so its easy to find

i have removed the old one

wanderer

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#170 Post by jamesbond »

foxpup wrote:What is the (best) way to add .pet packages?
1. Create a folder under rootfs-packages ((e.g. "mypet" folder)
2. Extract the .pet to this folder.
3. In pkglist, add "%addpkg mypet"

---

The other way, is to convert the pet into a native package (.deb or .txz), make a repo out of it. Then edit repo-url, to add your new repo, and in the pkglist add the package (like you add packages from any repo). This is the approach that I have taken with xdialog and gtkdialog; I upload them to my own repo (I have repo for slackware and debian). This is more complicated but if you have multiple arches, in the long run this is the better way to do it.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#171 Post by musher0 »

fredx181 wrote:
musher0 wrote:I'm seriously losing patience... My initial interest being alternative widow managers...
NOT fathering abortive Puppies...

Sorry for being so frank.
Then demand your money back ! Double !
Go to court if you don't get it, "they" should pay you for all your suffering ! :twisted:
Exactly! I'm on my way to the International Office for the Protection of Puppy Linux
Users ( IOPPLU ) right after writing this line!!! :twisted:

Bureau International pour la Protection des Utilisateurs de Puppy Linux ( BIPUPL ),
in French. :lol: The acronym in French sounds like an organization for bi-polar
syndrome sufferers. That's intentional. That's because the Puppy devs themselves
are bi-polar: sometimes they are in a helping mood and sometimes not. :twisted:
Last edited by musher0 on Sun 12 May 2019, 00:21, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#172 Post by musher0 »

wanderer wrote:hi musher0

try the devuan puppy in the repository
and use the devuan build tarball

it boots fine
but of course has a lot of work that needs to be done

remember this is to be an alternative to woof-ce
so i assume it will take a little effort to complete

wanderer
Nonsense, wanderer ! ;) I'm not encroaching on your territory! :lol:

The next "really intelligent" move is rather:
how do we isolate the "booting system" ( including straps, zippers and / or laces )
that works in the devuan build, and "graft it" to the other builds, so that ALL builds
boot correctly.

Do you see the difference? :lol:

~~~~~~~~~~~~~~~

It may not even be the "booting system", for the Puppy-Next-Sid. I tested booting
it with gyro's new zip procedure for installing to thumbnail drives, and it boots -- but
hangs at the "switchroot". Same thing if booting from CD.

Could it be that jamesbond forgot an argument when using chroot for this build?
Derivative question:
Do you think using the water drop torture on jamesbond will get us the solution we
need to this problem? :twisted:

BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

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

#173 Post by wanderer »

hi musher0

you would not be encroaching on my territory
if you used devuan
i would appreciate the help

besides i think devuan is a good choice as a base long term
since they dont like systemd
they should stay closer to the classic linux ideal
of modularity

wanderer

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#174 Post by jamesbond »

musher0 wrote:It may not even be the "booting system", for the Puppy-Next-Sid. I tested booting
it with gyro's new zip procedure for installing to thumbnail drives, and it boots -- but
hangs at the "switchroot". Same thing if booting from CD.

Could it be that jamesbond forgot an argument when using chroot for this build?
Here is pure speculation. The sid build will pull in systemd; but not all of its libraries. After switchroot, the kernel will attempt to run "init" (which is systemd) and it just dies. Note that systemd init will not even bother to run the usual puppy initscripts.
Derivative question:
Do you think using the water drop torture on jamesbond will get us the solution we
need to this problem? :twisted:
We MI-6 agents eat water torture for breakfast. On the other hand, you reeeally don't want to know what __we__ can do ... :twisted:
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#175 Post by musher0 »

:lol:

~~~~~~~~~~~~
That said, 007, if it's not switchroot, it's the init?
Because it really hangs there "forever"; well, at least 5 minutes, and nothing happens.

BFN.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
James C
Posts: 6618
Joined: Thu 26 Mar 2009, 05:12
Location: Kentucky

#176 Post by James C »

wanderer wrote:hi all

i have posted my 3 initial attempts
at building a woof-next devuan puppy
in the repository on the first post

since i like really long names
they are

d1.iso
had mpaint as the only application for some reason

d2.iso
i added leafpad
and removed mpaint

d3.iso - built with jamesbonds latest woof-next today
i added leafpad and dillo
and removed mpaint

had to keep running build-sfs.sh over and over
but it finally downloaded the debs

all built and load fine
but a lot is messed up
and will need to be corrected

and no internet yet

but i will continue to build more isos until i learn the system

thanks again jamesbond

wanderer

I had a bit of free time so I downloaded the d3 iso.Booted to a prompt so "startx" got me to a desktop and I did get on the internet with Dillo.

Old hyperthreading P4 using the 8139too driver on wired ethernet.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#177 Post by jamesbond »

wanderer wrote: had to keep running build-sfs.sh over and over
but it finally downloaded the debs
After your very first build, you will have repo-XXXX in your workdir. Keep a copy of this directory somewhere; or in fact keep the entire workdir. You can edit basesfs etc and when you run build-sfs.sh it will only download what has changed (e.g. new packages).
That said, 007, if it's not switchroot, it's the init?
Yes, it definitely is init. I just run a test build myself, and if I remove "systemd" and "systemd-sysv" packages, it boots straight away. But xorg , while it launches, doesn't detect keyboard and mouse because "udev" is not there ... (udev __is__ now part of systemd in debian). Need to find a quick workaround.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

foxpup
Posts: 1132
Joined: Fri 29 Jul 2016, 21:08

#178 Post by foxpup »

@jamesbond

Thanks for explaining about adding pet packages.
I had these 2 possibilities figured out, but thought there would be something more specific for Puppy's own pets.

What I may do later, just thinking out loud:
add petget/PPM and Pkg so I can build a Puppy from a Puppy's pet repo (on ibiblio).
I could make a rebuild of Wary/Racy that way, or use the repos of Barry for Quirky or Easy. lol

And now a noob question:
How would the entry for let's say /mnt/home/pets/slacko/ look like in repo-url?

It's high time to rebuild a slacko with your new woof-ce-next to get some exercise. ;-)
.

foxpup
Posts: 1132
Joined: Fri 29 Jul 2016, 21:08

#179 Post by foxpup »

fredx181 wrote:the most ideal IMHO would be a merge of 'Dog' and 'Puppy'
Interesting thought to merge Puppy and Dog.
Can you explain what a merge would be like? What could be worked on?
Btw, I do not know the Dogs :oops:
wanderer wrote:i think this thread should be for all puppy inspired build systems
because they will all eventually merge together
... or not, but it's good for creativity and fun, understanding and skills. :D
.

User avatar
fredx181
Posts: 4448
Joined: Wed 11 Dec 2013, 12:37
Location: holland

#180 Post by fredx181 »

foxpup wrote:
fredx181 wrote:the most ideal IMHO would be a merge of 'Dog' and 'Puppy'
Interesting thought to merge Puppy and Dog.
Can you explain what a merge would be like? What could be worked on?
Btw, I do not know the Dogs :oops:
Well... maybe better see what I wrote as "thinking out loud"
One of the biggest differences between Puppy and Dog is the package management.
The Dogs are very close to 'Debian Live' with the comfort of being able to use apt-get or Synaptic. So combining the richness of Puppy with that would be ideal IMO, but how... I don't have specific ideas atm (except what I wrote earlier about debootstrap).

Fred

Post Reply