[haiku-development] Re: HaikuPorts Build - Question on HPKR Embedded Info Message
- From: Michael Lotz <mmlr@xxxxxxxx>
- To: haiku-development@xxxxxxxxxxxxx
- Date: Thu, 18 Jun 2020 00:05:00 +0200
On 17.06.20 19:26, Alexander von Gluck IV wrote:
June 16, 2020 5:01 AM, "Andrew Lindesay" <apl@xxxxxxxxxxxxxx> wrote:
somebody give me a pointer as to where to go to find the script that
builds this HPKR?
^^ Perhaps I was going into too much detail... is anybody here able to direct
me to the system on
which the repository "HaikuPorts-BuildPackages" is built and the location of
the main script that
drives this process?
Haikuporter buildmaster generates the haikuports repos.
I understood the question to be about the build package repo? The
buildmaster doesn't really have anything to do with that, other than
building the packages that usually get used there (in the non-bootstrap
case).
These are hand compiled and placed in PATH on Linux for the haikuporter
buildmaster.
They are automatically built and configured in the buildmaster bootstrap
process...
The build packages are currently assembled on the server by the
hardlink_packages.py script at "src/tools/hardlink_packages.py". It
takes the package list from the HaikuPorts repository jam file at
"build/jam/repositories/HaikuPorts" and searches the most current
version of each package in a pre-existing packages directory (usually
the current HaikuPorts master packages). It then writes out an updated
jam file (which is to be committed to the Haiku tree) and hardlinks the
packages into a new build packages repository dir named after the sha256
hash of the updated jam file. It then uses the package_repo tool and a
repo.info template residing on the server to build a repository file for
these new build packages.
One way of doing that update is documented at
"docs/develop/build/repositories/README.md" (somewhat outdated). Other
than reusing the buildmaster containers for their pre-built package
tools the process doesn't use buildmaster or HaikuPorter. This is
actually unfortunate as it allows for discrepancies between the
interpretation of versions and their ordering and doesn't leverage the
existing buildmaster configuration of the package tools.
So in short: The HPKR is created by the host version of the normal Haiku
repository tools and currently uses this repo.info template on the sever:
name HaikuPorts-BuildPackages
vendor "Haiku Project"
summary "The HaikuPorts/Build-Packages repository"
priority 1
url
https://eu.hpkg.haiku-os.org/haikuports/master/build-packages/
architecture $ARCH$
I presume you want this template to be updated to use baseUrl and
identifier?
Due to deployment issues it is not possible to bootstrap/update the
buildmasters on the server itself, so this is currently done externally.
That means the package tools on the server may not be current. Is there
a specific version the package tools need to have for them to be
compatible? I can update them as needed.
Regards,
Michael
Other related posts: