This commit is contained in:
Tony Garnock-Jones 2021-10-04 14:40:06 +02:00
parent 7041513932
commit aead6389d9
9 changed files with 93 additions and 13 deletions

View File

@ -2,6 +2,7 @@ disk.img
etc_syndicate.tar.gz
initramfs-syndicate-system
newroot/
preserves-tool
syndicate-server
synit-pid1
vmlinuz-virt

View File

@ -1,6 +1,6 @@
all: run
.PHONY: syndicate-server synit-pid1
.PHONY: syndicate-server synit-pid1 preserves-tool
.PHONY: all run clean veryclean veryveryclean
clean:
@ -9,7 +9,7 @@ clean:
veryclean: clean
rm -f disk.img
rm -f syndicate-server synit-pid1
rm -f syndicate-server synit-pid1 preserves-tool
veryveryclean: veryclean
sudo rm -rf newroot
@ -17,6 +17,7 @@ veryveryclean: veryclean
ALPINE_VERSION=v3.14
SYNDICATE_RS=~/src/syndicate-rs
SYNIT_PID1=$(CURDIR)/../../synit-pid1
PRESERVES_TOOLS=~/src/preserves/implementations/rust
# vmlinuz-lts:
# wget http://dl-cdn.alpinelinux.org/alpine/$(ALPINE_VERSION)/releases/aarch64/netboot/vmlinuz-lts
@ -26,7 +27,7 @@ SYNIT_PID1=$(CURDIR)/../../synit-pid1
disk.img:
qemu-img create -f qcow2 $@ 8G
initramfs-syndicate-system: pack-image.sh init.sh package-list syndicate-server synit-pid1 etc_syndicate.tar.gz
initramfs-syndicate-system: pack-image.sh init.sh package-list syndicate-server synit-pid1 preserves-tool etc_syndicate.tar.gz
sudo PACKAGES="$$(cat package-list)" ./pack-image.sh
etc_syndicate.tar.gz: etc_syndicate/*
@ -36,6 +37,10 @@ syndicate-server:
$(MAKE) -C $(SYNDICATE_RS) aarch64-binary-release
rsync -av $(SYNDICATE_RS)/target/aarch64-unknown-linux-musl/release/syndicate-server .
preserves-tool:
$(MAKE) -C $(PRESERVES_TOOLS) aarch64-binary-release
rsync -av $(PRESERVES_TOOLS)/target/aarch64-unknown-linux-musl/release/preserves-tool .
synit-pid1:
$(MAKE) -C $(SYNIT_PID1) aarch64-binary-release
rsync -av $(SYNIT_PID1)/target/aarch64-unknown-linux-musl/release/synit-pid1 .

View File

@ -1,3 +1,3 @@
<require-service <daemon core-packages>>
<depends-on <daemon core-packages> <service-state <milestone network> ready>>
<daemon core-packages "flock /var/lock/synit/apk /sbin/apk add $(cat /package-list) >>/var/log/apk.log 2>&1">
<daemon core-packages "flock /var/lock/synit/apk /sbin/apk add $(cat /package-list)">

View File

@ -8,6 +8,6 @@
}>
<depends-on <daemon ssh-host-keys> <service-state <daemon <install openssh>> complete>>
<daemon ssh-host-keys "ssh-keygen -A >>/var/log/ssh.log 2>&1">
<daemon ssh-host-keys "ssh-keygen -A">
<daemon <install openssh> "flock /var/lock/synit/apk /sbin/apk add openssh >>/var/log/apk.log 2>&1">
<daemon <install openssh> "flock /var/lock/synit/apk /sbin/apk add openssh">

View File

@ -59,7 +59,7 @@ then
--root ${NEWROOT} --initdb add $(cat /package-list)
fi
for f in /etc/apk/repositories /init /package-list /sbin/syndicate-server /sbin/synit-pid1
for f in /etc/apk/repositories /init /package-list /sbin/syndicate-server /sbin/synit-pid1 /usr/bin/preserves-tool
do
echo "Updating $f."
cp -a $f ${NEWROOT}$f

View File

@ -95,6 +95,7 @@ EOF
cp -a syndicate-server ${MOUNTPOINT}/sbin/.
cp -a synit-pid1 ${MOUNTPOINT}/sbin/.
cp -a preserves-tool ${MOUNTPOINT}/usr/bin/.
cp -a etc_syndicate.tar.gz ${MOUNTPOINT}/.
cat > ${MOUNTPOINT}/etc/apk/repositories <<EOF

View File

@ -4,8 +4,17 @@
- mount of the /proc-like things
- mount -a
- dhcp
- read /usr/share/udhcpc/default.script, it's very interesting and useful!
- modprobes
- getty
- ssh-keygen
- sshd
- ssh-keygen -A
- /usr/sbin/sshd -D
- check for updates
- randomness load/save/initialize/wait
- assertion of whether a defaultroute exists or not
- assertion of whether internet connectivity exists or not
- something syslog compatible
- hardware clock load/save
- udev
- sysctl -p
- set up sound (pulseaudio?)

67
synit-pid1/Cargo.lock generated
View File

@ -357,6 +357,15 @@ dependencies = [
"hashbrown",
]
[[package]]
name = "instant"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd"
dependencies = [
"cfg-if",
]
[[package]]
name = "itoa"
version = "0.4.8"
@ -375,6 +384,15 @@ version = "0.2.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21"
[[package]]
name = "lock_api"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
dependencies = [
"scopeguard",
]
[[package]]
name = "log"
version = "0.4.14"
@ -556,6 +574,31 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d"
[[package]]
name = "parking_lot"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
dependencies = [
"instant",
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
dependencies = [
"cfg-if",
"instant",
"libc",
"redox_syscall",
"smallvec",
"winapi",
]
[[package]]
name = "pin-project"
version = "1.0.8"
@ -590,9 +633,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "preserves"
version = "2.0.0"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb9b4e6da51a363e60d03c2e5a2c6fd2cc501f52415c72779fd2238f28c95fc1"
checksum = "c604be1e4ddac999d7c3d81ca9f7912a33a1234f5394fb902315f8cee25645cd"
dependencies = [
"base64",
"dtoa",
@ -604,9 +647,9 @@ dependencies = [
[[package]]
name = "preserves-schema"
version = "2.0.0"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7fa4b81122d3bf688629f1b9c97af5061b6a1410eb805f69a836bdd1095b8ed"
checksum = "e1e7d339a003cb3e6852e6793b34d34c811f134d0b54b839d6b360f7c692b924"
dependencies = [
"convert_case",
"glob",
@ -671,6 +714,15 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "redox_syscall"
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
dependencies = [
"bitflags",
]
[[package]]
name = "regex"
version = "1.5.4"
@ -703,6 +755,12 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "serde"
version = "1.0.130"
@ -848,6 +906,7 @@ dependencies = [
"getrandom",
"hmac",
"lazy_static",
"parking_lot",
"preserves",
"preserves-schema",
"sha2",

View File

@ -1,3 +1,5 @@
cargo-features = ["strip"]
[package]
name = "synit-pid1"
version = "0.0.1"
@ -9,6 +11,9 @@ homepage = "https://syndicate-lang.org/synit/"
repository = "https://git.syndicate-lang.org/syndicate-lang/syndicate-system"
license = "Apache-2.0"
[profile.release]
strip = true
[patch.crates-io]
#
# Use a bind mount for localdev: