Skip to content

Commit dfbf566

Browse files
committed
Initial push
0 parents  commit dfbf566

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1266
-0
lines changed

.github/workflows/hirsute.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Ubuntu Cinnamon Remix 21.04 Hirsute Bleeding Edge Daily
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
schedule:
9+
- cron: ' 0 14 * * * '
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-20.04
14+
container:
15+
image: debian:latest
16+
options: --privileged -it
17+
18+
steps:
19+
- uses: actions/checkout@v2
20+
21+
- name: Install debootstrap/git
22+
run: apt update && apt install git debootstrap -y
23+
24+
- name: Build ISO
25+
run: |
26+
cd /
27+
git clone https://github.com/Ubuntu-Cinnamon-Remix/iso-builder-devel
28+
cd iso-builder-devel
29+
./build.sh etc/terraform.conf
30+
31+
- uses: actions/upload-artifact@v2
32+
with:
33+
name: Ubuntu Cinnamon Remix 21.04 Hirsute Bleeding Edge Daily
34+
path: /iso-builder-devel/builds/

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
builds/
2+
tmp/
3+
syslinux-themes-budgie-remix/

LICENSE

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## This ISO Builder
2+
3+
This ISO builder was basically a combination of previous efforts from Ubuntu
4+
Budgie (budgie-remix at the time), some stuff from livecd-rootfs from launchpad
5+
and Elementary OS, thanks to the amazing devs from all around!
6+
Elem Link: https://github.com/elementary/os
7+
8+
## Why not just fork from livecd-rootfs?
9+
10+
The Ubuntu ISO's are built with ubuntu-cdimage scripts and with livecd-rootfs,
11+
but it has a lot of extra scripts that are hard to navigate all at once unless
12+
you have previous experience and is a bottomless well of asterisks attached to it.
13+
It's better to get something not perfect, but close enough.
14+
15+
## Building Locally
16+
17+
As UCR is built with the Debian version of `live-build`, not the Ubuntu patched version, it's easiest to build an iso in a Debian VM or container. This prevents messing up your host system too.
18+
19+
The following example uses Docker and assumes you have Docker correctly installed and set up:
20+
21+
1) Clone this project & `cd` into it:
22+
23+
```
24+
git clone https://github.com/Ubuntu-Cinnamon-Remix/iso-builder && cd iso-builder
25+
```
26+
27+
2) Configure the channel in the `etc/terraform.conf` (unstable, all).
28+
29+
3) Run the build:
30+
31+
```
32+
docker run --privileged -i -v /proc:/proc \
33+
-v ${PWD}:/working_dir \
34+
-w /working_dir \
35+
debian:latest \
36+
/bin/bash -s etc/terraform.conf < build.sh
37+
```
38+
39+
4) When done, your image will be in the `builds` folder.

