diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2423a17..6e8f580 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install Packages via Pacman - run: pacman -Sy; pacman --noconfirm -S git archiso python python-pygithub github-cli reflector p7zip + run: pacman -Syu --noconfirm; pacman --noconfirm -S git archiso python python-pygithub github-cli reflector p7zip - name: Change Arch docker mirror run: reflector -c "US" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist - name: Build image diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..142e8c6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,43 @@ +stages: + - build + - deploy + +image: archlinux/archlinux:base-devel + +variables: + Desktop: "cosmic" + +build_iso: + stage: build + script: + - ./build.sh + - echo "Renaming the output ISO file" + - mv out/*.iso out/ParchLinux-$Desktop-latest.iso + - echo "Generating MD5 checksum" + - md5sum out/ParchLinux-$Desktop-latest.iso > out/md5sum.txt + - echo "Build completed. Files generated:" + - ls -lh out/ + artifacts: + paths: + - out/ParchLinux-$Desktop-latest.iso + - out/md5sum.txt + rules: + - if: $CI_COMMIT_TAG + +deploy_iso: + stage: deploy + dependencies: + - build_iso + script: + - echo "Installing sshpass and rsync" + - pacman -Syu --noconfirm sshpass rsync + - echo "Determining the remote directory based on the tag" + - if [[ "$CI_COMMIT_TAG" == *"beta"* ]]; then export REMOTE_DIR="/srv/http/beta/$Desktop/"; else export REMOTE_DIR="/srv/http/$Desktop/"; fi + - echo "Removing old ISO files from remote directory" + - sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT rm -rf "$REMOTE_DIR/" + - echo "Creating new directory on remote host" + - sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no parch@$SSH_ROOT mkdir -p "$REMOTE_DIR/" + - echo "Uploading new ISO via rsync" + - sshpass -p "$PASS" rsync -r out/ParchLinux-$Desktop-latest.iso out/md5sum.txt parch@$SSH_ROOT:"$REMOTE_DIR/" + rules: + - if: $CI_COMMIT_TAG diff --git a/README.md b/README.md index 0acc702..c5ee622 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ -# Parch Linux iso template +# Parch Linux Cosmic -## Use this template for making releases \ No newline at end of file +Cosmic is a DE made by System76 in Rust and Iced. + + +Parch Linux Cosmic features Cosmic DE with a Touch of Parch Linux itself. + + +## Note: +> currently cosmic is in alpha stage and it is not fully finished, use Parch Linux Cosmic only for testing. diff --git a/build.sh b/build.sh index aa5da84..ae91d1f 100755 --- a/build.sh +++ b/build.sh @@ -33,8 +33,7 @@ main() { install echo -e "$Blue### Install complete ###$reset" echo -e "$Green### Start build $reponame with archiso ###$reset" - build - makezip + build fi else echo -e "$Red###OS can't supported###$reset" @@ -42,19 +41,19 @@ main() { fi } + install() { set -e - pacman -Sy; pacman --noconfirm -S --needed git archiso github-cli p7zip + pacman -Sy; pacman --noconfirm -S --needed git wget github-cli p7zip reflector rsync + wget https://git.parchlinux.com/repo/ppr/-/raw/main/x86_64/archiso-99-1-any.pkg.tar.zst + sudo pacman -U archiso-99-1-any.pkg.tar.zst --noconfirm } + + build() { set -e mkarchiso -v iso/ } -makezip() { - cd out - 7z -v500m a "$(ls *.iso)".zip "$(ls *.iso)" - md5sum * > md5sums.txt -} main diff --git a/iso/airootfs/etc/mkinitcpio.conf b/iso/airootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000..9f5174a --- /dev/null +++ b/iso/airootfs/etc/mkinitcpio.conf @@ -0,0 +1,73 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES=(usbhid xhci_hcd) +MODULES=() + +# BINARIES +# This setting includes any additional binaries a given user may +# wish into the CPIO image. This is run last, so it may be used to +# override the actual binaries included by a given hook +# BINARIES are dependency parsed, so you may safely ignore libraries +BINARIES=(setfont) + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in any way. This is useful for config files. +FILES=() + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No RAID, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect modconf block filesystems fsck) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev modconf block filesystems fsck) +# +## This setup assembles a mdadm array with an encrypted root file system. +## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. +# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) +# +## This setup loads an lvm2 volume group. +# HOOKS=(base udev modconf block lvm2 filesystems fsck) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr and fsck hooks. +HOOKS=(base udev modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) + +# COMPRESSION +# Use this to compress the initramfs image. By default, zstd compression +# is used. Use 'cat' to create an uncompressed image. +COMPRESSION="zstd" +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +#COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() + +# MODULES_DECOMPRESS +# Decompress kernel modules during initramfs creation. +# Enable to speedup boot process, disable to save RAM +# during early userspace. Switch (yes/no). +#MODULES_DECOMPRESS="yes" diff --git a/iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf b/iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf deleted file mode 100644 index b4b3095..0000000 --- a/iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf +++ /dev/null @@ -1,2 +0,0 @@ -HOOKS=(base udev modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) -COMPRESSION="xz" diff --git a/iso/airootfs/etc/mkinitcpio.d/linux.preset b/iso/airootfs/etc/mkinitcpio.d/linux.preset index 7f51749..ffcd99b 100644 --- a/iso/airootfs/etc/mkinitcpio.d/linux.preset +++ b/iso/airootfs/etc/mkinitcpio.d/linux.preset @@ -1,9 +1,5 @@ # mkinitcpio preset file for the 'linux' package on archiso - PRESETS=('archiso') - ALL_kver='/boot/vmlinuz-linux' -archiso_config='/etc/mkinitcpio.conf.d/archiso.conf' - +archiso_config='/etc/mkinitcpio.conf' archiso_image="/boot/initramfs-linux.img" - diff --git a/iso/airootfs/etc/mkinitcpio.d/parchlinux b/iso/airootfs/etc/mkinitcpio.d/parchlinux new file mode 100644 index 0000000..a2ed6a9 --- /dev/null +++ b/iso/airootfs/etc/mkinitcpio.d/parchlinux @@ -0,0 +1,7 @@ +# mkinitcpio preset file for the kernel +ALL_kver='/boot/vmlinuz-linux' +#PRESETS=('default' 'fallback') +PRESETS=('default') +default_image="/boot/initramfs-linux.img" +#fallback_image="/boot/initramfs-linux-fallback.img" +#fallback_options="-S autodetect" diff --git a/iso/packages.x86_64 b/iso/packages.x86_64 index 02871cb..65ce6dd 100644 --- a/iso/packages.x86_64 +++ b/iso/packages.x86_64 @@ -31,7 +31,6 @@ f2fs-tools fatresize fsarchiver git -gnu-netcat gpart gpm gptfdisk @@ -93,8 +92,6 @@ python python-psutil python-systemd refind -#reflector -reiserfsprogs rp-pppoe rsync rxvt-unicode-terminfo @@ -136,18 +133,22 @@ openssl gvfs gvfs-mtp networkmanager -android-file-transfer boost sddm #Desktop -cosmic-epoch-git +cosmic + +#Essential Apps +nheko +firefox #systemutils btop xdg-user-dirs neofetch-git fastfetch +kernel-install-mkinitcpio #ParchLinux Core Packages parch-welcome @@ -156,6 +157,6 @@ calamares os-prober paru parch-emoji-ios -vazirmatn-fonts +ttf-vazirmatn parch-branding -parch-pacman +parch-pacman-systemd diff --git a/iso/pacman.conf b/iso/pacman.conf index c41fe45..fc117c3 100644 --- a/iso/pacman.conf +++ b/iso/pacman.conf @@ -38,7 +38,7 @@ CheckSpace # 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 +SigLevel = Never LocalFileSigLevel = Optional #RemoteFileSigLevel = Required @@ -74,7 +74,7 @@ LocalFileSigLevel = Optional [ppr] SigLevel = Optional TrustedOnly -Server = https://raw.githubusercontent.com/parchlinux/ppr/main/x86_64/ +Server = https://git.parchlinux.com/repo/ppr/-/raw/main/x86_64/ [core] Include = /etc/pacman.d/mirrorlist @@ -96,11 +96,9 @@ Include = /etc/pacman.d/mirrorlist [pcp] SigLevel = Optional TrustedOnly -Server = https://raw.githubusercontent.com/parchlinux/pcp/main/x86_64/ +Server = https://git.parchlinux.com/repo/pcp/-/raw/main/x86_64/ + -[chaotic-aur] -SigLevel = Never -Server = https://geo-mirror.chaotic.cx/$repo/$arch # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. #[custom]