Skip to content

Commit

Permalink
Merge pull request #108 from drauger-os-development/dev
Browse files Browse the repository at this point in the history
Larger EFI partition, new Qt GUI option, Split Edamame into multiple packages.
  • Loading branch information
Batcastle authored Nov 17, 2024
2 parents e94da8d + 30aafe9 commit 6ce7254
Show file tree
Hide file tree
Showing 47 changed files with 5,398 additions and 237 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ changelog.gz
changelog
*.o
*.so
build/
11 changes: 0 additions & 11 deletions DEBIAN/control

This file was deleted.

13 changes: 13 additions & 0 deletions DEBIAN/edamame-common.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Package: edamame-common
Version: 2.9.9
Maintainer: Thomas Castleman <[email protected]>
Homepage: https://github.com/drauger-os-development/edamame
Section: admin
Architecture: amd64
Priority: important
Replaces: edamame (<=2.9.3)
Depends: arch-install-scripts, <!--python_vert-->, bash, coreutils (>=8.28-1ubuntu1), apt (>=1.6.11), squashfs-tools (>=1:4.3-6ubuntu0.18.04.1), grub2-common (>=2.02-2ubuntu8.13), initramfs-tools (>=0.130ubuntu3.8), systemd (>=237-3ubuntu10.24), locales (>=2.27-3ubuntu1), procps (>=2:3.3.12-3ubuntu1.1), grep (>=3.1-2), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-apt (>=2.0.0), python3-urllib3 (>=1.26.5-1~exp1), python3-dnspython, tzdata, laptop-detect (>=0.16), edamame-gtk (>=2.9.4) | edamame-qt (>=2.9.4)
Description: Edamame System Installation utility - Common Files
Edamame System Installation utility for Debian-based Operating Systems.
.
These are the common core files for Edamame.
17 changes: 17 additions & 0 deletions DEBIAN/edamame-common.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
etc/*
usr/bin/*
usr/lib/*
usr/share/applications/*
usr/share/doc/*
usr/share/polkit-1/*
usr/share/edamame/auto_partitioner.py
usr/share/edamame/check_internet.py
usr/share/edamame/check_kernel_versions.py
usr/share/edamame/chroot.py
usr/share/edamame/common.py
usr/share/edamame/engine.py
usr/share/edamame/installer.py
usr/share/edamame/progress.py
usr/share/edamame/success.py
usr/share/edamame/UI/__init__.py
usr/share/edamame/modules/*
13 changes: 13 additions & 0 deletions DEBIAN/edamame-gtk.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Package: edamame-gtk
Version: 2.9.4
Maintainer: Thomas Castleman <[email protected]>
Homepage: https://github.com/drauger-os-development/edamame
Section: admin
Architecture: amd64
Priority: important
Breaks: edamame (<=2.9.3)
Depends: <!--python_vert-->, gir1.2-gtk-3.0 (>=3.24.12-1ubuntu1), locales (>=2.27-3ubuntu1), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-urllib3 (>=1.26.5-1~exp1), python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0), python3-dnspython, tzdata, edamame-common (>=2.9.4)
Description: Edamame System Installation utility - GTK+ Front End
Edamame System Installation utility for Debian-based Operating Systems.
.
This is the GTK 3.0-based front end.
1 change: 1 addition & 0 deletions DEBIAN/edamame-gtk.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/share/edamame/UI/GTK_UI/*
13 changes: 13 additions & 0 deletions DEBIAN/edamame-qt.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Package: edamame-qt
Version: 2.9.7
Maintainer: Thomas Castleman <[email protected]>
Homepage: https://github.com/drauger-os-development/edamame
Section: admin
Architecture: amd64
Priority: important
Breaks: edamame (<=2.9.3)
Depends: <!--python_vert-->, python3-qtpy (>=2.4.1-2), locales (>=2.27-3ubuntu1), keyboard-configuration, util-linux (>=2.34-0.1ubuntu2), python3-parted (>=3.11.2), python3-psutil (>=5.5.0), python3-urllib3 (>=1.26.5-1~exp1), python3-gnupg (>=0.4.5), python3-xmltodict (>=0.11.0), python3-dnspython, tzdata, edamame-common (>=2.9.4)
Description: Edamame System Installation utility - Qt Front End
Edamame System Installation utility for Debian-based Operating Systems.
.
This is the Qt 5-based front end.
1 change: 1 addition & 0 deletions DEBIAN/edamame-qt.install
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
usr/share/edamame/UI/QT_UI/*
146 changes: 146 additions & 0 deletions build-common.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
#!/bin/bash
VERSION=$(cat DEBIAN/edamame-common.control | grep 'Version: ' | sed 's/Version: //g')
PAK=$(cat DEBIAN/edamame-common.control | grep 'Package: ' | sed 's/Package: //g')
ARCH=$(cat DEBIAN/edamame-common.control | grep 'Architecture: '| sed 's/Architecture: //g')
FOLDER="$PAK\_$VERSION\_$ARCH"
FOLDER=$(echo "$FOLDER" | sed 's/\\//g')
OPTIONS="$1"
SETTINGS=$(grep -v "^#" build.conf | sed 's/=/ /g')
META_URL=$(echo "$SETTINGS" | grep "META_URL" | awk '{print $2}')
PACK_URL=$(echo "$SETTINGS" | grep "PACK_URL" | awk '{print $2}')
mkdir ../"$FOLDER"
##############################################################
# #
# #
# COMPILE ANYTHING NECSSARY HERE #
# #
# #
##############################################################

# Instead of compiling, we are building a tar.xz archive of the latest kernel package
# Don't make the archive if --pool passed
if [ "$OPTIONS" != "--pool" ]; then
cd usr/share/edamame
echo -e "\t###\tDOWNLOADING\t###\t"
rsync -vr "$PACK_URL" kernel
rsync -vr "$META_URL" kernel
echo -e "\t###\tDELETING CRUFT\t###\t"
list=$(ls kernel)
for each in $list; do
remove=$(ls kernel/$each | grep -v 'amd64.deb$')
for each2 in $remove; do
rm -rfv kernel/$each/$each2
done
done
meta=$(echo kernel/linux-meta/$(ls kernel/linux-meta | sort -Vr | head -1))
dep=$(dpkg-deb --field $meta Depends | sed 's/, /\\|/g')
cd kernel/linux-upstream
rm -rfv $(ls | sed "/\($dep\)/d")
dep=$(echo "$dep" | sed 's/\\|/ /g' | awk '{print $1}' | sed 's/\(image-\|headers-\)/xanmod_/g')
rm -rfv $(ls | grep "edge")
rm -rfv $(ls | grep "cacule")
cd ../linux-meta
rm -rfv $(ls | grep -v "$dep")
rm -rfv $(ls | grep "edge")
rm -rfv $(ls | grep "cacule")
cd ..
dep=$(echo "$dep" | sed 's/xanmod_//g')
mv linux-upstream "$dep"
cd ..
# delete empty folders
find . -type d -empty -print -delete
echo -e "\t###\tCOMPRESSING\t###\t"
tar --verbose --create --xz -f kernel.tar.xz kernel
echo -e "\t###\tCLEANING\t###\t"
rm -rfv kernel
cd ../../..
fi

# Pshyc - we're compiling shit now
cd usr/bin
echo "Would you like to build with Python 3.11, or 3.12?"
read -p "Exit [0], Do Not Compile [1], Python 3.11 [2], Python 3.12 [3], : " ans
if $(echo "${ans,,}" | grep -qE "1|one|first"); then
vert="dnc"
elif $(echo "${ans,,}" | grep -qE "2|two|second|3.11"); then
vert="3.11"
elif $(echo "${ans,,}" | grep -qE "3|three|third|3.12"); then
vert="3.12"
elif $(echo "${ans,,}" | grep -qE "exit|quit|leave|e|q|x|0|no|zero"); then
echo "Exiting as requested..."
exit 1
else
echo "Input not recognized. Defaulting to Python 3.11"
fi
{
g++ -fPIE -m64 -o edamame edamame.cxx
} || {
echo "Build failed. Try making sure you have 'python${vert}-dev' and 'libpython${vert}-dev' installed" 1>&2
exit 2
}
cd ../..
files_to_edit=$(find "." -maxdepth 10 -type f -name '*.py' -print)
shebang='\#\!/usr/bin/env'
py_ver=""
if [ "$vert" == "dnc" ]; then
py_ver="python3"
elif [ "$vert" == "3.11" ]; then
py_ver="python3.11"
elif [ "$vert" == "3.12" ]; then
py_ver="python3.12"
fi
shebang="$shebang $py_ver"
for each in $files_to_edit; do
sed -i "s:\#\!shebang:$shebang:" $each
done
##############################################################
# #
# #
# REMEMBER TO DELETE SOURCE FILES FROM TMP #
# FOLDER BEFORE BUILD #
# #
# #
##############################################################

# COPY FILES TO "$FOLDER"
copy=$(<DEBIAN/edamame-common.install)
for each in $copy; do
if [ ! -d ../"$FOLDER"/${each%/*} ]; then
mkdir -pv ../"$FOLDER"/${each%/*}
fi
cp -rv "$each" ../"$FOLDER"/${each%/*}
done

# BUILD SHIT
cp -Rv DEBIAN ../"$FOLDER"/DEBIAN
mkdir -pv usr/share/doc/$PAK
git log > usr/share/doc/$PAK/changelog
cd usr/share/doc/$PAK
tar --verbose --create --xz -f changelog.gz changelog 1>/dev/null
rm -v changelog
cd ../../../..
base="$PWD"
cp -Rv usr/share/doc/$PAK ../"$FOLDER"/usr/share/doc/$PAK
cd ..

# Clean up
# delete binary files from repo
rm -v "$base"/usr/bin/edamame
# delete C++ source from package
rm -v "$FOLDER"/usr/bin/edamame.cxx
# delete Python cache files
if [[ "$vert" != "dnc" ]]; then
find "$FOLDER" -maxdepth 10 -type d -name __pycache__ -exec rm -rfv {} \;
fi
# Insert other deps into control file
sed -i "s/<\!--python_vert-->/$py_vert/g" "$FOLDER/DEBIAN/edamame-common.control"
sed -i "s/ , //g" "$FOLDER/DEBIAN/edamame-common.control"
#build the shit
mv "$FOLDER/DEBIAN/edamame-common.control" "$FOLDER/DEBIAN/control"
# mv "$FOLDER/DEBIAN/edamame-common.install" "$FOLDER/DEBIAN/install"
dpkg-deb --build "$FOLDER"
rm -rfv "$FOLDER"
cd "$base"
mkdir build
mv -v ../edamame-common*.deb ./build/
echo "$PAK Version: $VERSION built!"
74 changes: 74 additions & 0 deletions build-gtk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/bin/bash
VERSION=$(cat DEBIAN/edamame-gtk.control | grep 'Version: ' | sed 's/Version: //g')
PAK=$(cat DEBIAN/edamame-gtk.control | grep 'Package: ' | sed 's/Package: //g')
ARCH=$(cat DEBIAN/edamame-gtk.control | grep 'Architecture: '| sed 's/Architecture: //g')
FOLDER="$PAK\_$VERSION\_$ARCH"
FOLDER=$(echo "$FOLDER" | sed 's/\\//g')
SETTINGS=$(grep -v "^#" build.conf | sed 's/=/ /g')
mkdir ../"$FOLDER"
##############################################################
# #
# #
# COMPILE ANYTHING NECSSARY HERE #
# #
# #
##############################################################

files_to_edit=$(find "$PWD" -maxdepth 10 -type f -name '*.py' -print)
shebang='\#\!/usr/bin/env'
py_ver="python3"
shebang="$shebang $py_ver"
for each in $files_to_edit; do
sed -i "s:\#\!shebang:$shebang:" $each
done
##############################################################
# #
# #
# REMEMBER TO DELETE SOURCE FILES FROM TMP #
# FOLDER BEFORE BUILD #
# #
# #
##############################################################

# COPY FILES TO "$FOLDER"
copy=$(<DEBIAN/edamame-gtk.install)
for each in $copy; do
if [ ! -d ../"$FOLDER"/${each%/*} ]; then
mkdir -pv ../"$FOLDER"/${each%/*}
fi
cp -rv "$each" ../"$FOLDER"/${each%/*}
done

# BUILD SHIT
cp -Rv DEBIAN ../"$FOLDER"/DEBIAN
mkdir -pv usr/share/doc/$PAK
git log > usr/share/doc/$PAK/changelog
cd usr/share/doc/$PAK
tar --verbose --create --xz -f changelog.gz changelog 1>/dev/null
rm -v changelog
cd ../../../..
base="$PWD"
cp -Rv usr/share/doc/$PAK ../"$FOLDER"/usr/share/doc/$PAK
cd ..

# Clean up
# delete Python cache files
if [[ "$vert" != "dnc" ]]; then
find "$FOLDER" -maxdepth 10 -type d -name __pycache__ -exec rm -rfv {} \;
fi
# Insert other deps into control file
sed -i "s/<\!--python_vert-->/$py_vert/g" "$FOLDER/DEBIAN/edamame-gtk.control"
sed -i "s/ , //g" "$FOLDER/DEBIAN/edamame-gtk.control"
#build the shit
mv "$FOLDER/DEBIAN/edamame-gtk.control" "$FOLDER/DEBIAN/control"
# mv "$FOLDER/DEBIAN/edamame-common.install" "$FOLDER/DEBIAN/install"
dpkg-deb --build "$FOLDER"
rm -rfv "$FOLDER"
cd "$base"
for each in $files_to_edit; do
sed -i "s:$shebang:\#\!shebang:" $each
done
cd "$base"
mkdir build
mv -v ../edamame-gtk*.deb ./build/
echo "$PAK Version: $VERSION built!"
74 changes: 74 additions & 0 deletions build-qt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/bin/bash
VERSION=$(cat DEBIAN/edamame-qt.control | grep 'Version: ' | sed 's/Version: //g')
PAK=$(cat DEBIAN/edamame-qt.control | grep 'Package: ' | sed 's/Package: //g')
ARCH=$(cat DEBIAN/edamame-qt.control | grep 'Architecture: '| sed 's/Architecture: //g')
FOLDER="$PAK\_$VERSION\_$ARCH"
FOLDER=$(echo "$FOLDER" | sed 's/\\//g')
SETTINGS=$(grep -v "^#" build.conf | sed 's/=/ /g')
mkdir ../"$FOLDER"
##############################################################
# #
# #
# COMPILE ANYTHING NECSSARY HERE #
# #
# #
##############################################################

files_to_edit=$(find "$PWD" -maxdepth 10 -type f -name '*.py' -print)
shebang='\#\!/usr/bin/env'
py_ver="python3"
shebang="$shebang $py_ver"
for each in $files_to_edit; do
sed -i "s:\#\!shebang:$shebang:" $each
done
##############################################################
# #
# #
# REMEMBER TO DELETE SOURCE FILES FROM TMP #
# FOLDER BEFORE BUILD #
# #
# #
##############################################################

# COPY FILES TO "$FOLDER"
copy=$(<DEBIAN/edamame-qt.install)
for each in $copy; do
if [ ! -d ../"$FOLDER"/${each%/*} ]; then
mkdir -pv ../"$FOLDER"/${each%/*}
fi
cp -rv "$each" ../"$FOLDER"/${each%/*}
done

# BUILD SHIT
cp -Rv DEBIAN ../"$FOLDER"/DEBIAN
mkdir -pv usr/share/doc/$PAK
git log > usr/share/doc/$PAK/changelog
cd usr/share/doc/$PAK
tar --verbose --create --xz -f changelog.gz changelog 1>/dev/null
rm -v changelog
cd ../../../..
base="$PWD"
cp -Rv usr/share/doc/$PAK ../"$FOLDER"/usr/share/doc/$PAK
cd ..

# Clean up
# delete Python cache files
if [[ "$vert" != "dnc" ]]; then
find "$FOLDER" -maxdepth 10 -type d -name __pycache__ -exec rm -rfv {} \;
fi
# Insert other deps into control file
sed -i "s/<\!--python_vert-->/$py_vert/g" "$FOLDER/DEBIAN/edamame-qt.control"
sed -i "s/ , //g" "$FOLDER/DEBIAN/edamame-qt.control"
#build the shit
mv "$FOLDER/DEBIAN/edamame-qt.control" "$FOLDER/DEBIAN/control"
# mv "$FOLDER/DEBIAN/edamame-common.install" "$FOLDER/DEBIAN/install"
dpkg-deb --build "$FOLDER"
rm -rfv "$FOLDER"
cd "$base"
for each in $files_to_edit; do
sed -i "s:$shebang:\#\!shebang:" $each
done
cd "$base"
mkdir build
mv -v ../edamame-qt*.deb ./build/
echo "$PAK Version: $VERSION built!"
Loading

0 comments on commit 6ce7254

Please sign in to comment.