xref: /haiku/docs/develop/build/repositories/README.rst (revision a5061ecec55353a5f394759473f1fd6df04890da)
1HaikuPorts build-packages repository
2====================================
3
4The ``build/jam/repositories/HaikuPorts`` directory contains
5RemotePackageRepository files which detail packages and repositories
6leveraged during Haiku’s build process.
7
8   Warning: The URL packages are obtained from are determined by the
9   sha256sum of the repository file.
10
11Updating
12--------
13
14Each RemotePackageRepository jam file in this directory is processed by
15src/tools/hardlink_packages.py on the HaikuPorts package server.
16
171) Latest RemotePackageRepository jam file in git is downloaded on
18   package server.
192) Packages are added to HaikuPorts by automatic or manual means.
203) hardlink_packages is provided all the relevant directories and
21   RemotePackageRepository file
224) hardlink_packages performs additional modification of the
23   RemotePackageRepository and creates build repositories
24   (https://eu.hpkg.haiku-os.org/haikuports/master/build-packages/)
255) The modified RemotePackageRepository file is copied back to the
26   developers system and checked in to git.
27
28Container Process
29-----------------
30
31Here is the fastest way to update this as of today. Improvements are
32needed. Replace (ARCH) with architecture, (USER) with your non-root
33user.
34
35Prepare the build-packages repository
36-------------------------------------
37
38as root on limerick.ams3.haiku-os.org39
401) wget
41   https://git.haiku-os.org/haiku/plain/build/jam/repositories/HaikuPorts/(ARCH)
42   -O /var/lib/docker/volumes/ci_data_master_(ARCH)/_data/(ARCH)
432) Enter the buildmaster container: docker exec -it $(docker ps \| grep
44   ci_buildmaster_master_(ARCH) \| awk ‘{ print $1 }’) /bin/bash -l
453) apt update; apt install -y vim python3 python3-pkg-resources
464) edit the repository define, add the needed packages, \_devel
47   packages, and add base package to source section.
485) ln -s /var/buildmaster/package_tools/package_repo
49   /usr/bin/package_repo
506) export
51   LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/buildmaster/package_tools
527) ./package_tools/hardlink_packages.py (ARCH) ./(ARCH)
53   /var/packages/repository/master/(ARCH)/current/packages/
54   /var/packages/build-packages/master/
558) exit; cp /var/lib/docker/volumes/ci_data_master_(ARCH)/_data/(ARCH)
56   /home/(USER)/(ARCH); chown (USER) /home/(USER)/(ARCH);
57
58Pull the repostory file and commit it
59-------------------------------------
60
61From your local system…
62
631) scp -P2222 (USER)@limerick.ams3.haiku-os.org:./(ARCH) ./(ARCH)
642) commit the updated repostory define *without modifying it* in any way
65