Gentoo
Table of Contents
Distribution orientée sécurité: Pentoo.
1. Ma configuration
1.1. Overlays
- gentoo-zh
- localsend
- guru
- tokei, raylib, slstatus
- hamari
- cutter, radare2, rz-ghidra
- joecool
- netbird
- pentoo
- logiciels de cyber (GHidra, apktool, jdx-bin…)
lanodanOverlay- grammalecte
1.2. Configuration Kernel
debianutils et installkernel pour pouvoir installer le noyau avec
make install.
Liste de paramètres acivés pour une raison particulière connues.
HIGH_RES_TIMERS: pour activer KVM pour QemuUDF_FSetISO9660_FS: pourdistrobuilderPOSIX_MQUEUE: pour Docker- pour pouvoir dechiffrer le disque :
CONFIG_MDBLK_DEV_DMDM_CRYPT
BLK_DEV_INITRD
1.3. Paquets installés
- media-gfx/graphviz (cairo pdf) latexmk imagemagick (svg png) media-fonts/dejavu dev-texlive/texlive-xetex dev-python/sphinx
- documentation noyau
- dev-util/android-tools
- outils android (abd)
- dev-util/apktool
- outil android pour ouvrir les fichiers APK.
- dev-util/jadx
- décompilation Java
- cc65
- pour crosscompiler pour la NES
2. Luminosité
2.1. Wayland
Avec acpilight.
2.2. X11
besoin de dev-libs/light (mais plus maintenu, à changer un jour)
2.2.1. Configuration DWM
Fichier /etc/portage/savedconfig/x11-wm/dwm-6.5:
/* some lines */ static const char *lightdec[] = { "light", "-U", "5", NULL }; static const char *lightinc[] = { "light", "-A", "5", NULL }; static Key keys[] = { /* some keys */ { 0, XF86XK_MonBrightnessUp, spawn, {.v = lightinc} }, { 0, XF86XK_MonBrightnessDown, spawn, {.v = lightdec} }, } /* some lines */
3. Installation cross-compilateur pour Arduino et ESP32
- etre dans le groupe
dialout - suivre la page pour Arduino ou crossdev
- pas besoin de changer le groupe pour
portage:portagesi tout a été créé enrootet que les autres dossiers le sont aussi - si le dépôt ne s'appelle pas crossdev, il faut le préciser en
rajoutant
-oO /path/to/repodans la commande
esptool pour pouvoir flasher le firmware.
Installer emerge -1a dev-embedded/esp-idf.
4. Distcc
/etc/init.d : liste des services openrc
equery a repository ${overlay_name} pour lister les paquets
installés depuis un dépot
5. virt manager
Permet de manager ses VMs Qemu via une interface graphique. J'ai
modifié le fichier /etc/dnsmasq.conf pour pouvoir avoir un pont
réseau. J'ai activé les options bind-interfaces et
interface. Un test sans ces changements est à faire dans un
premier temps.
6. LXD / Incus
6.1. Incus
Utilisation de Incus pour tester les paquets de Gentoo (wiki). Je me
suis rajouté dans les groupes incus et incus-admin (même si cela
n'est pas recommandé par le wiki).
6.2. LXD
echo app-emulation/qemu virtfs | doas tee /etc/portage/package.use/package.use echo app-arch/wimlib fuse | doas tee /etc/portage/package.use/package.use # vérifier les fannions du noyau avant ! doas emerge distrobuilder lxd hivex wimlib gtk-vnc qemu
Avant la 3.1 de distrobuilder, il faut mettre ce patch afin de pouvoir utiliser mkisofs au lieu de genisoimage.
doas mkdir -p /etc/portage/patches/app-containers/distrobuilder
doas cat <<EOF
From 91ab435f54d1665e5f5c0497568ae7985c6b8b38 Mon Sep 17 00:00:00 2001
From: rick <rick@gnous.eu>
Date: Wed, 25 Oct 2023 15:49:14 +0200
Subject: [PATCH] change genisoimage for mkisofs
---
distrobuilder/main_repack-windows.go | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/distrobuilder/main_repack-windows.go b/distrobuilder/main_repack-windows.go
index 76735f2..cbeae34 100644
--- a/distrobuilder/main_repack-windows.go
+++ b/distrobuilder/main_repack-windows.go
@@ -327,17 +327,17 @@ func (c *cmdRepackWindows) run(cmd *cobra.Command, args []string, overlayDir str
logger.Info("Generating new ISO")
var stdout strings.Builder
- err = shared.RunCommand(c.global.ctx, nil, &stdout, "genisoimage", "--version")
+ err = shared.RunCommand(c.global.ctx, nil, &stdout, "mkisofs", "--version")
if err != nil {
- return fmt.Errorf("Failed to determine version of genisoimage: %w", err)
+ return fmt.Errorf("Failed to determine version of mkisofs: %w", err)
}
version := strings.Split(stdout.String(), "\n")[0]
if strings.HasPrefix(version, "mkisofs") {
- err = shared.RunCommand(c.global.ctx, nil, nil, "genisoimage", "-iso-level", "3", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
+ err = shared.RunCommand(c.global.ctx, nil, nil, "mkisofs", "-iso-level", "3", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
} else {
- err = shared.RunCommand(c.global.ctx, nil, nil, "genisoimage", "--allow-limited-size", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
+ err = shared.RunCommand(c.global.ctx, nil, nil, "mkisofs", "-l", "-no-emul-boot", "-b", "efi/microsoft/boot/efisys.bin", "-o", args[1], overlayDir)
}
if err != nil {
@@ -413,7 +413,7 @@ func (c *cmdRepackWindows) modifyWim(path string, index int) error {
}
func (c *cmdRepackWindows) checkDependencies() error {
- dependencies := []string{"genisoimage", "hivexregedit", "rsync", "wimlib-imagex"}
+ dependencies := []string{"mkisofs", "hivexregedit", "rsync", "wimlib-imagex"}
for _, dep := range dependencies {
_, err := exec.LookPath(dep)
--
2.42.0
EOF
7. Pentoo
- aiosmb,dropbox-sdk -> changer keywords
- django-guardian -> recheck pour faire la documentation
- appmon
- androdguard
8. Ebuild
Paquets à installer:
- gentoolkit
- pkgdev
- pkgcheck (installé avec pkgdev)
8.1. Maintenance ebuild Python
distutils eclass et guide Python.
à installer: sphinx et pytest (de base pour la doc et les tests)
8.1.1. Exemples
python_install_all() {
if use examples; then
dodoc -r examples
docompress -x /usr/share/doc/${PF}/examples
fi
distutils-r1_python_install_all
}
8.2. Test
Lorsque le paquet a des dépendances de test et que l'on doit les
rajouter avec le flag test, il faut restreindre ces derniers.
RESTRICT="!test? ( test )"
#...
BDEPEND="
${RDEPEND}
test? (
sci-ml/tokenizers
)
"
Lorsque les tests sont ajoutés avec distutils_enable_tests (par
exemple), pas besoin de rajouter cette indication.
Lorsque de dossiers tests présents mais qu'aucun test n'est fait (à
cause de bugs par exemple), il est possible de cacher ces messages en
restreingnant les tests avec RESTRICT"test"=.