User Tools

Site Tools


buildroot:sddm

Table of Contents

sddm

The Simple Desktop Display Manager

Pour amorcer le fichier default.conf utiliser sddm:
/usr/bin/sddm --example-config > /usr/lib/sddm/sddm.conf.d/default.conf
sed -r 's|DefaultPath=.*|DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin|g' -i "/usr/lib/sddm/sddm.conf.d/default.conf
sed -e "/^InputMethod/s/qtvirtualkeyboard//" -i /usr/lib/sddm/sddm.conf.d/default.conf

Pré requis

runtime dependencies xapp_xauth (Graphic libraries/X11R7 Applications)
linux-pam (Libraries/Other)
qt5-declarative (Graphic libraries and applications/Other GUIs)
make dependencies extra-cmake-modules
python-docutils
qt5tools

Recette

mkdir /data/buildroot/package/sddm
cat > /data/buildroot/package/sddm/pam-faillock.patch<< 'EOF'
diff --git a/services/sddm-autologin.pam b/services/sddm-autologin.pam
index 4c82048..b42991e 100755
--- a/services/sddm-autologin.pam
+++ b/services/sddm-autologin.pam
@@ -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
EOF

cat > /data/buildroot/package/sddm/sddm-fix-build.patch<< 'EOF'
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() {
EOF

cat > /data/buildroot/package/sddm/sddm.sysusers<< 'EOF'
u sddm - "Simple Desktop Display Manager" /var/lib/sddm
m sddm video
EOF

cat > /data/buildroot/package/sddm/sddm.tmpfiles<< 'EOF'
d /var/lib/sddm 0755 sddm sddm
EOF

cat > /data/buildroot/package/sddm/Config.in<< 'EOF'
config BR2_PACKAGE_SDDM
        bool "sddm"
        depends on BR2_PACKAGE_LINUX_PAM
        depends on BR2_PACKAGE_XAPP_XAUTH
        depends on BR2_PACKAGE_QT5DECLARATIVE
        depends on BR2_PACKAGE_QT5TOOLS
        help
          The Simple Desktop Display Managerl
EOF

cat > /data/buildroot/package/sddm/sddm.mk<< 'EOF'
#############################################################
#
# sddm
#https://github.com/sddm/sddm/archive/refs/tags/v0.19.0.tar.gz
#############################################################
SDDM_VERSION = 0.19.0
SDDM_SOURCE  = v$(SDDM_VERSION).tar.gz
SDDM_SITE    = https://github.com/sddm/sddm/archive/refs/tags

SDDM_DEPENDENCIES = xapp_xauth qt5declarative qt5tools linux-pam
SDDM_INSTALL_TARGET = YES
SDDM_SUPPORTS_IN_SOURCE_BUILD = NO 

SDDM_CONF_OPTS = -DCMAKE_TOOLCHAIN_FILE=$(HOST_DIR)/share/buildroot/toolchainfile.cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \
    -DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \
    -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf
        
define SDDM_CONFIGURE_CMDS
  if [[ ! -L "$(HOST_DIR)/usr/lib/libpcre.so.3" ]]; then ln -s $(HOST_DIR)/usr/lib/libpcre.so $(HOST_DIR)/usr/lib/libpcre.so.3; fi
  if [[ ! -d $(@D)/buildroot-build ]]; then mkdir $(@D)/buildroot-build; fi
  cd $(@D)/buildroot-build && \
  LDFLAGS="$(LDFLAGS) -pthread -Wl,--as-needed -Wl,--allow-shlib-undefined" cmake "$(@D)/" $(SDDM_CONF_OPTS)
endef

define SDDM_INSTALL_TARGET_CMDS
  cd $(@D)/buildroot-build && \
  make DESTDIR="$(TARGET_DIR)" install		
  rm -rf $(TARGET_DIR)//data/
  install -Dm644 /data/buildroot/package/sddm/sddm.sysusers "${TARGET_DIR}"/usr/lib/sysusers.d/sddm.conf
  install -Dm644 /data/buildroot/package/sddm/sddm.tmpfiles "${TARGET_DIR}"/usr/lib/tmpfiles.d/sddm.conf
  install -d "${TARGET_DIR}"/usr/lib/sddm/sddm.conf.d
endef

$(eval $(cmake-package))
EOF

sed -i '/menu "Custom packages"/a source "package/sddm/Config.in"' /data/buildroot/package/Config.in
buildroot/sddm.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1