mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-04-04 14:29:45 +00:00
build fixes (#2275)
* move some install scripts to init * handle fake-apt in init * rename
This commit is contained in:
4
.github/workflows/startos-iso.yaml
vendored
4
.github/workflows/startos-iso.yaml
vendored
@@ -160,10 +160,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: raspberrypi.squashfs
|
name: raspberrypi.squashfs
|
||||||
|
|
||||||
- run: mv *_raspberrypi.squashfs eos.raspberrypi.squashfs
|
- run: mv startos-*_raspberrypi.squashfs startos.raspberrypi.squashfs
|
||||||
|
|
||||||
- name: Build image
|
- name: Build image
|
||||||
run: make eos_raspberrypi.img
|
run: make startos_raspberrypi.img
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|||||||
4
Makefile
4
Makefile
@@ -34,7 +34,7 @@ endif
|
|||||||
|
|
||||||
.DELETE_ON_ERROR:
|
.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)
|
all: $(ALL_TARGETS)
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ format:
|
|||||||
sdk:
|
sdk:
|
||||||
cd backend/ && ./install-sdk.sh
|
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
|
./build/raspberrypi/make-image.sh
|
||||||
|
|
||||||
# For creating os images. DO NOT USE
|
# For creating os images. DO NOT USE
|
||||||
|
|||||||
@@ -19,6 +19,25 @@ use tracing::instrument;
|
|||||||
|
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
async fn setup_or_init(cfg_path: Option<PathBuf>) -> Result<(), Error> {
|
async fn setup_or_init(cfg_path: Option<PathBuf>) -> 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() {
|
if tokio::fs::metadata("/run/live/medium").await.is_ok() {
|
||||||
Command::new("sed")
|
Command::new("sed")
|
||||||
.arg("-i")
|
.arg("-i")
|
||||||
@@ -31,7 +50,6 @@ async fn setup_or_init(cfg_path: Option<PathBuf>) -> Result<(), Error> {
|
|||||||
.arg("ssh")
|
.arg("ssh")
|
||||||
.invoke(crate::ErrorKind::OpenSsh)
|
.invoke(crate::ErrorKind::OpenSsh)
|
||||||
.await?;
|
.await?;
|
||||||
embassy::hostname::sync_hostname(&embassy::hostname::Hostname("start".into())).await?;
|
|
||||||
|
|
||||||
let ctx = InstallContext::init(cfg_path).await?;
|
let ctx = InstallContext::init(cfg_path).await?;
|
||||||
|
|
||||||
@@ -55,8 +73,6 @@ async fn setup_or_init(cfg_path: Option<PathBuf>) -> Result<(), Error> {
|
|||||||
.await
|
.await
|
||||||
.is_err()
|
.is_err()
|
||||||
{
|
{
|
||||||
embassy::hostname::sync_hostname(&embassy::hostname::Hostname("start".into())).await?;
|
|
||||||
|
|
||||||
let ctx = SetupContext::init(cfg_path).await?;
|
let ctx = SetupContext::init(cfg_path).await?;
|
||||||
|
|
||||||
let server = WebServer::setup(([0, 0, 0, 0], 80).into(), ctx.clone()).await?;
|
let server = WebServer::setup(([0, 0, 0, 0], 80).into(), ctx.clone()).await?;
|
||||||
|
|||||||
@@ -240,6 +240,12 @@ pub async fn init(cfg: &RpcContextConfig) -> Result<InitResult, Error> {
|
|||||||
.await?;
|
.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?;
|
let secret_store = cfg.secret_store().await?;
|
||||||
tracing::info!("Opened Postgres");
|
tracing::info!("Opened Postgres");
|
||||||
|
|
||||||
|
|||||||
@@ -217,14 +217,6 @@ pub async fn execute(
|
|||||||
.invoke(crate::ErrorKind::Systemd)
|
.invoke(crate::ErrorKind::Systemd)
|
||||||
.await?;
|
.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")
|
Command::new("chroot")
|
||||||
.arg(¤t)
|
.arg(¤t)
|
||||||
.arg("ssh-keygen")
|
.arg("ssh-keygen")
|
||||||
@@ -232,17 +224,6 @@ pub async fn execute(
|
|||||||
.invoke(crate::ErrorKind::OpenSsh)
|
.invoke(crate::ErrorKind::OpenSsh)
|
||||||
.await?;
|
.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 dev = MountGuard::mount(&Bind::new("/dev"), current.join("dev"), ReadWrite).await?;
|
||||||
let proc = MountGuard::mount(&Bind::new("/proc"), current.join("proc"), 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?;
|
let sys = MountGuard::mount(&Bind::new("/sys"), current.join("sys"), ReadWrite).await?;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ if ! [ -f /run/systemd/resolve/stub-resolv.conf ]; then
|
|||||||
mkdir -p /run/systemd/resolve
|
mkdir -p /run/systemd/resolve
|
||||||
cp /etc/resolv.conf /run/systemd/resolve/stub-resolv.conf
|
cp /etc/resolv.conf /run/systemd/resolve/stub-resolv.conf
|
||||||
fi
|
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
|
cat << EOF > /etc/NetworkManager/NetworkManager.conf
|
||||||
[main]
|
[main]
|
||||||
plugins=ifupdown,keyfile
|
plugins=ifupdown,keyfile
|
||||||
@@ -117,8 +117,4 @@ ln -s /usr/lib/embassy/scripts/dhclient-exit-hook /etc/dhcp/dhclient-exit-hooks.
|
|||||||
rm -f /etc/motd
|
rm -f /etc/motd
|
||||||
ln -sf /usr/lib/embassy/motd /etc/update-motd.d/00-embassy
|
ln -sf /usr/lib/embassy/motd /etc/update-motd.d/00-embassy
|
||||||
chmod -x /etc/update-motd.d/*
|
chmod -x /etc/update-motd.d/*
|
||||||
chmod +x /etc/update-motd.d/00-embassy
|
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
|
|
||||||
@@ -94,19 +94,12 @@ main () {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
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
|
if ! ssh-keygen -A; then
|
||||||
FAIL_REASON="ssh host key generation failed"
|
FAIL_REASON="ssh host key generation failed"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo embassy > /etc/hostname
|
echo start > /etc/hostname
|
||||||
|
|
||||||
ln -sf /usr/lib/embassy/scripts/fake-apt /usr/local/bin/apt-get
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ if [ -n "$ENVIRONMENT" ]; then
|
|||||||
VERSION_FULL="$VERSION_FULL~$ENVIRONMENT"
|
VERSION_FULL="$VERSION_FULL~$ENVIRONMENT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TARGET_NAME=eos-${VERSION_FULL}-${DATE}_raspberrypi.img
|
TARGET_NAME=startos-${VERSION_FULL}-${DATE}_raspberrypi.img
|
||||||
TARGET_SIZE=$[(6817791+1)*512]
|
TARGET_SIZE=$[(6817791+1)*512]
|
||||||
|
|
||||||
rm -f $TARGET_NAME
|
rm -f $TARGET_NAME
|
||||||
@@ -57,7 +57,7 @@ TMPDIR=$(mktemp -d)
|
|||||||
sudo mount `partition_for ${OUTPUT_DEVICE} 2` $TMPDIR
|
sudo mount `partition_for ${OUTPUT_DEVICE} 2` $TMPDIR
|
||||||
sudo mkdir $TMPDIR/boot
|
sudo mkdir $TMPDIR/boot
|
||||||
sudo mount `partition_for ${OUTPUT_DEVICE} 1` $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_GIT_HASH=$(cat $TMPDIR/usr/lib/embassy/GIT_HASH.txt)
|
||||||
REAL_VERSION=$(cat $TMPDIR/usr/lib/embassy/VERSION.txt)
|
REAL_VERSION=$(cat $TMPDIR/usr/lib/embassy/VERSION.txt)
|
||||||
REAL_ENVIRONMENT=$(cat $TMPDIR/usr/lib/embassy/ENVIRONMENT.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 [ "$ALLOW_VERSION_MISMATCH" != 1 ]; then
|
||||||
if [ "$(cat GIT_HASH.txt)" != "$REAL_GIT_HASH" ]; 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
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ "$(cat VERSION.txt)" != "$REAL_VERSION" ]; then
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ "$(cat ENVIRONMENT.txt)" != "$REAL_ENVIRONMENT" ]; then
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
Reference in New Issue
Block a user