Files
kde-linux/diff
2026-02-12 09:22:44 +01:00

272 lines
11 KiB
Plaintext

diff --git a/mkosi.extra/etc/ld.so.conf.d/opt-local.conf b/mkosi.extra/etc/ld.so.conf.d/opt-local.conf
new file mode 100644
index 0000000..0b5732c
--- /dev/null
+++ b/mkosi.extra/etc/ld.so.conf.d/opt-local.conf
@@ -0,0 +1,2 @@
+/opt/local/lib
+/opt/local/lib64
diff --git a/mkosi.extra/etc/ld.so.conf.d/opt-local.conf.license b/mkosi.extra/etc/ld.so.conf.d/opt-local.conf.license
new file mode 100644
index 0000000..476b32b
--- /dev/null
+++ b/mkosi.extra/etc/ld.so.conf.d/opt-local.conf.license
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+# SPDX-FileCopyrightText: 2026 Hadi Chokr <hadichokr@icloud.com>
diff --git a/mkosi.extra/etc/man_db.conf b/mkosi.extra/etc/man_db.conf
new file mode 100644
index 0000000..01d7222
--- /dev/null
+++ b/mkosi.extra/etc/man_db.conf
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+# SPDX-FileCopyrightText: 2026 Hadi Chokr <hadichokr@icloud.com>
+#
+# man_db.conf
+#
+# This file is used by the man-db package to configure the man and cat paths.
+# It is also used to provide a manpath for those without one by examining
+# their PATH environment variable. For details see the manpath(5) man page.
+#
+# Lines beginning with `#' are comments and are ignored. Any combination of
+# tabs or spaces may be used as `whitespace' separators.
+#
+# There are three mappings allowed in this file:
+# --------------------------------------------------------
+# MANDATORY_MANPATH manpath_element
+# MANPATH_MAP path_element manpath_element
+# MANDB_MAP global_manpath [relative_catpath]
+#---------------------------------------------------------
+# every automatically generated MANPATH includes these fields
+#
+#MANDATORY_MANPATH /usr/src/pvm3/man
+#
+MANDATORY_MANPATH /usr/man
+MANDATORY_MANPATH /usr/share/man
+MANDATORY_MANPATH /opt/local/share/man
+#---------------------------------------------------------
+# set up PATH to MANPATH mapping
+# ie. what man tree holds man pages for what binary directory.
+#
+# *PATH* -> *MANPATH*
+#
+MANPATH_MAP /bin /usr/share/man
+MANPATH_MAP /usr/bin /usr/share/man
+MANPATH_MAP /sbin /usr/share/man
+MANPATH_MAP /usr/sbin /usr/share/man
+MANPATH_MAP /opt/local/bin /opt/local/man
+MANPATH_MAP /opt/local/bin /opt/local/share/man
+MANPATH_MAP /opt/local/sbin /opt/local/man
+MANPATH_MAP /opt/local/sbin /opt/local/share/man
+MANPATH_MAP /usr/X11R6/bin /opt/X11R6/man
+MANPATH_MAP /usr/bin/X11 /opt/X11R6/man
+MANPATH_MAP /usr/games /usr/share/man
+MANPATH_MAP /opt/bin /opt/man
+MANPATH_MAP /opt/sbin /opt/man
+#---------------------------------------------------------
+# For a manpath element to be treated as a system manpath (as most of those
+# above should normally be), it must be mentioned below. Each line may have
+# an optional extra string indicating the catpath associated with the
+# manpath. If no catpath string is used, the catpath will default to the
+# given manpath.
+#
+# You *must* provide all system manpaths, including manpaths for alternate
+# operating systems, locale specific manpaths, and combinations of both, if
+# they exist, otherwise the permissions of the user running man/mandb will
+# be used to manipulate the manual pages. Also, mandb will not initialise
+# the database cache for any manpaths not mentioned below unless explicitly
+# requested to do so.
+#
+# In a per-user configuration file, this directive only controls the
+# location of catpaths and the creation of database caches; it has no effect
+# on privileges.
+#
+# Any manpaths that are subdirectories of other manpaths must be mentioned
+# *before* the containing manpath. E.g. /usr/man/preformat must be listed
+# before /usr/man.
+#
+# *MANPATH* -> *CATPATH*
+#
+MANDB_MAP /usr/man /var/cache/man/fsstnd
+MANDB_MAP /usr/share/man /var/cache/man
+MANDB_MAP /opt/local/man /var/cache/man/oldlocal
+MANDB_MAP /opt/local/share/man /var/cache/man/local
+MANDB_MAP /usr/X11R6/man /var/cache/man/X11R6
+MANDB_MAP /opt/man /var/cache/man/opt
+#
+#---------------------------------------------------------
+# Program definitions. These are commented out by default as the value
+# of the definition is already the default. To change: uncomment a
+# definition and modify it.
+#
+#DEFINE pager less
+#DEFINE cat cat
+#DEFINE tr tr '\255\267\264\327' '\055\157\047\170'
+#DEFINE grep grep
+#DEFINE troff groff -mandoc
+#DEFINE nroff nroff -mandoc
+#DEFINE eqn eqn
+#DEFINE neqn neqn
+#DEFINE tbl tbl
+#DEFINE col col
+#DEFINE vgrind
+#DEFINE refer refer
+#DEFINE grap
+#DEFINE pic pic -S
+#
+#DEFINE compressor gzip -c7
+#---------------------------------------------------------
+# Misc definitions: same as program definitions above.
+#
+#DEFINE whatis_grep_flags -i
+#DEFINE apropos_grep_flags -iEw
+#DEFINE apropos_regex_grep_flags -iE
+#---------------------------------------------------------
+# Section names. Manual sections will be searched in the order listed here;
+# the default is 1, n, l, 8, 3, 0, 2, 3type, 5, 4, 9, 6, 7. Multiple SECTION
+# directives may be given for clarity, and will be concatenated together in
+# the expected way.
+# If a particular extension is not in this list (say, 1mh), it will be
+# displayed with the rest of the section it belongs to. The effect of this
+# is that you only need to explicitly list extensions if you want to force a
+# particular order. Sections with extensions should usually be adjacent to
+# their main section (e.g. "1 1mh 8 ...").
+#
+SECTION 1 1p n l 8 3 3p 0 0p 2 3type 5 4 9 6 7
+#
+#---------------------------------------------------------
+# Range of terminal widths permitted when displaying cat pages. If the
+# terminal falls outside this range, cat pages will not be created (if
+# missing) or displayed.
+#
+#MINCATWIDTH 80
+#MAXCATWIDTH 80
+#
+# If CATWIDTH is set to a non-zero number, cat pages will always be
+# formatted for a terminal of the given width, regardless of the width of
+# the terminal actually being used. This should generally be within the
+# range set by MINCATWIDTH and MAXCATWIDTH.
+#
+#CATWIDTH 0
+#
+#---------------------------------------------------------
+# Flags.
+# NOCACHE keeps man from creating cat pages.
+#NOCACHE
diff --git a/mkosi.extra/live/usr/local/bin/calamares b/mkosi.extra/live/opt/local/bin/calamares
similarity index 71%
rename from mkosi.extra/live/usr/local/bin/calamares
rename to mkosi.extra/live/opt/local/bin/calamares
index 38b29cb..2ee0f25 100755
--- a/mkosi.extra/live/usr/local/bin/calamares
+++ b/mkosi.extra/live/opt/local/bin/calamares
@@ -1,9 +1,10 @@
-#!/bin/sh
+#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2023 Harald Sitter <sitter@kde.org>
+# SPDX-FileCopyrightText: 2026 Hadi Chokr <hadichokr@icloud.com>
if [ "$(id -u)" != "0" ]; then
- exec pkexec /usr/local/bin/calamares "$@"
+ exec pkexec /opt/local/bin/calamares "$@"
fi
export KDE_FULL_SESSION=TRUE
diff --git a/mkosi.extra/usr/lib/environment.d/40-kde-linux-opt-local.conf b/mkosi.extra/usr/lib/environment.d/40-kde-linux-opt-local.conf
new file mode 100644
index 0000000..7017fd0
--- /dev/null
+++ b/mkosi.extra/usr/lib/environment.d/40-kde-linux-opt-local.conf
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+# SPDX-FileCopyrightText: 2026 Hadi Chokr <hadichokr@icloud.com>
+
+XDG_DATA_DIRS="/opt/local/share:/usr/share"
+XDG_CONFIG_DIRS="/opt/local/etc/xdg:/etc/xdg"
+PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:/opt/local/share/pkgconfig"
diff --git a/mkosi.extra/usr/lib/environment.d/40-kde-linux-path.conf b/mkosi.extra/usr/lib/environment.d/40-kde-linux-path.conf
index 3c11c9c..2ae39cc 100644
--- a/mkosi.extra/usr/lib/environment.d/40-kde-linux-path.conf
+++ b/mkosi.extra/usr/lib/environment.d/40-kde-linux-path.conf
@@ -2,7 +2,7 @@
# SPDX-FileCopyrightText: 2025 Harald Sitter <sitter@kde.org>
# SPDX-FileCopyrightText: 2026 Thomas Duckworth <tduck@filotimoproject.org>
-# Explicitly set PATH so we always have /usr/local binary paths in front, which we need
+# Explicitly set PATH so we always have /opt/local binary paths in front, which we need
# to mask binaries in /usr/bin.
# Also, kde-builder wants .local/bin in the PATH and will fail if it is not.
-PATH=$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin
+PATH=$HOME/.local/bin:/opt/local/sbin:/opt/local/bin:/usr/bin
diff --git a/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf b/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf
new file mode 100644
index 0000000..1c31dcc
--- /dev/null
+++ b/mkosi.extra/usr/lib/tmpfiles.d/usr-local.conf
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+# SPDX-FileCopyrightText: 2026 Hadi Chokr <hadichokr@icloud.com>
+
+# Local admin prefix replacing /usr/local
+
+d /opt/local 0755 root root -
+d /opt/local/bin 0755 root root -
+d /opt/local/sbin 0755 root root -
+d /opt/local/lib 0755 root root -
+d /opt/local/lib64 0755 root root -
+d /opt/local/include 0755 root root -
+d /opt/local/share 0755 root root -
+d /opt/local/share/man 0755 root root -
+d /opt/local/share/info 0755 root root -
+d /opt/local/share/doc 0755 root root -
+d /opt/local/etc 0755 root root -
+d /opt/local/games 0755 root root -
+d /opt/local/src 0755 root root -
+d /opt/local/etc/xdg 0755 root root -
+d /opt/local/lib/pkgconfig 0755 root root -
+d /opt/local/share/pkgconfig 0755 root root -
diff --git a/mkosi.extra/usr/share/polkit-1/actions/org.kde.linux.calamares.policy b/mkosi.extra/usr/share/polkit-1/actions/org.kde.linux.calamares.policy
index f227c83..a1d048b 100644
--- a/mkosi.extra/usr/share/polkit-1/actions/org.kde.linux.calamares.policy
+++ b/mkosi.extra/usr/share/polkit-1/actions/org.kde.linux.calamares.policy
@@ -19,7 +19,7 @@
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
- <annotate key="org.freedesktop.policykit.exec.path">/usr/local/bin/calamares</annotate>
+ <annotate key="org.freedesktop.policykit.exec.path">/opt/local/bin/calamares</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
diff --git a/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh b/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh
index 827e1fe..1e0cc9b 100644
--- a/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh
+++ b/mkosi.extra/usr/share/zsh/plugins/kde-linux-default/kde-linux-default-zshrc.zsh
@@ -66,6 +66,10 @@ local prompt_symbol='%(?. . %F{red}[%?]%f )%(#.#.$) '
PROMPT="${path_segment}${git_segment}${prompt_symbol}"
+# Set Prefixes to /opt/local
+export LOCAL_PREFIX=/opt/local
+export PREFIX=/opt/local
+
# Turn on completions.
autoload -U compinit
compinit
diff --git a/mkosi.finalize.d/40-core.sh.chroot b/mkosi.finalize.d/40-core.sh.chroot
index 973e39a..1ca16c7 100755
--- a/mkosi.finalize.d/40-core.sh.chroot
+++ b/mkosi.finalize.d/40-core.sh.chroot
@@ -133,6 +133,9 @@ rm -rf \
/usr/lib/modules/*/vdso \
/usr/src/*
+## Get rid of /usr/local for /opt/local
+rm -rf /usr/local
+
## Replace Falkon with Firefox as the default browser, since that's what we pre-install.
sed -i 's/org.kde.falkon.desktop/org.mozilla.firefox.desktop/' /usr/share/applications/kde-mimeapps.list