diff --git a/x11/hyprlock/Makefile b/x11/hyprlock/Makefile index 44c4ca38cdd5..44cc0508700c 100644 --- a/x11/hyprlock/Makefile +++ b/x11/hyprlock/Makefile @@ -1,67 +1,66 @@ PORTNAME= hyprlock DISTVERSIONPREFIX= v DISTVERSION= 0.1.0 CATEGORIES= x11 wayland +PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ +PATCHFILES+= fa2a875e339a.patch:-p1 # https://github.com/hyprwm/hyprlock/pull/115 + MAINTAINER= jbeich@FreeBSD.org COMMENT= Hyprland's GPU-accelerated screen locking utility #' WWW= https://github.com/hyprwm/hyprlock LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libdrm.so:graphics/libdrm \ libwayland-client.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon RUN_DEPENDS= unix-selfauth-helper>0:security/unix-selfauth-helper USES= compiler:c++11-lib cmake gl gnome pkgconfig USE_GITHUB= yes USE_GL= egl gbm USE_GNOME= cairo pango GH_ACCOUNT= hyprwm LDFLAGS+= -Wl,--as-needed # pango deps PLIST_FILES= bin/${PORTNAME} \ etc/pam.d/${PORTNAME} # XXX Drop after FreeBSD 14.0 EOL around 2025-03-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif # XXX Drop after FreeBSD 13.3 EOL around 2025-07-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__chrono/time_zone.h) LIB_DEPENDS+= libdate-tz.so:devel/date USES+= localbase:ldflags .endif -post-install: - ${INSTALL_DATA} ${WRKSRC}/pam/${PORTNAME} \ - ${STAGEDIR}${PREFIX}/etc/pam.d/${PORTNAME} - # XXX Drop after FreeBSD 13.2 EOL around 2024-05-01 (don't forget distinfo) .if ${CXX} == c++ && exists(/usr/lib/libc++.so) .if !exists(/usr/include/c++/v1/expected) || make(makesum) || make(fetch) USES+= llvm:min=16,build,export PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" # XXX Move into separate port and standardize via USES GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 # Don't link against new libc++ as it's not necessary #LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt pre-configure: bundled-libcxx bundled-libcxx: @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build .endif .endif # exists(/usr/lib/libc++.so) .include diff --git a/x11/hyprlock/distinfo b/x11/hyprlock/distinfo index 573354f71dc6..fe97d431fc32 100644 --- a/x11/hyprlock/distinfo +++ b/x11/hyprlock/distinfo @@ -1,5 +1,7 @@ TIMESTAMP = 1708907599 SHA256 (hyprwm-hyprlock-v0.1.0_GH0.tar.gz) = 5d0e6547ac073c78e95d4f086a258e1e5713168827c38ccb2466f2c4d96bd1df SIZE (hyprwm-hyprlock-v0.1.0_GH0.tar.gz) = 49582 SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 +SHA256 (fa2a875e339a.patch) = 51dea8716b4b2b0371b0380e904f9fd0d7b0a35d5527dbe52c0fb86831ea0871 +SIZE (fa2a875e339a.patch) = 1973 diff --git a/x11/hyprlock/files/patch-pam b/x11/hyprlock/files/patch-pam deleted file mode 100644 index 044b0af3a847..000000000000 --- a/x11/hyprlock/files/patch-pam +++ /dev/null @@ -1,21 +0,0 @@ -"su" has "auth sufficient pam_self.so" but a screen locker is -supposed to ask for password regardless. - -pam_unix(8) requires root priveleges to access master.passwd(5), -so try authenticating via setuid helper first. - ---- pam/hyprlock.orig 1970-01-01 00:00:00 UTC -+++ pam/hyprlock -@@ -0,0 +1 @@ -+auth include unix-selfauth ---- src/core/Password.cpp.orig 2024-02-23 21:29:08 UTC -+++ src/core/Password.cpp -@@ -30,7 +30,7 @@ std::shared_ptr CPassw - const pam_conv localConv = {conv, NULL}; - pam_handle_t* handle = NULL; - -- int ret = pam_start("su", getlogin(), &localConv, &handle); -+ int ret = pam_start("hyprlock", getlogin(), &localConv, &handle); - - if (ret != PAM_SUCCESS) { - result->success = false; diff --git a/x11/hyprlock/files/patch-pam_hyprlock b/x11/hyprlock/files/patch-pam_hyprlock new file mode 100644 index 000000000000..a3e78966d632 --- /dev/null +++ b/x11/hyprlock/files/patch-pam_hyprlock @@ -0,0 +1,16 @@ +"login" has "auth sufficient pam_self.so" but a screen locker is +supposed to ask for password regardless. + +pam_unix(8) requires root priveleges to access master.passwd(5), +so try authenticating via setuid helper first. + +--- pam/hyprlock.orig 2024-03-01 23:49:44 UTC ++++ pam/hyprlock +@@ -1,5 +1,4 @@ +-# PAM configuration file for hyprlock +-# the 'login' configuration file (see /etc/pam.d/login) ++# PAM configuration for hyprlock. Only uses auth facilities. + +-auth include login ++auth include unix-selfauth +