Signed-off-by: fbt <fbt@fleshless.org>
This commit is contained in:
Jack L. Frost 2021-03-05 09:01:31 +03:00
commit 08dc072196
7 changed files with 204 additions and 0 deletions

15
Containerfile Normal file
View File

@ -0,0 +1,15 @@
FROM localhost/archlinux:fullbase
RUN pacman -Suy --noconfirm
COPY root/etc /etc
COPY builder.pgp.pub /
RUN pacman-key -a /builder.pgp.pub
RUN rm -vf /builder.pgp.pub /etc/os-release
RUN pacman -Sy
RUN pacman -Rdd --noconfirm systemd systemd-libs systemd-sysvcompat
RUN pacman -S --noconfirm halt-ubase-git sinit-spark sinit-sysvcompat sinit-tools spark-etc spark-rc ssm ssm-service ssm-services-git systemd-dummy udev-dummy systemd-libs-systemd systemd-libs-udev
RUN rm -vf /var/cache/pacman/pkg/*
RUN pacman -Scc --noconfirm

3
build Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
podman build --rm -t localhost/spark:latest .

14
build-rootfs Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
workdir="$HOME/public/rootfs"
filename="spark-x86_64-$(date '+%Y%m%d').tar.xz"
cd "$workdir"
podman create --name spark-rootfs localhost/spark:latest bash
podman export spark-rootfs | xz > ".$filename.part"
podman rm spark-rootfs
mv ".$filename.part" "$filename"
./switch "$filename"

52
builder.pgp.pub Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
=uUbZ
-----END PGP PUBLIC KEY BLOCK-----

102
root/etc/pacman.conf Normal file
View File

@ -0,0 +1,102 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# Spark repo config
Include = /etc/pacman.d/spark.conf
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
#[community-testing]
#Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

View File

@ -0,0 +1,7 @@
## Germany
Server = https://mirror.fleshless.org/spark/$repo
Server = https://voidcaller.fleshless.org/spark/$repo
Server = https://mirror.vdrandom.org/spark/$repo
## Netherlands
Server = https://spike.fleshless.org/mirror/spark/$repo

View File

@ -0,0 +1,11 @@
[spark-updates]
Include = /etc/pacman.d/mirrorlist-spark
[spark]
Include = /etc/pacman.d/mirrorlist-spark
[spark-extra]
Include = /etc/pacman.d/mirrorlist-spark
[spark-testing]
Include = /etc/pacman.d/mirrorlist-spark