diff options
-rw-r--r-- | system/ivman/README | 35 | ||||
-rw-r--r-- | system/ivman/doinst.sh | 12 | ||||
-rw-r--r-- | system/ivman/ivman.SlackBuild | 50 | ||||
-rw-r--r-- | system/ivman/ivman.info | 4 | ||||
-rw-r--r-- | system/ivman/slack-desc | 30 |
5 files changed, 87 insertions, 44 deletions
diff --git a/system/ivman/README b/system/ivman/README index 54d6a3bc4118..72d8e7efcf25 100644 --- a/system/ivman/README +++ b/system/ivman/README @@ -1,14 +1,25 @@ -Ivman is a generic handler for HAL events. +ivman is a generic handler for HAL events. Originally for automounting, +it can now be used to run arbitrary commands when events or conditions +occur or properties are modified on your hardware (e.g., run a command +when you close your laptop's lid, run a command when a particular +device is attached or a particular CD is inserted, etc). -Originally for automounting, it can now be used to run arbitrary -commands when events or conditions occur or properties are modified on -your hardware (e.g., run a command when you close your laptop's lid, -run a command when a particular device is attached or a particular CD -is inserted, etc). +ivman allows you to have automount feature even if you don't use a +volume manager like KDE, GNOME, or XFCE includes. Just run ivman in +background, and if you're not root, be sure to also install pmount +that allows you to mount without being root and having the devices +listed on /etc/fstab. -This package requires HAL, which is also available at SlackBuilds.org. - -If combined with 'pmount' instances can also be launched per user session -(e.g., create a link to /usr/bin/ivman in ~/.kde/Autostart). When a device -is attached, Ivman will call pmount to mount the device. Otherwise -/etc/fstab are need to be there for the devices. +NOTE FROM SUBMITTER: +I've discovered a bug (possibly known) in ivman with pumount usage, +since ivman doesn't have maintainer right now and I don't know where +to report it, I'll explain here how to easily solve it. +Note that this happens when using pumount as non-root; I haven't +tried using ivman as root. +It seems that when you remove a USB device without pumounting it +(which ivman should care of), ivman locks the device when calling +pumount. +This can be easily fixed by correcting your ivman's config files. +Set in $HOME/.ivman/IvmConfigBase.xml: +<ivm:Option name="mountcommand" value="pmount-hal '$hal.info.udi$'" /> +<ivm:Option name="umountcommand" value="pumount -l '$hal.block.device$'" /> diff --git a/system/ivman/doinst.sh b/system/ivman/doinst.sh index f8bc992646fb..6a0871c4dc64 100644 --- a/system/ivman/doinst.sh +++ b/system/ivman/doinst.sh @@ -2,19 +2,19 @@ config() { NEW="$1" - OLD="`dirname $NEW`/`basename $NEW .new`" + OLD="$(dirname $NEW)/$(basename $NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD - elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy rm $NEW fi # Otherwise, we leave the .new copy for the admin to consider... } -config etc/ivman/IvmConfigActions.xml -config etc/ivman/IvmConfigProperties.xml -config etc/ivman/IvmConfigBase.xml -config etc/ivman/IvmConfigConditions.xml +config etc/ivman/IvmConfigBase.xml.new +config etc/ivman/IvmConfigActions.xml.new +config etc/ivman/IvmConfigProperties.xml.new +config etc/ivman/IvmConfigConditions.xml.new diff --git a/system/ivman/ivman.SlackBuild b/system/ivman/ivman.SlackBuild index eba496f85c69..cca64e70d7f6 100644 --- a/system/ivman/ivman.SlackBuild +++ b/system/ivman/ivman.SlackBuild @@ -1,10 +1,30 @@ #!/bin/sh # Slackware build script for ivman -# Written by Menno E. Duursma <druiloor@zonnet.nl> -# Modified by the SlackBuilds.org project -# Exit on most errors +# Copyright 2007 by Guillermo Bonvehi (gbonvehi@gmail.com) +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Modified by Robby Workman <http://rlworkman.net> +# No additional license terms added. + set -e PRGNAM=ivman @@ -15,7 +35,7 @@ TAG=${TAG:-_SBo} CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} # Drop the package in /tmp +OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" @@ -38,27 +58,31 @@ CXXFLAGS="$SLKCFLAGS" \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ - --mandir=/usr/man \ - --enable-static=no + --mandir=/usr/man make make install-strip DESTDIR=$PKG -# Let's not clobber the configuration files -( cd $PKG/etc/ivman - for file in * ; do - mv $file ${file}.new ; - done +( cd $PKG + mv etc/ivman/IvmConfigBase.xml etc/ivman/IvmConfigBase.xml.new + mv etc/ivman/IvmConfigActions.xml etc/ivman/IvmConfigActions.xml.new + mv etc/ivman/IvmConfigProperties.xml etc/ivman/IvmConfigProperties.xml.new + mv etc/ivman/IvmConfigConditions.xml etc/ivman/IvmConfigConditions.xml.new +) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) -# Compress man pages ( cd $PKG/usr/man find . -type f -exec gzip -9 {} \; for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done ) mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a [A-Z][A-Z]* $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS INSTALL COPYING.GPL2 ABOUT-NLS COPYING ChangeLog NEWS TODO \ + COPYING.QPL README $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/system/ivman/ivman.info b/system/ivman/ivman.info index 86f8336d0312..557834049f7c 100644 --- a/system/ivman/ivman.info +++ b/system/ivman/ivman.info @@ -3,6 +3,6 @@ VERSION="0.6.14" HOMEPAGE="http://ivman.sourceforge.net/" DOWNLOAD="http://dl.sourceforge.net/ivman/ivman-0.6.14.tar.bz2" MD5SUM="ebef12559268e2c5ea932cbb5aaa789e" -MAINTAINER="Menno E. Duursma" -EMAIL="druiloor@zonnet.nl" +MAINTAINER="Guillermo Bonvehi" +EMAIL="gbonvehi@gmail.com" APPROVED="rworkman" diff --git a/system/ivman/slack-desc b/system/ivman/slack-desc index 8c783aa8ebd6..cee207b3b453 100644 --- a/system/ivman/slack-desc +++ b/system/ivman/slack-desc @@ -1,11 +1,19 @@ -ivman: Ivman is a flexible event manager for Linux. -ivman: -ivman: Originally an automounter, it can also be used to run arbitrary -ivman: commands when certain devices are added to or removed from the -ivman: system, when properties on existing devices change, or when devices -ivman: emit conditions. Unlike gnome-volume-manager, it runs from a -ivman: console. It uses D-BUS and HAL to listen for new devices, and -ivman: uses pmount for mounting. -ivman: -ivman: Ivman was developed by Ikke and Rohan of the GNOME project team. -ivman: +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ivman: ivman (generic handler for HAL events.) +ivman: +ivman: Ivman is a generic handler for HAL events. Originally for +ivman: automounting, it can now be used to run arbitrary commands +ivman: when events or conditions occur or properties are modified +ivman: on your hardware (e.g., run a command when you close your +ivman: laptop's lid, when a particular device is attached, or when +ivman: a particular CD is inserted, etcetera). +ivman: +ivman: Homepage: http://ivman.sourceforge.net/ +ivman: |