Compare commits

...

27 commits

Author SHA1 Message Date
33e21e16f5 apt to pac 2025-03-19 14:20:46 +03:30
69cd650658 apt to pac 2025-03-19 14:18:53 +03:30
3f91fab842 added git for testing 2025-03-19 14:17:12 +03:30
06c5657681 Update .forgejo/workflows/build.yml 2025-03-19 06:44:17 -04:00
b802c93007 v4 2025-03-18 20:59:20 +03:30
ff4f8325dd fixed syntax 2025-03-18 20:58:09 +03:30
b0594757b5 fixed node 2025-03-18 20:56:25 +03:30
107213eaa1 trying something 2025-03-11 17:55:24 +03:30
590b1fb95d workflow 2025-03-11 17:52:42 +03:30
7fdb71b680 added runner 2025-03-11 17:46:27 +03:30
Sohrab Behdani
01a2d88865
fixed boot partition 2025-03-02 17:15:50 +03:30
Sohrab Behdani
e3a37949d0
Update xfce 2025-03-02 17:09:01 +03:30
Sohrab Behdani
fb604fe65d
Update barebone 2025-03-02 17:08:34 +03:30
Sohrab Behdani
ea13828250
Update build.yml 2025-03-02 00:39:15 +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
9 changed files with 326 additions and 96 deletions

View file

@ -0,0 +1,80 @@
name: Build Images
on:
release:
types:
- created
workflow_dispatch: # Allows manual triggering
env:
api_key: ${{ secrets.GITHUB_TOKEN }}
name: ${{ github.event.repository.name }}
release_name: ${{ github.ref_name }}
GH_TOKEN: ${{ github.token }}
jobs:
build:
permissions:
contents: write
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:base-devel
privileged: true
strategy:
matrix:
arch: ['aarch64', 'rpi-aarch64']
flavor: ['barebone']
include:
- arch: rpi-aarch64
flavor: xfce
steps:
- name: nodejs installation
run: pacman -Syu nodejs base-devel git --noconfirm
- uses: actions/checkout@v4
- name: Configure Git user
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Install dependencies
run: pacman -Sy && pacman -S --noconfirm parted wget dosfstools zip arch-install-scripts aria2 github-cli git
- name: Set up QEMU
uses: https://github.com/docker/setup-qemu-action@v2
with:
platforms: arm,arm64
- name: Build image
shell: bash
run: |
scripts=()
for script_name in "${{ matrix.arch }}" "${{ matrix.flavor }}" "${{ matrix.arch }}-${{ matrix.flavor }}"; do
script_path="setup/$script_name"
if [ -f "$script_path" ]; then
scripts+=("$script_path")
fi
done
sudo ./create-image 9G ${{ matrix.arch }} "${scripts[@]}"
- name: Rename image
id: rename-image
run: |
image_in_name="archlinux-${{ matrix.arch }}.img"
image_out_name="Parchlinux-${{ matrix.arch }}-${{ matrix.flavor }}-$(date '+%Y-%m-%d').img"
mv "$image_in_name" "$image_out_name"
echo "image_name=$image_out_name" >> "$GITHUB_ENV"
- name: Compress image
run: |
mkdir image_parts
zip -s 2000m "image_parts/${{ env.image_name }}" "${{ env.image_name }}"
- name: Upload image
run: |
sha256sum image_parts/* > image_parts/sha256sums.${{ matrix.arch }}.${{ matrix.flavor }}.txt
gh release upload ${{ github.ref_name }} image_parts/* -R ${{ github.repository }}

View file

@ -1,70 +0,0 @@
# Adapted from https://github.com/andrewboring/alarm-images/blob/master/.github/workflows/build.yml
name: Build Images
on:
release:
types:
- created
env:
api_key: ${{ secrets.GITHUB_TOKEN }}
name: ${{ github.event.repository.name }}
release_name: ${{ github.ref_name }}
GH_TOKEN: ${{ github.token }}
jobs:
build:
permissions:
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
arch: ['aarch64', 'rpi-aarch64']
flavor: ['barebone']
include:
- arch: rpi-aarch64
flavor: xfce
- arch: rpi-aarch64
flavor: trinity
steps:
- uses: actions/checkout@v3
- name: Configure Git user
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y parted wget dosfstools zip arch-install-scripts aria2 gh git
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: arm,arm64
- name: Build image
shell: bash
run: |
scripts=()
for script_name in "${{ matrix.arch }}" "${{ matrix.flavor }}" "${{ matrix.arch }}-${{ matrix.flavor }}"; do
script_path="setup/$script_name"
if [ -f "$script_path" ]; then
scripts+=("$script_path")
fi
done
sudo ./create-image 8G ${{ matrix.arch }} "${scripts[@]}"
- name: Rename image
id: rename-image
run: |
image_in_name="archlinux-${{ matrix.arch }}.img"
image_out_name="Parchlinux-${{ matrix.arch }}-${{ matrix.flavor }}-$(date '+%Y-%m-%d').img"
mv "$image_in_name" "$image_out_name"
echo "image_name=$image_out_name" >> "$GITHUB_OUTPUT"
- name: Compress image
run: |
mkdir image_parts
zip -r "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
gh release upload ${{ github.event.release.tag_name }} ./image_parts/* -R ${{ github.repository }}

View file

@ -65,8 +65,8 @@ loopdev=$(losetup --find --show "${image}")
echo "==> Partitioning image..."
parted --script "${loopdev}" mklabel msdos
parted --script "${loopdev}" mkpart primary fat32 0% 200M
parted --script "${loopdev}" mkpart primary ext4 200M 100%
parted --script "${loopdev}" mkpart primary fat32 0% 1024M
parted --script "${loopdev}" mkpart primary ext4 1024M 100%
echo "==> Formatting image..."
bootdev=$(ls "${loopdev}"*1)

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

View file

@ -38,7 +38,6 @@ packages=(
man-db
neovim
pacman-contrib
yay-bin
python
rsync
sudo

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=(
@ -43,7 +34,6 @@ packages=(
man-db
neovim
pacman-contrib
yay-bin
python
rsync
sudo