[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: