diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-10-17 14:16:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-10-17 14:16:38 +0000 |
commit | e1b3d592f43a99f4ed7c91971deda6ce8414dd69 (patch) | |
tree | 38fecdc19b201d4d28df13c22e9b3b45bb469e4b /core | |
parent | d286d980d2ff42151e9bc81ec348c864c24f9cc4 (diff) |
Mon Oct 17 14:16:38 UTC 2011
Diffstat (limited to 'core')
-rw-r--r-- | core/logrotate/logrotate-3.8.0-noasprintf.patch | 55 | ||||
-rw-r--r-- | core/mpfr/mpfr-3.0.1.p4.patch | 367 | ||||
-rw-r--r-- | core/syslog-ng/cap_syslog.patch | 101 | ||||
-rw-r--r-- | core/syslog-ng/non-blocking-systemd-fds.patch | 32 |
4 files changed, 0 insertions, 555 deletions
diff --git a/core/logrotate/logrotate-3.8.0-noasprintf.patch b/core/logrotate/logrotate-3.8.0-noasprintf.patch deleted file mode 100644 index b9464e230..000000000 --- a/core/logrotate/logrotate-3.8.0-noasprintf.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff '--exclude-from=/home/dang/.scripts/diffrc' -up -ruN logrotate-3.8.0.orig/config.c logrotate-3.8.0/config.c ---- logrotate-3.8.0.orig/config.c 2011-06-21 04:12:02.000000000 -0400 -+++ logrotate-3.8.0/config.c 2011-07-12 13:47:36.274319050 -0400 -@@ -41,39 +41,6 @@ - #endif - #endif - --#if !defined(asprintf) --#include <stdarg.h> -- --int asprintf(char **string_ptr, const char *format, ...) --{ -- va_list arg; -- char *str; -- int size; -- int rv; -- -- va_start(arg, format); -- size = vsnprintf(NULL, 0, format, arg); -- size++; -- va_start(arg, format); -- str = malloc(size); -- if (str == NULL) { -- va_end(arg); -- /* -- * Strictly speaking, GNU asprintf doesn't do this, -- * but the caller isn't checking the return value. -- */ -- fprintf(stderr, "failed to allocate memory\\n"); -- exit(1); -- } -- rv = vsnprintf(str, size, format, arg); -- va_end(arg); -- -- *string_ptr = str; -- return (rv); --} -- --#endif -- - enum { - STATE_DEFAULT = 2, - STATE_SKIP_LINE = 4, -diff '--exclude-from=/home/dang/.scripts/diffrc' -up -ruN logrotate-3.8.0.orig/logrotate.h logrotate-3.8.0/logrotate.h ---- logrotate-3.8.0.orig/logrotate.h 2011-06-21 04:12:02.000000000 -0400 -+++ logrotate-3.8.0/logrotate.h 2011-07-12 13:47:38.949285608 -0400 -@@ -66,8 +66,5 @@ extern int numLogs; - extern int debug; - - int readAllConfigPaths(const char **paths); --#if !defined(asprintf) --int asprintf(char **string_ptr, const char *format, ...); --#endif - - #endif diff --git a/core/mpfr/mpfr-3.0.1.p4.patch b/core/mpfr/mpfr-3.0.1.p4.patch deleted file mode 100644 index 9604635a2..000000000 --- a/core/mpfr/mpfr-3.0.1.p4.patch +++ /dev/null @@ -1,367 +0,0 @@ -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-04-12 10:50:02.000000000 +0000 -@@ -0,0 +1 @@ -+asin_exprange -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-04-12 10:50:02.000000000 +0000 -@@ -1 +1 @@ --3.0.1 -+3.0.1-p1 -diff -Naurd mpfr-3.0.1-a/asin.c mpfr-3.0.1-b/asin.c ---- mpfr-3.0.1-a/asin.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/asin.c 2011-04-12 10:50:02.000000000 +0000 -@@ -63,11 +63,14 @@ - - compared = mpfr_cmp_ui (xp, 1); - -+ MPFR_SAVE_EXPO_MARK (expo); -+ - if (MPFR_UNLIKELY (compared >= 0)) - { - mpfr_clear (xp); - if (compared > 0) /* asin(x) = NaN for |x| > 1 */ - { -+ MPFR_SAVE_EXPO_FREE (expo); - MPFR_SET_NAN (asin); - MPFR_RET_NAN; - } -@@ -80,13 +83,11 @@ - inexact = -mpfr_const_pi (asin, MPFR_INVERT_RND(rnd_mode)); - MPFR_CHANGE_SIGN (asin); - } -- mpfr_div_2ui (asin, asin, 1, rnd_mode); /* May underflow */ -- return inexact; -+ mpfr_div_2ui (asin, asin, 1, rnd_mode); - } - } -- -- MPFR_SAVE_EXPO_MARK (expo); -- -+ else -+ { - /* Compute exponent of 1 - ABS(x) */ - mpfr_ui_sub (xp, 1, xp, MPFR_RNDD); - MPFR_ASSERTD (MPFR_GET_EXP (xp) <= 0); -@@ -115,6 +116,7 @@ - inexact = mpfr_set (asin, xp, rnd_mode); - - mpfr_clear (xp); -+ } - - MPFR_SAVE_EXPO_FREE (expo); - return mpfr_check_range (asin, inexact, rnd_mode); -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-04-12 10:50:02.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1" -+#define MPFR_VERSION_STRING "3.0.1-p1" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/tasin.c mpfr-3.0.1-b/tests/tasin.c ---- mpfr-3.0.1-a/tests/tasin.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/tasin.c 2011-04-12 10:50:02.000000000 +0000 -@@ -219,6 +219,49 @@ - mpfr_clear (y); - } - -+static void -+reduced_expo_range (void) -+{ -+ mpfr_exp_t emin, emax; -+ mpfr_t x, y, ex_y; -+ int inex, ex_inex; -+ unsigned int flags, ex_flags; -+ -+ emin = mpfr_get_emin (); -+ emax = mpfr_get_emax (); -+ -+ mpfr_inits2 (4, x, y, ex_y, (mpfr_ptr) 0); -+ mpfr_set_str (x, "-0.1e1", 2, MPFR_RNDN); -+ -+ mpfr_set_emin (1); -+ mpfr_set_emax (1); -+ mpfr_clear_flags (); -+ inex = mpfr_asin (y, x, MPFR_RNDA); -+ flags = __gmpfr_flags; -+ mpfr_set_emin (emin); -+ mpfr_set_emax (emax); -+ -+ mpfr_set_str (ex_y, "-0.1101e1", 2, MPFR_RNDN); -+ ex_inex = -1; -+ ex_flags = MPFR_FLAGS_INEXACT; -+ -+ if (SIGN (inex) != ex_inex || flags != ex_flags || -+ ! mpfr_equal_p (y, ex_y)) -+ { -+ printf ("Error in reduced_expo_range\non x = "); -+ mpfr_dump (x); -+ printf ("Expected y = "); -+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags); -+ printf ("Got y = "); -+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags); -+ exit (1); -+ } -+ -+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0); -+} -+ - int - main (void) - { -@@ -226,6 +269,7 @@ - - special (); - special_overflow (); -+ reduced_expo_range (); - - test_generic (2, 100, 15); - -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-04-12 10:50:02.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1"; -+ return "3.0.1-p1"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-04 11:18:33.000000000 +0000 -@@ -0,0 +1 @@ -+rec_sqrt-carry -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-04 11:18:33.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p1 -+3.0.1-p2 -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-04 11:18:33.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p1" -+#define MPFR_VERSION_STRING "3.0.1-p2" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/rec_sqrt.c mpfr-3.0.1-b/rec_sqrt.c ---- mpfr-3.0.1-a/rec_sqrt.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/rec_sqrt.c 2011-05-04 11:18:33.000000000 +0000 -@@ -375,20 +375,37 @@ - MPFR_ASSERTD(un == ln + 1 || un == ln + 2); - /* the high un-ln limbs of u will overlap the low part of {x+ln,xn}, - we need to add or subtract the overlapping part {u + ln, un - ln} */ -+ /* Warning! th may be 0, in which case the mpn_add_1 and mpn_sub_1 -+ below (with size = th) mustn't be used. In such a case, the limb -+ (carry) will be 0, so that this is semantically a no-op, but if -+ mpn_add_1 and mpn_sub_1 are used, GMP (currently) still does a -+ non-atomic read/write in a place that is not always allocated, -+ with the possible consequences: a crash if the corresponding -+ address is not mapped, or (rather unlikely) memory corruption -+ if another process/thread writes at the same place; things may -+ be worse with future GMP versions. Hence the tests carry != 0. */ - if (neg == 0) - { - if (ln > 0) - MPN_COPY (x, u, ln); - cy = mpn_add (x + ln, x + ln, xn, u + ln, un - ln); - /* add cu at x+un */ -- cy += mpn_add_1 (x + un, x + un, th, cu); -+ if (cu != 0) -+ { -+ MPFR_ASSERTD (th != 0); -+ cy += mpn_add_1 (x + un, x + un, th, cu); -+ } - } - else /* negative case */ - { - /* subtract {u+ln, un-ln} from {x+ln,un} */ - cy = mpn_sub (x + ln, x + ln, xn, u + ln, un - ln); - /* carry cy is at x+un, like cu */ -- cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */ -+ if (cy + cu != 0) -+ { -+ MPFR_ASSERTD (th != 0); -+ cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */ -+ } - /* cy cannot be zero, since the most significant bit of Xh is 1, - and the correction is bounded by 2^{-h+3} */ - MPFR_ASSERTD(cy == 0); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-04-12 10:50:02.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-04 11:18:33.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p1"; -+ return "3.0.1-p2"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-05 00:00:35.000000000 +0000 -@@ -0,0 +1 @@ -+atan-expo-range -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-05 00:00:35.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p2 -+3.0.1-p3 -diff -Naurd mpfr-3.0.1-a/atan.c mpfr-3.0.1-b/atan.c ---- mpfr-3.0.1-a/atan.c 2011-04-04 10:19:18.000000000 +0000 -+++ mpfr-3.0.1-b/atan.c 2011-05-05 00:00:35.000000000 +0000 -@@ -431,5 +431,5 @@ - MPFR_GROUP_CLEAR (group); - - MPFR_SAVE_EXPO_FREE (expo); -- return mpfr_check_range (arctgt, inexact, rnd_mode); -+ return mpfr_check_range (atan, inexact, rnd_mode); - } -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-05 00:00:35.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p2" -+#define MPFR_VERSION_STRING "3.0.1-p3" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/tatan.c mpfr-3.0.1-b/tests/tatan.c ---- mpfr-3.0.1-a/tests/tatan.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/tatan.c 2011-05-05 00:00:35.000000000 +0000 -@@ -535,6 +535,52 @@ - mpfr_clears (a, x, y, (mpfr_ptr) 0); - } - -+/* http://websympa.loria.fr/wwsympa/arc/mpfr/2011-05/msg00008.html -+ * Incorrect flags (in debug mode on a 32-bit machine, assertion failure). -+ */ -+static void -+reduced_expo_range (void) -+{ -+ mpfr_exp_t emin, emax; -+ mpfr_t x, y, ex_y; -+ int inex, ex_inex; -+ unsigned int flags, ex_flags; -+ -+ emin = mpfr_get_emin (); -+ emax = mpfr_get_emax (); -+ -+ mpfr_inits2 (12, x, y, ex_y, (mpfr_ptr) 0); -+ mpfr_set_str (x, "0.1e-5", 2, MPFR_RNDN); -+ -+ mpfr_set_emin (-5); -+ mpfr_set_emax (-5); -+ mpfr_clear_flags (); -+ inex = mpfr_atan (y, x, MPFR_RNDN); -+ flags = __gmpfr_flags; -+ mpfr_set_emin (emin); -+ mpfr_set_emax (emax); -+ -+ mpfr_set_str (ex_y, "0.1e-5", 2, MPFR_RNDN); -+ ex_inex = 1; -+ ex_flags = MPFR_FLAGS_INEXACT; -+ -+ if (SIGN (inex) != ex_inex || flags != ex_flags || -+ ! mpfr_equal_p (y, ex_y)) -+ { -+ printf ("Error in reduced_expo_range\non x = "); -+ mpfr_dump (x); -+ printf ("Expected y = "); -+ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags); -+ printf ("Got y = "); -+ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN); -+ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags); -+ exit (1); -+ } -+ -+ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -546,6 +592,7 @@ - smallvals_atan2 (); - atan2_bug_20071003 (); - atan2_different_prec (); -+ reduced_expo_range (); - - test_generic_atan (2, 200, 17); - test_generic_atan2 (2, 200, 17); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-05-04 11:18:33.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-05 00:00:35.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p2"; -+ return "3.0.1-p3"; - } -diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES ---- mpfr-3.0.1-a/PATCHES 2011-05-09 14:48:24.000000000 +0000 -+++ mpfr-3.0.1-b/PATCHES 2011-05-09 14:48:24.000000000 +0000 -@@ -0,0 +1 @@ -+texp-zero -diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION ---- mpfr-3.0.1-a/VERSION 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/VERSION 2011-05-09 14:48:24.000000000 +0000 -@@ -1 +1 @@ --3.0.1-p3 -+3.0.1-p4 -diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h ---- mpfr-3.0.1-a/mpfr.h 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/mpfr.h 2011-05-09 14:48:24.000000000 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 3 - #define MPFR_VERSION_MINOR 0 - #define MPFR_VERSION_PATCHLEVEL 1 --#define MPFR_VERSION_STRING "3.0.1-p3" -+#define MPFR_VERSION_STRING "3.0.1-p4" - - /* Macros dealing with MPFR VERSION */ - #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) -diff -Naurd mpfr-3.0.1-a/tests/texp.c mpfr-3.0.1-b/tests/texp.c ---- mpfr-3.0.1-a/tests/texp.c 2011-04-04 10:19:17.000000000 +0000 -+++ mpfr-3.0.1-b/tests/texp.c 2011-05-09 14:48:24.000000000 +0000 -@@ -170,7 +170,9 @@ - mpfr_set_prec (x, prec); - mpfr_set_prec (y, prec); - mpfr_set_prec (z, prec); -- mpfr_urandomb (x, RANDS); -+ do -+ mpfr_urandomb (x, RANDS); -+ while (MPFR_IS_ZERO (x)); /* 0 is handled by mpfr_exp only */ - rnd = RND_RAND (); - mpfr_exp_2 (y, x, rnd); - mpfr_exp_3 (z, x, rnd); -diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c ---- mpfr-3.0.1-a/version.c 2011-05-05 00:00:35.000000000 +0000 -+++ mpfr-3.0.1-b/version.c 2011-05-09 14:48:24.000000000 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "3.0.1-p3"; -+ return "3.0.1-p4"; - } diff --git a/core/syslog-ng/cap_syslog.patch b/core/syslog-ng/cap_syslog.patch deleted file mode 100644 index b6e6db6e4..000000000 --- a/core/syslog-ng/cap_syslog.patch +++ /dev/null @@ -1,101 +0,0 @@ -diff --git a/lib/gprocess.h b/lib/gprocess.h -index cda35b0..5c449f7 100644 ---- a/lib/gprocess.h -+++ b/lib/gprocess.h -@@ -28,9 +28,14 @@ - #include "syslog-ng.h" - - #include <sys/types.h> -+#include <sys/utsname.h> - - #if ENABLE_LINUX_CAPS - # include <sys/capability.h> -+# -+# ifndef CAP_SYSLOG -+# define CAP_SYSLOG 34 -+# endif - #endif - - typedef enum -@@ -78,5 +83,8 @@ void g_process_finish(void); - - void g_process_add_option_group(GOptionContext *ctx); - -+extern int kernel_version; -+extern void get_kernel_version(void); -+#define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z) - - #endif -diff --git a/modules/affile/affile.c b/modules/affile/affile.c -index e145324..886fa72 100644 ---- a/modules/affile/affile.c -+++ b/modules/affile/affile.c -@@ -59,7 +59,12 @@ affile_open_file(gchar *name, gint flags, - if (privileged) - { - g_process_cap_modify(CAP_DAC_READ_SEARCH, TRUE); -- g_process_cap_modify(CAP_SYS_ADMIN, TRUE); -+ if (!kernel_version) -+ get_kernel_version(); -+ if (kernel_version < LINUX_VERSION(2, 6, 38)) -+ g_process_cap_modify(CAP_SYS_ADMIN, TRUE); -+ else -+ g_process_cap_modify(CAP_SYSLOG, TRUE); - } - else - { -diff --git a/syslog-ng/main.c b/syslog-ng/main.c -index 9880c1f..ee5031b 100644 ---- a/syslog-ng/main.c -+++ b/syslog-ng/main.c -@@ -67,6 +67,7 @@ static gboolean syntax_only = FALSE; - static gboolean display_version = FALSE; - static gchar *ctlfilename = PATH_CONTROL_SOCKET; - static gchar *preprocess_into = NULL; -+int kernel_version; - - static volatile sig_atomic_t sig_hup_received = FALSE; - static volatile sig_atomic_t sig_term_received = FALSE; -@@ -363,6 +364,20 @@ version(void) - ON_OFF_STR(ENABLE_PACCT_MODULE)); - } - -+void -+get_kernel_version(void) { -+ static struct utsname uts; -+ int x = 0, y = 0, z = 0; -+ -+ if (uname(&uts) == -1) { -+ fprintf(stderr, "Unable to retrieve kernel version.\n"); -+ exit(1); -+ } -+ -+ sscanf(uts.release, "%d.%d.%d", &x, &y, &z); -+ kernel_version = LINUX_VERSION(x, y, z); -+} -+ - int - main(int argc, char *argv[]) - { -@@ -379,9 +394,20 @@ main(int argc, char *argv[]) - * indicate readability. Enabling/disabling cap_sys_admin on every poll - * invocation seems to be too expensive. So I enable it for now. */ - -- g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw," -+ if (!kernel_version) -+ get_kernel_version(); -+ if (kernel_version < LINUX_VERSION(2, 6, 34)) -+ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw," - "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner=p " - "cap_sys_admin=ep"); -+ else if (kernel_version < LINUX_VERSION(2, 6, 38)) -+ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw," -+ "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner," -+ "cap_sys_admin=p"); -+ else -+ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw," -+ "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner," -+ "cap_syslog=p"); - ctx = g_option_context_new("syslog-ng"); - g_process_add_option_group(ctx); - msg_add_option_group(ctx); diff --git a/core/syslog-ng/non-blocking-systemd-fds.patch b/core/syslog-ng/non-blocking-systemd-fds.patch deleted file mode 100644 index bd056088b..000000000 --- a/core/syslog-ng/non-blocking-systemd-fds.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2f214c4f87d944aa28d53e331a67b1fd88d9840f Mon Sep 17 00:00:00 2001 -From: Balazs Scheidler <bazsi@balabit.hu> -Date: Wed, 22 Jun 2011 12:50:53 +0200 -Subject: [PATCH] systemd: make sure the acquired fd is in non-blocking mode - -The fd acquired from systemd is in blocking mode, and syslog-ng -didn't explicitly set it to non-blocking, causing syslog-ng -to stall. This patch changes that, explicitly enables -O_NONBLOCK and O_CLOEXEC on systemd acquired fds. - -Reported-By: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> -Signed-off-by: Balazs Scheidler <bazsi@balabit.hu> ---- - modules/afsocket/afunix.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/modules/afsocket/afunix.c b/modules/afsocket/afunix.c -index cd9c205..9a4e37b 100644 ---- a/modules/afsocket/afunix.c -+++ b/modules/afsocket/afunix.c -@@ -108,6 +108,8 @@ afunix_sd_acquire_socket(AFSocketSourceDriver *s, gint *result_fd) - - if (*result_fd != -1) - { -+ g_fd_set_nonblock(*result_fd, TRUE); -+ g_fd_set_cloexec(*result_fd, TRUE); - msg_verbose("Acquired systemd socket", - evt_tag_str("filename", self->filename), - evt_tag_int("systemd-sock-fd", *result_fd), --- -1.7.5.4 - |