Skip to content

Commit

Permalink
Clean up ISO scripts for new src tree
Browse files Browse the repository at this point in the history
  • Loading branch information
mszoek committed May 9, 2024
1 parent 1cda551 commit 729cf3e
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 196 deletions.
51 changes: 10 additions & 41 deletions ISO/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
set -e

# BSD ABI
VER="14.0"
MAJOR="14"
VER="15.0"
MAJOR="15"

if [ -x /usr/sbin/pkg ]; then
PKG=/usr/sbin/pkg
Expand Down Expand Up @@ -59,15 +59,6 @@ if [ "$(id -u)" != "0" ]; then
exit 1
fi

# Make sure git is installed
# We only need this in case we decide to pull in ingredients from
# other git repositories; this is currently not the case
# if [ ! -f "/usr/local/bin/git" ] ; then
# echo "Git is required"
# echo "Please install it with pkg install git or pkg install git-lite first"
# exit 1
# fi

if [ -z "${desktop}" ] ; then
export desktop=xfce
fi
Expand Down Expand Up @@ -102,31 +93,11 @@ else
isopath="${iso}/${desktop}-${vol}-${arch}.iso"
fi

# For helloSystem, we are using a different naming scheme for the ISOS
if [ "${desktop}" = "hello" ] ; then
if [ -f overlays/uzip/hello/manifest ] ; then
HELLO_VERSION=$(grep "^version:" overlays/uzip/hello/manifest | xargs | cut -d " " -f 2 | cut -d "_" -f 1)
# If we are building hello, then set version number of the 'hello' transient package
# based on environment variable set e.g., by Cirrus CI
if [ ! -z $BUILDNUMBER ] ; then
echo "Injecting $BUILDNUMBER" into manifest
sed -i -e 's|\(^version: .*_\).*$|\1'$BUILDNUMBER'|g' "${cwd}/overlays/uzip/hello/manifest"
rm "${cwd}/overlays/uzip/hello/manifest-e"
cat "${cwd}/overlays/uzip/hello/manifest"
isopath="${iso}/${tag}-F${VER}_h${HELLO_VERSION}_${BUILDNUMBER}-${arch}.iso"
else
isopath="${iso}/${tag}-F${VER}_h${HELLO_VERSION}_git${SHA}-${arch}.iso"
fi
fi
fi

if [ "${desktop}" = "ravynOS" ]; then
MAJLABEL="f${MAJOR}"
if [ ! -z "${CIRRUS_BUILD_ID}" ]; then
MAJLABEL="${MAJLABEL}_${CIRRUS_BUILD_ID}"
fi
isopath="${iso}/${tag}_${MAJLABEL}_${arch}.iso"
MAJLABEL="f${MAJOR}"
if [ ! -z "${CIRRUS_BUILD_ID}" ]; then
MAJLABEL="${MAJLABEL}_${CIRRUS_BUILD_ID}"
fi
isopath="${iso}/${tag}_${MAJLABEL}_${arch}.iso"

