[packages/pound] - updated to 3.0.1, WARNING: new config syntax and location
baggins
baggins at pld-linux.org
Mon Oct 25 23:32:34 CEST 2021
commit 6477195c3d8138d6c13ab8887f852c31da66f8ed
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Mon Oct 25 23:31:48 2021 +0200
- updated to 3.0.1, WARNING: new config syntax and location
openssl.patch | 324 -------------------------------------------------
pound-daemonize.patch | 10 --
pound-hash-UL.patch | 24 ----
pound-log-notice.patch | 77 ------------
pound-logfile.patch | 279 ------------------------------------------
pound-man.patch | 38 ++----
pound.cfg | 66 ----------
pound.init | 4 +-
pound.logrotate | 10 --
pound.spec | 64 +++-------
pound.yaml | 36 ++++++
tcmalloc.patch | 15 +++
12 files changed, 81 insertions(+), 866 deletions(-)
---
diff --git a/pound.spec b/pound.spec
index c836e1f..ce1e08a 100644
--- a/pound.spec
+++ b/pound.spec
@@ -6,28 +6,24 @@
Summary: Pound - reverse-proxy and load-balancer
Summary(pl.UTF-8): Pound - reverse-proxy i load-balancer
Name: pound
-Version: 2.8
+Version: 3.0.1
Release: 1
License: GPL v3
Group: Networking/Daemons
Source0: http://www.apsis.ch/pound/Pound-%{version}.tgz
-# Source0-md5: e0eff16de1aa82b5505fa9939b86634a
-Source1: %{name}.cfg
+# Source0-md5: 4f14dee286f2325c53ea646b5323e3de
+Source1: %{name}.yaml
Source2: %{name}.init
Source3: %{name}.sysconfig
-Source4: %{name}.logrotate
Source5: %{name}.tmpfiles
-Patch0: %{name}-hash-UL.patch
-Patch1: %{name}-logfile.patch
-Patch2: %{name}-daemonize.patch
-Patch3: %{name}-log-notice.patch
-Patch4: %{name}-man.patch
-Patch5: openssl.patch
+Patch0: tcmalloc.patch
+Patch1: pound-man.patch
URL: http://www.apsis.ch/pound/
-BuildRequires: automake
+BuildRequires: cmake
+BuildRequires: yaml-devel
+BuildRequires: nanomsg-devel
+BuildRequires: mbedtls-devel
%{?with_tcmalloc:BuildRequires: libtcmalloc-devel}
-BuildRequires: openssl-devel >= 0.9.7d
-BuildRequires: openssl-tools
BuildRequires: pcre-devel
BuildRequires: rpmbuild(macros) >= 1.644
Requires(post,preun): /sbin/chkconfig
@@ -41,7 +37,6 @@ Requires: pcre >= 7.8
Requires: rc-scripts
Provides: group(pound)
Provides: user(pound)
-Conflicts: logrotate < 3.7-4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/pound
@@ -66,35 +61,25 @@ swobodnego używania, kopiowania i rozdawania.
%setup -q -n Pound-%{version}
%patch0 -p1
%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
%build
-cp -f /usr/share/automake/config.sub .
-%configure \
- --enable-super \
- --enable-pcreposix \
- %{__enable_disable tcmalloc} \
- --disable-hoard \
- --with-maxbuf=6144
+install -d build
+cd build
+%cmake ../ \
+ %{?with_tcmalloc:-DWANT_TCMALLOC:BOOL=ON}
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8,%{_sysconfdir},/etc/{sysconfig,logrotate.d,rc.d/init.d}} \
- $RPM_BUILD_ROOT{/var/log/{%{name},archive/%{name}},/var/run/%{name}} \
+install -d $RPM_BUILD_ROOT{%{_sbindir},%{_mandir}/man8,%{_sysconfdir},/etc/{sysconfig,rc.d/init.d}} \
+ $RPM_BUILD_ROOT/var/run/%{name} \
$RPM_BUILD_ROOT%{systemdtmpfilesdir}
-install -p pound $RPM_BUILD_ROOT%{_sbindir}
-install -p poundctl $RPM_BUILD_ROOT%{_sbindir}
-cp -p pound.8 $RPM_BUILD_ROOT%{_mandir}/man8
-cp -p poundctl.8 $RPM_BUILD_ROOT%{_mandir}/man8
+install -p build/pound $RPM_BUILD_ROOT%{_sbindir}
+cp -p man/pound.8 $RPM_BUILD_ROOT%{_mandir}/man8
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}
install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
-cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
%clean
@@ -105,13 +90,6 @@ rm -rf $RPM_BUILD_ROOT
%useradd -u 200 -d /var/lib/%{name} -g %{name} -c "Pound Daemon" %{name}
%post
-for a in access.log pound.log; do
- if [ ! -f /var/log/%{name}/$a ]; then
- touch /var/log/%{name}/$a
- chown pound:pound /var/log/%{name}/$a
- chmod 644 /var/log/%{name}/$a
- fi
-done
/sbin/chkconfig --add %{name}
%service %{name} restart "Pound Daemon"
@@ -129,16 +107,12 @@ fi
%files
%defattr(644,root,root,755)
-%doc README FAQ CHANGELOG z*.py
+%doc README.md
%attr(755,root,root) %{_sbindir}/pound
-%attr(755,root,root) %{_sbindir}/poundctl
%dir %{_sysconfdir}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pound.cfg
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pound.yaml
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
%attr(754,root,root) /etc/rc.d/init.d/%{name}
%{_mandir}/man8/*
%{systemdtmpfilesdir}/%{name}.conf
%dir /var/run/%{name}
-%dir %attr(751,root,root) /var/log/%{name}
-%attr(750,root,root) %dir /var/log/archive/%{name}
diff --git a/openssl.patch b/openssl.patch
deleted file mode 100644
index b413c4f..0000000
--- a/openssl.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From a2c9dde4d055ea8942afb150b7fc3a807d4e5d60 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray at gnu.org>
-Date: Wed, 28 Feb 2018 13:44:01 +0000
-Subject: [PATCH] Support for Openssl 1.1
-
----
- .gitignore | 15 ++++++++
- config.c | 17 +++++++--
- http.c | 12 ++++++-
- pound.h | 4 ++-
- svc.c | 101 +++++++++++++++++++++++++++++++++++++++++++----------
- 5 files changed, 125 insertions(+), 24 deletions(-)
- create mode 100644 .gitignore
-
-diff --git a/config.c b/config.c
-index d41a3ee..e8fec0f 100644
---- a/config.c
-+++ b/config.c
-@@ -174,6 +174,16 @@ conf_fgets(char *buf, const int max)
- }
- }
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define general_name_string(n) \
-+ strndup(ASN1_STRING_get0_data(n->d.dNSName), \
-+ ASN1_STRING_length(n->d.dNSName) + 1)
-+#else
-+# define general_name_string(n) \
-+ strndup(ASN1_STRING_data(n->d.dNSName), \
-+ ASN1_STRING_length(n->d.dNSName) + 1)
-+#endif
-+
- unsigned char **
- get_subjectaltnames(X509 *x509, unsigned int *count)
- {
-@@ -194,8 +204,7 @@ get_subjectaltnames(X509 *x509, unsigned int *count)
- name = sk_GENERAL_NAME_pop(san_stack);
- switch(name->type) {
- case GEN_DNS:
-- temp[local_count] = strndup(ASN1_STRING_data(name->d.dNSName), ASN1_STRING_length(name->d.dNSName)
-- + 1);
-+ temp[local_count] = general_name_string(name);
- if(temp[local_count] == NULL)
- conf_err("out of memory");
- local_count++;
-@@ -565,7 +574,9 @@ parse_service(const char *svc_name)
- pthread_mutex_init(&res->mut, NULL);
- if(svc_name)
- strncpy(res->name, svc_name, KEY_SIZE);
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL)
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
- #else
- if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL)
-diff --git a/http.c b/http.c
-index dd211e4..c8e756a 100644
---- a/http.c
-+++ b/http.c
-@@ -527,12 +527,22 @@ log_bytes(char *res, const LONG cnt)
-
- /* Cleanup code. This should really be in the pthread_cleanup_push, except for bugs in some implementations */
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define clear_error()
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
-+# define clear_error() \
-+ if(ssl != NULL) { ERR_clear_error(); ERR_remove_thread_state(NULL); }
-+#else
-+# define clear_error() \
-+ if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); }
-+#endif
-+
- #define clean_all() { \
- if(ssl != NULL) { BIO_ssl_shutdown(cl); } \
- if(be != NULL) { BIO_flush(be); BIO_reset(be); BIO_free_all(be); be = NULL; } \
- if(cl != NULL) { BIO_flush(cl); BIO_reset(cl); BIO_free_all(cl); cl = NULL; } \
- if(x509 != NULL) { X509_free(x509); x509 = NULL; } \
-- if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); } \
-+ clear_error(); \
- }
-
- /*
-diff --git a/pound.h b/pound.h
-index fa22c36..9603b91 100644
---- a/pound.h
-+++ b/pound.h
-@@ -344,7 +344,9 @@ typedef struct _tn {
- /* maximal session key size */
- #define KEY_SIZE 127
-
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ DEFINE_LHASH_OF(TABNODE);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- DECLARE_LHASH_OF(TABNODE);
- #endif
-
-diff --git a/svc.c b/svc.c
-index 60ba488..063b92c 100644
---- a/svc.c
-+++ b/svc.c
-@@ -27,10 +27,17 @@
-
- #include "pound.h"
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t)
-+# define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n)
-+#else
- #ifndef LHASH_OF
- #define LHASH_OF(x) LHASH
- #define CHECKED_LHASH_OF(type, h) h
- #endif
-+# define TABNODE_GET_DOWN_LOAD(t) (CHECKED_LHASH_OF(TABNODE, t)->down_load)
-+# define TABNODE_SET_DOWN_LOAD(t,n) (CHECKED_LHASH_OF(TABNODE, t)->down_load = n)
-+#endif
-
- /*
- * Add a new key/content pair to a hash table
-@@ -58,7 +65,9 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const
- }
- memcpy(t->content, content, cont_len);
- t->last_acc = time(NULL);
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((old = lh_TABNODE_insert(tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
- #else
- if((old = (TABNODE *)lh_insert(tab, t)) != NULL) {
-@@ -82,7 +91,9 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key)
- TABNODE t, *res;
-
- t.key = key;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
- #else
- if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) {
-@@ -102,7 +113,9 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
- TABNODE t, *res;
-
- t.key = key;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(tab, &t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
- #else
- if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) {
-@@ -127,7 +140,9 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a)
- TABNODE *res;
-
- if(t->last_acc < a->lim)
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(a->tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) {
- #else
- if((res = lh_delete(a->tab, t)) != NULL) {
-@@ -145,6 +160,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
- IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
- #endif
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG);
-+#endif
-+
- /*
- * Expire all old nodes
- */
-@@ -156,14 +175,16 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
-
- a.tab = tab;
- a.lim = lim;
-- down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+ down_load = TABNODE_GET_DOWN_LOAD(tab);
-+ TABNODE_SET_DOWN_LOAD(tab, 0);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
- #else
- lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a);
- #endif
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
-+ TABNODE_SET_DOWN_LOAD(tab, down_load);
- return;
- }
-
-@@ -173,7 +194,9 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg)
- TABNODE *res;
-
- if(memcmp(t->content, arg->content, arg->cont_len) == 0)
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) {
- #else
- if((res = lh_delete(arg->tab, t)) != NULL) {
-@@ -203,15 +226,16 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len
- a.tab = tab;
- a.content = content;
- a.cont_len = cont_len;
-- down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+ down_load = TABNODE_GET_DOWN_LOAD(tab);
-+ TABNODE_SET_DOWN_LOAD(tab, 0);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
- #else
- lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a);
- #endif
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
-- return;
-+ TABNODE_SET_DOWN_LOAD(tab, down_load);
- }
-
- /*
-@@ -1262,6 +1286,31 @@ RSA_tmp_callback(/* not used */SSL *ssl, /* not used */int is_export, int keylen
- return res;
- }
-
-+static int
-+generate_key(RSA **ret_rsa, unsigned long bits)
-+{
-+#if OPENSSL_VERSION_NUMBER > 0x00908000L
-+ int rc = 0;
-+ RSA *rsa;
-+
-+ rsa = RSA_new();
-+ if (rsa) {
-+ BIGNUM *bne = BN_new();
-+ if (BN_set_word(bne, RSA_F4))
-+ rc = RSA_generate_key_ex(rsa, bits, bne, NULL);
-+ BN_free(bne);
-+ if (rc)
-+ *ret_rsa = rsa;
-+ else
-+ RSA_free(rsa);
-+ }
-+ return rc;
-+#else
-+ *ret_rsa = RSA_generate_key(bits, RSA_F4, NULL, NULL);
-+ return *ret_rsa != NULL;
-+#endif
-+}
-+
- /*
- * Periodically regenerate ephemeral RSA keys
- * runs every T_RSA_KEYS seconds
-@@ -1274,8 +1323,9 @@ do_RSAgen(void)
- RSA *t_RSA1024_keys[N_RSA_KEYS];
-
- for(n = 0; n < N_RSA_KEYS; n++) {
-- t_RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL);
-- t_RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL);
-+ /* FIXME: Error handling */
-+ generate_key(&t_RSA512_keys[n], 512);
-+ generate_key(&t_RSA1024_keys[n], 1024);
- }
- if(ret_val = pthread_mutex_lock(&RSA_mut))
- logmsg(LOG_WARNING, "thr_RSAgen() lock: %s", strerror(ret_val));
-@@ -1329,11 +1379,11 @@ init_timer(void)
- * Pre-generate ephemeral RSA keys
- */
- for(n = 0; n < N_RSA_KEYS; n++) {
-- if((RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL)) == NULL) {
-+ if(!generate_key(&RSA512_keys[n], 512)) {
- logmsg(LOG_WARNING,"RSA_generate(%d, 512) failed", n);
- return;
- }
-- if((RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL)) == NULL) {
-+ if(!generate_key(&RSA1024_keys[n], 1024)) {
- logmsg(LOG_WARNING,"RSA_generate(%d, 1024) failed", n);
- return;
- }
-@@ -1420,6 +1470,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG)
- IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *)
- #endif
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+IMPLEMENT_LHASH_DOALL_ARG(TABNODE,DUMP_ARG);
-+#endif
-+
- /*
- * write sessions to the control socket
- */
-@@ -1430,7 +1484,9 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const
-
- a.control_sock = control_sock;
- a.backends = backends;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
- #else
- lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a);
-@@ -1664,6 +1720,13 @@ thr_control(void *arg)
- }
- }
-
-+#ifndef SSL3_ST_SR_CLNT_HELLO_A
-+# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT)
-+#endif
-+#ifndef SSL23_ST_SR_CLNT_HELLO_A
-+# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT)
-+#endif
-+
- void
- SSLINFO_callback(const SSL *ssl, int where, int rc)
- {
diff --git a/pound-daemonize.patch b/pound-daemonize.patch
deleted file mode 100644
index 929554a..0000000
--- a/pound-daemonize.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- Pound-2.4.3/pound.c~ 2009-01-08 15:52:17.000000000 +0200
-+++ Pound-2.4.3/pound.c 2009-01-08 16:09:23.060768420 +0200
-@@ -171,7 +171,6 @@
- (void)umask(077);
- control_sock = -1;
- log_facility = -1;
-- logmsg(LOG_NOTICE, "starting...");
-
- signal(SIGHUP, h_shut);
- signal(SIGINT, h_shut);
diff --git a/pound-hash-UL.patch b/pound-hash-UL.patch
deleted file mode 100644
index 0222cf5..0000000
--- a/pound-hash-UL.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urNp -x '*.orig' Pound-2.8.org/config.c Pound-2.8/config.c
---- Pound-2.8.org/config.c 2018-05-11 12:16:05.000000000 +0200
-+++ Pound-2.8/config.c 2021-10-04 21:55:51.816168060 +0200
-@@ -521,7 +521,7 @@ t_hash(const TABNODE *e)
- char *k;
-
- k = e->key;
-- res = 2166136261;
-+ res = 2166136261UL;
- while(*k)
- res = ((res ^ *k++) * 16777619) & 0xFFFFFFFF;
- return res;
-diff -urNp -x '*.orig' Pound-2.8.org/svc.c Pound-2.8/svc.c
---- Pound-2.8.org/svc.c 2018-05-11 12:16:05.000000000 +0200
-+++ Pound-2.8/svc.c 2021-10-04 21:55:51.812834729 +0200
-@@ -553,7 +553,7 @@ hash_backend(BACKEND *be, int abs_pri, c
- BACKEND *res, *tb;
- int pri;
-
-- hv = 2166136261;
-+ hv = 2166136261UL;
- while(*key)
- hv = ((hv ^ *key++) * 16777619) & 0xFFFFFFFF;
- pri = hv % abs_pri;
diff --git a/pound-log-notice.patch b/pound-log-notice.patch
deleted file mode 100644
index f1192f3..0000000
--- a/pound-log-notice.patch
+++ /dev/null
@@ -1,77 +0,0 @@
---- Pound-2.7/svc.c~ 2015-04-29 19:47:57.000000000 +0300
-+++ Pound-2.7/svc.c 2015-04-29 19:48:28.151076743 +0300
-@@ -1563,55 +1563,55 @@
- break;
- case CTRL_EN_LSTN:
- if((lstn = sel_lstn(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad listener %d", cmd.listener);
-+ logmsg(LOG_NOTICE, "thr_control() bad listener %d", cmd.listener);
- else
- lstn->disabled = 0;
- break;
- case CTRL_DE_LSTN:
- if((lstn = sel_lstn(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad listener %d", cmd.listener);
-+ logmsg(LOG_NOTICE, "thr_control() bad listener %d", cmd.listener);
- else
- lstn->disabled = 1;
- break;
- case CTRL_EN_SVC:
- if((svc = sel_svc(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- else
- svc->disabled = 0;
- break;
- case CTRL_DE_SVC:
- if((svc = sel_svc(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- else
- svc->disabled = 1;
- break;
- case CTRL_EN_BE:
- if((svc = sel_svc(&cmd)) == NULL) {
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- break;
- }
- if((be = sel_be(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad backend %d/%d/%d", cmd.listener, cmd.service, cmd.backend);
-+ logmsg(LOG_NOTICE, "thr_control() bad backend %d/%d/%d", cmd.listener, cmd.service, cmd.backend);
- else
- kill_be(svc, be, BE_ENABLE);
- break;
- case CTRL_DE_BE:
- if((svc = sel_svc(&cmd)) == NULL) {
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- break;
- }
- if((be = sel_be(&cmd)) == NULL)
-- logmsg(LOG_INFO, "thr_control() bad backend %d/%d/%d", cmd.listener, cmd.service, cmd.backend);
-+ logmsg(LOG_NOTICE, "thr_control() bad backend %d/%d/%d", cmd.listener, cmd.service, cmd.backend);
- else
- kill_be(svc, be, BE_DISABLE);
- break;
- case CTRL_ADD_SESS:
- if((svc = sel_svc(&cmd)) == NULL) {
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- break;
- }
- if((be = sel_be(&cmd)) == NULL) {
-- logmsg(LOG_INFO, "thr_control() bad back-end %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad back-end %d/%d", cmd.listener, cmd.service);
- break;
- }
- if(ret_val = pthread_mutex_lock(&svc->mut))
-@@ -1622,7 +1622,7 @@
- break;
- case CTRL_DEL_SESS:
- if((svc = sel_svc(&cmd)) == NULL) {
-- logmsg(LOG_INFO, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
-+ logmsg(LOG_NOTICE, "thr_control() bad service %d/%d", cmd.listener, cmd.service);
- break;
- }
- if(ret_val = pthread_mutex_lock(&svc->mut))
diff --git a/pound-logfile.patch b/pound-logfile.patch
deleted file mode 100644
index 9603e7d..0000000
--- a/pound-logfile.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-diff -urNp -x '*.orig' Pound-2.8.org/config.c Pound-2.8/config.c
---- Pound-2.8.org/config.c 2021-10-04 21:55:51.849501382 +0200
-+++ Pound-2.8/config.c 2021-10-04 21:55:51.876168039 +0200
-@@ -73,7 +73,7 @@ static CODE facilitynames[] = {
- };
- #endif
-
--static regex_t Empty, Comment, User, Group, RootJail, Daemon, LogFacility, LogLevel, Alive, SSLEngine, Control;
-+static regex_t Empty, Comment, User, Group, RootJail, Daemon, LogFacility, LogFile, LogLevel, ErrorLog, Alive, SSLEngine, Control;
- static regex_t ListenHTTP, ListenHTTPS, End, Address, Port, Cert, xHTTP, Client, CheckURL;
- static regex_t Err414, Err500, Err501, Err503, MaxRequest, HeadRemove, RewriteLocation, RewriteDestination;
- static regex_t Service, ServiceName, URL, HeadRequire, HeadDeny, BackEnd, Emergency, Priority, HAport, HAportAddr;
-@@ -1330,6 +1330,18 @@ parse_file(void)
- def_facility = facilitynames[i].c_val;
- break;
- }
-+ } else if(!regexec(&LogFile, lin, 4, matches, 0)) {
-+ lin[matches[1].rm_eo] = '\0';
-+ if((log_file = strdup(lin + matches[1].rm_so)) == NULL) {
-+ logmsg(LOG_ERR, "line %d: LogFile config: out of memory - aborted", n_lin);
-+ exit(1);
-+ }
-+ } else if(!regexec(&ErrorLog, lin, 4, matches, 0)) {
-+ lin[matches[1].rm_eo] = '\0';
-+ if((error_log = strdup(lin + matches[1].rm_so)) == NULL) {
-+ logmsg(LOG_ERR, "line %d: ErrorLog config: out of memory - aborted", n_lin);
-+ exit(1);
-+ }
- } else if(!regexec(&Grace, lin, 4, matches, 0)) {
- grace = atoi(lin + matches[1].rm_so);
- } else if(!regexec(&LogLevel, lin, 4, matches, 0)) {
-@@ -1436,7 +1448,9 @@ config_parse(const int argc, char **cons
- || regcomp(&Daemon, "^[ \t]*Daemon[ \t]+([01])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&Threads, "^[ \t]*Threads[ \t]+([1-9][0-9]*)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&LogFacility, "^[ \t]*LogFacility[ \t]+([a-z0-9-]+)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&LogFile, "^[ \t]*LogFile[ \t]+(.+)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&LogLevel, "^[ \t]*LogLevel[ \t]+([0-5])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-+ || regcomp(&ErrorLog, "^[ \t]*ErrorLog[ \t]+(.+)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&Grace, "^[ \t]*Grace[ \t]+([0-9]+)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&Alive, "^[ \t]*Alive[ \t]+([1-9][0-9]*)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&SSLEngine, "^[ \t]*SSLEngine[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
-@@ -1572,6 +1586,8 @@ config_parse(const int argc, char **cons
- group = NULL;
- root_jail = NULL;
- ctrl_name = NULL;
-+ log_file = NULL;
-+ error_log = NULL;
-
- numthreads = 128;
- alive_to = 30;
-@@ -1601,7 +1617,9 @@ config_parse(const int argc, char **cons
- regfree(&Daemon);
- regfree(&Threads);
- regfree(&LogFacility);
-+ regfree(&LogFile);
- regfree(&LogLevel);
-+ regfree(&ErrorLog);
- regfree(&Grace);
- regfree(&Alive);
- regfree(&SSLEngine);
-diff -urNp -x '*.orig' Pound-2.8.org/pound.c Pound-2.8/pound.c
---- Pound-2.8.org/pound.c 2018-05-11 12:16:05.000000000 +0200
-+++ Pound-2.8/pound.c 2021-10-04 21:55:51.876168039 +0200
-@@ -32,6 +32,8 @@ char *user, /* user
- *group, /* group to run as */
- *root_jail, /* directory to chroot to */
- *pid_name, /* file to record pid in */
-+ *log_file, /* print log messages to this file, instead of syslog */
-+ *error_log, /* print error messages to this file, instead of syslog */
- *ctrl_name; /* control socket name */
-
- int alive_to, /* check interval for resurrection */
-@@ -54,6 +56,7 @@ regex_t HEADER, /* Allowed h
- AUTHORIZATION; /* the Authorisation header */
-
- static int shut_down = 0;
-+static int flush_logs = 0;
-
- #ifndef SOL_TCP
- /* for systems without the definition */
-@@ -183,6 +186,33 @@ get_thr_qlen(void)
- return res;
- }
-
-+static void
-+reopen_logs()
-+{
-+
-+ logmsg(LOG_NOTICE, "reopening logs...");
-+ // reopen logs, but check access first, as it might fail in chroot
-+ if (log_file) {
-+ if (access(log_file, F_OK) == 0 && access(log_file, W_OK) == -1) {
-+ logmsg(LOG_ERR, "%s: %s", log_file, strerror(errno));
-+ } else {
-+ stdout = freopen(log_file, "a", stdout);
-+ logmsg(LOG_ERR, "reopen stdout: %p", stdout);
-+ setlinebuf(stdout);
-+ }
-+ }
-+ if (error_log) {
-+ if (access(error_log, F_OK) == 0 && access(error_log, W_OK) == -1) {
-+ logmsg(LOG_ERR, "%s: %s", error_log, strerror(errno));
-+ } else {
-+ stderr = freopen(error_log, "a", stderr);
-+ logmsg(LOG_ERR, "reopen stderr: %p", stderr);
-+ setlinebuf(stderr);
-+ }
-+ }
-+ flush_logs = 0;
-+}
-+
- /*
- * handle SIGTERM/SIGQUIT - exit
- */
-@@ -220,6 +250,21 @@ h_shut(const int sig)
- }
-
- /*
-+ * handle SIGUSR1 - reopen logs
-+ */
-+static RETSIGTYPE
-+h_reopen(const int sig)
-+{
-+ logmsg(LOG_NOTICE, "%d received signal %d - reopening logs...", getpid(), sig);
-+ if (son > 0) {
-+ reopen_logs();
-+ kill(son, sig);
-+ } else {
-+ flush_logs = 1;
-+ }
-+}
-+
-+/*
- * Pound: the reverse-proxy/load-balancer
- *
- * Arguments:
-@@ -254,6 +299,7 @@ main(const int argc, char **argv)
- signal(SIGINT, h_shut);
- signal(SIGTERM, h_term);
- signal(SIGQUIT, h_term);
-+ signal(SIGUSR1, h_reopen);
- signal(SIGPIPE, SIG_IGN);
-
- srandom(getpid());
-@@ -386,11 +432,23 @@ main(const int argc, char **argv)
- /* daemonize - make ourselves a subprocess. */
- switch (fork()) {
- case 0:
-- if(log_facility != -1) {
-- close(0);
-- close(1);
-- close(2);
-+ if (error_log) {
-+ stderr = freopen(error_log, "a", stderr);
-+ setlinebuf(stderr);
-+ } else {
-+ if (log_facility != -1) {
-+ close(2);
-+ }
- }
-+ if (log_file) {
-+ stdout = freopen(log_file, "a", stdout);
-+ setlinebuf(stdout);
-+ } else {
-+ if (log_facility != -1) {
-+ close(1);
-+ }
-+ }
-+ close(0);
- break;
- case -1:
- logmsg(LOG_ERR, "fork: %s - aborted", strerror(errno));
-@@ -448,7 +506,6 @@ main(const int argc, char **argv)
- logmsg(LOG_ERR, "MONITOR: worker exited (stopped?) %d, restarting...", status);
- } else if (son == 0) {
- #endif
--
- /* thread stuff */
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-@@ -499,6 +556,11 @@ main(const int argc, char **argv)
- (void)unlink(ctrl_name);
- exit(0);
- }
-+
-+ if (flush_logs) {
-+ reopen_logs();
-+ }
-+
- for(lstn = listeners, i = 0; i < n_listeners; lstn = lstn->next, i++) {
- polls[i].events = POLLIN | POLLPRI;
- polls[i].revents = 0;
-diff -urNp -x '*.orig' Pound-2.8.org/pound.h Pound-2.8/pound.h
---- Pound-2.8.org/pound.h 2018-05-11 12:16:05.000000000 +0200
-+++ Pound-2.8/pound.h 2021-10-04 21:55:51.876168039 +0200
-@@ -264,6 +264,8 @@ extern char *user, /* user
- *group, /* group to run as */
- *root_jail, /* directory to chroot to */
- *pid_name, /* file to record pid in */
-+ *log_file, /* print log messages to this file, instead of syslog */
-+ *error_log, /* print error messages to this file, instead of syslog */
- *ctrl_name; /* control socket name */
-
- extern int numthreads, /* number of worker threads */
-diff -urNp -x '*.orig' Pound-2.8.org/svc.c Pound-2.8/svc.c
---- Pound-2.8.org/svc.c 2021-10-04 21:55:51.849501382 +0200
-+++ Pound-2.8/svc.c 2021-10-04 21:55:51.876168039 +0200
-@@ -220,49 +220,47 @@ t_clean(LHASH_OF(TABNODE) *const tab, vo
- #ifdef HAVE_STDARG_H
- void
- logmsg(const int priority, const char *fmt, ...)
--{
-- char buf[MAXBUF + 1];
-- va_list ap;
-- struct tm *t_now, t_res;
--
-- buf[MAXBUF] = '\0';
-- va_start(ap, fmt);
-- vsnprintf(buf, MAXBUF, fmt, ap);
-- va_end(ap);
-- if(log_facility == -1) {
-- fprintf((priority == LOG_INFO || priority == LOG_DEBUG)? stdout: stderr, "%s\n", buf);
-- } else {
-- if(print_log)
-- printf("%s\n", buf);
-- else
-- syslog(log_facility | priority, "%s", buf);
-- }
-- return;
--}
- #else
- void
- logmsg(const int priority, const char *fmt, va_alist)
- va_dcl
-+#endif
- {
- char buf[MAXBUF + 1];
- va_list ap;
- struct tm *t_now, t_res;
-+ int log = (priority == LOG_INFO || priority == LOG_DEBUG);
-
- buf[MAXBUF] = '\0';
-+#ifdef HAVE_STDARG_H
-+ va_start(ap, fmt);
-+#else
- va_start(ap);
-+#endif
- vsnprintf(buf, MAXBUF, fmt, ap);
- va_end(ap);
-- if(log_facility == -1) {
-- fprintf((priority == LOG_INFO || priority == LOG_DEBUG)? stdout: stderr, "%s\n", buf);
-+
-+ // if access log or error log are set, use them.
-+ if (log && log_file) {
-+ fprintf(stdout, "%s\n", buf);
-+ return;
-+ }
-+ if (!log && error_log) {
-+ fprintf(stderr, "%s\n", buf);
-+ return;
-+ }
-+
-+ if (log_facility == -1) {
-+ fprintf(log ? stdout : stderr, "%s\n", buf);
- } else {
-- if(print_log)
-+ if (print_log) {
- printf("%s\n", buf);
-- else
-+ } else {
- syslog(log_facility | priority, "%s", buf);
-+ }
- }
- return;
- }
--#endif
-
- /*
- * Translate inet/inet6 address/port into a string
diff --git a/pound-man.patch b/pound-man.patch
index 6afc063..f8c4279 100644
--- a/pound-man.patch
+++ b/pound-man.patch
@@ -1,40 +1,20 @@
---- Pound-2.4.3/pound.8 2009-01-14 21:18:06.868543633 +0200
-+++ Pound-2.4.3/pound.8 2009-01-14 21:20:28.297957593 +0200
-@@ -155,7 +155,7 @@
- \fB\-f\fR config_file
- Location of the configuration file (see below for a full description of the format).
- Default:
--.I /usr/local/etc/pound.cfg
-+.I /etc/pound/pound.cfg
- .TP
- \fB\-p\fR pid_file
- Location of the pid file.
-@@ -163,7 +163,7 @@
+--- Pound-3.0.1/man/pound.8~ 2021-08-23 17:31:52.000000000 +0200
++++ Pound-3.0.1/man/pound.8 2021-10-25 23:01:19.549793482 +0200
+@@ -131,7 +131,7 @@
will write its own pid into this file. Normally this is used for shell
scripts that control starting and stopping of the daemon.
Default:
-.I /var/run/pound.pid
+.I /var/run/pound/pound.pid
.PP
- In general, any number of back-end servers may be specified. Use the priority to
- affect the load distribution among unequal-performance servers.
-@@ -1107,16 +1107,16 @@
- .br
+ One (or more) copies of
+ .B Pound
+@@ -481,7 +481,7 @@
+ .RE
.SH FILES
.TP
--\fI/var/run/pound.nnn\fR
-+\fI/var/run/pound/pound.nnn\fR
+-\fI/var/run/pound.pid\fR
++\fI/var/run/pound/pound.pid\fR
this is where
.B Pound
will attempt to record its process id.
- .TP
--\fI/usr/local/etc/pound.cfg\fR
-+\fI/etc/pound/pound.cfg\fR
- the default configuration file (the location may be changed when compiling - see the
- F_CONF flag in the Makefile).
- .TP
--\fI/usr/local/etc/pound/cert.pem\fR
-+\fI/etc/pound/cert.pem\fR
- the certificate file(s) for HTTPS. The location must be defined in the configuration
- file - this is only a suggestion. The file must contain a PEM-encoded certificate,
- optionally a certificate chain from a known Certificate Authority to your server certificate
diff --git a/pound.cfg b/pound.cfg
deleted file mode 100644
index dba5ed5..0000000
--- a/pound.cfg
+++ /dev/null
@@ -1,66 +0,0 @@
-# Default pound.cfg
-# vim:ft=sh
-#
-# Pound listens on port 80 for HTTP and port 443 for HTTPS
-# and distributes requests to 2 backends running on localhost.
-# see pound(8) for configuration directives.
-# You can enable/disable backends with poundctl(8).
-#
-
-User "pound"
-Group "pound"
-Control "/var/run/pound/pctl.sock"
-
-# Log errors to this fil
-ErrorLog /var/log/pound/pound.log
-
-# Log accesses to a file
-LogFile /var/log/pound/access.log
-
-# Specify the logging level. This value can be overridden for specific listeners.
-# 0 for no logging,
-# 1 (default) for regular logging,
-# 2 for extended logging (show chosen backend server as well),
-# 3 for Apache-like format (Combined Log Format with Virtual Host),
-# 4 (same as 3 but without the virtual host information) and
-# 5 (same as 4 but with information about the Service and BackEnd used).
-LogLevel 4
-
-# Check for backend health every 5 secs
-Alive 5
-
-# Global Client timeout value
-Client 5
-
-# Rise from default 128
-Threads 2048
-
-ListenHTTP
- Address 0.0.0.0
- Port 80
-End
-
-ListenHTTPS
- Address 0.0.0.0
- Port 443
- Cert "/etc/pki/pound.pem"
-
- Disable SSLv3
- SSLAllowClientRenegotiation 0
- SSLHonorCipherOrder 1
- Ciphers "ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
- AddHeader "HTTPS: on"
- RewriteLocation 0
-End
-
-Service
- BackEnd
- Address 127.0.0.1
- Port 8000
- End
-
- BackEnd
- Address 127.0.0.1
- Port 8001
- End
-End
diff --git a/pound.init b/pound.init
index 09ed5f2..38c8fc1 100755
--- a/pound.init
+++ b/pound.init
@@ -30,7 +30,7 @@ fi
configtest() {
local instance="$1"
- pound -c -f /etc/pound/$instance.cfg > /dev/null
+ pound -c -f /etc/pound/$instance.yaml > /dev/null
}
# check if the $1 instance is up
@@ -93,7 +93,7 @@ start() {
PIDFILE=/var/run/pound/$instance.pid
start-stop-daemon --start \
--exec /usr/sbin/pound \
- --pidfile $PIDFILE -- -v -f /etc/pound/$instance.cfg -p $PIDFILE
+ --pidfile $PIDFILE -- -v -f /etc/pound/$instance.yaml -p $PIDFILE
ret=$?
if [ $ret -eq 0 ]; then
diff --git a/pound.logrotate b/pound.logrotate
deleted file mode 100644
index b3489ab..0000000
--- a/pound.logrotate
+++ /dev/null
@@ -1,10 +0,0 @@
-/var/log/pound/*.log {
- olddir /var/log/archive/pound
-
- create 644 pound pound
-
- sharedscripts
- postrotate
- /sbin/service pound flush-logs > /dev/null
- endscript
-}
diff --git a/pound.yaml b/pound.yaml
new file mode 100644
index 0000000..3c19907
--- /dev/null
+++ b/pound.yaml
@@ -0,0 +1,36 @@
+# Default pound.yaml
+# vim:ft=yaml
+
+Global:
+ - User: "pound"
+ Group: "pound"
+
+Backends:
+ - &be
+ Address: 127.0.0.1
+ Port: 8000
+
+HTTPListeners:
+ - Address: 0.0.0.0
+ Port: 80
+ Services:
+ - Backends:
+ - *be
+
+HTTPSListeners:
+ - Address: 0.0.0.0
+ Port: 443
+ Services:
+ - Backends:
+ - *be
+ Certificates: "/etc/pki/pound.pem"
+ Client: 60
+ Ciphers:
+ - TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
+ - TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA
+ - TLS-DHE-RSA-WITH-AES-128-CBC-SHA
+ - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA
+ - TLS-RSA-WITH-AES-128-CCM
+ - TLS-RSA-WITH-AES-256-GCM-SHA384
+ - TLS-RSA-WITH-RC4-128-MD5
+ - TLS-RSA-WITH-3DES-EDE-CBC-SHA
diff --git a/tcmalloc.patch b/tcmalloc.patch
new file mode 100644
index 0000000..83bfaa1
--- /dev/null
+++ b/tcmalloc.patch
@@ -0,0 +1,15 @@
+--- Pound-3.0.1/CMakeLists.txt~ 2021-08-23 17:31:52.000000000 +0200
++++ Pound-3.0.1/CMakeLists.txt 2021-10-25 22:47:18.511993405 +0200
+@@ -46,10 +46,12 @@
+ target_link_libraries(pound -lpthread)
+ target_link_libraries(pound Threads::Threads)
+
++if(WANT_TCMALLOC)
+ FIND_LIBRARY(TCMALLOC tcmalloc )
+ if(TCMALLOC)
+ target_link_libraries(pound -ltcmalloc)
+ endif()
++endif()
+
+ FIND_LIBRARY(MBEDCRYPTO mbedcrypto)
+ if(MBEDCRYPTO)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/pound.git/commitdiff/6477195c3d8138d6c13ab8887f852c31da66f8ed
More information about the pld-cvs-commit
mailing list