Repository & Help

The Pedigree-apps repository is essentially the base repository for the master set of packages. Via the build system a full package repository can be created and updated daily, allowing server administrators to set up mirrors for pup to refer to.

Creating a Package

Creating a package to be built in the repository is extremely simple:
  1. Copy the build.sh template from the root of the repository tree into a new directory in the packages directory. For example, the package "bsdtar" would have a file "packages/bsdtar/build.sh" after this step.
  2. Modify the beginning of the script to contain the right name, version, and URL to source code for this package. The source code should be in the format of a gzip-compressed tarball.
  3. Modify the end of the script to adjust behaviour for the build. Generally the template should work for most packages that use autoconf, but you may need to disable some features in order to build for Pedigree. You may add custom build steps here as well, as long as they follow the same format as the other build steps (with progress messages and the like).
  4. Add patches as required. During the build, the following search order is used for patches (relative to build.sh): "./patches/*.diff", then "./patches/$version/*.diff". This allows you to apply custom patches across every version that will be built, or only for one version of the package.
  5. If your package installs libraries and header files, copy the setupLinks.sh template from the repository root and modify it to link your package's headers and libraries into the cross-compiler. This needs to be done so that future packages that depend on your package can be built.
  6. Once done, if you have developer access to the repository please update buildPackages.sh to list your package.

At this point you can run the build.sh script and the source code for the package will be obtained, patched, and built. Upon successful completion of a build, the package will be automatically registered with the local pup repository (usually in /path/to/pedigree-apps/pup/local_repo).

Package Submission

At this point there is no central place to submit new packages for addition to the master repository. Instead, you should tarball (and preferably compress) the directory containing the "build.sh" file and add it to a Feature Request tracker item. A developer will review the addition and either add it to the repository or reject the submission (with an explanation as to why the submission has been rejected).

Building Everything
Or, How to Create a Repository

The following steps prepare a pedigree-apps repository for building. You should only need to do this once, unless your cross-compiler configuration or environment changes.
  1. Modify environment.sh to suit your environment. Every build.sh script sources environment.sh for variables, so everything here should be valid.
  2. If on Debian, run "install_deps_debian.sh" to install all required dependencies for the build to complete. Offers to make copies of this script for alternative operating systems would be appreciated.
  3. Run prepareCompiler.sh to prepare the cross-compiler for the build.

To build everything, run:
./buildPackages.sh

The script will iterate through each package it has been instructed to build, and build them. Once complete your local pup repository should be full of packages ready to be installed by clients.

Also available in: HTML TXT