diff --git a/app-emulation/spice-protocol/spice_protocol-0.14.4.recipe b/app-emulation/spice-protocol/spice_protocol-0.14.4.recipe new file mode 100644 index 000000000..d183ae7e6 --- /dev/null +++ b/app-emulation/spice-protocol/spice_protocol-0.14.4.recipe @@ -0,0 +1,43 @@ +SUMMARY="SPICE protocol definitions" +DESCRIPTION="Headers defining the SPICE-protocol" +HOMEPAGE="https://www.spice-space.org/" +COPYRIGHT="2009 Red Hat, Inc" +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://www.spice-space.org/download/releases/spice-protocol-$portVersion.tar.xz" +CHECKSUM_SHA256="04ffba610d9fd441cfc47dfaa135d70096e60b1046d2119d8db2f8ea0d17d912" +SOURCE_DIR="spice-protocol-$portVersion" + +ARCHITECTURES="any" + +PROVIDES=" + spice_protocol = $portVersion + devel:spice_protocol = $portVersion + " +REQUIRES=" + haiku + " + +BUILD_REQUIRES=" + haiku_devel + " +BUILD_PREREQUIRES=" + cmd:meson + cmd:ninja + " + +BUILD() +{ + rm -rf build + + meson build --buildtype=release \ + --prefix=$prefix --datadir=$dataDir \ + --includedir=$includeDir --sysconfdir=$settingsDir +} + +INSTALL() +{ + ninja -C build install + + fixPkgconfig +} diff --git a/app-emulation/spice/patches/spice-0.15.1.patchset b/app-emulation/spice/patches/spice-0.15.1.patchset new file mode 100644 index 000000000..073ac1fbe --- /dev/null +++ b/app-emulation/spice/patches/spice-0.15.1.patchset @@ -0,0 +1,138 @@ +From 2a354edfed18050de1ce406717a42fbf470a7d28 Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Sun, 16 Oct 2022 01:21:46 +0000 +Subject: fix meson build + + +diff --git a/meson.build b/meson.build +index ef8b41a..be8fb23 100644 +--- a/meson.build ++++ b/meson.build +@@ -106,9 +106,11 @@ foreach dep : ['libjpeg', 'zlib'] + endforeach + + if host_machine.system() != 'windows' +- foreach dep : ['rt', 'm'] +- spice_server_deps += compiler.find_library(dep) +- endforeach ++ if host_machine.system() != 'haiku' ++ foreach dep : ['rt', 'm'] ++ spice_server_deps += compiler.find_library(dep) ++ endforeach ++ endif + else + foreach dep : ['ws2_32', 'shlwapi'] + spice_server_deps += compiler.find_library(dep) +-- +2.37.3 + + +From 0347fdb35895a0cdb3355280e6758842e8cd6740 Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Sun, 16 Oct 2022 02:21:30 +0000 +Subject: disable doxygen + + +diff --git a/meson.build b/meson.build +index be8fb23..e0ef1c1 100644 +--- a/meson.build ++++ b/meson.build +@@ -234,4 +234,4 @@ endif + configure_file(output : 'config.h', + configuration : spice_server_config_data) + +-run_target('doxy', command : './doxygen.sh') ++#run_target('doxy', command : './doxygen.sh') +-- +2.37.3 + + +From 9267973c12021acaa71b490619ca1e043e6d0024 Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Sun, 16 Oct 2022 02:32:46 +0000 +Subject: Fix SUN_LEN missing + + +diff --git a/server/reds.cpp b/server/reds.cpp +index 5e9a129..7055ccc 100644 +--- a/server/reds.cpp ++++ b/server/reds.cpp +@@ -82,6 +82,11 @@ + #include "net-utils.h" + #include "red-stream-device.h" + ++#ifndef SUN_LEN ++#define SUN_LEN(su) \ ++ (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) ++#endif ++ + #define REDS_MAX_STAT_NODES 100 + + static void reds_client_monitors_config(RedsState *reds, VDAgentMonitorsConfig *monitors_config); +-- +2.37.3 + + +From c7d147ca5c3ca91305dbf01e804626c5baecb21e Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Sun, 16 Oct 2022 02:36:23 +0000 +Subject: fix missing pthread_setname_np + + +diff --git a/server/red-worker.cpp b/server/red-worker.cpp +index 912b7d5..bfc11d5 100644 +--- a/server/red-worker.cpp ++++ b/server/red-worker.cpp +@@ -1049,7 +1049,7 @@ bool red_worker_run(RedWorker *worker) + #ifndef _WIN32 + pthread_sigmask(SIG_SETMASK, &curr_sig_mask, nullptr); + #endif +-#if !defined(__APPLE__) ++#if !defined(__APPLE__) && !defined(__HAIKU__) + pthread_setname_np(worker->thread, "SPICE Worker"); + #endif + +-- +2.37.3 + + +From 61c389486333758969e63cd70b7077b0e4afc838 Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Mon, 17 Oct 2022 00:31:35 +0000 +Subject: meson: disable python-checks + +Signed-off-by: Han Pengfei + +diff --git a/meson.build b/meson.build +index e0ef1c1..671ae84 100644 +--- a/meson.build ++++ b/meson.build +@@ -61,6 +61,7 @@ spice_common = subproject('spice-common', + default_options : [ + 'generate-code=server', + 'spice-protocol-version=@0@'.format(spice_protocol_version), ++ 'python-checks=false', + ]) + spice_server_config_data.merge_from(spice_common.get_variable('spice_common_config_data')) + spice_server_deps += spice_common.get_variable('spice_common_server_dep') +-- +2.37.3 + + +From 1191d7bac318b1f626b455cfb1b0eaf5dd24f92a Mon Sep 17 00:00:00 2001 +From: Han Pengfei +Date: Mon, 17 Oct 2022 12:52:14 +0000 +Subject: Fix meson-dist missing + +Signed-off-by: Han Pengfei + +diff --git a/build-aux/meson-dist b/build-aux/meson-dist +new file mode 100755 +index 0000000..1a24852 +--- /dev/null ++++ b/build-aux/meson-dist +@@ -0,0 +1 @@ ++#!/bin/sh +-- +2.37.3 + diff --git a/app-emulation/spice/spice-0.15.1.recipe b/app-emulation/spice/spice-0.15.1.recipe new file mode 100644 index 000000000..31494622e --- /dev/null +++ b/app-emulation/spice/spice-0.15.1.recipe @@ -0,0 +1,107 @@ +SUMMARY="The SPICE client and server library" +DESCRIPTION="The SPICE package provides the SPICE server library and client. + +These components are used to provide access to a remote machine's display and devices" +HOMEPAGE="https://www.spice-space.org/" +COPYRIGHT="2009 Red Hat, Inc" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://www.spice-space.org/download/releases/spice-server/spice-$portVersion.tar.bz2" +CHECKSUM_SHA256="ada9af67ab321916bd7eb59e3d619a4a7796c08a28c732edfc7f02fc80b1a37a" +SOURCE_DIR="spice-$portVersion" +PATCHES="spice-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="1.14.2" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + spice$secondaryArchSuffix = $portVersion + lib:libspice_server$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + #lib:libgstreamer_1.0$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblz4$secondaryArchSuffix + lib:libopus$secondaryArchSuffix + lib:liborc_0.4$secondaryArchSuffix + lib:libpixman_1$secondaryArchSuffix + lib:libsasl2$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libX11$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + spice${secondaryArchSuffix}_devel = $portVersion + devel:libspice_server$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + spice$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libglib_2.0$secondaryArchSuffix + #devel:libgstreamer_1.0$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:liblz4$secondaryArchSuffix + devel:libopus$secondaryArchSuffix + devel:liborc_0.4$secondaryArchSuffix + devel:libpixman_1$secondaryArchSuffix + devel:libsasl2$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libX11$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:spice_protocol + pyparsing_python3 + six_python3 + " +BUILD_PREREQUIRES=" + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:meson + cmd:ninja + cmd:openssl + cmd:pkg_config$secondaryArchSuffix + cmd:python3 + " + +BUILD() +{ + rm -rf build + + chmod +x build-aux/meson/check-spice-common + + export LDFLAGS="-lnetwork -lbsd" + + meson build --buildtype=release \ + --prefix=$prefix --libdir=$libDir --datadir=$dataDir --bindir=$binDir \ + --includedir=$includeDir --sysconfdir=$settingsDir --sbindir=$binDir \ + --libexecdir=$libDir --localedir=$dataDir/locale \ + -Dgstreamer=no \ + -Dsasl=true \ + -Dtests=false \ + -Dlz4=true \ + -Dopus=enabled \ + -Dmanual=false +} + +INSTALL() +{ + ninja -C build install + + prepareInstalledDevelLibs \ + libspice-server + + fixPkgconfig + + packageEntries devel \ + $developDir +}