Optimized Python package building

This commit is contained in:
Kevin Veen-Birkenbach
2026-07-14 12:05:08 +02:00
parent a8c321fca1
commit 557fe159d5
8 changed files with 45 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
"""Read-only access to the image catalog (distributions.yml in the repo root)."""
"""Read-only access to the image catalog (distributions.yml in the package)."""
from functools import cache
@@ -6,7 +6,7 @@ import yaml
from lim import config
CATALOG_PATH = config.REPOSITORY_PATH / "distributions.yml"
CATALOG_PATH = config.CATALOG_PATH
@cache

View File

@@ -1,10 +1,17 @@
"""Repository paths shared by all modules."""
"""Package and repository paths shared by all modules.
Configuration and the image catalog ship inside the package so that
wheel installs work; the encfs data store stays repository-relative.
"""
from pathlib import Path
REPOSITORY_PATH = Path(__file__).resolve().parent.parent
CONFIGURATION_PATH = REPOSITORY_PATH / "configuration"
PACKAGE_ROOT = Path(__file__).resolve().parent
CONFIGURATION_PATH = PACKAGE_ROOT / "configuration"
PACKAGE_PATH = CONFIGURATION_PATH / "packages"
CATALOG_PATH = PACKAGE_ROOT / "distributions.yml"
REPOSITORY_PATH = PACKAGE_ROOT.parent
ENCRYPTED_PATH = REPOSITORY_PATH / ".encrypted"
DECRYPTED_PATH = REPOSITORY_PATH / "decrypted"
DATA_PATH = DECRYPTED_PATH / "data"

View File

@@ -0,0 +1,6 @@
# This packages will be used in all setup scripts
nano
tree
htop
git
sudo

View File

@@ -0,0 +1,8 @@
# Packages to install LUKS on servers
rsync
base-devel
uboot-tools
dropbear
mkinitcpio-utils
mkinitcpio-netconf
mkinitcpio-dropbear

67
lim/distributions.yml Normal file
View File

@@ -0,0 +1,67 @@
# Single point of truth for the downloadable image catalog.
# Consumed by lim/catalog.py.
# Image and LUKS --pbkdf-memory cost per Raspberry Pi version.
arch_rpi_images:
"1":
image: ArchLinuxARM-rpi-armv7-latest.tar.gz
luks_memory_cost: "64000"
"2":
image: ArchLinuxARM-rpi-armv7-latest.tar.gz
luks_memory_cost: "128000"
"3b":
image: ArchLinuxARM-rpi-aarch64-latest.tar.gz
luks_memory_cost: "128000"
"3b+":
image: ArchLinuxARM-rpi-aarch64-latest.tar.gz
luks_memory_cost: "128000"
"4":
image: ArchLinuxARM-rpi-aarch64-latest.tar.gz
luks_memory_cost: "256000"
manjaro_gnome_releases:
"20":
checksum: 2df3697908483550d4a473815b08c1377e6b6892
url: https://osdn.net/projects/manjaro-archive/storage/gnome/20.0/
image: manjaro-gnome-20.0-200426-linux56.iso
"21":
url: https://download.manjaro.org/gnome/21.3.7/
image: manjaro-gnome-21.3.7-220816-linux515.iso
"22":
url: https://download.manjaro.org/gnome/22.1.3/
image: manjaro-gnome-22.1.3-230529-linux61.iso
"24":
url: https://download.manjaro.org/gnome/24.2.1/
image: manjaro-gnome-24.2.1-241216-linux612.iso
"25":
url: https://download.manjaro.org/gnome/25.0.10/
image: manjaro-gnome-25.0.10-251013-linux612.iso
# At the moment just optimized for Raspberry Pi 4.
raspberrypi:
url: https://github.com/manjaro-arm/rpi4-images/releases/download/23.02/
image: Manjaro-ARM-gnome-rpi4-23.02.img.xz
luks_memory_cost: "256000"
raspberry_pi_version: "4"
retropie_images:
"1":
checksum: 95a6f84453df36318830de7e8507170e
image: retropie-buster-4.8-rpi1_zero.img.gz
"2":
checksum: 224e64d8820fc64046ba3850f481c87e
image: retropie-buster-4.8-rpi2_3_zero2w.img.gz
"3":
checksum: 224e64d8820fc64046ba3850f481c87e
image: retropie-buster-4.8-rpi2_3_zero2w.img.gz
"4":
checksum: b5daa6e7660a99c246966f3f09b4014b
image: retropie-buster-4.8-rpi4_400.img.gz
# Extra kernel modules the initramfs needs for early network access,
# see https://raspberrypi.stackexchange.com/questions/67051
mkinitcpio_modules_by_rpi:
"1": ""
"2": ""
"3b": smsc95xx
"3b+": lan78xx
"4": lan78xx