------------------------------------------------------------------------------ BRIEF INTRODUCTION ------------------------------------------------------------------------------ A repository for binary packages contains the packages itself, and an index file describing the information about available packages. The structure for this file is just the same than the plist file used to register installed packages, aka "an array of dictionaries" and a "dictionary per package". Additional objects are added into the main dictionary to specify more info, like: - pkgindex-version: version used to build the index. - location-local: local path to the repository. - location-remote: remote URI repository. - total-pkgs: total of number of available packages. "location-local" will always be created, and it might be exported via a remote location specified with "location-remote". The package dictionary will be the same than the one available in package's metadata directory "/var/db/xbps/metadata/$pkgname/props.plist", but some additional objects are added to provide enough info for the repository itself: - filename: name (and path relative to current dir) for the binary package. - filename-sha256: SHA256 hash of the binary package. Here's how the package index plist file shall look like in a repository: pkgindex-version 1.0 location-local /xbps/repo/local location-remote http://www.xbps-remote.org/repo/public total-pkgs 666 available-packages pkgname klibc version 1.5.17 filename klibc-1.5.17.x86_64.xbps filename-sha256 7b0de0521983037107cc33f2b1514126432f86ac2be1ef9b9dc51a1e959ea777 architecture x86_64 installed_size 9471141 maintainer Juan RP xtraeme@gmail.com short_desc Minimal libc subset for use with initramfs long_desc klibc is intended to be a minimalistic libc subset for use with initramfs. It is deliberately written for small size, minimal entanglement, and portability, not speed. It is definitely a work in progress and a lot of things are still missing. ... ... ------------------------------------------------------------------------------ HOW TO USE BINPKGS WITH REPOSITORIES ------------------------------------------------------------------------------ To build binary packages from all currently installed packages in XBPS_MASTERDIR: $ xbps-src build-pkg all To generate the repository package index for your $XBPS_PACKAGESDIR setting in the configuration file: $ xbps-repo genindex /path/to/dir Alternatively if you only want to register a single package: $ xbps-repo add-pkgidx /package/repo /package/repo//foo-1.2.xbps After this you can add your own local repository with binary packages: $ xbps-repo add /path/to/dir Added repository at /path/to/dir (1.0) with 6 packages. $ Once it's registered, you can start searching/installing/removing binary packages. You can add multiple repositories, the order for searching is the same than they were added; check it with: $ xbps-repo list /storage/xbps/binpkgs /path/to/dir $ The first repository that has the metadata for a package wins, if not found it will search in all them until it's found. A repository can also be unregistered from the pool: $ xbps-repo remove /path/to/dir To show information about available packages in the repository pool: $ xbps-repo show package To search for binary packages by specifying a shell pattern (see fnmatch(3)): $ xbps-repo search 'foo*' ------------------------------------------------------------------------------ Juan Romero Pardines