Skip to content

Commit

Permalink
Blade OS Basic (Beta)
Browse files Browse the repository at this point in the history
  • Loading branch information
novusthedev committed Oct 5, 2024
1 parent 18ed87c commit 4783ae4
Show file tree
Hide file tree
Showing 5 changed files with 149 additions and 3 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/build_basic_monthly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: basic-monthly-x86_64

on:
push:
branches:
- main
schedule:
- cron: "0 0 1 1-12 *"
workflow_dispatch: {}

jobs:
build:
runs-on: ubuntu-22.04

container:
image: debian:latest
volumes:
- /proc:/proc
options: --privileged

steps:
- name: Get source
uses: actions/checkout@v4

- name: Build system
run: |
apt update -y
apt-get install -y live-build squashfs-tools syslinux-common syslinux-utils xorriso isolinux git curl
./build_basic
mv blade/blade-"$(date -u +%y%m%d)"-amd64.hybrid.iso ~/blade.iso
rm -rf blade/
cd ../
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: image-x86_64
path: ~/blade.iso
if-no-files-found: warn
retention-days: 90
compression-level: 0

2 changes: 1 addition & 1 deletion .github/workflows/build_monthly.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: gnome-monthly-x86_64
name: main-monthly-x86_64

on:
push:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ Builds are usually automated via GitHub actions. However, if you want to build i

```apt-get install -y live-build squashfs-tools syslinux-common syslinux-utils xorriso git curl```

Build Desktop Edition - `build`
Build Server Edition - `build_server`
Build - `build`
Build Basic - `build_basic`
93 changes: 93 additions & 0 deletions build_basic
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
#!/bin/bash

# Blade OS Basic
# By NovusOh & based on eznixOS by eznix (https://sourceforge.net/projects/eznixos/)
# (GNU/General Public License version 3.0)

# Step by Step Live-Build

# Assign work, files, and build directory variables

WKDIR="$(pwd)"
FLDIR="blade"
BLDDIR="blade"

# Remove icon cache cleaning hook, create the build staging folder, and cd into it

[[ -f /usr/share/live/build/hooks/normal/9000-remove-gnome-icon-cache.hook.chroot ]] && rm /usr/share/live/build/hooks/normal/9000-remove-gnome-icon-cache.hook.chroot

mkdir $BLDDIR
cd $BLDDIR

# Set up build environment

lb config --binary-images iso-hybrid --mode debian --architectures amd64 --linux-flavours amd64 --distribution bookworm --archive-areas "main contrib non-free non-free-firmware" --updates true --security true --cache true --apt-recommends true --firmware-binary true --firmware-chroot true --win32-loader false --iso-application $BLDDIR --iso-preparer NovusOh --iso-publisher Blade --image-name "$BLDDIR-$(date -u +"%y%m%d")" --iso-volume "$BLDDIR-$(date -u +"%y%m%d")" --checksums sha512 --clean --color

# Install desktop and applications

echo "accountsservice dconf-cli gufw gnome-keyring gvfs-backends gvfs-fuse light-locker gnome-core gnome-software flatpak gnome-software-plugin-flatpak gnome-tweaks appstream gnome-shell-extension-manager gnome-initial-setup" > $WKDIR/$BLDDIR/config/package-lists/gnomedesktop.list.chroot

echo "ufw git alsa-utils apt-transport-https autoconf automake btrfs-progs build-essential cdtool cdrdao cdrskin cifs-utils cryptsetup cryptsetup-initramfs cups cups-filters curl dbus-user-session dbus-x11 debconf debhelper dh-autoreconf dialog dirmngr dkms dos2unix dosfstools dvdauthor exfatprogs faac faad fakeroot ffmpeg flac foomatic-db foomatic-db-engine frei0r-plugins fuse3 ghostscript gir1.2-ibus-1.0 gparted grub-pc gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good haveged htop hunspell-en-us hyphen-en-us ibus ibus-data ibus-gtk ibus-gtk3 iftop im-config inxi isolinux iw jfsutils lame less libegl1-mesa libibus-1.0-5 libgl1-mesa-glx libqt5opengl5 libnss-mdns libsmbclient libxcb-xtest0 libxvidcore4 linux-headers-amd64 live-build lsb-release lshw mencoder menu mjpegtools mpg321 mtools mythes-en-us neofetch netcat-openbsd ntfs-3g nvidia-detect openconnect openvpn openvpn-systemd-resolved os-prober p7zip-full p7zip-rar pciutils perl plymouth plymouth-label plymouth-themes plymouth-x11 policykit-1 printer-driver-gutenprint python3-ibus-1.0 rar samba-common-bin smbclient sox squashfs-tools streamripper sudo syslinux syslinux-common testdisk timeshift twolame udisks2 upower unrar unzip wget x11-common x265 x264 xauth xclip xdg-utils xfsprogs xorg xserver-xorg-input-all xserver-xorg-video-all xorriso xterm zip zstd bleachbit" > $WKDIR/$BLDDIR/config/package-lists/extrapackages.list.chroot

