Compare commits

...

17 commits

Author SHA1 Message Date
353eeb6475 fixed depends 2024-10-05 14:35:58 +03:30
5e1b58245a fixed depends 2024-10-05 14:34:34 +03:30
2cde56fe75 fixed build 2024-10-05 14:25:08 +03:30
8a7e1ca024 added arm build 2024-10-05 14:23:35 +03:30
c29536adb0 added ParchPi config 2024-07-27 17:42:01 +03:30
Sohrab Behdani
b9a371c01b
Merge pull request #1 from behdanisohrab/main
Fixed sudo,pacman added plasma
2024-07-23 17:14:32 +03:30
Sohrab Behdani
f933d1abb7
Merge branch 'Parchlinux-Ports:main' into main 2024-07-23 17:13:58 +03:30
7680fd747f changed build phase, fixed sudo added plasma 2024-07-23 17:13:32 +03:30
1b0a532c8e sized zip 2024-07-23 14:10:18 +03:30
eb21d10efa changed rootfs size to 9G 2024-07-23 13:51:38 +03:30
4910cf76bc added plasma packages 2024-07-23 13:41:18 +03:30
207c288d1d fixed pacman.conf 2024-07-23 13:24:38 +03:30
92929104e2 testing 2024-07-23 13:08:39 +03:30
Sohrab Behdani
3e89a5a356
Merge branch 'Parchlinux-Ports:main' into main 2024-07-23 13:02:15 +03:30
6d9f583295 added pacman.conf example 2024-07-23 13:01:39 +03:30
ea9b5c9b21 added plasma edition 2024-07-23 11:45:45 +03:30
74df96fc30 added plasma edition 2024-07-23 11:44:33 +03:30
7 changed files with 310 additions and 24 deletions

View file

@ -23,6 +23,8 @@ jobs:
arch: ['aarch64', 'rpi-aarch64']
flavor: ['barebone']
include:
- arch: rpi-aarch64
flavor: plasma
- arch: rpi-aarch64
flavor: xfce
- arch: rpi-aarch64
@ -52,7 +54,7 @@ jobs:
scripts+=("$script_path")
fi
done
sudo ./create-image 8G ${{ matrix.arch }} "${scripts[@]}"
sudo ./create-image 9G ${{ matrix.arch }} "${scripts[@]}"
- name: Rename image
id: rename-image
run: |
@ -63,7 +65,7 @@ jobs:
- name: Compress image
run: |
mkdir image_parts
zip -r "image_parts/${{ steps.rename-image.outputs.image_name }}.zip" "${{ steps.rename-image.outputs.image_name }}"
zip -s 2000m "image_parts/${{ steps.rename-image.outputs.image_name }}.zip" "${{ steps.rename-image.outputs.image_name }}"
- name: Upload image
run: |
sha256sum image_parts/* > image_parts/sha256sums.${{ matrix.arch }}.${{ matrix.flavor }}.txt

62
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,62 @@
stages:
- build
- deploy
image: archlinux/archlinux:base-devel
variables:
ARCHITECTURES: "aarch64 rpi-aarch64" # Set architectures for the matrix
FLAVORS: "barebone plasma xfce trinity" # Set flavors to simulate a matrix
Remote_Path: "/srv/http/arm/"
# Build stage: builds ISO files for multiple architectures and flavors
build_iso:
stage: build
script:
- pacman -Sy parted wget dosfstools zip arch-install-scripts aria2 git --noconfirm
- echo "Starting ISO build for ARM platforms"
- for arch in $ARCHITECTURES; do
for flavor in $FLAVORS; do
scripts=();
for script_name in "$arch" "$flavor" "$arch-$flavor"; do
script_path="setup/$script_name";
if [ -f "$script_path" ]; then
scripts+=("$script_path");
fi;
done;
echo "Building image for $arch with $flavor";
sudo ./create-image 9G "$arch" "${scripts[@]}";
image_in_name="archlinux-${arch}.img";
image_out_name="ParchLinux-${arch}-${flavor}-$(date '+%Y-%m-%d').img";
mv "$image_in_name" "$image_out_name";
echo "Compressing $image_out_name with xz";
xz -z "$image_out_name";
done;
done;
artifacts:
paths:
- "*.img.xz" # Save all .xz compressed images as artifacts
rules:
- if: $CI_COMMIT_TAG # Only run on tag pushes
deploy_iso:
stage: deploy
dependencies:
- build_iso # Deploy depends on the build_iso job completion
script:
- echo "Installing sshpass and rsync"
- pacman -Syu --noconfirm sshpass rsync
- echo "Removing old ISO files from remote directory"
- sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT "rm -rf $Remote_Path"
- echo "Creating new directory on remote host"
- sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT "mkdir -p $Remote_Path"
- echo "Uploading new compressed images via rsync"
- for arch in $ARCHITECTURES; do
for flavor in $FLAVORS; do
image_file="ParchLinux-${arch}-${flavor}-$(date '+%Y-%m-%d').img.xz";
sshpass -p "$PASS" rsync -r "$image_file" parch@$SSH_ROOT:$Remote_Path;
done;
done;
rules:
- if: $CI_COMMIT_TAG # Only run on tag pushes

View file

@ -0,0 +1 @@
ParchPi

View file

@ -0,0 +1,101 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
CacheDir = /var/cache/pacman/pkg
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = aarch64
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
VerbosePkgLists
ParallelDownloads = 4
ILoveCandy
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux ARM
# packagers with `pacman-key --populate archlinuxarm`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
[ppr]
Server = https://raw.githubusercontent.com/parchlinux-arm/ppr/main/aarch64/
SigLevel = Never
[archsink]
Server = https://github.com/archsink/$arch/releases/latest/download
SigLevel = Never
[danctnix]
Server = https://p64.arikawa-hi.me/$repo/$arch/
SigLevel = Never
[core]
Server = http://mirror.archlinuxarm.org/$arch/$repo
SigLevel = Never
[extra]
Server = http://mirror.archlinuxarm.org/$arch/$repo
SigLevel = Never
[community]
Server = http://mirror.archlinuxarm.org/$arch/$repo
SigLevel = Never
[alarm]
Server = http://mirror.archlinuxarm.org/$arch/$repo
SigLevel = Never
[aur]
Server = http://mirror.archlinuxarm.org/$arch/$repo
SigLevel = Never

129
setup/plasma Executable file
View file

@ -0,0 +1,129 @@
#!/bin/bash
set -uo pipefail
# Configure system locale to en_US.UTF-8
sed -i 's/#\(en_US.UTF-8 UTF-8\)/\1/g' /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Fix Pacman.conf
rm -f /etc/pacman.conf
curl https://raw.githubusercontent.com/parchlinux-ports/Parchlinuxarm-images/main/examples/pacman.conf.example >> /etc/pacman.conf
# Enable Sudo
sudo sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
# Fix sddm Theming
mkdir -p /etc/sddm.conf.d/
curl https://raw.githubusercontent.com/parchlinux/parch-iso-plasma/main/iso/airootfs/etc/sddm.conf.d/kde_settings.conf >> /etc/sddm.conf.d/kde_settings.conf
# Install Desktop and Apps
packages=(
bluedevil
breeze
breeze-gtk
breeze-plymouth
drkonqi
kactivitymanagerd
kde-cli-tools
kde-gtk-config
kdecoration
kdeplasma-addons
kgamma
kglobalacceld
kinfocenter
kmenuedit
kpipewire
krdp
kscreen
kscreenlocker
ksshaskpass
ksystemstats
kwallet-pam
kwayland
kwin
kwrited
layer-shell-qt
libkscreen
libksysguard
libplasma
milou
ocean-sound-theme
plasma-activities
plasma-activities-stats
plasma-browser-integration
plasma-desktop
plasma-disks
plasma-firewall
plasma-integration
plasma-nm
plasma-pa
plasma-sdk
plasma-systemmonitor
plasma-thunderbolt
plasma-vault
plasma-workspace
plasma-workspace-wallpapers
plasma5support
plymouth-kcm
polkit-kde-agent
powerdevil
print-manager
qqc2-breeze-style
sddm-kcm
systemsettings
wacomtablet
xdg-desktop-portal-kde
dolphin
konsole
kate
gwenview
okular
parch-zram
sddm
parch-branding
noto-fonts
vazirmatn-fonts
parch-emoji-ios
arch-install-scripts
avahi
curl
git
btop
man-db
neovim
pacman-contrib
yay-bin
python
rsync
sudo
tree
fastfetch
neofetch-git
networkmanager
network-manager-applet
zsh
vim
pipewire
pipewire-pulse
bluez
bluez-utils
pipewire-alsa
wireplumber
)
pacman -Syu --noconfirm --needed "${packages[@]}"
# Enable services
systemctl enable avahi-daemon NetworkManager
systemctl enable sddm
systemctl enable bluetooth
systemctl enable parch-zram
# Prepare system for containers (e.g. for use with K3s)
# https://github.com/k3s-io/k3s/issues/2067#issuecomment-664048424
#if ! grep -q cgroup /boot/cmdline.txt; then
# sed -i '$ s/$/ cgroup_memory=1 cgroup_enable=memory/g' /boot/cmdline.txt
#fi

View file

@ -7,19 +7,19 @@ sed -i 's/#\(en_US.UTF-8 UTF-8\)/\1/g' /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Fix Pacman.conf
rm -f /etc/pacman.conf
curl https://raw.githubusercontent.com/parchlinux-ports/Parchlinuxarm-images/main/examples/pacman.conf.example >> /etc/pacman.conf
# Enable Sudo
sudo sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
pacman-key --recv-keys 0x8685AD8B
# Add archsink repo
cat <<EOF >> /etc/pacman.conf
[archsink]
Server = https://github.com/archsink/\$arch/releases/latest/download
SigLevel = Never
[ppr]
Server = https://raw.githubusercontent.com/parchlinux-arm/ppr/main/aarch64/
SigLevel = Never
[trinity]
Server = https://mirror.ppa.trinitydesktop.org/trinity/archlinux/\$arch
SigLevel = Never

View file

@ -7,21 +7,12 @@ sed -i 's/#\(en_US.UTF-8 UTF-8\)/\1/g' /etc/locale.gen
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Add archsink repo
cat <<EOF >> /etc/pacman.conf
# Fix Pacman.conf
rm -f /etc/pacman.conf
curl https://raw.githubusercontent.com/parchlinux-ports/Parchlinuxarm-images/main/examples/pacman.conf.example >> /etc/pacman.conf
[archsink]
Server = https://github.com/archsink/\$arch/releases/latest/download
SigLevel = Never
[ppr]
Server = https://raw.githubusercontent.com/parchlinux-arm/ppr/main/aarch64/
SigLevel = Never
EOF
# Enable parallel downloads
sed -i 's/#\(ParallelDownloads \)/\1/g' /etc/pacman.conf
# Enable Sudo
sudo sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
# Install useful packages
packages=(