diff --git a/net-misc/gerbera/additional-files/config.xml b/net-misc/gerbera/additional-files/config.xml new file mode 100644 index 000000000..4e0919340 --- /dev/null +++ b/net-misc/gerbera/additional-files/config.xml @@ -0,0 +1,147 @@ + + + + + + + + + + Gerbera + uuid:3a49bdf9-c613-476e-a684-8274ae67ee16 + /boot/home/config/settings/gerbera + /system/data/gerbera/web + + 1800 + + + gerbera.db + + + + + + + + + + * + + video + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + audio/mpeg + no + yes + no + + + + + video/mpeg + yes + yes + yes + + + + + + diff --git a/net-misc/gerbera/additional-files/install_config.sh b/net-misc/gerbera/additional-files/install_config.sh new file mode 100644 index 000000000..e4448036f --- /dev/null +++ b/net-misc/gerbera/additional-files/install_config.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +settingsDir="$(finddir B_USER_SETTINGS_DIRECTORY)" + +systemConfig="$(finddir B_SYSTEM_SETTINGS_DIRECTORY)/gerbera" + +mkdir -p $settingsDir + +if [ -d "$systemConfig" ]; then + mv "$systemConfig" "$settingsDir" +else + exit 1 #couldn't find $systemConfig +fi diff --git a/net-misc/gerbera/gerbera-1.4.0.recipe b/net-misc/gerbera/gerbera-1.4.0.recipe new file mode 100644 index 000000000..7c6431db9 --- /dev/null +++ b/net-misc/gerbera/gerbera-1.4.0.recipe @@ -0,0 +1,115 @@ +SUMMARY="Open source UPnP Media Server" +DESCRIPTION="MediaTomb is an open source UPnP MediaServer" +HOMEPAGE="https://sourceforge.net/projects/mediatomb/" +COPYRIGHT="2005-2010 Gena Batyan, Sergey 'Jin' Bostandzhyan, Leonhard Wimmer" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://github.com/gerbera/gerbera/archive/v$portVersion.tar.gz" +CHECKSUM_SHA256="904a9031c85ac805e4c139f363510226952683d7257acd1dee25ba1e97fd7651" +PATCHES="gerbera-$portVersion.patchset" +ADDITIONAL_FILES=" + config.xml + install_config.sh + " + +ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64" +SECONDARY_ARCHITECTURES="?x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +GLOBAL_WRITABLE_FILES=" + settings/gerbera/config.xml keep-old + " +POST_INSTALL_SCRIPTS=" + $relativePostInstallDir/install_config.sh + " + +PROVIDES=" + gerbera$secondaryArchSuffix = $portVersion + cmd:gerbera$commandSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + #lib:libavcodec$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libcrypto$secondaryArchSuffix + lib:libebml$secondaryArchSuffix + lib:libexif$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + #lib:libextractor$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libmagic$secondaryArchSuffix + lib:libmatroska$secondaryArchSuffix + #lib:libmozjs185$secondaryArchSuffix + #lib:libmp4v2$secondaryArchSuffix + lib:libnghttp2$secondaryArchSuffix + lib:libsqlite3$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libtag$secondaryArchSuffix + lib:libupnp$secondaryArchSuffix + lib:libuuid$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + #devel:libavcodec$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix +# devel:libcrypto$secondaryArchSuffix + devel:libebml$secondaryArchSuffix + devel:libexif$secondaryArchSuffix + devel:libexpat$secondaryArchSuffix + #devel:libextractor$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix +# devel:libintl$secondaryArchSuffix + devel:libmagic$secondaryArchSuffix + devel:libmatroska$secondaryArchSuffix + #devel:libmozjs185$secondaryArchSuffix + #devel:libmp4v2$secondaryArchSuffix + devel:libsqlite3$secondaryArchSuffix +# devel:libssl$secondaryArchSuffix + devel:libtag$secondaryArchSuffix + devel:libupnp$secondaryArchSuffix + devel:libuuid$secondaryArchSuffix >= 1.3 + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + mkdir -p build && cd build + cmake .. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=$prefix \ + -DCMAKE_INSTALL_BINDIR=$commandBinDir \ + -DCMAKE_INSTALL_DATADIR=$dataDir/gerbera \ + -DCMAKE_INSTALL_MANDIR=$manDir/man1 \ + -DCMAKE_CXX_FLAGS=-D_BSD_SOURCE \ + -L -DWITH_INOTIFY=0 \ + -DWITH_JS=0 \ + -DWITH_SYSTEMD=0 + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + mkdir -p $settingsDir/gerbera + cp $portDir/additional-files/config.xml $settingsDir/gerbera + + mkdir -p $postInstallDir + cp $portDir/additional-files/install_config.sh $postInstallDir +} diff --git a/net-misc/gerbera/patches/gerbera-1.4.0.patchset b/net-misc/gerbera/patches/gerbera-1.4.0.patchset new file mode 100644 index 000000000..d9da655f7 --- /dev/null +++ b/net-misc/gerbera/patches/gerbera-1.4.0.patchset @@ -0,0 +1,106 @@ +From 3eb36adbc1efdfb932b9d9f3149a985c94d56bf3 Mon Sep 17 00:00:00 2001 +From: begasus +Date: Sun, 16 Feb 2020 15:41:59 +0000 +Subject: Fix undeclared SIOCGIFADDR + + +diff --git a/src/tools.cc b/src/tools.cc +index 6dec392..621e57a 100644 +--- a/src/tools.cc ++++ b/src/tools.cc +@@ -51,6 +51,10 @@ + #include + #endif + ++#ifdef __HAIKU__ ++#include ++#endif ++ + #ifdef SOLARIS + #include + #include +-- +2.24.1 + + +From 6991c39bb5631a7a5bcbd22962202ced74fea883 Mon Sep 17 00:00:00 2001 +From: begasus +Date: Sun, 16 Feb 2020 16:19:26 +0000 +Subject: Fix install paths + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8089f09..63101b5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -33,6 +33,10 @@ set(WITH_LASTFM 0 CACHE BOOL "Enable LastFM") + set(WITH_DEBUG 1 CACHE BOOL "Enables debug logging") + set(WITH_TESTS 0 CACHE BOOL "Enables Unit Tests") + ++set(CMAKE_INSTALL_BINDIR=bin) ++set(CMAKE_INSTALL_DATADIR=share/gerbera) ++set(CMAKE_INSTALL_MANDIR=share/man/man1) ++ + set(libgerberaFILES + src/action_request.cc + src/action_request.h +@@ -600,12 +604,12 @@ if(WITH_TESTS) + endif() + endif() + +-INSTALL(TARGETS gerbera DESTINATION bin) +-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/scripts/js DESTINATION share/gerbera) +-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/web DESTINATION share/gerbera) ++INSTALL(TARGETS gerbera DESTINATION ${CMAKE_INSTALL_BINDIR}) ++INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/scripts/js DESTINATION ${CMAKE_INSTALL_DATADIR}) ++INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/web DESTINATION ${CMAKE_INSTALL_DATADIR}) + INSTALL(FILES + ${PROJECT_SOURCE_DIR}/config/mappings.xml + ${PROJECT_SOURCE_DIR}/config/mysql.sql + ${PROJECT_SOURCE_DIR}/config/sqlite3.sql +- DESTINATION share/gerbera) +-INSTALL(FILES ${PROJECT_SOURCE_DIR}/doc/gerbera.1 DESTINATION share/man/man1) ++ DESTINATION ${CMAKE_INSTALL_DATADIR}) ++INSTALL(FILES ${PROJECT_SOURCE_DIR}/doc/gerbera.1 DESTINATION ${CMAKE_INSTALL_MANDIR}) +-- +2.24.1 + + +From c4f5ab5ae115f71b920a90d6f75c27398a5003c5 Mon Sep 17 00:00:00 2001 +From: begasus +Date: Sat, 22 Feb 2020 17:21:21 +0100 +Subject: Fix linking to -lnetwork + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 63101b5..c2417d1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -408,14 +408,22 @@ if (HAVE_SETLOCALE) + endif() + + # Link to the socket library if it exists. This is something you need on Solaris/OmniOS/Joyent +-find_library(SOCKET_LIBRARY socket) ++if(HAIKU) ++ find_library(SOCKET_LIBRARY network) ++else() ++ find_library(SOCKET_LIBRARY socket) ++endif() + if(SOCKET_LIBRARY) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SOCKET_LIBRARY}) + target_link_libraries(gerbera ${SOCKET_LIBRARY}) + endif() + + # Link to libnsl (Network services library) if it exists. This is something you need on Solaris/OmniOS/Joyent +-find_library(NSL_LIBRARY nsl) ++if(HAIKU) ++ find_library(NSL_LIBRARY network) ++else() ++ find_library(NSL_LIBRARY nsl) ++endif() + if(NSL_LIBRARY) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${NSL_LIBRARY}) + target_link_libraries(gerbera ${NSL_LIBRARY}) +-- +2.24.1 +