From 73adf3206b33ba5d372d5c68785f6f54b6f8fc30 Mon Sep 17 00:00:00 2001 From: gryf Date: Tue, 31 Mar 2026 15:19:26 +0200 Subject: [PATCH] Added new version of xlockmore --- x11-misc/xlockmore/Manifest | 7 + .../files/xlockmore-5.46-freetype261.patch | 11 ++ ...xlockmore-5.71-fix-build-for-clang16.patch | 28 ++++ .../xlockmore/files/xlockmore-5.88-CXX.patch | 19 +++ .../files/xlockmore-5.88-gcc15.patch | 51 +++++++ .../files/xlockmore-5.88-strip.patch | 64 +++++++++ x11-misc/xlockmore/xlockmore-5.88.ebuild | 125 ++++++++++++++++++ 7 files changed, 305 insertions(+) create mode 100644 x11-misc/xlockmore/Manifest create mode 100644 x11-misc/xlockmore/files/xlockmore-5.46-freetype261.patch create mode 100644 x11-misc/xlockmore/files/xlockmore-5.71-fix-build-for-clang16.patch create mode 100644 x11-misc/xlockmore/files/xlockmore-5.88-CXX.patch create mode 100644 x11-misc/xlockmore/files/xlockmore-5.88-gcc15.patch create mode 100644 x11-misc/xlockmore/files/xlockmore-5.88-strip.patch create mode 100644 x11-misc/xlockmore/xlockmore-5.88.ebuild diff --git a/x11-misc/xlockmore/Manifest b/x11-misc/xlockmore/Manifest new file mode 100644 index 0000000..49b7480 --- /dev/null +++ b/x11-misc/xlockmore/Manifest @@ -0,0 +1,7 @@ +AUX xlockmore-5.46-freetype261.patch 561 BLAKE2B f5fde1a8984784a2892363b85413728b86082f8bdd3303358643bcd634a80bc6064fce930aabca92624897fddf71c0647a6202e7e0debb02b4127d275c99b57e SHA512 58b75f4509f4762f4009fce797b5f0420ac3bee79a3fa4444a90603b1522c5f60deb9a1ce94ecacb025d27ac6272f2b431075af912b121f6e5cfa541b696caca +AUX xlockmore-5.71-fix-build-for-clang16.patch 1243 BLAKE2B 23ab604a955f36464c9657a28db7f76a767838b96c4f01c4430485f020379cf83acffd89e0af69d236ce8c1d8c6b69348328ec0b1f9b669a8d2a4ebb4131670f SHA512 db5cf5dcb49cdd972ab7152f6005ad6affaec18fcc7807ccbda7a39464976d751217875ac1359750e411827f74968415e82426d9b4beb0fdf38260940439d926 +AUX xlockmore-5.88-CXX.patch 696 BLAKE2B ebbcde5c74791e91f9808339059aa4300652da9d92dc47f004b03aef671b7e29cf619df2cd3f9041cc1b2795ef5bd14020d5d680ef3e32d35276b725f9bbf8aa SHA512 1fba52c43c4b30e494112e6d5b0dec8df0d6826e05472e9fde6ed76d67fc3465c35b882ed6e94c4fcecfb4730aeecca222da2de3d253482eb009fb4fa0756b55 +AUX xlockmore-5.88-gcc15.patch 2320 BLAKE2B c4ba43c6ab8fae81af402154cf24bf58230ce7bfd270ea7833814bfa590f7987423f3add59a6d0bbeda919368141178248f76005c2b78024f2c0684a1301ea0e SHA512 bb99c3b6b6ccebd410d44a75e93e4ef18528ee3a940789229382124f3b1b4d2cbd20ccb39991b13a993c4de3c249c3fc8602ba1f68bc4a87f5bef1fb3d25fa0d +AUX xlockmore-5.88-strip.patch 2141 BLAKE2B 0a6a55938f8361eb1fa8f06c3b315c00e1ccd1c62186785e6e81c08082bf645c6d8b4e9617e1ba6411168f3f61a71da28e38f8a872c746dad93ce57e663ce1e2 SHA512 2b2c131557c7f454bb6c2bc8e00b5d53fd7459e09934a7bf9e45d0116224b684989d140cba005f5ac9f22f12270648831c3cbbae48b6e7b0014e9cb536fb319d +DIST xlockmore-5.88.tar.xz 2090620 BLAKE2B 7696956e113075ab4eb406160fbf5a3d70d0803d806b127cefe15bf1863a5e470a0ea3505a85011a7754c6179c718f23a02514ccb3c3440631612103d599f82f SHA512 88bd987c6f1e1f03e8b9de11588a00d20c399cbf83858a5ff5b3573251bb0afa135a357661483f277b187e41a8d3255379f04ad8f351d610dacc13325a3943a3 +EBUILD xlockmore-5.88.ebuild 2566 BLAKE2B 2f2f329018a07655f0075a28b8dc8d93a7b2b9c81a7313fbbd511539f4fb8adb46b758195f024e97476ecdadd2aa905d1b333d4e264acdb39a02671bd61ddca7 SHA512 5bc43670895b314df4a8818c29dcd8724a5dd26d6b1a98ce96b3142e3b43ebe4d5cb1290e03ecbeb91866e55bb71b32a0e74763f93aebb7311d0a348038911bd diff --git a/x11-misc/xlockmore/files/xlockmore-5.46-freetype261.patch b/x11-misc/xlockmore/files/xlockmore-5.46-freetype261.patch new file mode 100644 index 0000000..819708c --- /dev/null +++ b/x11-misc/xlockmore/files/xlockmore-5.46-freetype261.patch @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -1912,7 +1912,7 @@ + AC_DEFUN([AC_PATH_FREETYPE_DIRECT], + [test -z "$freetype_direct_test_library" && freetype_direct_test_library=freetype + test -z "$freetype_direct_test_function" && freetype_direct_test_function=FT_Init_FreeType +-test -z "$freetype_direct_test_include" && freetype_direct_test_include=freetype2/freetype.h ++test -z "$freetype_direct_test_include" && freetype_direct_test_include=freetype2/ft2build.h + for ac_dir in \ + /usr/X11R6.5.1/include \ + /usr/X11R6.4/include \ diff --git a/x11-misc/xlockmore/files/xlockmore-5.71-fix-build-for-clang16.patch b/x11-misc/xlockmore/files/xlockmore-5.71-fix-build-for-clang16.patch new file mode 100644 index 0000000..a6bd223 --- /dev/null +++ b/x11-misc/xlockmore/files/xlockmore-5.71-fix-build-for-clang16.patch @@ -0,0 +1,28 @@ +Clang16 will not allow assigning imcompatbile function pointer types. +Therefore this patch adds casts to the function pointers. + +Bug: https://bugs.gentoo.org/880909 +This patch has been sent to upstream via mail. + +Pascal Jäger (2022-12-07) + +--- a/xlock/vtlock_proc.c ++++ b/xlock/vtlock_proc.c +@@ -188,7 +188,7 @@ find_x_proc(int disp_nr, dev_t lxdev, ino_t lxino) + lencmd = strlen(xcmd_ref); + if ( stat( PROCDIR, &stbuf ) == -1 ) return( (pid_t)-1 ); + namelist = (struct dirent **) malloc(sizeof (struct dirent *)); +- if ((names = scan_dir(PROCDIR, &namelist, proc_dir_select, alphasort)) == -1 ) ++ if ((names = scan_dir(PROCDIR, &namelist, proc_dir_select, (int (*)(const void *, const void *))alphasort)) == -1 ) + { + free(namelist); + return( (pid_t)-1 ); +@@ -301,7 +301,7 @@ scan_x_fds( struct inode_ref *inotab, int ln_ttys, pid_t proc ) + + (void) sprintf(xfddir, PROCDIR "/%d/fd", proc); + namelist = (struct dirent **) malloc(sizeof (struct dirent *)); +- if (scan_dir(xfddir, &namelist, NULL, alphasort) == -1) { ++ if (scan_dir(xfddir, &namelist, NULL, (int (*)(const void *, const void *))alphasort) == -1) { + free(namelist); + return 0; + } diff --git a/x11-misc/xlockmore/files/xlockmore-5.88-CXX.patch b/x11-misc/xlockmore/files/xlockmore-5.88-CXX.patch new file mode 100644 index 0000000..ba81dd8 --- /dev/null +++ b/x11-misc/xlockmore/files/xlockmore-5.88-CXX.patch @@ -0,0 +1,19 @@ +--- xlockmore_orig/configure.ac 2026-03-31 14:30:19.287648907 +0200 ++++ xlockmore/configure.ac 2026-03-31 14:31:45.479457046 +0200 +@@ -71,11 +71,11 @@ + + dnl Check if C++ compiler is present. If not set CXX to the C-compiler used + dnl for the other compilations. +-if test "$CC" = gcc; then +- AC_CHECK_PROGS(CXX, $CCC g++ CC C++ c++ cxx cc++ xlC $CC, gcc) +-else +- AC_CHECK_PROGS(CXX, $CCC CC C++ g++ c++ cxx cc++ xlC $CC, gcc) +-fi ++dnl if test "$CC" = gcc; then ++dnl AC_CHECK_PROGS(CXX, $CCC g++ CC C++ c++ cxx cc++ xlC $CC, gcc) ++dnl else ++dnl AC_CHECK_PROGS(CXX, $CCC CC C++ g++ c++ cxx cc++ xlC $CC, gcc) ++dnl fi + AC_PROG_CXX + if test "${CXX}" = "xlC" ; then + CXXFLAGS="${CXXFLAGS} -+" diff --git a/x11-misc/xlockmore/files/xlockmore-5.88-gcc15.patch b/x11-misc/xlockmore/files/xlockmore-5.88-gcc15.patch new file mode 100644 index 0000000..fe751db --- /dev/null +++ b/x11-misc/xlockmore/files/xlockmore-5.88-gcc15.patch @@ -0,0 +1,51 @@ +--- xlockmore_orig/xglock/xglock.c 2026-03-31 14:30:19.287648907 +0200 ++++ xlockmore/xglock/xglock.c 2026-03-31 14:33:42.738353309 +0200 +@@ -105,6 +105,8 @@ + /*static GtkWidget *font_sel_entry =(GtkWidget *)NULL;*/ + static GtkTooltips *tooltips=(GtkTooltips *)NULL; + ++# define NeedFunctionsPrototypes 1 ++ + /* Prototypes */ + #if defined( __ANSI_C__ ) || defined( NeedFunctionsPrototypes ) + # define __PROTO( name, args ) name args +@@ -114,14 +116,14 @@ + + #define STD_CB_ARGS (GtkWidget *, gpointer) + +-static void *__PROTO( secured_malloc, (size_t) ); +-static void *__PROTO( secured_calloc, (int, size_t) ); ++static void *__PROTO( secured_malloc, (gulong) ); ++static void *__PROTO( secured_calloc, (gulong, gulong) ); + static void *__PROTO( secured_realloc, (void *, size_t) ); + static gchar *__PROTO( check_quotes, (gchar *str) ); + + static void __PROTO( mode_list_item_select_cb, STD_CB_ARGS ); + static void __PROTO( mode_list_item_unselect_cb, STD_CB_ARGS ); +-static void __PROTO( compose_xlock_command, (char *) ); ++static void __PROTO( compose_xlock_command, (gchar ***, gulong *, gulong *) ); + static void __PROTO( kill_xlock_cb, STD_CB_ARGS ); + static void __PROTO( launch_xlock, STD_CB_ARGS ); + static void __PROTO( exit_xglock, STD_CB_ARGS ); +@@ -140,7 +142,7 @@ + + static void __PROTO( file_selection_cancel_cb, STD_CB_ARGS ); + static void __PROTO( file_selection_ok_cb, STD_CB_ARGS ); +-static void __PROTO( create_file_selection_dialog, STD_CB_ARGS ); ++static void __PROTO( create_file_selection_dialog, (GtkWidget *, struct_option_fntcol *) ); + + static void __PROTO( contextual_help_dialog, STD_CB_ARGS ); + static void __PROTO( window_help_dialog, STD_CB_ARGS ); +@@ -151,9 +153,9 @@ + static GtkWidget * __PROTO( create_file_menu, (GtkWidget *) ); + static GtkWidget * __PROTO( create_help_menu, (GtkWidget *) ); + +-static void __PROTO( create_fntColorOptions_entries, (GtkWidget *) ); +-static void __PROTO( create_genOptions_entries, (GtkWidget *) ); +-static void __PROTO( create_boolOptions_buttons, (GtkWidget *) ); ++static void __PROTO( create_fntColorOptions_entries, (GtkScrolledWindow *) ); ++static void __PROTO( create_genOptions_entries, (GtkScrolledWindow *) ); ++static void __PROTO( create_boolOptions_buttons, (GtkScrolledWindow *) ); + + #if GTK_CHECK_VERSION(2,0,0) + /* GTK+ 2.x differences */ diff --git a/x11-misc/xlockmore/files/xlockmore-5.88-strip.patch b/x11-misc/xlockmore/files/xlockmore-5.88-strip.patch new file mode 100644 index 0000000..e444097 --- /dev/null +++ b/x11-misc/xlockmore/files/xlockmore-5.88-strip.patch @@ -0,0 +1,64 @@ +--- xlockmore_orig/configure.ac 2026-03-31 14:30:19.287648907 +0200 ++++ xlockmore/configure.ac 2026-03-31 14:33:12.213872945 +0200 +@@ -5034,7 +5034,7 @@ + BITMAPTYPE="bsd" + PIXMAPTYPE="bsd" + FORTUNE="" +- INSTPGMFLAGS="-s -o root -m 4111" ++ INSTPGMFLAGS="-o root -m 4111" + cpp_name=`echo $CC | cut -f1 -d' '` + if test "$cpp_name" = "gcc"; then + dirname=`which gcc` +@@ -5105,7 +5105,6 @@ + ;; + esac + fi +- INSTPGMFLAGS="-s $INSTPGMFLAGS" + BITMAPTYPE="linux" + PIXMAPTYPE="linux" + dnl if Shadow and not elf +@@ -5132,7 +5131,7 @@ + AC_SUBST(OSF1_ENH_SEC) + XLOCKLIBS="${XLOCKLIBS} -lsecurity" + # SETGID auth may not be enough for Tru64 5.x. +- INSTPGMFLAGS="-s -g auth -m 2111" ++ INSTPGMFLAGS="-g auth -m 2111" + else + AC_MSG_RESULT(no) + fi +@@ -5158,7 +5157,7 @@ + PIXMAPTYPE="sol" + ;; + esac +- INSTPGMFLAGS="-s -o root -m 4111" ++ INSTPGMFLAGS="-o root -m 4111" + AC_DEFINE([HAVE_SHADOW], [1], [Shadow passwording]) + AC_DEFINE([SYSV], [1], [System 5]) + AC_DEFINE([SVR4], [1], [System 5 Release 4]) +@@ -5187,7 +5186,7 @@ + ;; + + *-*-sysv5* ) +- INSTPGMFLAGS="-s -o root -m 4111" ++ INSTPGMFLAGS="-o root -m 4111" + AC_DEFINE([HAVE_SHADOW], [1], [Shadow passwording]) + AC_DEFINE([SYSV], [1], [System 5]) + AC_DEFINE([SVR4], [1], [System 5 Release 4]) +@@ -5965,7 +5964,7 @@ + case ${canonical} in + *-*-linux*) + if test "$vtlock" = "yes"; then +- INSTPGMFLAGS="-s -o root -g bin -m 4111" ++ INSTPGMFLAGS="-o root -g bin -m 4111" + AC_MSG_RESULT([defining install options (setuid/setgid) = "$INSTPGMFLAGS" for vtlock]) + echo "experimental: Big buffer overrun security risk" + else +@@ -5983,7 +5982,7 @@ + case ${canonical} in + *-*-linux*) + if test "$vtlock" = "yes"; then +- INSTPGMFLAGS="-s -o root -g bin -m 4111" ++ INSTPGMFLAGS="-o root -g bin -m 4111" + AC_MSG_RESULT([defining install options (setuid/setgid) = "$INSTPGMFLAGS" for vtlock]) + else + AC_MSG_RESULT([defining install options (setuid/setgid) = "$INSTPGMFLAGS"]) diff --git a/x11-misc/xlockmore/xlockmore-5.88.ebuild b/x11-misc/xlockmore/xlockmore-5.88.ebuild new file mode 100644 index 0000000..062b1f8 --- /dev/null +++ b/x11-misc/xlockmore/xlockmore-5.88.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic pam + +DESCRIPTION="Just another screensaver application for X" +HOMEPAGE="https://www.sillycycle.com/xlockmore.html" +SRC_URI=" + https://www.sillycycle.com/xlock/${P/_alpha/ALPHA}.tar.xz + https://www.sillycycle.com/xlock/recent-releases/${P/_alpha/ALPHA}.tar.xz +" +S="${WORKDIR}/${P/_alpha/ALPHA}" + +LICENSE="BSD GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="crypt debug gtk imagemagick motif nas opengl pam truetype xinerama xlockrc vtlock" + +REQUIRED_USE=" + || ( crypt pam ) + pam? ( !xlockrc ) + xlockrc? ( !pam ) +" + +BDEPEND="virtual/pkgconfig" +RDEPEND=" + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXpm + x11-libs/libXt + gtk? ( x11-libs/gtk+:2 ) + imagemagick? ( media-gfx/imagemagick:= ) + motif? ( >=x11-libs/motif-2.3:0 ) + nas? ( media-libs/nas ) + opengl? ( + virtual/opengl + virtual/glu + truetype? ( >=media-libs/ftgl-2.1.3_rc5 ) + ) + pam? ( sys-libs/pam ) + truetype? ( media-libs/freetype:2 ) + xinerama? ( x11-libs/libXinerama ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" + +PATCHES=( + "${FILESDIR}"/${PN}-5.46-freetype261.patch + "${FILESDIR}"/${PN}-5.71-fix-build-for-clang16.patch + "${FILESDIR}"/${PN}-5.88-CXX.patch + "${FILESDIR}"/${PN}-5.88-strip.patch + "${FILESDIR}"/${PN}-5.88-gcc15.patch +) + +src_prepare() { + default + + sed -i \ + -e '/XLOCKLIBPATHS="-L/d' \ + -e '/XMLOCKLIBPATHS="-L/d' \ + -e 's|/lib|'"${EPREFIX}/$(get_libdir)"'|g' \ + configure.ac || die + + eautoreconf +} + +src_configure() { + # #864761 + filter-lto + + local myconf=() + + if use opengl && use truetype; then + append-cppflags -DFTGL213 + + myconf=( --with-ftgl ) + else + myconf=( --without-ftgl ) + fi + + myconf+=( + $(use_enable pam) + $(use_enable xlockrc) + $(use_enable vtlock) + $(use_with crypt) + $(use_with debug editres) + $(use_with gtk gtk2) + $(use_with imagemagick magick) + $(use_with motif) + $(use_with nas) + $(use_with opengl mesa) + $(use_with opengl) + $(use_with truetype freetype) + $(use_with truetype ttf) + $(use_with xinerama) + --disable-mb + --enable-appdefaultdir=/usr/share/X11/app-defaults + --enable-syslog + --enable-vtlock + --without-esound + --without-gtk + ) + + econf "${myconf[@]}" +} + +src_install() { + local DOCS=( README docs/{3d.howto,cell_automata,HACKERS.GUIDE,Purify,Revisions,TODO} ) + default + + if use pam; then + pamd_mimic_system xlock auth + fperms 755 /usr/bin/xlock + else + fperms 4755 /usr/bin/xlock + fi + + docinto html + dodoc docs/xlock.html +}