Browse Source

proftpd: fix largefile file size printing

The configure script uses AC_TRY_RUN to detect if it can use the %llu format
string for printing the file size, which doesn't work when cross compiling.

We unfortunately cannot AUTORECONF the package, so instead patch configure
to force it on if we know we support it.

E.G.:

dd if=/dev/zero of=/home/ftp/file bs=1M seek=8000 count=1
1+0 records in
1+0 records out

total 1032
-rw-r--r--    1 root     root     8389656576 Jan  1 00:00 file

ncftp / > ls -l
-rw-r--r--   0        0   8389656576   Jan  1 00:00   file

VS:

ncftp / > ls -l
-rw-r--r--   0        0   4094689280   Jan  1 00:00   file

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Peter Korsgaard 11 years ago
parent
commit
722090da36
1 changed files with 12 additions and 0 deletions
  1. 12 0
      package/proftpd/proftpd.mk

+ 12 - 0
package/proftpd/proftpd.mk

@@ -26,6 +26,18 @@ ifeq ($(BR2_PACKAGE_PROFTPD_MOD_REWRITE),y)
 PROFTPD_CONF_OPT += --with-modules=mod_rewrite
 endif
 
+ifeq ($(BR2_LARGEFILE),y)
+# configure script doesn't handle detection of %llu format string
+# support for printing the file size when cross compiling, breaking
+# access for large files.
+# We unfortunately cannot AUTORECONF the package, so instead force it
+# on if we know we support it
+define PROFTPD_USE_LLU
+	$(SED) 's/HAVE_LU/HAVE_LLU/' $(@D)/configure
+endef
+PROFTPD_PRE_CONFIGURE_HOOKS += PROFTPD_USE_LLU
+endif
+
 define PROFTPD_MAKENAMES
 	$(MAKE1) CC="$(HOSTCC)" CFLAGS="" LDFLAGS="" -C $(@D)/lib/libcap _makenames
 endef