Hanno commited on 2019-02-21 11:53:27
Zeige 13 geänderte Dateien mit 641 Einfügungen und 0 Löschungen.
... | ... |
@@ -0,0 +1,19 @@ |
1 |
+AUX proftpd-1.3.6-use-trace.patch 477 BLAKE2B f69adc68327f467b44dd19d0da66388945c0d1c35ce734ab8fa5e618ca7dbf1164e785e37a6dcb0e9f8ab671ece0b4e711b6614947f39b55310ffd4522df5e07 SHA512 90164f799d1f6c3768a30161a40d5c369e576c3b1a875047ef65c1224d3e18cf1f4dd5145c5ff6f7aeda80135134df58a1d57046129b922514cb56d1de97f13e |
|
2 |
+AUX proftpd-1.3.6_rc4-diskuse-refresh-api.patch 576 BLAKE2B ce4522896a81fed326ae234810491005c5165fa1bbcd0b64d785c6d070f2ac80c763e75f813655696a9405284cf27c82293026e2d8c68936d7794c20e886dacb SHA512 08a0674600944ff5d13033651a1dea1647c9d22f18efe6505e051b36566bf357bc41439d2dd7c2900e873ef8d600ba7f16332680dda1abb2529808fbe5a4e573 |
|
3 |
+AUX proftpd-1.3.6_rc4-gss-refresh-api.patch 1868 BLAKE2B ff50d3834d6cc0970256dcada8a14db6681440494abc24ccbf53ea5baef2362a9174de3bf7e3e07d562f30a55492735137efa91a9dd09676dbb95e624f3ae77f SHA512 4cc235bdb60ea4c84794d4347826b040057067d8283dcfcb795d5d25a156de480df7d897078ab8ab4faf12d4fc9e714a55f723ce27c9397bc2223550597df674 |
|
4 |
+AUX proftpd-1.3.6_rc4-msg-refresh-api.patch 903 BLAKE2B e335f81685552b0b9a05af3700ce4a09d7f31ca9b24c66e1a1306bbe26c243b553c1cb81c13cc9593ae36e93b03f28faeb64fe2ae2f834575e9dee402f73ee55 SHA512 d0dcc467289b4107aecee66edf122667b2fbb9b1f1a6a6ecea517f286090d22682200b9d11f503465cb9b5387e8fb749cc09c3033825282450fe1d6c0a4bb11d |
|
5 |
+AUX proftpd-1.3.6_rc4-vroot-refresh-api.patch 736 BLAKE2B 9f3c4a1f80a27ce7e6f9348153584bc1134e63ad4c839927b7680439966003c76c7a25821be0f3431c472092ef5c8386166b372645f498fb655559fd683c3e6e SHA512 9cd98e2fb8c17d2ca38f5f7a20f5c6ffb03da7f51e53542237992bd2b98b2ef5b5fc0634cd7f5eef24fba8a601703b70ff7d0404e1c5103394e9fda260b815cd |
|
6 |
+AUX proftpd-fix-hup-crashes.patch 2101 BLAKE2B 5d92b5be88193262c317fa5f9a735a544b67e27a686f2c52572c3b5d00ff8352e750fdc14cca770faa13214030f2b21aa0f0d5643cec0ffb0a5b7973d3f80d25 SHA512 33042d5c239d3b4e7cc5bbd5b96e823c0dd56f1f073e535a1b70694fdeec6842985f6f9bddabfa1df1284570a23a9d90ca5e2c27230ec30f288bc3c3da5296f7 |
|
7 |
+AUX proftpd-tmpfiles.d.conf 34 BLAKE2B 03da2e04c7e0d4c6e889e4414a205942f0762a1ae856d16f95abb1d2e927d68f583ad5bbdbf142b32b141cd82e9288f2ef1faf459cbe8433e2e1127d3b30d686 SHA512 aa6ffbf15e4275941837306259fb426608e82e45a2da4b99c5d7778d11b8c9341e3a12ae9b751d0e173635239b6f1b20f0431be17296c005a83525a48327fa52 |
|
8 |
+AUX proftpd.conf.sample 1275 BLAKE2B db10306f79544b344856e065946e9ae0fa37d43507185f7d2407f23a962750a05bb2682e7c97e3979ca42dfe35921c3db7e98c095431796d82144869df0e324e SHA512 1c26f3e98ed07d89192c640f7823af168c045abee6ab076791aee9d50be5446be870a189979df4b828e7ae907dd40a346f1b92998fa39195195bfada4061c5df |
|
9 |
+AUX proftpd.initd 1434 BLAKE2B a5d4b8c085925d08d7d0962ccd6a3eaad1a3a9227ea6cf553a217f9ef60c88841b5ab8fa8d249e68182a68ebae5940a421b220af4d2f30cf5c2af8ee4b6678dd SHA512 24875a5034813a12f1d24e1fa2c7a71330ffded96112d50dbe4fea6ea127f735eae48134e2f4c3faad168706eb9ff4e15f93dbbe7d6cb6ed0e0768e47aa1100b |
|
10 |
+AUX proftpd.service 196 BLAKE2B 89ef578220f97095a5ffd6b4f6d1880dfc26f54e1ac8667009f65da298fb6634f271a64e6593d78b5735069b4de8f8be73484fd97269c67f89573e8f7d434d5e SHA512 12ee7893d37a9d06140b5b6492be74308fe1165a741d4c1b6b690ab4b973f074cad8517fd36af54f2aa452494759d1534c11e70f7212cd55a37cfa439b953062 |
|
11 |
+AUX proftpd.xinetd 295 BLAKE2B 4863cea66df5c32efba61647bbc854953dff28e154fab284c7e9f84efe3279a49c660ae37ef5b1410decdf32bb3061713e371fa3b529098848cae71f3e66d40d SHA512 a13d29ca2289f8bd58b4eb317683d57dfb7d608c53f163844349bbf0b896790f5e9f47a27eafda3b8fc78e60f4a0d6859da7c7ced7df852166cf0b8bcad876d4 |
|
12 |
+DIST mod_clamav-0.11rc.tar.gz 5115 BLAKE2B 1ae03873e263552d9d5b49eb8a3f348eeee165d52c055b5420b6a152c3ca204532436cdaa74d474187c49bb3e647e2e86086a9c59acf7f99108bbbe185e44511 SHA512 6d33ee7b1c9c8e3fb0a0014dde90cfb1d37daa0f4914f147bb800a8318bcf0e03c7c6748d84cda36c5e5c7cd11ee8114bad9978362f581f367db54d3563f4636 |
|
13 |
+DIST mod_gss-1.3.6.tar.gz 117294 BLAKE2B ceaf088e15bbb308d9eff3c139de2e14e5525c6300f4feef957da8eb7e23946735c9c5491db33433162b3c1a14e190f53a00b131fc25f31e803212601f166ad9 SHA512 a7e2f201bc7706f47f583317899bf4bc6a75d5e284b20a4cd9019020d3427334ada92fa3bbb4e153a2cd68e04f76185472b46ed3d3d168bf52a4c200e70ed8e4 |
|
14 |
+DIST mod_vroot-0.9.4.tar.gz 29461 BLAKE2B eb4d3f6425ab0a1a61ca607e4655b5f8ff6ea342ca49d49598e7a4c5596382aa2c1d4e8228a1cdcfff324feb92dac80fcc58e35bbb77155069749afdd7cc41fb SHA512 f5de392c9fe39f0a03b0783a7092bbfe17ea6db991f4b4e4a2d8f092f073d27ef2c64dd6484d5665b5abc808c0caba016d4fc3fab3da3810f5ebe5249bb4cbce |
|
15 |
+DIST proftpd-1.3.6.tar.gz 20251898 BLAKE2B b68bd8bfb6cc970974b7a67cf13d1a543ffbcb3833552ac52e821fb6e901b3996770a31a4059f2c8512ebfc53672dba69491db69cf484133ea28becb82639d8e SHA512 2a3ca76a0c35ba31e9d79f7f652f4f35768262f5039c5dc04ef83ac9218f624645ac6cee445af4ec6a8c59a9bdad1e7b48e0e90cd13934cbe7c3e77a2f6013c0 |
|
16 |
+DIST proftpd-mod-case-0.7.tar.gz 13184 BLAKE2B bf2118d9b8ed97a5b192b92b515d17ac7a0d75e154288e5afb3a1c3d686e635093df9501cc1c9b077f87c14326e31e8b9f751803dfca1eae9643f12333eb633f SHA512 c08d13ef82fec36ae75aa3213dd02e0ce4045904849f422e152f039a9da66a45e4423751074b8bcf8ce347a40ce0e7bde798a85cbadc962fd872aeaa898261fc |
|
17 |
+DIST proftpd-mod-diskuse-0.9.tar.gz 18596 BLAKE2B 38c704c8607f0f93b080e77fe793cfe0125c88acc6f818ecb059c6c21a983e040ff5f2c1b91e34ef4ba2666a808d896018c364d1f12ea38f0c477e79bdaa2120 SHA512 d41976bf2810e4b783e775e8c767ca2030c3b5df116219fd31cbbac7feaf9922c315bf4ea092881b0d6cf43f2f4c5dbcae61be3c3a833058d12f962a3024b975 |
|
18 |
+DIST proftpd-mod-msg-0.4.1.tar.gz 8082 BLAKE2B 970b46b19d25bac22ecb01495270a523997a0b7d5b53b9470b4744b919adcf03d5bcee2df85ba88c4a4c20a9fc30dc01459ffb58c5dae8e78a52a7379bf36f11 SHA512 38ea63b1d355e1e10a6a4477596bf3fa28529a871c9fb8dbf093b5317f0743ef9cb59b986d0b8c1c7ed932dad5d5d571883d596fad2d3b793431824db4487012 |
|
19 |
+EBUILD proftpd-1.3.6-r2.ebuild 8582 BLAKE2B ba161cc25acbd8ee46845bae4f1fd209edc546f9726f69d556304a4ec2e22afaa3344cf98797fc4495222a52fb9477644aa3d37acc3e61fc53a370e6b7cc8516 SHA512 646cf0d0c192ab8c979782ff5df4419db13f2c64b91edaf7a33532be2c651deef73e5ce8d476958465dc209c18411adefcd2757181e75305e694225005fe3adb |
... | ... |
@@ -0,0 +1,18 @@ |
1 |
+Make --disable-trace a build-time failure instead of link-time one. |
|
2 |
+ |
|
3 |
+Reported-by: Toralf Förster |
|
4 |
+Bug: https://bugs.gentoo.org/624570 |
|
5 |
+diff --git a/include/trace.h b/include/trace.h |
|
6 |
+index f05dd0e..398e939 100644 |
|
7 |
+--- a/include/trace.h |
|
8 |
++++ b/include/trace.h |
|
9 |
+@@ -29,2 +29,4 @@ |
|
10 |
+ |
|
11 |
++#ifdef PR_USE_TRACE |
|
12 |
++ |
|
13 |
+ #define PR_TRACE_DEFAULT_CHANNEL "DEFAULT" |
|
14 |
+@@ -64,2 +66,4 @@ int pr_trace_vmsg(const char *, int, const char *, va_list); |
|
15 |
+ |
|
16 |
++#endif /* PR_USE_TRACE */ |
|
17 |
++ |
|
18 |
+ #endif /* PR_TRACE_H */ |
... | ... |
@@ -0,0 +1,17 @@ |
1 |
+diff --git a/mod_diskuse.c b/mod_diskuse.c |
|
2 |
+index 0e0a0d0..7eb5edf 100644 |
|
3 |
+--- a/mod_diskuse.c |
|
4 |
++++ b/mod_diskuse.c |
|
5 |
+@@ -53,6 +53,12 @@ |
|
6 |
+ |
|
7 |
+ #define MOD_DISKUSE_VERSION "mod_diskuse/0.9" |
|
8 |
+ |
|
9 |
++#define pr_parse_expression pr_expr_create |
|
10 |
++#define pr_class_or_expression pr_expr_eval_class_or |
|
11 |
++#define pr_group_and_expression pr_expr_eval_group_and |
|
12 |
++#define pr_group_or_expression pr_expr_eval_group_or |
|
13 |
++#define pr_user_or_expression pr_expr_eval_user_or |
|
14 |
++ |
|
15 |
+ static unsigned char have_max_diskuse = FALSE; |
|
16 |
+ static double min_diskfree = 0.0; |
|
17 |
+ static double current_diskfree = 0.0; |
... | ... |
@@ -0,0 +1,60 @@ |
1 |
+diff --git a/mod_auth_gss.c.in b/mod_auth_gss.c.in |
|
2 |
+index 6228b4d..3569ebb 100644 |
|
3 |
+--- a/mod_auth_gss.c.in |
|
4 |
++++ b/mod_auth_gss.c.in |
|
5 |
+@@ -38,6 +38,10 @@ |
|
6 |
+ */ |
|
7 |
+ |
|
8 |
+ #include "mod_gss.h" |
|
9 |
++ |
|
10 |
++#define DECLINED PR_DECLINED |
|
11 |
++#define ERROR_INT PR_ERROR_INT |
|
12 |
++ |
|
13 |
+ extern unsigned char gss_engine; |
|
14 |
+ extern unsigned long gss_flags; |
|
15 |
+ extern int gss_logfd; |
|
16 |
+diff --git a/mod_gss.c.in b/mod_gss.c.in |
|
17 |
+index 9d2d4c8..83a4019 100644 |
|
18 |
+--- a/mod_gss.c.in |
|
19 |
++++ b/mod_gss.c.in |
|
20 |
+@@ -57,6 +57,13 @@ |
|
21 |
+ |
|
22 |
+ #include "mod_gss.h" |
|
23 |
+ |
|
24 |
++#define LOG_SYMLINK PR_LOG_SYMLINK |
|
25 |
++#define LOG_WRITEABLE_DIR PR_LOG_WRITABLE_DIR |
|
26 |
++#define HANDLED PR_HANDLED |
|
27 |
++#define ERROR PR_ERROR |
|
28 |
++#define DECLINED PR_DECLINED |
|
29 |
++#define ERROR_INT PR_ERROR_INT |
|
30 |
++ |
|
31 |
+ module gss_module; |
|
32 |
+ |
|
33 |
+ /* Module variables maybe used externaly */ |
|
34 |
+@@ -1395,7 +1402,7 @@ MODRET gss_auth(cmd_rec *cmd) { |
|
35 |
+ |
|
36 |
+ /* Convert the parameter to upper case */ |
|
37 |
+ for (i = 0; i < strlen(cmd->argv[1]); i++) |
|
38 |
+- (cmd->argv[1])[i] = toupper((cmd->argv[1])[i]); |
|
39 |
++ ((char*)cmd->argv[1])[i] = toupper(((char*)cmd->argv[1])[i]); |
|
40 |
+ |
|
41 |
+ if (!strcmp(cmd->argv[1], "GSSAPI")) { |
|
42 |
+ pr_response_send(R_334, "Using authentication type %s; ADAT must follow", cmd->argv[1]); |
|
43 |
+@@ -2014,7 +2021,7 @@ MODRET gss_prot(cmd_rec *cmd) { |
|
44 |
+ |
|
45 |
+ /* Convert the parameter to upper case */ |
|
46 |
+ for (i = 0; i < strlen(cmd->argv[1]); i++) |
|
47 |
+- (cmd->argv[1])[i] = toupper((cmd->argv[1])[i]); |
|
48 |
++ ((char*)cmd->argv[1])[i] = toupper(((char*)cmd->argv[1])[i]); |
|
49 |
+ |
|
50 |
+ /* Only PROT S , PROT C or PROT P is valid with respect to GSS. */ |
|
51 |
+ if (!strcmp(cmd->argv[1], "C")) { |
|
52 |
+@@ -2098,7 +2105,7 @@ MODRET set_gsskeytab(cmd_rec *cmd) { |
|
53 |
+ if (!file_exists(cmd->argv[1])) |
|
54 |
+ CONF_ERROR(cmd, "file does not exist"); |
|
55 |
+ |
|
56 |
+- if (*cmd->argv[1] != '/') |
|
57 |
++ if (((char*)(*cmd->argv))[1] != '/') |
|
58 |
+ CONF_ERROR(cmd, "parameter must be an absolute path"); |
|
59 |
+ |
|
60 |
+ add_config_param_str(cmd->argv[0], 1, cmd->argv[1]); |
... | ... |
@@ -0,0 +1,29 @@ |
1 |
+diff --git a/mod_msg.c b/mod_msg.c |
|
2 |
+index 70bce69..4ce6bd7 100644 |
|
3 |
+--- a/mod_msg.c |
|
4 |
++++ b/mod_msg.c |
|
5 |
+@@ -52,10 +52,14 @@ extern pid_t mpid; |
|
6 |
+ |
|
7 |
+ module msg_module; |
|
8 |
+ |
|
9 |
+-#ifndef USE_CTRLS |
|
10 |
++#ifndef PR_USE_CTRLS |
|
11 |
+ # error "mod_msg requires Controls support (--enable-ctrls)" |
|
12 |
+ #endif /* USE_CTRLS */ |
|
13 |
+ |
|
14 |
++#define pr_scoreboard_read_entry pr_scoreboard_entry_read |
|
15 |
++#define DECLINED PR_DECLINED |
|
16 |
++#define HANDLED PR_HANDLED |
|
17 |
++ |
|
18 |
+ static ctrls_acttab_t msg_acttab[]; |
|
19 |
+ |
|
20 |
+ static int msg_engine = FALSE; |
|
21 |
+@@ -709,7 +713,7 @@ static int msg_handle_msg(pr_ctrls_t *ctrl, int reqargc, char **reqargv) { |
|
22 |
+ if (msg_send_msg(score->sce_pid, msgstr) < 0) { |
|
23 |
+ msg_errno = errno; |
|
24 |
+ (void) pr_log_writefile(msg_logfd, MOD_MSG_VERSION, |
|
25 |
+- "error sending message to all (pid %u): %s", reqargv[1], |
|
26 |
++ "error sending message to all (pid %u): %s", |
|
27 |
+ score->sce_pid, strerror(errno)); |
|
28 |
+ |
|
29 |
+ } else |
... | ... |
@@ -0,0 +1,23 @@ |
1 |
+diff --git a/mod_vroot.c b/mod_vroot.c |
|
2 |
+index b0ce59a..db0df35 100644 |
|
3 |
+--- a/mod_vroot.c |
|
4 |
++++ b/mod_vroot.c |
|
5 |
+@@ -1515,7 +1515,7 @@ MODRET set_vrootserverroot(cmd_rec *cmd) { |
|
6 |
+ */ |
|
7 |
+ |
|
8 |
+ pathlen = strlen(cmd->argv[1]); |
|
9 |
+- if (cmd->argv[1][pathlen - 1] != '/') { |
|
10 |
++ if (((char*)cmd->argv[1])[pathlen - 1] != '/') { |
|
11 |
+ c->argv[0] = pstrcat(c->pool, cmd->argv[1], "/", NULL); |
|
12 |
+ |
|
13 |
+ } else { |
|
14 |
+@@ -1648,7 +1648,9 @@ MODRET vroot_pre_pass(cmd_rec *cmd) { |
|
15 |
+ fs->rename = vroot_rename; |
|
16 |
+ fs->unlink = vroot_unlink; |
|
17 |
+ fs->open = vroot_open; |
|
18 |
++#if ! PROFTPD_VERSION_NUMBER >= 0x0001030604 |
|
19 |
+ fs->creat = vroot_creat; |
|
20 |
++#endif /* before ProFTPD 1.3.6_rc4 */ |
|
21 |
+ fs->link = vroot_link; |
|
22 |
+ fs->readlink = vroot_readlink; |
|
23 |
+ fs->symlink = vroot_symlink; |
... | ... |
@@ -0,0 +1,76 @@ |
1 |
+From 345aa19ee2a98a3612d9b64a49107461455031a0 Mon Sep 17 00:00:00 2001 |
|
2 |
+From: TJ Saunders <tj@castaglia.org> |
|
3 |
+Date: Tue, 18 Jul 2017 23:00:22 -0700 |
|
4 |
+Subject: [PATCH] Bug#4310: Use of mod_facl as static module causes ProFTPD to |
|
5 |
+ die on SIGHUP/restart. |
|
6 |
+ |
|
7 |
+--- |
|
8 |
+ modules/mod_facl.c | 35 +++++++++++++++++++++++++++++++---- |
|
9 |
+ 1 file changed, 31 insertions(+), 4 deletions(-) |
|
10 |
+ |
|
11 |
+diff --git a/modules/mod_facl.c b/modules/mod_facl.c |
|
12 |
+index b3ac42b7b..258708cf5 100644 |
|
13 |
+--- a/modules/mod_facl.c |
|
14 |
++++ b/modules/mod_facl.c |
|
15 |
+@@ -1260,16 +1260,34 @@ MODRET set_faclengine(cmd_rec *cmd) { |
|
16 |
+ return PR_HANDLED(cmd); |
|
17 |
+ } |
|
18 |
+ |
|
19 |
++/* Event listeners |
|
20 |
++ */ |
|
21 |
++ |
|
22 |
++static void unmount_facl(void) { |
|
23 |
++ pr_fs_t *fs; |
|
24 |
++ |
|
25 |
++ fs = pr_unmount_fs("/", "facl"); |
|
26 |
++ if (fs != NULL) { |
|
27 |
++ destroy_pool(fs->fs_pool); |
|
28 |
++ fs->fs_pool = NULL; |
|
29 |
++ return; |
|
30 |
++ } |
|
31 |
++ |
|
32 |
++ if (errno != ENOENT) { |
|
33 |
++ pr_log_debug(DEBUG0, MOD_FACL_VERSION |
|
34 |
++ ": error unmounting 'facl' FS: %s", strerror(errno)); |
|
35 |
++ } |
|
36 |
++} |
|
37 |
++ |
|
38 |
+ #if defined(PR_SHARED_MODULE) && \ |
|
39 |
+ defined(PR_USE_FACL) && \ |
|
40 |
+ defined(HAVE_POSIX_ACL) |
|
41 |
+ static void facl_mod_unload_ev(const void *event_data, void *user_data) { |
|
42 |
+ if (strcmp("mod_facl.c", (const char *) event_data) == 0) { |
|
43 |
++ pr_fs_t *fs; |
|
44 |
++ |
|
45 |
+ pr_event_unregister(&facl_module, NULL, NULL); |
|
46 |
+- if (pr_unregister_fs("/") < 0) { |
|
47 |
+- pr_log_debug(DEBUG0, MOD_FACL_VERSION |
|
48 |
+- ": error unregistering 'facl' FS: %s", strerror(errno)); |
|
49 |
+- } |
|
50 |
++ unmount_facl(); |
|
51 |
+ } |
|
52 |
+ } |
|
53 |
+ #endif /* !PR_SHARED_MODULE */ |
|
54 |
+@@ -1303,6 +1321,14 @@ static void facl_postparse_ev(const void *event_data, void *user_data) { |
|
55 |
+ #endif /* PR_USE_FACL and HAVE_POSIX_ACL */ |
|
56 |
+ } |
|
57 |
+ |
|
58 |
++static void facl_restart_ev(const void *event_data, void *user_data) { |
|
59 |
++ if (facl_engine == FALSE) { |
|
60 |
++ return; |
|
61 |
++ } |
|
62 |
++ |
|
63 |
++ unmount_facl(); |
|
64 |
++} |
|
65 |
++ |
|
66 |
+ /* Initialization routines |
|
67 |
+ */ |
|
68 |
+ |
|
69 |
+@@ -1315,6 +1341,7 @@ static int facl_init(void) { |
|
70 |
+ # endif /* !PR_SHARED_MODULE */ |
|
71 |
+ #endif /* PR_USE_FACL and HAVE_POSIX_ACL */ |
|
72 |
+ pr_event_register(&facl_module, "core.postparse", facl_postparse_ev, NULL); |
|
73 |
++ pr_event_register(&facl_module, "core.restart", facl_restart_ev, NULL); |
|
74 |
+ |
|
75 |
+ return 0; |
|
76 |
+ } |
... | ... |
@@ -0,0 +1 @@ |
1 |
+d /var/run/proftpd 0755 root root |
... | ... |
@@ -0,0 +1,53 @@ |
1 |
+# This is a sample ProFTPD configuration file for Gentoo Linux (rename |
|
2 |
+# it to 'proftpd.conf' for actual use). It establishes a single server |
|
3 |
+# and a single anonymous login. |
|
4 |
+ |
|
5 |
+ServerName "ProFTPD Default Server" |
|
6 |
+ServerType standalone |
|
7 |
+DefaultServer on |
|
8 |
+RequireValidShell off |
|
9 |
+AuthPAM off |
|
10 |
+AuthPAMConfig ftp |
|
11 |
+ |
|
12 |
+# Listen on the standard FTP port 21. |
|
13 |
+Port 21 |
|
14 |
+ |
|
15 |
+# New directories and files should not be group or world writable. |
|
16 |
+Umask 022 |
|
17 |
+ |
|
18 |
+# To prevent DoS attacks set the maximum number of child processes |
|
19 |
+# to 30. If you need to allow more than 30 concurrent connections |
|
20 |
+# at once simply increase this value. |
|
21 |
+MaxInstances 30 |
|
22 |
+ |
|
23 |
+# The server will run under ftp/ftp. |
|
24 |
+User ftp |
|
25 |
+Group ftp |
|
26 |
+ |
|
27 |
+# Every FTP sessions is "jailed" into the user's home directory. |
|
28 |
+DefaultRoot ~ |
|
29 |
+ |
|
30 |
+# Generally files are overwritable. |
|
31 |
+AllowOverwrite on |
|
32 |
+ |
|
33 |
+# Disallow the use of the SITE CHMOD command. |
|
34 |
+<Limit SITE_CHMOD> |
|
35 |
+ DenyAll |
|
36 |
+</Limit> |
|
37 |
+ |
|
38 |
+# A basic anonymous FTP account without an upload directory. |
|
39 |
+<Anonymous ~ftp> |
|
40 |
+ User ftp |
|
41 |
+ Group ftp |
|
42 |
+ |
|
43 |
+ # Clients can login with the username "anonymous" and "ftp". |
|
44 |
+ UserAlias anonymous ftp |
|
45 |
+ |
|
46 |
+ # Limit the maximum number of parallel anonymous logins to 10. |
|
47 |
+ MaxClients 10 |
|
48 |
+ |
|
49 |
+ # Prohibit the WRITE command for the anonymous users. |
|
50 |
+ <Limit WRITE> |
|
51 |
+ DenyAll |
|
52 |
+ </Limit> |
|
53 |
+</Anonymous> |
... | ... |
@@ -0,0 +1,51 @@ |
1 |
+#!/sbin/openrc-run |
|
2 |
+# Copyright 1999-2013 Gentoo Foundation |
|
3 |
+# Distributed under the terms of the GNU General Public License v2 |
|
4 |
+ |
|
5 |
+extra_started_commands="reload" |
|
6 |
+ |
|
7 |
+depend() { |
|
8 |
+ need net |
|
9 |
+ use logger dns mysql postgresql antivirus |
|
10 |
+} |
|
11 |
+ |
|
12 |
+check_configuration() { |
|
13 |
+ if [ ! -e /etc/proftpd/proftpd.conf ] ; then |
|
14 |
+ eerror "To execute the ProFTPD server you need a /etc/proftpd/proftpd.conf configuration" |
|
15 |
+ eerror "file. In /etc/proftpd you can find a sample configuration." |
|
16 |
+ return 1 |
|
17 |
+ fi |
|
18 |
+ /usr/sbin/proftpd -t &>/dev/null |
|
19 |
+ if [ $? -ne 0 ] ; then |
|
20 |
+ eerror "The ProFTPD configuration file /etc/proftpd/proftpd.conf is invalid! You have to" |
|
21 |
+ eerror "fix your configuration in order to run the ProFTPD server. For more information" |
|
22 |
+ eerror "you may execute the ProFTPD configuration check '/usr/sbin/proftpd -t'." |
|
23 |
+ return 2 |
|
24 |
+ fi |
|
25 |
+} |
|
26 |
+ |
|
27 |
+start() { |
|
28 |
+ checkpath -d /var/run/proftpd |
|
29 |
+ [ "${RC_CMD}" = "restart" ] || check_configuration || return 1 |
|
30 |
+ ebegin "Starting ProFTPD" |
|
31 |
+ start-stop-daemon --start --quiet \ |
|
32 |
+ --exec /usr/sbin/proftpd \ |
|
33 |
+ --pidfile /var/run/proftpd/proftpd.pid |
|
34 |
+ eend $? |
|
35 |
+} |
|
36 |
+ |
|
37 |
+stop() { |
|
38 |
+ [ "${RC_CMD}" != "restart" ] || check_configuration || return 1 |
|
39 |
+ ebegin "Stopping ProFTPD" |
|
40 |
+ start-stop-daemon --stop --quiet --retry 20 \ |
|
41 |
+ --pidfile /var/run/proftpd/proftpd.pid |
|
42 |
+ eend $? |
|
43 |
+} |
|
44 |
+ |
|
45 |
+reload() { |
|
46 |
+ check_configuration || return 1 |
|
47 |
+ ebegin "Reloading ProFTPD" |
|
48 |
+ start-stop-daemon --quiet --signal HUP \ |
|
49 |
+ --pidfile /var/run/proftpd/proftpd.pid |
|
50 |
+ eend $? |
|
51 |
+} |
... | ... |
@@ -0,0 +1,15 @@ |
1 |
+# |
|
2 |
+# ProFTPd FTP daemon - http://www.proftpd.org |
|
3 |
+# |
|
4 |
+service ftp |
|
5 |
+{ |
|
6 |
+ flags = REUSE |
|
7 |
+ socket_type = stream |
|
8 |
+ instances = 30 |
|
9 |
+ wait = no |
|
10 |
+ user = root |
|
11 |
+ server = /usr/sbin/proftpd |
|
12 |
+ log_on_success = HOST PID |
|
13 |
+ log_on_failure = HOST |
|
14 |
+ disable = yes |
|
15 |
+} |
... | ... |
@@ -0,0 +1,267 @@ |
1 |
+# Copyright 1999-2019 Gentoo Authors |
|
2 |
+# Distributed under the terms of the GNU General Public License v2 |
|
3 |
+ |
|
4 |
+EAPI=6 |
|
5 |
+inherit multilib systemd tmpfiles |
|
6 |
+ |
|
7 |
+MOD_CASE="0.7" |
|
8 |
+MOD_CLAMAV="0.11rc" |
|
9 |
+MOD_DISKUSE="0.9" |
|
10 |
+MOD_GSS="1.3.6" |
|
11 |
+MOD_MSG="0.4.1" |
|
12 |
+MOD_VROOT="0.9.4" |
|
13 |
+ |
|
14 |
+DESCRIPTION="An advanced and very configurable FTP server" |
|
15 |
+HOMEPAGE="http://www.proftpd.org/ |
|
16 |
+ http://www.castaglia.org/proftpd/ |
|
17 |
+ http://www.thrallingpenguin.com/resources/mod_clamav.htm |
|
18 |
+ http://gssmod.sourceforge.net/" |
|
19 |
+SRC_URI="ftp://ftp.proftpd.org/distrib/source/${P/_/}.tar.gz |
|
20 |
+ case? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-case-${MOD_CASE}.tar.gz ) |
|
21 |
+ clamav? ( https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-${MOD_CLAMAV}.tar.gz ) |
|
22 |
+ diskuse? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-diskuse-${MOD_DISKUSE}.tar.gz ) |
|
23 |
+ kerberos? ( mirror://sourceforge/gssmod/mod_gss-${MOD_GSS}.tar.gz ) |
|
24 |
+ msg? ( http://www.castaglia.org/${PN}/modules/${PN}-mod-msg-${MOD_MSG}.tar.gz ) |
|
25 |
+ vroot? ( https://github.com/Castaglia/${PN}-mod_vroot/archive/v${MOD_VROOT}.tar.gz -> mod_vroot-${MOD_VROOT}.tar.gz )" |
|
26 |
+LICENSE="GPL-2" |
|
27 |
+ |
|
28 |
+SLOT="0" |
|
29 |
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" |
|
30 |
+IUSE="acl authfile ban +caps case clamav copy ctrls deflate diskuse doc dso dynmasq exec ifsession ifversion ident ipv6 |
|
31 |
+ kerberos ldap libressl log_forensic memcache msg mysql ncurses nls pam +pcre postgres qos radius |
|
32 |
+ ratio readme rewrite selinux sftp shaper sitemisc snmp sodium softquota sqlite ssl tcpd test unique_id vroot xinetd" |
|
33 |
+# TODO: geoip |
|
34 |
+REQUIRED_USE="ban? ( ctrls ) |
|
35 |
+ msg? ( ctrls ) |
|
36 |
+ sftp? ( ssl ) |
|
37 |
+ shaper? ( ctrls )" |
|
38 |
+ |
|
39 |
+CDEPEND="acl? ( virtual/acl ) |
|
40 |
+ caps? ( sys-libs/libcap ) |
|
41 |
+ clamav? ( app-antivirus/clamav ) |
|
42 |
+ kerberos? ( virtual/krb5 ) |
|
43 |
+ ldap? ( net-nds/openldap ) |
|
44 |
+ memcache? ( >=dev-libs/libmemcached-0.41 ) |
|
45 |
+ mysql? ( dev-db/mysql-connector-c:0= ) |
|
46 |
+ nls? ( virtual/libiconv ) |
|
47 |
+ ncurses? ( sys-libs/ncurses:0= ) |
|
48 |
+ ssl? ( |
|
49 |
+ !libressl? ( dev-libs/openssl:0= ) |
|
50 |
+ libressl? ( dev-libs/libressl:= ) |
|
51 |
+ ) |
|
52 |
+ pam? ( virtual/pam ) |
|
53 |
+ pcre? ( dev-libs/libpcre ) |
|
54 |
+ postgres? ( dev-db/postgresql:= ) |
|
55 |
+ sodium? ( dev-libs/libsodium:0= ) |
|
56 |
+ sqlite? ( dev-db/sqlite:3 ) |
|
57 |
+ xinetd? ( virtual/inetd )" |
|
58 |
+DEPEND="${CDEPEND} |
|
59 |
+ test? ( dev-libs/check )" |
|
60 |
+RDEPEND="${CDEPEND} |
|
61 |
+ net-ftp/ftpbase |
|
62 |
+ selinux? ( sec-policy/selinux-ftp )" |
|
63 |
+ |
|
64 |
+S="${WORKDIR}/${P/_/}" |
|
65 |
+ |
|
66 |
+PATCHES=( |
|
67 |
+ "${FILESDIR}"/${PN}-1.3.6-use-trace.patch |
|
68 |
+ "${FILESDIR}/proftpd-fix-hup-crashes.patch" |
|
69 |
+ ) |
|
70 |
+ |
|
71 |
+RESTRICT=test # tests corrupt memory. need to be fixed upstream first |
|
72 |
+ |
|
73 |
+in_dir() { |
|
74 |
+ pushd "${WORKDIR}/${1}" || die |
|
75 |
+ shift |
|
76 |
+ "$@" |
|
77 |
+ popd |
|
78 |
+} |
|
79 |
+ |
|
80 |
+src_prepare() { |
|
81 |
+ # Skip 'install-conf' / Support LINGUAS |
|
82 |
+ sed -i -e "/install-all/s/ install-conf//" Makefile.in || die |
|
83 |
+ sed -i -e "s/^LANGS=.*$/LANGS=${LINGUAS}/" locale/Makefile.in || die |
|
84 |
+ |
|
85 |
+ # Prepare external modules |
|
86 |
+ if use case; then |
|
87 |
+ cp -v "${WORKDIR}"/mod_case/mod_case.c contrib || die |
|
88 |
+ cp -v "${WORKDIR}"/mod_case/mod_case.html doc/contrib || die |
|
89 |
+ fi |
|
90 |
+ |
|
91 |
+ if use clamav ; then |
|
92 |
+ cp -v "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/mod_clamav.{c,h} contrib || die |
|
93 |
+ eapply "${WORKDIR}"/mod_clamav-${MOD_CLAMAV}/${PN}.patch |
|
94 |
+ fi |
|
95 |
+ |
|
96 |
+ if use diskuse; then |
|
97 |
+ in_dir mod_diskuse eapply "${FILESDIR}"/${PN}-1.3.6_rc4-diskuse-refresh-api.patch |
|
98 |
+ |
|
99 |
+ # ./configure will modify files. Symlink them instead of copying |
|
100 |
+ ln -sv "${WORKDIR}"/mod_diskuse/mod_diskuse.h "${S}"/contrib || die |
|
101 |
+ |
|
102 |
+ cp -v "${WORKDIR}"/mod_diskuse/mod_diskuse.c "${S}"/contrib || die |
|
103 |
+ cp -v "${WORKDIR}"/mod_diskuse/mod_diskuse.html "${S}"/doc/contrib || die |
|
104 |
+ fi |
|
105 |
+ |
|
106 |
+ if use msg; then |
|
107 |
+ in_dir mod_msg eapply "${FILESDIR}"/${PN}-1.3.6_rc4-msg-refresh-api.patch |
|
108 |
+ |
|
109 |
+ cp -v "${WORKDIR}"/mod_msg/mod_msg.c contrib || die |
|
110 |
+ cp -v "${WORKDIR}"/mod_msg/mod_msg.html doc/contrib || die |
|
111 |
+ fi |
|
112 |
+ |
|
113 |
+ if use vroot; then |
|
114 |
+ in_dir ${PN}-mod_vroot-${MOD_VROOT} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-vroot-refresh-api.patch |
|
115 |
+ |
|
116 |
+ cp -v "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT}/mod_vroot.c contrib || die |
|
117 |
+ cp -v "${WORKDIR}"/${PN}-mod_vroot-${MOD_VROOT}/mod_vroot.html doc/contrib || die |
|
118 |
+ fi |
|
119 |
+ |
|
120 |
+ if use kerberos ; then |
|
121 |
+ in_dir mod_gss-${MOD_GSS} eapply "${FILESDIR}"/${PN}-1.3.6_rc4-gss-refresh-api.patch |
|
122 |
+ |
|
123 |
+ # Support app-crypt/heimdal / Gentoo Bug #284853 |
|
124 |
+ sed -i -e "s/krb5_principal2principalname/_\0/" "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c.in || die |
|
125 |
+ |
|
126 |
+ # Remove obsolete DES / Gentoo Bug #324903 |
|
127 |
+ # Replace 'rpm' lookups / Gentoo Bug #391021 |
|
128 |
+ sed -i -e "/ac_gss_libs/s/ -ldes425//" \ |
|
129 |
+ -e "s/ac_libdir=\`rpm -q -l.*$/ac_libdir=\/usr\/$(get_libdir)\//" \ |
|
130 |
+ -e "s/ac_includedir=\`rpm -q -l.*$/ac_includedir=\/usr\/include\//" "${WORKDIR}"/mod_gss-${MOD_GSS}/configure{,.in} || die |
|
131 |
+ |
|
132 |
+ # ./configure will modify files. Symlink them instead of copying |
|
133 |
+ ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_auth_gss.c "${S}"/contrib || die |
|
134 |
+ ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.c "${S}"/contrib || die |
|
135 |
+ ln -sv "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.h "${S}"/include || die |
|
136 |
+ |
|
137 |
+ cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/README.mod_{auth_gss,gss} "${S}" || die |
|
138 |
+ cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/mod_gss.html "${S}"/doc/contrib || die |
|
139 |
+ cp -v "${WORKDIR}"/mod_gss-${MOD_GSS}/rfc{1509,2228}.txt "${S}"/doc/rfc || die |
|
140 |
+ fi |
|
141 |
+ |
|
142 |
+ default |
|
143 |
+} |
|
144 |
+ |
|
145 |
+src_configure() { |
|
146 |
+ local c m |
|
147 |
+ |
|
148 |
+ use acl && m="${m}:mod_facl" |
|
149 |
+ use ban && m="${m}:mod_ban" |
|
150 |
+ use case && m="${m}:mod_case" |
|
151 |
+ use clamav && m="${m}:mod_clamav" |
|
152 |
+ use copy && m="${m}:mod_copy" |
|
153 |
+ use ctrls && m="${m}:mod_ctrls_admin" |
|
154 |
+ use deflate && m="${m}:mod_deflate" |
|
155 |
+ if use diskuse ; then |
|
156 |
+ in_dir mod_diskuse econf |
|
157 |
+ m="${m}:mod_diskuse" |
|
158 |
+ fi |
|
159 |
+ use dynmasq && m="${m}:mod_dynmasq" |
|
160 |
+ use exec && m="${m}:mod_exec" |
|
161 |
+ use ifsession && m="${m}:mod_ifsession" |
|
162 |
+ use ifversion && m="${m}:mod_ifversion" |
|
163 |
+ if use kerberos ; then |
|
164 |
+ in_dir mod_gss-${MOD_GSS} econf |
|
165 |
+ m="${m}:mod_gss:mod_auth_gss" |
|
166 |
+ fi |
|
167 |
+ use ldap && m="${m}:mod_ldap" |
|
168 |
+ use log_forensic && m="${m}:mod_log_forensic" |
|
169 |
+ use msg && m="${m}:mod_msg" |
|
170 |
+ if use mysql || use postgres || use sqlite ; then |
|
171 |
+ m="${m}:mod_sql:mod_sql_passwd" |
|
172 |
+ use mysql && m="${m}:mod_sql_mysql" |
|
173 |
+ use postgres && m="${m}:mod_sql_postgres" |
|
174 |
+ use sqlite && m="${m}:mod_sql_sqlite" |
|
175 |
+ fi |
|
176 |
+ use qos && m="${m}:mod_qos" |
|
177 |
+ use radius && m="${m}:mod_radius" |
|
178 |
+ use ratio && m="${m}:mod_ratio" |
|
179 |
+ use readme && m="${m}:mod_readme" |
|
180 |
+ use rewrite && m="${m}:mod_rewrite" |
|
181 |
+ if use sftp ; then |
|
182 |
+ m="${m}:mod_sftp" |
|
183 |
+ use pam && m="${m}:mod_sftp_pam" |
|
184 |
+ use mysql || use postgres || use sqlite && m="${m}:mod_sftp_sql" |
|
185 |
+ fi |
|
186 |
+ use shaper && m="${m}:mod_shaper" |
|
187 |
+ use sitemisc && m="${m}:mod_site_misc" |
|
188 |
+ use snmp && m="${m}:mod_snmp" |
|
189 |
+ if use softquota ; then |
|
190 |
+ m="${m}:mod_quotatab:mod_quotatab_file" |
|
191 |
+ use ldap && m="${m}:mod_quotatab_ldap" |
|
192 |
+ use radius && m="${m}:mod_quotatab_radius" |
|
193 |
+ use mysql || use postgres || use sqlite && m="${m}:mod_quotatab_sql" |
|
194 |
+ fi |
|
195 |
+ if use ssl ; then |
|
196 |
+ m="${m}:mod_tls:mod_tls_shmcache" |
|
197 |
+ use memcache && m="${m}:mod_tls_memcache" |
|
198 |
+ fi |
|
199 |
+ if use tcpd ; then |
|
200 |
+ m="${m}:mod_wrap2:mod_wrap2_file" |
|
201 |
+ use mysql || use postgres || use sqlite && m="${m}:mod_wrap2_sql" |
|
202 |
+ fi |
|
203 |
+ use unique_id && m="${m}:mod_unique_id" |
|
204 |
+ use vroot && m="${m}:mod_vroot" |
|
205 |
+ |
|
206 |
+ if [[ -n ${PROFTP_CUSTOM_MODULES} ]]; then |
|
207 |
+ einfo "Adding user-specified extra modules: '${PROFTP_CUSTOM_MODULES}'" |
|
208 |
+ m="${m}:${PROFTP_CUSTOM_MODULES}" |
|
209 |
+ fi |
|
210 |
+ |
|
211 |
+ [[ -z ${m} ]] || c="${c} --with-modules=${m:1}" |
|
212 |
+ |
|
213 |
+ econf --localstatedir=/var/run/proftpd --sysconfdir=/etc/proftpd --disable-strip \ |
|
214 |
+ $(use_enable acl facl) \ |
|
215 |
+ $(use_enable authfile auth-file) \ |
|
216 |
+ $(use_enable caps cap) \ |
|
217 |
+ $(use_enable ctrls) \ |
|
218 |
+ $(use_enable dso) \ |
|
219 |
+ $(use_enable ident) \ |
|
220 |
+ $(use_enable ipv6) \ |
|
221 |
+ $(use_enable memcache) \ |
|
222 |
+ $(use_enable ncurses) \ |
|
223 |
+ $(use_enable nls) \ |
|
224 |
+ $(use_enable ssl openssl) \ |
|
225 |
+ $(use_enable pam auth-pam) \ |
|
226 |
+ $(use_enable pcre) \ |
|
227 |
+ $(use_enable sodium) \ |
|
228 |
+ $(use_enable test tests) \ |
|
229 |
+ --enable-trace \ |
|
230 |
+ $(use_enable userland_GNU shadow) \ |
|
231 |
+ $(use_enable userland_GNU autoshadow) \ |
|
232 |
+ ${c:1} |
|
233 |
+} |
|
234 |
+ |
|
235 |
+src_test() { |
|
236 |
+ emake api-tests -C tests |
|
237 |
+} |
|
238 |
+ |
|
239 |
+src_install() { |
|
240 |
+ default |
|
241 |
+ [[ -z ${LINGUAS-set} ]] && rm -r "${ED}"/usr/share/locale |
|
242 |
+ rm -rf "${ED}"/var/run |
|
243 |
+ |
|
244 |
+ newinitd "${FILESDIR}"/proftpd.initd proftpd |
|
245 |
+ insinto /etc/proftpd |
|
246 |
+ doins "${FILESDIR}"/proftpd.conf.sample |
|
247 |
+ |
|
248 |
+ if use xinetd ; then |
|
249 |
+ insinto /etc/xinetd.d |
|
250 |
+ newins "${FILESDIR}"/proftpd.xinetd proftpd |
|
251 |
+ fi |
|
252 |
+ |
|
253 |
+ dodoc ChangeLog CREDITS INSTALL NEWS README* RELEASE_NOTES |
|
254 |
+ if use doc ; then |
|
255 |
+ dohtml doc/*.html doc/contrib/*.html doc/howto/*.html doc/modules/*.html |
|
256 |
+ docinto rfc |
|
257 |
+ dodoc doc/rfc/*.txt |
|
258 |
+ fi |
|
259 |
+ |
|
260 |
+ systemd_dounit "${FILESDIR}"/${PN}.service |
|
261 |
+ systemd_newtmpfilesd "${FILESDIR}"/${PN}-tmpfiles.d.conf ${PN}.conf |
|
262 |
+} |
|
263 |
+ |
|
264 |
+pkg_postinst() { |
|
265 |
+ # Create /var/run files at package merge time: bug #650000 |
|
266 |
+ tmpfiles_process ${PN}.conf |
|
267 |
+} |
|
0 | 268 |