Package Details: proftpd 2:1.3.7d-1

Git Clone URL: (read-only, click to copy)
Package Base: proftpd
Description: High-performance, scalable FTP server
Upstream URL:
Licenses: GPL
Submitter: xyproto
Maintainer: migrev
Last Packager: migrev
Votes: 56
Popularity: 0.43
First Submitted: 2013-05-16 15:03 (UTC)
Last Updated: 2022-05-23 08:33 (UTC)

Latest Comments

migrev commented on 2021-09-09 12:00 (UTC)

@maid: Then it is likely an upstream issue.

maid commented on 2021-09-09 11:34 (UTC) (edited on 2021-09-09 11:35 (UTC) by maid)

2:1.3.7c-1. Proftpd won't start with my custom config. He will start with default config only.

using TCP send buffer size of 16384 bytes mod_sftp/1.0.1: using OpenSSL 1.1.1l 24 Aug 2021 mod_sftp/1.0.1: using libsodium-1.0.18 mod_tls/2.9: using OpenSSL 1.1.1l 24 Aug 2021 mod_deflate/0.6: using zlib 1.2.11 mod_redis/0.2.2: using hiredis-1.0.0 disabling runtime support for IPv6 connections <IfModule>: using 'mod_lang.c' section at line 50 <IfModule>: using 'mod_unique_id.c' section at line 59 <IfModule>: using 'mod_ban.c' section at line 65 <IfModule>: skipping 'mod_ident.c' section at line 199 <IfModule>: using 'mod_unique_id.c' section at line 215 ROOT PRIVS at mod_auth_file.c:1565 RELINQUISH PRIVS at mod_auth_file.c:1568 ROOT PRIVS at mod_auth_file.c:1433 RELINQUISH PRIVS at mod_auth_file.c:1436 -----BEGIN STACK TRACE----- -----END STACK TRACE----- ProFTPD terminating (signal 11) ROOT PRIVS at signals.c:59 ProFTPD terminating (signal 11) ROOT PRIVS at signals.c:59 RELINQUISH PRIVS at signals.c:85 ProFTPD 1.3.7c standalone mode SHUTDOWN ROOT PRIVS at signals.c:92 RELINQUISH PRIVS at signals.c:94

migrev commented on 2021-09-09 07:46 (UTC)

Just updated to 1.3.7c.

@maid: This latest version builds, installs, and runs correctly on my machine. Please check if things look better after the update. Best.

maid commented on 2021-09-09 07:16 (UTC)

using TCP send buffer size of 16384 bytes mod_sftp/1.0.1: using OpenSSL 1.1.1l 24 Aug 2021 mod_sftp/1.0.1: using libsodium-1.0.18 mod_tls/2.9: using OpenSSL 1.1.1l 24 Aug 2021 mod_deflate/0.6: using zlib 1.2.11 mod_redis/0.2.2: using hiredis-1.0.0 disabling runtime support for IPv6 connections <IfModule>: using 'mod_lang.c' section at line 50 <IfModule>: using 'mod_unique_id.c' section at line 59 <IfModule>: using 'mod_ban.c' section at line 65 <IfModule>: skipping 'mod_ident.c' section at line 199 <IfModule>: using 'mod_unique_id.c' section at line 215 -----BEGIN STACK TRACE----- -----END STACK TRACE----- ProFTPD terminating (signal 11) ProFTPD terminating (signal 11) ProFTPD 1.3.7b standalone mode SHUTDOWN

maid commented on 2021-08-31 09:25 (UTC)

proftpd[27121]: - ProFTPD 1.3.7b (git) (built Tue Aug 31 2021 09:02:01 UTC) standalone mode STARTUP systemd[1]: proftpd.service: Can't open PID file /run/proftpd/ (yet?) after start: Operation not permitted systemd[1]: proftpd.service: start operation timed out. Terminating. proftpd[27121]: - ProFTPD killed (signal 15) proftpd[27121]: - ProFTPD 1.3.7b standalone mode SHUTDOWN systemd[1]: proftpd.service: Failed with result 'timeout'. -- Subject: Unit failed -- The unit proftpd.service has entered the 'failed' state with result 'timeout'. systemd[1]: Failed to start ProFTPD FTP Server.

In /run: drwxr-xr-x 2 root root proftpd/

maid commented on 2021-04-23 19:11 (UTC)

There was "-DHAVE_STROPTS_H=0" in CPPFLAGS. I have add this a few months ago to fix the same issue. Build complete. However, proftpd won't install. /usr/bin/install: unable change owner '/tmp/proftpd/pkg/proftpd/usr/bin/proftpd': not allowed make: *** [Makefile:131: install-proftpd] error 1

migrev commented on 2021-04-23 11:21 (UTC) (edited on 2021-04-23 11:26 (UTC) by migrev)

@maid: That's a weird one! According to and other sources:

stropts.h is part of the Posix STREAMS extension, which Linux never supported. (Since 2008, it has also been marked as obsolescent by Posix, so it may be removed in some future standard revision.)

Looking in os.h,

# include <stropts.h>

and HAVE_STROPTS_H is undefined by default in config.h[.in]. So, for some reason, your system has HAVE_STROPTS_H defined, which looks out of the scope of this package. Please check your CFLAGS in pursue of the culprit. Another starting point is checking if, after configure is executed, your config.h is different from (around line 805):

/* Define if you have the <stropts.h> header file.  */
/* #undef HAVE_STROPTS_H */

Post your feedback in case you really can't find the issue. I'll be glad to help.


maid commented on 2021-04-23 11:01 (UTC)

Fatal error. ../include/os.h:54:11: stropts.h: no such file 54 | # include <stropts.h> | ^~~~~~~~~~~

migrev commented on 2021-03-04 09:51 (UTC)

@severach: Done. Thanks for your contribution!

severach commented on 2021-03-04 08:06 (UTC) (edited on 2021-03-04 08:06 (UTC) by severach)

Remove CFLAGS from the make line. -fcommon was fixed in 1.3.7a so can be removed. CFLAGS goes before configure. make CFLAGS wipes out upstream CFLAGS selected by configure. The fix for Issue #1111 won't work CFLAGS on the make line.

migrev commented on 2020-12-14 11:38 (UTC)

@drakkan: Done :)

drakkan commented on 2020-12-12 13:30 (UTC)

Hi, can you please add mod_digest?

--with-modules=mod_digest:mod_sftp:mod_quotatab:mod_quotatab_sql:mod_quotatab_file:mod_tls:mod_tls_shmcache:mod_ldap:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_facl:mod_dynmasq \

I modified the PKGBUILD as above and it is working fine, thank you

eomanis commented on 2020-07-28 16:46 (UTC)

There is a new release available, ProFTPD 1.3.7a.

Changing the PKGBUILD to pkgver=1.3.7a, md5sums=('4a9b8877b2e9b08d70e71ad56c19e2c9' seems to be sufficient to build it, and for me it runs without needing to change my proftpd.conf at all.

But it also seems that ProFTPD 1.3.7b is already in the making, so it might make sense to just wait for that one.

migrev commented on 2020-06-20 00:09 (UTC)

@eomanis: Done! :)

eomanis commented on 2020-06-19 13:21 (UTC)

Hi migrev,

could you add the mod_tls_shmcache module?

It just needs to be added to the --with-modules= list, maybe behind mod_tls because it is sort of an enhancement to mod_tls:

--with-modules=...:mod_tls:mod_tls_shmcache:... \

petronny commented on 2019-10-13 12:25 (UTC)

Hi, could you bump the epoch so that pacman can upgrade it normally?

holterdipolter commented on 2019-04-11 09:54 (UTC)

Maybe add support for armv7l and aarch64 CPUs. I had no issues compiling for both.

migrev commented on 2019-02-18 13:30 (UTC)

@mikefarmer01: Looks like it is working for me:

$ LANG=C wget --2019-02-18 14:29:57-- => 'proftpd-1.3.6.tar.gz.1' Resolving ( Connecting to (||:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /distrib/source ... done. ==> SIZE proftpd-1.3.6.tar.gz ... 20251898 ==> PASV ... done. ==> RETR proftpd-1.3.6.tar.gz ... done. Length: 20251898 (19M) (unauthoritative)

proftpd-1.3.6.tar.gz.1 100%[====================================================================================================================>] 19.31M 3.90MB/s in 10s

2019-02-18 14:30:08 (1.92 MB/s) - 'proftpd-1.3.6.tar.gz.1' saved [20251898]

bauermi86944 commented on 2019-02-18 12:44 (UTC)

First source link ( is down.

migrev commented on 2019-01-21 15:51 (UTC)

@eomanis: Done :)

eomanis commented on 2019-01-21 14:46 (UTC) (edited on 2019-01-21 14:48 (UTC) by eomanis)

@migrev: Yeah, thanks a bunch for the quick package fix and even more for mod_facl AND backporting the patches. You rock!

Uh, while I have your attention, could you also add mod_dynmasq? :-)

It is just a matter of appending it to the --with-modules= list:

--with-modules=...:mod_dynmasq \

Turns out you need it if your IP address changes each day and people want to access your FTP server over IPv4.

Without it, the server tells the clients to open PASV connections to invalid IPv4 addresses. The symptom is that the IPv4 clients can connect all right, but then listing directories or downloading files always fails, because that is when the PASV connections start.

archtom commented on 2019-01-21 08:41 (UTC)

@migrev: Thanks a lot for the fast response und the update ;)

migrev commented on 2019-01-21 08:24 (UTC) (edited on 2019-01-21 08:24 (UTC) by migrev)

@eomain: Sorry I didn't address this earlier, your messages just went by without noticing. Just saw them today while addressing the mariadb stuff. Patches from 1.3.7 applied and bumped to release 4 with them. Hope it helps.

migrev commented on 2019-01-21 08:10 (UTC)

@archtom: Thanks! PKGBUILD updated per your indications.

archtom commented on 2019-01-21 07:44 (UTC)

Thanks for maintaining the package.

After updating mariadb to the latest version please rebuild this package (and update the pkgbuild) against mariadb-libs instead of libmariadbclient.

Otherwise starting will fail with /usr/bin/proftpd: error while loading shared libraries: cannot open shared object file: : No such file or directory.


eomanis commented on 2018-07-15 12:54 (UTC) (edited on 2018-07-15 23:42 (UTC) by eomanis)

Regarding mod_facl, there seems to be a bug around that crashes proftpd when it receives a SIGHUP in certain configurations:

2018-07-15 00:00:19,948 myserver proftpd[670] myserver: received SIGHUP -- master server reparsing configuration file
2018-07-15 00:00:20,130 myserver proftpd[670] myserver: XXX.XXX.XXX.XXX:NNNN masquerading as YYY.YYY.YYY.YYY
2018-07-15 00:00:20,131 myserver proftpd[670] myserver: error: duplicate fs paths not allowed: '/'
2018-07-15 00:00:20,131 myserver proftpd[670] myserver: mod_facl/0.6: error registering 'facl' FS: File exists

The bug is apparently fixed upstream and has been backported to 1.3.6.
Unfortunately, as of now, no bugfix release seems to have been published.

I suspect the SIGHUP was sent by logrotate.

I do not wish to use logrotate; it seems superfluous to me. Rather, I want systemd to be exclusively responsible for logging, and systemd by default grabs and logs everything that is written to stdout and stderr.
Therefore I am running proftpd in non-forking mode using a custom systemd .service file, which has this simplified [Service] section:

ExecStart=/usr/bin/proftpd --nodaemon --config /etc/proftpd.conf

proftpd(8) states:

-n, --nodaemon
  Runs the proftpd in standalone mode (...) but does not background the process (...).
  Additionally, all output (log or debug messages) are sent to stderr, rather than the
  syslog mechanism. (...)

Do we really need logrotate? Apart from having --nodaemon, proftpd(8) also states that proftpd logs to syslog if it uses the historic forking-with-PIDFile mode of operation. I guess this means that proftpd does not create any log files of its own that need rotating.

