================================================================================ Web Server Setup: ================================================================================ Any web server that can serve files should work fine. No special security settings should be required, as the sync script will only copy the necessary package files. Symlinks must be enabled for the Pacman repository, because they are used to keep the size down (noarch packages are symlinked into both x86_64 and i686) ================================================================================ General: ================================================================================ Contains scripts for generating a greenstone package repository. ./repos/ The generated root directory for the package repository files. Contains all the files, including any databases necessary to maintain the repository. ./conf.sh Contains config variables, and functions used by multiple scripts ./gpg Generates a new GPG key if necessary, then copies the public GPG key to the repos directory. Also generates a gpg.key.id file, which allows other scripts to know the GPG key-id without asking the user. ================================================================================ Package Manager Implementations: ================================================================================ These scripts are used to set up the repositories for specific package-managers, and to maintain the repositories for those package-managers (e.g. adding new versions of packages) Usage: setup - creates the package manager's repo, and any config / readme files add [...] - adds any number of packages to the repo ./apt Depends on: reprepro gnupg Generates an apt package repository under ./repos/ reprepro is used to manage the repository, so this script just generates the reprepro config, and wraps reprepro to automate some things. ./pacman Depends on: repo-add gnupg xdelta3 Generates a pacman package repository under ./repos/ repo-add is used to manage the repositories. This script automates copying packages to their correct architecture folder, signing them, and adding them to the relevant package database(s) using repo-add. ./rpm Depends on: createrepo rpmsign gnupg Generates a rpm package repository under ./repos/ createrepo is used to manage the repositories. rpmsign is used to sign the packages. This script automates copying packages to their correct architecture folder, signing them with rpmsign, and adding them to the relevant package database(s) using createrepo --update. ================================================================================ Deployment: ================================================================================ ./sync Uses rsync to copy the packages somewhere (e.g. to a webserver for distribution) Excludes files based on ./sync-exclude.list ./sync-exclude.list A list of paths (relative to ./repos/) to exclude when syncing Used to stop internal database or config files from being viewable by users