{"id":13467539,"url":"https://github.com/void-linux/void-packages","last_synced_at":"2025-05-13T00:28:01.899Z","repository":{"id":37270065,"uuid":"137503442","full_name":"void-linux/void-packages","owner":"void-linux","description":"The Void source packages collection","archived":false,"fork":false,"pushed_at":"2025-05-08T07:19:35.000Z","size":544493,"stargazers_count":2728,"open_issues_count":1423,"forks_count":2271,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-05-08T08:27:12.910Z","etag":null,"topics":["hacktoberfest","voidlinux"],"latest_commit_sha":null,"homepage":"https://voidlinux.org","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/void-linux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-06-15T15:25:34.000Z","updated_at":"2025-05-08T07:19:40.000Z","dependencies_parsed_at":"2023-09-28T06:10:49.441Z","dependency_job_id":"189bbd44-b5f9-4239-bdcb-aa8552776e0a","html_url":"https://github.com/void-linux/void-packages","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void-linux%2Fvoid-packages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void-linux%2Fvoid-packages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void-linux%2Fvoid-packages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/void-linux%2Fvoid-packages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/void-linux","download_url":"https://codeload.github.com/void-linux/void-packages/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253845278,"owners_count":21973211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","voidlinux"],"created_at":"2024-07-31T15:00:57.668Z","updated_at":"2025-05-13T00:27:58.889Z","avatar_url":"https://github.com/void-linux.png","language":"Shell","funding_links":[],"categories":["hacktoberfest","Shell"],"sub_categories":[],"readme":"## The XBPS source packages collection\n\nThis repository contains the XBPS source packages collection to build binary packages\nfor the Void Linux distribution.\n\nThe included `xbps-src` script will fetch and compile the sources, and install its\nfiles into a `fake destdir` to generate XBPS binary packages that can be installed\nor queried through the `xbps-install(1)` and `xbps-query(1)` utilities, respectively.\n\nSee [Contributing](./CONTRIBUTING.md) for a general overview of how to contribute and the\n[Manual](./Manual.md) for details of how to create source packages.\n\n### Table of Contents\n\n- [Requirements](#requirements)\n- [Quick start](#quick-start)\n- [chroot methods](#chroot-methods)\n- [Install the bootstrap packages](#install-bootstrap)\n- [Configuration](#configuration)\n- [Directory hierarchy](#directory-hierarchy)\n- [Building packages](#building-packages)\n- [Package build options](#build-options)\n- [Sharing and signing your local repositories](#sharing-and-signing)\n- [Rebuilding and overwriting existing local packages](#rebuilding)\n- [Enabling distcc for distributed compilation](#distcc)\n- [Distfiles mirrors](#distfiles-mirrors)\n- [Cross compiling packages for a target architecture](#cross-compiling)\n- [Using xbps-src in a foreign Linux distribution](#foreign)\n- [Remaking the masterdir](#remaking-masterdir)\n- [Keeping your masterdir uptodate](#updating-masterdir)\n- [Building 32bit packages on x86_64](#building-32bit)\n- [Building packages natively for the musl C library](#building-for-musl)\n- [Building void base-system from scratch](#building-base-system)\n\n### Requirements\n\n- GNU bash\n- xbps \u003e= 0.56\n- git(1) - unless configured to not, see etc/defaults.conf\n- common POSIX utilities included by default in almost all UNIX systems\n- curl(1) - required by `xbps-src update-check`\n\nFor bootstrapping additionally:\n- flock(1) - util-linux\n- bsdtar or GNU tar (in that order of preference)\n- install(1) - GNU coreutils\n- objcopy(1), objdump(1), strip(1): binutils\n\n`xbps-src` requires [a utility to chroot](#chroot-methods) and bind mount existing directories\ninto a `masterdir` that is used as its main `chroot` directory. `xbps-src` supports\nmultiple utilities to accomplish this task.\n\n\u003e NOTE: `xbps-src` does not allow building as root anymore. Use one of the chroot\nmethods.\n\n\u003ca name=\"quick-start\"\u003e\u003c/a\u003e\n### Quick start\n\nClone the `void-packages` git repository and install the bootstrap packages:\n\n```\n$ git clone https://github.com/void-linux/void-packages.git\n$ cd void-packages\n$ ./xbps-src binary-bootstrap\n```\n\nBuild a package by specifying the `pkg` target and the package name:\n\n```\n$ ./xbps-src pkg \u003cpackage_name\u003e\n```\n\nUse `./xbps-src -h` to list all available targets and options.\n\nTo build packages marked as 'restricted', modify `etc/conf`:\n\n```\n$ echo XBPS_ALLOW_RESTRICTED=yes \u003e\u003e etc/conf\n```\n\nOnce built, the package will be available in `hostdir/binpkgs` or an appropriate subdirectory (e.g. `hostdir/binpkgs/nonfree`). To install the package:\n\n```\n# xbps-install --repository hostdir/binpkgs \u003cpackage_name\u003e\n```\n\nAlternatively, packages can be installed with the `xi` utility, from the `xtools` package. `xi` takes the repository of the current working directory into account.\n\n```\n$ xi \u003cpackage_name\u003e\n```\n\n\u003ca name=\"chroot-methods\"\u003e\u003c/a\u003e\n### chroot methods\n\n#### xbps-uunshare(1) (default)\n\nXBPS utility that uses `user_namespaces(7)` (part of xbps, default without `-t` flag).\n\nThis utility requires these Linux kernel options:\n\n- CONFIG\\_NAMESPACES\n- CONFIG\\_IPC\\_NS\n- CONFIG\\_UTS\\_NS\n- CONFIG\\_USER\\_NS\n\nThis is the default method, and if your system does not support any of the required kernel\noptions it will fail with `EINVAL (Invalid argument)`.\n\n#### xbps-uchroot(1)\n\nXBPS utility that uses `namespaces` and must be `setgid` (part of xbps).\n\n\u003e NOTE: This is the only method that implements functionality of `xbps-src -t`, therefore the\nflag ignores the choice made in configuration files and enables `xbps-uchroot`.\n\nThis utility requires these Linux kernel options:\n\n- CONFIG\\_NAMESPACES\n- CONFIG\\_IPC\\_NS\n- CONFIG\\_PID\\_NS\n- CONFIG\\_UTS\\_NS\n\nYour user must be added to a special group to be able to use `xbps-uchroot(1)` and the\nexecutable must be `setgid`:\n\n    # chown root:\u003cgroup\u003e xbps-uchroot\n    # chmod 4750 xbps-uchroot\n    # usermod -a -G \u003cgroup\u003e \u003cuser\u003e\n\n\u003e NOTE: by default in void you shouldn't do this manually, your user must be a member of\nthe `xbuilder` group.\n\nTo enable it:\n\n    $ cd void-packages\n    $ echo XBPS_CHROOT_CMD=uchroot \u003e\u003e etc/conf\n\nIf for some reason it's erroring out as `ERROR clone (Operation not permitted)`, check that\nyour user is a member of the required `group` and that `xbps-uchroot(1)` utility has the\nproper permissions and owner/group as explained above.\n\n#### bwrap(1)\n\nbubblewrap, sandboxing tool for unprivileged users that uses\nuser namespaces or setuid.\nSee \u003chttps://github.com/containers/bubblewrap\u003e.\n\n#### ethereal\n\nDestroys host system it runs on. Only useful for one-shot containers, i.e docker (used with CI).\n\n\u003ca name=\"install-bootstrap\"\u003e\u003c/a\u003e\n### Install the bootstrap packages\n\nThere is a set of packages that makes up the initial build container, called the `bootstrap`.\nThese packages are installed into the `masterdir` in order to create the container.\n\nThe primary and recommended way to set up this container is using the `binary-bootstrap`\ncommand. This will use pre-existing binary packages, either from remote `xbps` repositories\nor from your local repository.\n\nThere is also the `bootstrap` command, which will build all necessary `bootstrap` packages from\nscratch. This is usually not recommended, since those packages are built using your host system's\ntoolchain and are neither fully featured nor reproducible (your host system may influence the\nbuild) and thus should only be used as a stage 0 for bootstrapping new Void systems.\n\nIf you still choose to use `bootstrap`, use the resulting stage 0 container to rebuild all\n`bootstrap` packages again, then use `binary-bootstrap` (stage 1) and rebuild the `bootstrap`\npackages once more (to gain stage 2, and then use `binary-bootstrap` again). Once you've done\nthat, you will have a `bootstrap` set equivalent to using `binary-bootstrap` in the first place.\n\nAlso keep in mind that a full source `bootstrap` is time consuming and will require having an\nassortment of utilities installed in your host system, such as `binutils`, `gcc`, `perl`,\n`texinfo` and others.\n\n### Configuration\n\nThe `etc/defaults.conf` file contains the possible settings that can be overridden\nthrough the `etc/conf` configuration file for the `xbps-src` utility; if that file\ndoes not exist, will try to read configuration settings from `$XDG_CONFIG_HOME/xbps-src.conf`, `~/.config/xbps-src.conf`, `~/.xbps-src.conf`.\n\nIf you want to customize default `CFLAGS`, `CXXFLAGS` and `LDFLAGS`, don't override\nthose defined in `etc/defaults.conf`, set them on `etc/conf` instead i.e:\n\n    $ echo 'XBPS_CFLAGS=\"your flags here\"' \u003e\u003e etc/conf\n    $ echo 'XBPS_LDFLAGS=\"your flags here\"' \u003e\u003e etc/conf\n\nNative and cross compiler/linker flags are set per architecture in `common/build-profiles`\nand `common/cross-profiles` respectively. Ideally those settings are good enough by default,\nand there's no need to set your own unless you know what you are doing.\n\n#### Virtual packages\n\nThe `etc/defaults.virtual` file contains the default replacements for virtual packages,\nused as dependencies in the source packages tree.\n\nIf you want to customize those replacements, copy `etc/defaults.virtual` to `etc/virtual`\nand edit it accordingly to your needs.\n\n\u003ca name=\"directory-hierarchy\"\u003e\u003c/a\u003e\n### Directory hierarchy\n\nThe following directory hierarchy is used with a default configuration file:\n\n         /void-packages\n            |- common\n            |- etc\n            |- srcpkgs\n            |  |- xbps\n            |     |- template\n            |\n            |- hostdir\n            |  |- binpkgs ...\n            |  |- ccache ...\n            |  |- distcc-\u003carch\u003e ...\n            |  |- repocache ...\n            |  |- sources ...\n            |\n            |- masterdir-\u003carch\u003e\n            |  |- builddir -\u003e ...\n            |  |- destdir -\u003e ...\n            |  |- host -\u003e bind mounted from \u003chostdir\u003e\n            |  |- void-packages -\u003e bind mounted from \u003cvoid-packages\u003e\n\n\nThe description of these directories is as follows:\n\n - `masterdir-\u003carch\u003e`: master directory to be used as rootfs to build/install packages.\n - `builddir`: to unpack package source tarballs and where packages are built.\n - `destdir`: to install packages, aka **fake destdir**.\n - `hostdir/ccache`: to store ccache data if the `XBPS_CCACHE` option is enabled.\n - `hostdir/distcc-\u003carch\u003e`: to store distcc data if the `XBPS_DISTCC` option is enabled.\n - `hostdir/repocache`: to store binary packages from remote repositories.\n - `hostdir/sources`: to store package sources.\n - `hostdir/binpkgs`: local repository to store generated binary packages.\n\n\u003ca name=\"building-packages\"\u003e\u003c/a\u003e\n### Building packages\n\nThe simplest form of building package is accomplished by running the `pkg` target in `xbps-src`:\n\n```\n$ cd void-packages\n$ ./xbps-src pkg \u003cpkgname\u003e\n```\n\nWhen the package and its required dependencies are built, the binary packages will be created\nand registered in the default local repository at `hostdir/binpkgs`; the path to this local repository can be added to\nany xbps configuration file (see xbps.d(5)) or by explicitly appending them via cmdline, i.e:\n\n    $ xbps-install --repository=hostdir/binpkgs ...\n    $ xbps-query --repository=hostdir/binpkgs ...\n\nBy default **xbps-src** will try to resolve package dependencies in this order:\n\n - If a dependency exists in the local repository, use it (`hostdir/binpkgs`).\n - If a dependency exists in a remote repository, use it.\n - If a dependency exists in a source package, use it.\n\nIt is possible to avoid using remote repositories completely by using the `-N` flag.\n\n\u003e The default local repository may contain multiple *sub-repositories*: `debug`, `multilib`, etc.\n\n\u003ca name=\"build-options\"\u003e\u003c/a\u003e\n### Package build options\n\nThe supported build options for a source package can be shown with `xbps-src show-options`:\n\n    $ ./xbps-src show-options foo\n\nBuild options can be enabled with the `-o` flag of `xbps-src`:\n\n    $ ./xbps-src -o option,option1 pkg foo\n\nBuild options can be disabled by prefixing them with `~`:\n\n    $ ./xbps-src -o ~option,~option1 pkg foo\n\nBoth ways can be used together to enable and/or disable multiple options\nat the same time with `xbps-src`:\n\n    $ ./xbps-src -o option,~option1,~option2 pkg foo\n\nThe build options can also be shown for binary packages via `xbps-query(1)`:\n\n    $ xbps-query -R --property=build-options foo\n\n\u003e NOTE: if you build a package with a custom option, and that package is available\nin an official void repository, an update will ignore those options. Put that package\non `hold` mode via `xbps-pkgdb(1)`, i.e `xbps-pkgdb -m hold foo` to ignore updates\nwith `xbps-install -u`. Once the package is on `hold`, the only way to update it\nis by declaring it explicitly: `xbps-install -u foo`.\n\nPermanent global package build options can be set via `XBPS_PKG_OPTIONS` variable in the\n`etc/conf` configuration file. Per package build options can be set via\n`XBPS_PKG_OPTIONS_\u003cpkgname\u003e`.\n\n\u003e NOTE: if `pkgname` contains `dashes`, those should be replaced by `underscores`\ni.e `XBPS_PKG_OPTIONS_xorg_server=opt`.\n\nThe list of supported package build options and its description is defined in the\n`common/options.description` file or in the `template` file.\n\n\u003ca name=\"sharing-and-signing\"\u003e\u003c/a\u003e\n### Sharing and signing your local repositories\n\nTo share a local repository remotely it's mandatory to sign it and the binary packages\nstored on it. This is accomplished with the `xbps-rindex(1)` utility.\n\nFirst a RSA key must be created with `openssl(1)` or `ssh-keygen(1)`:\n\n\t$ openssl genrsa -des3 -out privkey.pem 4096\n\nor\n\n\t$ ssh-keygen -t rsa -b 4096 -m PEM -f privkey.pem\n\n\u003e Only RSA keys in PEM format are currently accepted by xbps.\n\nOnce the RSA private key is ready you can use it to initialize the repository metadata:\n\n\t$ xbps-rindex --sign --signedby \"I'm Groot\" --privkey privkey.pem $PWD/hostdir/binpkgs\n\nAnd then make a signature per package:\n\n\t$ xbps-rindex --sign-pkg --privkey privkey.pem $PWD/hostdir/binpkgs/*.xbps\n\n\u003e If --privkey is unset, it defaults to `~/.ssh/id_rsa`.\n\nIf the RSA key was protected with a passphrase you'll have to type it, or alternatively set\nit via the `XBPS_PASSPHRASE` environment variable.\n\nOnce the binary packages have been signed, check if the repository contains the appropriate `hex fingerprint`:\n\n\t$ xbps-query --repository=hostdir/binpkgs -vL\n\t...\n\nEach time a binary package is created, a package signature must be created with `--sign-pkg`.\n\n\u003e It is not possible to sign a repository with multiple RSA keys.\n\nIf packages in `hostdir/binpkgs` are signed, the key in `.plist` format (as imported by xbps) can be placed\nin `etc/repo-keys/` to prevent xbps-src from prompting to import that key.\n\n\u003ca name=\"rebuilding\"\u003e\u003c/a\u003e\n### Rebuilding and overwriting existing local packages\n\nPackages are overwritten on every build to make getting package with changed build options easy.\nTo make xbps-src skip build and preserve first package build with given version and revision,\nsame as in official void repository, set `XBPS_PRESERVE_PKGS=yes` in `etc/conf` file.\n\nReinstalling a package in your target `rootdir` can be easily done too:\n\n    $ xbps-install --repository=/path/to/local/repo -yf xbps-0.25_1\n\nUsing `-f` flag twice will overwrite configuration files.\n\n\u003e Please note that the `package expression` must be properly defined to explicitly pick up\nthe package from the desired repository.\n\n\u003ca name=\"distcc\"\u003e\u003c/a\u003e\n### Enabling distcc for distributed compilation\n\nSetup the workers (machines that will compile the code):\n\n    # xbps-install -Sy distcc\n    \nUpdate distcc compiler whitelist\n\n    # update-distcc-symlinks\n\nModify the configuration to allow your local network machines to use distcc (e.g. `192.168.2.0/24`):\n\n    # echo \"192.168.2.0/24\" \u003e\u003e /etc/distcc/clients.allow\n\nEnable and start the `distccd` service:\n\n    # ln -s /etc/sv/distccd /var/service\n\nInstall distcc on the host (machine that executes xbps-src) as well.\nUnless you want to use the host as worker from other machines, there is no need\nto modify the configuration.\n\nOn the host you can now enable distcc in the `void-packages/etc/conf` file:\n\n    XBPS_DISTCC=yes\n    XBPS_DISTCC_HOSTS=\"localhost/2 --localslots_cpp=24 192.168.2.101/9 192.168.2.102/2\"\n    XBPS_MAKEJOBS=16\n\nThe example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs.\nThe number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile.\nThe worker 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice.\nThe worker 192.168.2.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores.\nThe XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).\n\n\u003ca name=\"distfiles-mirrors\"\u003e\u003c/a\u003e\n### Distfiles mirror(s)\n\nIn etc/conf you may optionally define a mirror or a list of mirrors to search for distfiles.\n\n    $ echo 'XBPS_DISTFILES_MIRROR=\"ftp://192.168.100.5/gentoo/distfiles\"' \u003e\u003e etc/conf\n\nIf more than one mirror is to be searched, you can either specify multiple URLs separated\nwith blanks, or add to the variable like this\n\n    $ echo 'XBPS_DISTFILES_MIRROR+=\" https://sources.voidlinux.org/\"' \u003e\u003e etc/conf\n\nMake sure to put the blank after the first double quote in this case.\n\nThe mirrors are searched in order for the distfiles to build a package until the\nchecksum of the downloaded file matches the one specified in the template.\n\nUltimately, if no mirror carries the distfile, or in case all downloads failed the\nchecksum verification, the original download location is used.\n\nIf you use `uchroot` for your XBPS_CHROOT_CMD, you may also specify a local path\nusing the `file://` prefix or simply an absolute path on your build host (e.g. /mnt/distfiles).\nMirror locations specified this way are bind mounted inside the chroot environment\nunder $XBPS_MASTERDIR and searched for distfiles just the same as remote locations.\n\n\u003ca name=\"cross-compiling\"\u003e\u003c/a\u003e\n### Cross compiling packages for a target architecture\n\nCurrently `xbps-src` can cross build packages for some target architectures with a cross compiler.\nThe supported target is shown with `./xbps-src -h`.\n\nIf a source package has been adapted to be **cross buildable** `xbps-src` will automatically build the binary package(s) with a simple command:\n\n    $ ./xbps-src -a \u003ctarget\u003e pkg \u003cpkgname\u003e\n\nIf the build for whatever reason fails, might be a new build issue or simply because it hasn't been adapted to be **cross compiled**.\n\n\u003ca name=\"foreign\"\u003e\u003c/a\u003e\n### Using xbps-src in a foreign Linux distribution\n\nxbps-src can be used in any recent Linux distribution matching the CPU architecture.\n\nTo use xbps-src in your Linux distribution use the following instructions. Let's start downloading the xbps static binaries:\n\n    $ wget http://repo-default.voidlinux.org/static/xbps-static-latest.\u003carch\u003e-musl.tar.xz\n    $ mkdir ~/XBPS\n    $ tar xvf xbps-static-latest.\u003carch\u003e-musl.tar.xz -C ~/XBPS\n    $ export PATH=~/XBPS/usr/bin:$PATH\n\nIf `xbps-uunshare` does not work because of lack of `user_namespaces(7)` support,\ntry other [chroot methods](#chroot-methods).\n\nClone the `void-packages` git repository:\n\n    $ git clone https://github.com/void-linux/void-packages.git\n\nand `xbps-src` should be fully functional; just start the `bootstrap` process, i.e:\n\n    $ ./xbps-src binary-bootstrap\n\nThe default masterdir is created in the current working directory, i.e. `void-packages/masterdir-\u003carch\u003e`, where `\u003carch\u003e` for the default masterdir is is the native xbps architecture.\n\n\u003ca name=\"remaking-masterdir\"\u003e\u003c/a\u003e\n### Remaking the masterdir\n\nIf for some reason you must update xbps-src and the `bootstrap-update` target is not enough, it's possible to recreate a masterdir with two simple commands (please note that `zap` keeps your `ccache/distcc/host` directories intact):\n\n    $ ./xbps-src zap\n    $ ./xbps-src binary-bootstrap\n\n\u003ca name=\"updating-masterdir\"\u003e\u003c/a\u003e\n### Keeping your masterdir uptodate\n\nSometimes the bootstrap packages must be updated to the latest available version in repositories, this is accomplished with the `bootstrap-update` target:\n\n    $ ./xbps-src bootstrap-update\n\n\u003ca name=\"building-32bit\"\u003e\u003c/a\u003e\n### Building 32bit packages on x86_64\n\nTwo ways are available to build 32bit packages on x86\\_64:\n\n - native mode with a 32bit masterdir (recommended, used in official repository)\n - cross compilation mode to i686 [target](#cross-compiling)\n\nThe canonical mode (native) needs a new x86 `masterdir`:\n\n    $ ./xbps-src -A i686 binary-bootstrap\n    $ ./xbps-src -A i686 ...\n\n\u003ca name=\"building-for-musl\"\u003e\u003c/a\u003e\n### Building packages natively for the musl C library\n\nThe canonical way of building packages for same architecture but different C library is through a dedicated masterdir by using the host architecture flag `-A`.\nTo build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages:\n\n    $ ./xbps-src -A x86_64-musl binary-bootstrap\n\nThis will create and bootstrap a new masterdir called `masterdir-x86_64-musl` that will be used when `-A x86_64-musl` is specified.\nYour new masterdir is now ready to build packages natively for the musl C library:\n\n    $ ./xbps-src -A x86_64-musl pkg ...\n\n\u003ca name=\"building-base-system\"\u003e\u003c/a\u003e\n### Building void base-system from scratch\n\nTo rebuild all packages in `base-system` for your native architecture:\n\n    $ ./xbps-src -N pkg base-system\n\nIt's also possible to cross compile everything from scratch:\n\n    $ ./xbps-src -a \u003ctarget\u003e -N pkg base-system\n\nOnce the build has finished, you can specify the path to the local repository to `void-mklive`, i.e:\n\n    # cd void-mklive\n    # make\n    # ./mklive.sh ... -r /path/to/hostdir/binpkgs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoid-linux%2Fvoid-packages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoid-linux%2Fvoid-packages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoid-linux%2Fvoid-packages/lists"}