háttér kép beállítása
This commit is contained in:
parent
7a8ce58e7a
commit
a0025207b1
9 changed files with 57 additions and 145 deletions
|
@ -1,166 +1,67 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Exit on error
|
# Exit on error
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
##################################################################################################################
|
##################################################################################################################
|
||||||
# Custom Arch ISO Builder Script (Linux Version)
|
# Custom Arch ISO Builder Script
|
||||||
##################################################################################################################
|
##################################################################################################################
|
||||||
|
|
||||||
# Get absolute path of script directory
|
# Get absolute path of script directory
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
# Check if running on btrfs
|
||||||
|
if lsblk -f | grep btrfs > /dev/null 2>&1; then
|
||||||
|
echo "Warning: Building on BTRFS filesystem. Make backups before continuing."
|
||||||
|
read -p "Press Enter to continue... CTRL + C to stop"
|
||||||
|
fi
|
||||||
|
|
||||||
# Setting general parameters
|
# Setting general parameters
|
||||||
buildFolder="$SCRIPT_DIR/build"
|
buildFolder="$SCRIPT_DIR/build"
|
||||||
outFolder="$SCRIPT_DIR/out"
|
outFolder="$SCRIPT_DIR/out"
|
||||||
dockerImageName="arch-iso-builder-kde"
|
|
||||||
dockerContainerName="arch-iso-builder-kde-container"
|
|
||||||
|
|
||||||
# Get current user ID and group ID
|
|
||||||
HOST_UID=$(id -u)
|
|
||||||
HOST_GID=$(id -g)
|
|
||||||
|
|
||||||
# Check if Docker is installed
|
|
||||||
if ! command -v docker &> /dev/null; then
|
|
||||||
echo "Docker is not installed. Installing Docker..."
|
|
||||||
sudo pacman -S --noconfirm docker
|
|
||||||
|
|
||||||
# Start and enable Docker service
|
|
||||||
echo "Starting Docker service..."
|
|
||||||
sudo systemctl start docker
|
|
||||||
sudo systemctl enable docker
|
|
||||||
|
|
||||||
# Add current user to docker group to avoid using sudo
|
|
||||||
echo "Adding current user to docker group..."
|
|
||||||
sudo usermod -aG docker $(whoami)
|
|
||||||
|
|
||||||
echo "Docker installation completed. You may need to log out and back in for group changes to take effect."
|
|
||||||
echo "Continuing with Docker as root for now..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if Docker daemon is running
|
|
||||||
if ! docker info &> /dev/null; then
|
|
||||||
echo "Docker daemon is not running. Starting Docker service..."
|
|
||||||
sudo systemctl start docker
|
|
||||||
|
|
||||||
# Wait for Docker daemon to start (with timeout)
|
|
||||||
echo "Waiting for Docker daemon to start..."
|
|
||||||
max_attempts=10
|
|
||||||
attempt=1
|
|
||||||
while ! docker info &> /dev/null; do
|
|
||||||
if [ $attempt -gt $max_attempts ]; then
|
|
||||||
echo "Error: Docker daemon failed to start after $max_attempts attempts."
|
|
||||||
echo "Please try starting it manually with: sudo systemctl start docker"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Attempt $attempt/$max_attempts: Docker daemon not ready yet. Waiting 2 seconds..."
|
|
||||||
sleep 2
|
|
||||||
attempt=$((attempt+1))
|
|
||||||
done
|
|
||||||
echo "Docker daemon is now running."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
echo "Build folder: $buildFolder"
|
echo "Build folder: $buildFolder"
|
||||||
echo "Out folder : $outFolder"
|
echo "Out folder : $outFolder"
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
echo "Building in Docker - using all CPU cores"
|
|
||||||
echo "################################################################"
|
|
||||||
|
|
||||||
# Create Docker image if it doesn't exist
|
# Check if archiso is installed
|
||||||
if ! docker image inspect "$dockerImageName" &>/dev/null; then
|
if ! pacman -Qi archiso &> /dev/null; then
|
||||||
echo "Creating Docker image: $dockerImageName..."
|
echo "Installing archiso..."
|
||||||
# Create temporary Dockerfile
|
sudo pacman -S --noconfirm archiso
|
||||||
cat > "$SCRIPT_DIR/Dockerfile" << EOF
|
|
||||||
FROM archlinux:latest
|
|
||||||
|
|
||||||
# Update system and install required packages
|
|
||||||
RUN pacman -Syu --noconfirm && \
|
|
||||||
pacman -S --noconfirm archiso base-devel git sudo
|
|
||||||
|
|
||||||
# Create a build user with same UID as host user
|
|
||||||
RUN useradd -m -G wheel -u $HOST_UID builder && \
|
|
||||||
echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
|
||||||
|
|
||||||
# Set up working directory
|
|
||||||
WORKDIR /build
|
|
||||||
|
|
||||||
# Keep container running for reuse
|
|
||||||
CMD ["/bin/bash"]
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Build Docker image
|
|
||||||
docker build -t "$dockerImageName" -f "$SCRIPT_DIR/Dockerfile" "$SCRIPT_DIR"
|
|
||||||
|
|
||||||
# Remove temporary Dockerfile
|
|
||||||
rm "$SCRIPT_DIR/Dockerfile"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if container exists
|
# Make mkarchiso verbose
|
||||||
if docker container inspect "$dockerContainerName" &>/dev/null; then
|
sudo sed -i 's/quiet="y"/quiet="n"/g' /usr/bin/mkarchiso
|
||||||
# Container exists, check if it's running
|
|
||||||
if [ "$(docker container inspect -f '{{.State.Running}}' "$dockerContainerName")" != "true" ]; then
|
|
||||||
echo "Starting existing Docker container: $dockerContainerName..."
|
|
||||||
docker start "$dockerContainerName"
|
|
||||||
else
|
|
||||||
echo "Using existing running Docker container: $dockerContainerName..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Container doesn't exist, create and start it
|
|
||||||
echo "Creating and starting Docker container: $dockerContainerName..."
|
|
||||||
docker run -d \
|
|
||||||
--name "$dockerContainerName" \
|
|
||||||
--privileged \
|
|
||||||
--cpus="$(nproc)" \
|
|
||||||
-v "$SCRIPT_DIR:/build" \
|
|
||||||
"$dockerImageName" \
|
|
||||||
tail -f /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create required directories
|
echo "Cleaning build environment..."
|
||||||
mkdir -p "$buildFolder" "$outFolder"
|
[ -d "$buildFolder" ] && sudo rm -rf "$buildFolder"
|
||||||
|
mkdir -p "$buildFolder"
|
||||||
|
|
||||||
# Run the build process inside Docker
|
echo "Copying releng folder to build directory..."
|
||||||
echo "Building ISO in Docker container..."
|
cp -r "$SCRIPT_DIR/releng" "$buildFolder/"
|
||||||
docker exec -it "$dockerContainerName" bash -c "
|
|
||||||
cd /build && \
|
#echo "Cleaning pacman cache..."
|
||||||
# Make mkarchiso verbose
|
#yes | sudo pacman -Scc
|
||||||
sudo sed -i 's/quiet=\"y\"/quiet=\"n\"/g' /usr/bin/mkarchiso && \
|
|
||||||
# Clean build environment
|
echo "Creating output directory..."
|
||||||
[ -d \"/build/build\" ] && sudo rm -rf \"/build/build\" && \
|
mkdir -p "$outFolder"
|
||||||
mkdir -p \"/build/build\" && \
|
|
||||||
# Copy releng folder
|
echo "Building ISO..."
|
||||||
cp -r \"/build/releng\" \"/build/build/\" && \
|
cd "$buildFolder/releng"
|
||||||
# Copy pkgs folder (if it exists), then generate repo db
|
sudo mkarchiso -v -w "$buildFolder" -o "$outFolder" "$PWD"
|
||||||
if [ -d \"/build/pkgs\" ]; then
|
|
||||||
cp -r \"/build/pkgs\" \"/build/build/\" && \
|
# Save package list
|
||||||
echo \"Copied pkgs folder to build directory\" && \
|
echo "Saving package list..."
|
||||||
if ls /build/build/pkgs/*.pkg.tar.* 1>/dev/null 2>&1; then
|
rename=$(date +%Y-%m-%d)
|
||||||
echo \"Generating local repository database (repo-add custom.db.tar.gz) ...\" && \
|
cp "$buildFolder/iso/arch/pkglist.x86_64.txt" "$outFolder/archlinux-$rename-pkglist.txt"
|
||||||
sudo repo-add /build/build/pkgs/custom.db.tar.gz /build/build/pkgs/*.pkg.tar.* && \
|
|
||||||
echo \"Local repo database created.\"
|
echo "Cleaning build environment..."
|
||||||
else
|
[ -d "$buildFolder" ] && sudo rm -rf "$buildFolder"
|
||||||
echo \"No .pkg.tar.* files found in pkgs. Skipping repo-add.\"
|
|
||||||
fi
|
sudo chown -R $USER:$GROUP "$outFolder"
|
||||||
else
|
|
||||||
echo \"Warning: pkgs folder not found in \$SCRIPT_DIR\"
|
|
||||||
fi && \
|
|
||||||
# Create output directory
|
|
||||||
mkdir -p \"/build/out\" && \
|
|
||||||
# Build ISO
|
|
||||||
cd \"/build/build/releng\" && \
|
|
||||||
sudo mkarchiso -v -w \"/build/build\" -o \"/build/out\" \"\$PWD\" && \
|
|
||||||
# Save package list
|
|
||||||
rename=\$(date +%Y-%m-%d) && \
|
|
||||||
if [ -f \"/build/build/iso/arch/pkglist.x86_64.txt\" ]; then
|
|
||||||
sudo cp \"/build/build/iso/arch/pkglist.x86_64.txt\" \"/build/out/archlinux-\$rename-pkglist.txt\"
|
|
||||||
fi && \
|
|
||||||
# Clean build environment
|
|
||||||
sudo rm -rf \"/build/build\" && \
|
|
||||||
# Fix permissions on out folder
|
|
||||||
sudo chown -R $HOST_UID:$HOST_GID \"/build/out\"
|
|
||||||
"
|
|
||||||
|
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
echo "DONE"
|
echo "DONE"
|
||||||
echo "Check your out folder: $outFolder"
|
echo "Check your out folder: $outFolder"
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
|
|
||||||
|
|
1
pkgs/custom.db
Symbolic link
1
pkgs/custom.db
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
custom.db.tar.gz
|
BIN
pkgs/custom.db.tar.gz
Normal file
BIN
pkgs/custom.db.tar.gz
Normal file
Binary file not shown.
1
pkgs/custom.files
Symbolic link
1
pkgs/custom.files
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
custom.files.tar.gz
|
BIN
pkgs/custom.files.tar.gz
Normal file
BIN
pkgs/custom.files.tar.gz
Normal file
Binary file not shown.
|
@ -3,11 +3,20 @@
|
||||||
SOURCE_DIR="/root/calamares-build"
|
SOURCE_DIR="/root/calamares-build"
|
||||||
|
|
||||||
# Create required directories
|
# Create required directories
|
||||||
|
mkdir -p /usr/lib/calamares
|
||||||
mkdir -p /usr/share/calamares
|
mkdir -p /usr/share/calamares
|
||||||
mkdir -p /usr/include/libcalamares
|
mkdir -p /usr/include/libcalamares
|
||||||
|
mkdir -p /usr/bin
|
||||||
mkdir -p /etc/calamares
|
mkdir -p /etc/calamares
|
||||||
|
|
||||||
|
# Copy main executable
|
||||||
|
cp "${SOURCE_DIR}/bin/calamares" /usr/bin/
|
||||||
|
cp "${SOURCE_DIR}/usr/bin/ckbcomp" /usr/bin
|
||||||
|
|
||||||
# Copy exact files as in manual commands
|
# Copy exact files as in manual commands
|
||||||
|
cp -r "${SOURCE_DIR}/lib/libcalamares.so" /usr/lib/
|
||||||
|
cp -r "${SOURCE_DIR}/lib/libcalamaresui.so" /usr/lib/
|
||||||
|
cp -r "${SOURCE_DIR}/lib/calamares" /usr/lib/
|
||||||
cp -r "${SOURCE_DIR}/usr/share/calamares" /usr/share/
|
cp -r "${SOURCE_DIR}/usr/share/calamares" /usr/share/
|
||||||
cp -r "${SOURCE_DIR}/usr/include/libcalamares" /usr/include/
|
cp -r "${SOURCE_DIR}/usr/include/libcalamares" /usr/include/
|
||||||
cp -r "${SOURCE_DIR}/etc/calamares" /etc/
|
cp -r "${SOURCE_DIR}/etc/calamares" /etc/
|
||||||
|
|
|
@ -11,8 +11,7 @@ mv "${SOURCE_DIR}/archlinux-logo-text-dark.svg" /usr/share/pixmaps/
|
||||||
cp "${SOURCE_DIR}/view-app-grid-symbolic.svg" /usr/share/icons/Yaru/scalable/actions/
|
cp "${SOURCE_DIR}/view-app-grid-symbolic.svg" /usr/share/icons/Yaru/scalable/actions/
|
||||||
mv "${SOURCE_DIR}/view-app-grid-symbolic.svg" /home/$USER/.icons/Yaru/scalable/actions/
|
mv "${SOURCE_DIR}/view-app-grid-symbolic.svg" /home/$USER/.icons/Yaru/scalable/actions/
|
||||||
|
|
||||||
mv /root/raveos-sddm /usr/share/sddm/themes/
|
mv "${SOURCE_DIR}/raveos-sddm" /usr/share/sddm/themes/
|
||||||
chmod 755 /usr/share/sddm/themes/raveos-sddm
|
|
||||||
|
|
||||||
chmod 755 /usr/share/pixmaps/raveos-logo.svg
|
chmod 755 /usr/share/pixmaps/raveos-logo.svg
|
||||||
chmod 755 /usr/share/pixmaps/archlinux-logo-text.svg
|
chmod 755 /usr/share/pixmaps/archlinux-logo-text.svg
|
||||||
|
@ -22,6 +21,8 @@ chmod 755 /usr/share/pixmaps/faces/rave-pp.png
|
||||||
chmod 755 /usr/share/icons/Yaru/scalable/actions/view-app-grid-symbolic.svg
|
chmod 755 /usr/share/icons/Yaru/scalable/actions/view-app-grid-symbolic.svg
|
||||||
chmod 755 /home/$USER/.icons/Yaru/scalable/actions/
|
chmod 755 /home/$USER/.icons/Yaru/scalable/actions/
|
||||||
|
|
||||||
|
chmod 755 /usr/share/sddm/themes/raveos-sddm
|
||||||
|
|
||||||
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target geoclue.service
|
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target geoclue.service
|
||||||
|
|
||||||
curl -Ls https://links.rp1.hu/progsgui -o /usr/local/bin/progs/3progs.sh
|
curl -Ls https://links.rp1.hu/progsgui -o /usr/local/bin/progs/3progs.sh
|
||||||
|
@ -55,4 +56,3 @@ rm /usr/share/applications/stoken-gui.desktop
|
||||||
#SystemAccount=false" | tee /var/lib/AccountsService/users/$USER
|
#SystemAccount=false" | tee /var/lib/AccountsService/users/$USER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,5 +10,5 @@ Name=RP-ProgramScript-AS
|
||||||
Comment[en_GB]=
|
Comment[en_GB]=
|
||||||
Comment[hu_HU]=
|
Comment[hu_HU]=
|
||||||
Comment=
|
Comment=
|
||||||
Exec=/usr/local/bin/progs/3progs.sh
|
Exec=bash -c "konsole -e plasma-apply-wallpaperimage /usr/share/backgrounds/raveos-bg.png;konsole -e /usr/local/bin/progs/3progs.sh"'
|
||||||
|
|
||||||
|
|
|
@ -98,8 +98,8 @@ Include = /etc/pacman.d/mirrorlist
|
||||||
# tips on creating your own repositories.
|
# tips on creating your own repositories.
|
||||||
[custom]
|
[custom]
|
||||||
SigLevel = Optional TrustAll
|
SigLevel = Optional TrustAll
|
||||||
#Server = file:///home/rave/RaveOS-KDE/pkgs
|
Server = file:///home/rave/RaveOS-KDE/pkgs
|
||||||
#Server = file:///home/airmancooma/Documents/OSs/RaveOS-KDE/pkgs
|
#Server = file:///home/airmancooma/Documents/OSs/RaveOS-KDE/pkgs
|
||||||
Server = file:///build/build/pkgs
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue