Here's an example of the publishing script generated by pkgbuild:
#/usr/bin/bashDue to an old bug, publishing packages with files bigger than ~100MB fails. This is the case of the Qt src package and also some Qt libraries when compiled with debug information. In such cases one has to resort to publishing the packages via the file protocol.
export PKG_REPO=${PKGBUILD_IPS_SERVER:-http://localhost:10000/}
eval `pkgsend open soprano@2.3.70,5.11-3` || exit 1
pkgsend include /export/home/test/packages/PKGMAPS/manifests/FOSSsoprano.manifest || exit 2
pkgsend close || exit 3
But ... while publishing via http does not require any extra privileges, for the file protocol one has to have write permissions to the ips repository. Not really keen on using pfexec all the time, I first made sure the pkg server on the build machine is running under the same user who runs the build.
Then I patched pkgbuild so that if the environment variable PKG_REPO is set, it's value will be used for publishing.
As a result I can just do
export PKG_REPO=file:///export/home/test/repoNot only are we able to painlessly publish packages with big files now, there's also a noticeable speedup. The full KDE4 build (72 packages, ~10 hours on a 16 core machine) is 30-50 minutes faster since when the change was implemented.
make KDEgdm-integration
No comments:
Post a Comment