Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uMurmur: update and add DSM 7 compatibility #4990

Merged
merged 6 commits into from
Dec 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions cross/libconfig/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = libconfig
PKG_VERS = 1.7.2
PKG_VERS = 1.7.3
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://hyperrealm.github.io/libconfig/dist
Expand All @@ -8,8 +8,8 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
DEPENDS =

HOMEPAGE = https://hyperrealm.github.io/libconfig/
COMMENT = Simple library for processing structured configuration files
LICENSE =
COMMENT = Simple library for processing structured configuration files.
LICENSE = LGPL-2.1

GNU_CONFIGURE = 1

Expand Down
8 changes: 4 additions & 4 deletions cross/libconfig/PLIST
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
lnk:lib/libconfig.so
lnk:lib/libconfig.so.11
lib:lib/libconfig.so.11.0.2
lnk:lib/libconfig++.so
lnk:lib/libconfig++.so.11
lib:lib/libconfig++.so.11.0.2
lib:lib/libconfig++.so.11.1.0
lnk:lib/libconfig.so
lnk:lib/libconfig.so.11
lib:lib/libconfig.so.11.1.0
6 changes: 3 additions & 3 deletions cross/libconfig/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
libconfig-1.7.2.tar.gz SHA1 1da1e7f4e0e376582a8414d2be1acc9dbf6649b5
libconfig-1.7.2.tar.gz SHA256 7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9
libconfig-1.7.2.tar.gz MD5 6bd98ee3a6e6b9126c82c916d7a9e690
libconfig-1.7.3.tar.gz SHA1 4047db15a9a53bf1a680226eef56c8997ceaf124
libconfig-1.7.3.tar.gz SHA256 545166d6cac037744381d1e9cc5a5405094e7bfad16a411699bcff40bbb31ee7
libconfig-1.7.3.tar.gz MD5 15ec701205f91f21b1187f8b61e0d64f
20 changes: 20 additions & 0 deletions cross/mbedtls/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
PKG_NAME = mbedtls
PKG_VERS = 2.27.0
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/ARMmbed/mbedtls/archive
PKG_DIR = $(PKG_NAME)-$(PKG_NAME)-$(PKG_VERS)

DEPENDS =

HOMEPAGE = https://tls.mbed.org
COMMENT = mbed TLS (formerly known as PolarSSL) makes it trivially easy for developers to include cryptographic and SSL/TLS capabilities in their (embedded) products, facilitating this functionality with a minimal coding footprint.
LICENSE = Apache 2.0

ADDITIONAL_CFLAGS = -std=c99

CMAKE_ARGS = -DUSE_SHARED_MBEDTLS_LIBRARY=On
CMAKE_ARGS += -DENABLE_TESTING=Off
CMAKE_ARGS += -DENABLE_PROGRAMS=Off

include ../../mk/spksrc.cross-cmake.mk
9 changes: 9 additions & 0 deletions cross/mbedtls/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
lnk:lib/libmbedcrypto.so
lib:lib/libmbedcrypto.so.2.27.0
lnk:lib/libmbedcrypto.so.7
lnk:lib/libmbedtls.so
lnk:lib/libmbedtls.so.13
lib:lib/libmbedtls.so.2.27.0
lnk:lib/libmbedx509.so
lib:lib/libmbedx509.so.1
lib:lib/libmbedx509.so.2.27.0
3 changes: 3 additions & 0 deletions cross/mbedtls/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mbedtls-2.27.0.tar.gz SHA1 035843f9d4c9ce06bd10d55d8c31a328bfb8ef5d
mbedtls-2.27.0.tar.gz SHA256 4f6a43f06ded62aa20ef582436a39b65902e1126cbbe2fb17f394e9e9a552767
mbedtls-2.27.0.tar.gz MD5 066f9a09d2d5cc5e3a60740c8b5d7964
38 changes: 38 additions & 0 deletions cross/mbedtls/patches/000.fix-for-i386-with-older-gcc.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# fix for:
# "MPI inline assembly doesn't compile for PIC on i386 with older gcc"
# https://github.com/ARMmbed/mbedtls/issues/1910
#
# bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5 #1986
#
--- include/mbedtls/bn_mul.h.orig 2021-07-06 11:59:58.000000000 +0000
+++ include/mbedtls/bn_mul.h 2021-12-04 08:53:10.640974206 +0000
@@ -95,12 +95,28 @@
( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 )

