From: Michael Tremer <michael.tremer@ipfire.org>
To: "IPFire: Development-List" <development@lists.ipfire.org>
Subject: This Week in Pakfire: Source Packages
Date: Fri, 4 Apr 2025 16:55:19 +0100 [thread overview]
Message-ID: <73BFEFB7-A74D-4A99-A0F1-5C137E1E586A@ipfire.org> (raw)
Hello to this week’s update!
Another new addition to Pakfire are source packages. In order to be able to verify builds and reproduce them, we need to make sure that we have a defined set of files that are needed to build some software. In IPFire 2 we solved this by having a large directory and referencing files in there. That works well when you always build the entire distribution in one piece, but it is not very helpful you want to share a single package with another developer for review or testing.
Now, you can bundle everything together so that somebody else has exactly the source that you have seen. Usually that is the source tarball, build instructions and meta data as well optional patches. All is bundled into a package which can be easily shared since it is only one single file.
You can create a source package using the dist command like so:
# pakfire-builder dist /build/ipfire-3.x/beep/beep.nm
beep-1.4.12-1.ipfire3.src 88k 0B/s 100%
You can then run a build without any further ado:
# pakfire-builder build beep-1.4.12-1.ipfire3.src.pfm
Scanning local 00:00 406/406
Building beep-1.4.12-1.ipfire3.src...
Name : beep
Version : 1.4.12-1.ipfire3
Arch : src
Size : 90k
Download Size : 90k
Repo : @commandline
Summary : Beep the PC speaker any number of ways.
…
After that, you will have some binary packages built which you can install either to your build environment or install on an IPFire system for testing.
We also use the source packages to transfer build jobs to the build service and from there to the builders. One single file that is signed, integrity checked and contains everything that is needed is a great way to have contingent builds that are repeatable and verifiable.
That is all for today. See you next week!
-Michael
reply other threads:[~2025-04-04 15:55 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=73BFEFB7-A74D-4A99-A0F1-5C137E1E586A@ipfire.org \
--to=michael.tremer@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox