diff options
-rw-r--r-- | office/pdftk/README | 3 | ||||
-rw-r--r-- | office/pdftk/pdftk-1.41-add_custom_optflags.patch | 20 | ||||
-rw-r--r-- | office/pdftk/pdftk-1.41-slackware64-13.patch | 229 | ||||
-rw-r--r-- | office/pdftk/pdftk-1.44-add_custom_optflags.patch | 26 | ||||
-rw-r--r-- | office/pdftk/pdftk.SlackBuild | 67 | ||||
-rw-r--r-- | office/pdftk/pdftk.info | 12 | ||||
-rw-r--r-- | office/pdftk/slack-desc | 2 |
7 files changed, 68 insertions, 291 deletions
diff --git a/office/pdftk/README b/office/pdftk/README index ed02d0a6d1..c84c0b6589 100644 --- a/office/pdftk/README +++ b/office/pdftk/README @@ -4,6 +4,3 @@ command-line tool for doing everyday things with PDF documents. Keep one in the top drawer of your desktop and use it to merge PDF documents, split PDF documents, apply watermarks, repair corrupt PDF, update PDF metadata, and more. pdftk does not require Acrobat and is free software. - -While not strictly required, you probably want to have the jdk package -from extra installed (instead of L/jre) when building pdftk. diff --git a/office/pdftk/pdftk-1.41-add_custom_optflags.patch b/office/pdftk/pdftk-1.41-add_custom_optflags.patch deleted file mode 100644 index b81e10e1a6..0000000000 --- a/office/pdftk/pdftk-1.41-add_custom_optflags.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Nur pdftk-1.41.orig/pdftk/Makefile.Generic pdftk-1.41/pdftk/Makefile.Generic ---- pdftk-1.41.orig/pdftk/Makefile.Generic 2006-09-21 12:37:12.000000000 -0500 -+++ pdftk-1.41/pdftk/Makefile.Generic 2009-11-26 00:03:40.823641779 -0600 -@@ -23,12 +23,13 @@ - # if you want pdftk to ask before overwriting a file, set - # ASK_ABOUT_WARNINGS to true; otherwise: false; override this default - # with the dont_ask or do_ask command-line options --CPPFLAGS= -O2 -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -fdollars-in-identifiers --CXXFLAGS= -lgcj -+OPT= -O2 -+CPPFLAGS= $(OPT) -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -fdollars-in-identifiers -+CXXFLAGS= $(OPT) -lgcj - - # itext compiler flags - # -O3 might cause pdftk to segfault on cat operation (gcc 3.4.4) --export GCJFLAGS= -O2 -+export GCJFLAGS= $(OPT) -w - - # - export ARFLAGS= rs diff --git a/office/pdftk/pdftk-1.41-slackware64-13.patch b/office/pdftk/pdftk-1.41-slackware64-13.patch deleted file mode 100644 index d3edd2bff5..0000000000 --- a/office/pdftk/pdftk-1.41-slackware64-13.patch +++ /dev/null @@ -1,229 +0,0 @@ -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/bc/asn1/Makefile pdftk-1.41/java_libs/com/lowagie/bc/asn1/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/bc/asn1/Makefile 2006-07-28 01:18:06.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/bc/asn1/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/Makefile pdftk-1.41/java_libs/com/lowagie/text/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/Makefile 2006-07-26 23:14:34.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -25,13 +25,12 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets - --all : $(library) $(headers) -+all : $(library) $(headers) $(classes) - - $(library) : $(objects) - $(AR) $(ARFLAGS) $(library) $(objects); -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/markup/Makefile pdftk-1.41/java_libs/com/lowagie/text/markup/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/markup/Makefile 2006-07-26 23:14:54.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/markup/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/Makefile pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/Makefile 2006-07-26 23:15:20.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/Makefile 2009-11-16 15:37:55.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here
- #
- %.h : %.class
-- $(GCJH) --classpath="." $*;
-- $(RM) $<
-+ $(GCJH) --classpath="$(java_libs_root):." $*;
-
- ##
- # targets
-diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/postscript/Makefile pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/postscript/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/postscript/Makefile 2006-07-28 01:21:06.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/postscript/Makefile 2009-11-16 15:38:15.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here
- #
- %.h : %.class
-- $(GCJH) --classpath="." $*;
-- $(RM) $<
-+ $(GCJH) --classpath="$(java_libs_root):." $*;
-
- ##
- # targets
-diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/wmf/Makefile pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/wmf/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/codec/wmf/Makefile 2006-07-26 23:15:32.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/codec/wmf/Makefile 2009-11-16 15:38:34.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here
- #
- %.h : %.class
-- $(GCJH) --classpath="." $*;
-- $(RM) $<
-+ $(GCJH) --classpath="$(java_libs_root):." $*;
-
- ##
- # targets
-diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/fonts/Makefile pdftk-1.41/java_libs/com/lowagie/text/pdf/fonts/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/fonts/Makefile 2006-07-26 23:15:48.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/fonts/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -34,8 +34,7 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/Makefile pdftk-1.41/java_libs/com/lowagie/text/pdf/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/Makefile 2006-07-26 23:15:10.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets -diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/PdfDate.java pdftk-1.41/java_libs/com/lowagie/text/pdf/PdfDate.java ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/PdfDate.java 2006-07-27 01:56:42.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/PdfDate.java 2009-11-16 15:33:37.000000000 +0100 -@@ -76,7 +76,7 @@ - // ssteward; static builds of pdftk (Windows, gcc 3.3.1) would
- // omit this class because of its reference by reflection;
- // this treatment ensures that ld will include it
-- private static Class c1= gnu.java.locale.Calendar.class;
-+ private static Class c1= java.util.Calendar.class;
-
- private static final int dateSpace[] = {Calendar.YEAR, 4, 0, Calendar.MONTH, 2, -1, Calendar.DAY_OF_MONTH, 2, 0,
- Calendar.HOUR_OF_DAY, 2, 0, Calendar.MINUTE, 2, 0, Calendar.SECOND, 2, 0};
-diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/PdfEncryption.java pdftk-1.41/java_libs/com/lowagie/text/pdf/PdfEncryption.java ---- pdftk-1.41-orig/java_libs/com/lowagie/text/pdf/PdfEncryption.java 2006-07-27 02:02:28.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/pdf/PdfEncryption.java 2009-11-16 15:46:10.000000000 +0100 -@@ -50,7 +50,7 @@ -
- package com.lowagie.text.pdf;
-
--import java_local.security.MessageDigest; // ssteward
-+import java.security.MessageDigest;
- import com.lowagie.text.ExceptionConverter;
-
- /**
-diff -u -r pdftk-1.41-orig/java_libs/com/lowagie/text/xml/xmp/Makefile pdftk-1.41/java_libs/com/lowagie/text/xml/xmp/Makefile ---- pdftk-1.41-orig/java_libs/com/lowagie/text/xml/xmp/Makefile 2006-07-27 02:53:34.000000000 +0200 -+++ pdftk-1.41/java_libs/com/lowagie/text/xml/xmp/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -25,8 +25,7 @@ - # the "$*" automatic variable, here - # - %.h : %.class -- $(GCJH) --classpath="." $*; -- $(RM) $< -+ $(GCJH) --classpath="$(java_libs_root):." $*; - - ## - # targets -diff -u -r pdftk-1.41-orig/java_libs/Makefile pdftk-1.41/java_libs/Makefile ---- pdftk-1.41-orig/java_libs/Makefile 2006-08-29 08:44:26.000000000 +0200 -+++ pdftk-1.41/java_libs/Makefile 2009-11-16 15:33:23.000000000 +0100 -@@ -13,13 +13,7 @@ - # append gcj flags - export GCJFLAGS+= --encoding=UTF-8 --classpath="$(java_libs_root)" - --all : libgcj_local itext -- --libgcj_local : -- $(MAKE) -C "$(java_libs_root)/gnu_local/java/security"; -- $(MAKE) -C "$(java_libs_root)/gnu_local/java/security/provider"; -- $(MAKE) -C "$(java_libs_root)/gnu/gcj/convert"; -- $(MAKE) -C "$(java_libs_root)/java_local/security"; -+all : itext - - itext : - $(MAKE) -C "$(java_libs_root)/com/lowagie/text"; -@@ -35,13 +29,7 @@ - $(MAKE) -C "$(java_libs_root)/com/lowagie/bc/asn1"; - $(MAKE) -C "$(java_libs_root)/com/lowagie/text/pdf/codec/postscript"; - --clean : libgcj_local_clean itext_clean -- --libgcj_local_clean : -- $(MAKE) -iC "$(java_libs_root)/gnu_local/java/security" clean; -- $(MAKE) -iC "$(java_libs_root)/gnu_local/java/security/provider" clean; -- $(MAKE) -iC "$(java_libs_root)/gnu/gcj/convert" clean; -- $(MAKE) -iC "$(java_libs_root)/java_local/security" clean; -+clean : itext_clean - - itext_clean : - $(MAKE) -iC "$(java_libs_root)/com/lowagie/text" clean; -diff -u -r pdftk-1.41-orig/pdftk/Makefile.Base pdftk-1.41/pdftk/Makefile.Base ---- pdftk-1.41-orig/pdftk/Makefile.Base 2006-10-25 01:44:06.000000000 +0200 -+++ pdftk-1.41/pdftk/Makefile.Base 2009-11-16 15:36:00.000000000 +0100 -@@ -31,18 +31,6 @@ - afms= $(wildcard $(java_libs_root)/com/lowagie/text/pdf/fonts/*.afm) - afm_objects= $(patsubst %.afm, %.o, $(afms)) - --# older versions of libgcj might not have the MD5 algorithm, --# so I added it here; these *_local java files were grabbed from --# libgcj CVS on March 7, 2004; diffed September 5, 2006 w/ gcc 4.1.1 --# --# gnu/gcj/convert/Input_UnicodeBig.java was grabbed March 26, 2004; diffed September 5, 2006 w/ gcc 4.1.1 --# --libgcj_local_libs = \ --$(java_libs_root)/java_local/security/security.a \ --$(java_libs_root)/gnu_local/java/security/provider/provider.a \ --$(java_libs_root)/gnu_local/java/security/security.a \ --$(java_libs_root)/gnu/gcj/convert/convert.a -- - # this must already be set according to your platform Makefile; - # we're just appending to it, here - # -@@ -63,10 +51,10 @@ - $(CXX) pdftk.cc -I$(java_libs_root) $(CPPFLAGS) -c - - pdftk : pdftk.o attachments.o report.o $(itext_libs) $(libgcj_local_libs) $(afm_objects) -- $(CXX) pdftk.o attachments.o report.o $(itext_libs) $(libgcj_local_libs) $(afm_objects) -I$(java_libs_root) $(CPPFLAGS) $(CXXFLAGS) -o pdftk -+ $(CXX) pdftk.o attachments.o report.o $(itext_libs) $(libgcj_local_libs) $(afm_objects) -I$(java_libs_root) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o pdftk - - install: -- /usr/bin/install pdftk /usr/local/bin -+ /usr/bin/install pdftk $(DESTDIR)$(PREFIX)/bin - - uninstall: - rm -vf /usr/local/bin/pdftk -diff -u -r pdftk-1.41-orig/pdftk/Makefile.Generic pdftk-1.41/pdftk/Makefile.Generic ---- pdftk-1.41-orig/pdftk/Makefile.Generic 2006-09-21 19:37:12.000000000 +0200 -+++ pdftk-1.41/pdftk/Makefile.Generic 2009-11-16 15:35:27.000000000 +0100 -@@ -10,6 +10,10 @@ - # Clean: make -f Makefile.Generic clean - # - -+# prefixes and destination dir for packaging -+PREFIX= /usr/local -+DESTDIR= -+ - # tools - TOOLPATH= - VERSUFF= diff --git a/office/pdftk/pdftk-1.44-add_custom_optflags.patch b/office/pdftk/pdftk-1.44-add_custom_optflags.patch new file mode 100644 index 0000000000..660073115f --- /dev/null +++ b/office/pdftk/pdftk-1.44-add_custom_optflags.patch @@ -0,0 +1,26 @@ +diff -Nurp pdftk-1.44-dist-orig/pdftk/Makefile.Slackware-13.1 pdftk-1.44-dist/pdftk/Makefile.Slackware-13.1 +--- pdftk-1.44-dist-orig/pdftk/Makefile.Slackware-13.1 2010-10-25 20:04:51.000000000 +0100 ++++ pdftk-1.44-dist/pdftk/Makefile.Slackware-13.1 2010-10-31 01:44:31.000000000 +0000 +@@ -34,7 +34,7 @@ export CXX= $(TOOLPATH)g++ + export GCJ= $(TOOLPATH)gcj + export GCJH= $(TOOLPATH)gcjh + export GJAR= $(TOOLPATH)gjar +-export LIBGCJ= /usr/share/java/libgcj$(VERSUFF).jar ++export LIBGCJ= /usr/share/java + export AR= ar + export RM= rm + export ARFLAGS= rs +@@ -71,9 +71,10 @@ export RMFLAGS= -vf + # only effects libraries following option on the command line + # + # +-export CPPFLAGS= -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -DUNBLOCK_SIGNALS -fdollars-in-identifiers +-export CXXFLAGS= -Wall -Wextra -Weffc++ -O2 +-export GCJFLAGS= -Wall -fsource=1.3 -O2 ++export OPT= -O2 ++export CPPFLAGS= $(OPT) -DPATH_DELIM=0x2f -DASK_ABOUT_WARNINGS=false -DUNBLOCK_SIGNALS -fdollars-in-identifiers ++export CXXFLAGS= $(OPT) -Wall -Wextra -Weffc++ ++export GCJFLAGS= $(OPT) -Wall -fsource=1.3 + export GCJHFLAGS= -force + export LDLIBS= -lgcj + diff --git a/office/pdftk/pdftk.SlackBuild b/office/pdftk/pdftk.SlackBuild index ea53db9506..88f6148bd3 100644 --- a/office/pdftk/pdftk.SlackBuild +++ b/office/pdftk/pdftk.SlackBuild @@ -2,6 +2,7 @@ # Slackware build script for pdftk +# Copyright 2010 Gregory J. L. Tourte <artourter@gmail.com> # Copyright 2006-2009 Yalla-One <yallaone@gmail.com> # All rights reserved. # @@ -22,64 +23,66 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# Modified by the SlackBuilds.org project -# THANK YOU to Martinezio from LinuxQuestions.org for the patch to make this -# work on Slackware64 13.0 +# THANK YOU to Martinezio from LinuxQuestions.org for +# the patch to make this work on Slackware64 13.0 PRGNAM=pdftk -VERSION=1.41 -ARCH=${ARCH:-i486} -BUILD=${BUILD:-2} +VERSION=${VERSION:-1.44} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -case "$ARCH" in - i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" - ;; - i686) SLKCFLAGS="-O2 -march=i686 -mtune=i686" - ;; - s390) SLKCFLAGS="-O2" - ;; - powerpc) SLKCFLAGS="-O2" - ;; - x86_64) SLKCFLAGS="-O2 -fPIC" - SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" - ;; - athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" - ;; -esac +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 -cd $PRGNAM-$VERSION +rm -rf $PRGNAM-$VERSION-dist +unzip $CWD/$PRGNAM-$VERSION-src.zip +cd $PRGNAM-$VERSION-dist chown -R root:root . chmod -R a-s,u+w,go+r-w . -# Fix build on x86_64 -patch -p1 <$CWD/pdftk-1.41-slackware64-13.patch - # Use our SLKCFLAGS -patch -p1 < $CWD/pdftk-1.41-add_custom_optflags.patch +patch -p1 < $CWD/pdftk-1.44-add_custom_optflags.patch cd $PRGNAM - make OPT="$SLKCFLAGS" -f Makefile.Generic + make OPT="$SLKCFLAGS" -f Makefile.Slackware-13.1 mkdir -p $PKG/usr/{bin,man/man1,doc/$PRGNAM-$VERSION} cp -a pdftk $PKG/usr/bin strip --strip-unneeded $PKG/usr/bin/pdftk 2> /dev/null cd .. -gzip -9c debian/pdftk.1 > $PKG/usr/man/man1/pdftk.1.gz -cat pdftk.1.txt > $PKG/usr/doc/$PRGNAM-$VERSION/pdftk.1.txt -cat pdftk.1.html > $PKG/usr/doc/$PRGNAM-$VERSION/pdftk.1.html +gzip -9c pdftk.1 > $PKG/usr/man/man1/pdftk.1.gz +cp -a \ + pdftk.1.* changelog.* license_gpl_pdftk \ + $PKG/usr/doc/$PRGNAM-$VERSION/ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/office/pdftk/pdftk.info b/office/pdftk/pdftk.info index ccf07a3298..eadaad461f 100644 --- a/office/pdftk/pdftk.info +++ b/office/pdftk/pdftk.info @@ -1,10 +1,10 @@ PRGNAM="pdftk" -VERSION="1.41" -HOMEPAGE="http://www.pdfhacks.com/pdftk/" -DOWNLOAD="http://www.pdfhacks.com/pdftk/pdftk-1.41.tar.bz2" -MD5SUM="7214230b937dc996d209c05b7b7b3518" +VERSION="1.44" +HOMEPAGE="http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/" +DOWNLOAD="http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-1.44-src.zip" +MD5SUM="9eb50fffcd621a627d387750c60982b4" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -MAINTAINER="Yalla-One" -EMAIL="yallaone@gmail.com" +MAINTAINER="ArTourter" +EMAIL="artourter@gmail.com" APPROVED="rworkman" diff --git a/office/pdftk/slack-desc b/office/pdftk/slack-desc index ca55f2115b..810c27efee 100644 --- a/office/pdftk/slack-desc +++ b/office/pdftk/slack-desc @@ -7,7 +7,7 @@ |-----handy-ruler------------------------------------------------------| pdftk: pdftk (pdf toolkit) -pdftk: +pdftk: pdftk: If PDF is electronic paper, then pdftk is an electronic pdftk: staple-remover, hole-punch, binder, secret-decoder-ring, and pdftk: X-Ray-glasses. Pdftk is a command-line tool for doing everyday things |