diff --git a/catalyst.conf b/catalyst.conf new file mode 100644 index 0000000..d39811e --- /dev/null +++ b/catalyst.conf @@ -0,0 +1,139 @@ +# /etc/catalyst/catalyst.conf + +# Simple descriptions of catalyst settings. Please refer to the online +# documentation for more information. + +# Creates a .DIGESTS file containing the hash output from any of the supported +# options below. Adding them all may take a long time on slower systems. The +# special "auto" keyword will skip digests that the system does not support, +# and if it's the only keyword given, will default to enabling all digests. +# Supported hashes: +# adler32, crc32, crc32b, gost, haval128, haval160, haval192, haval224, +# haval256, md2, md4, md5, ripemd128, ripemd160, ripemd256, ripemd320, sha1, +# sha224, sha256, sha384, sha512, snefru128, snefru256, tiger, tiger128, +# tiger160, whirlpool +digests="sha512 whirlpool" +#digests="" + +# Creates a .CONTENTS file listing the contents of the file. Pick from any of +# the supported options below: +# auto - strongly recommended +# tar_tv - does 'tar tvf FILE' +# tar_tvz - does 'tar tvzf FILE' +# tar_tvy - does 'tar tvyf FILE' +# isoinfo_l - does 'isoinfo -l -i FILE' +# isoinfo_f - does 'isoinfo -f -i FILE' +# 'isoinfo_f' is the only option not chosen by the automatic algorithm. +# If this variable is empty, no .CONTENTS will be generated at all. +contents="auto" + +# distdir specifies where your distfiles are located. This setting should +# work fine for most default installations. +distdir="/var/cache/portage/distfiles" + +# envscript allows users to set options such as http proxies, MAKEOPTS, +# GENTOO_MIRRORS, or any other environment variables needed for building. +# The envscript file sets environment variables like so: +# export FOO="bar" +envscript="/catalystrc" + +# Internal hash function catalyst should use for things like autoresume, +# seedcache, etc. The default and fastest is crc32. You should not ever need +# to change this unless your OS does not support it. +# Supported hashes: +# adler32, crc32, crc32b, gost, haval128, haval160, haval192, haval224, +# haval256, md2, md4, md5, ripemd128, ripemd160, ripemd256, ripemd320, sha1, +# sha224, sha256, sha384, sha512, snefru128, snefru256, tiger, tiger128, +# tiger160, whirlpool +hash_function="crc32" + +# options set different build-time options for catalyst. Some examples are: +# autoresume = Attempt to resume a failed build, clear the autoresume flags with +# the -a option to the catalyst cmdline. -p will clear the autoresume flags +# as well as your pkgcache and kerncache +# ( This option is not fully tested, bug reports welcome ) +# bindist = enables the bindist USE flag, please see package specific definition, +# however, it is suggested to enable this if redistributing builds. +# This optional USE flag is normally cleaned from the make.conf file on +# completion of the stage. For a non-cleaned version, +# use sticky-config also (see below) +# ccache = enables build time ccache support +# distcc = enable distcc support for building. You have to set distcc_hosts in +# your spec file. +# icecream = enables icecream compiler cluster support for building +# keepwork = Prevents the removal of the working chroot path and any autoresume +# files or points. +# kerncache = keeps a tbz2 of your built kernel and modules (useful if your +# build stops in livecd-stage2) +# pkgcache = keeps a tbz2 of every built package (useful if your build stops +# prematurely) +# preserve_libs = enables portage to preserve used libs when unmerging packages +# (used on installcd-stage2 and stage4 targets) +# seedcache = use the build output of a previous target if it exists to speed up +# the copy +# snapcache = cache the snapshot so that it can be bind-mounted into the chroot. +# WARNING: moving parts of the portage tree from within fsscript *will* break +# your cache. The cache is unlinked before any empty or rm processing, though. +# sticky-config = enables the code that will keep any internal 'catalyst_use' flags +# added to the USE= for building the stage. These ae usually added for legal +# or specific needs in building the the early stage. Mostly it is the +# 'bindist' USE flag option that is used for legal reasons, please see its +# specific definition. It will also keep any /etc/portage/package.* +# files or directories. +# +# (These options can be used together) +#options="autoresume bindist kerncache pkgcache seedcache snapcache" +options="autoresume metadata_overlay pkgcache seedcache" + +# Source portdir specifies the source portage tree used by the snapshot target. +portdir="/usr/portage" + +# Target portdir setting. It needs to be in 2 parts. +# They will be used separately, then added together where needed. +# eg: +# repo_basedir="/var/lib/repos" +# repo_name="gentoo" +# +repo_basedir="/usr" +repo_name="portage" +target_distdir="/var/cache/portage/distfiles" +target_pkgdir="/var/cache/portage/packages" + +# sharedir specifies where all of the catalyst runtime executables +# and other shared lib objects are. +# Most users do not need to change this. +sharedir="/usr/local/share/catalyst" + +# shdir specifies where all of the catalyst runtime executables are. +shdir="%(sharedir)s/targets" + +# snapshot_cache specifies where the snapshots will be cached to if snapcache is +# enabled in the options. +snapshot_cache="/var/lib/catalyst/snapshot_cache" + +# storedir specifies where catalyst will store everything that it builds, and +# also where it will put its temporary files and caches. +storedir="/var/lib/catalyst/store" + +# source_matching specifies how catalyst will match non-specific file names +# if the filename is not found as an exact match. +# ie: a filename without the extension specified. "/path/to/foo" +# +# possible values are: +# "strict" meaning if more than one file of that name is present with any +# file extension, then it will raise an exception. +# "loose" meaning it will search for an existing filename with an added +# extension from an ordered list of extensions determined from the +# decompressor_search_order specification in the spec file or (default) +source_matching="strict" + +# port_logdir is where all build logs will be kept. This dir will be automatically cleaned +# of all logs over 30 days old. If left undefined the logs will remain in the build directory +# as usual and get cleaned every time a stage build is restarted. +# port_logdir="/var/tmp/catalyst/tmp" + +# var_tmpfs_portage will mount a tmpfs for /var/tmp/portage so building takes place in RAM +# this feature requires a pretty large tmpfs ({open,libre}office needs ~8GB to build) +# WARNING: If you use too much RAM everything will fail horribly and it is not our fault. +# set size of /var/tmp/portage tmpfs in gigabytes +var_tmpfs_portage=10 diff --git a/catalystrc b/catalystrc new file mode 100644 index 0000000..e3f6d22 --- /dev/null +++ b/catalystrc @@ -0,0 +1,35 @@ +#!/bin/bash +# This is an example catalystrc. As such, it doesn't actually *do* anything. + +# Uncomment the following to increase the number of threads used to compile. +# export MAKEOPTS="-j16" + +#export EMERGE_DEFAULT_OPTS=-j8 + +export BINPKG_COMPRESS="gzip" +#export BINPKG_COMPRESS_FLAGS="-4" + +export SHELL=/bin/bash +export PYTHON=python + +# We're going unstable +export ACCEPT_KEYWORDS="~amd64" + +# Hardware flags +export CPU_FLAGS_X86="aes mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" +export ABI_X86="32 64" +#export LLVM_TARGETS="X86" +export VIDEO_CARDS="i915 i965 intel nouveau amdgpu radeon r600" +export INPUT_DEVICES="evdev keyboard libinput mouse synaptics joystick" + + +# Software environments. +export PYTHON_TARGETS="python2_7 python3_6 python3_7" +export PYTHON_SINGLE_TARGET="python3_6" +export RUBY_TARGETS="ruby25" + +# Internationalization +export L10N="en fr" + +#export USE="gold plugins" +#export USE="-filecaps" diff --git a/entrypoint.sh b/entrypoint.sh index f2df730..3a664ce 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -33,13 +33,13 @@ wget -q -N -P /var/lib/catalyst/store/snapshots/ \ https://gentoo.osuosl.org/releases/snapshots/current/portage-latest.tar.bz2 # Build stage1 snapshot -catalyst -c /var/lib/catalyst/catalyst.conf -f /stage1.spec -p $* +catalyst -c /catalyst.conf -f /stage1.spec -p $* # Build stage2 snapshot -catalyst -c /var/lib/catalyst/catalyst.conf -f /stage2.spec -p $* +catalyst -c /catalyst.conf -f /stage2.spec -p $* # Build stage3 snapshot -catalyst -c /var/lib/catalyst/catalyst.conf -f /stage3.spec -p $* +catalyst -c /catalyst.conf -f /stage3.spec -p $* # Build custom packages catalyst -c /var/lib/catalyst/catalyst.conf -f /var/lib/catalyst/stage4.spec $*