diff options
Diffstat (limited to 'x11/waycheck')
-rw-r--r-- | x11/waycheck/Makefile | 30 | ||||
-rw-r--r-- | x11/waycheck/distinfo | 3 | ||||
-rw-r--r-- | x11/waycheck/files/patch-meson.build | 15 | ||||
-rw-r--r-- | x11/waycheck/files/patch-src_meson.build | 10 | ||||
-rw-r--r-- | x11/waycheck/files/patch-src_window.cpp | 56 | ||||
-rw-r--r-- | x11/waycheck/pkg-descr | 5 |
6 files changed, 119 insertions, 0 deletions
diff --git a/x11/waycheck/Makefile b/x11/waycheck/Makefile new file mode 100644 index 000000000000..65b41ff8c51d --- /dev/null +++ b/x11/waycheck/Makefile @@ -0,0 +1,30 @@ +PORTNAME= waycheck +DISTVERSIONPREFIX= v +DISTVERSION= 1.7.0 +CATEGORIES= x11 wayland + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= Simple GUI that displays the protocols implemented by a Wayland compositor +WWW= https://gitlab.freedesktop.org/serebit/waycheck + +LICENSE= APACHE20 CC0-1.0 +LICENSE_COMB= multi +LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSES/Apache-2.0.txt +LICENSE_FILE_CC0-1.0= ${WRKSRC}/LICENSES/CC0-1.0.txt + +LIB_DEPENDS= libwayland-client.so:graphics/wayland + +USES= meson pkgconfig qt:6 + +USE_GITLAB= yes +GL_SITE= https://gitlab.freedesktop.org/ +GL_ACCOUNT= serebit + +USE_QT= base wayland + +PLIST_FILES= bin/${PORTNAME} \ + share/applications/dev.serebit.Waycheck.desktop \ + share/icons/hicolor/scalable/apps/dev.serebit.Waycheck.svg \ + share/metainfo/dev.serebit.Waycheck.metainfo.xml + +.include <bsd.port.mk> diff --git a/x11/waycheck/distinfo b/x11/waycheck/distinfo new file mode 100644 index 000000000000..c3dab321fc1d --- /dev/null +++ b/x11/waycheck/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1756195503 +SHA256 (waycheck-v1.7.0.tar.bz2) = 658caca3d967d9b23bb1f6d42c6fd67832263bb60fd600a26e97748d0e47e105 +SIZE (waycheck-v1.7.0.tar.bz2) = 21545 diff --git a/x11/waycheck/files/patch-meson.build b/x11/waycheck/files/patch-meson.build new file mode 100644 index 000000000000..882534abc553 --- /dev/null +++ b/x11/waycheck/files/patch-meson.build @@ -0,0 +1,15 @@ +--- meson.build.orig 2025-08-27 20:19:12 UTC ++++ meson.build +@@ -16,6 +16,12 @@ dep_wayland_client = dependency('wayland-client') + ) + dep_wayland_client = dependency('wayland-client') + ++cc = meson.get_compiler('cpp') ++dep_libutil = dependency('', required : false) ++if host_machine.system() == 'freebsd' ++ dep_libutil = cc.find_library('util', required : true) ++endif ++ + datadir = get_option('datadir') + + subdir('src') diff --git a/x11/waycheck/files/patch-src_meson.build b/x11/waycheck/files/patch-src_meson.build new file mode 100644 index 000000000000..decf26941ea7 --- /dev/null +++ b/x11/waycheck/files/patch-src_meson.build @@ -0,0 +1,10 @@ +--- src/meson.build.orig 2025-08-27 20:18:18 UTC ++++ src/meson.build +@@ -15,6 +15,6 @@ waycheck = executable( + waycheck = executable( + 'waycheck', + sources: waycheck_sources, +- dependencies: [dep_qt6, dep_wayland_client], ++ dependencies: [dep_qt6, dep_wayland_client, dep_libutil], + install: true, + ) diff --git a/x11/waycheck/files/patch-src_window.cpp b/x11/waycheck/files/patch-src_window.cpp new file mode 100644 index 000000000000..6e976a9c5ffb --- /dev/null +++ b/x11/waycheck/files/patch-src_window.cpp @@ -0,0 +1,56 @@ +--- src/window.cpp.orig 2025-06-27 19:43:51 UTC ++++ src/window.cpp +@@ -13,7 +13,24 @@ + #include <unistd.h> + #include <wayland-client-protocol.h> + ++#if defined(__FreeBSD__) ++#include <sys/types.h> ++#include <sys/ucred.h> ++#include <sys/un.h> ++#include <sys/user.h> ++#include <libutil.h> ++#endif ++ + static pid_t pid_from_fd(const int fd) { ++#if defined(__FreeBSD__) ++ xucred cred{}; ++ socklen_t len = sizeof(struct xucred); ++ if (getsockopt(fd, SOL_LOCAL, LOCAL_PEERCRED, &cred, &len) == -1) { ++ perror("getsockopt failed"); ++ exit(1); ++ } ++ return cred.cr_pid; ++#else + ucred cred{}; + socklen_t len = sizeof(struct ucred); + if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &len) == -1) { +@@ -21,9 +38,19 @@ static pid_t pid_from_fd(const int fd) { + exit(1); + } + return cred.pid; ++#endif + } + + static std::string process_name_from_pid(const pid_t pid) { ++#if defined(__FreeBSD__) ++ struct kinfo_proc *proc = kinfo_getproc(pid); ++ ++ if (proc) { ++ std::string out = proc->ki_comm; ++ free(proc); ++ return out; ++ } ++#else + const std::string procpath = QString::asprintf("/proc/%d/comm", pid).toStdString(); + + std::ifstream infile(procpath); +@@ -38,7 +65,7 @@ static std::string process_name_from_pid(const pid_t p + // running in a flatpak or a snap, most likely + return "Unknown (Sandboxed)"; + } +- ++#endif + return "Unknown"; + } + diff --git a/x11/waycheck/pkg-descr b/x11/waycheck/pkg-descr new file mode 100644 index 000000000000..fcdbdc739f27 --- /dev/null +++ b/x11/waycheck/pkg-descr @@ -0,0 +1,5 @@ +Waycheck is a simple Qt6 application that displays all of the Wayland +protocols that your compositor supports, and all of the protocols that +it doesn't support. It can be used to compare protocol support between +compositors, or if you're working on your own compositor, to keep +track of which protocols you still need to implement. |