339 lines
14 KiB
YAML
Executable File
339 lines
14 KiB
YAML
Executable File
# -*- mode: yaml; indent-tabs-mode: nil; tab-width: 2; coding: utf-8-unix -*-
|
|
|
|
---
|
|
|
|
- name: "DEBUG: base Gentoo.yml base_also_users"
|
|
debug:
|
|
verbosity: 1
|
|
msg: "DEBUG: Including base Gentoo.yml base_also_users={{base_also_users}}"
|
|
|
|
# mesa needs python on the PATH -- the right one early
|
|
- name: "/usr/lib/portage/python{{BASE_PORTAGE_PYTHON_MINOR}}/ebuild-helpers/python"
|
|
file:
|
|
# Its on the PATH in portage/.../.../temp/environment ahead of
|
|
# .../usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:...
|
|
src: "/usr/bin/python{{BASE_PORTAGE_PYTHON_MINOR}}"
|
|
dest: "/usr/lib/portage/python{{BASE_PORTAGE_PYTHON_MINOR}}/ebuild-helpers/python"
|
|
state: link
|
|
force: yes
|
|
|
|
- block: # unsafe
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo GPSD_PROTOCOLS"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml [GPSD_PROTOCOLS]"
|
|
block: |
|
|
GPSD_PROTOCOLS="nmea0183 nmea2000 aivdm"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo PORTAGE_PYTHON"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml [PORTAGE_PYTHON]"
|
|
block: |
|
|
PORTAGE_PYTHON=/usr/bin/python{{BASE_PORTAGE_PYTHON_MINOR}}
|
|
PORTAGE_PYTHONPATH=/usr/{{BASE_LIB}}/python{{BASE_PORTAGE_PYTHON_MINOR}}
|
|
# FixMe: whats this
|
|
PORTAGE_PYM_PATH=/usr/{{BASE_LIB}}/python{{BASE_PORTAGE_PYTHON_MINOR}}
|
|
#EPYTHON=?
|
|
|
|
- name: "/etc/portage/make.conf Gentoo2 FEATURES-backup"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [FEATURES-backup]"
|
|
block: |
|
|
FEATURES="${FEATURES} unmerge-backup downgrade-backup binpkg-multi-instance"
|
|
|
|
- name: "/etc/portage/make.conf Gentoo2 FEATURES"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [FEATURES]"
|
|
block: |
|
|
# https://bugs.gentoo.org/show_bug.cgi?id=605348
|
|
# buildpkg
|
|
FEATURES="${FEATURES} -collision-detect protect-owned -userfetch"
|
|
# https://forums.gentoo.org/viewtopic-p-7863632.html
|
|
FEATURES="${FEATURES} -usersandbox -userpriv userfetch fixlafiles news parallel-fetch sfperms unmerge-orphans unknown-features-warn usersync multilib-strict preserve-libs compress-build-logs parallel-install -ebuild-locks"
|
|
# If configure failed with a 'cannot run C compiled programs' error, try this:
|
|
# FEATURES='-sandbox -usersandbox' emerge sandbox
|
|
FEATURES="-sandbox -usersandbox ${FEATURES}"
|
|
# https://forums.gentoo.org/viewtopic-p-7863632.html
|
|
FEATURES="${FEATURES} -userpriv userfetch fixlafiles news parallel-fetch"
|
|
FEATURES="${FEATURES} sfperms unmerge-orphans unknown-features-warn usersync"
|
|
FEATURES="${FEATURES} multilib-strict preserve-libs"
|
|
FEATURES="${FEATURES} compress-build-logs parallel-install -ebuild-locks"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml CHOST"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml [CHOST]"
|
|
block: |
|
|
CHOST="x86_64-pc-linux-gnu"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml LLVM_TARGETS"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [LLVM_TARGETS]"
|
|
block: |
|
|
LLVM_TARGETS="X86"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml USE"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [USE]"
|
|
block: |
|
|
|
|
# 2020-02 - abi_x86_32 is in pentoo profile
|
|
# 2021-03 -abi_x86_32 may be causing havoc
|
|
# 2021-04 - gps jack lua subversion
|
|
USE="${USE} adns caps lm-sensors networkmanager oss pulseaudio vdpau vaapi xattr"
|
|
|
|
USE="${USE} -multilib -openmp"
|
|
USE="${USE} python" # ruby perl lzma
|
|
# https://wiki.gentoo.org/wiki/PulseAudio add "elogind -systemd -consolekit" globally
|
|
USE="${USE} X elogind -consolekit -systemd fbcon"
|
|
USE="${USE} xinerama x265"
|
|
USE="${USE} fbcon"
|
|
# 2019-12 python uses sqlite - but we will not do it globally
|
|
USE="${USE} curl"
|
|
USE="${USE} -nls"
|
|
# is this causing problems on the dbus with polkit?
|
|
USE="${USE} -gnome-keyring"
|
|
USE="${USE} -gnome-online-accounts"
|
|
|
|
# my changes dunno about -pentoo-full
|
|
USE="${USE} -pentoo-full -wireless" # -bluetooth
|
|
|
|
# -native-headset is from pulseaudio - requires bluetooth
|
|
# - - native-headset : Build with native HSP backend for bluez 5.
|
|
# - - ofono-headset : Build with oFono HFP backend for bluez 5,
|
|
USE="${USE} alsa -native-headset" #? bluetooth
|
|
|
|
USE="${USE} -vulkan -wayland"
|
|
|
|
USE="${USE} socks5"
|
|
USE="${USE} dbus -thunar -gnome -kde" # qt3support
|
|
USE="${USE} cups spell gpm userlocales"
|
|
USE="${USE} xvid mp3 flac vorbis ogg theora x264" # xinerama x265
|
|
USE="${USE} -ldap -icu"
|
|
# virtualbox
|
|
USE="${USE} svg jpeg png xpm scanner"
|
|
# 2020-02 from Pentoo
|
|
USE="${USE} lm-sensors"
|
|
# 2020-02 against Pentoo
|
|
USE="${USE} -gles2 -gles1"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml USE_EXPAND"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [USE_EXPAND]"
|
|
block: |
|
|
# Env vars to expand into USE vars
|
|
USE_EXPAND="${USE_EXPAND} COMPAT_DRIVERS_WIFI COMPAT_DRIVERS_ETHERNET COMPAT_DRIVERS_VARIOUS UNICORN_TARGETS"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml LDFLAGS"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [LDFLAGS]"
|
|
block: |
|
|
# This will help developers track packages, that don't respect
|
|
# LDFLAGS, down more effectively
|
|
LDFLAGS="${LDFLAGS} -Wl,--defsym=__gentoo_check_ldflags__=0"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml COMPRESS"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [COMPRESS]"
|
|
block: |
|
|
#PORTAGE_BZIP2_COMMAND="bzip2"
|
|
#PORTAGE_BUNZIP2_COMMAND="bunzip2"
|
|
|
|
# with bzip2 quickpkg --umask=0022 --include-config=y =sci-libs/metis-5.1.0-r4
|
|
# * Building package for sci-libs/metis-5.1.0-r4 ...lbzip2: unknown option "-T",
|
|
# works without anything it works (default zstd)
|
|
#! BINPKG_COMPRESS="bzip2"
|
|
# BINPKG_COMPRESS_FLAGS="-3"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml USE"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [USE]"
|
|
block: |
|
|
|
|
# was USE="${USE} X abi_x86_32 adns caps -consolekit curl elogind fbcon gps jack lm_sensors lua lzma networkmanager oss pentoo-full perl pulseaudio python ruby samba sqlite subversion vdpau vaapi xattr xinerama x265"
|
|
# 2020-02 - abi_x86_32 is in pentoo profile
|
|
# 2021-03 -abi_x86_32 may be causing havoc
|
|
# 2021-04 - gps jack lua subversion
|
|
USE="${USE} adns caps lm-sensors oss pulseaudio vdpau vaapi xattr" #? networkmanager
|
|
# https://wiki.gentoo.org/wiki/PulseAudio add "elogind -systemd -consolekit" globally
|
|
USE="${USE} X elogind -consolekit -systemd fbcon"
|
|
USE="${USE} xinerama x265"
|
|
USE="${USE} curl sqlite"
|
|
USE="${USE} -nls"
|
|
# is this causing problems on the dbus with polkit?
|
|
USE="${USE} -gnome-keyring"
|
|
|
|
# my changes dunno about -pentoo-full
|
|
USE="${USE} -pentoo-full -wireless" # -bluetooth
|
|
|
|
# my additions
|
|
USE="${USE} alsa -native-headset" #? bluetooth
|
|
USE="${USE} -vulkan -wayland"
|
|
|
|
#USE="${USE} socks5"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml PENTOO_BINPKG_RESTRICTED"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml [PENTOO_BINPKG_RESTRICTED]"
|
|
block: |
|
|
#for major use of binpkgs, we need to "fix" a few of gentoo's flaws:
|
|
#a package built against kernel A will attempt to be used even when remerging on kernel B (often to hilarious consequences)
|
|
#so we will define a long list of such packages and exclude them from being built and used (catch it on both ends to avoid issues)
|
|
PENTOO_BINPKG_RESTRICTED="sys-kernel/compat-drivers sys-kernel/ax88179_178a x11-drivers/ati-drivers x11-drivers/nvidia-drivers sys-fs/zfs-kmod sys-kernel/spl \
|
|
sys-power/bbswitch pentoo/pentoo-installer x11-drivers/xf86-video-virtualbox app-emulation/virtualbox-guest-additions \
|
|
app-emulation/virtualbox-modules app-emulation/vmware-modules app-emulation/open-vm-tools sys-kernel/genkernel dev-python/certifi \
|
|
sys-kernel/pentoo-sources dev-python/twisted-web net-analyzer/metasploit sci-libs/lapack-reference x11-base/xorg-drivers app-admin/genmenu \
|
|
net-wireless/rtl8812au_aircrack-ng pentoo/pentoo pentoo/pentoo-system media-libs/libepoxy net-wireless/gr-ieee802154 virtual/ssh virtual/service-manager \
|
|
x11-libs/libva"
|
|
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --ask-enter-invalid --keep-going=y --binpkg-respect-use=y --tree --verbose --with-bdeps=y --autounmask=n"
|
|
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --buildpkg-exclude \"${PENTOO_BINPKG_RESTRICTED}\" --usepkg-exclude \"${PENTOO_BINPKG_RESTRICTED}\""
|
|
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --binpkg-changed-deps=y --ignore-soname-deps=n"
|
|
|
|
XFCE_PLUGINS="${XFCE_PLUGINS} brightness menu logout trash"
|
|
|
|
# Log eqawarn messages
|
|
PORTAGE_ELOG_CLASSES="${PORTAGE_ELOG_CLASSES} qa"
|
|
|
|
PORTAGE_NICENESS="9"
|
|
PORTAGE_IO_NICENESS="ionice -c 3 -p \${PID}"
|
|
|
|
# Env vars to expand into USE vars
|
|
USE_EXPAND="${USE_EXPAND} COMPAT_DRIVERS_WIFI COMPAT_DRIVERS_ETHERNET COMPAT_DRIVERS_VARIOUS UNICORN_TARGETS"
|
|
|
|
#mgorny suggested this speeds up sync, in my testing it makes a rather large difference
|
|
PORTAGE_RSYNC_EXTRA_OPTS="--omit-dir-times -4"
|
|
|
|
INSTALL_MASK="/usr/lib/debug"
|
|
# this breaks things .git .
|
|
#PORTDIR="/var/db/repos"
|
|
PORTDIR="/usr/portage"
|
|
DISTDIR="/usr/portage/distfiles"
|
|
|
|
ACCEPT_LICENSE="* -@EULA intel-ucode-20180807 FraunhoferFDK"
|
|
|
|
when: false
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml CURL_SSL"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo2.yml CURL_SSL"
|
|
block: |
|
|
#? which is right nss or openssl - one only
|
|
# -openssl -axtls -gnutls -libressl -mbedtls -*
|
|
CURL_SSL="{{BASE_CURL_SSL}}"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo2.yml PKG_CONFIG_PATH"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml [PKG_CONFIG_PATH]"
|
|
block: |
|
|
PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/usr/local/lib/pkgconfig/"
|
|
- assert:
|
|
that:
|
|
- "'{{ BOX_OS_FLAVOR }}' != 'Funtoo'"
|
|
|
|
- name: "include base by-flavour tasks"
|
|
include_tasks: "roles/base/tasks/{{item}}.yml"
|
|
with_items:
|
|
- "{{ ansible_distribution }}/{{ BOX_OS_FLAVOR }}/main"
|
|
# now done as a symlink to portage.yml
|
|
# - "{{ ansible_distribution }}/{{ BOX_SERVICE_MGR }}"
|
|
|
|
- name: "/etc/portage/repos.conf/default.conf" # early
|
|
blockinfile:
|
|
dest: /etc/portage/repos.conf/default.conf
|
|
create: yes
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base"
|
|
block: |
|
|
[DEFAULT]
|
|
# /usr/share/portage/config/repos.conf
|
|
main-repo = gentoo
|
|
sync-allow-hardlinks = yes
|
|
# https://bugs.gentoo.org/552814
|
|
sync-depth = 1
|
|
|
|
|
|
- block:
|
|
|
|
- name: chown portage.portage /var/tmp/portage
|
|
shell: |
|
|
cd /root
|
|
[ -d bin ] || mkdir bin
|
|
[ -d /var/tmp/portage ] || mkdir /var/tmp/portage
|
|
chown portage.portage /var/tmp/portage
|
|
[ -d {{BASE_SCRIPT_DIR}} ] || mkdir {{BASE_SCRIPT_DIR}}
|
|
|
|
# FixMe: should be all of /usr/local/src
|
|
#
|
|
- name: "/etc/portage/profile/package.provided"
|
|
blockinfile:
|
|
dest: /etc/portage/profile/package.provided
|
|
create: yes
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo"
|
|
block: |
|
|
# /etc/portage/profile/package.provided
|
|
# file can contain a list of packages (one per line) that Portage should assume have been provided.
|
|
{% for elt in base_pkgs_provided %}
|
|
{{ elt }}
|
|
{% endfor %}
|
|
|
|
# {{ base_pkgs_provided|join('\n') }}
|
|
|
|
# put this in make.conf?
|
|
- set_fact:
|
|
portage_proxy_env: "{{ proxy_env }}"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo.yml"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} Ansible Managed Block base Gentoo.yml GRUB_PLATFORMS"
|
|
block: |
|
|
# added 2019-07
|
|
# -coreboot -qemu require fonts
|
|
# -ieee1275 -loongson -qemu-mips -uboot -xen -xen-32 -xen-pvh -themesf- coreboot -qemu
|
|
GRUB_PLATFORMS="efi-32 efi-64 emu multiboot pc"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo ACCEPT_LICENSE"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml [ACCEPT_LICENSE]"
|
|
block: |
|
|
ACCEPT_LICENSE="* -@EULA"
|
|
|
|
- name: "/etc/portage/make.conf base Gentoo VERIFY_SIG_OPENPGP_KEY_REFRESH"
|
|
blockinfile:
|
|
dest: /etc/portage/make.conf
|
|
create: false
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK base Gentoo.yml VERIFY_SIG_OPENPGP_KEY_REFRESH"
|
|
block: |
|
|
# not yes
|
|
VERIFY_SIG_OPENPGP_KEY_REFRESH=no
|
|
|