system/ivman: Updated for version 0.6.14

This commit is contained in:
Guillermo Bonvehi 2010-05-11 19:46:30 +02:00 committed by Robby Workman
parent 201933c670
commit cdbf629d17
5 changed files with 87 additions and 44 deletions

View File

@ -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$'" />

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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: