Browse Source

linux-gentoo: add overlays, update applist

master
Maxim Likhachev 4 years ago
parent
commit
c248f3adf5
  1. 1
      roles/linux-gentoo/tasks/main.yml
  2. 18
      roles/linux-gentoo/tasks/portage.yml
  3. 2
      roles/linux-gentoo/templates/portage/env/no-tmpfs.conf
  4. 12
      roles/linux-gentoo/templates/portage/make.conf.j2
  5. 7
      roles/linux-gentoo/templates/portage/repos.conf/overlays.conf.j2
  6. 16
      roles/linux-gentoo/vars/applications.yml
  7. 7
      roles/linux-gentoo/vars/overlays.yml
  8. 64
      roles/linux-gentoo/vars/portage.yml
  9. 5
      scripts/doc.sh

1
roles/linux-gentoo/tasks/main.yml

@ -4,6 +4,7 @@
- include_vars: grub.yml - include_vars: grub.yml
- include_vars: mount.yml - include_vars: mount.yml
- include_vars: portage.yml - include_vars: portage.yml
- include_vars: overlays.yml
- include_vars: applications.yml - include_vars: applications.yml
- include_vars: xorg.yml - include_vars: xorg.yml
- include_vars: cleanup.yml - include_vars: cleanup.yml

18
roles/linux-gentoo/tasks/portage.yml

@ -4,6 +4,13 @@
dest: /etc/portage/make.conf/custom.clt dest: /etc/portage/make.conf/custom.clt
notify: emerge world notify: emerge world
- name: Create extra portage directory
become: yes
file:
path: "{{ gentoo.portage.extra_directories[item] }}"
state: directory
loop: "{{ gentoo.portage.extra_directories.keys() }}"
- name: Enable SQLite in portage - name: Enable SQLite in portage
lineinfile: lineinfile:
path: /etc/portage/modules path: /etc/portage/modules
@ -27,3 +34,14 @@
- name: Update eix cache - name: Update eix cache
shell: eix-update shell: eix-update
when: eix_configured.changed when: eix_configured.changed
- name: Configure additional overlays
template:
src: portage/repos.conf/overlays.conf.j2
dest: /etc/portage/repos.conf/zz-overlays.conf
register: overlays_updated
- name: Sync portage overlays
shell: emerge --sync
when: overlays_updated.changed

2
roles/linux-gentoo/templates/portage/env/no-tmpfs.conf vendored

@ -1,4 +1,4 @@
PORTAGE_TMPDIR="/var/tmp/notmpfs" PORTAGE_TMPDIR="{{ gentoo.portage.extra_directories.notmpfs }}"
LDLAGS="-fno-lto -fno-use-linker-plugin -fuse-ld=bfd" LDLAGS="-fno-lto -fno-use-linker-plugin -fuse-ld=bfd"
LD=ld.bfd LD=ld.bfd
CFLAGS="-march=native -O2 -pipe -Wno-all -fno-lto -fno-use-linker-plugin -fuse-ld=bfd" CFLAGS="-march=native -O2 -pipe -Wno-all -fno-lto -fno-use-linker-plugin -fuse-ld=bfd"

12
roles/linux-gentoo/templates/portage/make.conf.j2

