manjaro-tools/README.md

388 lines
9.8 KiB
Markdown
Raw Permalink Normal View History

2015-01-30 02:13:01 +01:00
manjaro-tools
2014-10-04 00:31:47 +02:00
=============
2016-10-19 16:01:32 +02:00
Manjaro-tools-0.14
2014-12-27 19:49:53 +01:00
User manual
2015-01-17 21:28:09 +01:00
2015-02-12 22:15:56 +01:00
###1. manjaro-tools.conf
2014-12-27 19:49:53 +01:00
2015-01-30 02:39:15 +01:00
manjaro-tools.conf is the central configuration file for manjaro-tools.
By default, the config is installed in
2015-01-30 02:13:01 +01:00
~~~
2015-01-30 02:39:15 +01:00
/etc/manjaro-tools/manjaro-tools.conf
2015-01-30 02:13:01 +01:00
~~~
2015-01-30 02:39:15 +01:00
A user manjaro-tools.conf can be placed in
2015-01-30 02:13:01 +01:00
~~~
2015-12-03 23:08:57 +01:00
$HOME/.config/manjaro-tools/manjaro-tools.conf
2015-01-30 02:13:01 +01:00
~~~
2015-01-30 02:39:15 +01:00
If the userconfig is present, manjaro-tools will load the userconfig values, however, if variables have been set in the systemwide
2015-01-30 02:13:01 +01:00
~~~
2015-12-03 23:31:59 +01:00
/etc/manjaro-tools/manjaro-tools.conf
2015-01-30 02:13:01 +01:00
~~~
2015-01-30 02:39:15 +01:00
these values take precedence over the userconfig.
Best practise is to leave systemwide file untouched.
2015-01-30 02:13:01 +01:00
By default it is commented and shows just initialization values done in code.
2015-01-13 13:41:28 +01:00
2015-02-12 22:15:56 +01:00
Tools configuration is done in manjaro-tools.conf or by args.
2015-01-30 02:39:15 +01:00
Specifying args will override manjaro-tools.conf settings.
2016-06-09 18:03:51 +02:00
User build lists(eg 'my-super-build.list') can be placed in
~~~
2016-06-09 18:03:51 +02:00
$HOME/.config/manjaro-tools/pkg.list.d
$HOME/.config/manjaro-tools/iso.list.d
~~~
overriding
~~~
2016-06-09 18:03:51 +02:00
/etc/manjaro-tools/pkg.list.d
/etc/manjaro-tools/iso.list.d
~~~
2015-01-17 21:21:54 +01:00
~~~
2015-03-02 23:42:51 +01:00
######################################################
################ manjaro-tools.conf ##################
######################################################
2015-01-17 21:21:54 +01:00
# default target branch
# target_branch=stable
2015-01-17 21:21:54 +01:00
2016-07-15 21:09:15 +02:00
# default taget arch: auto detect
2016-06-06 20:12:22 +02:00
# target_arch=$(uname -m)
2015-01-17 21:21:54 +01:00
2015-11-02 18:43:31 +01:00
# cache dir where buildpkg, buildtree cache packages/pkgbuild, builiso iso files
2015-01-17 21:21:54 +01:00
# cache_dir=/var/cache/manjaro-tools
2015-05-21 22:44:48 +02:00
# build dir where buildpkg or buildiso chroots are created
# chroots_dir=/var/lib/manjaro-tools
2016-02-26 18:22:49 +01:00
# log dir where log files are created
# log_dir='/var/log/manjaro-tools'
2015-06-03 17:27:21 +02:00
# custom build mirror server
# build_mirror=http://mirror.netzspielplatz.de/manjaro/packages
2015-01-19 05:31:52 +01:00
################ buildtree ###############
# manjaro package tree
# repo_tree=('core' 'extra' 'community' 'multilib' 'openrc')
# host_tree=https://github.com/manjaro
2015-06-12 00:06:23 +02:00
# default https seems slow; try this
# host_tree_abs=git://projects.archlinux.org/svntogit
2015-01-19 05:31:52 +01:00
2015-01-17 21:21:54 +01:00
################ buildpkg ################
2016-06-09 18:03:38 +02:00
# default pkg build list; name without .list extension
# build_list_pkg=default
2015-01-17 21:21:54 +01:00
################ buildiso ################
2016-06-09 18:03:38 +02:00
# default iso build list; name without .list extension
# build_list_iso=default
2015-01-17 21:21:54 +01:00
2016-07-15 21:09:15 +02:00
# the dist release; default: auto
2016-12-20 15:41:10 +01:00
# dist_release=17.0
2015-01-17 21:21:54 +01:00
2016-07-15 21:09:15 +02:00
# the branding; default: auto
2015-03-05 10:54:28 +01:00
# dist_branding="MJRO"
2015-01-17 21:21:54 +01:00
2016-02-17 18:55:51 +01:00
# possible values: openrc,systemd
# initsys="systemd"
# unset defaults to given value
2016-12-20 15:41:10 +01:00
# kernel="linux49"
2016-02-17 18:55:51 +01:00
2015-06-25 16:59:11 +02:00
# experimental; use overlayfs instead of aufs
2015-06-25 18:00:55 +02:00
# requires minimum 4.0 kernel on the build host and on iso in profile.conf
2016-07-15 21:09:15 +02:00
# use_overlayfs="false"
2015-11-24 17:07:23 +01:00
2017-02-15 11:52:48 +01:00
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""
2015-11-24 17:07:23 +01:00
################ deployiso ################
# the server user
2016-07-15 00:50:50 +02:00
# account=[SetUser]
2015-11-24 17:07:23 +01:00
# set upload bandwidth limit in kB/s
# limit=100
# the torrent tracker urls, comma separated
# tracker_url='udp://mirror.strits.dk:6969'
# Piece size, 2^n
# piece_size=21
2017-02-13 15:52:04 +01:00
# iso mirrors
# iso_mirrors=('heanet' 'jaist' 'netcologne' 'iweb' 'kent')
2015-03-02 23:42:51 +01:00
~~~
2015-01-18 10:04:55 +01:00
###2. buildpkg
2015-01-17 21:16:08 +01:00
2015-05-12 19:57:08 +02:00
buildpkg is the chroot build script of manjaro-tools.
2015-02-12 22:15:56 +01:00
It it run in a abs/pkgbuilds directory which contains directories with PKGBUILD.
2014-12-27 19:49:53 +01:00
2015-03-02 20:05:27 +01:00
######manjaro-tools.conf supports the makepkg.conf variables
2014-12-27 19:49:53 +01:00
2015-01-17 21:28:09 +01:00
####Arguments
2014-12-27 19:49:53 +01:00
2014-12-27 21:17:22 +01:00
~~~
2014-12-27 19:49:53 +01:00
$ buildpkg -h
Usage: buildpkg [options]
2015-05-22 00:12:35 +02:00
-p <pkg> Buildset or pkg [default: default]
2015-06-04 16:23:49 +02:00
-a <arch> Arch [default: auto]
-b <branch> Branch [default: stable]
2015-01-15 06:48:34 +01:00
-r <dir> Chroots directory
2015-06-04 16:23:49 +02:00
[default: /var/lib/manjaro-tools/buildpkg]
2015-06-02 17:44:10 +02:00
-i <pkg> Install a package into the working copy of the chroot
2014-12-27 19:49:53 +01:00
-c Recreate chroot
2015-05-22 00:12:35 +02:00
-w Clean up cache and sources
2014-12-27 19:49:53 +01:00
-n Install and run namcap check
-s Sign packages
2015-11-01 08:50:55 +01:00
-u udev base-devel group (no systemd)
2014-12-27 19:49:53 +01:00
-q Query settings and pretend build
-h This help
2014-12-27 21:17:22 +01:00
~~~
2014-12-27 19:49:53 +01:00
2015-01-30 02:13:01 +01:00
######* build sysvinit package for both arches and branch testing:
2014-12-27 19:49:53 +01:00
2015-03-02 20:05:27 +01:00
* i686(buildsystem is x86_64)
2015-01-17 21:21:54 +01:00
2015-01-17 21:11:03 +01:00
~~~
2014-12-27 19:49:53 +01:00
buildpkg -p sysvinit -a i686 -b testing -cwsn
2015-01-17 21:11:03 +01:00
~~~
2015-01-17 21:21:54 +01:00
2015-03-02 20:05:27 +01:00
* for x86_64
2015-01-17 21:21:54 +01:00
2015-01-17 21:11:03 +01:00
~~~
2014-12-27 19:49:53 +01:00
buildpkg -p sysvinit -b testing -cswn
2015-01-17 21:11:03 +01:00
~~~
2015-01-17 21:21:54 +01:00
2015-05-06 23:04:08 +02:00
You can drop the branch arg if you set the branch in manjaro-tools.conf
2015-03-05 17:33:47 +01:00
The arch can also be set in manjaro-tools.conf, but under normal conditions, it is better to specify the non native arch by -a parameter.
2014-12-27 19:49:53 +01:00
2015-01-30 02:39:15 +01:00
######* -c
2015-06-17 21:46:24 +02:00
* Removes the chroot dir
* If the -c parameter is not used, buildpkg will update the existing chroot or create a new one if none is present.
2015-01-30 02:39:15 +01:00
######* -w
2015-06-17 21:46:24 +02:00
* Cleans pkgcache, and logfiles
2015-01-30 02:39:15 +01:00
######* -s
2015-06-17 21:46:24 +02:00
* Signs the package when built
2015-01-30 02:39:15 +01:00
######* -n
2015-06-17 21:46:24 +02:00
* Installs the built package in the chroot and runs a namcap check
2014-12-27 19:49:53 +01:00
2015-10-22 12:09:59 +02:00
######* -u
* Create udev build root (for eudev builds)
2015-01-18 10:04:55 +01:00
###3. buildiso
2014-12-27 19:49:53 +01:00
2015-01-15 06:48:34 +01:00
buildiso is used to build manjaro-iso-profiles. It is run insde the profiles folder.
2014-12-27 19:49:53 +01:00
2015-01-30 02:13:01 +01:00
#####Packages for livecd only:
2014-12-27 19:49:53 +01:00
2015-01-17 21:16:08 +01:00
* manjaro-livecd-openrc
* manjaro-livecd-systemd
2014-12-27 19:49:53 +01:00
2015-01-17 21:28:09 +01:00
####Arguments
2014-12-27 19:49:53 +01:00
2014-12-27 21:17:22 +01:00
~~~
2014-12-27 19:49:53 +01:00
$ buildiso -h
Usage: buildiso [options]
2015-06-02 17:44:10 +02:00
-p <profile> Buildset or profile [default: default]
2015-06-04 16:23:49 +02:00
-a <arch> Arch [default: auto]
-b <branch> Branch [default: stable]
2015-01-15 06:48:34 +01:00
-r <dir> Chroots directory
2015-06-04 16:23:49 +02:00
[default: /var/lib/manjaro-tools/buildiso]
-t <dir> Target directory
[default: /var/cache/manjaro-tools/iso]
2016-02-17 19:19:08 +01:00
-k <name> Kernel to use
2017-02-15 11:52:48 +01:00
[default: linux49]
2016-02-17 19:26:24 +01:00
-i <name> Init system to use
2016-02-17 19:19:08 +01:00
[default: systemd]
2017-02-15 11:52:48 +01:00
-g <key> The gpg key for sfs signing
[default: empty]
-m Set SquashFS image mode to persistence
2015-01-15 06:48:34 +01:00
-c Disable clean work dir
2016-02-17 19:19:08 +01:00
-x Build images only
-z Generate iso only
2016-02-20 21:40:46 +01:00
Requires pre built images (-x)
2016-05-22 22:04:11 +02:00
-v Verbose output to log file, show profile detail (-q)
2015-01-30 02:13:01 +01:00
-q Query settings and pretend build
2014-12-27 19:49:53 +01:00
-h This help
2014-12-27 21:17:22 +01:00
~~~
2014-12-27 19:49:53 +01:00
2015-01-30 02:13:01 +01:00
######* build xfce iso profile for both arches and branch testing on x86_64 build system
2015-03-02 20:05:27 +01:00
* i686 (buildsystem is x86_64)
2015-01-17 21:21:54 +01:00
2015-01-17 21:11:03 +01:00
~~~
2015-01-30 02:39:15 +01:00
buildiso -p xfce -a i686 -b testing
2015-01-17 21:11:03 +01:00
~~~
2015-01-17 21:21:54 +01:00
2015-03-02 20:05:27 +01:00
* for x86_64
2015-01-17 21:21:54 +01:00
2015-01-17 21:11:03 +01:00
~~~
2015-01-15 06:48:34 +01:00
buildiso -p xfce -b testing
2015-01-17 21:11:03 +01:00
~~~
2015-01-17 21:21:54 +01:00
2015-01-17 21:11:03 +01:00
The branch can be defined also in manjaro-tools.conf, but a manual parameter will always override conf settings.
2014-12-27 19:49:53 +01:00
2015-01-17 21:28:09 +01:00
####Special parameters
######* -x
2015-06-17 21:46:24 +02:00
* Build images only
* will stop after all packages have been installed. No iso sqfs compression will be executed
######* -z
* Use this to sqfs compress the chroots if you previously used -x.
2016-08-21 18:58:13 +02:00
###4. check-yaml
2016-08-21 18:58:13 +02:00
check-yaml can be used to write profile package lists to yaml.
It is also possible to generate calamares conf file as buildiso would do.
yaml files are used by calamares netinstall option from a specified url(netgroups).
2016-08-21 18:58:13 +02:00
~~~
$ check-yaml -h
Usage: check-yaml [options]
-p <profile> Buildset or profile [default: default]
2016-09-18 18:05:38 +02:00
-a <arch> Arch [default: auto]
2016-08-21 18:58:13 +02:00
-k <name> Kernel to use[default: linux44]
2016-09-18 18:05:38 +02:00
-i <name> Init system to use [default: systemd]
2016-08-21 18:58:13 +02:00
-c Check also calamares yaml files generated for the profile
2016-09-18 17:08:08 +02:00
-g Enable pacman group accepted for -p
-v Validate by schema
2016-08-21 18:58:13 +02:00
-q Query settings
-h This help
~~~
######* build xfce iso profile for both arches and branch testing on x86_64 build system
* i686 (buildsystem is x86_64)
~~~
check-yaml -p xfce -a i686 -c
~~~
* for x86_64
~~~
check-yaml -p xfce -c
2016-08-21 18:58:13 +02:00
~~~
2016-09-18 17:08:08 +02:00
* for a kdebase pacman group with validation
~~~
2016-09-18 18:05:38 +02:00
check-yaml -p kdebase -gv
2016-09-18 17:08:08 +02:00
~~~
2016-08-21 18:58:13 +02:00
####Special parameters
######* -c
* generate calamares module and settings conf files per profile
2016-09-18 17:08:08 +02:00
######* -g
* generate a netgroup for specified pacman group
2016-08-21 18:58:13 +02:00
###5. buildtree
2015-01-19 05:31:52 +01:00
2015-05-12 19:57:08 +02:00
buildtree is a little tools to sync arch abs and manjaro PKGBUILD git repos.
2015-01-19 05:31:52 +01:00
####Arguments
~~~
$ buildtree -h
Usage: buildtree [options]
-s Sync manjaro tree
-a Sync arch abs
-c Clean package tree
-q Query settings
-h This help
~~~
2015-01-30 02:13:01 +01:00
######* sync arch and manjaro trees
2015-01-19 05:31:52 +01:00
~~~
buildtree -as
~~~
2015-07-03 18:02:57 +02:00
2016-08-21 18:58:13 +02:00
###6. manjaro-chroot
2015-07-03 18:02:57 +02:00
manjaro-chroot is a little tool to quickly chroot into a second system installed on the host.
If the automount option is enabled, manjaro-chroot will detect installed systems with os-prober, and pops up a list with linux systems to select from.
If there is only 1 system installed besides the host system, no list will pop up and it will automatically mount the second system.
2015-11-25 00:29:45 +01:00
####Arguments
2015-07-03 18:02:57 +02:00
~~~
$ manjaro-chroot -h
2015-12-03 23:08:57 +01:00
usage: manjaro-chroot -a [or] manjaro-chroot chroot-dir [command]
2015-07-03 18:02:57 +02:00
-a Automount detected linux system
-q Query settings and pretend
-h Print this help message
If 'command' is unspecified, manjaro-chroot will launch /bin/sh.
2015-12-03 23:08:57 +01:00
If 'automount' is true, manjaro-chroot will launch /bin/bash
and /build/manjaro-tools/manjaro-chroot.
2015-07-03 18:02:57 +02:00
~~~
######* automount
~~~
manjaro-chroot -a
~~~
######* mount manually
~~~
manjaro-chroot /mnt /bin/bash
~~~
2015-11-24 16:58:40 +01:00
2016-08-21 18:58:13 +02:00
###7. deployiso
2015-11-24 16:58:40 +01:00
deployiso is a script to upload a specific iso or a buiildset to SF.
It needs to be run inside the iso-profiles directory.
2015-11-24 17:07:23 +01:00
Ideally, you have a running ssh agent on the host, and your key added, and your public key provided to your SF account. You can then upload without being asked for ssh password.
2015-11-25 00:29:45 +01:00
####Arguments
2015-11-24 16:58:40 +01:00
~~~
$ deployiso -h
Usage: deployiso [options]
-p Source folder to upload [default:default]
2015-12-03 23:08:57 +01:00
-l Limit bandwidth in kB/s [default:80]
2016-07-12 22:27:41 +02:00
-c Create new remote release directory
-u Update remote directory
-t Create iso torrent
2015-11-24 16:58:40 +01:00
-q Query settings and pretend upload
2015-12-03 23:08:57 +01:00
-v Verbose output
2015-11-24 16:58:40 +01:00
-h This help
~~~
2016-06-09 18:03:38 +02:00
######* upload official build list, ie all built iso defined in a build list
2015-11-24 16:58:40 +01:00
~~~
deployiso -p official -c
~~~
######* upload xfce
~~~
deployiso -p xfce -c
~~~