[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#651875: uninstallable on kfreebsd-amd64



Package: cryptkeeper
Version: 0.9.5-4
Severity: grave
Tags: patch
User: debian-bsd@lists.debian.org
Usertags: kfreebsd

Sorry for not noticing this before.  Changes in 0.9.5-4 make an even worse
bug, since cryptkeeper with its current dependencies is uninstallable on
GNU/kFreeBSD.

"fuse" package (fuse-utils is just a transitional package) is only available
on GNU/Linux.  Apparently cryptkeeper needs it because it invokes "fusermount"
utility directly (in src/encfs_wrapper.cpp).

As fusermount is Linux-specific, the alternative for GNU/kFreeBSD is to use
umount.

Attached patch fixes both problems.  In addition, FUSE architectures include
linux-any and kfreebsd-any but not hurd-i386, this is also fixed in my patch.

-- System Information:
Debian Release: 6.0.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 8.1-1-amd64
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
=== modified file 'debian/control'
--- debian/control	2011-12-12 19:19:29 +0000
+++ debian/control	2011-12-12 19:21:10 +0000
@@ -8,8 +8,8 @@ Homepage: http://tom.noflag.org.uk/crypt
 DM-Upload-Allowed:yes
 
 Package: cryptkeeper
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, zenity, fuse-utils, encfs
+Architecture: linux-any kfreebsd-any
+Depends: ${shlibs:Depends}, ${misc:Depends}, zenity, fuse [linux-any], encfs
 Description: EncFS system tray applet for GNOME
  An encrypted folders manager, it allows users to mount and unmount encfs
  folders, to change the password and to create new crypted folders. It

=== modified file 'src/encfs_wrapper.cpp'
--- src/encfs_wrapper.cpp	2011-12-12 19:19:29 +0000
+++ src/encfs_wrapper.cpp	2011-12-12 19:20:32 +0000
@@ -242,7 +242,11 @@ int encfs_stash_unmount (const char *mou
 	// unmount
 	int pid = fork ();
 	if (pid == 0) {
+#ifdef __linux__
 		execlp ("fusermount", "fusermount", "-u", mount_dir, NULL);
+#else
+		execlp ("umount", "umount", mount_dir, NULL);
+#endif
 		exit (0);
 	}
 	int status;


Reply to: