diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3ecb8fc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "[python]": { + "editor.defaultFormatter": "ms-python.autopep8" + }, + "python.formatting.provider": "none" +} diff --git a/01_prepare.sh b/01_prepare.sh index 11abf96..0501591 100755 --- a/01_prepare.sh +++ b/01_prepare.sh @@ -1,9 +1,8 @@ #!/bin/bash -sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/opt/extra-drivers" r8168 +sudo pacman -Sw --noconfirm --cachedir "./airootfs/opt/extra-drivers" r8168 -sudo pacman -Sw --noconfirm --cachedir "/disk/github/active/make_iso/melawy-archiso/airootfs/usr/share/packages" dracut \ -dracut-hook \ +sudo pacman -Sw --noconfirm --cachedir "./airootfs/usr/share/packages" dracut \ grub \ kernel-install-for-dracut \ libxvmc \ @@ -14,4 +13,5 @@ linux-xanmod-anbox \ linux-xanmod-anbox-headers \ os-prober \ refind \ +update-grub \ xf86-video-intel diff --git a/03_boot.sh b/03_boot.sh new file mode 100644 index 0000000..89bdea4 --- /dev/null +++ b/03_boot.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +#qemu-system-x86_64 -boot d -cdrom ./out/melawy-linux-2023.10.02-x86_64.iso -usb -vga virtio -display spice-app -full-screen -net nic -net user -m 8192 -smbios type=0,uefi=on -smp cpus=4 -enable-kvm -bios /usr/share/ovmf/x64/OVMF.fd + +cp -av -- '/usr/share/edk2-ovmf/x64/OVMF_VARS.fd' "./out/" + +qemu-system-x86_64 \ +-boot order=d,menu=on,reboot-timeout=5000 \ +-cdrom ./out/melawy-linux-2023.10.02-x86_64.iso \ +-smbios type=0,uefi=on \ +-smp cpus=4 \ +-m 8192 \ +-usb \ +-k en-us \ +-name archiso,process=archiso_0 \ +-display sdl,gl=on,show-cursor=on,window-close=on \ +-vga virtio \ +-full-screen \ +-audiodev pa,id=snd0 \ +-device ich9-intel-hda \ +-device hda-output,audiodev=snd0 \ +-device virtio-net-pci,romfile=,netdev=net0 -netdev user,id=net0,hostfwd=tcp::60022-:22 \ +-machine type=q35,smm=on,accel=kvm,usb=on,pcspk-audiodev=snd0 \ +-global ICH9-LPC.disable_s3=1 \ +-enable-kvm \ +-drive "if=pflash,format=raw,unit=0,file=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd,read-only=on" \ +-drive "if=pflash,format=raw,unit=1,file=./out/OVMF_VARS.fd" \ +-global "driver=cfi.pflash01,property=secure,value=off" \ +-serial stdio diff --git a/airootfs/etc/NetworkManager/NetworkManager.conf b/airootfs/etc/NetworkManager/NetworkManager.conf new file mode 100644 index 0000000..eed717a --- /dev/null +++ b/airootfs/etc/NetworkManager/NetworkManager.conf @@ -0,0 +1,5 @@ +# Configuration file for NetworkManager. +# See "man 5 NetworkManager.conf" for details. + +[device] +wifi.scan-rand-mac-address=no diff --git a/airootfs/etc/dev-rel b/airootfs/etc/dev-rel new file mode 100644 index 0000000..1bb79be --- /dev/null +++ b/airootfs/etc/dev-rel @@ -0,0 +1,3 @@ +ISO_RELEASE=08-12-2023 +ISO_CODENAME=MelawyLinux +ISO_BUILD=08-12-2023 diff --git a/airootfs/etc/environment b/airootfs/etc/environment old mode 100644 new mode 100755 index fe6bd67..93e2951 --- a/airootfs/etc/environment +++ b/airootfs/etc/environment @@ -3,7 +3,6 @@ # # Syntax: simple "KEY=VAL" pairs on separate lines # -#QT_QPA_PLATFORMTHEME=qt5ct -#QT_STYLE_OVERRIDE=kvantum BROWSER=firefox EDITOR=nano +ZPOOL_VDEV_NAME_PATH=1 diff --git a/airootfs/etc/fonts/local.conf b/airootfs/etc/fonts/local.conf new file mode 100644 index 0000000..5130e09 --- /dev/null +++ b/airootfs/etc/fonts/local.conf @@ -0,0 +1,122 @@ + + + + + + + true + + + true + + + hintslight + + + lcddefault + + + + + + -apple-system + + Tex Gyre Heros + + + Helvetica Neue + + Tex Gyre Heros + + + Helvetica + + Tex Gyre Heros + + + arial + + Tex Gyre Heros + + + sans-serif + + Tex Gyre Heros + + + + + serif + Libertinus Serif + Noto Serif + Noto Color Emoji + IPAPMincho + HanaMinA + + + + + SFMono-Regular + DM Mono + Space Mono + Inconsolatazi4 + IPAGothic + + + Menlo + DM Mono + Space Mono + Inconsolatazi4 + IPAGothic + + + monospace + DM Mono + Space Mono + Inconsolatazi4 + IPAGothic + + + + + sans-serif + + Noto Sans + Noto Color Emoji + Noto Emoji + Open Sans + Droid Sans + Ubuntu + Roboto + NotoSansCJK + Source Han Sans JP + IPAPGothic + VL PGothic + Koruri + + + + serif + + Noto Serif + Noto Color Emoji + Noto Emoji + Droid Serif + Roboto Slab + IPAPMincho + + + + monospace + + Noto Sans Mono + Noto Color Emoji + Noto Emoji + Inconsolatazi4 + Ubuntu Mono + Droid Sans Mono + Roboto Mono + IPAGothic + + + diff --git a/airootfs/etc/group b/airootfs/etc/group index 2f50b54..93e6a62 100644 --- a/airootfs/etc/group +++ b/airootfs/etc/group @@ -1,16 +1,17 @@ root:x:0:root sys:x:3:bin,liveuser +adm:x:4:liveuser +wheel:x:10:liveuser +uucp:x:14:liveuser network:x:90:liveuser power:x:98:liveuser -adm:x:999:liveuser -wheel:x:998:liveuser -uucp:x:987:liveuser -optical:x:990:liveuser -rfkill:x:983:liveuser -video:x:986:liveuser -storage:x:988:liveuser -audio:x:995:liveuser -users:x:985:liveuser nopasswdlogin:x:966:liveuser autologin:x:967:liveuser -liveuser:x:1000: \ No newline at end of file +rfkill:x:983:liveuser +users:x:985:liveuser +video:x:986:liveuser +storage:x:988:liveuser +optical:x:990:liveuser +audio:x:995:liveuser +liveuser:x:1000: +liveuser:x:1000:liveuser diff --git a/airootfs/etc/gshadow b/airootfs/etc/gshadow index 8bf2275..91db3d8 100644 --- a/airootfs/etc/gshadow +++ b/airootfs/etc/gshadow @@ -1,10 +1,10 @@ -root:::root +root:!*::root sys:!!::liveuser -network:!!::liveuser -power:!!::liveuser adm:!!::liveuser wheel:!!::liveuser uucp:!!::liveuser +network:!!::liveuser +power:!!::liveuser optical:!!::liveuser rfkill:!!::liveuser video:!!::liveuser @@ -13,4 +13,4 @@ audio:!!::liveuser users:!!::liveuser nopasswdlogin:!::liveuser autologin:!::liveuser -liveuser:!:: +liveuser:!*:: diff --git a/airootfs/etc/hostname b/airootfs/etc/hostname index 51fbdc7..ca976d5 100644 --- a/airootfs/etc/hostname +++ b/airootfs/etc/hostname @@ -1 +1,3 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later Melawy-Linux diff --git a/airootfs/etc/locale.conf b/airootfs/etc/locale.conf index f318dbb..8f62933 100644 --- a/airootfs/etc/locale.conf +++ b/airootfs/etc/locale.conf @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later + LANG=ru_RU.UTF-8 LC_ADDRESS=ru_RU.UTF-8 LC_IDENTIFICATION=ru_RU.UTF-8 diff --git a/airootfs/etc/makepkg.conf b/airootfs/etc/makepkg.conf index 8b5003e..4fe6679 100644 --- a/airootfs/etc/makepkg.conf +++ b/airootfs/etc/makepkg.conf @@ -136,7 +136,7 @@ DBGSRCDIR="/usr/src/debug" # COMPRESSGZ=(gzip -c -f -n) COMPRESSBZ2=(bzip2 -c -f) -COMPRESSXZ=(xz -c -z --threads=0 -9 -e -) +COMPRESSXZ=(xz -vv -c -z --threads=0 -9 -e -) COMPRESSZST=(zstd -c -z -q -) COMPRESSLRZ=(lrzip -q) COMPRESSLZO=(lzop -q) diff --git a/airootfs/etc/melawy-linux-release b/airootfs/etc/melawy-linux-release new file mode 100644 index 0000000..f4fd41e --- /dev/null +++ b/airootfs/etc/melawy-linux-release @@ -0,0 +1,4 @@ +LSB_VERSION=1.4 +DISTRIB_ID=MelawyLinux +DISTRIB_RELEASE=rolling +DISTRIB_DESCRIPTION="MelawyLinux" diff --git a/airootfs/etc/mkinitcpio.conf b/airootfs/etc/mkinitcpio.conf index 1541dca..8123c43 100644 --- a/airootfs/etc/mkinitcpio.conf +++ b/airootfs/etc/mkinitcpio.conf @@ -3,7 +3,7 @@ # 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=(piix ide_disk reiserfs) +# MODULES=(usbhid xhci_hcd piix ide_disk reiserfs) MODULES=(vmd) # BINARIES @@ -49,21 +49,27 @@ FILES=() # ## NOTE: If you have /usr on a separate partition, you MUST include the # usr, fsck and shutdown hooks. -HOOKS=(base udev modconf kms keyboard keymap consolefont memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems plymouth) +HOOKS=(base udev modconf kms keymap consolefont memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard plymouth) #HOOKS=(base systemd systemd-tool modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard sd-vconsole plymouth sd-shutdown) # COMPRESSION -# Use this to compress the initramfs image. By default, gzip 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="zstd" # 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/airootfs/etc/modprobe.d/iwlwifi.conf b/airootfs/etc/modprobe.d/iwlwifi.conf new file mode 100644 index 0000000..c920c66 --- /dev/null +++ b/airootfs/etc/modprobe.d/iwlwifi.conf @@ -0,0 +1 @@ +options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8 diff --git a/airootfs/etc/modprobe.d/nvidia-utils.conf b/airootfs/etc/modprobe.d/nvidia-utils.conf new file mode 100644 index 0000000..017b682 --- /dev/null +++ b/airootfs/etc/modprobe.d/nvidia-utils.conf @@ -0,0 +1 @@ +# THIS IS A STUB TO OVERRIDE THE NVIDIA-UTILS PACKAGE, DO NOT TOUCH. diff --git a/airootfs/etc/modules-load.d/nvidia-utils.conf b/airootfs/etc/modules-load.d/nvidia-utils.conf new file mode 100644 index 0000000..017b682 --- /dev/null +++ b/airootfs/etc/modules-load.d/nvidia-utils.conf @@ -0,0 +1 @@ +# THIS IS A STUB TO OVERRIDE THE NVIDIA-UTILS PACKAGE, DO NOT TOUCH. diff --git a/airootfs/etc/modules-load.d/zfs.conf b/airootfs/etc/modules-load.d/zfs.conf new file mode 100644 index 0000000..73304bc --- /dev/null +++ b/airootfs/etc/modules-load.d/zfs.conf @@ -0,0 +1 @@ +zfs diff --git a/airootfs/etc/motd b/airootfs/etc/motd old mode 100644 new mode 100755 index 4d9eda1..f86ea98 --- a/airootfs/etc/motd +++ b/airootfs/etc/motd @@ -1,11 +1,29 @@ -To install Arch Linux follow the installation guide: -https://wiki.archlinux.org/title/Installation_guide +This ISO is based on Arch-ISO modified hugely to provide Installation Environment for MelawyOS. +https://endeavouros.com -For Wi-Fi, authenticate to the wireless network using the iwctl utility. -For mobile broadband (WWAN) modems, connect with the mmcli utility. -Ethernet, WLAN and WWAN interfaces using DHCP should work automatically. +MelawyOS-archiso Sources: +https://github.com/Melawy -After connecting to the internet, the installation guide can be accessed -via the convenience script Installation_guide. +Arch-ISO Source: +https://gitlab.archlinux.org/archlinux/archiso -                                           +Calamares as our installer: +https://github.com/calamares/calamares + +Live environment will start now and let you install MelawyOS to disk, or tryout KDE-Desktop from Live-Session. + +Bugs can be reported here: +https://github.com/Melawy + +Getting help at the forum: https://github.com/Melawy +Help-Chat is available on telegram: https://t.me/Melawy_chat +News is available on telegram: https://t.me/Melawy_news + +Our journey wouldn't be made possible without the donates: +https://www.tinkoff.ru/cf/7OmVoFjdFNI + +Thank you for donating your trust in us! + +Welcome to your Melawy + +------------------ diff --git a/airootfs/etc/os-release b/airootfs/etc/os-release new file mode 100644 index 0000000..da9432a --- /dev/null +++ b/airootfs/etc/os-release @@ -0,0 +1,10 @@ +NAME="MelawyLinux" +PRETTY_NAME="MelawyLinux" +ID=MelawyLinux +ID_LIKE=arch +BUILD_ID=rolling +ANSI_COLOR="38;2;23;147;209" +HOME_URL="https://melawy.ru/" +LOGO=MelawyLinux +IMAGE_ID=MelawyLinux +IMAGE_VERSION=08-12-2023 diff --git a/airootfs/etc/pacman.conf b/airootfs/etc/pacman.conf index 38af6bc..dcdc795 100644 --- a/airootfs/etc/pacman.conf +++ b/airootfs/etc/pacman.conf @@ -1,67 +1,126 @@ +# # /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 = pacman glibc -# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -# XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -# CleanMethod = KeepInstalled +# 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 -# IgnorePkg = -# IgnoreGroup = -# NoUpgrade = -# NoExtract = -# UseSyslog -# NoProgressBar -CheckSpace -# VerbosePkgLists -ParallelDownloads = 5 -# Color -ILoveCandy -CheckSpace -# VerbosePkgLists -# DisableDownloadTimeout -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -# RemoteFileSigLevel = Required -# [testing] -# Include = /etc/pacman.d/mirrorlist +#IgnorePkg = +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +ILoveCandy +#NoProgressBar +#CheckSpace +VerbosePkgLists +ParallelDownloads = 5 + +# 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. +# + +# 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. + +[endeavouros] +SigLevel = PackageRequired +Include = /etc/pacman.d/endeavouros-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 -# [community-testing] -# 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. -[community] -Include = /etc/pacman.d/mirrorlist - -# [multilib-testing] -# Include = /etc/pacman.d/mirrorlist +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist [multilib] Include = /etc/pacman.d/mirrorlist -# [custom] -# SigLevel = Optional TrustAll -# Server = file:///home/custompkgs +# 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] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/arcolinux-mirrorlist + +[arcolinux_repo_xlarge] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/arcolinux-mirrorlist + +[arcolinux_repo_3party] +SigLevel = Required DatabaseOptional +Include = /etc/pacman.d/arcolinux-mirrorlist + +[cachyos] +Include = /etc/pacman.d/cachyos-mirrorlist + +[garuda] +Include = /etc/pacman.d/chaotic-mirrorlist + +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist [melawy] SigLevel = Required DatabaseOptional @@ -82,36 +141,3 @@ Include = /etc/pacman.d/melawy-linux-mirrorlist [melawy-aur-gui-app] SigLevel = Required DatabaseOptional Include = /etc/pacman.d/melawy-linux-mirrorlist - -[melawy-aur-cargo] -SigLevel = Required DatabaseOptional -Include = /etc/pacman.d/melawy-linux-mirrorlist - -[arcolinux_repo] -SigLevel = Required DatabaseOptional -Include = /etc/pacman.d/arcolinux-mirrorlist - -[arcolinux_repo_xlarge] -SigLevel = Required DatabaseOptional -Include = /etc/pacman.d/arcolinux-mirrorlist - -[arcolinux_repo_3party] -SigLevel = Required DatabaseOptional -Include = /etc/pacman.d/arcolinux-mirrorlist - -# [endeavouros] -# SigLevel = PackageRequired -# Include = /etc/pacman.d/endeavouros-mirrorlist - -# [cachyos] -# Include = /etc/pacman.d/cachyos-mirrorlist - -# [garuda] -# Include = /etc/pacman.d/chaotic-mirrorlist - -# [chaotic-aur] -# Include = /etc/pacman.d/chaotic-mirrorlist - -# [local] -# SigLevel = Optional TrustAll -# Server = file:///disk/repo/$repo/$arch diff --git a/airootfs/etc/pamac.conf b/airootfs/etc/pamac.conf index 5db7858..646acbd 100644 --- a/airootfs/etc/pamac.conf +++ b/airootfs/etc/pamac.conf @@ -17,7 +17,7 @@ EnableDowngrade #SimpleInstall ## Allow Pamac to search and install packages from AUR: -EnableAUR +#EnableAUR ## Keep built packages from AUR in cache after installation: KeepBuiltPkgs diff --git a/airootfs/etc/passwd b/airootfs/etc/passwd index da8dd66..0917446 100644 --- a/airootfs/etc/passwd +++ b/airootfs/etc/passwd @@ -1,2 +1,2 @@ -root:x:0:0:root:/root:/usr/bin/zsh +root:x:0:0:root:/root:/bin/bash liveuser:x:1000:1000::/home/liveuser:/bin/bash diff --git a/airootfs/etc/plymouth/plymouthd.conf b/airootfs/etc/plymouth/plymouthd.conf index 4b2b1e9..54b1867 100644 --- a/airootfs/etc/plymouth/plymouthd.conf +++ b/airootfs/etc/plymouth/plymouthd.conf @@ -1,5 +1,5 @@ [Daemon] -Theme=melawy-lera-sugar +Theme=melawy-nier-a2 DeviceScale=1 DeviceTimeout=8 ShowDelay=0 diff --git a/airootfs/etc/sddm.conf.d/kde_settings.conf b/airootfs/etc/sddm.conf.d/kde_settings.conf index be704d1..ea3c1f8 100644 --- a/airootfs/etc/sddm.conf.d/kde_settings.conf +++ b/airootfs/etc/sddm.conf.d/kde_settings.conf @@ -4,8 +4,8 @@ Numlock=on RebootCommand=/usr/bin/systemctl reboot [Theme] -Current=Melawy-Lera-Sugar -CursorTheme=Qogir-dark +Current=Melawy-Nier-A2 +CursorTheme=Melawy-red-light-default-cursors Font=Noto Sans,10,-1,0,50,0,0,0,0,0 [Users] diff --git a/airootfs/etc/sddm.conf.d/tty.conf b/airootfs/etc/sddm.conf.d/tty.conf deleted file mode 100644 index 5f80756..0000000 --- a/airootfs/etc/sddm.conf.d/tty.conf +++ /dev/null @@ -1,2 +0,0 @@ -[X11] -MinimumVT=7 diff --git a/airootfs/etc/sysctl.d/99-local.conf b/airootfs/etc/sysctl.d/99-local.conf new file mode 100644 index 0000000..b154692 --- /dev/null +++ b/airootfs/etc/sysctl.d/99-local.conf @@ -0,0 +1 @@ +net.ipv6.conf.default.use_tempaddr = 2 diff --git a/airootfs/etc/systemd/intel.service b/airootfs/etc/systemd/intel.service deleted file mode 100644 index 02d8a4c..0000000 --- a/airootfs/etc/systemd/intel.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=detect intel legacy gpu and install xf86-video-intel -Before=graphical.target - -[Service] -Type=simple -ExecStart=/bin/bash /usr/bin/GPU-Intel-installer - -[Install] -WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/journald.conf b/airootfs/etc/systemd/journald.conf index 6e11247..4e6a3f3 100644 --- a/airootfs/etc/systemd/journald.conf +++ b/airootfs/etc/systemd/journald.conf @@ -12,7 +12,7 @@ # See journald.conf(5) for details. [Journal] -Storage=volatile +Storage=auto #Compress=yes #Seal=yes #SplitMode=uid diff --git a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf old mode 100644 new mode 100755 index b69850d..3104779 --- a/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf +++ b/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -1,2 +1,5 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later + [Journal] Storage=volatile diff --git a/airootfs/etc/systemd/logind.conf b/airootfs/etc/systemd/logind.conf index 72b3254..a4e8125 100644 --- a/airootfs/etc/systemd/logind.conf +++ b/airootfs/etc/systemd/logind.conf @@ -1,13 +1,16 @@ # This file is part of systemd. # -# systemd is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. +# systemd is free software; you can redistribute it and/or modify it under the +# terms of the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 2.1 of the License, or (at your option) +# any later version. # -# Entries in this file show the compile time defaults. -# You can change settings by editing this file. -# Defaults can be restored by simply deleting this file. +# Entries in this file show the compile time defaults. Local configuration +# should be created by either modifying this file, or by creating "drop-ins" in +# the logind.conf.d/ subdirectory. The latter is generally recommended. +# Defaults can be restored by simply deleting this file and all drop-ins. +# +# Use 'systemd-analyze cat-config systemd/logind.conf' to display the full config. # # See logind.conf(5) for details. @@ -18,21 +21,29 @@ #KillOnlyUsers= #KillExcludeUsers=root #InhibitDelayMaxSec=5 +#UserStopDelaySec=10 #HandlePowerKey=poweroff -HandleSuspendKey=ignore -HandleHibernateKey=ignore -HandleLidSwitch=ignore +#HandlePowerKeyLongPress=ignore +#HandleRebootKey=reboot +#HandleRebootKeyLongPress=poweroff +#HandleSuspendKey=suspend +#HandleSuspendKeyLongPress=hibernate +#HandleHibernateKey=hibernate +#HandleHibernateKeyLongPress=ignore +#HandleLidSwitch=suspend #HandleLidSwitchExternalPower=suspend #HandleLidSwitchDocked=ignore #PowerKeyIgnoreInhibited=no #SuspendKeyIgnoreInhibited=no #HibernateKeyIgnoreInhibited=no #LidSwitchIgnoreInhibited=yes +#RebootKeyIgnoreInhibited=no #HoldoffTimeoutSec=30s #IdleAction=ignore #IdleActionSec=30min #RuntimeDirectorySize=10% -#RuntimeDirectoryInodes=400k +#RuntimeDirectoryInodesMax= #RemoveIPC=yes #InhibitorsMax=8192 #SessionsMax=8192 +#StopIdleSessionSec=infinity diff --git a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf deleted file mode 100644 index f3ecb39..0000000 --- a/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf +++ /dev/null @@ -1,4 +0,0 @@ -[Login] -HandleSuspendKey=ignore -HandleHibernateKey=ignore -HandleLidSwitch=ignore diff --git a/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf b/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf new file mode 100644 index 0000000..e0b4e28 --- /dev/null +++ b/airootfs/etc/systemd/logind.conf.d/melawylinux-settings.conf @@ -0,0 +1,12 @@ +[Login] +HandlePowerKey=poweroff +HandlePowerKeyLongPress=ignore +HandleRebootKey=reboot +HandleRebootKeyLongPress=poweroff +HandleSuspendKey=suspend +HandleSuspendKeyLongPress=hibernate +HandleHibernateKey=hibernate +HandleHibernateKeyLongPress=ignore +HandleLidSwitch=suspend +HandleLidSwitchExternalPower=suspend +HandleLidSwitchDocked=ignore diff --git a/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/airootfs/etc/systemd/network/20-ethernet.network b/airootfs/etc/systemd/network/20-ethernet.network index 9ada778..c1144dd 100644 --- a/airootfs/etc/systemd/network/20-ethernet.network +++ b/airootfs/etc/systemd/network/20-ethernet.network @@ -1,19 +1,11 @@ [Match] -# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). -# See https://bugs.archlinux.org/task/70892 -# Instead match by globbing the network interface name. Name=en* Name=eth* [Network] DHCP=yes -IPv6PrivacyExtensions=yes +MulticastDNS=yes -# systemd-networkd does not set per-interface-type default route metrics -# https://github.com/systemd/systemd/issues/17698 -# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. -# Use values from NetworkManager. From nm_device_get_route_metric_default in -# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c [DHCPv4] RouteMetric=100 diff --git a/airootfs/etc/systemd/network/20-wlan.network b/airootfs/etc/systemd/network/20-wlan.network index 601d5b8..538d275 100644 --- a/airootfs/etc/systemd/network/20-wlan.network +++ b/airootfs/etc/systemd/network/20-wlan.network @@ -3,13 +3,8 @@ Name=wl* [Network] DHCP=yes -IPv6PrivacyExtensions=yes +MulticastDNS=yes -# systemd-networkd does not set per-interface-type default route metrics -# https://github.com/systemd/systemd/issues/17698 -# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. -# Use values from NetworkManager. From nm_device_get_route_metric_default in -# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c [DHCPv4] RouteMetric=600 diff --git a/airootfs/etc/systemd/network/20-wwan.network b/airootfs/etc/systemd/network/20-wwan.network index 9104c24..ad70dbd 100644 --- a/airootfs/etc/systemd/network/20-wwan.network +++ b/airootfs/etc/systemd/network/20-wwan.network @@ -3,13 +3,7 @@ Name=ww* [Network] DHCP=yes -IPv6PrivacyExtensions=yes -# systemd-networkd does not set per-interface-type default route metrics -# https://github.com/systemd/systemd/issues/17698 -# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. -# Use values from NetworkManager. From nm_device_get_route_metric_default in -# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c [DHCPv4] RouteMetric=700 diff --git a/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/airootfs/etc/systemd/resolved.conf.d/archiso.conf new file mode 100644 index 0000000..636f3bd --- /dev/null +++ b/airootfs/etc/systemd/resolved.conf.d/archiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for archiso + +[Resolve] +MulticastDNS=yes diff --git a/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service b/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service new file mode 120000 index 0000000..d256bfe --- /dev/null +++ b/airootfs/etc/systemd/system/bluetooth.target.wants/bluetooth.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/bluetooth.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service b/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service new file mode 120000 index 0000000..1aff68e --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-fi.w1.wpa_supplicant1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/wpa_supplicant.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.bluez.service b/airootfs/etc/systemd/system/dbus-org.bluez.service new file mode 120000 index 0000000..d256bfe --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.bluez.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/bluetooth.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service b/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service new file mode 120000 index 0000000..e7ae405 --- /dev/null +++ b/airootfs/etc/systemd/system/dbus-org.freedesktop.Avahi.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/avahi-daemon.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount index 0ba0e67..038961e 100644 --- a/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount +++ b/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -2,7 +2,7 @@ Description=Temporary /etc/pacman.d/gnupg directory [Mount] -What=ramfs +What=tmpfs Where=/etc/pacman.d/gnupg -Type=ramfs -Options=mode=0755 +Type=tmpfs +Options=mode=0755,noswap diff --git a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf index a07a34b..c3bb4dd 100644 --- a/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ b/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -1,4 +1,6 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later + [Service] ExecStart= -#ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM -ExecStart=-/sbin/agetty --autologin liveuser --noclear %I 38400 linux \ No newline at end of file +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/airootfs/etc/systemd/system/intel.service b/airootfs/etc/systemd/system/intel.service index 02d8a4c..9c110a5 100644 --- a/airootfs/etc/systemd/system/intel.service +++ b/airootfs/etc/systemd/system/intel.service @@ -4,7 +4,7 @@ Before=graphical.target [Service] Type=simple -ExecStart=/bin/bash /usr/bin/GPU-Intel-installer +ExecStart=/bin/bash /usr/local/bin/GPU-Intel-installer [Install] WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service b/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service new file mode 120000 index 0000000..e7ae405 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/avahi-daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/avahi-daemon.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service b/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service new file mode 120000 index 0000000..d256bfe --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/bluetooth.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/bluetooth.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service b/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service new file mode 120000 index 0000000..91b6be3 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/firewalld.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/firewalld.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/intel.service b/airootfs/etc/systemd/system/multi-user.target.wants/intel.service new file mode 120000 index 0000000..46f1e18 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/intel.service @@ -0,0 +1 @@ +/etc/systemd/system/intel.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service b/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service new file mode 120000 index 0000000..d3bfc72 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/ntpd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ntpd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer b/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer new file mode 120000 index 0000000..77e1f7d --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/pamac-cleancache.timer @@ -0,0 +1 @@ +/usr/lib/systemd/system/pamac-cleancache.timer \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target b/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target new file mode 120000 index 0000000..2bc8b1c --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/remote-fs.target @@ -0,0 +1 @@ +/usr/lib/systemd/system/remote-fs.target \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket b/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket new file mode 120000 index 0000000..6bce993 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/spice-vdagentd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/spice-vdagentd.socket \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/systemd-timesyncd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service b/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service new file mode 120000 index 0000000..224542b --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/vboxclient.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxclient.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service b/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service new file mode 120000 index 0000000..1303d33 --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/vcheck.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/virtual-machine-check.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service b/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service new file mode 120000 index 0000000..1aff68e --- /dev/null +++ b/airootfs/etc/systemd/system/multi-user.target.wants/wpa_supplicant.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/wpa_supplicant.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service deleted file mode 120000 index 7d6ad92..0000000 --- a/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/pacman-init.service b/airootfs/etc/systemd/system/pacman-init.service index b824884..1a0be0f 100644 --- a/airootfs/etc/systemd/system/pacman-init.service +++ b/airootfs/etc/systemd/system/pacman-init.service @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-3.0-or-later + [Unit] Description=Initializes Pacman keyring Requires=etc-pacman.d-gnupg.mount diff --git a/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket b/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket new file mode 120000 index 0000000..045b23d --- /dev/null +++ b/airootfs/etc/systemd/system/sockets.target.wants/avahi-daemon.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/avahi-daemon.socket \ No newline at end of file diff --git a/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket new file mode 120000 index 0000000..3897c63 --- /dev/null +++ b/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/pcscd.socket \ No newline at end of file diff --git a/airootfs/etc/xdg/autostart/Calamares-etc.desktop b/airootfs/etc/xdg/autostart/Calamares-etc.desktop index b93b60e..36c2588 100755 --- a/airootfs/etc/xdg/autostart/Calamares-etc.desktop +++ b/airootfs/etc/xdg/autostart/Calamares-etc.desktop @@ -240,7 +240,7 @@ SingleMainWindow=true StartupNotify=true Terminal=false TerminalOptions= -Exec=/usr/bin/calamares_polkit %f -d -c /etc/calamares/configs/melawy-linux +Exec=/usr/bin/calamares_polkit %f -d -c /etc/calamares/ Type=Application Version=1.0 X-AppStream-Ignore=true diff --git a/airootfs/etc/xdg/kcm-about-distrorc b/airootfs/etc/xdg/kcm-about-distrorc new file mode 100644 index 0000000..80c3f01 --- /dev/null +++ b/airootfs/etc/xdg/kcm-about-distrorc @@ -0,0 +1,4 @@ +[General] +Name=MelawyLinux +LogoPath=/usr/share/logos/melawy.png +Website=https://melawy.ru/ diff --git a/airootfs/etc/xdg/reflector/reflector.conf b/airootfs/etc/xdg/reflector/reflector.conf index a2cd2b6..12c5c07 100644 --- a/airootfs/etc/xdg/reflector/reflector.conf +++ b/airootfs/etc/xdg/reflector/reflector.conf @@ -28,7 +28,9 @@ -c CA,FI,FR,DE,IS,IE,IT,JP,KZ,LV,LU,NZ,NO,PL,PT,RU,SG,ES,SE,CH,TW,TH ---protocol https,http,rsync +--ipv4 +--ipv6 +--protocol https --fastest 50 --latest 50 --sort rate diff --git a/airootfs/root/.automated_script.sh b/airootfs/root/.automated_script.sh index ed3a924..8e72bf7 100755 --- a/airootfs/root/.automated_script.sh +++ b/airootfs/root/.automated_script.sh @@ -1,22 +1,29 @@ #!/usr/bin/env bash -script_cmdline () -{ +script_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/dev/null + # there's no synchronization for network availability before executing this script + printf '%s: waiting for network-online.target\n' "$0" + until systemctl --quiet is-active network-online.target; do + sleep 1 + done + printf '%s: downloading %s\n' "$0" "${script}" + curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script rt=$? else cp "${script}" /tmp/startup_script @@ -24,6 +31,9 @@ automated_script () fi if [[ ${rt} -eq 0 ]]; then chmod +x /tmp/startup_script + printf '%s: executing automated script\n' "$0" + # note that script is executed when other services (like pacman-init) may be still in progress, please + # synchronize to "systemctl is-system-running --wait" when your script depends on other services /tmp/startup_script fi fi diff --git a/airootfs/root/.gnupg/scdaemon.conf b/airootfs/root/.gnupg/scdaemon.conf new file mode 100644 index 0000000..e1f3d1f --- /dev/null +++ b/airootfs/root/.gnupg/scdaemon.conf @@ -0,0 +1,4 @@ +disable-ccid +disable-pinpad +pcsc-driver /usr/lib/libpcsclite.so +pcsc-shared diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin old mode 100755 new mode 100644 index 0fb119d..bf6bc8f --- a/airootfs/root/.zlogin +++ b/airootfs/root/.zlogin @@ -1,5 +1,5 @@ # fix for screen readers -if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then setopt SINGLE_LINE_ZLE fi diff --git a/airootfs/root/archives/liveuser.tar.xz b/airootfs/root/archives/liveuser.tar.xz index 2b01587..da8aec7 100644 Binary files a/airootfs/root/archives/liveuser.tar.xz and b/airootfs/root/archives/liveuser.tar.xz differ diff --git a/airootfs/root/customize_airootfs.sh b/airootfs/root/customize_airootfs.sh index be08b40..7de3975 100755 --- a/airootfs/root/customize_airootfs.sh +++ b/airootfs/root/customize_airootfs.sh @@ -2,48 +2,49 @@ locale-gen -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -usermod -s /bin/bash root +usermod -p "123" -s /bin/bash root cp -aT /etc/skel/ /root/ -useradd -m -p "" -g 'users' -G 'adm,audio,floppy,log,network,nopasswdlogin,optical,power,rfkill,scanner,storage,sys,tty,users,uucp,wheel' -s /bin/bash liveuser -usermod -m -p "" -g 'users' -G 'adm,audio,autologin,network,nopasswdlogin,optical,power,rfkill,storage,sys,users,uucp,video,wheel' -s /bin/bash liveuser -usermod -m -p "" -g 'users' -G 'adm,audio,autologin,floppy,log,network,nopasswdlogin,optical,power,rfkill,scanner,storage,sys,tty,users,uucp,video,wheel' -s /bin/bash liveuser +usermod -p "123" liveuser + +groups="adm audio autologin floppy log network nopasswdlogin optical power rfkill scanner storage sys tty users uucp video wheel" +for i in $groups +do + #usermod -m -d /home/liveuser -p "123" -g 'users' -G $i -s /bin/bash liveuser + usermod -G $i liveuser +done -chmod 750 /etc/sudoers.d -chmod 440 /etc/sudoers.d/g_wheel chown -R 1000:1000 /home/liveuser +findstr=$(grep -e 'kdesu' /usr/bin/eos-install-mode-run-calamares) +sed -e "s/$findstr//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" -cat "/usr/lib/melawy-linux-release" >> "/etc/motd" -echo "------------------" >> "/etc/motd" +# cat "/usr/lib/melawy-linux-release" >> "/etc/motd" +# echo "------------------" >> "/etc/motd" mkdir -p "/etc/calamares/configs/melawy-linux/files/" cp "/root/wallpaper.png" "/etc/calamares/configs/melawy-linux/files/melawy-linux-wallpaper.png" chmod 644 "/etc/calamares/configs/melawy-linux/files/"*".png" -mkdir -p "/usr/share/melawy-linux/backgrounds/" -cp "/root/wallpaper.png" "/usr/share/melawy-linux/backgrounds/melawy-linux-wallpaper.png" -chmod 644 "/usr/share/melawy-linux/backgrounds/"*".png" +chmod 644 "/usr/share/wallpapers/melawy-linux-wallpapers/"*".png" +cp "/usr/lib/modprobe.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modprobe" +cp "/usr/lib/modules-load.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modules-load" -mv "/usr/lib/modprobe.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modprobe" -mv "/usr/lib/modules-load.d/nvidia-utils.conf" "/etc/calamares/configs/melawy-linux/files/nv-modules-load" - -systemctl enable sddm.service -systemctl enable ntpd.service -systemctl enable NetworkManager.service systemd-timesyncd.service bluetooth.service firewalld.service -systemctl enable vboxservice.service vmtoolsd.service vmware-vmblock-fuse.service -systemctl enable intel.service -systemctl enable pacman-init.service choose-mirror.service -#systemctl set-default multi-user.target -systemctl set-default graphical.target +# systemctl enable sddm.service +# systemctl enable ntpd.service +# systemctl enable NetworkManager.service systemd-timesyncd.service bluetooth.service firewalld.service +# systemctl enable vboxservice.service vmtoolsd.service vmware-vmblock-fuse.service +# systemctl enable intel.service +# systemctl enable pacman-init.service choose-mirror.service +# #systemctl set-default multi-user.target +# systemctl set-default graphical.target pacman -Qs | grep "/calamares " | cut -c7- > iso_package_versions pacman -Qs | grep "/firefox " | cut -c7- >> iso_package_versions @@ -55,12 +56,6 @@ mv "iso_package_versions" "/home/liveuser/" cd "/root" -haveged -w 1024 -pacman-key --init -pkill haveged -pacman-key --populate archlinux melawy-linux arcolinux -pacman-key --updatedb - tar -xJvf /root/archives/skel.tar.xz -C /etc/skel --strip=1 --overwrite chown -R 0:0 /etc/skel diff --git a/airootfs/root/wallpaper.png b/airootfs/root/wallpaper.png index fafb0de..6ed5499 100644 Binary files a/airootfs/root/wallpaper.png and b/airootfs/root/wallpaper.png differ diff --git a/airootfs/usr/bin/GPU-Intel-installer b/airootfs/usr/local/bin/GPU-Intel-installer similarity index 100% rename from airootfs/usr/bin/GPU-Intel-installer rename to airootfs/usr/local/bin/GPU-Intel-installer diff --git a/airootfs/usr/local/bin/alci-make-a-pure-arch b/airootfs/usr/local/bin/alci-make-a-pure-arch deleted file mode 100755 index e2bbfa2..0000000 --- a/airootfs/usr/local/bin/alci-make-a-pure-arch +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -#set -e -############################################################################### -# Author : Erik Dubois -# Website : https://www.erikdubois.be -# Website : https://www.arcolinux.info -# Website : https://www.arcolinux.com -# Website : https://www.arcolinuxd.com -# Website : https://www.arcolinuxb.com -# Website : https://www.arcolinuxiso.com -# Website : https://www.arcolinuxforum.com -############################################################################### -# -# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. -# -############################################################################### - -#if necessary we can use this script too diff --git a/airootfs/usr/local/bin/all-cores b/airootfs/usr/local/bin/all-cores new file mode 100755 index 0000000..9f8b5cf --- /dev/null +++ b/airootfs/usr/local/bin/all-cores @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +#set -e +################################################################################################################## +# Author : Valeria Fadeeva +# Website : https://valeria.fadeeva.me +# Website : https://fadeeva.me +# Website : https://melawy.ru +################################################################################################################## +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +################################################################################################################## + +numberofcores=$(grep -c ^processor /proc/cpuinfo) + +if [ $numberofcores -gt 1 ] +then + echo "You have " $numberofcores" cores." + echo "Changing the makeflags for "$numberofcores" cores." + sudo sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j'$(($numberofcores+1))'"/g' /etc/makepkg.conf; + echo "Changing the compression settings for "$numberofcores" cores." + sudo sed -i 's/COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -z - --threads=0)/g' /etc/makepkg.conf + sudo sed -i 's/COMPRESSZST=(zstd -c -z -q -)/COMPRESSZST=(zstd -c -z -q - --threads=0)/g' /etc/makepkg.conf + sudo sed -i "s/PKGEXT='.pkg.tar.xz'/PKGEXT='.pkg.tar.zst'/g" /etc/makepkg.conf +else + echo "No change." +fi diff --git a/airootfs/usr/local/bin/calamares-offline.sh b/airootfs/usr/local/bin/calamares-offline.sh new file mode 100755 index 0000000..0891496 --- /dev/null +++ b/airootfs/usr/local/bin/calamares-offline.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +Main() { + local mode=offline + local progname="" + progname="$(basename "$0")" + local log=/home/liveuser/melawy-install.log + + cat < $log +########## $log by $progname +########## Started (UTC): $(date -u "+%x %X") +########## Install mode: $mode + +EOF + RunInTerminal "tail -f $log" & + + sudo cp /usr/share/calamares/settings_${mode}.conf /etc/calamares/settings.conf + sudo -E dbus-launch calamares -D6 >> $log +} + +Main "$@" diff --git a/airootfs/usr/local/bin/calamares-online.sh b/airootfs/usr/local/bin/calamares-online.sh new file mode 100755 index 0000000..8628de1 --- /dev/null +++ b/airootfs/usr/local/bin/calamares-online.sh @@ -0,0 +1,99 @@ +#!/bin/bash + +FollowFile() { + local tailfile="$1" + local term_title="$2" + + alacritty -t "$term_title" -e tail -f "$tailfile" & +} + +catch_chrooted_pacman_log() { + local pacmanlog="" + local lockfile="$HOME/.$1.lck" + + # wait until pacman.log is available in the chrooted system, then follow the log in background + while true ; do + sleep 2 + pacmanlog="$(/usr/bin/ls -1 /tmp/calamares-root-*/var/log/pacman.log 2>/dev/null | /usr/bin/tail -n 1)" + if [ -n "$pacmanlog" ] ; then + # pacman.log found + [ -r "$lockfile" ] && return + /usr/bin/touch "$lockfile" + FollowFile "$pacmanlog" "Pacman log" 400 50 + break + fi + done +} + +Main() { + local progname + progname="$(basename "$0")" + local log=/home/liveuser/melawy-install.log + local mode="" + + case "$progname" in + calamares-online.sh) mode=online ;; + calamares-offline.sh) mode=offline ;; + esac + mode=online # keep this line for now! + + local _efi_check_dir="/sys/firmware/efi" + local _exitcode=2 # by default use grub + + local SYSTEM="" + local BOOTLOADER="" + if [ -d "${_efi_check_dir}" ]; then + SYSTEM="UEFI SYSTEM" + + # Restrict bootloader selection to only UEFI systems + _exitcode=$(yad --width 300 --title "Bootloader" \ + --image=gnome-shutdown \ + --button="Grub:2" \ + --button="Systemd-boot:3" \ + --button="Refind:4" \ + --text "Choose Bootloader:" ; echo $?) + else + SYSTEM="BIOS/MBR SYSTEM" + fi + + + if [[ "${_exitcode}" -eq 2 ]]; then + BOOTLOADER="GRUB" + echo "USING GRUB!" + yes | sudo pacman -R cachyos-calamares-systemd + yes | sudo pacman -R cachyos-calamares-grub + yes | sudo pacman -R cachyos-calamares-refind + yes | sudo pacman -Sy cachyos-calamares-grub + elif [[ "${_exitcode}" -eq 3 ]]; then + BOOTLOADER="SYSTEMD-BOOT" + echo "USING SYSTEMD-BOOT!" + yes | sudo pacman -R cachyos-calamares-grub + yes | sudo pacman -R cachyos-calamares-refind + yes | sudo pacman -Sy cachyos-calamares-systemd + elif [[ "${_exitcode}" -eq 4 ]]; then + BOOTLOADER="REFIND" + echo "USING REFIND!" + yes | sudo pacman -R cachyos-calamares-grub + yes | sudo pacman -R cachyos-calamares-systemd + yes | sudo pacman -Sy cachyos-calamares-refind + else + exit + fi + + cat < $log +########## $log by $progname +########## Started (UTC): $(date -u "+%x %X") +########## Install mode: $mode +########## System: $SYSTEM +########## Bootloader: $BOOTLOADER +EOF + FollowFile "$log" "Install log" 20 20 + + sudo cp /usr/share/calamares/settings_${mode}.conf /etc/calamares/settings.conf + sudo -E dbus-launch calamares -D6 >> $log & + + # comment out the following line if pacman.log is not needed: + [ "$mode" = "online" ] && catch_chrooted_pacman_log "$progname" +} + +Main "$@" diff --git a/airootfs/usr/local/bin/choose-mirror b/airootfs/usr/local/bin/choose-mirror index b021945..d2349de 100755 --- a/airootfs/usr/local/bin/choose-mirror +++ b/airootfs/usr/local/bin/choose-mirror @@ -4,21 +4,22 @@ get_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/etc/pacman.d/mirrorlist << EOF +cat >/etc/pacman.d/mirrorlist < /dev/null ; then - ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service -fi -package=gdm -if pacman -Qs $package > /dev/null ; then - ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service -fi -package=lxdm -if pacman -Qs $package > /dev/null ; then - ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service -fi -package=lightdm -if pacman -Qs $package > /dev/null ; then - ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service -fi diff --git a/airootfs/usr/local/bin/alci-displaymanager-check b/airootfs/usr/local/bin/dmcheck similarity index 67% rename from airootfs/usr/local/bin/alci-displaymanager-check rename to airootfs/usr/local/bin/dmcheck index 916547f..8957714 100755 --- a/airootfs/usr/local/bin/alci-displaymanager-check +++ b/airootfs/usr/local/bin/dmcheck @@ -1,33 +1,42 @@ -#!/bin/bash +#!/usr/bin/env bash #set -e ############################################################################### -# Author : Erik Dubois -# Website : https://www.erikdubois.be -# Website : https://www.arcolinux.info -# Website : https://www.arcolinux.com -# Website : https://www.arcolinuxd.com -# Website : https://www.arcolinuxb.com -# Website : https://www.arcolinuxiso.com -# Website : https://www.arcolinuxforum.com +# Author : Valeria Fadeeva +# Website : https://valeria.fadeeva.me +# Website : https://fadeeva.me +# Website : https://melawy.ru ############################################################################### # # DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. # ############################################################################### +package=ly +if pacman -Qs $package > /dev/null ; then + ln -sf /usr/lib/systemd/system/ly.service /etc/systemd/system/display-manager.service +fi + package=sddm if pacman -Qs $package > /dev/null ; then ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service fi + package=gdm if pacman -Qs $package > /dev/null ; then ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service fi + package=lxdm if pacman -Qs $package > /dev/null ; then ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service fi + package=lightdm if pacman -Qs $package > /dev/null ; then ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service fi + +echo "#################################" +echo "End displaymanager-check" +echo "#################################" +rm /usr/local/bin/dmcheck diff --git a/airootfs/usr/local/bin/fsprogschk b/airootfs/usr/local/bin/fsprogschk new file mode 100755 index 0000000..b21cf4c --- /dev/null +++ b/airootfs/usr/local/bin/fsprogschk @@ -0,0 +1,29 @@ +#!/bin/bash +#set -e + +RED='\033[0;31m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +NC='\033[0m' + +############################################################################### +# Author : Valeria Fadeeva +# Website : https://valeria.fadeeva.me +# Website : https://fadeeva.me +# Website : https://melawy.ru +############################################################################### + +if lsblk -f | grep -q "btrfs"; then + echo -e "${GREEN}BTRFS partitions found. Removing XFS-Progs.${NC}" + echo + sudo pacman -Rdd --noconfirm xfsprogs +elif lsblk -f | grep -q "xfs"; then + echo -e "${RED}XFS partitions found. Removing BTRFS-Progs.${NC}" + echo + sudo pacman -Rdd --noconfirm btrfs-progs +else + echo -e "${BLUE}No XFS or BTRFS partitions found. Removing both Progs Packages.${NC}" + sudo pacman -Rdd --noconfirm xfsprogs btrfs-progs +fi + +rm /usr/local/bin/fsprogschk diff --git a/airootfs/usr/local/bin/get-nemesis-on-alci b/airootfs/usr/local/bin/get-nemesis-on-alci deleted file mode 100755 index d0ec56b..0000000 --- a/airootfs/usr/local/bin/get-nemesis-on-alci +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -#set -e -################################################################################################################## -# Author : Erik Dubois -# Website : https://www.erikdubois.be -# Website : https://www.alci.online -# Website : https://www.arcolinux.info -# Website : https://www.arcolinux.com -# Website : https://www.arcolinuxd.com -# Website : https://www.arcolinuxb.com -# Website : https://www.arcolinuxiso.com -# Website : https://www.arcolinuxforum.com -################################################################################################################## -# -# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. -# -################################################################################################################## -#tput setaf 0 = black -#tput setaf 1 = red -#tput setaf 2 = green -#tput setaf 3 = yellow -#tput setaf 4 = dark blue -#tput setaf 5 = purple -#tput setaf 6 = cyan -#tput setaf 7 = gray -#tput setaf 8 = light blue -################################################################################################################## - -#iso=alci-iso-hardened - -echo -tput setaf 3 -echo "################################################################" -echo "################### Start clone arcolinux-nemesis" -echo "################################################################" -tput sgr0 -echo - -sudo pacman -Sy git --noconfirm --needed - -[ -d $HOME"/DATA" ] || mkdir -p $HOME"/DATA" -cd ~/DATA -git clone https://github.com/erikdubois/arcolinux-nemesis - -echo -tput setaf 3 -echo "################################################################" -echo "################### End clone arcolinux-nemesis" -echo "################################################################" -tput sgr0 -echo \ No newline at end of file diff --git a/airootfs/usr/bin/melawy-linux-connection-checker b/airootfs/usr/local/bin/melawy-linux-connection-checker similarity index 100% rename from airootfs/usr/bin/melawy-linux-connection-checker rename to airootfs/usr/local/bin/melawy-linux-connection-checker diff --git a/airootfs/usr/local/bin/melawy-linux-final b/airootfs/usr/local/bin/melawy-linux-final new file mode 100755 index 0000000..c121b0b --- /dev/null +++ b/airootfs/usr/local/bin/melawy-linux-final @@ -0,0 +1,59 @@ +#!/bin/bash +echo +echo "#################################" +echo "Start melawy-linux-final" +echo "#################################" + +echo "Permissions of important folders" +echo "#################################" +chmod 750 /etc/sudoers.d +chmod 750 /etc/polkit-1/rules.d +chgrp polkitd /etc/polkit-1/rules.d + +echo "Copy /etc/skel to /root" +echo "#################################" +cp -aT /etc/skel/ /root/ + +echo "Cleanup autologin root" +echo "#################################" +rm -rf /etc/systemd/system/getty@tty1.service.d + +echo "Setting editor to nano" +echo "#################################" +echo "EDITOR=nano" >> /etc/profile + +#Original cleanup +echo "Cleanup original files" +echo "#################################" +rm -f /etc/sudoers.d/g_wheel +rm -f /etc/polkit-1/rules.d/49-nopasswd_global.rules +rm -f /etc/systemd/system/etc-pacman.d-gnupg.mount +rm -f /etc/xdg/autostart/welcome.desktop +rm /root/{.automated_script.sh,.zlogin} +mv /etc/melawy-linux-release /etc/lsb-release + +echo "Permission of root" +echo "#################################" +chmod -v 750 /root + +echo "Patching System.conf" +echo "#################################" +sed -i "s/#RebootWatchdogSec=10min/RebootWatchdogSec=30s/g" /etc/systemd/system.conf +sed -i "s/#DefaultTimeoutStopSec=90s/DefaultTimeoutStopSec=5s/g" /etc/systemd/system.conf +sed -i "s/#DefaultTimeoutStartSec=90s/DefaultTimeoutStartSec=10s/g" /etc/systemd/system.conf + +echo "Setting KGPg Never to start" +echo "#################################" +sed -i '219 i OnlyShowIn=KDE' /etc/xdg/autostart/org.kde.kgpg.desktop + +echo "Fixing SDDM.conf User" +echo "#####################" +sed -i "s/User=liveuser/User=/g" /etc/sddm.conf.d/kde_settings.conf + +echo "#################################" +echo "End melawy-linux-final" +echo "#################################" +rm /usr/local/bin/vcheck +rm /usr/local/bin/all-cores +rm /usr/local/bin/melawy-linux-final +rm -rf /home/liveuser/ diff --git a/airootfs/usr/local/bin/prepare-live-desktop.sh b/airootfs/usr/local/bin/prepare-live-desktop.sh new file mode 100755 index 0000000..2b35714 --- /dev/null +++ b/airootfs/usr/local/bin/prepare-live-desktop.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# borrowed from manjaro livecd + +xdg=$(xdg-user-dir DESKTOP) +src='/usr/share/applications' + +## We don't need .desktop on desktop, +## actually we should remove .desktop or fix the .desktop as it is running with pkexec, +## and using current calamares config (not even running with script to provide logs). +#if [[ -f /usr/bin/calamares ]]; then +# install -Dm755 $src/calamares.desktop \ +# $xdg/calamares.desktop +#fi + +# workaround for glib trash bug (https://bugzilla.gnome.org/show_bug.cgi?id=748248) +userid=$(id -u $USER) +if [ ! -d "/.Trash-$userid" ]; then + sudo mkdir -p /.Trash-$userid/{expunged,files,info} + sudo chown -R $userid /.Trash-$userid +fi + +# mark launchers trusted for XFCE 4.18 +for f in $(ls $xdg/*desktop); do + gio set -t string $f metadata::xfce-exe-checksum "$(sha256sum $f | awk '{print $1}')" +done; diff --git a/airootfs/usr/local/bin/remove-nvidia b/airootfs/usr/local/bin/remove-nvidia new file mode 100755 index 0000000..88f79b4 --- /dev/null +++ b/airootfs/usr/local/bin/remove-nvidia @@ -0,0 +1,48 @@ +#!/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 new file mode 100755 index 0000000..5154a85 --- /dev/null +++ b/airootfs/usr/local/bin/removeun @@ -0,0 +1,60 @@ +#!/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.sh + /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 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 new file mode 100755 index 0000000..a1df016 --- /dev/null +++ b/airootfs/usr/local/bin/removeun-online @@ -0,0 +1,55 @@ +#!/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 +} + +_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/services b/airootfs/usr/local/bin/services new file mode 100755 index 0000000..0efa4e5 --- /dev/null +++ b/airootfs/usr/local/bin/services @@ -0,0 +1,19 @@ +#!/bin/bash +echo +echo "#################################" +echo "Start Services" +echo "#################################" + +echo "Permission of root" +echo "#################################" +chmod -v 750 /root + +echo "Bluetooth improvements" +echo "#################################" +sed -i "s/#AutoEnable=false/AutoEnable=true/g" /etc/bluetooth/main.conf +echo 'load-module module-switch-on-connect' | sudo tee --append /etc/pulse/default.pa + +echo "#################################" +echo "End melawy-linux-final" +echo "#################################" +rm /usr/local/bin/services diff --git a/airootfs/usr/local/bin/skel b/airootfs/usr/local/bin/skel new file mode 100755 index 0000000..892bc9b --- /dev/null +++ b/airootfs/usr/local/bin/skel @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +echo +echo "#################################" +echo "Moving content from skel" +echo "#################################" + +for i in `ls /home/`; do su -s "/bin/bash" -c "cp -aT /etc/skel/ /home/$i/" $i || exit 0; done +rm /usr/local/bin/skel \ No newline at end of file diff --git a/airootfs/usr/local/bin/ucode b/airootfs/usr/local/bin/ucode new file mode 100755 index 0000000..0e9b404 --- /dev/null +++ b/airootfs/usr/local/bin/ucode @@ -0,0 +1,23 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Valeria Fadeeva +# Website : https://valeria.fadeeva.me +# Website : https://fadeeva.me +# Website : https://melawy.ru +############################################################################### + +cpu_vendor=$(cat /proc/cpuinfo | awk '/vendor_id/ {print $3}' | head -n 1) + +if [[ "$cpu_vendor" == "GenuineIntel" ]]; then + echo "Intel CPU detected." + sudo pacman -Rdd --noconfirm amd-ucode +elif [[ "$cpu_vendor" == "AuthenticAMD" ]]; then + echo "AMD CPU detected." + sudo pacman -Rdd --noconfirm intel-ucode +else + echo "Unknown CPU vendor: $cpu_vendor" + sudo pacman -Rdd --noconfirm intel-ucode amd-ucode +fi + +rm /usr/local/bin/ucode diff --git a/airootfs/usr/local/bin/vcheck b/airootfs/usr/local/bin/vcheck new file mode 100755 index 0000000..8fb756a --- /dev/null +++ b/airootfs/usr/local/bin/vcheck @@ -0,0 +1,151 @@ +#!/bin/bash +#set -e +############################################################################### +# Author : Valeria Fadeeva +# Website : https://valeria.fadeeva.me +# Website : https://fadeeva.me +# Website : https://melawy.ru +############################################################################### +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +############################################################################### + +result=$(systemd-detect-virt) + +while [ -e "/var/lib/pacman/db.lck" ]; +do + echo 'Pacman is not ready yet. Will try again in 5 seconds.' + seconds=$(($seconds + 5)) + sleep 5 + if [[ "$seconds" == "30" ]]; then + echo 'Warning: removing pacman db.lck!' + rm /var/lib/pacman/db.lck + fi +done + +echo "You are working on "$result + +if [ $result = "oracle" ]; + then + #remove vmware + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + echo "Disabled vmtoolsd.service" + pacman -Rns open-vm-tools --noconfirm + echo "Removed open-vm-tools" + fi + + if pacman -Qi xf86-video-vmware &> /dev/null; then + pacman -Rns xf86-video-vmware --noconfirm + echo "Removed xf86-video-vmware" + fi + + if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then + rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service + echo "Removed vmtoolsd.service if still exists" + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + pacman -Rns qemu-guest-agent --noconfirm + echo "Removed qemu-guest-agent" + fi +fi + +if [ $result = "kvm" ]; + then + #remove vmware + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + echo "Disabled vmtoolsd.service" + pacman -Rns open-vm-tools --noconfirm + echo "Removed open-vm-tools" + fi + + if pacman -Qi xf86-video-vmware &> /dev/null; then + pacman -Rns xf86-video-vmware --noconfirm + echo "Removed xf86-video-vmware" + fi + + if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then + rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service + echo "Removed vmtoolsd.service if still exists" + fi + + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils --noconfirm + echo "Removed virtualbox-guest-utils" + fi + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils-nox --noconfirm + echo "Removed virtualbox-guest-utils-nox" + fi +fi + +if [ $result = "vmware" ]; + then + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils --noconfirm + echo "Removed virtualbox-guest-utils" + fi + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils-nox --noconfirm + echo "Removed virtualbox-guest-utils-nox" + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + pacman -Rns qemu-guest-agent --noconfirm + echo "Removed qemu-guest-agent" + fi +fi + +if [ $result = "none" ]; + then + #remove virtualbox + if pacman -Qi virtualbox-guest-utils &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils --noconfirm + echo "Removed virtualbox-guest-utils" + fi + + if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then + systemctl disable vboxservice.service + pacman -Rns virtualbox-guest-utils-nox --noconfirm + echo "Removed virtualbox-guest-utils-nox" + fi + + #remove vmware + if pacman -Qi open-vm-tools &> /dev/null; then + systemctl disable vmtoolsd.service + echo "Disabled vmtoolsd.service" + pacman -Rns open-vm-tools --noconfirm + echo "Removed open-vm-tools" + fi + + if pacman -Qi xf86-video-vmware &> /dev/null; then + pacman -Rns xf86-video-vmware --noconfirm + echo "Removed xf86-video-vmware" + fi + + if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then + rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service + echo "Removed vmtoolsd.service if still exists" + fi + + #remove qemu + if pacman -Qi qemu-guest-agent &> /dev/null; then + systemctl disable qemu-guest-agent.service + pacman -Rns qemu-guest-agent --noconfirm + echo "Removed qemu-guest-agent" + fi +fi diff --git a/airootfs/usr/share/logos/melawy.png b/airootfs/usr/share/logos/melawy.png new file mode 100644 index 0000000..cb94626 Binary files /dev/null and b/airootfs/usr/share/logos/melawy.png differ diff --git a/airootfs/usr/share/pixmaps/melawylinux.png b/airootfs/usr/share/pixmaps/melawylinux.png new file mode 100644 index 0000000..cb94626 Binary files /dev/null and b/airootfs/usr/share/pixmaps/melawylinux.png differ diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png new file mode 100644 index 0000000..d501b9d Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/fenek.png differ diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png new file mode 100644 index 0000000..fafb0de Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/lera-sugar.png differ diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png new file mode 100644 index 0000000..6ed5499 Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/nier-a2.png differ diff --git a/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png new file mode 100644 index 0000000..6ed5499 Binary files /dev/null and b/airootfs/usr/share/wallpapers/melawy-linux-wallpapers/splash.png differ diff --git a/mkarchiso_last_my b/mkarchiso_last_my index 16f4161..5da3ce5 100755 --- a/mkarchiso_last_my +++ b/mkarchiso_last_my @@ -29,6 +29,7 @@ gpg_key="" gpg_sender="" iso_name="" iso_label="" +iso_uuid="" iso_publisher="" iso_application="" iso_version="" @@ -38,6 +39,7 @@ pacman_conf="" packages="" bootstrap_packages="" pacstrap_dir="" +declare -i rm_work_dir=0 buildmodes=() bootmodes=() airootfs_image_type="" @@ -49,6 +51,7 @@ efiboot_files=() # adapted from GRUB_EARLY_INITRD_LINUX_STOCK in https://git.savannah.gnu.org/cgit/grub.git/tree/util/grub-mkconfig.in readonly ucodes=('intel-uc.img' 'intel-ucode.img' 'amd-uc.img' 'amd-ucode.img' 'early_ucode.cpio' 'microcode.cpio') + # Show an INFO message # $1: message string _msg_info() { @@ -85,7 +88,7 @@ usage: ${app_name} [options] Default: '${iso_application}' -C pacman configuration file. Default: '${pacman_conf}' - -D Set an install_dir. All files will by located here. + -D Set an install_dir. All files will be located here. Default: '${install_dir}' NOTE: Max 8 characters, use only [a-z0-9] -L