aboutsummaryrefslogtreecommitdiff
path: root/pkgs/servers/uhub
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2016-09-07 02:27:39 +0100
committerobadz <obadz-git@obadz.com>2016-09-07 02:30:03 +0100
commit39e197ab1ccad9f1b57c10afe4cfe592a9e40270 (patch)
treeed2e7a4deceff926009ff2f7a50dbffba8a0e6cf /pkgs/servers/uhub
parent1c7270f001d2f701cdbde0bbdfaaf779a3acdf6b (diff)
uhub: 0.4.1 -> 0.5.0 (fixes build)
@ehmry: please have a look so that we can cherry-pick in release-16.09 and move forward on #18209
Diffstat (limited to 'pkgs/servers/uhub')
-rw-r--r--pkgs/servers/uhub/default.nix19
-rw-r--r--pkgs/servers/uhub/plugin-dir.patch24
-rw-r--r--pkgs/servers/uhub/systemd.patch164
3 files changed, 23 insertions, 184 deletions
diff --git a/pkgs/servers/uhub/default.nix b/pkgs/servers/uhub/default.nix
index 0d276c18f2d7..8871c01e1a16 100644
--- a/pkgs/servers/uhub/default.nix
+++ b/pkgs/servers/uhub/default.nix
@@ -3,13 +3,13 @@
assert tlsSupport -> openssl != null;
-let version = "0.4.1"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
name = "uhub-${version}";
+ version = "0.5.0";
src = fetchurl {
url = "http://www.extatic.org/downloads/uhub/uhub-${version}-src.tar.bz2";
- sha256 = "1q0n74fb0h5w0k9fhfkznxb4r46qyfb8g2ss3wflivx4l0m1f9x2";
+ sha256 = "1xcqjz20lxikzn96f4f69mqyl9y985h9g0gyc9f7ckj18q22b5j5";
};
buildInputs = [ cmake sqlite pkgconfig systemd ] ++ stdenv.lib.optional tlsSupport openssl;
@@ -19,14 +19,21 @@ stdenv.mkDerivation {
"mod_welcome"
"mod_logging"
"mod_auth_simple"
- "mod_auth_sqlite"
"mod_chat_history"
"mod_chat_only"
"mod_topic"
"mod_no_guest_downloads"
];
- patches = [ ./plugin-dir.patch ./systemd.patch ];
+ patches = [
+ ./plugin-dir.patch
+
+ # Fixed compilation on systemd > 210
+ (fetchurl {
+ url = "https://github.com/janvidar/uhub/commit/70f2a43f676cdda5961950a8d9a21e12d34993f8.diff";
+ sha256 = "1jp8fvw6f9jh0sdjml9mahkk6p6b96p6rzg2y601mnnbcdj8y8xp";
+ })
+ ];
cmakeFlags = ''
-DSYSTEMD_SUPPORT=ON
@@ -40,4 +47,4 @@ stdenv.mkDerivation {
maintainers = [ maintainers.ehmry ];
platforms = platforms.unix;
};
-} \ No newline at end of file
+}
diff --git a/pkgs/servers/uhub/plugin-dir.patch b/pkgs/servers/uhub/plugin-dir.patch
index 95ebfd6706ff..01cbcbb31cf3 100644
--- a/pkgs/servers/uhub/plugin-dir.patch
+++ b/pkgs/servers/uhub/plugin-dir.patch
@@ -1,23 +1,19 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 40e996e..d3b7e6d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -185,10 +185,16 @@ else()
- # add_definitions(-DDEBUG)
- endif()
+@@ -241,8 +241,14 @@
-+set( PLUGINS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads )
-+
if (UNIX)
- install( TARGETS uhub RUNTIME DESTINATION bin )
-- install( TARGETS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads DESTINATION /usr/lib/uhub/ OPTIONAL )
+ install( TARGETS uhub uhub-passwd RUNTIME DESTINATION bin )
+- install( TARGETS mod_example mod_welcome mod_logging mod_auth_simple mod_auth_sqlite mod_chat_history mod_chat_history_sqlite mod_chat_only mod_topic mod_no_guest_downloads DESTINATION /usr/lib/uhub/ OPTIONAL )
- install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION /etc/uhub OPTIONAL )
+
-+ foreach( PLUGIN ${PLUGINS} )
-+ install( TARGETS ${PLUGIN} DESTINATION $ENV{${PLUGIN}} OPTIONAL )
-+ endforeach( PLUGIN )
++ set( PLUGINS mod_example mod_welcome mod_logging mod_auth_simple mod_chat_history mod_chat_only mod_topic mod_no_guest_downloads )
++
++ foreach( PLUGIN ${PLUGINS} )
++ install( TARGETS ${PLUGIN} DESTINATION $ENV{${PLUGIN}} OPTIONAL )
++ endforeach( PLUGIN )
+
+ install( FILES ${CMAKE_SOURCE_DIR}/doc/uhub.conf ${CMAKE_SOURCE_DIR}/doc/plugins.conf ${CMAKE_SOURCE_DIR}/doc/rules.txt ${CMAKE_SOURCE_DIR}/doc/motd.txt DESTINATION doc/ OPTIONAL )
+ endif()
+
- if (SQLITE_SUPPORT)
- install( TARGETS uhub-passwd RUNTIME DESTINATION bin )
diff --git a/pkgs/servers/uhub/systemd.patch b/pkgs/servers/uhub/systemd.patch
deleted file mode 100644
index 05e7571d18d5..000000000000
--- a/pkgs/servers/uhub/systemd.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 40e996e..fc4fb01 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -19,6 +19,7 @@ option(LINK_SUPPORT "Allow hub linking" OFF)
- option(SSL_SUPPORT "Enable SSL support" ON)
- option(USE_OPENSSL "Use OpenSSL's SSL support" ON )
- option(SQLITE_SUPPORT "Enable SQLite support" ON)
-+option(SYSTEMD_SUPPORT "Enable systemd notify and journal logging" OFF)
- option(ADC_STRESS "Enable the stress tester client" OFF)
-
- find_package(Git)
-@@ -34,6 +35,12 @@ if (SSL_SUPPORT)
- endif()
- endif()
-
-+if (SYSTEMD_SUPPORT)
-+ INCLUDE(FindPkgConfig)
-+ pkg_search_module(SD_DAEMON REQUIRED libsystemd-daemon)
-+ pkg_search_module(SD_JOURNAL REQUIRED libsystemd-journal)
-+endif()
-+
- if (MSVC)
- add_definitions(-D_CRT_SECURE_NO_WARNINGS)
- endif()
-@@ -175,6 +182,18 @@ if(SSL_SUPPORT)
- endif()
- endif()
-
-+if (SYSTEMD_SUPPORT)
-+ target_link_libraries(uhub ${SD_DAEMON_LIBRARIES})
-+ target_link_libraries(uhub ${SD_JOURNAL_LIBRARIES})
-+ target_link_libraries(test ${SD_DAEMON_LIBRARIES})
-+ target_link_libraries(test ${SD_JOURNAL_LIBRARIES})
-+ target_link_libraries(uhub-passwd ${SD_JOURNAL_LIBRARIES})
-+ target_link_libraries(uhub-admin ${SD_JOURNAL_LIBRARIES})
-+ include_directories(${SD_DAEMON_INCLUDE_DIRS})
-+ include_directories(${SD_JOURNAL_INCLUDE_DIRS})
-+ add_definitions(-DSYSTEMD)
-+endif()
-+
- configure_file ("${PROJECT_SOURCE_DIR}/version.h.in" "${PROJECT_SOURCE_DIR}/version.h")
-
- mark_as_advanced(FORCE CMAKE_BUILD_TYPE)
-diff --git a/src/core/main.c b/src/core/main.c
-index bb78672..ac2d2a8 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -19,6 +19,10 @@
-
- #include "uhub.h"
-
-+#ifdef SYSTEMD
-+#include <systemd/sd-daemon.h>
-+#endif
-+
- static int arg_verbose = 5;
- static int arg_fork = 0;
- static int arg_check_config = 0;
-@@ -145,7 +149,16 @@ int main_loop()
- }
- #if !defined(WIN32)
- setup_signal_handlers(hub);
--#endif
-+#ifdef SYSTEMD
-+ /* Notify the service manager that this daemon has
-+ * been successfully initalized and shall enter the
-+ * main loop.
-+ */
-+ sd_notifyf(0, "READY=1\n"
-+ "MAINPID=%lu", (unsigned long) getpid());
-+#endif /* SYSTEMD */
-+
-+#endif /* ! WIN32 */
- }
-
- hub_set_variables(hub, &acl);
-@@ -216,13 +229,17 @@ void print_usage(char* program)
- " -q Quiet mode - no output\n"
- " -f Fork to background\n"
- " -l <file> Log messages to given file (default: stderr)\n"
-- " -L Log messages to syslog\n"
- " -c <file> Specify configuration file (default: " SERVER_CONFIG ")\n"
- " -C Check configuration and return\n"
- " -s Show configuration parameters\n"
- " -S Show configuration parameters, but ignore defaults\n"
- " -h This message\n"
- #ifndef WIN32
-+#ifdef SYSTEMD
-+ " -L Log messages to journal\n"
-+#else
-+ " -L Log messages to syslog\n"
-+#endif
- " -u <user> Run as given user\n"
- " -g <group> Run with given group permissions\n"
- " -p <file> Store pid in file (process id)\n"
-diff --git a/src/util/log.c b/src/util/log.c
-index 42badb3..2d97528 100644
---- a/src/util/log.c
-+++ b/src/util/log.c
-@@ -21,7 +21,15 @@
- #include <locale.h>
-
- #ifndef WIN32
-+
-+#ifdef SYSTEMD
-+#define SD_JOURNAL_SUPPRESS_LOCATION
-+#include <systemd/sd-journal.h>
-+
-+#else
- #include <syslog.h>
-+#endif
-+
- static int use_syslog = 0;
- #endif
-
-@@ -83,7 +91,9 @@ void hub_log_initialize(const char* file, int syslog)
- if (syslog)
- {
- use_syslog = 1;
-+ #ifndef SYSTEMD
- openlog("uhub", LOG_PID, LOG_USER);
-+ #endif
- }
- #endif
-
-@@ -132,7 +142,9 @@ void hub_log_shutdown()
- if (use_syslog)
- {
- use_syslog = 0;
-+ #ifndef SYSTEMD
- closelog();
-+ #endif
- }
- #endif
- }
-@@ -212,7 +224,12 @@ void hub_log(int log_verbosity, const char *format, ...)
- case log_fatal: level = LOG_CRIT; break;
- case log_error: level = LOG_ERR; break;
- case log_warning: level = LOG_WARNING; break;
-- case log_user: level = LOG_INFO | LOG_AUTH; break;
-+ #ifdef SYSTEMD
-+ case log_user: level = LOG_INFO; break;
-+
-+ #else
-+ case log_user: level = LOG_INFO | LOG_AUTH; break;
-+ #endif
- case log_info: level = LOG_INFO; break;
- case log_debug: level = LOG_DEBUG; break;
-
-@@ -224,8 +241,13 @@ void hub_log(int log_verbosity, const char *format, ...)
- if (level == 0)
- return;
-
-+ #ifdef SYSTEMD
-+ sd_journal_print(level, "%s", logmsg);
-+
-+ #else
- level |= (LOG_USER | LOG_DAEMON);
- syslog(level, "%s", logmsg);
-+ #endif
- }
- #endif
-