commit cf3509386ab100849fb879c5ab02dda032dfa509
Author: Bastien Nocera <had...@hadess.net>
Date:   Thu Mar 4 14:50:06 2010 +0000

    Make the temporary mount point configurable
    
    Distributions that use SELinux cannot have libgpod's callouts
    mount devices as they wish in random location on the disk.
    
    Instead, we'd use a specific directory, so that the SELinux
    rules could be amended for that case.
    
    This patch does not change the default location of the temporary
    directory.

 configure.ac            |   15 +++++++++++++++
 tools/Makefile.am       |    9 +++++++++
 tools/generic-callout.c |    2 +-
 3 files changed, 25 insertions(+), 1 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 14d7135..1d03dcb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -203,6 +203,20 @@ AC_ARG_ENABLE(udev,
 AM_CONDITIONAL(USE_UDEV, test x"$enable_udev" = xyes)
 AC_SUBST([udevdir], [/lib/udev])
 
+dnl ***********************************************************************
+dnl * for the udev and hal callouts, we need a temporary directory to
+dnl * mount the iPod to write out its extended info file.
+dnl ***********************************************************************
+
+temp_mount_dir="/tmp/"
+AC_ARG_WITH(temp_mount_dir, AC_HELP_STRING([--with-mount-dir=DIR],
+       [Directory where HAL/udev will create a sub-directory to mount iPods]),,
+       with_temp_mount_dir="$temp_mount_dir")
+TMPMOUNTDIR="$with_temp_mount_dir"
+AC_SUBST(TMPMOUNTDIR)
+AH_TEMPLATE([TMPMOUNTDIR], [Directory where HAL/udev will create a 
sub-directory to mount iPods])
+AC_DEFINE_UNQUOTED(TMPMOUNTDIR, "$with_temp_mount_dir", [Directory where 
HAL/udev will create a sub-directory to mount iPods])
+
 dnl **************************************************
 dnl * TagLib is only used by test-rebuild-db 
 dnl **************************************************
@@ -393,6 +407,7 @@ Configuration for $PACKAGE $VERSION :
  Python bindings ..........: $with_python
  PyGObject support ........: $have_pygobject
  iPhone/iPod Touch support.: $enable_libimobiledevice
+ Temporary mount directory.: $with_temp_mount_dir
 
  Now type 'make' to build $PACKAGE $VERSION,
  and then 'make install' for installation.
diff --git a/tools/Makefile.am b/tools/Makefile.am
index e6334cd..2f8553e 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -90,3 +90,12 @@ ipod_time_sync_CFLAGS=$(SGUTILS_CFLAGS) $(LIBGPOD_CFLAGS)
 ipod_time_sync_LDADD=$(SGUTILS_LIBS) $(LIBGPOD_LIBS) 
 endif
 
+if USE_UDEV
+install-data-hook:
+       $(MKDIR_P) "$(DESTDIR)$(MOUNTDIR)"
+endif
+if HAVE_HAL
+install-data-hook:
+       $(MKDIR_P) "$(DESTDIR)$(MOUNTDIR)"
+endif
+
diff --git a/tools/generic-callout.c b/tools/generic-callout.c
index b45f6da..b8b617e 100644
--- a/tools/generic-callout.c
+++ b/tools/generic-callout.c
@@ -560,7 +560,7 @@ static char *mount_ipod (const char *dev_path, const char 
*fstype)
         char *tmpname;
         int result;
 
-        filename = g_build_filename (g_get_tmp_dir (), "ipodXXXXXX", NULL);
+        filename = g_build_filename (TMPMOUNTDIR, "ipodXXXXXX", NULL);
         if (filename == NULL) {
                 return NULL;
         }

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to