diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-06-16 06:56:35 +0000 |
commit | 99fcaeccb89621dd492203ce1f2d551c06f228ed (patch) | |
tree | 41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/development/libraries/wayland | |
parent | 59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff) | |
parent | 75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff) | |
download | nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2 nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/nixos/modules/config/console.nix nixpkgs/nixos/modules/services/mail/mailman.nix nixpkgs/nixos/modules/services/mail/public-inbox.nix nixpkgs/nixos/modules/services/mail/rss2email.nix nixpkgs/nixos/modules/services/networking/ssh/sshd.nix nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix nixpkgs/pkgs/applications/networking/irc/weechat/default.nix nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/interpreters/python/default.nix nixpkgs/pkgs/development/node-packages/overrides.nix nixpkgs/pkgs/development/tools/b4/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix nixpkgs/pkgs/servers/mail/public-inbox/default.nix nixpkgs/pkgs/tools/security/pinentry/default.nix nixpkgs/pkgs/tools/text/unoconv/default.nix nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/wayland')
3 files changed, 100 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/development/libraries/wayland/darwin.patch b/nixpkgs/pkgs/development/libraries/wayland/darwin.patch new file mode 100644 index 000000000000..965294dfa5ff --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/wayland/darwin.patch @@ -0,0 +1,74 @@ +diff --git a/meson.build b/meson.build +index 35c3b95..f27e472 100644 +--- a/meson.build ++++ b/meson.build +@@ -16,7 +16,7 @@ config_h.set_quoted('PACKAGE', meson.project_name()) + config_h.set_quoted('PACKAGE_VERSION', meson.project_version()) + + cc_args = [] +-if host_machine.system() != 'freebsd' ++if host_machine.system() not in ['darwin', 'freebsd'] + cc_args += ['-D_POSIX_C_SOURCE=200809L'] + endif + add_project_arguments(cc_args, language: 'c') +@@ -52,7 +52,7 @@ foreach f: have_funcs + endforeach + config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include <sys/ucred.h>')) + have_broken_msg_cmsg_cloexec = false +-if host_machine.system() == 'freebsd' ++if host_machine.system() in ['darwin', 'freebsd'] + have_broken_msg_cmsg_cloexec = not cc.compiles(''' + #include <sys/param.h> /* To get __FreeBSD_version. */ + #if __FreeBSD_version < 1300502 || \ +@@ -69,7 +69,7 @@ endif + config_h.set10('HAVE_BROKEN_MSG_CMSG_CLOEXEC', have_broken_msg_cmsg_cloexec) + + if get_option('libraries') +- if host_machine.system() == 'freebsd' ++ if host_machine.system() in ['darwin', 'freebsd'] + # When building for FreeBSD, epoll(7) is provided by a userspace + # wrapper around kqueue(2). + epoll_dep = dependency('epoll-shim') +diff --git a/src/event-loop.c b/src/event-loop.c +index 37cf95d..49a38cb 100644 +--- a/src/event-loop.c ++++ b/src/event-loop.c +@@ -48,6 +48,13 @@ + + #define TIMER_REMOVED -2 + ++#ifdef __APPLE__ ++struct itimerspec { ++ struct timespec it_interval; ++ struct timespec it_value; ++}; ++#endif ++ + struct wl_event_loop; + struct wl_event_source_interface; + struct wl_event_source_timer; +diff --git a/src/wayland-os.c b/src/wayland-os.c +index a9066ca..483fe64 100644 +--- a/src/wayland-os.c ++++ b/src/wayland-os.c +@@ -69,17 +69,19 @@ wl_os_socket_cloexec(int domain, int type, int protocol) + { + int fd; + ++#ifdef SOCK_CLOEXEC + fd = socket(domain, type | SOCK_CLOEXEC, protocol); + if (fd >= 0) + return fd; + if (errno != EINVAL) + return -1; ++#endif + + fd = socket(domain, type, protocol); + return set_cloexec_or_close(fd); + } + +-#if defined(__FreeBSD__) ++#if defined(__APPLE__) || defined(__FreeBSD__) + int + wl_os_socket_peercred(int sockfd, uid_t *uid, gid_t *gid, pid_t *pid) + { diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix index c9d0a7ad3b7c..fbed7a3b5206 100644 --- a/nixpkgs/pkgs/development/libraries/wayland/default.nix +++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix @@ -8,8 +8,10 @@ , wayland-scanner , expat , libxml2 -, withLibraries ? stdenv.isLinux +, withLibraries ? stdenv.isLinux || stdenv.isDarwin +, withTests ? stdenv.isLinux , libffi +, epoll-shim , withDocumentation ? withLibraries && stdenv.hostPlatform == stdenv.buildPlatform , graphviz-nox , doxygen @@ -24,18 +26,25 @@ # Documentation is only built when building libraries. assert withDocumentation -> withLibraries; +# Tests are only built when building libraries. +assert withTests -> withLibraries; + let isCross = stdenv.buildPlatform != stdenv.hostPlatform; in stdenv.mkDerivation rec { pname = "wayland"; - version = "1.21.0"; + version = "1.22.0"; src = fetchurl { url = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${version}/downloads/${pname}-${version}.tar.xz"; - sha256 = "1b0ixya9bfw5c9jx8mzlr7yqnlyvd3jv5z8wln9scdv8q5zlvikd"; + hash = "sha256-FUCvHqaYpHHC2OnSiDMsfg/TYMjx0Sk267fny8JCWEI="; }; + patches = [ + ./darwin.patch + ]; + postPatch = lib.optionalString withDocumentation '' patchShebangs doc/doxygen/gen-doxygen.py '' + lib.optionalString stdenv.hostPlatform.isStatic '' @@ -48,8 +57,9 @@ stdenv.mkDerivation rec { separateDebugInfo = true; mesonFlags = [ - "-Dlibraries=${lib.boolToString withLibraries}" "-Ddocumentation=${lib.boolToString withDocumentation}" + "-Dlibraries=${lib.boolToString withLibraries}" + "-Dtests=${lib.boolToString withTests}" ]; depsBuildBuild = [ @@ -77,6 +87,8 @@ stdenv.mkDerivation rec { libxml2 ] ++ lib.optionals withLibraries [ libffi + ] ++ lib.optionals (withLibraries && !stdenv.hostPlatform.isLinux) [ + epoll-shim ] ++ lib.optionals withDocumentation [ docbook_xsl docbook_xml_dtd_45 @@ -95,6 +107,8 @@ stdenv.mkDerivation rec { EOF ''; + passthru = { inherit withLibraries; }; + meta = with lib; { description = "Core Wayland window system code and protocol"; longDescription = '' @@ -107,11 +121,7 @@ stdenv.mkDerivation rec { ''; homepage = "https://wayland.freedesktop.org/"; license = licenses.mit; # Expat version - platforms = if withLibraries then platforms.linux else platforms.unix; + platforms = platforms.unix; maintainers = with maintainers; [ primeos codyopel qyliss ]; - # big sur doesn't support gcc stdenv and wayland doesn't build with clang - broken = stdenv.isDarwin; }; - - passthru.version = version; } diff --git a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix index 5fca71ebf0c1..429fae7feb36 100644 --- a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix +++ b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix @@ -6,13 +6,14 @@ stdenv.mkDerivation rec { pname = "wayland-protocols"; - version = "1.26"; + version = "1.31"; - doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + # https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/48 + doCheck = stdenv.hostPlatform == stdenv.buildPlatform && stdenv.targetPlatform.linker == "bfd" && wayland.withLibraries; src = fetchurl { - url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; - sha256 = "04vgllmpmrv14x3x64ns01vgwx4hriljayjkz9idgbv83i63hly5"; + url = "https://gitlab.freedesktop.org/wayland/${pname}/-/releases/${version}/downloads/${pname}-${version}.tar.xz"; + hash = "sha256-oH+nIu2HZ27AINhncUvJovJMRk2nORLzlwbu71IZ4jg="; }; postPatch = lib.optionalString doCheck '' @@ -21,7 +22,7 @@ stdenv.mkDerivation rec { depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ meson ninja wayland-scanner ]; - checkInputs = [ python3 wayland ]; + nativeCheckInputs = [ python3 wayland ]; mesonFlags = [ "-Dtests=${lib.boolToString doCheck}" ]; @@ -36,7 +37,7 @@ stdenv.mkDerivation rec { ''; homepage = "https://gitlab.freedesktop.org/wayland/wayland-protocols"; license = lib.licenses.mit; # Expat version - platforms = lib.platforms.linux; + platforms = lib.platforms.all; maintainers = with lib.maintainers; [ primeos ]; }; |