Create Manjaro Packages

Guidelines for creating Manjaro packages

This page is a work in progress - it will improve.

Devtools has been updated by core team members to suit our needs. Creating a clean package for Manjaro is as easy as eating pie. (According to Phil!)

It will create your chroot and package with all dependencies automatically for the branch and architecture you have chosen.


The process of creating a package

First, install devtools on your system:

sudo pacman -S devtools


Clone your PKGBUILD from our git:

core

git clone http://git.manjaro.org/package-sources/core.git

extra

git clone http://git.manjaro.org/package-sources/extra.git

community

git clone http://git.manjaro.org/package-sources/community.git

multilib

git clone http://git.manjaro.org/package-sources/multilib.git


Building Packages for the various repos

This is the format:

cd <repo>/<package>
sudo <branch>-<arch>-build


Since Phil pulls all to unstable first, most of the packages will be built only in unstable:

cd <repo>/<package>
sudo unstable-i686-build


Each branch is built in a separate chroot

As the following shows:

[phil@manjaro manjarobuild]$ ls
stable-i686    testing-i686    unstable-i686
stable-x86_64  testing-x86_64  unstable-x86_64
[phil@manjaro manjarobuild]$ ls */*
stable-i686/phil.lock    testing-i686/phil.lock    unstable-i686/phil.lock
stable-i686/root.lock    testing-i686/root.lock    unstable-i686/root.lock
stable-x86_64/phil.lock  testing-x86_64/phil.lock  unstable-x86_64/phil.lock
stable-x86_64/root.lock  testing-x86_64/root.lock  unstable-x86_64/root.lock

stable-i686/phil:
bin   build        dev  home  mnt  pkgdest  root  sbin     srv  tmp  var
boot  chrootbuild  etc  lib   opt  proc     run   srcdest  sys  usr

stable-i686/root:
bin   dev  home  mnt  proc  run   srv  tmp  var
boot  etc  lib   opt  root  sbin  sys  usr

stable-x86_64/phil:
bin   build        dev  home  lib64  opt      proc  run   srcdest  sys  usr
boot  chrootbuild  etc  lib   mnt    pkgdest  root  sbin  srv      tmp  var

stable-x86_64/root:
bin   dev  home  lib64  opt   root  sbin  sys  usr
boot  etc  lib   mnt    proc  run   srv   tmp  var

testing-i686/phil:
bin   build        dev  home  mnt  pkgdest  root  sbin     srv  tmp  var
boot  chrootbuild  etc  lib   opt  proc     run   srcdest  sys  usr

testing-i686/root:
bin   dev  home  mnt  proc  run   srv  tmp  var
boot  etc  lib   opt  root  sbin  sys  usr

testing-x86_64/phil:
bin   build        dev  home  lib64  opt      proc  run   srcdest  sys  usr
boot  chrootbuild  etc  lib   mnt    pkgdest  root  sbin  srv      tmp  var

testing-x86_64/root:
bin   dev  home  lib64  opt   root  sbin  sys  usr
boot  etc  lib   mnt    proc  run   srv   tmp  var

unstable-i686/phil:
bin   build        dev  home  mnt  pkgdest  root  sbin     srv  tmp  var
boot  chrootbuild  etc  lib   opt  proc     run   srcdest  sys  usr

unstable-i686/root:
bin   dev  home  mnt  proc  run   srv  tmp  var
boot  etc  lib   opt  root  sbin  sys  usr

unstable-x86_64/phil:
bin   build        dev  home  lib64  opt      proc  run   srcdest  sys  usr
boot  chrootbuild  etc  lib   mnt    pkgdest  root  sbin  srv      tmp  var

unstable-x86_64/root:
bin   dev  home  lib64  opt   root  sbin  sys  usr
boot  etc  lib   mnt    proc  run   srv   tmp  var


Build i686 packages on an x86_64 host

It is possible to build i686 packages on an x86_64 host since all packages will get generated in a clean chroot.


Pushing packages to our repos

To push these packages to our repos is a different story and will be done by boxit. Hopefully Roland will modify boxit so more people other than our core-team can commit packages to our repos. For now, please mail philm your packages & he'll do the upload for you.


Support

Following is a link to this page's forum counterpart where you can post any related feedback: [1]