diff -u lufs-0.9.7/ChangeLog.captive lufs-0.9.7captive8/ChangeLog.captive --- lufs-0.9.7/ChangeLog.captive 2004-10-15 18:47:48.674046448 +0200 +++ lufs-0.9.7captive8/ChangeLog.captive 2003-12-06 20:34:59.000000000 +0100 @@ -0,0 +1,1309 @@ +2003-12-06 20:28 Jan Kratochvil + + * NEWS.captive, configure.in: + + Release: captive8 + +2003-12-06 20:28 Jan Kratochvil + + * NEWS.captive: + + +NEWS for lufs-0.9.7captive8 + - Cope with the installed Linux kernel sources not matching the current kernel. + +2003-12-02 11:50 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + + Check if the compiled module matches the currently running kernel. + - We may found some unspecific sources ('/usr/src/linux/'?) not matching the + current kernel. It still may be worth to try precompiled modules and/or give + suggestive error messages. + +2003-11-27 17:14 Jan Kratochvil + + * configure.in: + + Release: captive7 -> captive8cvs + +2003-11-27 02:59 Jan Kratochvil + + * NEWS.captive, configure.in: + + Release: captive7 + +2003-11-27 02:58 Jan Kratochvil + + * debian/lufs.files: + + Debian package updated for 'prepmod'-wrap 'lufsd' instead of 'lufsmnt'. + +2003-11-26 23:04 Jan Kratochvil + + * NEWS.captive: + + +Kernel module prebuilding compatibility with TurboLinux and SuSE kernels + +2003-11-26 09:30 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Cosmetic: Updated 'prepare' message text. + +2003-11-26 09:09 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + +Workaround SuSE kernel 2.4.21-144 containing precompiled 'split-include'. + +2003-11-25 15:11 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + +Workaround Red Hat kernel 2.4.18-14 containing precompiled 'mkdep'. + +2003-11-24 19:55 Jan Kratochvil + + * autogen.pl: + + Update build clearing of 'modbin' temporary directory. + +2003-11-24 19:54 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + +Support for TurboLinux kernels. + +2003-11-22 10:07 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Workarounded kernel dependencies rebuild for sources outside: /usr/src + +2003-11-22 09:16 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + '--prebuild' is now compatible with SuSE kernels. + Kernel sources are no longer installed, they are only extracted now. + +2003-11-21 08:20 Jan Kratochvil + + * kernel/Linux/modbin/Makefile.am: + + 'kernel-source-*.rpm' directory overridable by 'KERNEL_SOURCE_DIR'. + +2003-11-20 16:55 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed 'lufsd' wrapping detection. + +2003-11-20 14:04 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Respect configure '@program_transform_name@' for lufsd(1) basename detection. + +2003-11-20 06:43 Jan Kratochvil + + * kernel/Linux/Makefile.am: + + Fixed fix of installation if 'transform' is in effect. + +2003-11-20 00:24 Jan Kratochvil + + * kernel/Linux/Makefile.am: + + Fixed installation if 'transform' is in effect. + +2003-11-19 15:51 Jan Kratochvil + + * configure.in: + + Drop lufsumount(1) in the favor of compatibility with generic umount(8). + +2003-11-19 12:42 Jan Kratochvil + + * autogen.pl: + + 'prepmod'-wrap 'lufsd' instead of 'lufsmnt' as 'prepmod' fail is safe this way. + +2003-11-19 12:41 Jan Kratochvil + + * NEWS.captive: + + +'prepmod'-wrap 'lufsd' instead of 'lufsmnt' as 'prepmod' fail is safe this way + +Fixed kernel module compilation if invoked by mount(8) + +Drop lufsumount(1) in the favor of compatibility with generic umount(8) + +2003-11-19 12:39 Jan Kratochvil + + * autogen.pl, lufs.spec.in, debian/lufs.files, man/Makefile.am, + man/lufsmount.1, man/lufsumount.1, util/Makefile.am, + util/lufsmnt.c, util/lufsumount.c: + + Drop lufsumount(1) in the favor of compatibility with generic umount(8). + +2003-11-19 12:08 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Cosmetic: Adjusted 'progress' message text. + +2003-11-19 12:00 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed Perl warning. + +2003-11-19 11:34 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + +'Compiling LUFS kernel module' message. + +2003-11-19 11:32 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed kernel module compilation if invoked by mount(8). + +2003-11-19 11:30 Jan Kratochvil + + * lufs.spec.in, kernel/Linux/Makefile.am, lufsd/Makefile.am, + util/Makefile.am, kernel/Linux/prepmod.in: + + 'prepmod'-wrap 'lufsd' instead of 'lufsmnt' as 'prepmod' fail is safe this way. + +2003-11-19 11:28 Jan Kratochvil + + * configure.in, kernel/Linux/2.6/Makefile.am, + kernel/Linux/2.6/Makefile: + + Fixed branch update for: lufs-0.9.7 + +2003-11-19 11:28 Jan Kratochvil + + * kernel/Linux/2.6/Makefile.am: + + file Makefile.am was initially added on branch captive. + +2003-11-14 18:59 Jan Kratochvil + + * NEWS.captive: + + +NEWS for lufs-0.9.7captive7 + - Branch update for 0.9.7 (no changes apply no 'captive' branch) + +2003-11-14 18:58 Jan Kratochvil + + * autogen.pl, configure.in, orig-lufs-0.9.6.tar.gz, + orig-lufs-0.9.7.tar.gz, filesystems/sshfs/Makefile.am, + include/Makefile.am, kernel/Linux/Makefile.am, + kernel/Linux/prepmod.in, kernel/Linux/2.6/Makefile, + kernel/Linux/2.6/dir.c, kernel/Linux/2.6/file.c, + kernel/Linux/2.6/inode.c, kernel/Linux/2.6/lufs.h, + kernel/Linux/2.6/makefile.in, kernel/Linux/2.6/proc.c, + kernel/Linux/2.6/proc.h, kernel/Linux/2.6/symlink.c: + + Branch update for: lufs-0.9.7 + +2003-11-14 18:58 Jan Kratochvil + + * kernel/Linux/2.6/makefile.in: + + file makefile.in was initially added on branch captive. + +2003-11-14 18:58 Jan Kratochvil + + * orig-lufs-0.9.7.tar.gz: + + file orig-lufs-0.9.7.tar.gz was initially added on branch captive. + +2003-11-13 21:17 Jan Kratochvil + + * Makefile.in, aclocal.m4, bootstrap, configure, configure.in, + docs/Makefile.in, filesystems/Makefile.in, + filesystems/cardfs/Makefile.in, filesystems/cardfs/cardfs.cpp, + filesystems/cardfs/cardfs.h, filesystems/cefs/Makefile.in, + filesystems/cefs/asyncd/Makefile.am, + filesystems/cefs/asyncd/Makefile.in, filesystems/ftpfs/Makefile.in, + filesystems/gnetfs/Makefile.in, filesystems/gvfs/Makefile.am, + filesystems/gvfs/Makefile.in, filesystems/localfs/Makefile.in, + filesystems/locasefs/Makefile.in, filesystems/sshfs/Makefile.am, + filesystems/sshfs/Makefile.in, filesystems/wavfs/Makefile.in, + include/Makefile.in, kernel/Makefile.in, kernel/Linux/Makefile.am, + kernel/Linux/Makefile.in, kernel/Linux/2.4/Makefile.in, + kernel/Linux/2.6/Makefile, kernel/Linux/2.6/dir.c, + kernel/Linux/2.6/file.c, kernel/Linux/2.6/inode.c, + kernel/Linux/2.6/lufs.h, kernel/Linux/2.6/proc.c, + kernel/Linux/2.6/proc.h, kernel/Linux/2.6/symlink.c, + lufsd/Makefile.in, man/Makefile.in, util/Makefile.in: + + http://prdownloads.sourceforge.net/lufs/lufs-0.9.7.tar.gz?download + +2003-10-17 09:08 Jan Kratochvil + + * NEWS.captive, configure.in: + + Release: captive6 + +2003-10-17 08:12 Jan Kratochvil + + * NEWS.captive: + + +NEWS for lufs-0.9.6captive6 + - +Fixed own symlinked files corruption during 'rpm -U' + +2003-10-17 08:11 Jan Kratochvil + + * lufs.spec.in, debian/lufs.files, debian/postinst, debian/postrm, + debian/prerm, lufsd/Makefile.am, util/Makefile.am: + + Fixed own symlinked files corruption during 'rpm -U'. + +2003-10-13 15:21 Jan Kratochvil + + * configure.in: + + Release: captive5 -> captive6cvs + +2003-10-12 23:35 Jan Kratochvil + + * configure.in: + + Release: captive5 + +2003-10-12 23:33 Jan Kratochvil + + * NEWS.captive: + + +NEWS for lufs-0.9.6captive5 + +2003-10-12 21:51 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed broken build of 2.4 Linux kernel module. + +2003-10-12 21:25 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Compatibility with 2.6 Linux kernel. + Run 'make dep' only when really needed. + - Complaint by Martin Drab. + Cosmetic: Suppress warning on uname(1) unsupporting '-p'. + +2003-10-12 21:22 Jan Kratochvil + + * debian/lufs.files: + + Compatibility with 2.6 Linux kernel. + +2003-10-12 21:22 Jan Kratochvil + + * debian/rules, kernel/Linux/modbin/Makefile.am: + + Prevent pre-building binary modules for regular .tar.gz archive. + Compatibility with 2.6 Linux kernel. + +2003-10-12 21:21 Jan Kratochvil + + * lufs.spec.in: + + Prevent pre-building binary modules for regular .tar.gz archive. + +2003-10-10 19:25 Jan Kratochvil + + * kernel/Linux/2.4/makefile.in: + + -I@include@ is no longer needed. + +2003-10-10 18:39 Jan Kratochvil + + * configure.in: + + Release: captive4 + +2003-10-10 18:38 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed workaround of Red Hat kernels for 2.6.x Linux kernels. + +2003-10-10 18:34 Jan Kratochvil + + * configure.in: + + Release: captive3 -> captive4cvs + +2003-10-06 18:11 Jan Kratochvil + + * configure.in: + + Release: captive3 + +2003-10-06 17:22 Jan Kratochvil + + * kernel/Linux/modbin/Makefile.am: + + Fixed -I for prevention of -I/usr/include during Linux kernel mod compilation. + +2003-10-06 16:56 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed keeping quiet for 'make dep'. + +2003-10-06 12:00 Jan Kratochvil + + * NEWS.captive: + + +NEWS for lufs-0.9.6captive3 + +2003-10-06 11:58 Jan Kratochvil + + * include/Makefile.am, kernel/Linux/2.4/lufs.h: + + Prevent -I/usr/include during Linux kernel module compilation. + +2003-10-06 11:57 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Prevent -I/usr/include during Linux kernel module compilation. + Workaround Red Hat kernels: before + Workaround broken pre-built 'dependencies' file on installed kernel sources. + +2003-10-06 10:53 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Failed final message updated to be more descriptive. + +2003-09-29 16:27 Jan Kratochvil + + * configure.in: + + Release: captive2 -> captive3cvs + +2003-09-29 07:24 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Always rebuild Linux kernel dependencies as the shipped one may be broken. + +2003-09-28 23:09 Jan Kratochvil + + * configure.in: + + Release: captive2 + +2003-09-28 19:59 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Mandrake kernel compatibility fix. + +2003-09-28 18:07 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Try to workaround Debian uname(1) does not support '-p'. + +2003-09-28 16:27 Jan Kratochvil + + * autogen.pl, configure.in, kernel/Linux/prepmod.in, + kernel/Linux/2.4/Makefile.am, kernel/Linux/2.4/makefile.in: + + Compatibilized Linux kernel driver building. + - Suggestion/patch by Martin Drab. + +2003-09-28 16:27 Jan Kratochvil + + * kernel/Linux/2.4/makefile.in: + + file makefile.in was initially added on branch captive. + +2003-09-28 09:56 Jan Kratochvil + + * NEWS.captive, lufs.spec.in, debian/lufs.docs, Makefile.am: + + +NEWS for 'captive' branch. + +2003-09-28 09:56 Jan Kratochvil + + * NEWS.captive: + + file NEWS.captive was initially added on branch captive. + +2003-09-21 14:50 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed building of Debian-native packages without any 'orig-*' archive. + +2003-09-21 13:04 Jan Kratochvil + + * configure.in: + + Release: captive1 -> captive2cvs + +2003-09-21 09:55 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed build if '/etc/debian_version' contains slashes ('/'). + +2003-09-21 09:14 Jan Kratochvil + + * debian/lufs.files: + + Fixed missing files in .deb packaging. + +2003-09-20 18:47 Jan Kratochvil + + * debian/changelog.in, macros/AutoGen.pm: + + Fixed .deb 'foreign' patched packages versioning. + +2003-09-20 18:46 Jan Kratochvil + + * debian/control: + + Fixed .deb packaging 'Build-Depends' typo. + +2003-09-20 17:26 Jan Kratochvil + + * autogen.pl: + + +clean generated 'debian/changelog'. + +2003-09-20 11:52 Jan Kratochvil + + * macros/AutoGen.pm: + + Written AutoGen documentation. + +2003-09-20 11:36 Jan Kratochvil + + * Makefile.am, configure.in, debian/changelog, debian/changelog.in, + macros/AutoGen.pm: + + Support proper 'foreign'/patched packages versioning even for .deb pkgs. + +2003-09-20 11:36 Jan Kratochvil + + * debian/changelog.in: + + file changelog.in was initially added on branch captive. + +2003-09-20 10:35 Jan Kratochvil + + * configure.in, lufs.spec.in, macros/AutoGen.pm: + + Support proper 'foreign'/patched packages versioning. + +2003-09-18 13:09 Jan Kratochvil + + * macros/glade-w.m4: + + Cosmetic: Xvnc(1) message updated. + +2003-09-18 12:27 Jan Kratochvil + + * macros/: Makefile.am, glade-w.m4, glade-w.sh.in: + + Include glade-2(1) --write-source support. + +2003-09-18 12:26 Jan Kratochvil + + * macros/AutoGen.pm: + + Delete 'configure.orig' after patch(1). + Include glade-2(1) --write-source support. + +2003-09-18 09:46 Jan Kratochvil + + * macros/AutoGen.pm: + + Include '--dist' for '--help' text. + +2003-09-18 09:44 Jan Kratochvil + + * macros/need-declaration.m4: + + Cosmetic: Include copyright notice. + +2003-09-16 17:00 Jan Kratochvil + + * lufsd/daemon.c: + + +debug-hack: Do not close fds if '--debug-messages' is given. + - It would lock-up usermount(1) but these two features should not meet. :-) + +2003-09-16 16:58 Jan Kratochvil + + * lufs.spec.in: + + Release marked as 'captivecvs'. + +2003-09-12 21:53 Jan Kratochvil + + * macros/AutoGen.pm: + + Include '--deb' and '--debtest' for '--help' text. + +2003-09-09 20:58 Jan Kratochvil + + * debian/control: + + Workaround Debian packaging prerequisite 'automake' version check. + +2003-09-09 14:41 Jan Kratochvil + + * macros/AutoGen.pm: + + Support deb packaging extension of 'orig' archive '.bz2'. + +2003-09-08 16:10 Jan Kratochvil + + * macros/AutoGen.pm: + + Explain CPAN error: Writing Makefile for -- NOT OK + +2003-08-30 12:28 Jan Kratochvil + + * macros/AutoGen.pm: + + &_rpmbuild: Support also .tar.bz2 orig source packages. + +2003-08-30 11:48 Jan Kratochvil + + * macros/AutoGen.pm: + + Ignore line leading whitespaces during "configure.in" keywords search. + +2003-08-30 11:44 Jan Kratochvil + + * macros/AutoGen.pm: + + +Compatibility with "configure.ac" (not just "configure.in") name. + +2003-08-29 14:47 Jan Kratochvil + + * macros/AutoGen.pm: + + Cleanfiles relaxed: -devel-[0-9]* -> -*-[0-9]* + +2003-08-29 14:43 Jan Kratochvil + + * lufsd/daemon.c: + + Close all fds for the daemon for compatibility with usermount(8). + +2003-08-29 13:06 Jan Kratochvil + + * util/lufsmnt.c: + + +'mntent.mnt_fsname' and 'mntent.mnt_type' mntent overriding options. + +2003-08-29 13:05 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Use absolute pathname to call all subcommands. + - We do not have "/sbin" in $PATH in some situation on Shrike. + +2003-08-28 23:22 Jan Kratochvil + + * include/lufs/proto.h, kernel/Linux/2.4/inode.c, + lufsd/filesystem.c, lufsd/filesystem.h, lufsd/fsctl.c: + + Implemented optional 'statfs' for visible df(1) lufs filesystems entry. + +2003-08-22 11:00 Jan Kratochvil + + * lufsd/: fsctl.c, fsctl.h: + + Exit parent fsctl thread only after joining all of its child threads. + - Prevents atexit handlers execution before finishing all child operations. + +2003-08-22 10:59 Jan Kratochvil + + * lufsd/daemon.c: + + setlinebuf(3) on stdout and stderr to prevent buffering of debug dumps to file. + lu_fsctl_run() returns now - use succcessful exit(0). + +2003-08-22 09:56 Jan Kratochvil + + * filesystems/gnetfs/gnet_lib.h, include/lufs/fs.h, + util/lufsmount.c: + + All debug messages must be always dumped to 'stderr' (never 'stdout'). + +2003-08-22 02:00 Jan Kratochvil + + * lufsd/options.c: + + Disable 'MAX_LEN' limitation of option (engine command-line) length. + +2003-08-21 19:30 Jan Kratochvil + + * .vimrc: + + Fix VIM tabstop/shiftwidth to match lufs package. + +2003-08-21 19:30 Jan Kratochvil + + * macros/: .vimrc, Makefile.am: + + Set VIM tabstop 2. + +2003-08-21 17:48 Jan Kratochvil + + * lufs.spec.in: + + Specify minimal 'BuildRequires: automake' version: 1.6 + +2003-08-21 17:19 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Pre-build the kernel module in up/smp and i386/i586/i686/athlon architectures. + +2003-08-21 14:55 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Display debug-hint if failed to load the kernel module. + +2003-08-21 14:00 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed missing message EOL. + +2003-08-21 13:36 Jan Kratochvil + + * Makefile-head.am, Makefile.am, configure.in: + + Include 'autogen.pl'&co. for 'make dist'. + - It is needed by 'debian/rules' 'clean' rule to reduce '*.diff.gz' size. + +2003-08-21 13:36 Jan Kratochvil + + * Makefile-head.am: + + file Makefile-head.am was initially added on branch captive. + +2003-08-21 13:35 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed pre-built modules to be recognized with proper name 'lufs'. + Substitute also '@exec_prefix@' in '$lufsmnt_bin'. + +2003-08-21 13:34 Jan Kratochvil + + * kernel/Linux/modbin/Makefile.am: + + Fixed pre-built modules to be recognized with proper name 'lufs'. + +2003-08-21 13:33 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed .deb building of 'orig'-based packages. + Fixed .deb building of non-primary packages. + +Option '--cleanfilesfordir' to dump &cleanfilesfordir result. + +2003-08-21 13:31 Jan Kratochvil + + * debian/: changelog, configure-subst-x.patch, control, copyright, + lufs.conffiles, lufs.dirs, lufs.docs, lufs.files, postinst, postrm, + prerm, rules: + + +Debian .deb packaging. + +2003-08-21 13:31 Jan Kratochvil + + * debian/changelog: + + file changelog was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/configure-subst-x.patch: + + file configure-subst-x.patch was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/control: + + file control was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/copyright: + + file copyright was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/lufs.conffiles: + + file lufs.conffiles was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/lufs.dirs: + + file lufs.dirs was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/lufs.docs: + + file lufs.docs was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/lufs.files: + + file lufs.files was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/postinst: + + file postinst was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/postrm: + + file postrm was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/prerm: + + file prerm was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * debian/rules: + + file rules was initially added on branch captive. + +2003-08-21 13:31 Jan Kratochvil + + * lufs.spec.in: + + Merge 'devel' to the man package - we need it to compile kernel module. + +2003-08-21 13:30 Jan Kratochvil + + * autogen.pl: + + +Require automake 1.6. + +2003-08-21 09:59 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Fixed to try pre-built modules even if no kernel headers are available. + +Compatibility with older RedHat kernel-source RPM packages. + +2003-08-21 07:44 Jan Kratochvil + + * .vimrc, Makefile.am: + + Set VIM tab indent size to 2. + +2003-08-21 07:44 Jan Kratochvil + + * .vimrc: + + file .vimrc was initially added on branch captive. + +2003-08-20 22:44 Jan Kratochvil + + * lufs.spec.in: + + Fixed executability of 'kernel/Linux/prepmod.in' after patch(1). + +2003-08-20 22:30 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Do not create bogus '@localstatedir@' subdir if not yet subst-ed version used. + +2003-08-20 22:28 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Try pre-built modules in a more version-match-probabilty sorted way. + +2003-08-20 22:24 Jan Kratochvil + + * configure.in, kernel/Linux/prepmod.in: + + Remove kernel dependencies from 'configure' (as we now use 'prepmod'). + +2003-08-20 20:30 Jan Kratochvil + + * autogen.pl: + + Fixed if 'macros' could got checked out empty by our '-r captive' tag. + +2003-08-20 19:32 Jan Kratochvil + + * autogen.pl: + + Clean also: ./ChangeLog.captive.bak + +2003-08-20 19:31 Jan Kratochvil + + * util/Makefile.am: + + Fixed installation by non-root user; DESTDIR is required in such case. + +2003-08-20 19:29 Jan Kratochvil + + * kernel/Linux/modbin/Makefile.am: + + Fixed custom lufs module build if lufs-devel is not yet installed. + +2003-08-20 19:29 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + Store pre-compiled local custom lufs module to: /var/lib/lufs + Fixed custom lufs module build if lufs-devel is not yet installed. + Various bootstrap fixes. + +2003-08-20 19:28 Jan Kratochvil + + * kernel/Linux/Makefile.am: + + Store pre-compiled local custom lufs module to: /var/lib/lufs + +2003-08-20 19:28 Jan Kratochvil + + * lufs.spec.in: + + Patch 'configure' to keep executability of config.status-substed files. + Fixed packaged files attributes. + +2003-08-20 16:00 Jan Kratochvil + + * lufs.spec.in: + + pre/post-install scripts fixed for new 'prepmod'. + +2003-08-20 15:48 Jan Kratochvil + + * README: + + +Short 'Bleeding Edge' checkout doc. + +2003-08-20 15:44 Jan Kratochvil + + * autogen.pl: + + Fixed removal of rename 'lufsmnt' to the current: lufsmnt-bin + +2003-08-20 15:43 Jan Kratochvil + + * autogen.pl, configure.in, lufs.spec.in, kernel/Linux/Makefile.am, + kernel/Linux/prepmod.in, kernel/Linux/2.4/Makefile.am, + kernel/Linux/modbin/Makefile.am, util/Makefile.am: + + +Automatic rebulding and pre-building of kernel module. + +2003-08-20 15:43 Jan Kratochvil + + * kernel/Linux/modbin/Makefile.am: + + file Makefile.am was initially added on branch captive. + +2003-08-20 15:43 Jan Kratochvil + + * kernel/Linux/prepmod.in: + + file prepmod.in was initially added on branch captive. + +2003-08-20 15:42 Jan Kratochvil + + * filesystems/Makefile.am: + + Fixed installation by non-root user; DESTDIR is required in such case. + +2003-08-20 13:45 Jan Kratochvil + + * macros/AutoGen.pm: + + &_readfile and &_writefile: Fail on failed file close. + - The open file could be pipe with failed return code. + &writefile: +Support destination pipe if $filename=~/^[|]/. + Patch 'configure' to keep executability of config.status-substed files. + +2003-08-19 18:22 Jan Kratochvil + + * macros/AutoGen.pm: + + +Support for 'foreign' RPM build where "orig-$name-*.tar.gz" archive is used. + +2003-08-19 18:22 Jan Kratochvil + + * lufs.spec.in: + + Partial update for new 'foreign' RPM build of AutoGen. + +2003-08-19 18:21 Jan Kratochvil + + * orig-lufs-0.9.6.tar.gz: + + file orig-lufs-0.9.6.tar.gz was initially added on branch captive. + +2003-08-19 18:21 Jan Kratochvil + + * orig-lufs-0.9.6.tar.gz: + + http://prdownloads.sourceforge.net/lufs/lufs-0.9.6.tar.gz?download + +2003-08-19 16:12 Jan Kratochvil + + * Makefile.am, cvs2cl-usermap: + + +'cvs2cl-usermap' for 'ChangeLog.captive' generation. + +2003-08-19 16:12 Jan Kratochvil + + * cvs2cl-usermap: + + file cvs2cl-usermap was initially added on branch captive. + +2003-08-19 16:11 Jan Kratochvil + + * Makefile.am: + + Fixed 'EXTRA_DIST' for AutoGen. + +2003-08-19 12:38 Jan Kratochvil + + * autogen.pl: + + +Script for AutoGen. + +2003-08-19 12:38 Jan Kratochvil + + * autogen.pl: + + file autogen.pl was initially added on branch captive. + +2003-08-19 12:37 Jan Kratochvil + + * configure.in, lufsd/Makefile.am: + + Compilation of C++ modules conditioned by --with-cxx (disabled by default). + +2003-08-19 10:25 Jan Kratochvil + + * filesystems/cefs/asyncd/Makefile.am, + filesystems/gvfs/Makefile.am, filesystems/sshfs/Makefile.am, + kernel/Linux/2.4/Makefile.am: + + Updated syntax for new automake (tested 1.7). + +2003-08-19 10:21 Jan Kratochvil + + * Makefile.am: + + Fixed 'ChangeLog.captive' rules. + +2003-08-19 10:10 Jan Kratochvil + + * Makefile.am, configure.in: + + Removed 'config' subdir to be compatible with AutoGen. + +2003-08-19 10:06 Jan Kratochvil + + * lufs.spec.in: + + Use some substituted variables. + +2003-08-19 10:05 Jan Kratochvil + + * configure.in, lufs.spec.in: + + 'lufs.spec' is now substituted by 'configure' from 'lufs.spec.in'. + +2003-08-19 10:05 Jan Kratochvil + + * lufs.spec.in: + + file lufs.spec.in was initially added on branch captive. + +2003-08-19 10:02 Jan Kratochvil + + * Makefile.am: + + +'ChangeLog.captive' building by 'cvs2cl'. + +2003-08-19 10:02 Jan Kratochvil + + * configure.in: + + Provide '--enable-maintainer-mode'. + - Currently used for 'ChangeLog.captive' generation. + +2003-08-19 09:58 Jan Kratochvil + + * bootstrap: + + Replaced by AutoGen. + +2003-08-19 09:57 Jan Kratochvil + + * macros/AutoGen.pm: + + 'ChangeLog' filename is now configurable by '$Options{"ChangeLog"}'. + +2003-08-19 09:51 Jan Kratochvil + + * Makefile.in, aclocal.m4, config.h.in, configure, lufs.spec, + docs/Makefile.in, filesystems/Makefile.in, + filesystems/cardfs/Makefile.in, filesystems/cefs/Makefile.in, + filesystems/cefs/asyncd/Makefile.in, filesystems/ftpfs/Makefile.in, + filesystems/gnetfs/Makefile.in, filesystems/gvfs/Makefile.in, + filesystems/localfs/Makefile.in, filesystems/locasefs/Makefile.in, + filesystems/sshfs/Makefile.in, filesystems/wavfs/Makefile.in, + include/Makefile.in, kernel/Makefile.in, kernel/Linux/Makefile.in, + kernel/Linux/2.4/Makefile.in, lufsd/Makefile.in, man/Makefile.in, + util/Makefile.in: + + Removed autogenerated files. + +2003-08-19 09:38 Jan Kratochvil + + * AUTHORS, COPYING, ChangeLog, Contributors, INSTALL, Makefile.am, + Makefile.in, NEWS, README, THANKS, TODO, aclocal.m4, bootstrap, + config.h.in, configure, configure.in, lufs.spec, docs/Makefile.am, + docs/Makefile.in, docs/cefs.txt, docs/lufs.html, docs/lufs.sxw, + docs/lufs.txt, filesystems/Makefile.am, filesystems/Makefile.in, + filesystems/cardfs/Makefile.am, filesystems/cardfs/Makefile.in, + filesystems/cardfs/cardfs.cpp, filesystems/cardfs/cardfs.h, + filesystems/cefs/Makefile.am, filesystems/cefs/Makefile.in, + filesystems/cefs/README, filesystems/cefs/cefs.cpp, + filesystems/cefs/cefs.h, filesystems/cefs/chunk.c, + filesystems/cefs/chunk.h, filesystems/cefs/little_endian.h, + filesystems/cefs/rapi.c, filesystems/cefs/rapi.h, + filesystems/cefs/windows.h, filesystems/cefs/wine.c, + filesystems/cefs/asyncd/Makefile.am, + filesystems/cefs/asyncd/Makefile.in, + filesystems/cefs/asyncd/README, filesystems/cefs/asyncd/asyncd.c, + filesystems/cefs/asyncd/asyncd.h, filesystems/cefs/asyncd/debug.c, + filesystems/cefs/asyncd/debug.h, filesystems/cefs/asyncd/socket.c, + filesystems/cefs/asyncd/socket.h, filesystems/ftpfs/Makefile.am, + filesystems/ftpfs/Makefile.in, filesystems/ftpfs/ftpfs.cpp, + filesystems/ftpfs/ftpfs.h, filesystems/ftpfs/ftplib.cpp, + filesystems/ftpfs/ftplib.h, filesystems/ftpfs/ftpsys.h, + filesystems/ftpfs/ftpsys_netware.cpp, + filesystems/ftpfs/ftpsys_netware.h, + filesystems/ftpfs/ftpsys_unix.cpp, filesystems/ftpfs/ftpsys_unix.h, + filesystems/ftpfs/ftpsys_windows.cpp, + filesystems/ftpfs/ftpsys_windows.h, filesystems/gnetfs/Makefile.am, + filesystems/gnetfs/Makefile.in, filesystems/gnetfs/gnet.h, + filesystems/gnetfs/gnet_channel.c, + filesystems/gnetfs/gnet_channel.h, + filesystems/gnetfs/gnet_defaults.h, + filesystems/gnetfs/gnet_engine.c, filesystems/gnetfs/gnet_engine.h, + filesystems/gnetfs/gnet_host.c, filesystems/gnetfs/gnet_host.h, + filesystems/gnetfs/gnet_lib.h, filesystems/gnetfs/gnet_msg.c, + filesystems/gnetfs/gnet_msg.h, filesystems/gnetfs/gnet_proto.c, + filesystems/gnetfs/gnet_proto.h, filesystems/gnetfs/gnet_search.c, + filesystems/gnetfs/gnet_search.h, filesystems/gnetfs/gnet_xfer.c, + filesystems/gnetfs/gnet_xfer.h, filesystems/gnetfs/gnetfs.c, + filesystems/gnetfs/gnetfs.h, filesystems/gnetfs/list.h, + filesystems/gnetfs/search.c, filesystems/gnetfs/search.h, + filesystems/gnetfs/vtree.c, filesystems/gnetfs/vtree.h, + filesystems/gnetfs/xfer.c, filesystems/gnetfs/xfer.h, + filesystems/gvfs/Makefile.am, filesystems/gvfs/Makefile.in, + filesystems/gvfs/gvfs.cpp, filesystems/gvfs/gvfs.h, + filesystems/localfs/Makefile.am, filesystems/localfs/Makefile.in, + filesystems/localfs/localfs.c, filesystems/locasefs/Makefile.am, + filesystems/locasefs/Makefile.in, + filesystems/locasefs/locasefs.cpp, filesystems/locasefs/locasefs.h, + filesystems/sshfs/Makefile.am, filesystems/sshfs/Makefile.in, + filesystems/sshfs/sftplib.cpp, filesystems/sshfs/sftplib.h, + filesystems/sshfs/sshfs.cpp, filesystems/sshfs/sshfs.h, + filesystems/wavfs/Makefile.am, filesystems/wavfs/Makefile.in, + filesystems/wavfs/file_handle.cpp, filesystems/wavfs/file_handle.h, + filesystems/wavfs/fs_modules.cpp, filesystems/wavfs/fs_modules.h, + filesystems/wavfs/glue.cpp, filesystems/wavfs/handlefs.cpp, + filesystems/wavfs/handlefs.h, filesystems/wavfs/tools.cpp, + filesystems/wavfs/tools.h, include/Makefile.am, + include/Makefile.in, include/lufs/fs.h, include/lufs/proto.h, + kernel/Makefile.am, kernel/Makefile.in, kernel/Linux/Makefile.am, + kernel/Linux/Makefile.in, kernel/Linux/2.4/Makefile.am, + kernel/Linux/2.4/Makefile.in, kernel/Linux/2.4/dir.c, + kernel/Linux/2.4/file.c, kernel/Linux/2.4/inode.c, + kernel/Linux/2.4/lufs.h, kernel/Linux/2.4/proc.c, + kernel/Linux/2.4/proc.h, kernel/Linux/2.4/symlink.c, + lufsd/Makefile.am, lufsd/Makefile.in, lufsd/daemon.c, + lufsd/dircache.c, lufsd/dircache.h, lufsd/filesystem.c, + lufsd/filesystem.h, lufsd/fsctl.c, lufsd/fsctl.h, lufsd/list.h, + lufsd/lufsd.conf, lufsd/lussh, lufsd/message.c, lufsd/message.h, + lufsd/options.c, man/Makefile.am, man/Makefile.in, man/lufsmount.1, + man/lufsumount.1, util/Makefile.am, util/Makefile.in, + util/auto.ftpfs.c, util/auto.sshfs.c, util/lufsmnt.c, + util/lufsmount.c, util/lufsumount.c: + + http://prdownloads.sourceforge.net/lufs/lufs-0.9.6.tar.gz?download + +2003-08-18 18:05 Jan Kratochvil + + * macros/AutoGen.pm: + + +Debian .deb packaging. + +2003-08-18 15:57 Jan Kratochvil + + * macros/: Makefile-gtk-doc.am, Makefile.am, gtk-doc.m4: + + Removed gtk-doc files not needed with gtkdocize(1) of gtk-doc-1.1. + +2003-08-17 09:16 Jan Kratochvil + + * macros/AutoGen.pm: + + Utilize gtkdocize(1) of gtk-doc-1.1. + Fix 'autogen rpm' if --disable-gtk-doc is specified in spec file. + +2003-08-16 09:46 Jan Kratochvil + + * macros/AutoGen.pm: + + +&checkcommandversion + +2003-07-10 20:59 Jan Kratochvil + + * macros/AutoGen.pm: + + Filename globbing made perl-5.6.0 backward compatible. + +2003-07-10 18:09 Jan Kratochvil + + * macros/AutoGen.pm: + + _copy() and _remove(): Fixed checking on pattern matching multiple files. + +2003-07-10 14:53 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed detection of missing Perl packages for RedHat perl-5.8.0-88. + - regex '[^\s;]+' is not matched - '[^ ;]+' needed there + +2003-07-10 14:17 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed expansion of [-] filename pattern ranges. + +2003-07-10 13:39 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed rpm build if '%configure' specified in .spec file w/o any arguments. + +2003-07-10 13:37 Jan Kratochvil + + * macros/: Makefile.am, need-declaration.m4: + + +GCC_NEED_DECLARATION(): See whether we need a declaration for a function. + +2003-06-16 13:31 Jan Kratochvil + + * macros/AutoGen.pm: + + '_cleanfiles' update for automake-1.7.5-1 + +2003-06-07 20:11 Jan Kratochvil + + * macros/AutoGen.pm: + + +touch missing 'po/ChangeLog' during glib-gettextize(1) + +2003-05-15 00:43 Jan Kratochvil + + * macros/AutoGen.pm: + + Cosmetic: Fixed warning if !want-libtoolize + +2003-05-02 09:41 Jan Kratochvil + + * macros/AutoGen.pm: + + +option "want-glib-gettextize" + +2003-04-15 16:47 Jan Kratochvil + + * macros/AutoGen.pm: + + Fix architecture detection by RPM vars: "_arch" -> "_target_cpu" + +2003-03-24 01:07 Jan Kratochvil + + * macros/AutoGen.pm: + + pre-clear $ENV{"CFLAGS"} to prevent the default autoconf "-g -O2" string + +2003-03-10 14:51 Jan Kratochvil + + * macros/AutoGen.pm: + + +require 5.6.0; + - at least 'use warnings;' but we need some 5.6.0+ modules anyway + +2003-02-05 13:29 Jan Kratochvil + + * macros/AutoGen.pm: + + Fixed/updated RPM build to get it working for the first time. + +2003-02-04 19:25 Jan Kratochvil + + * macros/AutoGen.pm: + + cleanfiles: +"./compile" + - by automake-1.6 + +2003-01-11 19:12 Jan Kratochvil + + * macros/AutoGen.pm: + + 'po' files can now also silently change their comment lines + +2002-11-08 17:34 Jan Kratochvil + + * macros/AutoGen.pm: + + &_cleanfiles: +"*.l[oa]T" + - *.loT file was seen + +2002-10-31 18:37 Jan Kratochvil + + * macros/: AutoGen.pm, Makefile-gtk-doc.am, Makefile.am, + gtk-doc.m4: + + bootstrap + diff -u lufs-0.9.7/filesystems/cardfs/cardfs.cpp lufs-0.9.7captive8/filesystems/cardfs/cardfs.cpp --- lufs-0.9.7/filesystems/cardfs/cardfs.cpp 2003-01-25 23:36:44.000000000 +0100 +++ lufs-0.9.7captive8/filesystems/cardfs/cardfs.cpp 2003-08-19 09:38:22.000000000 +0200 @@ -1,7 +1,7 @@ /*************************************************************************** - $RCSfile: cardfs.cpp,v $ + $RCSfile$ ------------------- - cvs : $Id: cardfs.cpp,v 1.1.1.1 2003/01/25 22:36:44 mali Exp $ + cvs : $Id$ begin : Thu Aug 15 2002 copyright : (C) 2002 by Martin Preuss email : martin@libchipcard.de diff -u lufs-0.9.7/filesystems/cardfs/cardfs.h lufs-0.9.7captive8/filesystems/cardfs/cardfs.h --- lufs-0.9.7/filesystems/cardfs/cardfs.h 2003-01-25 23:36:44.000000000 +0100 +++ lufs-0.9.7captive8/filesystems/cardfs/cardfs.h 2003-08-19 09:38:22.000000000 +0200 @@ -1,7 +1,7 @@ /*************************************************************************** - $RCSfile: cardfs.h,v $ + $RCSfile$ ------------------- - cvs : $Id: cardfs.h,v 1.1.1.1 2003/01/25 22:36:44 mali Exp $ + cvs : $Id$ begin : Thu Aug 15 2002 copyright : (C) 2002 by Martin Preuss email : martin@libchipcard.de diff -u lufs-0.9.7/filesystems/gnetfs/gnet_lib.h lufs-0.9.7captive8/filesystems/gnetfs/gnet_lib.h --- lufs-0.9.7/filesystems/gnetfs/gnet_lib.h 2003-02-01 11:42:10.000000000 +0100 +++ lufs-0.9.7captive8/filesystems/gnetfs/gnet_lib.h 2003-08-22 09:54:26.000000000 +0200 @@ -49,9 +49,9 @@ #endif #ifdef DEBUGGING -#define TRACE(x...) do{fprintf(stdout, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) -#define WARN(x...) do{fprintf(stdout, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) -#define ERROR(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) +#define TRACE(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) +#define WARN(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) +#define ERROR(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) #else #define TRACE(x...) do{}while(0) #define WARN(x...) do{}while(0) diff -u lufs-0.9.7/include/lufs/fs.h lufs-0.9.7captive8/include/lufs/fs.h --- lufs-0.9.7/include/lufs/fs.h 2003-03-08 22:45:29.000000000 +0100 +++ lufs-0.9.7captive8/include/lufs/fs.h 2003-08-22 09:54:02.000000000 +0200 @@ -95,9 +95,9 @@ #include #ifdef DEBUG -#define TRACE(x...) do{fprintf(stdout, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) -#define WARN(x...) do{fprintf(stdout, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) -#define ERROR(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stdout, x); fprintf(stdout, "\n");}while(0) +#define TRACE(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) +#define WARN(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) +#define ERROR(x...) do{fprintf(stderr, "[%x](%s) ", getpid(), __func__); fprintf(stderr, x); fprintf(stderr, "\n");}while(0) #else #define TRACE(x...) do{}while(0) #define WARN(x...) do{}while(0) diff -u lufs-0.9.7/include/lufs/proto.h lufs-0.9.7captive8/include/lufs/proto.h --- lufs-0.9.7/include/lufs/proto.h 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/include/lufs/proto.h 2003-09-08 10:08:38.000000000 +0200 @@ -45,8 +45,9 @@ #define PTYPE_READLINK 0x0F #define PTYPE_LINK 0x10 #define PTYPE_SYMLINK 0x11 +#define PTYPE_STATFS 0x12 -#define PTYPE_MAX 0x11 +#define PTYPE_MAX 0x12 #define PTYPE_ERROR 0x100 @@ -77,6 +78,15 @@ }; +struct lufs_sbattr{ /* struct statfs64 */ + unsigned long long sb_bytes; + unsigned long long sb_bytes_free; + unsigned long long sb_bytes_available; + unsigned long long sb_files; + unsigned long long sb_ffree; +}; + + struct lufs_req_readdir{ unsigned short offset; char dirname[0]; diff -u lufs-0.9.7/kernel/Linux/2.4/inode.c lufs-0.9.7captive8/kernel/Linux/2.4/inode.c --- lufs-0.9.7/kernel/Linux/2.4/inode.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/kernel/Linux/2.4/inode.c 2003-09-08 10:08:39.000000000 +0200 @@ -377,17 +377,43 @@ static int lu_statfs(struct super_block *sb, struct statfs *attr) { + int res; + struct iovec riov; + struct server_slot *slot; + struct lufs_sbattr sbattr; + TRACE("in\n"); + if((slot = lu_getslot(GET_INFO(sb))) == NULL) + return -ERESTARTSYS; + + riov.iov_base = &sbattr; + riov.iov_len = sizeof(sbattr); + + if((res = lu_execute(GET_INFO(sb), slot, PTYPE_STATFS, NULL, 0, &riov, 1)) < 0) + goto out; + + if(PIS_ERROR(res)){ + WARN("statfs failed\n"); + res = PERROR(res); + goto out; + } + attr->f_type = LU_MAGIC; attr->f_bsize = LU_BLOCKSIZE; - attr->f_blocks = 0; - attr->f_namelen = LU_MAXPATHLEN; - attr->f_files = -1; - attr->f_bavail = -1; + attr->f_blocks = sbattr.sb_bytes / LU_BLOCKSIZE; + attr->f_bfree = sbattr.sb_bytes_free / LU_BLOCKSIZE; + attr->f_bavail = sbattr.sb_bytes_available / LU_BLOCKSIZE; + attr->f_files = sbattr.sb_files; + attr->f_ffree = sbattr.sb_ffree; + attr->f_namelen = 0xFF; + + res = 0; + out: TRACE("out\n"); - return 0; + lu_putslot(slot); + return res; } static void lu_put_super(struct super_block *sb) diff -u lufs-0.9.7/kernel/Linux/2.4/lufs.h lufs-0.9.7captive8/kernel/Linux/2.4/lufs.h --- lufs-0.9.7/kernel/Linux/2.4/lufs.h 2003-02-06 22:05:14.000000000 +0100 +++ lufs-0.9.7captive8/kernel/Linux/2.4/lufs.h 2003-10-06 13:34:44.000000000 +0200 @@ -27,7 +27,7 @@ #include #include -#include "lufs/proto.h" +#include "proto.h" #undef TRACE #undef WARN diff -u lufs-0.9.7/kernel/Linux/2.6/dir.c lufs-0.9.7captive8/kernel/Linux/2.6/dir.c --- lufs-0.9.7/kernel/Linux/2.6/dir.c 2003-02-06 22:05:15.000000000 +0100 +++ lufs-0.9.7captive8/kernel/Linux/2.6/dir.c 2003-11-14 18:58:36.000000000 +0100 @@ -42,9 +42,9 @@ static int lu_readdir(struct file*, void*, filldir_t); -static struct dentry *lu_lookup(struct inode*, struct dentry*); +static struct dentry *lu_lookup(struct inode*, struct dentry*, struct nameidata *); static int lu_mkdir(struct inode*, struct dentry*, int); -static int lu_create(struct inode*, struct dentry*, int); +static int lu_create(struct inode*, struct dentry*, int, struct nameidata *); static int lu_rmdir(struct inode*, struct dentry*); static int lu_rename(struct inode*, struct dentry*, struct inode*, struct dentry*); static int lu_unlink(struct inode*, struct dentry*); @@ -68,7 +68,7 @@ .setattr = lufs_notify_change, }; -static int lu_lookup_validate(struct dentry *dentry, int flags) +static int lu_lookup_validate(struct dentry *dentry, struct nameidata *nd) { struct inode *inode = dentry->d_inode; unsigned long age = jiffies - dentry->d_time; @@ -188,7 +188,7 @@ return res; } -static struct dentry* lu_lookup(struct inode *dir, struct dentry *dentry) +static struct dentry* lu_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) { int res; struct lufs_fattr fattr; @@ -328,7 +328,7 @@ return res; } -static int lu_create(struct inode *dir, struct dentry *dentry, int mode) +static int lu_create(struct inode *dir, struct dentry *dentry, int mode, struct nameidata *nd) { int res; struct server_slot *slot; diff -u lufs-0.9.7/kernel/Linux/2.6/inode.c lufs-0.9.7captive8/kernel/Linux/2.6/inode.c --- lufs-0.9.7/kernel/Linux/2.6/inode.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/kernel/Linux/2.6/inode.c 2003-11-14 18:58:36.000000000 +0100 @@ -53,7 +53,7 @@ static void lu_delete_inode(struct inode*); static void lu_put_super(struct super_block*); -static int lu_statfs(struct super_block*, struct statfs*); +static int lu_statfs(struct super_block*, struct kstatfs*); static struct super_operations lu_sops = { .drop_inode = generic_delete_inode, @@ -383,19 +383,45 @@ return res; } -static int lu_statfs(struct super_block *sb, struct statfs *attr) +static int lu_statfs(struct super_block *sb, struct kstatfs *attr) { + int res; + struct iovec riov; + struct server_slot *slot; + struct lufs_sbattr sbattr; + TRACE("in\n"); + if((slot = lu_getslot(GET_INFO(sb))) == NULL) + return -ERESTARTSYS; + + riov.iov_base = &sbattr; + riov.iov_len = sizeof(sbattr); + + if((res = lu_execute(GET_INFO(sb), slot, PTYPE_STATFS, NULL, 0, &riov, 1)) < 0) + goto out; + + if(PIS_ERROR(res)){ + WARN("statfs failed\n"); + res = PERROR(res); + goto out; + } + attr->f_type = LU_MAGIC; attr->f_bsize = LU_BLOCKSIZE; - attr->f_blocks = 0; - attr->f_namelen = LU_MAXPATHLEN; - attr->f_files = -1; - attr->f_bavail = -1; + attr->f_blocks = sbattr.sb_bytes / LU_BLOCKSIZE; + attr->f_bfree = sbattr.sb_bytes_free / LU_BLOCKSIZE; + attr->f_bavail = sbattr.sb_bytes_available / LU_BLOCKSIZE; + attr->f_files = sbattr.sb_files; + attr->f_ffree = sbattr.sb_ffree; + attr->f_namelen = 0xFF; + + res = 0; + out: TRACE("out\n"); - return 0; + lu_putslot(slot); + return res; } static void lu_put_super(struct super_block *sb) @@ -506,7 +532,7 @@ return -EINVAL; } -static struct super_block *lu_get_sb(struct file_system_type *fs_type, int flags, char *dev_name, void *data) +static struct super_block *lu_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) { return get_sb_nodev(fs_type, flags, data, lu_fill_super); } diff -u lufs-0.9.7/kernel/Linux/2.6/lufs.h lufs-0.9.7captive8/kernel/Linux/2.6/lufs.h --- lufs-0.9.7/kernel/Linux/2.6/lufs.h 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/kernel/Linux/2.6/lufs.h 2003-11-14 18:58:36.000000000 +0100 @@ -27,7 +27,7 @@ #include #include -#include "../../../include/lufs/proto.h" +#include "proto.h" #undef TRACE #undef WARN diff -u lufs-0.9.7/lufsd/daemon.c lufs-0.9.7captive8/lufsd/daemon.c --- lufs-0.9.7/lufsd/daemon.c 2003-01-25 23:35:37.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/daemon.c 2003-09-16 13:49:05.000000000 +0200 @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -96,6 +97,50 @@ return sock; } +/* From captive/src/libcaptive/sandbox/split.c/captive_sandbox_fd_closeup(): */ +#define g_return_if_fail(cond) do { if (!(cond)) { ERROR("FAIL: " #cond ); return; } } while (0) +#define g_assert(cond) do { if (!(cond)) ERROR("FAIL: " #cond ); } while (0) +static void fd_closeup(int fd_first_to_delete,int exception) +{ +DIR *dir; +int errint; +int dir_fd; +struct dirent *dirent; + + dir=opendir("/proc/self/fd/"); + g_return_if_fail(dir!=NULL); + dir_fd=dirfd(dir); + g_return_if_fail(dir_fd!=-1); + + while (errno=0,(dirent=readdir(dir))) { +long dirent_fd; +char *endptr; + + if (0 + || !strcmp(dirent->d_name,".") + || !strcmp(dirent->d_name,"..")) + continue; + dirent_fd=strtol(dirent->d_name,&endptr,10 /* base */); + g_assert(dirent_fd>=0 && (!endptr || !*endptr)); + if (dirent_fd -o [options, ...]", argv[0]); @@ -165,8 +220,12 @@ if(pid == 0){ int fd; const char *quiet; + int debug_messages; quiet = lu_opt_getchar(&cfg, "MOUNT", "quiet"); + debug_messages = 0 + || lu_opt_getchar(&cfg, "MOUNT", "debug-messages") + || lu_opt_getchar(&cfg, "MOUNT", "--debug-messages"); if((fd = open("/dev/tty", O_RDWR, 0)) < 0){ WARN("couldn't open tty, assuming still ok..."); @@ -179,7 +238,8 @@ free(nopts); - if(quiet){ + /* FIXME: 'quiet' option has no meaning now; check fd_closeup(). */ + if(!debug_messages){ int stdfd; TRACE("going dumb..."); @@ -195,7 +255,7 @@ /* launching FSCtl... */ lu_fsctl_run(ctl, ssock, tmp); - exit(1); + exit(0); } diff -u lufs-0.9.7/lufsd/filesystem.c lufs-0.9.7captive8/lufsd/filesystem.c --- lufs-0.9.7/lufsd/filesystem.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/filesystem.c 2003-09-08 10:08:39.000000000 +0200 @@ -392,6 +392,28 @@ return lu_makemsg(&fs->fs_msg, PTYPE_OK, NULL, 0); } +static struct message* +generic_statfs(struct file_system *fs, struct message *msg){ + struct lufs_sbattr *sbattr = (void *)fs->fs_buf; + + TRACE("statfs"); + + sbattr->sb_bytes=0; + sbattr->sb_bytes_free=0; + sbattr->sb_bytes_available=0; /* FIXME: Why -1 by original lufs? */ + sbattr->sb_files=0; /* FIXME: Why -1 by original lufs? */ + sbattr->sb_ffree=0; /* FIXME: Why -1 by original lufs? */ + if(fs->fs_ops->statfs){ + if(fs->fs_ops->statfs(fs->fs_context, sbattr) < 0){ + TRACE("statfs failed!"); + return NULL; + } + } + + /* lu_makemsg() does not copy its 'data' - use persistent 'fs->fs_buf'! */ + return lu_makemsg(&fs->fs_msg, PTYPE_OK, (void *)sbattr, sizeof(*sbattr)); +} + void handle_fs(struct file_system *fs, int sock, pid_t pid){ @@ -416,6 +438,7 @@ handlers[15] = generic_readlink; // PTYPE_READLINK handlers[16] = generic_link; // PTYPE_LINK handlers[17] = generic_symlink; // PTYPE_SYMLINK + handlers[18] = generic_statfs; // PTYPE_STATFS if(!fs->fs_mounted){ TRACE("connecting the slot..."); diff -u lufs-0.9.7/lufsd/filesystem.h lufs-0.9.7captive8/lufsd/filesystem.h --- lufs-0.9.7/lufsd/filesystem.h 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/filesystem.h 2003-09-08 10:08:39.000000000 +0200 @@ -43,6 +43,7 @@ int (*link)(void*, char*, char*); int (*symlink)(void*, char*, char*); int (*setattr)(void*, char*, struct lufs_fattr*); + int (*statfs)(void*, struct lufs_sbattr*); }; struct file_system{ diff -u lufs-0.9.7/lufsd/fsctl.c lufs-0.9.7captive8/lufsd/fsctl.c --- lufs-0.9.7/lufsd/fsctl.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/fsctl.c 2003-09-08 10:08:39.000000000 +0200 @@ -57,14 +57,12 @@ char sock_name[MAX_LEN]; +static int usr1Handler_hit=0; static void usr1Handler(int sig){ - TRACE("unmounting filesystem..."); - TRACE("socket name: %s", sock_name); - unlink(sock_name); - - exit(0); + TRACE("usr1Handler..."); + usr1Handler_hit=1; } static void @@ -83,20 +81,21 @@ TRACE("thread created"); - free(p); - if(fs) { handle_fs(fs, sock, ppid); - - if(fs->fs_ops->umount) - fs->fs_ops->umount(fs->fs_context); - fs->fs_ops->free(fs->fs_context); - - free(fs); }else{ WARN("could not instantiate filesystem (out of mem?) !"); } + if(fs->fs_ops->umount){ + TRACE("unmounting filesystem..."); + fs->fs_ops->umount(fs->fs_context); + } + TRACE("freeing filesystem..."); + fs->fs_ops->free(fs->fs_context); + + free(fs); + close(sock); TRACE("thread exiting..."); @@ -327,6 +326,10 @@ if(!(fops->setattr = (int(*)(void*, char*, struct lufs_fattr*))dlsym(dlhandle, buf))) ERROR(dlerror()); + sprintf(buf, "%s_statfs", fs); + /* 'statfs' is optional as it is new for lufs-0.9.6-captive. */ + fops->statfs = (int(*)(void*, struct lufs_sbattr*))dlsym(dlhandle, buf); + TRACE("file system loaded"); ctl->dlhandle = dlhandle; @@ -398,11 +401,11 @@ void lu_fsctl_run(struct fs_ctl *ctl, int ssock, char *sn){ - pthread_t th_id; socklen_t len; struct sockaddr_un addr; int sock; - struct thread_info *info; + struct thread_info *info, *info_list=NULL; + struct sigaction sigaction_struct; if(strlen(sn) >= MAX_LEN){ WARN("socket name too long!"); @@ -411,13 +414,20 @@ strcpy(sock_name, sn); +#if 0 /* signal(2) will not abort accept(2) below. */ signal(SIGUSR1, usr1Handler); +#else + memset(&sigaction_struct, 0, sizeof(sigaction_struct)); + sigaction_struct.sa_handler = usr1Handler; + sigaction_struct.sa_flags = 0; /* !SA_RESTART */ + sigaction(SIGUSR1, &sigaction_struct, NULL); +#endif signal(SIGPIPE, sig_handler); signal(SIGTERM, sig_handler); signal(SIGINT, sig_handler); - while(1){ + while(!usr1Handler_hit){ len = sizeof(struct sockaddr_un); if((sock = accept(ssock, (struct sockaddr*)&addr, &len)) < 0){ @@ -438,8 +448,9 @@ info->sock = sock; info->ppid = getpid(); - if(!pthread_create(&th_id, NULL, &thread_launcher, (void*)info)){ - pthread_detach(th_id); + if(!pthread_create(&info->th_id, NULL, &thread_launcher, (void*)info)){ + info->next = info_list; + info_list= info; }else{ WARN("could not create thread!"); free(info); @@ -450,6 +461,27 @@ } } + TRACE("joining threads..."); + while ((info = info_list)){ + info_list = info->next; + if (pthread_join(info->th_id, NULL)) + WARN("could not join thread!"); + free(info); + } + if (ctl->fs_available){ + struct file_system *fs = ctl->fs_available; + + if(fs->fs_ops->umount){ + TRACE("unmounting filesystem..."); + fs->fs_ops->umount(fs->fs_context); + } + TRACE("freeing filesystem..."); + fs->fs_ops->free(fs->fs_context); + + free(fs); + } + TRACE("socket name: %s", sock_name); + unlink(sock_name); } struct fs_ctl* diff -u lufs-0.9.7/lufsd/fsctl.h lufs-0.9.7captive8/lufsd/fsctl.h --- lufs-0.9.7/lufsd/fsctl.h 2003-01-25 23:35:37.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/fsctl.h 2003-08-22 09:55:24.000000000 +0200 @@ -27,9 +27,11 @@ struct file_system; struct thread_info{ + struct thread_info *next; struct file_system *fs; int sock; pid_t ppid; + pthread_t th_id; }; struct fs_ctl{ diff -u lufs-0.9.7/lufsd/options.c lufs-0.9.7captive8/lufsd/options.c --- lufs-0.9.7/lufsd/options.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/lufsd/options.c 2003-08-22 04:00:03.000000000 +0200 @@ -266,7 +266,9 @@ if(sep){ TRACE("option with parameter"); - if((strlen(sep + 1) >= MAX_LEN) || !(prop->value = malloc(strlen(sep + 1) + 1))){ + if( + /* (strlen(sep + 1) >= MAX_LEN) || - FIXME: Why the limit was here? */ + !(prop->value = malloc(strlen(sep + 1) + 1))){ WARN("out of mem!"); free(prop->key); free(prop); diff -u lufs-0.9.7/man/lufsmount.1 lufs-0.9.7captive8/man/lufsmount.1 --- lufs-0.9.7/man/lufsmount.1 2003-01-25 23:39:19.000000000 +0100 +++ lufs-0.9.7captive8/man/lufsmount.1 2003-11-19 15:25:01.000000000 +0100 @@ -11,9 +11,9 @@ .B lufsmount command is a convenience wrapper for mounting LUFS filesystems. It provides a more natural syntax and allows regular users to take -advantage of it, provided that the LUFS mount/umount utilities -(lufsmnt & lufsumount) have been installed suid root. Conversely, the -.BR lufsumount (1) +advantage of it, provided that the LUFS mount utility +(lufsmnt) have been installed suid root. Conversely, the +.BR umount (8) command will detach the mounted file system. .SH OPTIONS Options available for the @@ -83,7 +83,6 @@ .SH AUTHOR Florin Malita .SH "SEE ALSO" -.BR lufsumount (1), .BR mount (8), .BR umount (8) diff -u lufs-0.9.7/man/lufsumount.1 lufs-0.9.7captive8/man/lufsumount.1 --- lufs-0.9.7/man/lufsumount.1 2003-01-25 23:39:19.000000000 +0100 +++ lufs-0.9.7captive8/man/lufsumount.1 2004-10-15 18:47:53.693283408 +0200 @@ -1,28 +0,0 @@ -.\" Process this file with -.\" groff -man -Tascii foo.1 -.\" -.TH LUFSUMOUNT "1" "January 2003" LUFS "User Commands" -.SH NAME -lufsumount \- unmount an LUFS file system -.SH SYNOPSIS -.BI "lufsumount " dir -.SH DESCRIPTION -The -.B lufsumount -command detaches an LUFS file system mounted in the given dir from the -file hierachy. It will only work for file systems mounted via -.B lufsmount -(1). If installed as suid root, will enable regular users to operate LUFS -file systems. -.SH FILES -.I /etc/mtab -.RS -Table of mounted file systems -.RE -.SH AUTHOR -Florin Malita -.SH "SEE ALSO" -.BR lufsmount (1), -.BR mount (8), -.BR umount (8) - diff -u lufs-0.9.7/NEWS.captive lufs-0.9.7captive8/NEWS.captive --- lufs-0.9.7/NEWS.captive 2004-10-15 18:47:58.058619776 +0200 +++ lufs-0.9.7captive8/NEWS.captive 2003-12-06 20:28:38.000000000 +0100 @@ -0,0 +1,57 @@ +$Id: NEWS.captive,v 1.1.2.11 2003/12/06 19:28:38 short Exp $ + + +NEWS for lufs-0.9.7captive8 (2003-12-06) +--------------------------- + +* Cope with the installed Linux kernel sources not matching the current kernel. + + +NEWS for lufs-0.9.7captive7 (2003-11-27) +--------------------------- + +* Branch update for 0.9.7 (no changes apply to 'captive' branch) +* 'prepmod'-wrap 'lufsd' instead of 'lufsmnt' as 'prepmod' fail is safe this way +* Fixed kernel module compilation if invoked by mount(8) +* Drop lufsumount(1) in the favor of compatibility with generic umount(8) +* Kernel module prebuilding compatibility with TurboLinux and SuSE kernels + + +NEWS for lufs-0.9.6captive6 (2003-10-17) +--------------------------- + +* Fixed own symlinked files corruption during 'rpm -U' + + +NEWS for lufs-0.9.6captive5 (2003-10-12) +--------------------------- + +* Prevent pre-building binary modules for regular .tar.gz archive +* Additional compatibilities for 2.6 Linux kernel + + +NEWS for lufs-0.9.6captive3 (2003-10-06) +--------------------------- + +* Compatibilized Linux kernel driver building (hint by Martin Drab) + + +NEWS for lufs-0.9.6captive2 (2003-09-28) +--------------------------- + +* Linux kernel 2.5.x driver ported to 2.6.x (Martin Drab) +* Compatibilized Linux kernel driver building (hint by Martin Drab) + + +NEWS for lufs-0.9.6captive1 (2003-09-21) +--------------------------- + +* Moved to AutoGen build framework +* C++ modules conditioned by --with-cxx +* Autobuilding+prebuilding of binary module +* Debian packaging +* Remove MAX_LEN options length limitation +* lufsd process atexit/cleanup cleanup +* Optional 'statfs' for visible df(1) lufs filesystems entry +* 'mntent.mnt_fsname' and 'mntent.mnt_type' mntent overriding options. +* Compatibility with usermount(8) diff -u lufs-0.9.7/README lufs-0.9.7captive8/README --- lufs-0.9.7/README 2003-03-08 22:45:26.000000000 +0100 +++ lufs-0.9.7captive8/README 2003-08-20 15:48:59.000000000 +0200 @@ -1,6 +1,23 @@ LUFS – Linux Userland File System (sshfs, ftpfs, localfs, locasefs, gnutellafs, gvfs, cardfs, cefs) + +Bleeding Edge +------------- + +cvs -d :pserver:pserver@cvs.jankratochvil.net:/cvs login + Just hit ENTER (empty password) +cvs -d :pserver:pserver@cvs.jankratochvil.net:/cvs -z3 checkout -r captive lufs +cd lufs +./autogen.pl +make +make install + +mkdir /mnt/localfs +lufsmount localfs:///tmp /mnt/localfs +ls /mnt/localfs + + 1. INTRODUCTION For those not interested in technicalities: diff -u lufs-0.9.7/util/lufsmnt.c lufs-0.9.7captive8/util/lufsmnt.c --- lufs-0.9.7/util/lufsmnt.c 2003-01-25 23:37:48.000000000 +0100 +++ lufs-0.9.7captive8/util/lufsmnt.c 2003-11-19 15:25:01.000000000 +0100 @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -74,16 +75,17 @@ } } -void -get_fs(char *opts, char *buf, int buflen){ +int +get_opt(char *opts, const char *optname, char *buf, int buflen){ char *begin, *end; - buf[0] = 0; - buf[buflen - 1] = 0; + for(begin = opts; (begin = strstr(begin, optname)); begin++){ + if (begin > opts && begin[-1] != ',') + continue; + if (begin[strlen(optname)] != '=') + continue; + begin += strlen(optname) + 1; - if((begin = strstr(opts, "fs="))){ - begin += 3; - if(!(end = strchr(begin, ','))){ end = begin + strlen(begin); } @@ -91,16 +93,31 @@ if( end - begin >= buflen) end = begin + buflen - 1; - strncpy(buf, begin, end - begin); + memcpy(buf, begin, end - begin); + buf[end - begin] = 0; + return 1; } + return 0; +} + +/* From util-linux/mount/getusername.c */ +const char * +getusername() { + const char *user = 0; + struct passwd *pw = getpwuid(getuid()); + + if (pw) + user = pw->pw_name; + return user; } int main(int argc, char **argv){ - char *mountpoint, *opts; + char *mountpoint, *opts, *s; static char fpath[PATH_MAX]; static char mfs[PATH_MAX]; static char mopts[PATH_MAX]; + static char mntent_mnt_type[PATH_MAX]; struct mntent ment; int fd; FILE *mtab; @@ -134,15 +151,21 @@ return errno; } - sprintf(mopts, "owner=%d,", getuid()); + snprintf(mopts, sizeof(mopts), "user=%s,", getusername()); hide_pass(opts); if(strlen(mopts) + strlen(opts) < PATH_MAX) strcat(mopts, opts); - get_fs(opts, mfs, PATH_MAX); + while ((s = strstr(mopts, ",user")) && (s[strlen(",user")]==0 || s[strlen(",user")]==',')) + memmove(s, s+strlen(",user"), strlen(s+strlen(",user"))+1); + mfs[0] = 0; + get_opt(opts, "fs", mfs, PATH_MAX); + get_opt(opts, "mntent.mnt_fsname", mfs, PATH_MAX); ment.mnt_fsname = mfs; ment.mnt_dir = fpath; - ment.mnt_type = "lufs"; + strcpy(mntent_mnt_type, "lufs"); + get_opt(opts, "mntent.mnt_type", mntent_mnt_type, sizeof(mntent_mnt_type)); + ment.mnt_type = mntent_mnt_type; ment.mnt_opts = mopts; ment.mnt_freq = 0; ment.mnt_passno = 0; diff -u lufs-0.9.7/util/lufsmount.c lufs-0.9.7captive8/util/lufsmount.c --- lufs-0.9.7/util/lufsmount.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/util/lufsmount.c 2003-08-22 09:54:26.000000000 +0200 @@ -31,7 +31,7 @@ #include #ifdef DEBUGGING -#define TRACE(x...) fprintf(stdout, x) +#define TRACE(x...) fprintf(stderr, x) #else #define TRACE(x...) do{}while(0); #endif diff -u lufs-0.9.7/util/lufsumount.c lufs-0.9.7captive8/util/lufsumount.c --- lufs-0.9.7/util/lufsumount.c 2003-03-08 22:45:30.000000000 +0100 +++ lufs-0.9.7captive8/util/lufsumount.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,128 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#define MTAB_TMP _PATH_MOUNTED".tmp" - -static void -help(){ - printf("\n"); - printf("Usage: lufsumount mount-point\n"); - -} - -static int -fullpath(char *path, char *full){ - - full[0] = 0; - - if(strlen(path) >= PATH_MAX - 1) - return -1; - - if(!realpath(path, full)) - return -1; - else - return 0; -} - -int -main(int argc, char **argv){ - char *mountpoint; - static char fpath[PATH_MAX]; - struct mntent *ment; - int fd, muid = -1; - FILE *mtab, *new_mtab; - - if(argc != 2){ - help(); - return 1; - } - - if(geteuid()){ - fprintf(stderr, "lufsumount should be installed suid root\n"); - return 1; - } - - mountpoint = argv[1]; - - fullpath(mountpoint, fpath); - - if((fd = open(_PATH_MOUNTED"~", O_RDWR|O_CREAT|O_EXCL, 0600)) < 0){ - fprintf(stderr, "can't get "_PATH_MOUNTED"~ lock file"); - return 1; - } - - close(fd); - - if((mtab = setmntent(_PATH_MOUNTED, "r")) == NULL){ - fprintf(stderr, "can't open "_PATH_MOUNTED ":%s\n", strerror(errno)); - goto err; - } - - if((new_mtab = setmntent(MTAB_TMP, "w")) == NULL){ - fprintf(stderr, "can't open "MTAB_TMP": %s\n", strerror(errno)); - endmntent(mtab); - goto err; - } - - while((ment = getmntent(mtab))){ - if(!strcmp(ment->mnt_dir, fpath)){ - sscanf(ment->mnt_opts, "owner=%u,", &muid); - }else - addmntent(new_mtab, ment); - } - - endmntent(mtab); - - if(fchmod(fileno(new_mtab), 0644) < 0){ - fprintf(stderr, "can't change mode for "MTAB_TMP"\n"); - goto err; - } - - endmntent(new_mtab); - - if(muid == -1){ - fprintf(stderr, "mtab entry for %s not found\n", fpath); - goto err_mtab; - } - - if((getuid()) && (getuid() != muid)){ - fprintf(stderr, "you are not allowed to umount this filesystem.\n"); - goto err_mtab; - } - - if(umount(fpath)){ - fprintf(stderr, "could not umount %s: %s\n", fpath, strerror(errno)); - goto err_mtab; - } - - if(rename(MTAB_TMP, _PATH_MOUNTED) < 0){ - fprintf(stderr, "can't rename %s to %s: %s\n", MTAB_TMP, _PATH_MOUNTED, strerror(errno)); - goto err_mtab; - } - - if(unlink(_PATH_MOUNTED"~") < 0){ - fprintf(stderr, "can't remove "_PATH_MOUNTED"~\n"); - return 1; - } - - return 0; - -err_mtab: - unlink(MTAB_TMP); -err: - unlink(_PATH_MOUNTED"~"); - return 1; -} - diff -Naur lufs-0.9.7/util/Makefile.am lufs-0.9.7captive8/util/Makefile.am --- lufs-0.9.7/util/Makefile.am 2003-01-27 21:56:55.000000000 +0100 +++ lufs-0.9.7captive8/util/Makefile.am 2003-11-19 15:25:01.000000000 +0100 @@ -1,10 +1,9 @@ INCLUDES=-I../ LSUID:= @LUFS_SUID@ -bin_PROGRAMS=lufsmount lufsumount lufsmnt auto.sshfs auto.ftpfs +bin_PROGRAMS=lufsmount lufsmnt auto.sshfs auto.ftpfs lufsmount_SOURCES=lufsmount.c -lufsumount_SOURCES=lufsumount.c lufsmnt_SOURCES=lufsmnt.c auto_sshfs_SOURCES=auto.sshfs.c auto_ftpfs_SOURCES=auto.ftpfs.c @@ -12,8 +11,10 @@ install-exec-hook: @echo postinstall configuration $(mkinstalldirs) $(DESTDIR)/etc - ln -fs $(DESTDIR)$(bindir)/auto.sshfs $(DESTDIR)/etc/auto.sshfs - ln -fs $(DESTDIR)$(bindir)/auto.ftpfs $(DESTDIR)/etc/auto.ftpfs - if [ "$(LSUID)" ]; then chmod a+s $(DESTDIR)$(bindir)/lufsmnt $(DESTDIR)$(bindir)/lufsumount; fi + rm -f $(DESTDIR)/etc/auto.sshfs + ln -fs $(bindir)/auto.sshfs $(DESTDIR)/etc/auto.sshfs + rm -f $(DESTDIR)/etc/auto.ftpfs + ln -fs $(bindir)/auto.ftpfs $(DESTDIR)/etc/auto.ftpfs + if [ "$(LSUID)" -a -z "$(DESTDIR)" ]; then chmod a+s $(DESTDIR)$(bindir)/lufsmnt; fi if [ -f /etc/auto.master -a "$(AUTOFS_INSTALL)" -a ! "`cat $(DESTDIR)/etc/auto.master | grep \"auto.ftpfs\"`" ]; then mkdir -p $(DESTDIR)/mnt/net/ssh $(DESTDIR)/mnt/net/ftp; echo -e "/mnt/net/ssh\t/etc/auto.sshfs\t--timeout=60\n/mnt/net/ftp\t/etc/auto.ftpfs\t--timeout=60\n" >> $(DESTDIR)/etc/auto.master; $(DESTDIR)/etc/init.d/autofs restart; fi