diff --git a/01_prepare.sh b/01_prepare.sh index 4dd9f24..fcb8a81 100755 --- a/01_prepare.sh +++ b/01_prepare.sh @@ -6,25 +6,33 @@ sudo pacman -Sy sudo pacman -Sw --noconfirm --cachedir "./airootfs/opt/extra-drivers" r8168 -sudo pacman -Sw --noconfirm --cachedir "./airootfs/usr/share/packages" dracut \ -eos-dracut \ -grub \ -kernel-install-for-dracut \ -libxvmc \ -linux \ -linux-api-headers \ -linux-headers \ -linux-xanmod-anbox \ -linux-xanmod-anbox-headers \ -melawy-dracut-initramfs \ -melawy-dracut-ukify \ -melawy-refind-menu-generator \ -melawy-refind-theme-nier-a2 \ -melawy-plymouth-theme-nier-a2 \ -os-prober \ -refind \ -update-grub \ -xf86-video-intel +packs=( + dracut + eos-dracut + grub + kernel-install-for-dracut + libxvmc + linux + linux-api-headers + linux-headers + linux-xanmod-anbox + linux-xanmod-anbox-headers + melawy-dracut-initramfs + melawy-dracut-ukify + melawy-refind-menu-generator + melawy-refind-theme-nier-a2 + melawy-plymouth-theme-nier-a2 + os-prober + refind + update-grub + xf86-video-intel +) + +for pack in ${packs[@]} +do + sudo pacman -Sw --noconfirm --cachedir "./airootfs/usr/share/packages" $pack +done + #echo "melawy" | beep -f 200 -l 250 -d 100 -r 1 -n -s notify-send -a "$(basename $(pwd)): Prepare" -t 999999999 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" diff --git a/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf b/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf deleted file mode 100644 index ad58786..0000000 --- a/airootfs/etc/dracut.conf.d/melawy-linux-defaults.conf +++ /dev/null @@ -1,3 +0,0 @@ -omit_dracutmodules+=" network cifs nfs brltty " -compress="zstd" -hostonly="no" diff --git a/airootfs/etc/environment b/airootfs/etc/environment old mode 100755 new mode 100644 index f1c0cad..ff3721a --- a/airootfs/etc/environment +++ b/airootfs/etc/environment @@ -3,9 +3,15 @@ # # Syntax: simple "KEY=VAL" pairs on separate lines # -#QT_QPA_PLATFORMTHEME=qt5ct -#QT_STYLE_OVERRIDE=kvantum -QT_SELECT=6 +#QT_QPA_PLATFORMTHEME="qt5ct" +#QT_QPA_PLATFORM="wayland;xcb" +#QT_STYLE_OVERRIDE="kvantum" +#QT_SELECT=6 +#XDG_SESSION_TYPE="wayland" +#GDK_BACKEND="wayland" +#CLUTTER_BACKEND="wayland" +#SDL_VIDEODRIVER="wayland,x11" +GTK_USE_PORTAL=1 BROWSER=firefox EDITOR=nano ZPOOL_VDEV_NAME_PATH=1 diff --git a/airootfs/etc/makepkg.conf b/airootfs/etc/makepkg.conf index 4fe6679..d08e74f 100644 --- a/airootfs/etc/makepkg.conf +++ b/airootfs/etc/makepkg.conf @@ -38,19 +38,27 @@ CHOST="x86_64-pc-linux-gnu" #-- Compiler and Linker Flags #CPPFLAGS="" -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \ - -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ - -fstack-clash-protection -fcf-protection" + +export CC="clang" +export CXX="clang++" + +CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection" + CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS" -LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" + +#CFLAGS="-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection" + +LDFLAGS="-fuse-ld=lld -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" LTOFLAGS="-flto=auto" -#RUSTFLAGS="-C opt-level=2" +RUSTFLAGS="-C opt-level=2" + #-- Make Flags: change this for DistCC/SMP systems -#MAKEFLAGS="-j2" +MAKEFLAGS="-j$(nproc) -l$(nproc)" + #-- Debugging flags DEBUG_CFLAGS="-g" DEBUG_CXXFLAGS="$DEBUG_CFLAGS" -#DEBUG_RUSTFLAGS="-C debuginfo=2" +DEBUG_RUSTFLAGS="-C debuginfo=2" ######################################################################### # BUILD ENVIRONMENT @@ -65,7 +73,8 @@ DEBUG_CXXFLAGS="$DEBUG_CFLAGS" #-- check: Run the check() function if present in the PKGBUILD #-- sign: Generate PGP signature file # -BUILDENV=(!distcc color !ccache check !sign) +#BUILDENV=(!distcc color !ccache check !sign) +BUILDENV=(!distcc color ccache check !sign) # #-- If using DistCC, your MAKEFLAGS will also need modification. In addition, #-- specify a space-delimited list of hosts running in the DistCC cluster. @@ -92,7 +101,7 @@ BUILDENV=(!distcc color !ccache check !sign) #-- debug: Add debugging flags as specified in DEBUG_* variables #-- lto: Add compile flags for building with link time optimization # -OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto) +OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto) #-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2 INTEGRITY_CHECK=(sha256) @@ -136,7 +145,7 @@ DBGSRCDIR="/usr/src/debug" # COMPRESSGZ=(gzip -c -f -n) COMPRESSBZ2=(bzip2 -c -f) -COMPRESSXZ=(xz -vv -c -z --threads=0 -9 -e -) +COMPRESSXZ=(xz -v -c -z --threads=0 -9 -e -) COMPRESSZST=(zstd -c -z -q -) COMPRESSLRZ=(lrzip -q) COMPRESSLZO=(lzop -q) diff --git a/airootfs/etc/pacman-more.conf b/airootfs/etc/pacman-more.conf deleted file mode 100644 index 7e83f94..0000000 --- a/airootfs/etc/pacman-more.conf +++ /dev/null @@ -1,155 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives -# -# SPDX-License-Identifier: GPL-3.0-or-later - -# -# 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 = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -Color -ILoveCandy -#NoProgressBar -#CheckSpace -VerbosePkgLists -ParallelDownloads = 8 - -# 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 -# packagers with `pacman-key --populate archlinux`. - -# -# 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. -# - -[melawy] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-3party] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[core-testing] -#Include = /etc/pacman.d/mirrorlist - -[core] -Include = /etc/pacman.d/mirrorlist - -#[extra-testing] -#Include = /etc/pacman.d/mirrorlist - -[extra] -Include = /etc/pacman.d/mirrorlist - -# If you want to run 32 bit applications on your x86_64 system, -# enable the multilib repositories as required here. - -#[multilib-testing] -#Include = /etc/pacman.d/mirrorlist - -[multilib] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs - -[arcolinux_repo] -Include = /etc/pacman.d/arcolinux-mirrorlist - -[arcolinux_repo_xlarge] -Include = /etc/pacman.d/arcolinux-mirrorlist - -[arcolinux_repo_3party] -Include = /etc/pacman.d/arcolinux-mirrorlist - -[xhbp] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[xiso] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[xerolinux_repo] -SigLevel = Optional TrustAll -Server = https://xerolinux.github.io/$repo/$arch - -[xerolinux_repo_xl] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[cachyos] -Include = /etc/pacman.d/cachyos-mirrorlist - -[garuda] -Include = /etc/pacman.d/chaotic-mirrorlist - -[chaotic-aur] -Include = /etc/pacman.d/chaotic-mirrorlist - -[endeavouros] -Include = /etc/pacman.d/endeavouros-mirrorlist - -[melawy-aur] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-kde] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-theme] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-gui-app] -Include = /etc/pacman.d/melawy-linux-mirrorlist diff --git a/airootfs/etc/pacman.conf b/airootfs/etc/pacman.conf index 7e83f94..67e10c5 100644 --- a/airootfs/etc/pacman.conf +++ b/airootfs/etc/pacman.conf @@ -1,6 +1,6 @@ -# # /etc/pacman.conf # +# # See the pacman.conf(5) manpage for option and repository directives # # SPDX-License-Identifier: GPL-3.0-or-later @@ -9,64 +9,47 @@ # 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 +# 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 = base base-devel pacman glibc +# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +# CleanMethod = KeepInstalled Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -#IgnorePkg = -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog +# IgnorePkg = +# IgnoreGroup = +# NoUpgrade = +# NoExtract = +# UseSyslog Color ILoveCandy -#NoProgressBar -#CheckSpace +# NoProgressBar +CheckSpace VerbosePkgLists ParallelDownloads = 8 - -# 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 = Required DatabaseOptional LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required +# 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 -# packagers with `pacman-key --populate archlinux`. +#[core] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist -# -# 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. -# +#[main] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist + +#[apps] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist + + +#[kde-unstable] +#Include = /etc/pacman.d/mirrorlist [melawy] Include = /etc/pacman.d/melawy-linux-mirrorlist @@ -74,37 +57,24 @@ Include = /etc/pacman.d/melawy-linux-mirrorlist [melawy-3party] Include = /etc/pacman.d/melawy-linux-mirrorlist -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[core-testing] -#Include = /etc/pacman.d/mirrorlist +# [core-testing] +# Include = /etc/pacman.d/mirrorlist [core] Include = /etc/pacman.d/mirrorlist -#[extra-testing] -#Include = /etc/pacman.d/mirrorlist +# [extra-testing] +# Include = /etc/pacman.d/mirrorlist [extra] Include = /etc/pacman.d/mirrorlist -# If you want to run 32 bit applications on your x86_64 system, -# enable the multilib repositories as required here. - -#[multilib-testing] -#Include = /etc/pacman.d/mirrorlist +# [multilib-testing] +# Include = /etc/pacman.d/mirrorlist [multilib] Include = /etc/pacman.d/mirrorlist -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs - [arcolinux_repo] Include = /etc/pacman.d/arcolinux-mirrorlist @@ -114,42 +84,12 @@ Include = /etc/pacman.d/arcolinux-mirrorlist [arcolinux_repo_3party] Include = /etc/pacman.d/arcolinux-mirrorlist -[xhbp] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[xiso] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[xerolinux_repo] -SigLevel = Optional TrustAll -Server = https://xerolinux.github.io/$repo/$arch - -[xerolinux_repo_xl] -SigLevel = Optional TrustAll -Server = https://repos.xerolinux.xyz/$repo/$arch - -[cachyos] -Include = /etc/pacman.d/cachyos-mirrorlist - [garuda] Include = /etc/pacman.d/chaotic-mirrorlist [chaotic-aur] Include = /etc/pacman.d/chaotic-mirrorlist -[endeavouros] -Include = /etc/pacman.d/endeavouros-mirrorlist - -[melawy-aur] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-kde] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-theme] -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-gui-app] -Include = /etc/pacman.d/melawy-linux-mirrorlist +# [custom] +# SigLevel = Optional TrustAll +# Server = file:///home/custompkgs diff --git a/airootfs/root/archives/liveuser.tar.xz b/airootfs/root/archives/liveuser.tar.xz index bc778bd..7ac2364 100644 Binary files a/airootfs/root/archives/liveuser.tar.xz and b/airootfs/root/archives/liveuser.tar.xz differ diff --git a/airootfs/root/archives/skel.tar.xz b/airootfs/root/archives/skel.tar.xz index 658ac36..c93254b 100644 Binary files a/airootfs/root/archives/skel.tar.xz and b/airootfs/root/archives/skel.tar.xz differ diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh index d7e1ece..2e623ee 100755 --- a/airootfs/root/customize_airootfs.sh +++ b/airootfs/root/customize_airootfs.sh @@ -20,25 +20,14 @@ chown -R 0:0 /etc/skel tar -xJvf /root/archives/liveuser.tar.xz -C /home/liveuser --strip=1 --overwrite chown -R 1000:1000 /home/liveuser -# setfacl -m u:sddm:x /home/liveuser/ -# setfacl -m u:sddm:r /home/liveuser/.face.icon -# setfacl -m u:sddm:r /home/liveuser/.face -# -# cp /home/liveuser/.face /home/liveuser/liveuser.png -# cp /home/liveuser/liveuser.png /var/lib/AccountsService/icons/liveuser -# rm /home/liveuser/liveuser.png +tar -xJvf /root/archives/skel.tar.xz -C /root --strip=1 --overwrite +chown -R 0:0 /root cp -fT /etc/melawy-linux-release /etc/lsb-release -sed -e "s/kde) kdesu/#kde) kdesu/g" -i /usr/bin/eos-install-mode-run-calamares -sed -e "s/pkexec calamares/sudo pkexec calamares/g" -i /usr/bin/eos-install-mode-run-calamares - sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf echo -e "[Daemon]\nTheme=melawy-lera-sugar\nDeviceScale=1\nDeviceTimeout=8\nShowDelay=0" > "/usr/share/plymouth/plymouthd.defaults" -mv "/usr/lib/modprobe.d/nvidia-utils.conf" "/etc/calamares/files/nv-modprobe" -mv "/usr/lib/modules-load.d/nvidia-utils.conf" "/etc/calamares/files/nv-modules-load" - exit 0 diff --git a/airootfs/root/root-theme/Trolltech.conf b/airootfs/root/root-theme/Trolltech.conf deleted file mode 100644 index 8b89f4c..0000000 --- a/airootfs/root/root-theme/Trolltech.conf +++ /dev/null @@ -1,17 +0,0 @@ -[qt] -GUIEffects=none -KDE\contrast=7 -KWinPalette\activeBackground=#31363b -KWinPalette\activeBlend=#fcfcfc -KWinPalette\activeForeground=#fcfcfc -KWinPalette\activeTitleBtnBg=#2a2e32 -KWinPalette\frame=#2a2e32 -KWinPalette\inactiveBackground=#2a2e32 -KWinPalette\inactiveBlend=#a1a9b1 -KWinPalette\inactiveForeground=#a1a9b1 -KWinPalette\inactiveFrame=#2a2e32 -KWinPalette\inactiveTitleBtnBg=#2a2e32 -Palette\active=#fcfcfc, #31363b, #474d54, #3a4045, #141618, #24282b, #fcfcfc, #ffffff, #fcfcfc, #1b1e20, #2a2e32, #0f1012, #6e56a9, #ffffff, #926ee4, #9b59b6, #232629, #000000, #31363b, #fcfcfc, #fcfcfc -Palette\disabled=#6e7173, #2f3338, #454c52, #393e44, #131517, #222629, #656768, #ffffff, #727679, #1a1d1f, #282c30, #0e0f11, #282c30, #6e7173, #413760, #443051, #212427, #000000, #31363b, #fcfcfc, #fcfcfc -Palette\inactive=#fcfcfc, #31363b, #474d54, #3a4045, #141618, #24282b, #fcfcfc, #ffffff, #fcfcfc, #1b1e20, #2a2e32, #0f1012, #3e345c, #fcfcfc, #926ee4, #9b59b6, #232629, #000000, #31363b, #fcfcfc, #fcfcfc -font="Noto Sans,10,-1,0,50,0,0,0,0,0" diff --git a/airootfs/root/root-theme/gtkrc b/airootfs/root/root-theme/gtkrc deleted file mode 100644 index ca553a4..0000000 --- a/airootfs/root/root-theme/gtkrc +++ /dev/null @@ -1,2 +0,0 @@ -# created by KDE Plasma, Do. Mai 4 10:04:18 2023 -# diff --git a/airootfs/root/root-theme/gtkrc-2.0 b/airootfs/root/root-theme/gtkrc-2.0 deleted file mode 100644 index c1e3107..0000000 --- a/airootfs/root/root-theme/gtkrc-2.0 +++ /dev/null @@ -1,5 +0,0 @@ -# created by KDE Plasma, Do. Mai 4 10:04:18 2023 -# - -gtk-alternative-button-order = 1 - diff --git a/airootfs/root/root-theme/kactivitymanagerdrc b/airootfs/root/root-theme/kactivitymanagerdrc deleted file mode 100644 index ca75038..0000000 --- a/airootfs/root/root-theme/kactivitymanagerdrc +++ /dev/null @@ -1,5 +0,0 @@ -[activities] -b426b0d9-d595-4d3b-85d0-4fc8c77bdabc=Default - -[main] -currentActivity=b426b0d9-d595-4d3b-85d0-4fc8c77bdabc diff --git a/airootfs/root/root-theme/kdedefaults/kcminputrc b/airootfs/root/root-theme/kdedefaults/kcminputrc deleted file mode 100644 index 779b957..0000000 --- a/airootfs/root/root-theme/kdedefaults/kcminputrc +++ /dev/null @@ -1,2 +0,0 @@ -[Mouse] -cursorTheme=breeze_cursors diff --git a/airootfs/root/root-theme/kdedefaults/kdeglobals b/airootfs/root/root-theme/kdedefaults/kdeglobals deleted file mode 100644 index c5d85e0..0000000 --- a/airootfs/root/root-theme/kdedefaults/kdeglobals +++ /dev/null @@ -1,2 +0,0 @@ -[General] -ColorScheme=BreezeDark diff --git a/airootfs/root/root-theme/kdedefaults/kwinrc b/airootfs/root/root-theme/kdedefaults/kwinrc deleted file mode 100644 index 7807464..0000000 --- a/airootfs/root/root-theme/kdedefaults/kwinrc +++ /dev/null @@ -1,7 +0,0 @@ -[TabBox] -LayoutName=org.kde.breeze.desktop - -[org.kde.kdecoration2] -NoPlugin=false -library=org.kde.breeze -theme=Breeze diff --git a/airootfs/root/root-theme/kdedefaults/package b/airootfs/root/root-theme/kdedefaults/package deleted file mode 100644 index 89b4b02..0000000 --- a/airootfs/root/root-theme/kdedefaults/package +++ /dev/null @@ -1 +0,0 @@ -com.endeavouros.breezedarkeos.desktop \ No newline at end of file diff --git a/airootfs/root/root-theme/kdedefaults/plasmarc b/airootfs/root/root-theme/kdedefaults/plasmarc deleted file mode 100644 index 8b58863..0000000 --- a/airootfs/root/root-theme/kdedefaults/plasmarc +++ /dev/null @@ -1,2 +0,0 @@ -[Theme] -name=default diff --git a/airootfs/root/root-theme/kdeglobals b/airootfs/root/root-theme/kdeglobals deleted file mode 100644 index 54101d9..0000000 --- a/airootfs/root/root-theme/kdeglobals +++ /dev/null @@ -1,141 +0,0 @@ -[ColorEffects:Disabled] -ChangeSelectionColor= -Color=56,56,56 -ColorAmount=0 -ColorEffect=0 -ContrastAmount=0.65 -ContrastEffect=1 -Enable= -IntensityAmount=0.1 -IntensityEffect=2 - -[ColorEffects:Inactive] -ChangeSelectionColor=true -Color=112,111,110 -ColorAmount=0.025 -ColorEffect=2 -ContrastAmount=0.1 -ContrastEffect=2 -Enable=false -IntensityAmount=0 -IntensityEffect=0 - -[Colors:Button] -BackgroundAlternate=116,93,177 -BackgroundNormal=49,54,59 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Complementary] -BackgroundAlternate=30,87,116 -BackgroundNormal=42,46,50 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Header] -BackgroundAlternate=42,46,50 -BackgroundNormal=49,54,59 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Header][Inactive] -BackgroundAlternate=49,54,59 -BackgroundNormal=42,46,50 -DecorationFocus=61,174,233 -DecorationHover=61,174,233 -ForegroundActive=61,174,233 -ForegroundInactive=161,169,177 -ForegroundLink=29,153,243 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Selection] -BackgroundAlternate=110,86,169 -BackgroundNormal=110,86,169 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=255,255,255 -ForegroundLink=146,110,228 -ForegroundNegative=176,55,69 -ForegroundNeutral=198,92,0 -ForegroundNormal=255,255,255 -ForegroundPositive=23,104,57 -ForegroundVisited=155,89,182 - -[Colors:Tooltip] -BackgroundAlternate=42,46,50 -BackgroundNormal=49,54,59 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:View] -BackgroundAlternate=35,38,41 -BackgroundNormal=27,30,32 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[Colors:Window] -BackgroundAlternate=49,54,59 -BackgroundNormal=42,46,50 -DecorationFocus=146,110,228 -DecorationHover=146,110,228 -ForegroundActive=146,110,228 -ForegroundInactive=161,169,177 -ForegroundLink=146,110,228 -ForegroundNegative=218,68,83 -ForegroundNeutral=246,116,0 -ForegroundNormal=252,252,252 -ForegroundPositive=39,174,96 -ForegroundVisited=155,89,182 - -[WM] -activeBackground=49,54,59 -activeBlend=252,252,252 -activeForeground=252,252,252 -inactiveBackground=42,46,50 -inactiveBlend=161,169,177 -inactiveForeground=161,169,177 diff --git a/airootfs/root/root-theme/systemsettingsrc b/airootfs/root/root-theme/systemsettingsrc deleted file mode 100644 index 381c701..0000000 --- a/airootfs/root/root-theme/systemsettingsrc +++ /dev/null @@ -1,9 +0,0 @@ -[MainWindow] -2 screens: Height=700 -2 screens: Width=1020 -2 screens: XPosition=1680 -2 screens: YPosition=701 -DVI-0 HDMI-0=HDMI-0 -MenuBar=Disabled -State=AAAA/wAAAAD9AAAAAAAAA/wAAAK8AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAWAG0AYQBpAG4AVABvAG8AbABCAGEAcgAAAAAA/////wAAAAAAAAAA -ToolBarsMovable=Disabled diff --git a/airootfs/usr/local/bin/chrooted-cleaner-script b/airootfs/usr/local/bin/chrooted-cleaner-script new file mode 100755 index 0000000..ea65030 --- /dev/null +++ b/airootfs/usr/local/bin/chrooted-cleaner-script @@ -0,0 +1,525 @@ +#!/usr/bin/env bash + +# New version of cleaner_script +# Made by @fernandomaroto and @manuel +# Any failed command will just be skipped, error message may pop up but won't crash the install process +# Net-install creates the file /tmp/run_once in live environment (need to be transfered to installed system) so it can be used to detect install option +# ISO-NEXT specific cleanup removals and additions (08-2021) @killajoe and @manuel +# 01-2022 passing in online and username as params - @dalto +# 04-2022 small code re-organization - @manuel +# 10-2022 remove unused code and support for dracut/mkinitcpio switch + +_c_c_s_msg() { # use this to provide all user messages (info, warning, error, ...) + local type="$1" + local msg="$2" + echo "==> $type: $msg" +} + +_pkg_msg() { # use this to provide all package management messages (install, uninstall) + local op="$1" + local pkgs="$2" + case "$op" in + remove | uninstall) op="uninstalling" ;; + install) op="installing" ;; + esac + echo "==> $op $pkgs" +} + +_check_internet_connection(){ + eos-connection-checker +} + +_is_pkg_installed() { # this is not meant for offline mode !? + # returns 0 if given package name is installed, otherwise 1 + local pkgname="$1" + pacman -Q "$pkgname" >& /dev/null +} + +_remove_a_pkg() { + local pkgname="$1" + _pkg_msg remove "$pkgname" + pacman -Rsn --noconfirm "$pkgname" +} + +_remove_pkgs_if_installed() { # this is not meant for offline mode !? + # removes given package(s) and possible dependencies if the package(s) are currently installed + local pkgname + local removables=() + for pkgname in "$@" ; do + if _is_pkg_installed "$pkgname" ; then + _pkg_msg remove "$pkgname" + removables+=("$pkgname") + fi + done + if [ -n "$removables" ] ; then + pacman -Rs --noconfirm "${removables[@]}" + fi +} + +_install_needed_packages() { + if eos-connection-checker ; then + _pkg_msg install "if missing: $*" + pacman -S --needed --noconfirm "$@" + else + _c_c_s_msg warning "no internet connection, cannot install packages $*" + fi +} + + +################################################################## +# Virtual machine stuff. +# For virtual machines we assume internet connection exists. +################################################################## + +_virt_remove() { + local pkg + for pkg in "$@" ; do + _pkg_msg remove "$pkg" + pacman -Rns --noconfirm "$pkg" + done +} + +_vm_environment_set1() { + local varname="$1" + if [ -z "$(grep "^$varname=" /etc/environment)" ] ; then + _c_c_s_msg info "adding $varname=1 to /etc/environment" + echo "$varname=1" >> /etc/environment + fi +} + +_sway_in_vm_settings() { + # Settings for sway in a virtual machine + if [ -x /usr/bin/swaybg ] ; then + # We are using sway here (see also: eos-script-lib-yad, eos_IsSway()). + _vm_environment_set1 WLR_NO_HARDWARE_CURSORS + case "$detected_vm" in + qemu) _vm_environment_set1 WLR_RENDERER_ALLOW_SOFTWARE ;; + esac + fi +} + +_virtual_machines() { + local detected_vm="$1" + local pkgs_common="xf86-video-vmware" + local pkgs_remove_from_vm="power-profiles-daemon" + local pkgs_vbox="virtualbox-guest-utils" + local pkgs_qemu="qemu-guest-agent spice-vdagent" + local pkgs_vmware="open-vm-tools xf86-input-vmmouse" + + [ -n "$detected_vm" ] || detected_vm="$(device-info --vm)" + + case "$detected_vm" in # 2021-Sep-30: device-info may output one of: "virtualbox", "qemu", "kvm", "vmware" or "" + virtualbox) + _c_c_s_msg info "VirtualBox VM detected." + _virt_remove $pkgs_qemu $pkgs_vmware $pkgs_remove_from_vm + _install_needed_packages $pkgs_vbox $pkgs_common + _sway_in_vm_settings # Note: sway requires enabling 3D support for the vbox virtual machine! + ;; + vmware) + _c_c_s_msg info "VmWare VM detected." + _virt_remove $pkgs_qemu $pkgs_vbox $pkgs_remove_from_vm + _install_needed_packages $pkgs_vmware $pkgs_common + _sway_in_vm_settings + ;; + qemu) + # common pkgs ?? + _c_c_s_msg info "Qemu VM detected." + _virt_remove $pkgs_vmware $pkgs_vbox $pkgs_common $pkgs_remove_from_vm + _install_needed_packages $pkgs_qemu + _sway_in_vm_settings + ;; + kvm) + _c_c_s_msg info "Kvm VM detected." + if [ -n "$(lspci -vnn | grep -iw "qemu virtual machine")" ] ; then + $FUNCNAME qemu + else + _virt_remove $pkgs_remove_from_vm + _install_needed_packages $pkgs_qemu $pkgs_vbox $pkgs_common # ??? + _sway_in_vm_settings + fi + ;; + *) + _c_c_s_msg info "VM not detected." + _virt_remove $pkgs_vbox $pkgs_qemu $pkgs_vmware $pkgs_common + ;; + esac +} + +_sed_stuff(){ + + # Journal for offline. Turn volatile (for iso) into a real system. + sed -i 's/volatile/auto/g' /etc/systemd/journald.conf 2>>/tmp/.errlog + sed -i 's/.*pam_wheel\.so/#&/' /etc/pam.d/su +} + +_clean_archiso(){ + + local _files_to_remove=( + /etc/sudoers.d/g_wheel + /var/lib/NetworkManager/NetworkManager.state + /etc/systemd/system/getty@tty1.service.d/autologin.conf + /etc/systemd/system/getty@tty1.service.d + /etc/systemd/system/multi-user.target.wants/* + /etc/systemd/journald.conf.d + /etc/systemd/logind.conf.d + /etc/mkinitcpio-archiso.conf + /etc/initcpio + /root/{,.[!.],..?}* + /etc/motd + /{gpg.conf,gpg-agent.conf,pubring.gpg,secring.gpg} + /version + ) + + local xx + + for xx in ${_files_to_remove[*]}; do rm -rf $xx; done + + find /usr/lib/initcpio -name archiso* -type f -exec rm '{}' \; + +} + +_clean_offline_packages(){ + + local packages_to_remove=( + + # BASE + + ## Base system + edk2-shell + + # SOFTWARE + + # ISO + + ## Live iso specific + arch-install-scripts + memtest86+ + mkinitcpio + mkinitcpio-archiso + mkinitcpio-busybox + #pv + syslinux + + ## Live iso tools + clonezilla + gpart + grsync + hdparm + #partitionmanager + + # ENDEAVOUROS REPO + + ## General + rate-mirrors + + ## Calamares EndeavourOS + $(pacman -Qq | grep calamares) # finds calamares related packages + ckbcomp + + # arm qemu dependency + qemu-arm-aarch64-static-bin + ) + + pacman -Rsn --noconfirm "${packages_to_remove[@]}" + +} + +_is_offline_mode() { + if [ "$INSTALL_TYPE" = "online" ] ; then + return 1 # online install mode + else + return 0 # offline install mode + fi +} +_is_online_mode() { ! _is_offline_mode ; } + + +_check_install_mode(){ + + if _is_online_mode ; then + local INSTALL_OPTION="ONLINE_MODE" + else + local INSTALL_OPTION="OFFLINE_MODE" + fi + + case "$INSTALL_OPTION" in + OFFLINE_MODE) + _clean_archiso + chown $NEW_USER:$NEW_USER /home/$NEW_USER/.bashrc + _sed_stuff + _clean_offline_packages + ;; + + ONLINE_MODE) + # not implemented yet. For now run functions at "SCRIPT STARTS HERE" + : + # all systemd are enabled - can be specific offline/online in the future + ;; + *) + ;; + esac +} + +_remove_ucode(){ + local ucode="$1" + _remove_a_pkg "$ucode" +} + +_remove_other_graphics_drivers() { + local graphics="$(device-info --vga ; device-info --display)" + local amd=no + + # remove AMD graphics driver if it is not needed + if [ -n "$(echo "$graphics" | grep "Advanced Micro Devices")" ] ; then + amd=yes + elif [ -n "$(echo "$graphics" | grep "AMD/ATI")" ] ; then + amd=yes + elif [ -n "$(echo "$graphics" | grep "Radeon")" ] ; then + amd=yes + fi + if [ "$amd" = "no" ] ; then + _remove_a_pkg xf86-video-amdgpu + _remove_a_pkg xf86-video-ati + fi +} + +_remove_broadcom_wifi_driver_old() { + local pkgname=broadcom-wl-dkms + local wifi_pci + local wifi_driver + + # _is_pkg_installed $pkgname && { + wifi_pci="$(lspci -k | grep -A4 " Network controller: ")" + if [ -n "$(lsusb | grep " Broadcom ")" ] || [ -n "$(echo "$wifi_pci" | grep " Broadcom ")" ] ; then + return + fi + wifi_driver="$(echo "$wifi_pci" | grep "Kernel driver in use")" + if [ -n "$(echo "$wifi_driver" | grep "in use: wl$")" ] ; then + return + fi + _remove_a_pkg $pkgname + # } +} + +_remove_broadcom_wifi_driver() { + local pkgname=broadcom-wl-dkms + local file=/tmp/$pkgname.txt + if [ "$(cat $file 2>/dev/null)" = "no" ] ; then + _remove_a_pkg $pkgname + fi +} + +_install_extra_drivers_to_target() { + # Install special drivers to target if needed. + # The drivers exist on the ISO and were copied to the target. + + local dir=/opt/extra-drivers + local pkg + + # Handle the r8168 package. + if [ -r /tmp/r8168_in_use ] ; then + # We must install r8168 now. + if _is_offline_mode ; then + # Install using the copied r8168 package. + pkg="$(/usr/bin/ls -1 $dir/r8168-*-x86_64.pkg.tar.zst)" + if [ -n "$pkg" ] ; then + _pkg_msg install "r8168 (offline)" + pacman -U --noconfirm $pkg + else + _c_c_s_msg error "no r8168 package in folder $dir!" + fi + else + # Install r8168 package from the mirrors. + _install_needed_packages r8168 + fi + fi +} + +_install_more_firmware() { + # Install possibly missing firmware packages based on detected hardware + + if [ -n "$(lspci -k | grep "Kernel driver in use: mwifiex_pcie")" ] ; then # e.g. Microsoft Surface Pro + _install_needed_packages linux-firmware-marvell + fi +} + +_nvidia_remove() { + _pkg_msg remove "$*" + pacman -Rsc --noconfirm "$@" +} + +_remove_nvidia_drivers() { + local remove="pacman -Rsc --noconfirm" + + if _is_offline_mode ; then + # delete packages separately to avoid all failing if one fails + [ -r /usr/share/licenses/nvidia-dkms/LICENSE ] && _nvidia_remove nvidia-dkms + [ -x /usr/bin/nvidia-modprobe ] && _nvidia_remove nvidia-utils + [ -x /usr/bin/nvidia-settings ] && _nvidia_remove nvidia-settings + [ -x /usr/bin/nvidia-inst ] && _nvidia_remove nvidia-inst + [ -r /usr/share/libalpm/hooks/eos-nvidia-fix.hook ] && _nvidia_remove nvidia-hook + true + fi +} + +_manage_nvidia_packages() { + local file=/tmp/nvidia-info.bash # nvidia info from livesession + local nvidia_card="" # these two variables are defined in $file + local nvidia_driver="" + + if [ ! -r $file ] ; then + _c_c_s_msg warning "file $file does not exist!" + _remove_nvidia_drivers + else + source $file + if [ "$nvidia_driver" = "no" ] ; then + _remove_nvidia_drivers + elif [ "$nvidia_card" = "yes" ] ; then + _install_needed_packages nvidia-inst nvidia-hook nvidia-dkms + fi + fi +} + +_run_if_exists_or_complain() { + local app="$1" + + if (which "$app" >& /dev/null) ; then + _c_c_s_msg info "running $*" + "$@" + else + _c_c_s_msg warning "program $app not found." + fi +} + +_RunUserCommands() { + local usercmdfile=/tmp/user_commands.bash + if [ -r $usercmdfile ] ; then + _c_c_s_msg info "running script $(basename $usercmdfile)" + bash $usercmdfile $NEW_USER + fi +} + +_misc_cleanups() { + # /etc/resolv.conf.pacnew may be unnecessary, so delete it + + local file=/etc/resolv.conf.pacnew + if [ -z "$(grep -Pv "^[ ]*#" $file 2>/dev/null)" ] ; then + _c_c_s_msg info "removing file $file" + rm -f $file # pacnew contains only comments + fi +} + +_clean_up(){ + local xx + + # install or remove nvidia graphics stuff + _manage_nvidia_packages + + # remove AMD and Intel graphics drivers if they are not needed + _remove_other_graphics_drivers + + # remove broadcom-wl-dkms if it is not needed + _remove_broadcom_wifi_driver + + _install_extra_drivers_to_target + _install_more_firmware + + _misc_cleanups + + # on the target, select file server based on country + xx=/usr/bin/eos-select-file-server + if [ -x $xx ] ; then + _c_c_s_msg info "running $xx" + local fileserver="$($xx)" + if [ "$fileserver" != "gitlab" ] ; then + _c_c_s_msg info "file server configured to '$fileserver'" + fi + else + _c_c_s_msg warning "program $xx was not found" + fi + + # change log file permissions + [ -r /var/log/Calamares.log ] && chown root:root /var/log/Calamares.log + + # run possible user-given commands + _RunUserCommands +} + +_show_info_about_installed_system() { + local cmd + local cmds=( "lsblk -f -o+SIZE" + "fdisk -l" + ) + + for cmd in "${cmds[@]}" ; do + _c_c_s_msg info "$cmd" + $cmd + done +} + +_run_hotfix_end() { + local file=hotfix-end.bash + local type="" + if ! _check_internet_connection ; then + _is_offline_mode && type=info || type=warning + _c_c_s_msg $type "cannot fetch $file, no connection." + return + fi + local url=$(eos-github2gitlab https://raw.githubusercontent.com/endeavouros-team/ISO-hotfixes/main/$file) + wget --timeout=60 -q -O /tmp/$file $url && { + _c_c_s_msg info "running script $file" + bash /tmp/$file + } +} + +Main() { + local filename=chrooted_cleaner_script + + _c_c_s_msg info "$filename started." + + local i + local NEW_USER="" INSTALL_TYPE="" BOOTLOADER="" + + # parse the options + for i in "$@"; do + case $i in + --user=*) + NEW_USER="${i#*=}" + shift + ;; + --online) + INSTALL_TYPE="online" + shift + ;; + --bootloader=*) + BOOTLOADER="${i#*=}" + ;; + esac + done + if [ -z "$NEW_USER" ] ; then + _c_c_s_msg error "new username is unknown!" + fi + + _check_install_mode + _virtual_machines + _clean_up + _run_hotfix_end + _show_info_about_installed_system + + # Remove pacnew files + find /etc -type f -name "*.pacnew" -exec rm {} \; + + rm -rf /etc/calamares /opt/extra-drivers + + # Remove device-info & eos-connection-checker if they aren't installed + [[ $(pacman -Q eos-bash-shared 2 $type: $msg" +} + +arch_chroot() { # This function is no more needed? + # Use chroot not arch-chroot because of the way calamares mounts partitions + chroot /tmp/$chroot_path /bin/bash -c "${1}" +} + +_CopyFileToTarget() { + # Copy a file to target + + local file="$1" + local targetdir="$2" + + if [ ! -r "$file" ] ; then + _cleaner_msg warning "file '$file' does not exist." + return + fi + if [ ! -d "$targetdir" ] ; then + _cleaner_msg warning "folder '$targetdir' does not exist." + return + fi + _cleaner_msg info "copying $(basename "$file") to target" + cp "$file" "$targetdir" +} + +_manage_broadcom_wifi_driver() { + local pkgname=broadcom-wl-dkms + local targetfile=/tmp/$chroot_path/tmp/$pkgname.txt + local wifi_pci="$(lspci -k | sed -n '/ Network controller: /,/^[^ \t]/p' | sed '$d')" + + if [ -n "$(echo "$wifi_pci" | grep -w Broadcom)" ] ; then + echo "yes" > $targetfile + elif [ -n "$(lsusb | grep -w Broadcom)" ] ; then + echo "yes" > $targetfile + else + echo "no" > $targetfile + fi +} + +_copy_files(){ + local config_file + local target=/tmp/$chroot_path # $target refers to the / folder of the installed system + + if [ -r /home/liveuser/setup.url ] ; then + # Is this needed anymore? + # /home/liveuser/setup.url contains the URL to personal setup.sh + local URL="$(cat /home/liveuser/setup.url)" + if (wget -q -O /home/liveuser/setup.sh "$URL") ; then + _cleaner_msg info "copying setup.sh to target" + cp /home/liveuser/setup.sh $target/tmp/ # into /tmp/setup.sh of chrooted + fi + fi + + # Communicate to chrooted system if + # - nvidia card is detected + # - livesession is running nvidia driver + + local nvidia_file=$target/tmp/nvidia-info.bash + local card=no + local driver=no + local lspci="$(lspci -k)" + local latest_nvidia_series=495 # TODO: this number must be changed when Arch changes the Nvidia driver series number !!! + + if [ -n "$(echo "$lspci" | grep -P 'VGA|3D|Display' | grep -w NVIDIA)" ] ; then + card=yes + [ -n "$(lsmod | grep -w nvidia)" ] && driver=yes + [ -n "$(echo "$lspci" | grep -wA2 NVIDIA | grep "Kernel driver in use: nvidia")" ] && driver=yes + if [ "$driver" = "yes" ] ; then + _cleaner_msg info "using nvidia driver" + else + _cleaner_msg info "using nouveau driver" + fi + fi + echo "nvidia_card=$card" >> $nvidia_file + echo "nvidia_driver=$driver" >> $nvidia_file + + # copy user_commands.bash + _CopyFileToTarget /home/liveuser/user_commands.bash $target/tmp + + # copy 30-touchpad.conf Xorg config file + _cleaner_msg info "copying 30-touchpad.conf to target" + mkdir -p $target/usr/share/X11/xorg.conf.d + cp /usr/share/X11/xorg.conf.d/30-touchpad.conf $target/usr/share/X11/xorg.conf.d/ + + # copy extra drivers from /opt/extra-drivers to target's /opt/extra-drivers + if [ -n "$(/usr/bin/ls /opt/extra-drivers/*.zst 2>/dev/null)" ] ; then + _cleaner_msg info "copying extra drivers to target" + mkdir -p $target/opt/extra-drivers || _cleaner_msg warning "creating folder /opt/extra-drivers on target failed." + cp /opt/extra-drivers/*.zst $target/opt/extra-drivers/ || _cleaner_msg warning "copying drivers to /opt/extra-drivers on target failed." + fi + if [ -n "$(lsmod | grep r8168)" ] ; then + _cleaner_msg info "detected usage of r8168 driver" + touch $target/tmp/r8168_in_use + fi + + _manage_broadcom_wifi_driver + + # copy melawy-linux-release file + local file=/etc/melawy-linux-release + if [ -r $file ] ; then + if [ ! -r $target$file ] ; then + _cleaner_msg info "copying $file to target" + rsync -vaRI $file $target + fi + else + _cleaner_msg warning "$FUNCNAME: file $file does not exist in the ISO, copy to target failed!" + fi +} + +Main() { + _cleaner_msg info "cleaner_script started." + + local ROOT_PATH="" NEW_USER="" + local i + + # parse the options + for i in "$@"; do + case $i in + --root=*) + ROOT_PATH="${i#*=}" + shift + ;; + --user=*) + NEW_USER="${i#*=}" + shift + ;; + --online) + INSTALL_TYPE="online" + shift + ;; + esac + done + + if [ -n "$ROOT_PATH" ] ; then + chroot_path="${ROOT_PATH#/tmp/}" + else + # "else" needed no more? + if [ -f /tmp/chrootpath.txt ] + then + chroot_path=$(echo ${ROOT_PATH} |sed 's/\/tmp\///') + else + chroot_path=$(lsblk |grep "calamares-root" |awk '{ print $NF }' |sed -e 's/\/tmp\///' -e 's/\/.*$//' |tail -n1) + fi + fi + + if [ -z "$chroot_path" ] ; then + _cleaner_msg "FATAL ERROR" "cleaner_script: chroot_path is empty!" + return # no point in continuing here + fi + if [ -z "$NEW_USER" ] ; then + _cleaner_msg "error" "cleaner_script: new username is unknown!" + fi + + # If the Intel X driver was installed, also install it on the target + echo "Checking if Intel X11 driver is needed" + if [[ $(pacman -Q xf86-video-intel 2>/dev/null) ]] ; then + if [ -z ${INSTALL_TYPE} ] ; then + pacman -U --noconfirm --needed --sysroot /tmp/$chroot_path /usr/share/packages/libxvmc*.zst --asdeps + pacman -U --noconfirm --needed --sysroot /tmp/$chroot_path /usr/share/packages/xf86-video-intel*.zst + else + pacman -S --noconfirm --needed --sysroot /tmp/$chroot_path xf86-video-intel + fi + fi + + # Copy any file from live environment to new system + + cp -f /etc/environment /tmp/$chroot_path/etc/environment + cp -n /usr/bin/device-info /tmp/$chroot_path/usr/bin/. + cp -n /usr/bin/eos-connection-checker /tmp/$chroot_path/usr/bin/. + + _copy_files + + _cleaner_msg info "cleaner_script done." +} + + +Main "$@" diff --git a/airootfs/usr/local/bin/install_refind_theme b/airootfs/usr/local/bin/copy-refind-theme_v1 similarity index 100% rename from airootfs/usr/local/bin/install_refind_theme rename to airootfs/usr/local/bin/copy-refind-theme_v1 diff --git a/airootfs/usr/local/bin/copy-refind-theme_v2 b/airootfs/usr/local/bin/copy-refind-theme_v2 new file mode 100755 index 0000000..2970922 --- /dev/null +++ b/airootfs/usr/local/bin/copy-refind-theme_v2 @@ -0,0 +1,26 @@ +#!/bin/bash + +if [ -d '/boot/EFI/refind/' ] && [ -d /usr/share/refind/themes ]; then + cp -vrf /usr/share/refind/themes /boot/EFI/refind/ +fi + +if [ -d '/efi/EFI/refind/' ] && [ -d /usr/share/refind/themes ]; then + cp -vrf /usr/share/refind/themes /efi/EFI/refind/ +fi + +if [ -d '/boot/efi/EFI/refind/' ] && [ -d /usr/share/refind/themes ]; then + cp -vrf /usr/share/refind/themes /boot/efi/EFI/refind/ +fi + + +if [ -d '/boot/EFI/refind/' ] && [ -f /etc/refind-menu-generator/refind.conf ]; then + cp -vf /etc/refind-menu-generator/refind.conf /boot/EFI/refind/ +fi + +if [ -d '/efi/EFI/refind/' ] && [ -f /etc/refind-menu-generator/refind.conf ]; then + cp -vf /etc/refind-menu-generator/refind.conf /efi/EFI/refind/ +fi + +if [ -d '/boot/efi/EFI/refind/' ] && [ -f /etc/refind-menu-generator/refind.conf ]; then + cp -vf /etc/refind-menu-generator/refind.conf /boot/efi/EFI/refind/ +fi diff --git a/airootfs/usr/local/bin/create-pacman-keyring b/airootfs/usr/local/bin/create-pacman-keyring new file mode 100755 index 0000000..93d15b7 --- /dev/null +++ b/airootfs/usr/local/bin/create-pacman-keyring @@ -0,0 +1,6 @@ +#!/bin/bash + +haveged -w 1024 +pacman-key --init +pkill haveged +pacman-key --populate diff --git a/airootfs/usr/local/bin/livecd-sound b/airootfs/usr/local/bin/livecd-sound index baae0d2..e64809d 100755 --- a/airootfs/usr/local/bin/livecd-sound +++ b/airootfs/usr/local/bin/livecd-sound @@ -15,7 +15,7 @@ _EOF_ } bugout () { - printf "/usr/local/bin/livecdsound: programming error" + printf "/usr/local/bin/livecd-sound: programming error" stat_fail } diff --git a/airootfs/usr/local/bin/online-install-nvidia-drivers b/airootfs/usr/local/bin/online-install-nvidia-drivers new file mode 100755 index 0000000..5f59345 --- /dev/null +++ b/airootfs/usr/local/bin/online-install-nvidia-drivers @@ -0,0 +1,15 @@ +#!/bin/bash + +_check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)" + +if [[ "${_check_nvidia_card}" -eq 0 ]]; then + echo "NVIDIA CARD FOUND!" + chwd -a pci nonfree 0300 +else + chwd -a pci free 0300 +fi + +# Check for hybrid graphics +if [[ $(lspci -d "*:*:0302") ]]; then + chwd -a pci nonfree 0302 +fi diff --git a/airootfs/usr/local/bin/remove-ucode b/airootfs/usr/local/bin/remove-ucode new file mode 100755 index 0000000..acc25a1 --- /dev/null +++ b/airootfs/usr/local/bin/remove-ucode @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Remove the "wrong" microcode. +case "$(grep -w "^vendor_id" /proc/cpuinfo | head -n 1 | awk '{print $3}')" in + GenuineIntel) pkgname=amd-ucode ;; + AuthenticAMD | *) pkgname=intel-ucode ;; +esac + +[[ $(pacman -Q "${pkgname}" 2>/dev/null) ]] && pacman -R --noconfirm "${pkgname}" + +exit 0 diff --git a/airootfs/usr/local/bin/remove-unneeded b/airootfs/usr/local/bin/remove-unneeded new file mode 100755 index 0000000..0ebee4d --- /dev/null +++ b/airootfs/usr/local/bin/remove-unneeded @@ -0,0 +1,100 @@ +#!/bin/bash + +_clean_packages() { +# local _leave_these_packages="base\nbase-devel\n\ngrub\nefibootmgr\noctopi\nca-certificates\nmelawy-welcome\n" +# local _leave_these_basepackages="filesystem\ngcc-libs\nglibc\nglib2\nbash\ncoreutils\nfile\nfindutils\ngawk\ngrep\nprocps-ng\nsed\ntar\ngettext\npciutils\npsmisc\nshadow\nutil-linux\nbzip2\ngzip\nxz\nlicenses\npacman\nsystemd\nsystemd-sysvcompat\niputils\niproute2\n" +# local _packages_to_remove=($(comm -23 <(pacman -Qq | sort) <({ pacman -Qqg melawy; printf $_leave_these_packages; printf $_leave_these_basepackages; } | sort -u))) + + local _packages_to_remove="" + + _packages_to_remove+=( + $(pacman -Qq | grep calamares) + arch-install-scripts + boost-libs + ckbcomp + clonezilla + cmake + doxygen + edk2-shell + expect + extra-cmake-modules + gpart + grsync + hdparm + memtest86+ + mkinitcpio + mkinitcpio-archiso + mkinitcpio-busybox + qemu-arm-aarch64-static-bin + rate-mirrors + squashfs-tools + syslinux + tcpdump + yaml-cpp + ) + + local _check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)" + if [[ "${_check_nvidia_card}" -ne 0 ]]; then + echo "No NVIDIA card detected. Removing nvidia drivers" + _packages_to_remove+=(nvidia-dkms nvidia-utils nvidia-settings egl-wayland) + fi + + local xx + # @ does one by one to avoid errors in the entire process + # taken from Erik Dubois script + for xx in "${_packages_to_remove[@]}"; do pacman -Rsnc "$xx" --noconfirm; done +} + +_pacman_fix() { + pacman-key --init + pacman-key --populate +} + +_remove_pacman_package() { + local _pkgname="$1" + pacman -Rsnc "$_pkgname" --noconfirm || true +} + +# remove pkgs installed for VMs +_clean_vm_packages() { + + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + _remove_pacman_package virtualbox-guest-utils + fi + + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + _remove_pacman_package virtualbox-guest-utils-nox + fi + + #remove vmware + if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then + rm /etc/xdg/autostart/vmware-user.desktop + fi + + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + _remove_pacman_package open-vm-tools + fi + + if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then + rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + _remove_pacman_package qemu-guest-agent + fi +} + +_check_not_running_vm="$(systemd-detect-virt | grep -q 'none'; echo $?)" +if [[ "${_check_not_running_vm}" -eq 0 ]]; then + _clean_vm_packages +fi + + +_clean_packages +_pacman_fix diff --git a/airootfs/usr/local/bin/remove-virtual-machine-pkgs b/airootfs/usr/local/bin/remove-virtual-machine-pkgs deleted file mode 100755 index 88f79b4..0000000 --- a/airootfs/usr/local/bin/remove-virtual-machine-pkgs +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -_remove_pacman_package() { - local _pkgname="$1" - pacman -Rsnc "$_pkgname" --noconfirm || true -} - -# remove pkgs installed for VMs -_clean_vm_packages() { - - #remove virtualbox - if pacman -Qi virtualbox-guest-utils &> /dev/null; then - systemctl disable vboxservice.service - _remove_pacman_package virtualbox-guest-utils - fi - - if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then - systemctl disable vboxservice.service - _remove_pacman_package virtualbox-guest-utils-nox - fi - - #remove vmware - if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then - rm /etc/xdg/autostart/vmware-user.desktop - fi - - if pacman -Qi open-vm-tools &> /dev/null; then - systemctl disable vmtoolsd.service - _remove_pacman_package open-vm-tools - fi - - if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then - rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service - fi - - #remove qemu - if pacman -Qi qemu-guest-agent &> /dev/null; then - systemctl disable qemu-guest-agent.service - _remove_pacman_package qemu-guest-agent - fi -} - -_check_not_running_vm="$(systemd-detect-virt | grep -q 'none'; echo $?)" -if [[ "${_check_not_running_vm}" -eq 0 ]]; then - _clean_vm_packages -fi - -# vim:set ft=bash sw=2 sts=2 et: diff --git a/airootfs/usr/local/bin/removeun b/airootfs/usr/local/bin/removeun deleted file mode 100755 index 1a3391d..0000000 --- a/airootfs/usr/local/bin/removeun +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -#set -e - -_clean_files() { -local _files_to_remove=( - /etc/modprobe.d/nvidia-utils.conf - /etc/modules-load.d/nvidia-utils.conf - /usr/local/bin/choose-mirror - /usr/local/bin/prepare-live-desktop - /usr/local/bin/removeun-online - /usr/local/share/livecd-sound -) - - local xx - for xx in "${_files_to_remove[@]}"; do rm -rf "$xx" || true; done -} - -_clean_packages() { -local _packages_to_remove=( - #gparted - grsync - cachyos-calamares-grub - cachyos-calamares-systemd - cachyos-calamares-refind - cachyos-calamares - cachyos-calamares-config - edk2-shell - boost-libs - doxygen - expect - gpart - tcpdump - arch-install-scripts - squashfs-tools - extra-cmake-modules - cmake - elinks - yaml-cpp - syslinux - clonezilla - memtest86+ - mkinitcpio-archiso -) - - local _check_nvidia_card="$(chwd --is_nvidia_card | grep -q 'NVIDIA card found!'; echo $?)" - if [[ "${_check_nvidia_card}" -ne 0 ]]; then - echo "No NVIDIA card detected. Removing nvidia drivers" - _packages_to_remove+=(nvidia-dkms nvidia-utils nvidia-settings egl-wayland) - fi - - local xx - # @ does one by one to avoid errors in the entire process - # taken from Erik Dubois script - for xx in "${_packages_to_remove[@]}"; do pacman -Rsnc "$xx" --noconfirm; done -} - -_clean_packages -_clean_files - -# vim:set ft=bash sw=2 sts=2 et: diff --git a/airootfs/usr/local/bin/removeun-online b/airootfs/usr/local/bin/removeun-online deleted file mode 100755 index f9f7af3..0000000 --- a/airootfs/usr/local/bin/removeun-online +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash - -_clean_packages() { - local _leave_these_packages="base\nbase-devel\ncachyos-keyring\ncachyos-hello\ngrub\nefibootmgr\noctopi\nca-certificates\n" - local _leave_these_basepackages="filesystem\ngcc-libs\nglibc\nglib2\nbash\ncoreutils\nfile\nfindutils\ngawk\ngrep\nprocps-ng\nsed\ntar\ngettext\npciutils\npsmisc\nshadow\nutil-linux\nbzip2\ngzip\nxz\nlicenses\npacman\nsystemd\nsystemd-sysvcompat\niputils\niproute2\n" - local _packages_to_remove=($(comm -23 <(pacman -Qq | sort) <({ pacman -Qqg base-devel; pacman -Qqg cachyos; printf $_leave_these_packages; printf $_leave_these_basepackages; } | sort -u))) - local xx - # @ does one by one to avoid errors in the entire process - # * can be used to treat all packages in one command - for xx in "${_packages_to_remove[@]}"; do pacman -Rs "$xx" --noconfirm; done - - # making sure they are removed -# local _toberemoved_str=$'bash-completion\nxorg-xinit\nxorg-xkill\nxorg-xinput\nxorg-xrandr\nxorg-xrdb\nmkinitcpio-openswap\nalacritty\nkonsole\nkwin-scripts-forceblur\nnetworkmanager-vpnc\nnetworkmanager-qt\nnetworkmanager-openvpn\nwireguard-tools\nopenconnect\nopenvpn\nqt5-xmlpatterns\ndoxygen\ntcpdump\ndmidecode\nkparts\npolkit-qt5\nxorg-server\nxorg-apps\nqt5-tools\nzfs-utils\nlinux-cachyos-zfs\nwget\nvirtualbox-guest-utils\nxf86-video-vesa\nxf86-video-amdgpu\nxf86-video-intel\nnvidia-dkms\nnvidia-utils\nlightdm\nlightdm-gtk-greeter\nlightdm-webkit2-greeter\nbase-devel\nlinux-cachyos-headers\nplasma-browser-integration\nplasma-desktop\nplasma-firewall\nplasma-framework\nplasma-integration\nplasma-nm\nplasma-pa\nplasma-systemmonitor\nplasma-thunderbolt\nplasma-workspace\ndiscover\npackagekit-qt5\nxed\nparole\nristretto\ndolphin\ndolphin-plugins\ncapitaine-cursors\ngtk-engine-murrine\ngnome-themes-extra\nadwaita-icon-theme\nfile-roller\nlibwnck3\nnetwork-manager-applet\ngalculator\ncachy-browser\nkvantum-qt5\nqt5ct\nneofetch\nopen-vm-tools\nxf86-input-vmmouse\nxf86-video-vmware\ncachyos-kde-settings\ncachyos-picom-config\ncachyos-rate-mirrors\ncachyos-kernel-manager\nchwd\noctopi\nreflector-simple\nmeld\nparu\nnordic-theme-git\nlightly-git\ncachyos-nord-kde-theme-git\nchar-white' -# local _toberemoved_packages -# readarray -t _toberemoved_packages <<< "$_toberemoved_str" -# local xxx -# for xxx in "${_toberemoved_packages[@]}"; do pacman -Rs "$xxx" --noconfirm; done - -# rm /etc/sddm.conf || true - true -} - -_pacman_fix() { - -pacman-key --init -pacman-key --populate cachyos -} - -_try_v3() { - /lib/ld-linux-x86-64.so.2 --help | grep "x86-64-v3 (supported, searched)" > /dev/null - - local pacman_conf="/etc/pacman.conf" - local pacman_conf_cachyos="/etc/pacman-more.conf" - local pacman_conf_path_backup="/etc/pacman.conf.bak" - - if [ $? -eq 0 ]; then - echo "x86-64-v3 is supported" - - sed -i 's/Architecture = auto/#Architecture = auto/' $pacman_conf_cachyos - sed -i 's/#//g' $pacman_conf_cachyos - - echo "backup old config" - mv $pacman_conf $pacman_conf_path_backup - - echo "CachyOS -v3 Repo changed" - mv $pacman_conf_cachyos $pacman_conf - - else - echo "x86-64-v3 is not supported" - fi - -} - -_clean_packages -_try_v3 -_pacman_fix diff --git a/airootfs/usr/local/bin/update-mirrorlist b/airootfs/usr/local/bin/update-mirrorlist new file mode 100755 index 0000000..de88131 --- /dev/null +++ b/airootfs/usr/local/bin/update-mirrorlist @@ -0,0 +1,244 @@ +#!/bin/bash + +CodeToCountry() { # convert country code to country name + echo "$REFLECTOR_COUNTRIES" | grep -w "$1" | sed 's|^\(.*[a-z]\)[ ]*[A-Z][A-Z].*$|\1|' +} +CountryToCode() { # convert name to code; used for checking + echo "$REFLECTOR_COUNTRIES" | grep -w "$1" | awk '{print $(NF-1)}' +} + +CCCheck() { # check validity of country code + case "$1" in + [A-Z][A-Z]) test -n "$(CodeToCountry "$1")" && return 0 ;; + esac + return 1 # fail +} +GetYourCountryCode() { + local IP code + + code="$(show-location-info country)" + CCCheck "$code" && { + echo "$code" ; return + } + + IP="$(dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com | tr -d '"')" # ipv4 address + code="$(geoiplookup "$IP" | sed 's|^.*: \([A-Z][A-Z]\),.*$|\1|')" + CCCheck "$code" && { + echo "$code" ; return + } + code="$(whois "$IP" | grep ^country: | awk '{print $NF}')" + CCCheck "$code" && { + echo "$code" ; return + } + + IP="$(dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com | tr -d '"')" # ipv6 address + code="$(geoiplookup6 "$IP" | sed 's|^.*: \([A-Z][A-Z]\),.*$|\1|')" + CCCheck "$code" && { + echo "$code" ; return + } + code="$(whois "$IP" | grep ^country: | awk '{print $NF}')" + CCCheck "$code" && { + echo "$code" ; return + } + + code="$(show-location-info country)" + CCCheck "$code" && { + echo "$code" ; return + } + + # net services failed, use local variables, but may be wrong + code="$(locale | grep ^LC_TIME | cut -d '"' -f 2 | sed 's|^.*_\([A-Z][A-Z]\)\..*$|\1|')" + CCCheck "$code" && { + echo "$code" ; return + } +} +GetYourCountry() { + local code="$(GetYourCountryCode)" + local country="$(test -n "$code" && CodeToCountry "$code")" + echo "$country" +} + +Debug() { + if [ "$dryrun" = "yes" ] ; then + echo "$@" >&2 + fi +} +logterminal() { + local msg="$1" + local extra="$2" + + case "$extra" in + "") echo "==> $progname: $msg" ;; + --nh) echo "$msg" ;; + esac +} + +DIE() { + logterminal "$FUNCNAME: $1" + exit 1 +} + +UseBestMirrorsIfAvailable() { + [ -n "$this_country" ] || return + # ad hoc mirror "ranking" + declare -A BEST_MIRRORS # mirrors here will be the *first* mirrors + + # Add a list of *known* best mirrors for a country: + BEST_MIRRORS[FI]='https://mirror.f4st.host/archlinux/$repo/os/$arch https://mirror.pseudoform.org/$repo/os/$arch' # FI uses these! + + local best="${BEST_MIRRORS[$this_country]}" + local bb + + if [ -n "$best" ] ; then + rm -f $tf.new + for bb in $best ; do + logterminal "Adding mirror '$bb'" + echo "Server = $bb" >> $tf.new + + # remove $bb from the current list if it is there + grep -v "$bb" $tf > $tf.tmp + mv $tf.tmp $tf + done + cat $tf >> $tf.new + mv $tf.new $tf + fi +} + +RunCmd() { + $cmd > $tf + retval=$? + [ $retval -eq 0 ] || return + + UseBestMirrorsIfAvailable + + if [ -x /usr/bin/rate-mirrors ] ; then + grep '^Server = ' $tf > $tf.tmp + mv $tf.tmp $tf + fi +} + +Main() { + local VERSION="2.1" # started from 2.0! + local progname="$(basename "$0")" + local mf=/etc/pacman.d/mirrorlist + local bu=/tmp/mirrorlist.bu # original mirrorlist, saved by Welcome + + logterminal "version $VERSION" + + /usr/bin/eos-connection-checker || { + logterminal "Internet connection is not available, cannot rank mirrorlist." + return + } + + if [ -r $mf ] && [ -r $bu ] ; then + if (/usr/bin/diff $mf $bu >& /dev/null) ; then + # Current and original mirrorlists are the same, so carry on. + logterminal "Updating mirrorlist." + else + # Current and original mirrorlist are different, so stop. + logterminal "Mirrorlist already changed, not updating it." + logterminal "This is the current mirrorlist:" + echo "#===================================#" + cat "$mf" + echo "#===================================#" + return + fi + fi + + REFLECTOR_COUNTRIES="$(reflector --list-countries --connection-timeout 20 --download-timeout 20)" + if [ -z "$REFLECTOR_COUNTRIES" ] ; then + logterminal "no result from command 'reflector --listcountries', mirrorlist not updated." + return + fi + local this_country="$(GetYourCountryCode)" + local retval + local cmd="" + local ranker="reflector" # rate-mirrors or reflector + local dryrun=no + local arg + + if [ -n "$this_country" ] ; then + logterminal "detected country: $(CodeToCountry $this_country)" + else + logterminal "country code not found on Arch mirrorlist" + fi + + for arg in "$@" ; do + case "$arg" in + -n | --dryrun) dryrun=yes ;; # don't save mirrorlist to /etc/pacman.d + -cc=*) this_country="${arg#*=}" ; logterminal "country changed to '$this_country'" ;; + *) DIE "parameter '$arg' is not supported" ;; + esac + done + + if [ -x /usr/bin/rate-mirrors ] ; then + # new implementation (after 2021-06-27) + case "$this_country" in + FI) + # Some other European countries (e.g. DE) could use this command as well! + cmd="$ranker -phttps -l5 -cDE --sort rate --threads 5" + ;; + *) + # rate-mirrors should create a reasonably good mirrorlist generally + ranker="rate-mirrors" + cmd="$ranker --allow-root arch --max-delay=3600" # don't allow too old mirrors! + ;; + esac + else + # old implementation (before 2021-06-27) + cmd="$ranker -phttps --latest 10 --sort rate " # reflector and common options + case "$this_country" in + "" | IS | IE) + # no mirrors or mirror problems here, search well-updated https mirrors globally + cmd+=" --verbose" + ;; + FI) + # special command for FI + cmd+=" -cde --threads 5" + cmd+=" -x orbit-os -x ratenzahlung -x satis-faction" + cmd+=" -x xtom.de -x metalgamer -x agdsn -x fsrv -x appuals -x wrz -x clientvps" + cmd+=" -x fef.moe -x gnomus" + ;; + DE|DK|FR|GB|HK|NL|NZ|SE|SG|US) + # search https mirrors only in this country + cmd+=" -c $this_country --threads 5" + ;; + CA|CH|CZ) + cmd+=" --threads 5" + ;; + *) + # this country may lack https mirrors + cmd+=" -phttp --latest 15 --verbose" + ;; + esac + fi + + local tf=$(mktemp) + + logterminal "command: $cmd" + logterminal "please wait..." + logterminal "" --nh + logterminal "'time' output:" --nh + time RunCmd + logterminal "" --nh + + if [ $retval -eq 0 ] ; then + logterminal "Arch mirrorlist by $ranker:" + logterminal "" --nh + logterminal "$(cat $tf)" --nh + logterminal "" --nh + if [ "$dryrun" = "no" ] ; then + logterminal "writing file $mf" + sudo bash -c "cp $tf $mf && chmod 0644 $mf" + else + logterminal "you used option --dryrun, will not write file $mf" + fi + else + logterminal "$ranker returned error code $retval, mirrorlist not updated." + fi + + rm -f $tf + return 0 # return $retval # 0=OK, other is FAIL +} + +Main "$@" diff --git a/packages.x86_64 b/packages.x86_64 index 850e252..c78a596 100644 --- a/packages.x86_64 +++ b/packages.x86_64 @@ -5,8 +5,7 @@ iptables-nft base base-devel archlinux-keyring -endeavouros-mirrorlist -endeavouros-keyring +pacman-mirrorlist cryptsetup device-mapper diffutils @@ -14,10 +13,8 @@ dracut edk2-shell inetutils less -#linux linux-firmware linux-firmware-marvell -#linux-headers logrotate lsb-release man-db @@ -185,11 +182,11 @@ python-capng ## Live iso specific arch-install-scripts -memtest86+ mkinitcpio-archiso mkinitcpio-nfs-utils -pv syslinux +pv +memtest86+ ## Live iso tools clonezilla @@ -206,7 +203,6 @@ bluedevil breeze-gtk dolphin dolphin-plugins -#eos-plasma-sddm-config gwenview haruna kcalc @@ -215,7 +211,7 @@ kdeconnect kde-gtk-config kgamma5 khotkeys -kimageformats +kimageformats5 kinfocenter kinit kio-fuse @@ -226,6 +222,7 @@ okular plasma-desktop plasma-wayland-session plasma-wayland-protocols +glfw-wayland plasma-disks plasma-nm plasma-pa @@ -261,22 +258,10 @@ ttf-opensans # ENDEAVOUROS REPO ## General -#reflector-simple -#eos-hooks -#welcome yay rate-mirrors -endeavouros-theming -eos-apps-info -eos-log-tool -eos-packagelist -eos-quickstart -eos-rankmirrors -eos-update-notifier -nvidia-inst ## Calamares EndeavourOS -#calamares ckbcomp os-prober @@ -285,7 +270,7 @@ os-prober bridge-utils ## Qemu -libguestfs +#libguestfs libvirt qemu-desktop qemu-guest-agent @@ -304,9 +289,6 @@ xf86-input-vmmouse xf86-video-vmware xf86-video-qxl -# eos-arm needed packages for chroot into arm device -qemu-arm-aarch64-static-bin - ## HyperV hyperv @@ -391,11 +373,6 @@ arcolinux-keyring arcolinux-mirrorlist-git chaotic-keyring chaotic-mirrorlist -cachyos-keyring -cachyos-mirrorlist -cachyos-v3-mirrorlist -cachyos-v4-mirrorlist -cachyos-rate-mirrors melawy-linux-keyring melawy-linux-mirrorlist @@ -515,10 +492,20 @@ plasma-thunderbolt plasma-vault plasma-workspace-wallpapers +qt5-imageformats +qt6-imageformats +kimageformats5 +karchive5 + +kdegraphics-thumbnailers +ffmpegthumbs + +kdenetwork-filesharing + kwin-effects-sliding-notifications +kwin-effect-rounded-corners-git kdeplasma-addons -lightly-boehs-git kvantum qt5ct @@ -627,6 +614,8 @@ profile-sync-daemon ## Code +lld +llvm codelldb gdb git-lfs @@ -634,7 +623,6 @@ github-cli github-desktop icu69-bin jdk-openjdk -jre-openjdk lldb make rust-analyzer @@ -663,7 +651,7 @@ melawy-plasma-plasmoid-archupdate melawy-dracut-initramfs melawy-dracut-ukify melawy-refind-menu-generator -melawy-etc-skel-std-powerman +melawy-etc-skel-std-powerman-kvantum melawy-plasma-plasmoid-DittoMenu melawy-plasma-plasmoid-Menu11 diff --git a/packages.x86_64.max b/packages.x86_64.max index 9258322..5f31561 100644 --- a/packages.x86_64.max +++ b/packages.x86_64.max @@ -14,10 +14,8 @@ dracut edk2-shell inetutils less -#linux linux-firmware linux-firmware-marvell -#linux-headers logrotate lsb-release man-db @@ -206,7 +204,6 @@ bluedevil breeze-gtk dolphin dolphin-plugins -#eos-plasma-sddm-config gwenview haruna kcalc @@ -226,6 +223,7 @@ okular plasma-desktop plasma-wayland-session plasma-wayland-protocols +glfw-wayland plasma-disks plasma-nm plasma-pa @@ -261,22 +259,10 @@ ttf-opensans # ENDEAVOUROS REPO ## General -#reflector-simple -#eos-hooks -#welcome yay rate-mirrors -endeavouros-theming -eos-apps-info -eos-log-tool -eos-packagelist -eos-quickstart -eos-rankmirrors -eos-update-notifier -nvidia-inst ## Calamares EndeavourOS -#calamares ckbcomp os-prober @@ -507,7 +493,6 @@ partimage ## Display manager sddm -plasma-framework plasma-integration plasma-workspace plasma-browser-integration @@ -516,7 +501,19 @@ plasma-thunderbolt plasma-vault plasma-workspace-wallpapers +qt5-imageformats +qt6-imageformats +kimageformats5 +kimageformats +karchive + +kdegraphics-thumbnailers +ffmpegthumbs + +kdenetwork-filesharing + kwin-effects-sliding-notifications +kwin-effect-rounded-corners-git kdeplasma-addons lightly-boehs-git @@ -664,7 +661,7 @@ melawy-plasma-plasmoid-archupdate melawy-dracut-initramfs melawy-dracut-ukify melawy-refind-menu-generator -melawy-etc-skel-std-powerman +melawy-etc-skel-std-powerman-kvantum melawy-plasma-plasmoid-DittoMenu melawy-plasma-plasmoid-Menu11 diff --git a/packages.x86_64.min b/packages.x86_64.min index 2c524b0..02db9dc 100644 --- a/packages.x86_64.min +++ b/packages.x86_64.min @@ -14,10 +14,8 @@ dracut edk2-shell inetutils less -#linux linux-firmware linux-firmware-marvell -#linux-headers logrotate lsb-release man-db @@ -206,7 +204,6 @@ bluedevil breeze-gtk dolphin dolphin-plugins -#eos-plasma-sddm-config gwenview haruna kcalc @@ -226,6 +223,7 @@ okular plasma-desktop plasma-wayland-session plasma-wayland-protocols +glfw-wayland plasma-disks plasma-nm plasma-pa @@ -261,22 +259,10 @@ ttf-opensans # ENDEAVOUROS REPO ## General -#reflector-simple -#eos-hooks -#welcome yay rate-mirrors -endeavouros-theming -eos-apps-info -eos-log-tool -eos-packagelist -eos-quickstart -eos-rankmirrors -eos-update-notifier -nvidia-inst ## Calamares EndeavourOS -#calamares ckbcomp os-prober @@ -484,7 +470,6 @@ partimage ## Display manager sddm -plasma-framework plasma-integration plasma-workspace plasma-browser-integration @@ -493,7 +478,19 @@ plasma-thunderbolt plasma-vault plasma-workspace-wallpapers +qt5-imageformats +qt6-imageformats +kimageformats5 +kimageformats +karchive + +kdegraphics-thumbnailers +ffmpegthumbs + +kdenetwork-filesharing + kwin-effects-sliding-notifications +kwin-effect-rounded-corners-git kdeplasma-addons lightly-boehs-git @@ -561,7 +558,7 @@ melawy-plasma-plasmoid-archupdate melawy-dracut-initramfs melawy-dracut-ukify melawy-refind-menu-generator -melawy-etc-skel-std-powerman +melawy-etc-skel-std-powerman-kvantum melawy-plasma-plasmoid-DittoMenu melawy-plasma-plasmoid-Menu11 diff --git a/pacman.conf b/pacman.conf new file mode 100644 index 0000000..67e10c5 --- /dev/null +++ b/pacman.conf @@ -0,0 +1,95 @@ +# /etc/pacman.conf +# +# +# See the pacman.conf(5) manpage for option and repository directives +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# +# GENERAL OPTIONS +# +[options] +# 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 = base base-devel pacman glibc +# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +# CleanMethod = KeepInstalled +Architecture = auto +# IgnorePkg = +# IgnoreGroup = +# NoUpgrade = +# NoExtract = +# UseSyslog +Color +ILoveCandy +# NoProgressBar +CheckSpace +VerbosePkgLists +ParallelDownloads = 8 +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +# RemoteFileSigLevel = Required + +#[core] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist + +#[main] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist + +#[apps] +#SigLevel = Never +#Include = /etc/pacman.d/kaos-mirrorlist + + +#[kde-unstable] +#Include = /etc/pacman.d/mirrorlist + +[melawy] +Include = /etc/pacman.d/melawy-linux-mirrorlist + +[melawy-3party] +Include = /etc/pacman.d/melawy-linux-mirrorlist + +# [core-testing] +# Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +# [extra-testing] +# Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# [multilib-testing] +# Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +[arcolinux_repo] +Include = /etc/pacman.d/arcolinux-mirrorlist + +[arcolinux_repo_xlarge] +Include = /etc/pacman.d/arcolinux-mirrorlist + +[arcolinux_repo_3party] +Include = /etc/pacman.d/arcolinux-mirrorlist + +[garuda] +Include = /etc/pacman.d/chaotic-mirrorlist + +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist + +# [custom] +# SigLevel = Optional TrustAll +# Server = file:///home/custompkgs diff --git a/pacman_.conf b/pacman_.conf index 7e83f94..cdcd9d9 100644 --- a/pacman_.conf +++ b/pacman_.conf @@ -17,7 +17,7 @@ #LogFile = /var/log/pacman.log #GPGDir = /etc/pacman.d/gnupg/ #HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc +HoldPkg = base base-devel pacman glibc #XferCommand = /usr/bin/curl -L -C - -f -o %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #CleanMethod = KeepInstalled diff --git a/profiledef.sh b/profiledef.sh index ad74be5..464ba37 100644 --- a/profiledef.sh +++ b/profiledef.sh @@ -26,16 +26,23 @@ file_permissions=( ["/root"]="0:0:750" ["/root/.automated_script"]="0:0:755" ["/usr/bin/GPU-Intel-installer"]="0:0:755" - ["/usr/local/bin/Installation_guide"]="0:0:755" ["/usr/local/bin/calamares-offline"]="0:0:755" ["/usr/local/bin/calamares-online"]="0:0:755" ["/usr/local/bin/choose-mirror"]="0:0:755" + ["/usr/local/bin/chrooted-cleaner-script"]="0:0:755" + ["/usr/local/bin/cleaner-script"]="0:0:755" + ["/usr/local/bin/copy-refind-theme_v1"]="0:0:755" + ["/usr/local/bin/copy-refind-theme_v2"]="0:0:755" + ["/usr/local/bin/create-pacman-keyring"]="0:0:755" ["/usr/local/bin/dmcheck"]="0:0:755" ["/usr/local/bin/fix-keys"]="0:0:755" - ["/usr/local/bin/install_refind_theme"]="0:0:755" + ["/usr/local/bin/Installation_guide"]="0:0:755" ["/usr/local/bin/livecd-sound"]="0:0:755" + ["/usr/local/bin/online-install-drivers"]="0:0:755" ["/usr/local/bin/prepare-live-desktop"]="0:0:755" - ["/usr/local/bin/remove-virtual-machine-pkgs"]="0:0:755" - ["/usr/local/bin/removeun"]="0:0:755" - ["/usr/local/bin/removeun-online"]="0:0:755" + ["/usr/local/bin/remove-ucode"]="0:0:755" + ["/usr/local/bin/remove-unneeded"]="0:0:755" + ["/usr/local/bin/update-mirrorlist"]="0:0:755" ) + +