Skip to content

Commit 8e6d0b9

Browse files
committed
mkosi: Initial files for dev-arch
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
1 parent 6e26b34 commit 8e6d0b9

File tree

6 files changed

+259
-0
lines changed

6 files changed

+259
-0
lines changed

mkosi/dev-arch/mkosi.conf

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
[Build]
2+
WithNetwork=true
3+
4+
[Content]
5+
Bootable=false
6+
Packages=
7+
# base/misc packages
8+
base-devel
9+
systemd-sysvcompat
10+
tzdata
11+
12+
# Nicer versions of certain GNU utilities
13+
bat
14+
bat-extras
15+
diskus
16+
eza
17+
fd
18+
ripgrep
19+
20+
# b4
21+
b4
22+
git-filter-repo
23+
patatt
24+
python-dkim
25+
26+
# compression/decompression/extraction
27+
bzip2
28+
gzip
29+
lzop
30+
lz4
31+
pbzip2
32+
pigz
33+
unzip
34+
zip
35+
zstd
36+
37+
# development
38+
ccache
39+
diffutils
40+
hyperfine
41+
lib32-glibc
42+
python
43+
python-setuptools
44+
python-yaml
45+
ruff
46+
shfmt
47+
yapf
48+
49+
# email
50+
lei
51+
mutt
52+
53+
# env
54+
curl
55+
fastfetch
56+
fish
57+
fzf
58+
jq
59+
less
60+
moreutils
61+
openssh
62+
stow
63+
tmuxp
64+
vim
65+
vim-spell-en
66+
wget
67+
zoxide
68+
69+
# frame-larger-than.py
70+
python-pyelftools
71+
72+
# git
73+
git
74+
git-delta
75+
github-cli
76+
perl-authen-sasl
77+
perl-mime-tools
78+
perl-net-smtp-ssl
79+
repo
80+
81+
# kernel / tuxmake
82+
aarch64-linux-gnu-binutils
83+
bc
84+
bison
85+
cpio
86+
flex
87+
libelf
88+
inetutils
89+
mkinitcpio
90+
ncurses
91+
openssl
92+
pahole
93+
riscv64-linux-gnu-binutils
94+
rsync
95+
socat
96+
sparse
97+
time
98+
uboot-tools
99+
100+
# kup
101+
perl-config-simple
102+
103+
# LLVM/clang + build-llvm.py
104+
clang
105+
cmake
106+
lld
107+
llvm
108+
ninja
109+
perf
110+
111+
# man pages
112+
man-db
113+
114+
# package building
115+
devtools
116+
dpkg
117+
pacman-contrib
118+
rpm-tools
119+
120+
# spdxcheck.py
121+
python-gitpython
122+
python-ply
123+
124+
# system administration
125+
ipmitool
126+
reflector
127+
128+
# QEMU
129+
edk2-aarch64
130+
edk2-ovmf
131+
libevent
132+
libutempter
133+
lsof
134+
qemu-emulators-full
135+
qemu-guest-agent
136+
qemu-img
137+
virtiofsd
138+
139+
# website management
140+
hugo
141+
iproute2
142+
143+
[Distribution]
144+
Distribution=arch
145+
146+
[Output]
147+
Format=directory
148+
ImageId=dev-arch
149+
OutputDirectory=/var/lib/machines

mkosi/dev-arch/mkosi.extra/etc/use-cbl

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env fish
2+
3+
for char in e f
4+
echo '#!/bin/sh
5+
6+
exec grep -'(string upper $char)' "$@"' >/usr/local/bin/"$char"grep
7+
end
8+
9+
chmod 755 /usr/local/bin/*grep
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env fish
2+
3+
for conf in makepkg pacman
4+
set old /etc/$conf.conf
5+
set pacnew /etc/$conf.conf.pacnew
6+
set new /etc/$conf.conf.new
7+
8+
if test -f $pacnew
9+
mv -v $pacnew $new
10+
else
11+
cp -v $old $new
12+
end
13+
14+
switch $conf
15+
case makepkg
16+
sed -i 's/^#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc)"/g' $new
17+
sed -i 's/^!ccache/ccache/g' $new
18+
19+
case pacman
20+
sed -i 's/^CheckSpace/#CheckSpace/g' $new
21+
sed -i 's/^#VerbosePkgLists/VerbosePkgLists/g' $new
22+
sed -i 's/^#Color/Color/g' $new
23+
sed -i 's/^NoProgressBar/#NoProgressBar/g' $new
24+
sed -i 's/^#ParallelDownloads = 5/ParallelDownloads = 7/g' $new
25+
sed -i "/\[core-testing\]/,/Include/"'s/^#//' $new
26+
sed -i "/\[extra-testing\]/,/Include/"'s/^#//' $new
27+
28+
echo '
29+
[nathan]
30+
SigLevel = Optional TrustAll
31+
Server = https://raw.githubusercontent.com/nathanchance/arch-repo/main/$arch' >>$new
32+
end
33+
34+
if command -q git
35+
git diff --no-index $old $new
36+
else
37+
diff -Naur $old $new
38+
end
39+
40+
mv -v $new $old
41+
end
42+
43+
echo 'permit nopass nathan as root' >/etc/doas.conf
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env fish
2+
3+
sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
4+
locale-gen
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env fish
2+
3+
function downgrade_pkg
4+
set pkg $argv[1]
5+
set ver $argv[2]
6+
7+
set tarball /tmp/$pkg-$ver-x86_64.pkg.tar.zst
8+
set url https://archive.archlinux.org/packages/(string split -f 1 '' $pkg)/$pkg/(basename $tarball)
9+
10+
curl -LSso $tarball $url
11+
and pacman -U --noconfirm $tarball
12+
and rm -fr $tarball
13+
end
14+
15+
16+
reflector \
17+
--country "United States" \
18+
--latest 15 \
19+
--protocol https \
20+
--save /etc/pacman.d/mirrorlist \
21+
--sort rate
22+
23+
and cat /etc/pacman.d/mirrorlist
24+
25+
and pacman-key --init
26+
and pacman-key --populate
27+
28+
# This should not be necessary but testing is broken right now
29+
# Uninstall it before updating then install it after
30+
and pacman -R --noconfirm qemu-emulators-full (pactree -u qemu-emulators-full | string match -gr '(qemu-(?:system|user)-?.*)=')
31+
32+
# Temporarily disable the pacman sandbox
33+
and sed -i 's/^DownloadUser/#DownloadUser/g' /etc/pacman.conf
34+
35+
and pacman -Syyuu --noconfirm
36+
37+
and pacman -S --noconfirm qemu-emulators-full
38+
39+
# Switch to doas from sudo non-interatively
40+
and pacman -S --ask 4 --noconfirm opendoas-sudo
41+
42+
and pacman -S --noconfirm \
43+
arm-linux-gnueabi-binutils \
44+
cvise \
45+
debhelper \
46+
mips-linux-gnu-binutils \
47+
powerpc64-linux-gnu-binutils \
48+
s390x-linux-gnu-binutils \
49+
shellcheck-bin \
50+
tio \
51+
tuxmake
52+
53+
# Turn the pacman sandbox back on
54+
and sed -i 's/^#DownloadUser/DownloadUser/g' /etc/pacman.conf

0 commit comments

Comments
 (0)