/*
+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a
+ * fixed reserved register when building as PIC, leading to errors
+ * like: bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’
+ *
+ * This is fixed by an improved register allocator in GCC 5+. From the
+ * release notes:
+ * Register allocation improvements: Reuse of the PIC hard register,
+ * instead of using a fixed register, was implemented on x86/x86-64
+ * targets. This improves generated PIC code performance as more hard
+ * registers can be used.
+ */
+#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__)
+#define MULADDC_CANNOT_USE_EBX
+#endif
+
+/*
* Disable use of the i386 assembly code below if option -O0, to disable all
* compiler optimisations, is passed, detected with __OPTIMIZE__
* This is done as the number of registers used in the assembly code doesn't
* work with the -O0 option.
*/
-#if defined(__i386__) && defined(__OPTIMIZE__)
+#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX)

#define MULADDC_INIT \
asm( \
6 changes: 3 additions & 3 deletions cross/protobuf-c/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = protobuf-c
PKG_VERS = 1.3.0
PKG_VERS = 1.4.0
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/protobuf-c/protobuf-c/releases/download/v$(PKG_VERS)
Expand All @@ -8,8 +8,8 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
DEPENDS =

HOMEPAGE = https://github.com/protobuf-c/protobuf-c
COMMENT = Protocol Buffers implementation in C
LICENSE = BSD-2-Clause
COMMENT = Protocol Buffers implementation in C.
LICENSE = 2-Clause BSD

GNU_CONFIGURE = 1
CONFIGURE_ARGS = --disable-protoc
Expand Down
6 changes: 3 additions & 3 deletions cross/protobuf-c/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
protobuf-c-1.3.0.tar.gz SHA1 804225b297c06ab10e77ca8062e5c62b40341479
protobuf-c-1.3.0.tar.gz SHA256 5dc9ad7a9b889cf7c8ff6bf72215f1874a90260f60ad4f88acf21bb15d2752a1
protobuf-c-1.3.0.tar.gz MD5 08804f8bdbb3d6d44c2ec9e71e47ef6f
protobuf-c-1.4.0.tar.gz SHA1 7ffd744c2feaa028fdaffc821afdf175c4a3b38b
protobuf-c-1.4.0.tar.gz SHA256 26d98ee9bf18a6eba0d3f855ddec31dbe857667d269bc0b6017335572f85bbcb
protobuf-c-1.4.0.tar.gz MD5 10e1103a012ce0877c32367949a2fa6e
23 changes: 14 additions & 9 deletions cross/umurmur/Makefile
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
PKG_NAME = umurmur
PKG_VERS = 0.2.17
PKG_VERS = 0.2.20
PKG_EXT = tar.gz
PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_NAME = $(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/umurmur/umurmur/archive
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/libconfig cross/protobuf-c cross/openssl
DEPENDS = cross/libconfig cross/protobuf-c cross/mbedtls

HOMEPAGE = https://github.com/umurmur/umurmur
COMMENT = Minimalistic Murmur (Mumble server)
LICENSE = BSD 3-clause License
COMMENT = uMurmur is a minimalistic Mumble server.
LICENSE = 3-clause BSD

CMAKE_USE_DESTDIR = 0
# 'cmake install' does not handle INSTALL_PREFIX/DESTDIR as expected.
INSTALL_TARGET = umurmur_install

CMAKE_ARGS = -DSSL=mbedtls
# let cmake find include and library of mbedtls
CMAKE_ARGS += -DCMAKE_STAGING_PREFIX=$(STAGING_INSTALL_PREFIX)

include ../../mk/spksrc.cross-cmake.mk

# Mandatory umurmur cmake
# args for proper build
CMAKE_ARGS += -DSSL=openssl
CMAKE_ARGS += -DCMAKE_STAGING_PREFIX=$(STAGING_INSTALL_PREFIX)
.PHONY: umurmur_install
umurmur_install:
install -d -m 755 $(STAGING_INSTALL_PREFIX)/bin
install -m 755 $(CMAKE_BUILD_DIR)/bin/umurmurd $(STAGING_INSTALL_PREFIX)/bin
6 changes: 3 additions & 3 deletions cross/umurmur/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
umurmur-0.2.17.tar.gz SHA1 f1d41e6fa170b663ec7fcff2c8fe8cd745f8af50
umurmur-0.2.17.tar.gz SHA256 e77b7b6616768f4a1c07442afe49a772692f667b00c23cc85909d4dd0ce206d2
umurmur-0.2.17.tar.gz MD5 b06566c896a8b4ac32ca00920c8dd093
umurmur-0.2.20.tar.gz SHA1 6ce73ae86c14aba286d7ac648402fa5f815a7bfa
umurmur-0.2.20.tar.gz SHA256 b7b2978c3197aef0a6531f1cf0ee1aebb32a55ad8bda43064ce3a944edbcac83
umurmur-0.2.20.tar.gz MD5 627902817019aa57e5bbf11002bfa4e6
19 changes: 16 additions & 3 deletions mk/spksrc.cross-cmake-env.mk
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ ifeq ($(findstring $(ARCH),$(ARMv5_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_SYSTEM_PROCESSOR=armv5
endif
ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS) $(ARMv7L_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_CXX_FLAGS=-fPIC -DCROSS_COMPILE_ARM=ON
CMAKE_ARGS += -DCMAKE_CXX_FLAGS="-fPIC $(ADDITIONAL_CXXFLAGS)" -DCROSS_COMPILE_ARM=ON
CMAKE_ARGS += -DCMAKE_SYSTEM_PROCESSOR=armv7
endif
ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_CXX_FLAGS=-fPIC -DCROSS_COMPILE_ARM=ON
CMAKE_ARGS += -DCMAKE_CXX_FLAGS="-fPIC $(ADDITIONAL_CXXFLAGS)" -DCROSS_COMPILE_ARM=ON
CMAKE_ARGS += -DCMAKE_SYSTEM_PROCESSOR=aarch64
endif
ifeq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_C_FLAGS="-mcpu=8548 -mhard-float -mfloat-gprs=double"
CMAKE_ARGS += -DCMAKE_C_FLAGS="-mcpu=8548 -mhard-float -mfloat-gprs=double $(ADDITIONAL_CFLAGS)"
CMAKE_ARGS += -DCMAKE_SYSTEM_PROCESSOR=ppc
endif
ifeq ($(findstring $(ARCH),$(i686_ARCHS)),$(ARCH))
Expand All @@ -78,3 +78,16 @@ endif
ifeq ($(findstring $(ARCH),$(x64_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DARCH=64
endif
ifneq ($(strip $(ADDITIONAL_CFLAGS)),)
# define cflags if not applied above
ifneq ($(findstring $(ARCH), $(PPC_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_C_FLAGS="$(ADDITIONAL_CFLAGS)"
endif
endif
ifneq ($(strip $(ADDITIONAL_CXXFLAGS)),)
# define cxxflags if not applied above
ifneq ($(findstring $(ARCH), $(ARMv7_ARCHS) $(ARMv8_ARCHS)),$(ARCH))
CMAKE_ARGS += -DCMAKE_CXX_FLAGS="$(ADDITIONAL_CXXFLAGS)"
endif
endif

26 changes: 10 additions & 16 deletions spk/umurmur/Makefile
Original file line number Diff line number Diff line change
@@ -1,37 +1,31 @@
SPK_NAME = umurmur
SPK_VERS = 0.2.17
SPK_VERS = 0.2.20
SPK_REV = 8
SPK_ICON = src/umurmur.png
DSM_UI_DIR = app

DEPENDS = cross/$(SPK_NAME)

MAINTAINER = Diaoul
DESCRIPTION = uMurmur is a minimalistic VoIP server based on the open source software Mumble. It allows simultaneous communications between multiple users. Its low latency makes it especially suitable for communications during online gaming. The Mumble client is available at http://mumble.sourceforge.net/ \(Windows, Mac, Linux and iOS\).
DESCRIPTION_FRE = uMurmur est un serveur minimaliste de voix sur IP basé sur le logiciel libre Mumble. Il rend possible la communication entre plusieurs interlocuteurs de manière simultanée. Sa faible latence le rend particulièrement adapté aux communications pendant les parties de jeux en réseau. Le client Mumble est téléchargeable à l\'adresse http://mumble.sourceforge.net/ \(Windows, Mac, Linux et iOS\).
DESCRIPTION_SPN = uMurmur es un servidor VoIP minimalista basado en el software de codigo abierto Mumble. Permite comunicaciones simultáneas entre múltiples usuarios. Su baja latencia lo hace especialmente adecuado para comunicarse durante un juego en linea. El cliente Mumble está disponible en http://mumble.sourceforge.net/ \(Windows, Mac, Linux and iOS\).
RELOAD_UI = yes
DESCRIPTION = uMurmur is a minimalistic VoIP server based on the open source software Mumble. It allows simultaneous communications between multiple users. Its low latency makes it especially suitable for communications during online gaming. The Mumble client is available at https://dl.mumble.info/stable/ \(Windows, Mac, Linux and iOS\).
DESCRIPTION_FRE = uMurmur est un serveur minimaliste de voix sur IP basé sur le logiciel libre Mumble. Il rend possible la communication entre plusieurs interlocuteurs de manière simultanée. Sa faible latence le rend particulièrement adapté aux communications pendant les parties de jeux en réseau. Le client Mumble est téléchargeable à l\'adresse https://dl.mumble.info/stable/ \(Windows, Mac, Linux et iOS\).
DESCRIPTION_SPN = uMurmur es un servidor VoIP minimalista basado en el software de codigo abierto Mumble. Permite comunicaciones simultáneas entre múltiples usuarios. Su baja latencia lo hace especialmente adecuado para comunicarse durante un juego en linea. El cliente Mumble está disponible en https://dl.mumble.info/stable/ \(Windows, Mac, Linux and iOS\).
DISPLAY_NAME = uMurmur
CHANGELOG = "Update openssl to 1.1."
STARTABLE = yes
CHANGELOG = "1. Update uMurmur to v0.2.20<br/>2. Use mbedtls instead of openssl.<br/>3. Update for DSM 7 compatibility."

STARTABLE = yes
SERVICE_USER = auto
# SERVICE_COMMAND is provided there
SERVICE_SETUP = src/service-setup.sh

HOMEPAGE = https://github.com/umurmur/umurmur
LICENSE = BSD 3-clause License
HOMEPAGE = https://umurmur.net/
LICENSE = 3-clause BSD

POST_STRIP_TARGET = umurmur_extra_install

include ../../mk/spksrc.spk.mk

.PHONY: umurmur_extra_install
umurmur_extra_install:
install -m 755 -d $(STAGING_DIR)/var
install -m 755 -d $(STAGING_DIR)/var $(STAGING_DIR)/app
install -m 644 src/umurmur.conf $(STAGING_DIR)/var/umurmur.conf
install -m 755 -d $(STAGING_DIR)/sbin
install -m 755 src/gencert.sh $(STAGING_DIR)/sbin/gencert.sh
install -m 755 -d $(STAGING_DIR)/app
install -m 644 src/app/config $(STAGING_DIR)/app/config
install -m 755 src/app/umurmur.cgi.pl $(STAGING_DIR)/app/umurmur.cgi
install -m 755 src/app/umurmur.cgi.sh $(STAGING_DIR)/app/umurmur.cgi
11 changes: 0 additions & 11 deletions spk/umurmur/src/app/umurmur.cgi.pl

This file was deleted.

12 changes: 12 additions & 0 deletions spk/umurmur/src/app/umurmur.cgi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

echo Content-type: text/html
echo

cat << EOF

<HTML>

<meta http-equiv="Refresh" content="1; url="mumble://$ENV{SERVER_NAME}/?version=1.2.4">

</HTML>
19 changes: 0 additions & 19 deletions spk/umurmur/src/gencert.sh

This file was deleted.

Loading