@ -3,7 +3,9 @@
#------------------------------------ #------------------------------------
# Основные опции сборки # Основные опции сборки
#------------------------------------ #------------------------------------
FEATURES="{{ gentoo.portage.features | join(' ') }}" FEATURES="{{ gentoo.portage.features | join(' ') }} {{ 'ccache' if gentoo.portage.ccache.enabled == true else '' }}"
LC_MESSAGES="C"
#------------------------------------ #------------------------------------
# Настройки компилятора # Настройки компилятора
@ -18,12 +20,16 @@ LDFLAGS="${LDFLAGS} {{ gentoo.portage.ldflags | join(' ') }}"
CFLAGS="{{ gentoo.portage.cflags | join(' ') }}" CFLAGS="{{ gentoo.portage.cflags | join(' ') }}"
CXXFLAGS="${CFLAGS}" CXXFLAGS="${CFLAGS}"
# PORTAGE_NICENESS={{ gentoo.portage.niceness }}
# PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
MAKEOPTS="{{ gentoo.portage.buildopts.common | join(' ') }} {{ gentoo.portage.buildopts.make | join(' ') }}" MAKEOPTS="{{ gentoo.portage.buildopts.common | join(' ') }} {{ gentoo.portage.buildopts.make | join(' ') }}"
# Количество пакетов для одновременной сборки. # Количество пакетов для одновременной сборки.
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} {{ gentoo.portage.buildopts.common | join(' ') }} {{ gentoo.portage.buildopts.emerge | join(' ') }}" EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} {{ gentoo.portage.buildopts.common | join(' ') }} {{ gentoo.portage.buildopts.emerge | join(' ') }}"
#PORTAGE_BUNZIP2_COMMAND="lbunzip2 -nX" # PORTAGE_BZIP2_COMMAND="lbunzip2 -n{{ ansible_processor_vcpus * 2 }}"
# PORTAGE_BUNZIP2_COMMAND="lbzip2 -n{{ ansible_processor_vcpus * 2 }}"
#---------------------------------- #----------------------------------
# Поддерживаемые архитектуры # Поддерживаемые архитектуры
@ -64,6 +70,8 @@ GRUB_PLATFORMS="efi-64 pc"
PORTAGE_ELOG_CLASSES="warn error log" PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_SYSTEM="save" PORTAGE_ELOG_SYSTEM="save"
CCACHE_SIZE="{{ gentoo.portage.ccache.size }}"
#---------------------------------- #----------------------------------
# USE-Флаги # USE-Флаги
#---------------------------------- #----------------------------------

7
roles/linux-gentoo/templates/portage/repos.conf/overlays.conf.j2

@ -0,0 +1,7 @@
{% for overlay in overlays %}
[{{ overlay }}]
location = {{ overlays[overlay]["location"] }}
sync-type = {{ overlays[overlay]["sync-type"] }}
sync-uri = {{ overlays[overlay]["sync-uri"] }}
{% endfor %}

16
roles/linux-gentoo/vars/applications.yml

@ -31,6 +31,7 @@ apps:
mask: mask:
unmask: unmask:
- media-libs/libepoxy - media-libs/libepoxy
- net-misc/lagrange
- app-admin/ansible-lint - app-admin/ansible-lint
- app-benchmarks/hyperfine - app-benchmarks/hyperfine
- sys-power/acpi_call - sys-power/acpi_call
@ -61,7 +62,9 @@ apps:
- app-text/zathura-pdf-poppler - app-text/zathura-pdf-poppler
- dev-tcltk/tklib - dev-tcltk/tklib
- dev-haskell/stack-bin ~amd64 - dev-haskell/stack-bin ~amd64
#- sys-apps/bat
- dev-libs/girara ~amd64
- sys-apps/bat
#- dev-haskell/hlint #- dev-haskell/hlint
install: install:
@ -93,16 +96,18 @@ apps:
#- games-engines/openmw # https://openmw.org/ Open source reimplementation of TES III. Morrowind. #- games-engines/openmw # https://openmw.org/ Open source reimplementation of TES III. Morrowind.
- dev-haskell/stack-bin # https://haskellstack.org/ The Haskell Tool Stack. - dev-haskell/stack-bin # https://haskellstack.org/ The Haskell Tool Stack.
- dev-lang/go # https://golang.org Programming language to build simple/reliable/efficient software. - dev-lang/go # https://golang.org Programming language to build simple/reliable/efficient software.
- dev-lang/jimtcl # http://jim.tcl.tk/ Small footprint implementation of Tcl programming language.
- dev-lang/tcl # https://tcl.tk TCL Programming language. - dev-lang/tcl # https://tcl.tk TCL Programming language.
- dev-lang/tk # https://tcl.tk GUI ToolKit for TCL Programming language. - dev-lang/tk # https://tcl.tk GUI ToolKit for TCL Programming language.
- =dev-libs/xapian-1.2.25 # https://www.xapian.org/ Xapian Probabilistic Information Retrieval library. - =dev-libs/xapian-1.2.25 # https://www.xapian.org/ Xapian Probabilistic Information Retrieval library.
- dev-python/pip # https://pip.pypa.io/ Installs python packages. - dev-python/pip # https://pip.pypa.io/ Installs python packages.
- dev-util/git-delta # https://github.com/dandavison/delta A syntax-highlighting pager for git.
- dev-util/shellcheck-bin # https://www.shellcheck.net/ Static analysis and lint tool, for (ba)sh scripts. - dev-util/shellcheck-bin # https://www.shellcheck.net/ Static analysis and lint tool, for (ba)sh scripts.
- dev-util/ccache # https://ccache.dev/ Fast compiler cache. - dev-util/ccache # https://ccache.dev/ Fast compiler cache.
- dev-vcs/git # https://git-scm.com Distributed revision control system. - dev-vcs/git # https://git-scm.com Distributed revision control system.
- mail-client/mutt # http://www.mutt.org/ A small but very powerful text-based mail client. - mail-client/mutt # http://www.mutt.org/ A small but very powerful text-based mail client.
- mail-filter/procmail # http://www.procmail.org/ Mail delivery agent. - mail-filter/procmail # http://www.procmail.org/ Mail delivery agent.
- media-gfx/geeqie # http://www.geeqie.org/ lightweight image viewer for Linux, BSDs and compatibles. # - media-gfx/geeqie # http://www.geeqie.org/ lightweight image viewer for Linux, BSDs and compatibles.
- media-gfx/imagemagick # https://www.imagemagick.org/ Tools and libraries to manipulate images in many formats. - media-gfx/imagemagick # https://www.imagemagick.org/ Tools and libraries to manipulate images in many formats.
- media-gfx/sxiv # https://github.com/muennich/sxiv Simple X Image Viewer. - media-gfx/sxiv # https://github.com/muennich/sxiv Simple X Image Viewer.
- media-libs/exiftool # https://www.sno.phy.queensu.ca/~phil/exiftool/index.html Perl lib for reading and writing EXIF metadata. - media-libs/exiftool # https://www.sno.phy.queensu.ca/~phil/exiftool/index.html Perl lib for reading and writing EXIF metadata.
@ -113,16 +118,18 @@ apps:
- media-sound/ncmpcpp # https://rybczak.net/ncmpcpp/ NCurses Music Player Client (Plus Plus). - media-sound/ncmpcpp # https://rybczak.net/ncmpcpp/ NCurses Music Player Client (Plus Plus).
- media-video/mpv # https://mpv.io/ Free, open source, and cross-platform media player. - media-video/mpv # https://mpv.io/ Free, open source, and cross-platform media player.
- net-fs/sshfs # https://github.com/libfuse/sshfs A network filesystem client to connect to SSH servers. - net-fs/sshfs # https://github.com/libfuse/sshfs A network filesystem client to connect to SSH servers.
#- net-news/newsboat # https://newsboat.org/ An RSS/Atom feed reader for text terminals.
- net-libs/nodejs # https://nodejs.org Platform built on V8 to build network applications. - net-libs/nodejs # https://nodejs.org Platform built on V8 to build network applications.
- net-mail/fetchmail # https://www.fetchmail.info Full-featured, robust, well-documented remote-mail retrieval and forwarding utility. - net-mail/fetchmail # https://www.fetchmail.info Full-featured, robust, well-documented remote-mail retrieval and forwarding utility.
- net-misc/aria2 # https://aria2.github.io Lightweight multi-protocol & multi-source command-line download utility. - net-misc/aria2 # https://aria2.github.io Lightweight multi-protocol & multi-source command-line download utility.
- net-misc/connman # https://01.org/connman Internet connection daemon. - net-misc/connman # https://01.org/connman Internet connection daemon.
- net-misc/curl # https://curl.haxx.se/ Get a file from an HTTP, HTTPS or FTP server. - net-misc/curl # https://curl.haxx.se/ Get a file from an HTTP, HTTPS or FTP server.
- net-misc/lagrange # https://gmi.skyjake.fi/lagrange/ https://git.skyjake.fi/gemini/lagrange Desktop GUI client for browsing Geminispace.
- net-misc/wget # https://www.gnu.org/software/wget/ Internet file retriever. - net-misc/wget # https://www.gnu.org/software/wget/ Internet file retriever.
- sys-apps/coreutils # https://www.gnu.org/software/coreutils GNU File, Shell, and Text utilities. - sys-apps/coreutils # https://www.gnu.org/software/coreutils GNU File, Shell, and Text utilities.
#- sys-cluster/k9scli # https://k9scli.io terminal based UI to manage kubernetes clusters.
#- sys-fs/android-file-transfer-linux # https://github.com/whoozle/android-file-transfer-linux Android File Transfer for Linux. #- sys-fs/android-file-transfer-linux # https://github.com/whoozle/android-file-transfer-linux Android File Transfer for Linux.
- sys-fs/dfc # https://projects.gw-computing.net/projects/dfc Display graphs and colors of file system space/usage. - sys-fs/dfc # https://projects.gw-computing.net/projects/dfc Display graphs and colors of file system space/usage.
- sys-apps/bat # https://github.com/sharkdp/bat Clone of cat(1) with syntax highlighting and Git integration. **[BIN]**
- sys-apps/findutils # https://www.gnu.org/software/findutils/ Collection of GNU find, xargs, and locate. - sys-apps/findutils # https://www.gnu.org/software/findutils/ Collection of GNU find, xargs, and locate.
- sys-apps/gawk # https://www.gnu.org/software/gawk/ GNU awk utility. - sys-apps/gawk # https://www.gnu.org/software/gawk/ GNU awk utility.
- sys-fs/ntfs3g # https://www.tuxera.com/community/open-source-ntfs-3g/ Read-write NTFS driver for FUSE. - sys-fs/ntfs3g # https://www.tuxera.com/community/open-source-ntfs-3g/ Read-write NTFS driver for FUSE.
@ -143,7 +150,7 @@ apps:
- www-client/vivaldi # https://vivaldi.com A web browser which works without pulse-audio. - www-client/vivaldi # https://vivaldi.com A web browser which works without pulse-audio.
- www-client/w3m # https://github.com/tats/w3m Text based WWW browser, supports tables and frames. - www-client/w3m # https://github.com/tats/w3m Text based WWW browser, supports tables and frames.
- sys-kernel/linux-firmware # https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git Linux firmware files. - sys-kernel/linux-firmware # https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git Linux firmware files.
- sys-apps/ripgrep # https://github.com/BurntSushi/ripgrep Search tool like grep and The Silver Searcher. # - sys-apps/ripgrep # https://github.com/BurntSushi/ripgrep Search tool like grep and The Silver Searcher.
- sys-apps/fd # https://github.com/sharkdp/fd Simple, fast and user-friendly alternative to find. - sys-apps/fd # https://github.com/sharkdp/fd Simple, fast and user-friendly alternative to find.
- sys-apps/preload - sys-apps/preload
@ -169,7 +176,6 @@ apps:
#- app-text/odt2txt # https://github.com/dstosberg/odt2txt/ Convert OpenDocument files to plain text. #- app-text/odt2txt # https://github.com/dstosberg/odt2txt/ Convert OpenDocument files to plain text.
#- dev-haskell/hlint # https://github.com/ndmitchell/hlint Haskell source code suggestions. **[BIN]** #- dev-haskell/hlint # https://github.com/ndmitchell/hlint Haskell source code suggestions. **[BIN]**
#- sys-apps/bat # https://github.com/sharkdp/bat Clone of cat(1) with syntax highlighting and Git integration. **[BIN]**
#- media-gfx/graphviz #- media-gfx/graphviz
#- x11-misc/dunst #- x11-misc/dunst

