From 62d235ad7552a609615fdcc27e4aa25856eabd21 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 15 May 2023 11:42:28 -0600 Subject: [PATCH 1/3] move some install scripts to init --- backend/src/bin/embassy-init.rs | 3 --- backend/src/init.rs | 13 +++++++++++++ backend/src/os_install/mod.rs | 19 ------------------- build/lib/scripts/postinst | 2 +- build/raspberrypi/init_resize.sh | 9 +-------- 5 files changed, 15 insertions(+), 31 deletions(-) diff --git a/backend/src/bin/embassy-init.rs b/backend/src/bin/embassy-init.rs index 1bc079c58..43ce37edd 100644 --- a/backend/src/bin/embassy-init.rs +++ b/backend/src/bin/embassy-init.rs @@ -31,7 +31,6 @@ async fn setup_or_init(cfg_path: Option) -> Result<(), Error> { .arg("ssh") .invoke(crate::ErrorKind::OpenSsh) .await?; - embassy::hostname::sync_hostname(&embassy::hostname::Hostname("start".into())).await?; let ctx = InstallContext::init(cfg_path).await?; @@ -55,8 +54,6 @@ async fn setup_or_init(cfg_path: Option) -> Result<(), Error> { .await .is_err() { - embassy::hostname::sync_hostname(&embassy::hostname::Hostname("start".into())).await?; - let ctx = SetupContext::init(cfg_path).await?; let server = WebServer::setup(([0, 0, 0, 0], 80).into(), ctx.clone()).await?; diff --git a/backend/src/init.rs b/backend/src/init.rs index 68ac2365d..4a15cb55a 100644 --- a/backend/src/init.rs +++ b/backend/src/init.rs @@ -240,6 +240,19 @@ pub async fn init(cfg: &RpcContextConfig) -> Result { .await?; } + Command::new("ln") + .arg("-sf") + .arg("/usr/lib/embassy/scripts/fake-apt") + .arg("/usr/local/bin/apt-get") + .invoke(crate::ErrorKind::OpenSsh) + .await?; + + Command::new("make-ssl-cert") + .arg("generate-default-snakeoil") + .arg("--force-overwrite") + .invoke(crate::ErrorKind::OpenSsl) + .await?; + let secret_store = cfg.secret_store().await?; tracing::info!("Opened Postgres"); diff --git a/backend/src/os_install/mod.rs b/backend/src/os_install/mod.rs index 4bf3333c7..f6e29903d 100644 --- a/backend/src/os_install/mod.rs +++ b/backend/src/os_install/mod.rs @@ -217,14 +217,6 @@ pub async fn execute( .invoke(crate::ErrorKind::Systemd) .await?; - Command::new("chroot") - .arg(¤t) - .arg("make-ssl-cert") - .arg("generate-default-snakeoil") - .arg("--force-overwrite") - .invoke(crate::ErrorKind::OpenSsl) - .await?; - Command::new("chroot") .arg(¤t) .arg("ssh-keygen") @@ -232,17 +224,6 @@ pub async fn execute( .invoke(crate::ErrorKind::OpenSsh) .await?; - tokio::fs::write(current.join("etc/hostname"), "start\n").await?; - - Command::new("chroot") - .arg(¤t) - .arg("ln") - .arg("-sf") - .arg("/usr/lib/embassy/scripts/fake-apt") - .arg("/usr/local/bin/apt-get") - .invoke(crate::ErrorKind::OpenSsh) - .await?; - let dev = MountGuard::mount(&Bind::new("/dev"), current.join("dev"), ReadWrite).await?; let proc = MountGuard::mount(&Bind::new("/proc"), current.join("proc"), ReadWrite).await?; let sys = MountGuard::mount(&Bind::new("/sys"), current.join("sys"), ReadWrite).await?; diff --git a/build/lib/scripts/postinst b/build/lib/scripts/postinst index 2d3caa351..fabae4172 100755 --- a/build/lib/scripts/postinst +++ b/build/lib/scripts/postinst @@ -120,5 +120,5 @@ chmod -x /etc/update-motd.d/* chmod +x /etc/update-motd.d/00-embassy ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt -ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt-get +# ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt-get ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/aptitude \ No newline at end of file diff --git a/build/raspberrypi/init_resize.sh b/build/raspberrypi/init_resize.sh index b999550db..401d83978 100755 --- a/build/raspberrypi/init_resize.sh +++ b/build/raspberrypi/init_resize.sh @@ -94,19 +94,12 @@ main () { return 1 fi - if ! make-ssl-cert generate-default-snakeoil --force-overwrite; then - FAIL_REASON="snakeoil cert generation failed" - return 1 - fi - if ! ssh-keygen -A; then FAIL_REASON="ssh host key generation failed" return 1 fi - echo embassy > /etc/hostname - - ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt-get + echo start > /etc/hostname return 0 } From fa3768a234abbff0255e275e761d015d93ed0d3d Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 15 May 2023 15:04:10 -0600 Subject: [PATCH 2/3] handle fake-apt in init --- backend/src/bin/embassy-init.rs | 19 +++++++++++++++++++ backend/src/init.rs | 7 ------- build/lib/scripts/postinst | 6 +----- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/backend/src/bin/embassy-init.rs b/backend/src/bin/embassy-init.rs index 43ce37edd..b9675ec78 100644 --- a/backend/src/bin/embassy-init.rs +++ b/backend/src/bin/embassy-init.rs @@ -19,6 +19,25 @@ use tracing::instrument; #[instrument(skip_all)] async fn setup_or_init(cfg_path: Option) -> Result<(), Error> { + Command::new("ln") + .arg("-sf") + .arg("/usr/lib/embassy/scripts/fake-apt") + .arg("/usr/local/bin/apt") + .invoke(crate::ErrorKind::OpenSsh) + .await?; + Command::new("ln") + .arg("-sf") + .arg("/usr/lib/embassy/scripts/fake-apt") + .arg("/usr/local/bin/apt-get") + .invoke(crate::ErrorKind::OpenSsh) + .await?; + Command::new("ln") + .arg("-sf") + .arg("/usr/lib/embassy/scripts/fake-apt") + .arg("/usr/local/bin/aptitude") + .invoke(crate::ErrorKind::OpenSsh) + .await?; + if tokio::fs::metadata("/run/live/medium").await.is_ok() { Command::new("sed") .arg("-i") diff --git a/backend/src/init.rs b/backend/src/init.rs index 4a15cb55a..c6a1e4c08 100644 --- a/backend/src/init.rs +++ b/backend/src/init.rs @@ -240,13 +240,6 @@ pub async fn init(cfg: &RpcContextConfig) -> Result { .await?; } - Command::new("ln") - .arg("-sf") - .arg("/usr/lib/embassy/scripts/fake-apt") - .arg("/usr/local/bin/apt-get") - .invoke(crate::ErrorKind::OpenSsh) - .await?; - Command::new("make-ssl-cert") .arg("generate-default-snakeoil") .arg("--force-overwrite") diff --git a/build/lib/scripts/postinst b/build/lib/scripts/postinst index fabae4172..07e8b81d3 100755 --- a/build/lib/scripts/postinst +++ b/build/lib/scripts/postinst @@ -117,8 +117,4 @@ ln -s /usr/lib/embassy/scripts/dhclient-exit-hook /etc/dhcp/dhclient-exit-hooks. rm -f /etc/motd ln -sf /usr/lib/embassy/motd /etc/update-motd.d/00-embassy chmod -x /etc/update-motd.d/* -chmod +x /etc/update-motd.d/00-embassy - -ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt -# ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt-get -ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/aptitude \ No newline at end of file +chmod +x /etc/update-motd.d/00-embassy \ No newline at end of file From 20d47173f4db674fc0aa2fb60acfb149cc8b8ce3 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 15 May 2023 16:22:00 -0600 Subject: [PATCH 3/3] rename --- .github/workflows/startos-iso.yaml | 4 ++-- Makefile | 4 ++-- build/lib/scripts/postinst | 2 +- build/raspberrypi/make-image.sh | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/startos-iso.yaml b/.github/workflows/startos-iso.yaml index 34e4be867..76c007e68 100644 --- a/.github/workflows/startos-iso.yaml +++ b/.github/workflows/startos-iso.yaml @@ -160,10 +160,10 @@ jobs: with: name: raspberrypi.squashfs - - run: mv *_raspberrypi.squashfs eos.raspberrypi.squashfs + - run: mv startos-*_raspberrypi.squashfs startos.raspberrypi.squashfs - name: Build image - run: make eos_raspberrypi.img + run: make startos_raspberrypi.img - uses: actions/upload-artifact@v3 with: diff --git a/Makefile b/Makefile index c90cc76ee..38018e1fb 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ endif .DELETE_ON_ERROR: -.PHONY: all gzip install clean format sdk snapshots frontends ui backend reflash eos_raspberrypi.img sudo +.PHONY: all gzip install clean format sdk snapshots frontends ui backend reflash startos_raspberrypi.img sudo all: $(ALL_TARGETS) @@ -65,7 +65,7 @@ format: sdk: cd backend/ && ./install-sdk.sh -eos_raspberrypi.img: $(BUILD_SRC) eos.raspberrypi.squashfs $(VERSION_FILE) $(ENVIRONMENT_FILE) $(GIT_HASH_FILE) cargo-deps/aarch64-unknown-linux-gnu/release/pi-beep | sudo +startos_raspberrypi.img: $(BUILD_SRC) startos.raspberrypi.squashfs $(VERSION_FILE) $(ENVIRONMENT_FILE) $(GIT_HASH_FILE) cargo-deps/aarch64-unknown-linux-gnu/release/pi-beep | sudo ./build/raspberrypi/make-image.sh # For creating os images. DO NOT USE diff --git a/build/lib/scripts/postinst b/build/lib/scripts/postinst index 07e8b81d3..708f45934 100755 --- a/build/lib/scripts/postinst +++ b/build/lib/scripts/postinst @@ -37,7 +37,7 @@ if ! [ -f /run/systemd/resolve/stub-resolv.conf ]; then mkdir -p /run/systemd/resolve cp /etc/resolv.conf /run/systemd/resolve/stub-resolv.conf fi -ln -rsf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf +ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf cat << EOF > /etc/NetworkManager/NetworkManager.conf [main] plugins=ifupdown,keyfile diff --git a/build/raspberrypi/make-image.sh b/build/raspberrypi/make-image.sh index 7e9128c4c..5188e24d0 100755 --- a/build/raspberrypi/make-image.sh +++ b/build/raspberrypi/make-image.sh @@ -21,7 +21,7 @@ if [ -n "$ENVIRONMENT" ]; then VERSION_FULL="$VERSION_FULL~$ENVIRONMENT" fi -TARGET_NAME=eos-${VERSION_FULL}-${DATE}_raspberrypi.img +TARGET_NAME=startos-${VERSION_FULL}-${DATE}_raspberrypi.img TARGET_SIZE=$[(6817791+1)*512] rm -f $TARGET_NAME @@ -57,7 +57,7 @@ TMPDIR=$(mktemp -d) sudo mount `partition_for ${OUTPUT_DEVICE} 2` $TMPDIR sudo mkdir $TMPDIR/boot sudo mount `partition_for ${OUTPUT_DEVICE} 1` $TMPDIR/boot -sudo unsquashfs -f -d $TMPDIR eos.raspberrypi.squashfs +sudo unsquashfs -f -d $TMPDIR startos.raspberrypi.squashfs REAL_GIT_HASH=$(cat $TMPDIR/usr/lib/embassy/GIT_HASH.txt) REAL_VERSION=$(cat $TMPDIR/usr/lib/embassy/VERSION.txt) REAL_ENVIRONMENT=$(cat $TMPDIR/usr/lib/embassy/ENVIRONMENT.txt) @@ -74,15 +74,15 @@ sudo losetup -d $OUTPUT_DEVICE if [ "$ALLOW_VERSION_MISMATCH" != 1 ]; then if [ "$(cat GIT_HASH.txt)" != "$REAL_GIT_HASH" ]; then - >&2 echo "eos.raspberrypi.squashfs GIT_HASH.txt mismatch" + >&2 echo "startos.raspberrypi.squashfs GIT_HASH.txt mismatch" exit 1 fi if [ "$(cat VERSION.txt)" != "$REAL_VERSION" ]; then - >&2 echo "eos.raspberrypi.squashfs VERSION.txt mismatch" + >&2 echo "startos.raspberrypi.squashfs VERSION.txt mismatch" exit 1 fi if [ "$(cat ENVIRONMENT.txt)" != "$REAL_ENVIRONMENT" ]; then - >&2 echo "eos.raspberrypi.squashfs ENVIRONMENT.txt mismatch" + >&2 echo "startos.raspberrypi.squashfs ENVIRONMENT.txt mismatch" exit 1 fi fi \ No newline at end of file