Yes, we do need logrotate if we want to have an xferlog-format transfer log, because said transfer log is a special kind of beast that does not go to syslog, nor to stdout/stderr for that matter if running with --nodaemon.
So if we use mod_facl, currently we have to disable the transfer log using the TransferLog none directive and delete /etc/logrotate.d/proftpd.conf if we neither want crashes nor overblown transfer log files.

eomanis commented on 2018-07-09 17:07 (UTC) (edited on 2018-07-15 17:55 (UTC) by eomanis)

@migrev: Would it be possible to add --with-modules=(...):mod_facl, along with --enable-facl?

This would make ProFTPD aware of file/directory access granted by Access Control Lists (ACLs), see also the documentation of mod_facl.

I control user access with supplemental groups and ACLs.
For example, I have a directory for a specific event, /some-event, and I want only people that attended that event to be able to read or maybe write to that directory. Think photo sharing or something the like.

To that end I'd create two groups some-event_r and some-event_rw, set up that directory's ACL to allow read/read-write access for those groups, and just go ahead and slap the groups on the desired users as I see fit.
This is very convenient.

mod_facl is actually not required for this kind of access control to work.
What it is required for though are the "HideNoAccess" and "IgnoreHidden" directives, where ProFTPD hides files and directories from users that lack access rights for them, which is arguably a very cool feature.

migrev commented on 2017-04-18 12:53 (UTC)

@lod: Certainly! There you go. Cheers.

lod commented on 2017-04-18 12:30 (UTC)

can you add mod_sftp to --with-modules?

sl1pkn07 commented on 2017-01-16 13:45 (UTC)

.install not need anymore. now systemd-tmpfiles is handled by pacman hooks greetings

alienvenom commented on 2015-08-05 21:08 (UTC)

Any way we can get this to compile/install the modules?

BluePeril commented on 2015-07-15 15:55 (UTC)

Version 1.3.5a available / md5sum b9d3092411478415b31d435f8e26d173

migrev commented on 2014-10-01 13:18 (UTC)

@sl1pkn07: Fixed. Actual path is /var/run/proftpd/ Good catch, thanks.

sl1pkn07 commented on 2014-10-01 12:45 (UTC)

the logrotate is wrong(?) /bin/kill -HUP `cat /var/run/ 2>/dev/null` 2>/dev/null || true ls: cannot access /var/run/ No such file or directory is /var/run/ ? greetings

smirky commented on 2014-05-11 12:28 (UTC)

Sorry, my bad. I didn't focus that good on the version tags.

migrev commented on 2014-05-11 12:17 (UTC)

@smirky: If you mean 1.3.5rc4, that's a release candidate, not an stable version. I'm not updating until 1.3.5 final, so this package is not out-of-date. Thanks anyway for keeping an eye on it.

smirky commented on 2014-05-11 12:08 (UTC)

new version since january

migrev commented on 2013-06-12 10:21 (UTC)

@Insane-Boy Should be possible as MariaDB is a drop-in replacement for mysql and proftpd is built against it (look at the dependencies).

commented on 2013-06-12 10:19 (UTC)

Is it possible to use MariaDB for database authentication with the current build options instead of mySQL ?

migrev commented on 2013-05-31 12:27 (UTC)

@sl1pkn07 Done

sl1pkn07 commented on 2013-05-31 10:50 (UTC)

need change bin path from /usr/sbin /sbin to /usr/bin

Scimmia commented on 2013-05-29 23:26 (UTC)

This package still has files in /usr/sbin as well, which is going to become an issue very soon. Would it be possible to move these now or do we have to wait until the final move (ie, do things specifically call /usr/sbin/* or do they just assume it's in $PATH)?

migrev commented on 2013-05-18 11:25 (UTC)

@Scimmia: Will fix it with the next release. Thanks for pointing it.

Scimmia commented on 2013-05-18 07:01 (UTC)

with the rc.d script gone, shouldn't the conf.d file be removed also?

xyproto commented on 2013-05-16 15:03 (UTC)

Moved from [community], apparently no interest for it from TUs or devs.