7
roles/linux-gentoo/vars/overlays.yml

@ -0,0 +1,7 @@
overlays:
guru:
location: /var/db/repos/guru
sync-type: git
sync-uri: https://github.com/gentoo-mirror/guru.git

64
roles/linux-gentoo/vars/portage.yml

@ -19,10 +19,23 @@ gentoo:
video: video:
- intel - intel
portage: portage:
extra_directories:
notmpfs: /var/portage
features: features:
- -getbinpkg - -getbinpkg
- parallel-fetch - parallel-fetch # enabled by default
- parallel-install
- metadata-transfer - metadata-transfer
- cgroup
- collision-protect
- nodoc
- noinfo
- sandbox
- strict
- userfetch
- usersandbox
- usersync
- xattr
ldflags: ldflags:
- -O2 - -O2
# - -flto={{ ansible_processor_vcpus }} # - -flto={{ ansible_processor_vcpus }}
@ -49,6 +62,7 @@ gentoo:
#- -msse4.2 #- -msse4.2
#- -mssse3 #- -mssse3
#- -ftree-vectorize #- -ftree-vectorize
niceness: 0
buildopts: buildopts:
common: common:
- --jobs={{ ansible_processor_vcpus * 2 }} # Максимальное количество запускаемых копий make - --jobs={{ ansible_processor_vcpus * 2 }} # Максимальное количество запускаемых копий make
@ -57,6 +71,10 @@ gentoo:
- -s # Уменьшение количества выводимой информации - -s # Уменьшение количества выводимой информации
emerge: emerge:
- --keep-going # Не прерывать сборку при ошибках - --keep-going # Не прерывать сборку при ошибках
- --jobs 9
ccache:
enabled: true
size: 5G
eix: eix:
colorscheme: 1 colorscheme: 1
@ -66,10 +84,10 @@ gentoo:
cache_method: sqlite cache_method: sqlite
use: use:
env: [] env:
# - template: no-lto.conf - template: no-tmpfs.conf
# packages: packages:
# - app-text/poppler - sys-devel/gcc
config: config:
- x11-misc/dmenu - x11-misc/dmenu
@ -79,19 +97,19 @@ gentoo:
custom: custom:
######## python 2.7 only ######## ######## python 2.7 only ########
- sys-apps/calculate-utils minimal gpg -backup -install -console python_targets_python2_7 # - sys-apps/calculate-utils minimal gpg -backup -install -console python_targets_python2_7
# - "app-emulation/virtualbox-bin PYTHON_TARGETS: python2_7" # - "app-emulation/virtualbox-bin PYTHON_TARGETS: python2_7"
# - "app-emulation/virtualbox-modules PYTHON_TARGETS: python2_7" # - "app-emulation/virtualbox-modules PYTHON_TARGETS: python2_7"
- dev-python/setuptools python_targets_python3_9 # - dev-python/setuptools python_targets_python3_9
- dev-python/setuptools-python2 python_targets_python2_7 # - dev-python/setuptools-python2 python_targets_python2_7
- dev-python/certifi-python2 python_targets_python2_7 # - dev-python/certifi-python2 python_targets_python2_7
- dev-python/cython-python2 python_targets_python2_7 # - dev-python/cython-python2 python_targets_python2_7
- "dev-python/soaplib PYTHON_TARGETS: python2_7" # - "dev-python/soaplib PYTHON_TARGETS: python2_7"
- "dev-python/pytz PYTHON_TARGETS: python2_7" # - "dev-python/pytz PYTHON_TARGETS: python2_7"
- "dev-python/pyxml PYTHON_TARGETS: python2_7" # - "dev-python/pyxml PYTHON_TARGETS: python2_7"
- "dev-python/pexpect-python2 PYTHON_TARGETS: python2_7" # - "dev-python/pexpect-python2 PYTHON_TARGETS: python2_7"
- "dev-python/passlib PYTHON_TARGETS: python2_7" # - "dev-python/passlib PYTHON_TARGETS: python2_7"
- dev-lua/lpeg lua_targets_luajit - dev-lua/lpeg lua_targets_luajit
- dev-lua/mpack lua_targets_luajit - dev-lua/mpack lua_targets_luajit
@ -99,13 +117,13 @@ gentoo:
- media-libs/libepoxy X - media-libs/libepoxy X
######## python 2.7 and 3.10 ######## ######## python 2.7 and 3.10 ########
- dev-python/lxml-python2 python_targets_python2_7 python_targets_python3_9 # - dev-python/lxml-python2 python_targets_python2_7 python_targets_python3_9
# - dev-python/lxml python_targets_python2_7 python_targets_python3_9 # - dev-python/lxml python_targets_python2_7 python_targets_python3_9
- dev-python/certifi python_targets_python3_9 # - dev-python/certifi python_targets_python3_9
- dev-python/cython python_targets_python3_9 # - dev-python/cython python_targets_python3_9
- dev-python/pexpect python_targets_python2_7 python_targets_python3_9 # - dev-python/pexpect python_targets_python2_7 python_targets_python3_9
- dev-python/ptyprocess-python2 python_targets_python2_7 # - dev-python/ptyprocess-python2 python_targets_python2_7
- dev-python/pytz-python2 python_targets_python2_7 # - dev-python/pytz-python2 python_targets_python2_7
# - app-i18n/uim X # - app-i18n/uim X
# - dev-libs/glib dbus # - dev-libs/glib dbus
@ -141,6 +159,7 @@ gentoo:
- dev-python/ipython -smp - dev-python/ipython -smp
- dev-python/netaddr -cli - dev-python/netaddr -cli
- dev-python/pyyaml libyaml - dev-python/pyyaml libyaml
- dev-util/pkgconf pkg-config
- dev-vcs/git blksha1 curl pcre-jit webdav - dev-vcs/git blksha1 curl pcre-jit webdav
- dev-games/openscenegraph-openmw ffmpeg svg - dev-games/openscenegraph-openmw ffmpeg svg
- games-engines/openmw osg-fork - games-engines/openmw osg-fork
@ -166,6 +185,7 @@ gentoo:
- media-video/ffmpeg -amr -jpeg2k -libaom -network -openssl -postproc -sdl -webp gpl gnutls encode cpudetection chromium # chromium for vivaldi - media-video/ffmpeg -amr -jpeg2k -libaom -network -openssl -postproc -sdl -webp gpl gnutls encode cpudetection chromium # chromium for vivaldi
- media-video/mpv X cli -egl -iconv -jpeg -libmpv -sdl -xv - media-video/mpv X cli -egl -iconv -jpeg -libmpv -sdl -xv
- net-firewall/iptables ipv6 # Required by libpod/podman - net-firewall/iptables ipv6 # Required by libpod/podman
- net-libs/nodejs npm
- net-misc/aria2 bittorrent gnutls libxml2 nettle - net-misc/aria2 bittorrent gnutls libxml2 nettle
- net-misc/connman iptables wifi - net-misc/connman iptables wifi
- net-misc/curl http2 openssl progress-meter - net-misc/curl http2 openssl progress-meter
@ -202,7 +222,7 @@ gentoo:
- x11-base/xorg-server -minimal xorg suid - x11-base/xorg-server -minimal xorg suid
- x11-drivers/xf86-video-intel dri sna uddev uxa xvmc # Default USE flags. - x11-drivers/xf86-video-intel dri sna uddev uxa xvmc # Default USE flags.
- x11-drivers/nvidia-drivers X driver tools - x11-drivers/nvidia-drivers X driver tools
- x11-libs/cairo svg # Required by gtk+ - x11-libs/cairo X svg # Required by gtk+
- x11-libs/gtk+ X - x11-libs/gtk+ X
- x11-libs/libxcb X xkb - x11-libs/libxcb X xkb
- x11-libs/pango X - x11-libs/pango X

5
scripts/doc.sh

@ -11,14 +11,17 @@ APP_ALIASES=$(cat <<-EOF
firefox:firefox-bin firefox:firefox-bin
ghostscript:ghostscript-gpl ghostscript:ghostscript-gpl
haskell-stack:stack-bin haskell-stack:stack-bin
k9s:k9scli
ntfs-3g:ntfs3g ntfs-3g:ntfs3g
rar:unrar
shellcheck:shellcheck-bin shellcheck:shellcheck-bin
tcl:jimtcl
tk:tcl-tk tk:tcl-tk
EOF EOF
) )
get_alias() { get_alias() {
grep -E ":?${1}:?" <<<"${APP_ALIASES[*]}" | sed -E "s/:?${1}:?//" ugrep -E ":?${1}:?" <<<"${APP_ALIASES[*]}" | sed -E "s/:?${1}:?//"
} }
description() { description() {

Loading…
Cancel
Save