diff --git a/libs/libnpupnp/Makefile b/libs/libnpupnp/Makefile new file mode 100644 index 000000000..ebeec335c --- /dev/null +++ b/libs/libnpupnp/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=libnpupnp +PKG_VERSION:=2.2.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads +PKG_HASH:=da67d4c258d139d476af6b800926cd9cd09ba17d9e9fcfaebe3fb98241b32790 + +PKG_MAINTAINER:= +PKG_LICENSE:=LGPL-2.1-or-later +PKG_LICENSE_FILES:=COPYING + +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/libnpupnp + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libstdcpp +libexpat +libcurl +libmicrohttpd + TITLE:=A C++ base UPnP library + URL:=https://framagit.org/medoc92/npupnp +endef + +define Package/libnpupnp/description +npupnp (new pupnp or not pupnp ?) is an UPnP library derived from the +venerable pupnp (https://github.com/pupnp/pupnp), based on its 1.6.x +branch (around 1.6.25). +endef + +TARGET_CFLAGS += -flto +TARGET_LDFLAGS += -flto + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include/npupnp/upnp + $(CP) $(PKG_INSTALL_DIR)/usr/include/npupnp/upnp/* $(1)/usr/include/npupnp/upnp + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnpupnp.so* $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnpupnp.pc $(1)/usr/lib/pkgconfig/ +endef + +define Package/libnpupnp/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnpupnp.so.* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,libnpupnp)) diff --git a/libs/libupnp/Makefile b/libs/libupnp/Makefile index 31dadd9a5..951ba5a05 100644 --- a/libs/libupnp/Makefile +++ b/libs/libupnp/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libupnp -PKG_VERSION:=1.8.7 +PKG_VERSION:=1.12.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@SF/pupnp -PKG_HASH:=e38c69b2b67322e67cd53680db9b02c7c1f720a47a3cd626fd89d57d2dca93b8 +PKG_HASH:=fc36642b1848fe5a81296d496291d350ecfc12b85fd0b268478ab230976d4009 PKG_MAINTAINER:=Ted Hess PKG_LICENSE:=BSD-3-Clause diff --git a/libs/libupnpp/Makefile b/libs/libupnpp/Makefile index 7c0395328..272e31db8 100644 --- a/libs/libupnpp/Makefile +++ b/libs/libupnpp/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libupnpp -PKG_VERSION:=0.17.2 +PKG_VERSION:=0.18.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads -PKG_HASH:=5abaaf353a1e9c3482d61ef2627b650285d59f27c1ee60d35b8951952261374f +PKG_HASH:=c9659cd36ce70c43e9889a6c3a5eeb28e4f799580727826a6c7aef9bef6b6937 PKG_MAINTAINER:=Petko Bordjukov PKG_LICENSE:=LGPL-2.1-or-later @@ -28,7 +28,7 @@ define Package/libupnpp SECTION:=libs CATEGORY:=Libraries URL:=https://www.lesbonscomptes.com/upmpdcli - DEPENDS+= +libstdcpp +libexpat +librt +libcurl +libupnp + DEPENDS+=+libnpupnp TITLE:=The libupnpp C++ library wraps libupnp for easier use by upmpdcli and upplay endef diff --git a/libs/pugixml/Makefile b/libs/pugixml/Makefile new file mode 100644 index 000000000..a1d9618f9 --- /dev/null +++ b/libs/pugixml/Makefile @@ -0,0 +1,53 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=pugixml +PKG_VERSION:=1.10 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/zeux/pugixml/releases/download/v$(PKG_VERSION) +PKG_HASH:=55f399fbb470942410d348584dc953bcaec926415d3462f471ef350f29b5870a + +PKG_MAINTAINER:= +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +CMAKE_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/pugixml + SECTION:=libs + CATEGORY:=Libraries + TITLE:=pugixml + URL:=https://github.com/zeux/pugixml + DEPENDS:=+libstdcpp +endef + +define Package/pugixml/description + pugixml is a C++ XML processing library, which consists of a DOM-like interface + with rich traversal/modification capabilities, an extremely fast XML parser which + constructs the DOM tree from an XML file/buffer, and an XPath 1.0 implementation + for complex data-driven tree queries. Full Unicode support is also available, + with Unicode interface variants and conversions between different Unicode encodings + (which happen automatically during parsing/saving). +endef + +CMAKE_OPTIONS += \ + -DBUILD_SHARED_LIBS=ON + +TARGET_CXXFLAGS += -flto + +define Package/pugixml/install + $(INSTALL_DIR) $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpugixml.so* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,pugixml)) diff --git a/libs/spdlog/Makefile b/libs/spdlog/Makefile new file mode 100644 index 000000000..fb062f4c8 --- /dev/null +++ b/libs/spdlog/Makefile @@ -0,0 +1,58 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=spdlog +PKG_VERSION:=1.5.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/gabime/spdlog/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a + +PKG_MAINTAINER:= +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +CMAKE_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/spdlog + SECTION:=libs + CATEGORY:=Libraries + TITLE:=spdlog + URL:=https://github.com/gabime/spdlog + DEPENDS:=+libfmt +endef + +define Package/spdlog/description + Very fast, header-only/compiled, C++ logging library. +endef + +CMAKE_OPTIONS += \ + -DSPDLOG_BUILD_SHARED=ON \ + -DSPDLOG_BUILD_EXAMPLE=OFF \ + -DSPDLOG_BUILD_EXAMPLE_HO=OFF \ + -DSPDLOG_BUILD_TESTS=OFF \ + -DSPDLOG_BUILD_TESTS_HO=OFF \ + -DSPDLOG_BUILD_BENCH=OFF \ + -DSPDLOG_SANITIZE_ADDRESS=OFF \ + -DSPDLOG_INSTALL=ON \ + -DSPDLOG_FMT_EXTERNAL=ON \ + -DSPDLOG_FMT_EXTERNAL_HO=OFF \ + -DSPDLOG_NO_EXCEPTIONS=OFF + +TARGET_CXXFLAGS += -flto + +define Package/spdlog/install + $(INSTALL_DIR) $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libspdlog.so* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,spdlog)) diff --git a/multimedia/gerbera/Makefile b/multimedia/gerbera/Makefile index 9e7c0bba4..29c17c063 100644 --- a/multimedia/gerbera/Makefile +++ b/multimedia/gerbera/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gerbera -PKG_VERSION:=1.4.0 +PKG_VERSION:=1.5.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/gerbera/gerbera/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=904a9031c85ac805e4c139f363510226952683d7257acd1dee25ba1e97fd7651 +PKG_HASH:=693a99b295bc79d842f036a6d04996d4676ac0791d65f3a1f7aab4badf9fb5ef PKG_MAINTAINER:= PKG_LICENSE:=GPL-2.0-or-later @@ -28,7 +28,7 @@ include $(INCLUDE_DIR)/nls.mk define Package/gerbera SECTION:=multimedia CATEGORY:=Multimedia - DEPENDS:=+file +libupnp +libsqlite3 +libexif +libexpat +libuuid +libstdcpp $(ICONV_DEPENDS) + DEPENDS:=+file +libupnp +libsqlite3 +libexif +libuuid +pugixml +spdlog $(ICONV_DEPENDS) TITLE:=A free media server URL:=https://gerbera.io USERID:=gerbera:gerbera @@ -43,23 +43,25 @@ define Package/gerbera/conffiles endef CMAKE_OPTIONS += \ + -DCXX_FILESYSTEM_NO_LINK_NEEDED=$(if $(CONFIG_GCC_USE_VERSION_9),ON,OFF) \ + -DCXX_FILESYSTEM_STDCPPFS_NEEDED=$(if $(CONFIG_GCC_USE_VERSION_8),OFF,ON) \ -DICONV_INCLUDE_DIR=$(ICONV_PREFIX)/include \ -DICONV_LIBRARIES=$(ICONV_PREFIX)/lib/libiconv.a \ - -DWITH_MAGIC=1 \ - -DWITH_MYSQL=0 \ - -DWITH_CURL=0 \ - -DWITH_INOTIFY=1 \ - -DWITH_JS=0 \ - -DWITH_TAGLIB=0 \ - -DWITH_AVCODEC=0 \ - -DWITH_FFMPEGTHUMBNAILER=0 \ - -DWITH_EXIF=1 \ - -DWITH_EXIV2=0 \ - -DWITH_MATROSKA=0 \ - -DWITH_SYSTEMD=0 \ - -DWITH_LASTFM=0 \ - -DWITH_DEBUG=0 \ - -DWITH_TESTS=0 + -DWITH_MAGIC=ON \ + -DWITH_MYSQL=OFF \ + -DWITH_CURL=OFF \ + -DWITH_INOTIFY=ON \ + -DWITH_JS=OFF \ + -DWITH_TAGLIB=OFF \ + -DWITH_AVCODEC=OFF \ + -DWITH_FFMPEGTHUMBNAILER=OFF \ + -DWITH_EXIF=ON \ + -DWITH_EXIV2=OFF \ + -DWITH_MATROSKA=OFF \ + -DWITH_SYSTEMD=OFF \ + -DWITH_LASTFM=OFF \ + -DWITH_DEBUG=OFF \ + -DWITH_TESTS=OFF TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed diff --git a/multimedia/gerbera/files/gerbera.config b/multimedia/gerbera/files/gerbera.config index 811005a70..f6d7cd8c8 100644 --- a/multimedia/gerbera/files/gerbera.config +++ b/multimedia/gerbera/files/gerbera.config @@ -1,3 +1,4 @@ config gerbera config option enabled '0' + option debug '0' option home '/tmp/gerbera' diff --git a/multimedia/gerbera/files/gerbera.init b/multimedia/gerbera/files/gerbera.init index 2cc0a52bb..59cd171b0 100644 --- a/multimedia/gerbera/files/gerbera.init +++ b/multimedia/gerbera/files/gerbera.init @@ -7,10 +7,12 @@ PROG=/usr/bin/gerbera start_service() { local enabled + local debug local home config_load 'gerbera' config_get_bool enabled config 'enabled' '0' + config_get_bool debug config 'debug' '0' [ "$enabled" -eq 0 ] && { echo "Gerbera not enabled. Please enable in /etc/config/gerbera" @@ -33,6 +35,7 @@ start_service() { procd_set_param user gerbera procd_set_param group gerbera procd_set_param command "$PROG" -c "$home/config.xml" + procd_set_param stdout "$debug" procd_set_param stderr 1 procd_close_instance } diff --git a/multimedia/gerbera/patches/010-iconv.patch b/multimedia/gerbera/patches/010-iconv.patch new file mode 100644 index 000000000..e93746d33 --- /dev/null +++ b/multimedia/gerbera/patches/010-iconv.patch @@ -0,0 +1,21 @@ +--- a/src/util/string_converter.cc ++++ b/src/util/string_converter.cc +@@ -41,15 +41,15 @@ StringConverter::StringConverter(const std::string& from, const std::string& to) + dirty = false; + + cd = iconv_open(to.c_str(), from.c_str()); +- if (cd == reinterpret_cast(-1)) { +- cd = static_cast(nullptr); ++ if (cd == (iconv_t)(-1)) { ++ cd = (iconv_t)(nullptr); + throw_std_runtime_error(std::string("iconv: ") + strerror(errno)); + } + } + + StringConverter::~StringConverter() + { +- if (cd != static_cast(nullptr)) ++ if (cd != (iconv_t)(nullptr)) + iconv_close(cd); + } + diff --git a/sound/upmpdcli/Makefile b/sound/upmpdcli/Makefile index 9cc15bdf4..beb163d33 100644 --- a/sound/upmpdcli/Makefile +++ b/sound/upmpdcli/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=upmpdcli -PKG_VERSION:=1.4.6 +PKG_VERSION:=1.4.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.lesbonscomptes.com/upmpdcli/downloads -PKG_HASH:=80ed85a323a1721a9e2ceb64923cedbf69c45f22fb9bc6853c9c11b46dc83a1d +PKG_HASH:=55dec356c98e16f00b1e547f9f4a1c03756317102e91982f93eca8cc4eda115e PKG_MAINTAINER:=Petko Bordjukov PKG_LICENSE:=LGPL-2.1-or-later @@ -28,7 +28,7 @@ define Package/upmpdcli SECTION:=sound CATEGORY:=Sound URL:=https://www.lesbonscomptes.com/upmpdcli - DEPENDS:=+libupnpp +libmpdclient +libmicrohttpd +jsoncpp + DEPENDS:=+libupnpp +libmpdclient +jsoncpp TITLE:=A UPnP front-end to MPD, the Music Player Daemon USERID:=upmpdcli=89:upmpdcli=89 MENU:=1