build.sh

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# check for root permissions
6+
if [[ "$(id -u)" != 0 ]]; then
7+
echo "E: Requires root permissions" > /dev/stderr
8+
exit 1
9+
fi
10+
11+
# get config
12+
if [ -n "$1" ]; then
13+
CONFIG_FILE="$1"
14+
else
15+
CONFIG_FILE="etc/terraform.conf"
16+
fi
17+
BASE_DIR="$PWD"
18+
source "$BASE_DIR"/"$CONFIG_FILE"
19+
20+
echo -e "
21+
#----------------------#
22+
# INSTALL DEPENDENCIES #
23+
#----------------------#
24+
"
25+
26+
apt-get update
27+
apt-get install -y live-build patch ubuntu-keyring
28+
29+
# TODO: Remove once live-build is able to acommodate for cases where LB_INITRAMFS is not live-boot:
30+
# https://salsa.debian.org/live-team/live-build/merge_requests/31
31+
patch -d /usr/lib/live/build/ < live-build-fix-syslinux.patch
32+
33+
# TODO: Remove this once debootstrap 1.0.117 or newer is released and available:
34+
# https://salsa.debian.org/installer-team/debootstrap/blob/master/debian/changelog
35+
ln -sfn /usr/share/debootstrap/scripts/gutsy /usr/share/debootstrap/scripts/hirsute
36+
37+
build () {
38+
BUILD_ARCH="$1"
39+
40+
mkdir -p "$BASE_DIR/tmp/$BUILD_ARCH"
41+
cd "$BASE_DIR/tmp/$BUILD_ARCH" || exit
42+
43+
# remove old configs and copy over new
44+
rm -rf config auto
45+
cp -r "$BASE_DIR"/etc/* .
46+
# Make sure conffile specified as arg has correct name
47+
cp -f "$BASE_DIR"/"$CONFIG_FILE" terraform.conf
48+
49+
# Symlink chosen package lists to where live-build will find them
50+
ln -s "package-lists.$PACKAGE_LISTS_SUFFIX" "config/package-lists"
51+
52+
echo -e "
53+
#------------------#
54+
# LIVE-BUILD CLEAN #
55+
#------------------#
56+
"
57+
lb clean
58+
59+
echo -e "
60+
#-------------------#
61+
# LIVE-BUILD CONFIG #
62+
#-------------------#
63+
"
64+
lb config
65+
66+
echo -e "
67+
#------------------#
68+
# LIVE-BUILD BUILD #
69+
#------------------#
70+
"
71+
lb build
72+
73+
echo -e "
74+
#---------------------------#
75+
# MOVE OUTPUT TO BUILDS DIR #
76+
#---------------------------#
77+
"
78+
79+
YYYYMMDD="$(date +%Y%m%d)"
80+
OUTPUT_DIR="$BASE_DIR/builds/$BUILD_ARCH"
81+
mkdir -p "$OUTPUT_DIR"
82+
FNAME="ubuntucinnamon-$VERSION-$CHANNEL.$YYYYMMDD$OUTPUT_SUFFIX"
83+
mv "$BASE_DIR/tmp/$BUILD_ARCH/live-image-$BUILD_ARCH.hybrid.iso" "$OUTPUT_DIR/${FNAME}.iso"
84+
85+
# cd into output to so {FNAME}.sha256.txt only
86+
# includes the filename and not the path to
87+
# our file.
88+
cd $OUTPUT_DIR
89+
md5sum "${FNAME}.iso" > "${FNAME}.md5.txt"
90+
sha256sum "${FNAME}.iso" > "${FNAME}.sha256.txt"
91+
cd $BASE_DIR
92+
}
93+
94+
if [[ "$ARCH" == "all" ]]; then
95+
build amd64
96+
else
97+
build "$ARCH"
98+
fi

etc/auto/config

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
. ./terraform.conf
6+
7+
# HWE starts with y, Y or 1?
8+
if [ "$HWE" = "yes" ]; then
9+
KERNEL_FLAVORS="generic-hwe-${BASEVERSION}"
10+
XORG_HWE="xserver-xorg-hwe-${BASEVERSION}"
11+
else
12+
KERNEL_FLAVORS="generic"
13+
fi
14+
15+
lb config noauto \
16+
--architectures "$ARCH" \
17+
--mode ubuntu \
18+
--initramfs auto \
19+
--distribution "$BASECODENAME" \
20+
--parent-distribution "$BASECODENAME" \
21+
--archive-areas "main restricted universe multiverse" \
22+
--parent-archive-areas "main restricted universe multiverse" \
23+
--linux-packages linux-image \
24+
--linux-flavours "$KERNEL_FLAVORS" \
25+
--bootappend-live "boot=casper maybe-ubiquity quiet splash" \
26+
--mirror-bootstrap "$MIRROR_URL" \
27+
--parent-mirror-bootstrap "$MIRROR_URL" \
28+
--mirror-chroot-security "http://security.ubuntu.com/ubuntu/" \
29+
--parent-mirror-chroot-security "http://security.ubuntu.com/ubuntu/" \
30+
--mirror-binary-security "http://security.ubuntu.com/ubuntu/" \
31+
--parent-mirror-binary-security "http://security.ubuntu.com/ubuntu/" \
32+
--mirror-binary "http://archive.ubuntu.com/ubuntu/" \
33+
--parent-mirror-binary "http://archive.ubuntu.com/ubuntu/" \
34+
--keyring-packages ubuntu-keyring \
35+
--apt-options "--yes --option Acquire::Retries=5 --option Acquire::http::Timeout=100" \
36+
--cache-packages false \
37+
--cache-stages false \
38+
--uefi-secure-boot enable \
39+
--binary-images iso-hybrid \
40+
--iso-application "$NAME" \
41+
--iso-volume "$NAME" \
42+
--firmware-binary false \
43+
--firmware-chroot false \
44+
--zsync false \
45+
--security true \
46+
--updates true \
47+
--debootstrap-options "--exclude=pinephone-tweaks,mobile-tweaks-common,librem5-tweaks,pinetab-tweaks" \
48+
"${@}"
49+
50+
51+
# replace channel and suite
52+
sed -i "s/@CHANNEL/$CHANNEL/" config/archives/*.list*
53+
sed -i "s/@BASECODENAME/$BASECODENAME/" config/archives/*.list*
54+
55+
DATE=$(date +%Y%m%d)
56+
sed -i "s/@CHANNEL/$CHANNEL/" config/includes.binary/.disk/info
57+
sed -i "s/@CODENAME/$CODENAME/" config/includes.binary/.disk/info
58+
sed -i "s/@ARCH/$ARCH/" config/includes.binary/.disk/info
59+
sed -i "s/@DISTRO_NAME/$NAME/" config/includes.binary/.disk/info
60+
sed -i "s/@VERSION/$VERSION/" config/includes.binary/.disk/info
61+
sed -i "s/@DATE/$DATE/" config/includes.binary/.disk/info
62+
63+
sed -i "s/@XORG_HWE/$XORG_HWE/" config/package-lists/desktop.list.chroot_install
1.11 KB
Binary file not shown.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
deb http://ppa.launchpad.net/ubuntucinnamonremix/@CHANNEL/ubuntu @BASECODENAME main
2+
# deb-src http://ppa.launchpad.net/ubuntucinnamonremix/@CHANNEL/ubuntu @BASECODENAME main
4.89 KB
Binary file not shown.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
if loadfont /boot/grub/font.pf2 ; then
2+
set gfxmode=auto
3+
insmod efi_gop
4+
insmod efi_uga
5+
insmod gfxterm
6+
terminal_output gfxterm
7+
fi
8+
9+
set menu_color_normal=white/black
10+
set menu_color_highlight=black/light-gray
11+
12+
set timeout=5
13+
menuentry "Try or Install Ubuntu Cinnamon Remix" {
14+
set gfxpayload=keep
15+
linux /casper/vmlinuz boot=casper quiet splash ---
16+
initrd /casper/initrd.lz
17+
}
18+
menuentry "Try or Install Ubuntu Cinnamon Remix (Safe Graphics)" {
19+
set gfxpayload=keep
20+
linux /casper/vmlinuz boot=casper nomodeset quiet splash nomodeset ---
21+
initrd /casper/initrd.lz
22+
}
23+
grub_platform
24+
if [ "$grub_platform" = "efi" ]; then
25+
menuentry 'Boot from next volume' {
26+
exit
27+
}
28+
menuentry 'UEFI Firmware Settings' {
29+
fwsetup
30+
}
31+
fi
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/hdt.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/ISOLINUX/isolinux.bin
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
default vesamenu.c32
2+
include stdmenu.cfg
3+
include live.cfg
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/ldlinux.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/libcom32.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/libgpl.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/libmenu.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/libutil.c32
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
prompt 0
2+
3+
MENU HIDDEN
4+
MENU AUTOBOOT Booting Ubuntu Cinnamon Remix live disk in # seconds
5+
timeout 50
6+
7+
label live-@FLAVOUR@
8+
menu label ^Try or install Ubuntu Cinnamon Remix
9+
menu default
10+
linux /casper/vmlinuz
11+
initrd /casper/initrd.lz
12+
append @APPEND_LIVE@
13+
14+
label live-failsafe
15+
menu label Start Ubuntu Cinnamon Remix (Safe Graphics)
16+
set gfxpayload=keep
17+
linux /casper/vmlinuz
18+
initrd /casper/initrd.lz
19+
append @APPEND_LIVE@ nomodeset
20+
21+
label hd
22+
menu label ^Boot from next volume
23+
localboot 0x80
24+
25+
label power
26+
MENU LABEL ^Power Off
27+
COM32 poweroff.c32
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/menu.c32
1.62 KB
Binary file not shown.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
menu hshift 13
2+
menu width 49
3+
menu margin 8
4+
5+
# Override the default radial gradient background with black
6+
menu background #ff000000
7+
8+
# Title bar
9+
menu color title 0 #ffffffff #00000000 *
10+
11+
# Border Area
12+
menu color border * #00000000 #00000000 none
13+
14+
# Unselected menu item
15+
menu color unsel 0 #999999 #00000000 *
16+
17+
# Unselected hotkey
18+
menu color hotkey 0 #999999 #00000000 none
19+
20+
# Selection bar
21+
menu color sel 0 #ffffff #00000000 none
22+
23+
# Selected hotkey
24+
menu color hotsel 0 #ffffffff #00000000 none
25+
26+
# Press [Tab] message
27+
menu color tabmsg 0 #f6f6f6 #00000000 none
28+
29+
# Timeout message
30+
menu color timeout_msg 0 #f6f6f6 #00000000 none
31+
32+
# Timeout counter
33+
menu color timeout * #ffffffff #00000000 none
34+
35+
# Command line
36+
menu color cmdline 0 #ffffffff #00000000 none
37+
38+
# Command line marker
39+
menu color cmdmark 0 #00000000 #00000000 none
40+
41+
# Helptest
42+
menu color help 0 #ffffffff #00000000 none
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/usr/lib/syslinux/modules/bios/vesamenu.c32

0 commit comments

Comments
 (0)