echo "atmel-firmware bluez-firmware firmware-linux-free midisport-firmware firmware-misc-nonfree firmware-amd-graphics firmware-atheros firmware-bnx2 firmware-bnx2x firmware-brcm80211 firmware-cavium firmware-intel-sound firmware-iwlwifi firmware-libertas firmware-linux firmware-linux-nonfree firmware-misc-nonfree firmware-myricom firmware-netronome firmware-netxen firmware-qcom-media firmware-qcom-soc firmware-qlogic firmware-realtek firmware-samsung firmware-siano firmware-ti-connectivity firmware-sof-signed firmware-zd1211" > $WKDIR/$BLDDIR/config/package-lists/firmware.list.chroot

echo "efibootmgr grub-common grub-pc-bin grub2-common grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed grub-efi-ia32-bin libefiboot1 libefivar1 mokutil os-prober shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned" > $WKDIR/$BLDDIR/config/package-lists/grubs.list.binary

# Uncomment below line to include more Broadcom WiFi drivers:
echo "b43-fwcutter firmware-b43-installer firmware-b43legacy-installer" > $WKDIR/$BLDDIR/config/package-lists/bcmfirmware.list.chroot

# Include the Calamares Installer

mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/etc/
cp -r ../calamares/ $WKDIR/$BLDDIR/config/includes.chroot/etc/
echo "calamares calamares-settings-debian" > $WKDIR/$BLDDIR/config/package-lists/calamares.list.chroot

# Make folders in the chroot

mkdir -p $WKDIR/$BLDDIR/config/hooks/normal/
mkdir -p $WKDIR/$BLDDIR/config/archives/
mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/usr/local/bin/
mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/etc/apt/trusted.gpg.d
mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/etc/skel/.config/
mkdir -p $WKDIR/$BLDDIR/config/includes.chroot/usr/share/applications/

# Copy files into the chroot
cp -r ../bootloaders/ $BLDDIR/config/
cp ../hooks/Global/* $WKDIR/$BLDDIR/config/hooks/normal/
cp ../skel/global/.* $WKDIR/$BLDDIR/config/includes.chroot/etc/skel/
cp ../splash.png /usr/share/live/build/bootloaders/
cp ../splash.png /usr/share/live/build/bootloaders/extlinux/
cp ../splash.png /usr/share/live/build/bootloaders/grub-legacy/
cp ../splash.png /usr/share/live/build/bootloaders/grub-pc/
cp ../splash.png /usr/share/live/build/bootloaders/isolinux/
cp ../splash.png /usr/share/live/build/bootloaders/pxelinux/
cp ../splash.png /usr/share/live/build/bootloaders/syslinux/
cp ../splash.png /usr/share/live/build/bootloaders/syslinux_common/

# Include edition files
cp ../hooks/GNOME/* $WKDIR/$BLDDIR/config/hooks/normal/
cp ../hooks/Basic/* $WKDIR/$BLDDIR/config/hooks/normal/
cp -r ../skel/gnome/.* $WKDIR/$BLDDIR/config/includes.chroot/etc/skel/

# Copy resolv.conf from host to chroot for online actions
cp -p /etc/resolv.conf $WKDIR/$BLDDIR/config/includes.chroot/etc/resolv.conf

# Uncomment below line if you have packages in the misc64 folder to include:
# cp $WKDIR/$FLDIR/misc64/* $WKDIR/$BLDDIR/config/packages.chroot/

# Start the build process

lb build

# Disclaimer:
# THIS SOFTWARE IS PROVIDED BY THE AUTHORS “AS IS” AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

11 changes: 11 additions & 0 deletions hooks/Basic/9097-setup-gnome.chroot
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -e

# Remove non-Basic packages
/usr/bin/apt purge -y bladeos-gnome-extensions gnome-calculator totem gnome-contacts eog evince gnome-text-editor
/usr/bin/apt autopurge -y
/usr/bin/apt clean

# Remove flatpak
flatpak remove org.libreoffice.LibreOffice -y

0 comments on commit 4783ae4

Please sign in to comment.