Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37898166
en ru br
ALT Linux repos
S:2.9.9-alt4
5.0: 2.7.3-alt3
4.1: 2.7.3-alt1
4.0: 2.6.3-alt2
3.0: 2.3-alt1

Other repositories
Upstream:2.7.3

Group :: System/Kernel and hardware
RPM: fuse

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: fuse-2.9.9.patch
Download


 .gear/rules                                        |   4 +
 .../tags/59d3809daa2921e1324a23b9dbec46e2a7cbd2be  |  25 ++
 .gear/tags/list                                    |   1 +
 .gear/upstream/remotes                             |   3 +
 .gitignore                                         |   1 +
 ChangeLog                                          |   6 +
 configure.ac                                       |   1 +
 fuse.spec                                          | 310 +++++++++++++++++++++
 fuserumount                                        |   2 +
 include/fuse_kernel.h                              |   6 +-
 lib/fuse.c                                         |   2 +-
 lib/fuse_kern_chan.c                               |   8 +-
 util/Makefile.am                                   |   8 -
 util/fusermount.c                                  |   1 +
 util/ulockmgr_server.c                             |   6 +
 15 files changed, 371 insertions(+), 13 deletions(-)
diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 0000000..1ef5474
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,4 @@
+copy: fuserumount
+tar: @name@-@version@:.
+diff: @name@-@version@:. . name=@name@-@version@.patch
+
diff --git a/.gear/tags/59d3809daa2921e1324a23b9dbec46e2a7cbd2be b/.gear/tags/59d3809daa2921e1324a23b9dbec46e2a7cbd2be
new file mode 100644
index 0000000..5429702
--- /dev/null
+++ b/.gear/tags/59d3809daa2921e1324a23b9dbec46e2a7cbd2be
@@ -0,0 +1,25 @@
+object d04687923194d906fe5ad82dcd546c9807bf15b6
+type commit
+tag fuse-2.9.9
+tagger Nikolaus Rath <Nikolaus@rath.org> 1546609126 +0000
+
+Tagged release.
+-----BEGIN PGP SIGNATURE-----
+
+iQLKBAABCgC0FiEE7TF5GyxcFhOvOIuK0RP8rDxOWZ8FAlwvYepfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVE
+MzE3OTFCMkM1QzE2MTNBRjM4OEI4QUQxMTNGQ0FDM0M0RTU5OUYjGmh0dHA6Ly93
+d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwSHG5pa29sYXVzQHJhdGgub3JnAAoJ
+ENET/Kw8TlmfW6wP+wUI22VYugO3OlFV/Sps8xwvdUaxj9paoFIvU9fQ2LgZteXA
+z+HJZGz4UgpvPLC29QZhvsn75IUqZ6B2gDs6EWuQ+2P06ufWhUh9r70J5/qtoox/
+YJf+Nl9/fw9V5c/u+SVJU/xQ+9MxHcpCIlm6VH/eZvLTdBZIoSe12TcUYraFyDge
+IEd8rp/esqVBuWsaYS9ZFTVEpiFNmM5XTQzX3S9Da8bN8NgHyIpb9R+DRvv31ZYi
+SOC33KJtunCWSzWIa+ImjyVutShv5VmJuYCB07ke7mB48DV+zFaZsK6vnjiwpYic
+bloO/wiKbXD7+izrlXEboYSvLAV0XRuppsekMe0u1/1hyBKxx/xHyu4M3OnoIrT4
+J/EJAF6ihmdEGTnGw1+v8ZPJztrnXbv34hDVzh6OlcqoQo9GrrG8ONxFasDQr06M
+KhdCTGzz8J1F61JkJlg+EUR0VwuLskjoir/orroa/y9lF30Hw6j6MKtqVmOTlbMa
+EnPGw8YNwjyLFi7th12vQpg9hOwYnNoy8WYR5KNmUcgjpha7ZuJNRJPwLX8Mqjbi
+7BoVi3eaiUHHmp5LzdF6/X/h++sGADIy/UZZ/1/Y5mUOrSLNn9Ms/d8E74czdJJr
+KJfXvVcMyMj2Fzar+j1Teo0GaEBs1DvCkxxrl6HP4b65Ozn/RJvEqT5+0Jsy
+=N9Dx
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 0000000..986d17a
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1 @@
+59d3809daa2921e1324a23b9dbec46e2a7cbd2be fuse-2.9.9
diff --git a/.gear/upstream/remotes b/.gear/upstream/remotes
new file mode 100644
index 0000000..fa15b42
--- /dev/null
+++ b/.gear/upstream/remotes
@@ -0,0 +1,3 @@
+[remote "upstream"]
+	url = https://github.com/libfuse/libfuse.git
+	fetch = +refs/heads/*:refs/remotes/upstream/*
diff --git a/.gitignore b/.gitignore
index 65a37c7..653b663 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
 # any tracked files which get ignored after the change.
 .*
 !.gitignore
+!.gear
 *.o
 *.lo
 *.la
diff --git a/ChangeLog b/ChangeLog
index 13a369f..5574f20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Unreleased Changes
+==================
+
+* Added UFSD to whitelist (so users can now mount FUSE filesystems
+  on mountpoints within UFSD filesystems).
+
 FUSE 2.9.9 (2019-01-04)
 =======================
 
diff --git a/configure.ac b/configure.ac
index 9946a0e..a2d481a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,6 +55,7 @@ fi
 
 AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
 AC_CHECK_FUNCS([posix_fallocate])
+AC_CHECK_FUNCS([closefrom])
 AC_CHECK_MEMBERS([struct stat.st_atim])
 AC_CHECK_MEMBERS([struct stat.st_atimespec])
 
diff --git a/fuse.spec b/fuse.spec
new file mode 100644
index 0000000..00a2fd5
--- /dev/null
+++ b/fuse.spec
@@ -0,0 +1,310 @@
+%define _unpackaged_files_terminate_build 1
+%global optflags_lto %optflags_lto -ffat-lto-objects
+
+Name: fuse
+Version: 2.9.9
+Release: alt4
+
+Summary: a tool for creating virtual filesystems
+License: GPLv2
+Group: System/Kernel and hardware
+
+Url: https://github.com/libfuse/
+
+Source: %name-%version.tar
+Source1: fuserumount
+
+Patch: %name-%version.patch
+
+Requires: mount >= 2.11
+Provides: avfs-fuse = %version
+Obsoletes: avfs-fuse < %version
+Requires(pre): fuse-common >= 1.1.0
+
+%description
+FUSE (Filesystem in USErspace), an excellent tool
+for creating custom filesystems with minimal effort
+as well as for using them.
+
+%package -n lib%name
+License: LGPLv2
+Group: System/Kernel and hardware
+Summary: tool for creating virtual filesystems
+Provides: FUSE = %version avfs-fuse = %version libavfs-fuse = %version
+Obsoletes: FUSE < %version avfs-fuse < %version libavfs-fuse < %version
+
+%description -n lib%name
+FUSE (Filesystem in USErspace), an excellent tool
+for creating custom filesystems with minimal effort.
+
+This package contains shared libraries.
+
+%package -n lib%name-devel
+License: LGPLv2
+Group: System/Kernel and hardware
+Summary: tool for creating virtual filesystems
+Requires: lib%name = %version-%release
+Provides: libavfs-fuse-devel = %version
+Obsoletes: libavfs-fuse-devel < %version
+
+%description -n lib%name-devel
+FUSE (Filesystem in USErspace), an excellent tool
+for creating custom filesystems with minimal effort.
+
+This package contains development headers.
+
+%prep
+%setup
+%patch -p1
+
+%build
+mkdir -p m4
+cp /usr/share/gettext/config.rpath ./config.rpath
+%autoreconf
+%configure \
+	--enable-lib \
+	--enable-util \
+	--disable-static
+%make_build
+
+%install
+%makeinstall_std
+
+mkdir -p %buildroot/%_lib
+mv %buildroot%_libdir/lib%name.so.* %buildroot/%_lib/
+ln -sf ../../%_lib/lib%name.so.%version %buildroot%_libdir/lib%name.so
+
+rm -f %buildroot%_sysconfdir/udev/rules.d/*
+
+install -pD %SOURCE1 %buildroot%_bindir/fuserumount
+rm -f %buildroot/etc/init.d/fuse
+
+%pre
+if [ $1 -ge 2 -o -e %_bindir/fusermount3 ]; then
+    %_sbindir/control-dump fusermount
+fi
+
+%post
+if [ $1 -ge 2 -o -e %_bindir/fusermount3 ]; then
+    %_sbindir/control-restore fusermount
+else
+    %_sbindir/control fusermount fuseonly
+fi
+
+%files
+%doc AUTHORS NEWS README.md README.NFS doc/how-fuse-works doc/kernel.txt
+/sbin/mount.fuse
+%attr(4710,root,fuse) %_bindir/fusermount
+%_bindir/ulockmgr_server
+%attr(0755,root,root) %_bindir/fuserumount
+%_man1dir/*
+%_man8dir/*
+
+%files -n lib%name
+/%_lib/lib%name.so.*
+%_libdir/lib*.so.*
+
+%files -n lib%name-devel
+%_includedir/*
+%_libdir/lib*.so
+%_pkgconfigdir/*.pc
+
+%changelog
+* Wed Apr 13 2022 Alexey Shabalin <shaba@altlinux.org> 2.9.9-alt4
+- Added -ffat-lto-objects to %%optflags_lto.
+
+* Tue Apr 12 2022 Alexey Shabalin <shaba@altlinux.org> 2.9.9-alt3
+- build from upstream upstream/fuse_2_9_bugfix branch
+- deleted depends on fuse in libfuse (ALT#38714)
+- make buffer size match kernel max transfer size
+
+* Tue Jan 11 2022 Evgeny Sinelnikov <sin@altlinux.org> 2.9.9-alt2
+- Fix build with closefrom() from newest unistd.h
+- Adjust license to GPLv2 and LGPLv2 for library
+
+* Mon Feb 04 2019 Rustem Bapin <rbapin@altlinux.org> 2.9.9-alt1
+- 2.9.9
+- fuserumount move back from fuse-common
+- pre- and postinstall scriptlets are modified to take account mode of already installed fuse3 package
+
+* Wed Apr 11 2018 Sergey Bolshakov <sbolshakov@altlinux.ru> 2.9.7-alt3
+- pick mainline 914871b, fixes build on aarch64
+
+* Tue Jul 25 2017 Denis Smirnov <mithraen@altlinux.ru> 2.9.7-alt2
+- split fuse-common to separate package (for fuse3 compatibility)
+
+* Sat Aug 13 2016 Denis Smirnov <mithraen@altlinux.ru> 2.9.7-alt1
+- 2.9.7
+
+* Sun Sep 06 2015 Denis Smirnov <mithraen@altlinux.ru> 2.9.4-alt3
+- fix fuserumount script access (ALT#31225)
+
+* Mon Aug 24 2015 Denis Smirnov <mithraen@altlinux.ru> 2.9.4-alt2
+- add fuserumount script (ALT#31225)
+
+* Wed May 27 2015 Denis Smirnov <mithraen@altlinux.ru> 2.9.4-alt1
+- 2.9.4
+
+* Sun Feb 09 2014 Denis Smirnov <mithraen@altlinux.ru> 2.9.3-alt4
+- fix wheelonly mode, thanks legion@ (ALT#29814)
+
+* Wed Jan 29 2014 Michael Shigorin <mike@altlinux.org> 2.9.3-alt3
+- drop cuse.conf: conflicts with another one, see #29444 (ALT#29777)
+
+* Thu Oct 10 2013 Denis Smirnov <mithraen@altlinux.ru> 2.9.3-alt2
+- not use /lib/udev/devices (ALT#29444)
+
+* Mon Aug 05 2013 Denis Smirnov <mithraen@altlinux.ru> 2.9.3-alt1
+- 2.9.3
+
+* Wed Apr 24 2013 Denis Smirnov <mithraen@altlinux.ru> 2.9.2-alt2
+- repocop fixes
+
+* Mon Nov 19 2012 Pavel Shilovsky <piastry@altlinux.org> 2.9.2-alt1
+- 2.9.2
+- remove mmap patch
+
+* Thu May 10 2012 Michael Shigorin <mike@altlinux.org> 2.8.7-alt4
+- relaxed /lib/udev/devices/{c,f}use permissions somewhat
+  so that at least the default configuration is coherent
+
+* Sat May 05 2012 Michael Shigorin <mike@altlinux.org> 2.8.7-alt3
+- enabled "fuseonly" mode by default (closes: #27117)
+- tightened up /lib/udev/devices/{c,f}use permissions
+- use control macros in package scripts
+- enhanced descriptions a bit
+
+* Sun Mar 25 2012 Michael Shigorin <mike@altlinux.org> 2.8.7-alt2
+- added "fuseonly" mode, thanks iv@ (see also #27117)
+
+* Sun Mar 25 2012 Michael Shigorin <mike@altlinux.org> 2.8.7-alt1
+- 2.8.7
+- spec cleanup
+
+* Tue Oct 04 2011 Evgeny Sinelnikov <sin@altlinux.ru> 2.8.6-alt1
+- update to new release
+
+* Fri Apr 29 2011 Denis Smirnov <mithraen@altlinux.ru> 2.8.5-alt3
+- add 'cuse' group and grant access to /dev/cuse for 'cuse' group
+
+* Fri Apr 01 2011 Denis Smirnov <mithraen@altlinux.ru> 2.8.5-alt2
+- fix compatibility with new udev (thanks to shrek@)
+
+* Fri Mar 25 2011 Alexey Tourbin <at@altlinux.ru> 2.8.5-alt1
+- 2.8.5
+
+* Sun Oct 24 2010 Denis Smirnov <mithraen@altlinux.ru> 2.8.3-alt3
+- auto rebuild
+
+* Sun Oct 10 2010 Denis Smirnov <mithraen@altlinux.ru> 2.8.3-alt2
+- auto rebuild
+
+* Thu Mar 11 2010 Denis Smirnov <mithraen@altlinux.ru> 2.8.3-alt1
+- 2.8.3
+
+* Wed Jan 27 2010 Denis Smirnov <mithraen@altlinux.ru> 2.8.2-alt1
+- 2.8.2
+- CVE-2009-3297 (ALT #22834)
+
+* Thu Nov 12 2009 Valery Inozemtsev <shrek@altlinux.ru> 2.8.1-alt3
+- removed requires udev-extras
+
+* Fri Nov 06 2009 Valery Inozemtsev <shrek@altlinux.ru> 2.8.1-alt2
+- used ACL
+
+* Thu Sep 17 2009 Valery Inozemtsev <shrek@altlinux.ru> 2.8.1-alt1
+- 2.8.1
+
+* Thu Sep 10 2009 Valery Inozemtsev <shrek@altlinux.ru> 2.8.0-alt1
+- 2.8.0 release
+
+* Sun Aug 09 2009 L.A. Kostis <lakostis@altlinux.ru> 2.8.0-alt0.1.pre3
+- NMU:
+  + updated to 2.8.0pre3.
+  + remove obsoleted patches.
+  + disable -static build by default.
+  + disable KM sources (removed by upstream).
+
+* Sun Dec 07 2008 Denis Smirnov <mithraen@altlinux.ru> 2.7.3-alt3
+- fix building
+
+* Mon Dec 01 2008 Denis Smirnov <mithraen@altlinux.ru> 2.7.3-alt2
+- cleanup spec
+
+* Fri Feb 22 2008 Denis Smirnov <mithraen@altlinux.ru> 2.7.3-alt1
+- upstream update to 2.7.3
+
+* Sun Feb 03 2008 Denis Smirnov <mithraen@altlinux.ru> 2.7.1-alt1
+- upstream update to 2.7.1
+- remove charset conversion patch (upstream add different solution for this)
+- remove kernel-source-fuse subpackage
+
+* Sat Mar 17 2007 Denis Smirnov <mithraen@altlinux.ru> 2.6.3-alt2
+- add charset conversion patch from Andy Schevchenko (bug 10658)
+- add FUSE_ICONV symbol version
+
+* Sun Feb 18 2007 Denis Smirnov <mithraen@altlinux.ru> 2.6.3-alt1
+- upstream update
+
+* Fri Dec 15 2006 Denis Smirnov <mithraen@altlinux.ru> 2.6.1-alt1
+- upstream update
+
+* Wed Oct 18 2006 Denis Smirnov <mithraen@altlinux.ru> 2.5.3-alt2
+- create 'fuse' group
+- fix typo in udev rule (9874)
+
+* Mon Jun 19 2006 Denis Smirnov <mithraen@altlinux.ru> 2.5.3-alt1
+- version update
+
+* Sat Mar 25 2006 Denis Smirnov <mithraen@altlinux.ru> 2.5.2-alt1
+- upstream update
+
+* Sun Nov 27 2005 Denis Smirnov <mithraen@altlinux.ru> 2.4.2-alt1
+- version update
+
+* Tue Oct 11 2005 Denis Smirnov <mithraen@altlinux.ru> 2.4-alt1
+- version update
+
+* Sat Jun 04 2005 Denis Smirnov <mithraen@altlinux.ru> 2.3-alt1
+- version update
+
+* Fri Apr 22 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt6
+- fixed req from libfuse to fuse
+
+* Sun Apr 17 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt5
+- cleanup
+- headers moved to %_includedir/fuse
+- static libraries moved to libfuse-devel-static
+
+* Tue Feb 15 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt4
+- rename avfs-fuse to fuse
+
+* Thu Feb 10 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt3
+- requires fixed
+
+* Sun Feb 06 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt2
+- fix
+
+* Sat Feb 05 2005 Denis Smirnov <mithraen@altlinux.ru> 2.2-alt1
+- some cleanups from lav@
+- version update
+
+* Wed Dec 22 2004 Denis Smirnov <mithraen@altlinux.ru> 2.1-alt2
+- control support added (users now can user fusermount without sudo)
+
+* Mon Dec 06 2004 Denis Smirnov <mithraen@altlinux.ru> 2.1-alt1
+- version update
+
+* Sat Oct 30 2004 Denis Smirnov <mithraen@altlinux.ru> 1.9-alt1
+- version update
+- support I/O in deleted files (upstream)
+- some spec cleanups
+
+* Tue May 18 2004 Anton Farygin <rider@altlinux.ru> 1.1-alt1
+- new version, renamed to avfs-fuse (reselve packagename conflict with Spectrum Emulator fuse)
+
+* Fri Nov 07 2003 Alexander Nekrasov <canis@altlinux.ru> 1.0-alt2
+- now FUSE and kernel-source-FUSE build from one spec file
+
+* Thu Nov 06 2003 Alexander Nekrasov <canis@altlinux.ru> 1.0-alt1
+- first build
diff --git a/fuserumount b/fuserumount
new file mode 100755
index 0000000..ace9060
--- /dev/null
+++ b/fuserumount
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec fusermount -u "$@"
diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h
index c632b58..9e02fe3 100644
--- a/include/fuse_kernel.h
+++ b/include/fuse_kernel.h
@@ -88,12 +88,16 @@
 #ifndef _LINUX_FUSE_H
 #define _LINUX_FUSE_H
 
-#include <sys/types.h>
+#ifdef __linux__
+#include <linux/types.h>
+#else
+#include <stdint.h>
 #define __u64 uint64_t
 #define __s64 int64_t
 #define __u32 uint32_t
 #define __s32 int32_t
 #define __u16 uint16_t
+#endif
 
 /*
  * Version negotiation:
diff --git a/lib/fuse.c b/lib/fuse.c
index d1d873a..1ee0ef4 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -4350,7 +4350,7 @@ static int fuse_session_loop_remember(struct fuse *f)
 
 		res = poll(&fds, 1, timeout * 1000);
 		if (res == -1) {
-			if (errno == -EINTR)
+			if (errno == EINTR)
 				continue;
 			else
 				break;
diff --git a/lib/fuse_kern_chan.c b/lib/fuse_kern_chan.c
index 4a9beb8..640b91a 100644
--- a/lib/fuse_kern_chan.c
+++ b/lib/fuse_kern_chan.c
@@ -83,7 +83,10 @@ static void fuse_kern_chan_destroy(struct fuse_chan *ch)
 		close(fd);
 }
 
-#define MIN_BUFSIZE 0x21000
+#define KERNEL_BUF_PAGES 32
+
+/* room needed in buffer to accommodate header */
+#define HEADER_SIZE 0x1000
 
 struct fuse_chan *fuse_kern_chan_new(int fd)
 {
@@ -92,7 +95,6 @@ struct fuse_chan *fuse_kern_chan_new(int fd)
 		.send = fuse_kern_chan_send,
 		.destroy = fuse_kern_chan_destroy,
 	};
