public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
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