From b722d19312034cd4104195a880e9b318134d601c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berk=20=C3=87akar?= Date: Sun, 6 Jun 2021 21:09:25 +0300 Subject: [PATCH] PAM & PAM-related packages renewed --- .../kde/plasma/plasma-workspace/comar/kde.pam | 17 +- .../plasma/plasma-workspace/files/kde-np.pam | 15 +- .../kde/plasma/plasma-workspace/files/kde.pam | 18 +- .../plasma-workspace/files/kscreensaver.pam | 6 + desktop/kde/plasma/plasma-workspace/pspec.xml | 18 +- desktop/misc/lightdm/actions.py | 17 +- desktop/misc/lightdm/comar/package.py | 9 +- .../files/lightdm-default-config.patch | 2 +- desktop/misc/lightdm/pspec.xml | 26 +- desktop/misc/lxdm/actions.py | 10 +- ...atch => customization-for-pisilinux.patch} | 0 desktop/misc/lxdm/files/lxdm | 15 + desktop/misc/lxdm/pspec.xml | 31 +- desktop/misc/sddm/actions.py | 18 +- .../misc/sddm/files/0002-sddm-fix-build.patch | 15 + .../files/sddm-0.19.0-consolidate-1.patch | 327 ++++++++++++++++++ desktop/misc/sddm/files/sddm-autologin | 2 +- desktop/misc/sddm/pspec.xml | 20 +- server/openssh/actions.py | 33 +- server/openssh/pspec.xml | 11 +- server/postfix/pspec.xml | 17 +- system/auth/elogind/actions.py | 13 +- system/auth/elogind/files/elogind-user | 21 +- system/auth/elogind/pspec.xml | 25 +- util/admin/sudo/actions.py | 3 +- util/admin/sudo/comar/package.py | 2 +- util/admin/sudo/files/sudo.pamd | 20 +- util/admin/sudo/pspec.xml | 11 +- x11/misc/xdm/files/xdm.pam.d | 17 +- 29 files changed, 607 insertions(+), 132 deletions(-) create mode 100644 desktop/kde/plasma/plasma-workspace/files/kscreensaver.pam rename desktop/misc/lxdm/files/{customizetion_for_pisilinux.patch => customization-for-pisilinux.patch} (100%) create mode 100644 desktop/misc/lxdm/files/lxdm create mode 100644 desktop/misc/sddm/files/0002-sddm-fix-build.patch create mode 100644 desktop/misc/sddm/files/sddm-0.19.0-consolidate-1.patch diff --git a/desktop/kde/plasma/plasma-workspace/comar/kde.pam b/desktop/kde/plasma/plasma-workspace/comar/kde.pam index 1e48de3f18..0e6062d7be 100755 --- a/desktop/kde/plasma/plasma-workspace/comar/kde.pam +++ b/desktop/kde/plasma/plasma-workspace/comar/kde.pam @@ -1,6 +1,13 @@ -#%PAM-1.0 +# Begin /etc/pam.d/kde -auth include system-login -account include system-login -password include system-login -session include system-login +auth requisite pam_nologin.so +auth required pam_env.so + +auth required pam_succeed_if.so uid >= 0 quiet +auth include system-auth + +account include system-account +password include system-password +session include system-session + +# End /etc/pam.d/kde \ No newline at end of file diff --git a/desktop/kde/plasma/plasma-workspace/files/kde-np.pam b/desktop/kde/plasma/plasma-workspace/files/kde-np.pam index dd7d52f2f4..49d739c365 100755 --- a/desktop/kde/plasma/plasma-workspace/files/kde-np.pam +++ b/desktop/kde/plasma/plasma-workspace/files/kde-np.pam @@ -1,10 +1,13 @@ -#%PAM-1.0 +# Begin /etc/pam.d/kde-np -auth required pam_nologin.so -auth required pam_permit.so +auth requisite pam_nologin.so +auth required pam_env.so -account include system-auth +auth required pam_succeed_if.so uid >= 0 quiet +auth required pam_permit.so -password include system-auth +account include system-account +password include system-password +session include system-session -session include system-auth +# End /etc/pam.d/kde-np \ No newline at end of file diff --git a/desktop/kde/plasma/plasma-workspace/files/kde.pam b/desktop/kde/plasma/plasma-workspace/files/kde.pam index 9e75165907..0e6062d7be 100755 --- a/desktop/kde/plasma/plasma-workspace/files/kde.pam +++ b/desktop/kde/plasma/plasma-workspace/files/kde.pam @@ -1,7 +1,13 @@ -#%PAM-1.0 +# Begin /etc/pam.d/kde -auth include system-auth -auth required pam_nologin.so -account include system-auth -password include system-auth -session include system-auth +auth requisite pam_nologin.so +auth required pam_env.so + +auth required pam_succeed_if.so uid >= 0 quiet +auth include system-auth + +account include system-account +password include system-password +session include system-session + +# End /etc/pam.d/kde \ No newline at end of file diff --git a/desktop/kde/plasma/plasma-workspace/files/kscreensaver.pam b/desktop/kde/plasma/plasma-workspace/files/kscreensaver.pam new file mode 100644 index 0000000000..7bbec6598a --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/files/kscreensaver.pam @@ -0,0 +1,6 @@ +# Begin /etc/pam.d/kscreensaver + +auth include system-auth +account include system-account + +# End /etc/pam.d/kscreensaver \ No newline at end of file diff --git a/desktop/kde/plasma/plasma-workspace/pspec.xml b/desktop/kde/plasma/plasma-workspace/pspec.xml index 50af14b0e5..cb63160868 100644 --- a/desktop/kde/plasma/plasma-workspace/pspec.xml +++ b/desktop/kde/plasma/plasma-workspace/pspec.xml @@ -81,7 +81,7 @@ networkmanager-qt-devel kwin-devel qt5-sql-odbc - qt5-sql-mysql + qt5-sql-mysql qt5-base-devel qt5-sql-sqlite libkscreen-devel @@ -93,7 +93,7 @@ qt5-graphicaleffects qt5-declarative-devel qt5-virtualkeyboard-devel - + gpsd-devel libXft-devel qt5-svg-devel @@ -132,7 +132,7 @@ kquickcharts - + @@ -203,7 +203,7 @@ qt5-base qt5-x11extras qt5-declarative - + gpsd kparts libXft @@ -224,7 +224,7 @@ /etc/xdg /usr/share /usr/share/applications - /usr/share/locale + /usr/share/locale /usr/bin /usr/lib/qt5/plugins /usr/lib/qt5/qml @@ -234,6 +234,7 @@ kde.pam kde-np.pam + kscreensaver.pam @@ -335,6 +336,13 @@ + + 2021-06-05 + 5.21.5 + Rebuild. + Berk Çakar + berk2238@hotmail.com + 2021-05-05 5.21.5 diff --git a/desktop/misc/lightdm/actions.py b/desktop/misc/lightdm/actions.py index a1e7d90387..bb492e52aa 100644 --- a/desktop/misc/lightdm/actions.py +++ b/desktop/misc/lightdm/actions.py @@ -1,31 +1,38 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -# +# # Licensed under the GNU General Public License, version 3. # See the file http://www.gnu.org/copyleft/gpl.txt from pisi.actionsapi import autotools from pisi.actionsapi import get from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools def setup(): - # shelltools.export("MOC5", "moc-qt5") + #shelltools.export("MOC5", "moc-qt5") + shelltools.system("sed -i s/systemd/elogind/ data/pam/*") autotools.configure("--prefix=/usr \ --localstatedir=/var \ --sysconfdir=/etc \ --sbindir=/usr/bin \ - --libexecdir=/usr/lib \ + --libexecdir=/usr/lib/lightdm \ --disable-static \ --disable-tests \ --enable-liblightdm-qt5 \ --with-greeter-user=lightdm \ --with-greeter-session=pisi-lightdm-greeter") - - + + def build(): autotools.make() def install(): autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + shelltools.system("cp tests/src/lightdm-session " + get.installDIR() + "/usr/bin") + shelltools.system("sed -i '1 s/sh/bash --login/' " + get.installDIR() + "/usr/bin/lightdm-session") + + pisitools.removeDir("/etc/init") + pisitools.remove("/usr/lib/liblightdm-gobject-1.la") \ No newline at end of file diff --git a/desktop/misc/lightdm/comar/package.py b/desktop/misc/lightdm/comar/package.py index c018298df9..64a829483d 100644 --- a/desktop/misc/lightdm/comar/package.py +++ b/desktop/misc/lightdm/comar/package.py @@ -19,7 +19,6 @@ def postInstall(fromVersion, fromRelease, toVersion, toRelease): except: pass - if not os.path.exists(Cache): os.makedirs(Cache, mode=0755) @@ -28,20 +27,20 @@ def postInstall(fromVersion, fromRelease, toVersion, toRelease): os.makedirs(Libdir, mode=0770) os.system("chown -R lightdm:lightdm /var/lib/lightdm-data") - + if not os.path.exists(Libdir1): os.makedirs(Libdir1, mode=0770) os.system("chown -R lightdm:lightdm /var/lib/lightdm") - + if not os.path.exists(Logdir): os.makedirs(Logdir, mode=0711) os.system("/bin/chgrp -R lightdm /var/log/lightdm") - os.system("chmod +t /var/{cache/lightdm,lib/lightdm{,-data}}") + os.system("chmod 755 /var/{cache/lightdm,lib/lightdm{,-data}}") def postRemove(): try: os.system ("userdel %s" % OUR_NAME) os.system ("groupdel %s" % OUR_NAME) except: - pass + pass diff --git a/desktop/misc/lightdm/files/lightdm-default-config.patch b/desktop/misc/lightdm/files/lightdm-default-config.patch index 88a521b4e0..bd0f74a698 100644 --- a/desktop/misc/lightdm/files/lightdm-default-config.patch +++ b/desktop/misc/lightdm/files/lightdm-default-config.patch @@ -15,7 +15,7 @@ diff -Nuar a/data/lightdm.conf b/data/lightdm.conf #allow-guest=true #guest-session= -#session-wrapper=lightdm-session -+session-wrapper=/usr/bin/wrapper ++#session-wrapper=/usr/bin/wrapper #greeter-wrapper= #guest-wrapper= #display-setup-script= diff --git a/desktop/misc/lightdm/pspec.xml b/desktop/misc/lightdm/pspec.xml index b74690d32e..08f95e48ba 100644 --- a/desktop/misc/lightdm/pspec.xml +++ b/desktop/misc/lightdm/pspec.xml @@ -27,10 +27,13 @@ libxcb-devel libXdmcp-devel qt5-base-devel + vala-devel + libpcre-devel + accountsservice-devel lightdm-default-config.patch - lightdm-pam_systemd-disable.patch + @@ -56,7 +59,7 @@ /usr/bin /usr/lib/liblightdm-gobject-1.so* /usr/libexec - /usr/lib/lightdm-guest-session + /usr/lib/lightdm/lightdm-guest-session /usr/lib/tmpfiles.d /usr/lib/girepository-1.0 /usr/share/accountsservice @@ -67,21 +70,20 @@ /usr/share/locale /usr/share/man /usr/share/polkit-1 - /usr/share/vala - + System.Service System.Package - + lightdm-devel LightDM is a cross-desktop display manager. @@ -95,9 +97,10 @@ /usr/include/lightdm-gobject-1 /usr/lib/pkgconfig/liblightdm-gobject-1.pc /usr/share/gir-1.0 + /usr/share/vala - + liblightdm-qt5 Qt5 library for LightDM. @@ -110,7 +113,7 @@ /usr/lib/liblightdm-qt5-3.so* - + liblightdm-qt5-devel LightDM is a cross-desktop display manager. @@ -126,6 +129,13 @@ + + 2021-06-05 + 1.30.0 + Rebuild. + Berk Çakar + berk2238@hotmail.com + 2021-05-04 1.30.0 diff --git a/desktop/misc/lxdm/actions.py b/desktop/misc/lxdm/actions.py index 6296a4030d..5b137f1605 100644 --- a/desktop/misc/lxdm/actions.py +++ b/desktop/misc/lxdm/actions.py @@ -11,10 +11,12 @@ from pisi.actionsapi import shelltools def setup(): autotools.autoreconf("-fiv") #shelltools.system("./autogen.sh") - autotools.configure("--prefix=/usr \ - --sysconfdir=/etc \ - --with-pam \ - --enable-gtk3") + autotools.configure("--prefix=/usr \ + --sysconfdir=/etc \ + --with-pam \ + --enable-gtk3 \ + --disable-consolekit \ + --with-systemdsystemunitdir=no") def build(): autotools.make() diff --git a/desktop/misc/lxdm/files/customizetion_for_pisilinux.patch b/desktop/misc/lxdm/files/customization-for-pisilinux.patch similarity index 100% rename from desktop/misc/lxdm/files/customizetion_for_pisilinux.patch rename to desktop/misc/lxdm/files/customization-for-pisilinux.patch diff --git a/desktop/misc/lxdm/files/lxdm b/desktop/misc/lxdm/files/lxdm new file mode 100644 index 0000000000..f6abafecd9 --- /dev/null +++ b/desktop/misc/lxdm/files/lxdm @@ -0,0 +1,15 @@ +# Begin /etc/pam.d/lxdm + +auth requisite pam_nologin.so +auth required pam_env.so +auth required pam_succeed_if.so uid >= 0 quiet +auth include system-auth + +account include system-account + +password include system-password + +session required pam_limits.so +session include system-session + +# End /etc/pam.d/lxdm \ No newline at end of file diff --git a/desktop/misc/lxdm/pspec.xml b/desktop/misc/lxdm/pspec.xml index 997a2fe18f..ec7dc7173c 100644 --- a/desktop/misc/lxdm/pspec.xml +++ b/desktop/misc/lxdm/pspec.xml @@ -19,24 +19,24 @@ intltool iso-codes-devel gtk3-devel + gettext-devel + pam-devel + elogind-devel cairo-devel pango-devel dbus-devel - glib2-devel - gettext-devel + glib2-devel> libX11-devel libxcb-devel - ConsoleKit-devel - pam-devel gdk-pixbuf-devel at-spi2-atk-devel at-spi2-core-devel onscreenkeyboard.patch - customizetion_for_pisilinux.patch + customization-for-pisilinux.patch lxdm-0.5.3-upstream-fixes.patch - lxdm-0.5.3-pam_console_selinux-disable.patch + @@ -55,12 +55,11 @@ gtk3 cairo pango - gdk-pixbuf - dbus glib2 + gdk-pixbuf libX11 libxcb - ConsoleKit + elogind /etc @@ -72,7 +71,8 @@ /etc/conf.d/xdm - lxdm.desktop + lxdm.desktop + lxdm System.Service @@ -80,20 +80,27 @@ + + 2021-06-04 + 0.5.3 + LXDM rebuild + Berk Çakar + berk2238@hotmail.com + 2021-02-11 0.5.3 Added new pisilinux theme Ayhan Yalçınsoy ayhanyalcinsoy@pisilinux.org - + 2021-02-10 0.5.3 Added new pisilinux theme Ayhan Yalçınsoy ayhanyalcinsoy@pisilinux.org - + 2019-04-21 0.5.3 diff --git a/desktop/misc/sddm/actions.py b/desktop/misc/sddm/actions.py index 1e34f75e8f..5bafff554b 100644 --- a/desktop/misc/sddm/actions.py +++ b/desktop/misc/sddm/actions.py @@ -12,16 +12,14 @@ from pisi.actionsapi import get def setup(): #shelltools.export("PYTHON", "/usr/bin/python3") shelltools.makedirs("build") - shelltools.cd("build") - + shelltools.cd("build") + cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DUSE_QT5=ON \ - -DNO_SYSTEMD=ON \ - -DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \ -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \ - -DUSE_WAYLAND=ON \ + -DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \ + -DNO_SYSTEMD=ON \ + -DUSE_ELOGIND=ON \ -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \ -DBUILD_MAN_PAGES=ON", sourceDir=".." ) @@ -36,10 +34,12 @@ def install(): shelltools.cd("build") cmaketools.install() - + + shelltools.system('sed -i "s@system-local-login@system-login@" ' + get.installDIR() + "/etc/pam.d/sddm-autologin") + pisitools.insinto("/usr/share/sddm/themes/Sweet-Cat", "../Sweet-Cat-0.1/*") pisitools.dodoc("../LICENSE") - + ## If you don't like to see any character at all not even while being entered set this to true. pisitools.dosed("%s/usr/share/sddm/themes/Sweet-Cat/theme.conf" % get.installDIR(), 'ForceHideCompletePassword="false"', 'ForceHideCompletePassword="true"') diff --git a/desktop/misc/sddm/files/0002-sddm-fix-build.patch b/desktop/misc/sddm/files/0002-sddm-fix-build.patch new file mode 100644 index 0000000000..e0b0fc71a6 --- /dev/null +++ b/desktop/misc/sddm/files/0002-sddm-fix-build.patch @@ -0,0 +1,15 @@ +Fixes a build issue with the latest Qt 5.15 patches + +diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp +index 5f93a1b..d5f29a9 100644 +--- a/src/daemon/XorgDisplayServer.cpp ++++ b/src/daemon/XorgDisplayServer.cpp +@@ -65,7 +65,7 @@ namespace SDDM { + // create a random hexadecimal number + const char *digits = "0123456789abcdef"; + for (int i = 0; i < 32; ++i) +- m_cookie[i] = digits[dis(gen)]; ++ m_cookie[i] = QLatin1Char(digits[dis(gen)]); + } + + XorgDisplayServer::~XorgDisplayServer() { diff --git a/desktop/misc/sddm/files/sddm-0.19.0-consolidate-1.patch b/desktop/misc/sddm/files/sddm-0.19.0-consolidate-1.patch new file mode 100644 index 0000000000..941cec6308 --- /dev/null +++ b/desktop/misc/sddm/files/sddm-0.19.0-consolidate-1.patch @@ -0,0 +1,327 @@ +diff -Naur a/data/scripts/Xsession b/data/scripts/Xsession +--- a/data/scripts/Xsession 2020-11-03 10:55:31.000000000 +0100 ++++ b/data/scripts/Xsession 2021-04-03 18:59:31.051127925 +0200 +@@ -62,7 +62,10 @@ + fi + done + fi +- ++if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; ++then ++ eval "$(dbus-launch --sh-syntax --exit-with-session)" ++fi + # Load Xsession scripts + # OPTIONFILE, USERXSESSION, USERXSESSIONRC and ALTUSERXSESSION are required + # by the scripts to work +diff -Naur a/services/sddm-autologin.pam b/services/sddm-autologin.pam +--- a/services/sddm-autologin.pam 2020-11-03 10:55:31.000000000 +0100 ++++ b/services/sddm-autologin.pam 2021-04-03 19:02:11.514619253 +0200 +@@ -1,6 +1,6 @@ + #%PAM-1.0 + auth required pam_env.so +-auth required pam_tally2.so file=/var/log/tallylog onerr=succeed ++auth required pam_faillock.so preauth + auth required pam_shells.so + auth required pam_nologin.so + auth required pam_permit.so +diff -Naur a/src/common/Session.cpp b/src/common/Session.cpp +--- a/src/common/Session.cpp 2020-11-03 10:55:31.000000000 +0100 ++++ b/src/common/Session.cpp 2021-04-03 19:00:30.843278097 +0200 +@@ -89,7 +89,7 @@ + + QString Session::desktopSession() const + { +- return fileName().replace(s_entryExtention, QString()); ++ return QFileInfo(m_fileName).completeBaseName(); + } + + QString Session::desktopNames() const +diff -Naur a/src/daemon/Seat.cpp b/src/daemon/Seat.cpp +--- a/src/daemon/Seat.cpp 2020-11-03 10:55:31.000000000 +0100 ++++ b/src/daemon/Seat.cpp 2021-04-03 19:00:20.073491217 +0200 +@@ -28,6 +28,7 @@ + + #include + #include ++#include + + #include + +@@ -52,7 +53,7 @@ + return m_name; + } + +- bool Seat::createDisplay(int terminalId) { ++ void Seat::createDisplay(int terminalId) { + //reload config if needed + mainConfig.load(); + +@@ -84,12 +85,24 @@ + m_displays << display; + + // start the display +- if (!display->start()) { +- qCritical() << "Could not start Display server on vt" << terminalId; +- return false; ++ startDisplay(display); ++ } ++ ++ void Seat::startDisplay(Display *display, int tryNr) { ++ if (display->start()) ++ return; ++ ++ // It's possible that the system isn't ready yet (driver not loaded, ++ // device not enumerated, ...). It's not possible to tell when that changes, ++ // so try a few times with a delay in between. ++ qWarning() << "Attempt" << tryNr << "starting the Display server on vt" << display->terminalId() << "failed"; ++ ++ if(tryNr >= 3) { ++ qCritical() << "Could not start Display server on vt" << display->terminalId(); ++ return; + } + +- return true; ++ QTimer::singleShot(2000, display, [=] { startDisplay(display, tryNr + 1); }); + } + + void Seat::removeDisplay(Display* display) { +diff -Naur a/src/daemon/Seat.h b/src/daemon/Seat.h +--- a/src/daemon/Seat.h 2020-11-03 10:55:31.000000000 +0100 ++++ b/src/daemon/Seat.h 2021-04-03 19:00:20.073491217 +0200 +@@ -35,13 +35,15 @@ + const QString &name() const; + + public slots: +- bool createDisplay(int terminalId = -1); ++ void createDisplay(int terminalId = -1); + void removeDisplay(SDDM::Display* display); + + private slots: + void displayStopped(); + + private: ++ void startDisplay(SDDM::Display *display, int tryNr = 1); ++ + QString m_name; + + QVector m_displays; +diff -Naur a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp +--- a/src/daemon/XorgDisplayServer.cpp 2020-11-03 10:55:31.000000000 +0100 ++++ b/src/daemon/XorgDisplayServer.cpp 2021-04-03 19:00:20.076824484 +0200 +@@ -118,6 +118,11 @@ + if (m_started) + return false; + ++ if (process) { ++ qCritical() << "Tried to start Xorg before previous instance exited"; ++ return false; ++ } ++ + // create process + process = new QProcess(this); + +@@ -136,106 +141,97 @@ + return false; + } + +- if (daemonApp->testing()) { +- QStringList args; +- QDir x11socketDir(QStringLiteral("/tmp/.X11-unix")); +- int display = 100; +- while (x11socketDir.exists(QStringLiteral("X%1").arg(display))) { +- ++display; +- } +- m_display = QStringLiteral(":%1").arg(display); +- args << m_display << QStringLiteral("-auth") << m_authPath << QStringLiteral("-br") << QStringLiteral("-noreset") << QStringLiteral("-screen") << QStringLiteral("800x600"); +- process->start(mainConfig.X11.XephyrPath.get(), args); +- +- +- // wait for display server to start +- if (!process->waitForStarted()) { +- // log message +- qCritical() << "Failed to start display server process."; +- +- // return fail +- return false; +- } +- emit started(); +- } else { +- // set process environment +- QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); +- env.insert(QStringLiteral("XCURSOR_THEME"), mainConfig.Theme.CursorTheme.get()); +- process->setProcessEnvironment(env); +- +- //create pipe for communicating with X server +- //0 == read from X, 1== write to from X +- int pipeFds[2]; +- if (pipe(pipeFds) != 0) { +- qCritical("Could not create pipe to start X server"); +- } ++ // set process environment ++ QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); ++ env.insert(QStringLiteral("XCURSOR_THEME"), mainConfig.Theme.CursorTheme.get()); ++ process->setProcessEnvironment(env); ++ ++ //create pipe for communicating with X server ++ //0 == read from X, 1== write to from X ++ int pipeFds[2]; ++ if (pipe(pipeFds) != 0) { ++ qCritical("Could not create pipe to start X server"); ++ } + +- // start display server +- QStringList args = mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts); +- args << QStringLiteral("-auth") << m_authPath ++ // start display server ++ QStringList args; ++ if (!daemonApp->testing()) { ++ process->setProgram(mainConfig.X11.ServerPath.get()); ++ args << mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts) + << QStringLiteral("-background") << QStringLiteral("none") +- << QStringLiteral("-noreset") +- << QStringLiteral("-displayfd") << QString::number(pipeFds[1]) + << QStringLiteral("-seat") << displayPtr()->seat()->name(); + + if (displayPtr()->seat()->name() == QLatin1String("seat0")) { + args << QStringLiteral("vt%1").arg(displayPtr()->terminalId()); + } +- qDebug() << "Running:" +- << qPrintable(mainConfig.X11.ServerPath.get()) +- << qPrintable(args.join(QLatin1Char(' '))); +- process->start(mainConfig.X11.ServerPath.get(), args); +- +- // wait for display server to start +- if (!process->waitForStarted()) { +- // log message +- qCritical() << "Failed to start display server process."; +- +- // return fail +- close(pipeFds[0]); +- return false; +- } ++ } else { ++ process->setProgram(mainConfig.X11.XephyrPath.get()); ++ args << QStringLiteral("-br") ++ << QStringLiteral("-screen") << QStringLiteral("800x600"); ++ } + +- // close the other side of pipe in our process, otherwise reading +- // from it may stuck even X server exit. +- close(pipeFds[1]); ++ args << QStringLiteral("-auth") << m_authPath ++ << QStringLiteral("-noreset") ++ << QStringLiteral("-displayfd") << QString::number(pipeFds[1]); ++ ++ process->setArguments(args); ++ qDebug() << "Running:" ++ << qPrintable(process->program()) ++ << qPrintable(process->arguments().join(QLatin1Char(' '))); ++ process->start(); ++ ++ // wait for display server to start ++ if (!process->waitForStarted()) { ++ // log message ++ qCritical() << "Failed to start display server process."; + +- QFile readPipe; ++ // return fail ++ close(pipeFds[0]); ++ return false; ++ } + +- if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) { +- qCritical("Failed to open pipe to start X Server"); ++ // close the other side of pipe in our process, otherwise reading ++ // from it may stuck even X server exit. ++ close(pipeFds[1]); + +- close(pipeFds[0]); +- return false; +- } +- QByteArray displayNumber = readPipe.readLine(); +- if (displayNumber.size() < 2) { +- // X server gave nothing (or a whitespace). +- qCritical("Failed to read display number from pipe"); ++ QFile readPipe; + +- close(pipeFds[0]); +- return false; +- } +- displayNumber.prepend(QByteArray(":")); +- displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace +- m_display = QString::fromLocal8Bit(displayNumber); ++ if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) { ++ qCritical("Failed to open pipe to start X Server"); + +- // close our pipe + close(pipeFds[0]); ++ stop(); ++ return false; ++ } ++ QByteArray displayNumber = readPipe.readLine(); ++ if (displayNumber.size() < 2) { ++ // X server gave nothing (or a whitespace). ++ qCritical("Failed to read display number from pipe"); + +- emit started(); ++ close(pipeFds[0]); ++ stop(); ++ return false; + } ++ displayNumber.prepend(QByteArray(":")); ++ displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace ++ m_display = QString::fromLocal8Bit(displayNumber); ++ ++ // close our pipe ++ close(pipeFds[0]); + + // The file is also used by the greeter, which does care about the + // display number. Write the proper entry, if it's different. + if(m_display != QStringLiteral(":0")) { + if(!addCookie(m_authPath)) { + qCritical() << "Failed to write xauth file"; ++ stop(); + return false; + } + } + changeOwner(m_authPath); + ++ emit started(); ++ + // set flag + m_started = true; + +@@ -244,8 +240,7 @@ + } + + void XorgDisplayServer::stop() { +- // check flag +- if (!m_started) ++ if (!process) + return; + + // log message +@@ -260,6 +255,12 @@ + } + + void XorgDisplayServer::finished() { ++ // clean up ++ if (process) { ++ process->deleteLater(); ++ process = nullptr; ++ } ++ + // check flag + if (!m_started) + return; +@@ -295,10 +296,6 @@ + displayStopScript->deleteLater(); + displayStopScript = nullptr; + +- // clean up +- process->deleteLater(); +- process = nullptr; +- + // remove authority file + QFile::remove(m_authPath); + diff --git a/desktop/misc/sddm/files/sddm-autologin b/desktop/misc/sddm/files/sddm-autologin index 7cfd04f7be..c53b9e4a97 100644 --- a/desktop/misc/sddm/files/sddm-autologin +++ b/desktop/misc/sddm/files/sddm-autologin @@ -4,7 +4,7 @@ auth required pam_env.so auth required pam_permit.so -auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth sufficient pam_succeed_if.so uid >= 0 quiet auth required pam_deny.so account required pam_access.so diff --git a/desktop/misc/sddm/pspec.xml b/desktop/misc/sddm/pspec.xml index a074dbd7e8..65d0c15b0d 100644 --- a/desktop/misc/sddm/pspec.xml +++ b/desktop/misc/sddm/pspec.xml @@ -25,14 +25,17 @@ extra-cmake-modules docutils python-docutils + elogind-devel - - sddm-respect-user-flags.patch + + + sddm-0.19.0-consolidate-1.patch + 0002-sddm-fix-build.patch @@ -51,6 +54,7 @@ pam libgcc libxcb + elogind /etc @@ -63,8 +67,9 @@ sddm.conf - sddm + 10-backlight.rules @@ -74,6 +79,13 @@ + + 2021-06-04 + 0.19.0 + Rebuild. + Berk Çakar + berk2238@hotmail.com + 2021-01-09 0.19.0 diff --git a/server/openssh/actions.py b/server/openssh/actions.py index b258854556..06e5537f6b 100644 --- a/server/openssh/actions.py +++ b/server/openssh/actions.py @@ -16,30 +16,30 @@ def setup(): shelltools.export("LDFLAGS","%s -pie" % get.LDFLAGS()) #pisitools.dosed("pathnames.h", "/usr/X11R6/bin/xauth", r"/usr/bin/xauth") - #pisitools.dosed("sshd_config", "(?m)^(^#UsePAM ).*", r"UsePAM yes") - #pisitools.dosed("sshd_config", "(?m)^(^#PasswordAuthentication ).*", r"PasswordAuthentication no") - #pisitools.dosed("sshd_config", "(?m)^(^#X11Forwarding ).*", r"X11Forwarding yes") - #pisitools.dosed("sshd_config", "(?m)^(^#UseDNS ).*", r"UseDNS no") - #pisitools.dosed("sshd_config", "(?m)^(^#PermitRootLogin ).*", r"PermitRootLogin no") + pisitools.dosed("sshd_config", "(?m)^(^#UsePAM ).*", r"UsePAM yes") + pisitools.dosed("sshd_config", "(?m)^(^#PasswordAuthentication ).*", r"PasswordAuthentication no") + pisitools.dosed("sshd_config", "(?m)^(^#X11Forwarding ).*", r"X11Forwarding yes") + pisitools.dosed("sshd_config", "(?m)^(^#UseDNS ).*", r"UseDNS no") + pisitools.dosed("sshd_config", "(?m)^(^#PermitRootLogin ).*", r"PermitRootLogin no") autotools.autoreconf("-fi") # Kerberos support is a must, libedit is optional # Update configure parameters when both are ready - autotools.configure("--sysconfdir=/etc/ssh \ - --libexecdir=/usr/libexec/openssh \ - --datadir=/usr/share/openssh \ - --disable-strip \ + autotools.configure("--prefix=/usr \ + --sysconfdir=/etc/ssh \ + --datadir=/usr/share/sshd \ --with-pam \ --with-libedit \ --with-kerberos5 \ - --with-tcp-wrappers \ --with-md5-passwords \ --with-ipaddr-display \ --with-privsep-user=sshd \ --with-privsep-path=/var/empty \ + --with-default-path=/usr/bin \ --without-zlib-version-check \ - --without-ssl-engine") + --with-superuser-path=/sbin:/bin:/usr/sbin:/usr/bin \ + --with-pid-dir=/run") def build(): autotools.make() @@ -47,17 +47,20 @@ def build(): def install(): autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + # PAM configuration + pisitools.dodir("/etc/pam.d") + shelltools.system("sed 's@d/login@d/sshd@g' /etc/pam.d/login > " + get.installDIR() + "/etc/pam.d/sshd") + shelltools.system("chmod 644 " + get.installDIR() + "/etc/pam.d/sshd") + # fixes #10992 pisitools.dobin("contrib/ssh-copy-id") pisitools.doman("contrib/ssh-copy-id.1") - + # an script in contrib pisitools.dobin("contrib/findssl.sh") - + shelltools.chmod("%s/etc/ssh/sshd_config" % get.installDIR(), 0600) # special request by merensan shelltools.echo("%s/etc/ssh/ssh_config" % get.installDIR(), "ServerAliveInterval 5") - pisitools.dodir("/var/empty/sshd") - pisitools.dodoc("ChangeLog", "CREDITS", "OVERVIEW", "README*", "TODO", "sshd_config") diff --git a/server/openssh/pspec.xml b/server/openssh/pspec.xml index 98fdb81e33..27331ce30f 100644 --- a/server/openssh/pspec.xml +++ b/server/openssh/pspec.xml @@ -13,7 +13,7 @@ service Port of OpenBSD's free SSH release OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks. - http://ftp.icm.edu.pl/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz + https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz libedit-devel zlib-devel @@ -50,7 +50,7 @@ /usr/share/doc - sshd.pam + System.Service @@ -58,6 +58,13 @@ + + 2021-06-05 + 8.6_p1 + Version bump. + Berk Çakar + berk2238@hotmail.com + 2020-01-21 8.1_p1 diff --git a/server/postfix/pspec.xml b/server/postfix/pspec.xml index aa89f242b1..1860b233dd 100644 --- a/server/postfix/pspec.xml +++ b/server/postfix/pspec.xml @@ -12,7 +12,7 @@ service A fast and secure drop-in replacement for sendmail Postfix is Wietse Venema's mailer that started life as an alternative to the widely-used Sendmail program. - ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-3.4.6.tar.gz + ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-3.5.8.tar.gz db-devel libnsl-devel @@ -24,10 +24,10 @@ postgresql-lib mit-kerberos - + @@ -68,9 +68,9 @@ mkcert.sh aliases mailcap - smtp.pam + bounce.cf.tr @@ -91,6 +91,13 @@ + + 2021-06-05 + 3.5.8 + Version bump. + Berk Çakar + berk2238@hotmail.com + 2020-01-27 3.4.6 diff --git a/system/auth/elogind/actions.py b/system/auth/elogind/actions.py index 7630629ecd..acdbd71bb2 100644 --- a/system/auth/elogind/actions.py +++ b/system/auth/elogind/actions.py @@ -5,10 +5,13 @@ # See the file http://www.gnu.org/licenses/gpl.txt from pisi.actionsapi import mesontools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get def setup(): - mesontools.configure("-Drootlibdir=/usr/lib \ - --prefix=/usr \ + mesontools.configure("--prefix=/usr \ + -Drootlibdir=/usr/lib \ -Dpolkit=true \ -Dsplit-bin=true \ -Dsplit-usr=false \ @@ -27,4 +30,8 @@ def build(): mesontools.build() def install(): - mesontools.install() \ No newline at end of file + mesontools.install() + + shelltools.system("ln -s libelogind.pc %s/usr/lib/pkgconfig/libsystemd.pc" % get.installDIR()) + shelltools.system("ln -s libelogind.pc %s/usr/lib/pkgconfig/libsystemd-logind.pc" % get.installDIR()) + shelltools.system("ln -sr %s/usr/include/elogind %s/usr/include/systemd" % (get.installDIR(), get.installDIR())) \ No newline at end of file diff --git a/system/auth/elogind/files/elogind-user b/system/auth/elogind/files/elogind-user index 418cd2fecf..2c7cbc1d48 100644 --- a/system/auth/elogind/files/elogind-user +++ b/system/auth/elogind/files/elogind-user @@ -1,13 +1,16 @@ # Begin /etc/pam.d/elogind-user -#%PAM-1.0 -auth required pam_unix.so -auth required pam_nologin.so -account required pam_unix.so -password required pam_unix.so -session required pam_unix.so -session required pam_loginuid.so -session required pam_elogind.so +account required pam_access.so +account include system-account +session required pam_env.so +session required pam_limits.so +session required pam_unix.so +session required pam_loginuid.so +session optional pam_keyinit.so force revoke +session optional pam_elogind.so -# End /etc/pam.d/elogind-user +auth required pam_deny.so +password required pam_deny.so + +# End /etc/pam.d/elogind-user \ No newline at end of file diff --git a/system/auth/elogind/pspec.xml b/system/auth/elogind/pspec.xml index a92d526868..415b39ad12 100644 --- a/system/auth/elogind/pspec.xml +++ b/system/auth/elogind/pspec.xml @@ -35,10 +35,10 @@ libpcre2-devel bash-completion - - - + @@ -72,12 +72,12 @@ /usr/share/bash-completion - - 25-elogind.rules + tmpfiles.conf + 25-elogind.rules 25-elogind.rules elogind-user - system-login - elogind.pamd + + System.Service @@ -87,7 +87,7 @@ - + elogind-devel Development files for elogind @@ -101,6 +101,13 @@ + + 2021-06-03 + 246.10 + elogind rebuild + Berk Çakar + berk2238@hotmail.com + 2021-05-03 246.10 diff --git a/util/admin/sudo/actions.py b/util/admin/sudo/actions.py index 114c3ad372..8c3d79eefe 100644 --- a/util/admin/sudo/actions.py +++ b/util/admin/sudo/actions.py @@ -25,12 +25,13 @@ def setup(): --with-env-editor \ --with-ignore-dot \ --with-tty-tickets \ + --with-all-insults \ --with-ldap \ --enable-shell-sets-home \ --without-selinux \ --with-sendmail=/usr/sbin/sendmail \ --without-rpath") - + # fix unused direct dependency analysis pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") diff --git a/util/admin/sudo/comar/package.py b/util/admin/sudo/comar/package.py index 1cf72e25c7..a746a57871 100644 --- a/util/admin/sudo/comar/package.py +++ b/util/admin/sudo/comar/package.py @@ -5,7 +5,7 @@ import os permissions = { "/etc/sudoers" : ["0440", "root:root"], "/etc/sudoers.d" : ["0750", "root:root"], - "/var/db/sudo" : ["0700", "root:root"], + "/var/db/sudo" : ["0711", "root:root"], "/usr/bin/sudo" : ["4111", "root:root"], "/usr/bin/sudoedit" : ["4111", "root:root"], "/usr/bin/sudoreplay" : ["0111", "root:root"], diff --git a/util/admin/sudo/files/sudo.pamd b/util/admin/sudo/files/sudo.pamd index c1917a2836..7adc596a7f 100644 --- a/util/admin/sudo/files/sudo.pamd +++ b/util/admin/sudo/files/sudo.pamd @@ -1,7 +1,15 @@ -#%PAM-1.0 -auth include system-auth -account include system-auth -password include system-auth -session optional pam_keyinit.so revoke -session required pam_limits.so +# Begin /etc/pam.d/sudo +# include the default auth settings +auth include system-auth + +# include the default account settings +account include system-account + +# Set default environment variables for the service user +session required pam_env.so + +# include system session defaults +session include system-session + +# End /etc/pam.d/sudo \ No newline at end of file diff --git a/util/admin/sudo/pspec.xml b/util/admin/sudo/pspec.xml index a08b604ef1..c993cf1cb2 100644 --- a/util/admin/sudo/pspec.xml +++ b/util/admin/sudo/pspec.xml @@ -51,8 +51,8 @@ sudoers sudoers - sudo.pamd - sudo-i.pamd + sudo.pamd + sudo.tmpfiles.conf @@ -61,6 +61,13 @@ + + 2021-06-05 + 1.9.5 + Sudo rebuild. + Berk Çakar + berk2238@hotmail.com + 2021-01-27 1.9.5 diff --git a/x11/misc/xdm/files/xdm.pam.d b/x11/misc/xdm/files/xdm.pam.d index dd8789db5a..f225a0773c 100755 --- a/x11/misc/xdm/files/xdm.pam.d +++ b/x11/misc/xdm/files/xdm.pam.d @@ -1,13 +1,14 @@ -#%PAM-1.0 +# Begin /etc/pam.d/xdm -auth include system-auth -auth required pam_nologin.so +auth requisite pam_nologin.so +auth required pam_env.so +auth include system-auth -account include system-auth +account include system-account -password include system-auth +password include system-password -session include system-auth +session required pam_limits.so +session include system-session -session optional pam_console.so -session optional pam_polkit_console.so +# End /etc/pam.d/xdm \ No newline at end of file