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