How to build a configured puppy from github actions?

Building a Puppy Linux OS

Moderator: Forum moderators

Post Reply
User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

How to build a configured puppy from github actions?

Post by user1234 »

Building a puppy from github actions is easy- just following https://github.com/puppylinux-woof-CE/w ... -on-GitHub I was able to build my first puppy (JammyPup64, which didn't show wlan when I tried connecting to internet). But the puppy I built was completely based on woof-CE's earlier commits... I didn't make any change to woof-CE. The main reason for me not changing anything in woof-CE (my fork) was that I don't understand what all means what. Let's say for example, if I wanted to change the default wallpaper what file would be needed to be edited, or if I wanted to remove a package that is going to be installed and instead of it adding a new one, I don't know what's needed to be changed. Till this point of time, I understood linux's directory structure just as what we as users see. The directory structure before making of that OS, i.e. the directory structure of the OS's source is completely new for me. I do understand the Directory Structure given in the link, but don't understand what needs to be changed in a single directory to achieve what? I mean how will be the source files processed to get the final OS? Can anyone explain this to me (Not the whole process, just a bit so that I understand what is what)?

PuppyLinux 🐾 gives new life to old computers ✨

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

You should look in woof-distro/x86_64/ubuntu/jammy64. That's where you can find the configuration files for jammy64.

Once you modified them to your liking, you'll need to push your changes to your fork. You have 2 options:
1. Learn some git basics (there are many tutorial so for that, https://docs.github.com/en/get-started/ ... ork-a-repo is one example)
2. Use an online IDE like GitHub's (https://github.com/puppylinux-woof-CE/w ... ibutor-101) or Gitpod (https://github.com/puppylinux-woof-CE/w ... ing-gitpod)

Once the changes are pushed, you can run another build job.

Alternatively, you can run woof-CE on your computer, but you'll need patience, enough disk space, and it doesn't work on any distro: some Puppy releases are so broken they can't be used to rebuild themselves using woof-CE.

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

Thanks @dimkr for the explanation! But I can't build woof-CE on my computer (Its very old). Few more (kinda silly) questions-

1. In what branch do I commit? The default branch - testing, or create a new branch and start working on it? I mean is the testing branch in original woof-CE repo used for developing the latest distro, or is it used for developing something else (like support for all distros)? (Sorry for a silly question. but I am very bad at organizing things, even when I program :D)

2. Does DISTRO_PET_REPOS contain only repos containing packages created for puppy, and DISTRO_PKGS_SPECS-ubuntu-jammy the packages that are provided by Ubuntu's repos? What about DISTRO_COMPAT_REPOS-ubuntu-jammy then?

3. In /woof-distro/x86_64/ubuntu/jammy64/DISTRO_SPECS are the DISTRO_NAME and DISTRO_FILE_PREFIX name provided by ubuntu or are they provided by puppy itself.

4. Does running github actions do modification to DISTRO_SPECS (i.e. do I have to do manual modification every time I want to build in DISTRO_SPECS or github worklow handles that)?

5. In /woof-code/README.pkgs_specs Line 68, I don't understand a thing, do we need to specify, from exe,dev,doc,nls, the ones which we want install, like if I want to install the program and its documentation only then choose exe,doc, or is it necessary to put there only a definite value for a specific program?

PuppyLinux 🐾 gives new life to old computers ✨

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

user1234 wrote: Mon Sep 26, 2022 6:12 am

1. In what branch do I commit?

Up to you, it doesn't matter. However, I think it's easier to keep the testing branch synchronized with testing in https://github.com/puppylinux-woof-CE/woof-CE and merge testing into your branch when you want to synchronize with the latest changes in woof-CE.

user1234 wrote: Mon Sep 26, 2022 6:12 am

2. Does DISTRO_PET_REPOS contain only repos containing packages created for puppy, and DISTRO_PKGS_SPECS-ubuntu-jammy the packages that are provided by Ubuntu's repos? What about DISTRO_COMPAT_REPOS-ubuntu-jammy then?

DISTRO_PET_REPOS = repositories for .pet packages
DISTRO_COMPAT_REPOS = repositories for .deb packages
DISTRO_PKGS_SPECS = packages to include in the build

All three files contain comments that explain the format.

(The jammy64 configuration in woof-CE doesn't use any .pet packages right now, but if somebody adopts it and contributes the changes back to woof-CE, that can change)

user1234 wrote: Mon Sep 26, 2022 6:12 am

3. In /woof-distro/x86_64/ubuntu/jammy64/DISTRO_SPECS are the DISTRO_NAME and DISTRO_FILE_PREFIX name provided by ubuntu or are they provided by puppy itself.

You can put whatever you want in DISTRO_NAME and DISTRO_FILE_PREFIX.

user1234 wrote: Mon Sep 26, 2022 6:12 am

4. Does running github actions do modification to DISTRO_SPECS (i.e. do I have to do manual modification every time I want to build in DISTRO_SPECS or github worklow handles that)?

Nope, the action clones the repository and makes a local change based on the action parameters. It doesn't commit and push it. This way, you don't have to change DISTRO_SPECS every time you want to change the version number or something.

user1234 wrote: Mon Sep 26, 2022 6:12 am

5. In /woof-code/README.pkgs_specs Line 68, I don't understand a thing, do we need to specify, from exe,dev,doc,nls, the ones which we want install, like if I want to install the program and its documentation only then choose exe,doc, or is it necessary to put there only a definite value for a specific program?

I'm not sure I understand the question :|

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

Thanks again @dimkr!

dimkr wrote: Mon Sep 26, 2022 7:19 am
user1234 wrote: Mon Sep 26, 2022 6:12 am

5. In /woof-code/README.pkgs_specs Line 68, I don't understand a thing, do we need to specify, from exe,dev,doc,nls, the ones which we want install, like if I want to install the program and its documentation only then choose exe,doc, or is it necessary to put there only a definite value for a specific program?

I'm not sure I understand the question :|

I am asking the question again and will try to explain with an example-
Say there is a program named foo (a .deb package), and searching for it in PPM gives these search results- foo, foo-dev, foo-doc, foo-nls. So if I want to put it in the PKGS_SPECS_TABLE, then I'll do it this way-

Code: Select all

yes|foo|foo*|exe,dev,doc,nls

So here, can the third column, the one which contains exe,dev,doc,nls, be changed in order install only specific package out of foo, foo-dev, foo-doc, foo-nls? For example-

Code: Select all

yes|foo|foo*|exe,doc

Will this line install only foo and foo-doc? Or is it prohibited to do so?

PuppyLinux 🐾 gives new life to old computers ✨

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

Honestly, I'm not sure. If I want to drop a part of a package, I usually use something like doc>null.

If I understand the code correctly, the default in https://github.com/puppylinux-woof-CE/w ... kages#L170 means exe,doc is the same as exe,dev,doc,nls, and you're trying to achieve the same effect as exe,dev>null,doc,nls>null.

(By the way, the -dev packages are not added automatically! For example, if you want libncurses and libncurses-dev in your build, you'll need to do something like yes|whatever|libncurses,libncurses-dev|exe,dev, not yes|whatever|libncurses|exe,dev)
(And another thing to note: woof-CE nowadays supports automatic dependency resolution, that's the deps:yes you see in most entries; this feature doesn't work if you use wildcards like libncurses-*, only with exact package names)

RyPuppy
Posts: 67
Joined: Thu Oct 27, 2022 4:28 am
Location: Houtston USA
Has thanked: 9 times
Been thanked: 5 times

Re: How to build a configured puppy from github actions?

Post by RyPuppy »

user1234 wrote: Sat Sep 24, 2022 10:27 am

Building a puppy from github actions is easy- just following https://github.com/puppylinux-woof-CE/w ... -on-GitHub I was able to build my first puppy (JammyPup64, which didn't show wlan when I tried connecting to internet).

Hello User1234,
I am also trying to build PuppyLinux on GitHub, but running into problems.

After FORK, for CLOING what steps need to be followed ?
When I run workfows after completing the step : Action --> release --> Run WorkFlow : Workflow always ends up in failure.

My Workflow parameters are :

Branch: testing
Human-readable name : Ubuntu.Jammy64
Version Number : 1.0
Release name suffix, with leading - : -prepreprealpha1
Architecture: x86_64
Compatible distro: ubuntu
Compatible distro version : 22.04
Kernel version : 5.15.x
File name prefix : ry.jammy64

Upload release draft : not checked

What other steps am I missing here ?

Are there detailed docs or other forum discussions that you went through to successfully build your Puppy Linux ?

Thanks in Advance.

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

RyPuppy wrote: Sat Nov 05, 2022 4:27 am
user1234 wrote: Sat Sep 24, 2022 10:27 am

Building a puppy from github actions is easy- just following https://github.com/puppylinux-woof-CE/w ... -on-GitHub I was able to build my first puppy (JammyPup64, which didn't show wlan when I tried connecting to internet).

Hello User1234,
I am also trying to build PuppyLinux on GitHub, but running into problems.

After FORK, for CLOING what steps need to be followed ?
When I run workfows after completing the step : Action --> release --> Run WorkFlow : Workflow always ends up in failure.

My Workflow parameters are :

Branch: testing
Human-readable name : Ubuntu.Jammy64
Version Number : 1.0
Release name suffix, with leading - : -prepreprealpha1
Architecture: x86_64
Compatible distro: ubuntu
Compatible distro version : 22.04
Kernel version : 5.15.x
File name prefix : ry.jammy64

Upload release draft : not checked

What other steps am I missing here ?

Are there detailed docs or other forum discussions that you went through to successfully build your Puppy Linux ?

Thanks in Advance.

I se you have wrong Compatible distro version. Here is how you can search for compatible distros-
Go to https://github.com/puppylinux-woof-CE/w ... oof-distro. These are all the architectures supported. Click on one of the architectures. Say for example- x86_64. The opened site will show all compatible distros. Click on either of them (the one you want to build). Say for example- ubuntu. The screen now opened will show all compatible distro versions. So the compatible distro version would be jammy64, not 22.04. All of the fields- architecture, compatible distro and compatible distro version can have either of these options.

By the way, a new commit to woof-CE, by @dimkr, now requires one more field- Upload release drafted. He himself may make us understand this option.

PuppyLinux 🐾 gives new life to old computers ✨

RyPuppy
Posts: 67
Joined: Thu Oct 27, 2022 4:28 am
Location: Houtston USA
Has thanked: 9 times
Been thanked: 5 times

Re: How to build a configured puppy from github actions?

Post by RyPuppy »

Hello User1234,

In the help guide - "Building a Puppy: using GitHub Actions",

Code: Select all

0. Fork woof-CE.
1. Clone your fork.

How to CLONE ?

Thanks in advance...

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

Cloning a github repository means copying a github (remote) repository to your local computer. You may need the program git for this, which can be found in your puppy version's devx.sfs. If you want help getting the devx.sfs for the puppy you are using, please post which puppy you are using (like fossapup64)?

You may need to take a look at git tutorial.

Though working locally with git repositories is not necessary. Take a look at this page, if you don't want to fiddle with git and directly change the woof-CE code from the web!

By the way, there is no need for changing the woof-CE code for building a puppy. By changing the woof-CE code, you can build a customized puppy (or fix issues occuring with a special build of puppy).

If you want, then I can post here help for setting up a git repository locally (or remotely, w3schools tutorial is kinda outdated).

PuppyLinux 🐾 gives new life to old computers ✨

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

Feel free to modify https://github.com/puppylinux-woof-CE/w ... -on-GitHub if anything is unclear :)

RyPuppy
Posts: 67
Joined: Thu Oct 27, 2022 4:28 am
Location: Houtston USA
Has thanked: 9 times
Been thanked: 5 times

Re: How to build a configured puppy from github actions?

Post by RyPuppy »

dimkr wrote: Sat Nov 05, 2022 8:46 am

Feel free to modify https://github.com/puppylinux-woof-CE/w ... -on-GitHub if anything is unclear :)

I will update the Woof -> Wiki https://github.com/puppylinux-woof-CE/w ... -on-GitHub
once I have a successful build.

Information provided in the HELP docs does have gaps. Hopefully with the help of you, user1234 and others we can make it better for everyone.

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

RyPuppy wrote: Sat Nov 05, 2022 1:31 pm

make it better for everyone.

Let's do that! :thumbup:

RyPuppy
Posts: 67
Joined: Thu Oct 27, 2022 4:28 am
Location: Houtston USA
Has thanked: 9 times
Been thanked: 5 times

Re: How to build a configured puppy from github actions?

Post by RyPuppy »

user1234 wrote: Sat Nov 05, 2022 6:11 am

...
If you want, then I can post here help for setting up a git repository locally (or remotely, w3schools tutorial is kinda outdated).

With your timely help, I was able to run 3 workflows - (1) Debian (2) SlackWare & (3) Ubuntu-Jammy64 successfully. They created .ZIP file with ISO and SFS files as part of the ZIP package.

Could you post your TUTORIAL for building (Ubuntu.Jammy64) by setting up GIT REPOSITORY locally.

Thanks in advance...

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

Just git clone https://github.com/puppylinux-woof-CE/woof-CE and follow the instructions in README.md.

Is there any missing documentation?

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

dimkr wrote: Sat Nov 05, 2022 7:14 pm

Just git clone https://github.com/puppylinux-woof-CE/woof-CE and follow the instructions in README.md.

Is there any missing documentation?

That'd do it (atleast for woof-CE). But there would be some intializations and some guide for usage of git to push or pull, like for all repos and not just woof-CE. I'll start a new topic for that.

Also @dimkr, @RyPuppy, I have updated Building-a-Puppy-on-GitHub :thumbup:. See if there is anything to add.

PuppyLinux 🐾 gives new life to old computers ✨

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

@dimkr, @RyPuppy-

I just uploaded 'my own created guide' to using git and github here. If you accept, then we could even add a link to this post in the Wiki's first page, in case anyone might need any help with them.

PuppyLinux 🐾 gives new life to old computers ✨

dimkr
Posts: 1907
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 36 times
Been thanked: 827 times

Re: How to build a configured puppy from github actions?

Post by dimkr »

user1234 wrote: Wed Nov 09, 2022 10:28 am

If you accept

You don't need anyone's approval, Puppy is a do-ocracy :)

User avatar
user1234
Posts: 413
Joined: Sat Feb 26, 2022 5:48 am
Location: Somewhere on earth
Has thanked: 154 times
Been thanked: 87 times

Re: How to build a configured puppy from github actions?

Post by user1234 »

dimkr wrote: Wed Nov 09, 2022 11:44 am
user1234 wrote: Wed Nov 09, 2022 10:28 am

If you accept

You don't need anyone's approval, Puppy is a do-ocracy :)

I know that, that puppy warm heartedly accepts everyones views :D. Just wanted your 'review' (even you sometimes ask for review). Just ensures that the decisions taken are actually correct :thumbup2:.

PuppyLinux 🐾 gives new life to old computers ✨

Post Reply

Return to “woof-CE”