cleanup()
{
Expand Down Expand Up @@ -222,8 +193,7 @@ packages()
# Install packages beginning with 'https:'
mkdir -p ${uzip}${pkg_cachedir}/furybsd-https
for url in $(grep -e '^https' "${cwd}/settings/packages.$p"); do
# ABI=freebsd:12:$arch in an attempt to use package built on 12 for 13
pkg_add_from_url "$url" furybsd-https "freebsd:14:$arch"
pkg_add_from_url "$url" furybsd-https "freebsd:15:$arch"
done
done
# Install the packages we have generated in pkg() that are listed in transient-packages-list
Expand Down Expand Up @@ -306,8 +276,6 @@ pkg()
mkdir -p "${packages}/transient"
cd "${packages}/transient"
rm -f *.pkg # Make sure there are no leftover transient packages from earlier runs
splashqml="${cwd}/overlays/uzip/ravynos/files/usr/share/plasma/look-and-feel/ravynOS/contents/splash/Splash.qml"
sed -e "s@__CODENAME__@${RAVYNOS_CODENAME}@" -e "s@__VERSION__@${RAVYNOS_VERSION}@" < "${splashqml}.in" > "${splashqml}"
while read -r p; do
sh -ex "${cwd}/scripts/build-pkg.sh" -m "${cwd}/overlays/uzip/${p}"/manifest -d "${cwd}/overlays/uzip/${p}/files"
done <"${cwd}"/settings/overlays.common
Expand All @@ -323,7 +291,7 @@ pkg()
initgfx()
{
if [ "${arch}" != "i386" ] ; then
if [ $MAJOR -lt 14 ] ; then
if [ $MAJOR -lt 15 ] ; then
PKGS="quarterly"
else
PKGS="latest"
Expand Down Expand Up @@ -367,10 +335,11 @@ uzip()
ramdisk()
{
cp -R "${cwd}/overlays/ramdisk/" "${ramdisk_root}"
cc -static -o "${ramdisk_root}/raminit" "${cwd}/raminit.c" -lutil
sync ### Needed?
cd ${cwd} && zpool import furybsd && zfs set mountpoint=${workdir}/furybsd/uzip furybsd
sync ### Needed?
cc --sysroot=${uzip} -static -o "${ramdisk_root}/raminit" \
"${cwd}/raminit.c" -lutil
cd "${uzip}" && tar -cf - rescue | tar -xf - -C "${ramdisk_root}"
mkdir -p "${ramdisk_root}/etc"
touch "${ramdisk_root}/etc/fstab"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Image {
Text {
id: verstext
color: "#eff0f1"
text: "Pygmy Marmoset v0.4.0pre5"
text: "Sneaky Snek v0.5.0"
font.pointSize: 20
font { family: "Nimbus Sans"; weight: Font.Regular }
x: (PlasmaCore.Units.gridUnit * 2)
Expand Down
76 changes: 0 additions & 76 deletions ISO/settings/packages.ravynOS
Original file line number Diff line number Diff line change
@@ -1,76 +0,0 @@
#ImageMagick7
avahi-app
bash-completion
ca_root_nss
cairo
cpdup
dbus
dmidecode
#drm-devel-kmod
fcft
foot
glib
gpu-firmware-kmod
#libdbusmenu
#libdbusmenu-qt5
libexif
libinput
libqtxdg
#libXres
libudev-devd
libva-intel-driver
libxcb
libxshmfence
mesa-libs
mesa-gallium-xa
mesa-dri
nss_mdns
#qt5-l10n
#qt5-graphicaleffects
#qt5-quickcontrols2
#qt5-x11extras
#menu-cache
#py38-psutil
#py38-dateutil
#py38-pytz
#py38-qt5-network
#py38-xmltodict
#py38-beautifulsoup
#py38-sqlite3
#py38-qt5-dbus
#py38-qt5-widgets
#py38-qt5-qml
#py38-qt5-multimedia
#py38-qt5-webengine
#openssl
pango
pixman
pkg
python3
pv
qt5-core
qt5-dbus
qt5-gui
qt5-svg
qt5-widgets
qt5-xml
seatd
sqlite3
sudo
tiff
#font-awesome
#sourcecodepro-ttf
#wqy-fonts
git-tiny
cmake
pkgconf
#qt5-qmake
#qt5-buildtools
#lxqt-build-tools
usbids
utf8proc
vulkan-loader
xcb-util-errors
xdg-user-dirs
xdg-utils
zsh
88 changes: 10 additions & 78 deletions ISO/settings/script.ravynOS
Original file line number Diff line number Diff line change
@@ -1,50 +1,18 @@
#!/usr/bin/bash
#!/bin/sh

set -e
set -x

mkdir -p /tmp/system-overlay
cd /tmp/system-overlay

# Use blue folder icons instead of the ones packaged in FreeBSD which have yellow folder icons
# Don't extract directly in /tmp, as tar will modify its permissions
icons_temp=$(mktemp -d /tmp/icons.XXXXX)
cd $icons_temp
fetch http://archive.ubuntu.com/ubuntu/pool/universe/x/xubuntu-artwork/xubuntu-icon-theme_16.04.2_all.deb
tar xf xubuntu-icon-theme_16.04.2_all.deb
tar xf data.tar.xz
mkdir -p "${uzip}"/usr/share/icons/
mv ./usr/share/icons/elementary-xfce "${uzip}"/usr/share/icons/elementary
ln -sf "elementary" "${uzip}/usr/share/icons/elementary-xfce"
mv ./usr/share/doc/xubuntu-icon-theme/copyright "${uzip}"/usr/share/icons/elementary/
cd -
rm -r $icons_temp

#curl -Lo - https://dl.cloudsmith.io/public/airyx/13_0/raw/files/gnome-icon-theme-3.12.0_1.pkg | tar xvf - -C "${uzip}"
#curl -Lo - https://dl.cloudsmith.io/public/airyx/13_0/raw/files/gnome-icon-theme-symbolic-3.12.0.pkg | tar xvf - -C "${uzip}"
#( cd "${uzip}/usr/share/icons/" ; ln -s Adwaita adwaita )

# Cursor theme with HiDPi Support, sizes: 22 24 28 32 40 48 56 64 72 80 88 96
fetch https://github.com/ful1e5/apple_cursor/releases/download/v1.0.6/macOSBigSur.tar.gz
tar xvf macOSBigSur.tar.gz
mv macOSBigSur "${uzip}/usr/share/icons/"
chown -R root:wheel "${uzip}/usr/share/icons"
find "${uzip}/usr/share/icons/macOSBigSur" -type d -exec chmod 755 {} \;
find "${uzip}/usr/share/icons/macOSBigSur" -type f -exec chmod 644 {} \;
( cd "${uzip}/usr/share/icons/" ; ln -s macOSBigSur default )
rm -f macOSBigSur.tar.gz

# Pull in the default JDK
mkdir -p "${uzip}/Library/Java/JavaVirtualMachines/"
curl -Lo - https://github.com/mszoek/airyx/releases/download/jdk-17.0.1/openjdk-17.0.1.jdk.txz | \
tar -xf - -C "${uzip}/Library/Java/JavaVirtualMachines/"

# Install our standard app bundles
mkdir -p "${uzip}/Applications/Utilities"

declare -A apps utils
# This syntax below needs bash or zsh. Rewrite it or add them to build server
#declare -A apps utils
#apps=(Kate 21.08.1 Firefox 97.0)
utils=(Terminal 0.9.0)
#utils=(Terminal 0.9.0)

#for app in ${!apps[@]}; do
# tag="v${apps[$app]}"
Expand All @@ -53,12 +21,12 @@ utils=(Terminal 0.9.0)
# curl -Lo - https://github.com/airyxos/${app}_app/releases/download/${tag}/${app}.txz | \
# tar -xf - -C "${uzip}/Applications/"
#done
for app in ${!utils[@]}; do
tag="v${utils[$app]}"
echo Fetching $app $tag
curl -Lo - https://github.com/ravynsoft/${app}_app/releases/download/${tag}/${app}.txz | \
tar -xf - -C "${uzip}/Applications/Utilities/"
done
#for app in ${!utils[@]}; do
# tag="v${utils[$app]}"
# echo Fetching $app $tag
# curl -Lo - https://github.com/ravynsoft/${app}_app/releases/download/${tag}/${app}.txz | \
# tar -xf - -C "${uzip}/Applications/Utilities/"
#done

# Fonts
fetch https://github.com/ArtifexSoftware/urw-base35-fonts/archive/20200910.zip
Expand All @@ -71,8 +39,6 @@ rm -rf urw-base35-fonts-20200910/ 20200910.zip
cat > /tmp/rc <<\EOF
#!/bin/sh
# The following block was added by helloSystem
# FIXME: Let us know how to do this properly
# Silence messages if boot_mute="YES" is set
if [ "$(kenv boot_mute)" = "YES" ] ; then
conscontrol delete ttyv0 >/dev/null 2>&1
Expand All @@ -87,8 +53,6 @@ mv /tmp/rc "${uzip}/etc/rc"
cat > /tmp/rc.shutdown <<\EOF
#!/bin/sh
# The following block was added by helloSystem
# FIXME: Let us know how to do this properly
# Silence messages if boot_mute="YES" is set
if [ "$(kenv boot_mute)" = "YES" ] ; then
exec 1>>/dev/null 2>&1
Expand Down Expand Up @@ -122,35 +86,3 @@ rm "${uzip}/etc/syslog.conf-e"
# Workaround to allow unmounting as normal user
# setuid root
chmod +s "${uzip}/sbin/umount"

# Brute force method to make FAT media fully accessible and executable by everyone
# https://github.com/vermaden/automount/issues/21#issuecomment-808753031
# https://github.com/vermaden/automount/issues/27
# https://github.com/vermaden/automount/commit/f50118920208e49890067d00ecd6bb1a97b47ce3
# FIXME: Use better solution
sed -i -e 's|longnames -m 644|longnames -m 777|g' "${uzip}/usr/sbin/automount"
sed -i -e 's|longnames -m 755|longnames -m 777|g' "${uzip}/usr/sbin/automount"
rm "${uzip}/usr/sbin/automount-e"

# Required for runappimage
fetch "https://github.com/helloSystem/elfsize/releases/download/0/elfsize"
chmod +x elfsize
mv elfsize "${uzip}/usr/bin/"

# Improve compatibility with many scripts from the Linux world,
# including those in many AppImages
chroot ${uzip} ln -s /usr/bin/bash /bin/bash

# Make sure zsh exists in /bin too
chroot ${uzip} ln -s /usr/bin/zsh /bin/zsh

# Remove unwanted UDisks2VolumeMonitor D-Bus service
# TODO: Find a proper way to do this. The correct thing to do would probably to split up the FreeBSD package
# FIXME: This is guaranteed to break as soon as the user updates/upgrades the package
if [ -f "${uzip}/usr/share/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service" ] ; then
rm -rf "${uzip}/usr/share/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service"
touch "${uzip}/usr/share/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service"
# Make the file immutable so that even root cannot overwrite it
chflags schg "${uzip}/usr/share/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service"
fi

2 changes: 2 additions & 0 deletions tools/ravynOS/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ drm_build() {

system_build() {
cd ${CIRRUS_WORKING_DIR}
echo "CIRRUS_CI=${CIRRUS_CI}"
if [ "x${CIRRUS_CI}" = "xtrue" ]; then
echo "Symlinking OBJTOP/usr/include/machine for CI"
ln -sf ${CIRRUS_WORKING_DIR}/sys/$(uname -m)/include \
/usr/obj/${CIRRUS_WORKING_DIR}/${PLATFORM}/tmp/usr/include/machine
fi
Expand Down

0 comments on commit 729cf3e

Please sign in to comment.