-	size_t bufsize = getpagesize() + 0x1000;
-	bufsize = bufsize < MIN_BUFSIZE ? MIN_BUFSIZE : bufsize;
+	size_t bufsize = KERNEL_BUF_PAGES * getpagesize() + HEADER_SIZE;
 	return fuse_chan_new(&op, fd, bufsize, NULL);
 }
diff --git a/util/Makefile.am b/util/Makefile.am
index 059d5fc..667da79 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -20,14 +20,6 @@ ulockmgr_server_SOURCES = ulockmgr_server.c
 ulockmgr_server_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_REENTRANT 
 ulockmgr_server_LDFLAGS = -pthread
 
-install-exec-hook:
-	-chmod u+s $(DESTDIR)$(bindir)/fusermount
-	@if test ! -e $(DESTDIR)/dev/fuse; then \
-		$(MKDIR_P) $(DESTDIR)/dev; \
-		echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true"; \
-		mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true; \
-	fi
-
 EXTRA_DIST = udev.rules init_script
 
 MOUNT_FUSE_PATH = @MOUNT_FUSE_PATH@
diff --git a/util/fusermount.c b/util/fusermount.c
index 4b799d9..5af487a 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -1049,6 +1049,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd)
 		0x73717368 /* SQUASHFS_MAGIC */,
 		0x01021994 /* TMPFS_MAGIC */,
 		0x24051905 /* UBIFS_SUPER_MAGIC */,
+		0x736675005346544e /* UFSD */,
 		0x58465342 /* XFS_SB_MAGIC */,
 		0x2FC12FC1 /* ZFS_SUPER_MAGIC */,
 	};
diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c
index 273c7d9..a04dac5 100644
--- a/util/ulockmgr_server.c
+++ b/util/ulockmgr_server.c
@@ -22,6 +22,10 @@
 #include <sys/socket.h>
 #include <sys/wait.h>
 
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#endif
+
 struct message {
 	unsigned intr : 1;
 	unsigned nofd : 1;
@@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp,
 	return res;
 }
 
+#if !defined(HAVE_CLOSEFROM)
 static int closefrom(int minfd)
 {
 	DIR *dir = opendir("/proc/self/fd");
@@ -141,6 +146,7 @@ static int closefrom(int minfd)
 	}
 	return 0;
 }
+#endif
 
 static void send_reply(int cfd, struct message *msg)
 {
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin