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