aboutsummaryrefslogtreecommitdiff
path: root/graphics/fotoxx
diff options
context:
space:
mode:
authorMatthias Andree <mandree@FreeBSD.org>2014-02-07 01:01:37 +0000
committerMatthias Andree <mandree@FreeBSD.org>2014-02-07 01:01:37 +0000
commit92500c08eb8d25a5ff56cef96f9a6f28df306408 (patch)
treebdfdeccf06770a0546f06fad8dd40f0e8c40519d /graphics/fotoxx
parent24215aa71a8c6f7200e1901d130c0ce4afcdf7e6 (diff)
downloadports-92500c08eb8d25a5ff56cef96f9a6f28df306408.tar.gz
ports-92500c08eb8d25a5ff56cef96f9a6f28df306408.zip
Unbreak and upgrade to new upstream release 14.02.2.
Based on a patch to upgrade to 14.01.1 by Rainer Hurling, based on a patch to upgrade to 13.03.1 by Rod Person. Rainer's changes: - new mastersite; 2nd mastersites contents has to be updated - unbreak the port - modernize LIB_DEPENDS - support STAGE_DIR - strip bin/fotoxx - correct usage of desktop-file-utils - update URL in pkg-descr - update pkg-plist Committer's changes: - work around fetch(1)/nginx incompatibility making fetch commands with unmerged fix r261263 (and ancestors) unable to fetch from the primary site. - add USES=pkgconfig - add mirror sites - fix installation of manfile - fix paths in desktop file - stop using xdg-desktop-menu for now, breaks the build and does not appear to be required PR: ports/177643 Submitted by: Rod Person, Rainer Hurling
Notes
Notes: svn path=/head/; revision=343178
Diffstat (limited to 'graphics/fotoxx')
-rw-r--r--graphics/fotoxx/Makefile59
-rw-r--r--graphics/fotoxx/distinfo4
-rw-r--r--graphics/fotoxx/files/patch-Makefile37
-rw-r--r--graphics/fotoxx/files/patch-dependencies.sh37
-rw-r--r--graphics/fotoxx/files/patch-f.file.cc10
-rw-r--r--graphics/fotoxx/files/patch-f.meta.cc46
-rw-r--r--graphics/fotoxx/files/patch-fotoxx-11.03.cc52
-rw-r--r--graphics/fotoxx/files/patch-fotoxx-14.02.2.cc116
-rw-r--r--graphics/fotoxx/files/patch-fotoxx.h13
-rw-r--r--graphics/fotoxx/files/patch-zfuncs.cc149
-rw-r--r--graphics/fotoxx/files/patch-zfuncs.h42
-rw-r--r--graphics/fotoxx/pkg-descr2
-rw-r--r--graphics/fotoxx/pkg-plist278
13 files changed, 475 insertions, 370 deletions
diff --git a/graphics/fotoxx/Makefile b/graphics/fotoxx/Makefile
index dc4adf544923..4f7587b0e46e 100644
--- a/graphics/fotoxx/Makefile
+++ b/graphics/fotoxx/Makefile
@@ -2,36 +2,59 @@
# $FreeBSD$
PORTNAME= fotoxx
-PORTVERSION= 11.03
-PORTREVISION= 2
+PORTVERSION= 14.02.2
CATEGORIES= graphics
-MASTER_SITES= http://kornelix.squarespace.com/downloads/ \
- http://www.rodperson.com/DL/
+MASTER_SITES= http://www.kornelix.com/uploads/1/3/0/3/13035936/ \
+ LOCAL/mandree
MAINTAINER= ports@FreeBSD.org
COMMENT= Application to organize and edit image collections
-BROKEN= Does not fetch, but see PR 177643
+LICENSE= GPLv3
-LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo
+LIB_DEPENDS= libexecinfo.so:${PORTSDIR}/devel/libexecinfo
RUN_DEPENDS= xdg-open:${PORTSDIR}/devel/xdg-utils \
ufraw-batch:${PORTSDIR}/graphics/ufraw \
- exiftool:${PORTSDIR}/graphics/p5-Image-ExifTool
+ exiftool:${PORTSDIR}/graphics/p5-Image-ExifTool \
+ dcraw:${PORTSDIR}/graphics/dcraw
-USE_GNOME= gtk20
-USE_GMAKE= yes
-MANCOMPRESSED= yes
-MAN1= fotoxx.1
+USES= gmake desktop-file-utils pkgconfig
+USE_GNOME= gtk30
ALL_TARGET= fotoxx
-INSTALL_TARGET= install manpage
+INSTALL_TARGET= install MANDIR=${PREFIX}/man/man1/
LDFLAGS+= -O3 -g -Wall -rdynamic -lexecinfo
-NO_STAGE= yes
post-patch:
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \
- ${WRKSRC}/Makefile \
- ${WRKSRC}/dependencies.sh
-
-.include <bsd.port.mk>
+ @# drop xdg-desktop-menu calls, they fail
+ ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \
+ -e '/xdg-desktop-menu/d' \
+ -e '/rm -f -R/d' \
+ ${WRKSRC}/Makefile
+ @# replace obsolete include files
+ ${REINPLACE_CMD} -e 's|<malloc.h>|<stdlib.h>|' \
+ ${WRKSRC}/zfuncs.h
+ @# fix up icon path in XDG .desktop file
+ ${REINPLACE_CMD} -e 's}/usr/share/fotoxx}${DATADIR}}' \
+ ${WRKSRC}/desktop
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/fotoxx
+
+.include <bsd.port.pre.mk>
+
+# These hacks are required because the nginx server at the primary
+# master site and most of our fetch(1) versions do not get along well.
+# This code can be removed once r261263 has been merged from
+# base/head into all ports-supported releases.
+# We depend on cURL unless wget is in $LOCALPATH:
+DISABLE_SIZE= yes
+.if exists(${LOCALBASE}/bin/wget) && !exists(${PREFIX}/bin/curl)
+FETCH_CMD= ${LOCALBASE}/bin/wget -c -nc
+.else
+FETCH_DEPENDS= curl:${PORTSDIR}/ftp/curl
+FETCH_CMD= ${PREFIX}/bin/curl -OL0C -
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/graphics/fotoxx/distinfo b/graphics/fotoxx/distinfo
index b4110d079189..caa2c7fe3cc1 100644
--- a/graphics/fotoxx/distinfo
+++ b/graphics/fotoxx/distinfo
@@ -1,2 +1,2 @@
-SHA256 (fotoxx-11.03.tar.gz) = c23e6b7c5517d1509b14a270bd2ad2af6fd2de613e55e79104f77d1748492577
-SIZE (fotoxx-11.03.tar.gz) = 1152890
+SHA256 (fotoxx-14.02.2.tar.gz) = 60b6d9e8a5f19bc92b53d585cb36795d951c7a6d2d0bd1bd30ae3ca0465ed767
+SIZE (fotoxx-14.02.2.tar.gz) = 2715089
diff --git a/graphics/fotoxx/files/patch-Makefile b/graphics/fotoxx/files/patch-Makefile
index c624cacf4f12..efc156f54de8 100644
--- a/graphics/fotoxx/files/patch-Makefile
+++ b/graphics/fotoxx/files/patch-Makefile
@@ -1,26 +1,15 @@
---- Makefile.orig 2011-02-28 17:04:24.000000000 +0100
-+++ Makefile 2011-05-25 17:26:15.000000000 +0200
-@@ -15,13 +15,12 @@
- BINDIR = $(PREFIX)/bin
- DATADIR = $(PREFIX)/share/$(PROGRAM)
- DOCDIR = $(PREFIX)/share/doc/$(PROGRAM)
--MANDIR = $(PREFIX)/share/man/man1
-+MANDIR = $(PREFIX)/man/man1
- ICONDIR = $(DATADIR)/icons
- DESKTOP = $(DATADIR)/kornelix-$(PROGRAM).desktop
-
- $(PROGRAM): $(PROGRAM).o zfuncs.o
- $(CXX) $(LFLAGS) -ltiff -o $(PROGRAM) $(PROGRAM).o zfuncs.o
-- @ ./dependencies.sh
+--- ./Makefile.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./Makefile 2014-02-06 10:32:37.000000000 +0100
+@@ -3,9 +3,9 @@
+ FOTOXX = fotoxx-14.02.2.cc
- $(PROGRAM).o: $(SOURCE)
- $(CXX) $(CFLAGS) -o $(PROGRAM).o $(SOURCE) \
-@@ -42,8 +41,6 @@
- cp -f icons/* $(DESTDIR)$(ICONDIR)
- cp -f -R locales/* $(DESTDIR)$(DATADIR)/locales
- cp -f $(PROGRAM) $(DESTDIR)$(BINDIR)
-- @ echo use make menu to install desktop menu
-- @ echo use make manpage to install man page
+ # defaults for parameters that may be pre-defined
+-CXXFLAGS ?= -O2 -Wall -ggdb
+-LDFLAGS ?= -rdynamic
+-PREFIX ?= /usr
++CXXFLAGS ?= -O3 -g -Wall
++LDFLAGS ?= -O3 -g -Wall -rdynamic
++PREFIX ?= $(LOCALBASE)
- menu:
- cp -f desktop $(DESTDIR)$(DESKTOP)
+ # target install directories
+ BINDIR = $(PREFIX)/bin
diff --git a/graphics/fotoxx/files/patch-dependencies.sh b/graphics/fotoxx/files/patch-dependencies.sh
deleted file mode 100644
index 907629690ac7..000000000000
--- a/graphics/fotoxx/files/patch-dependencies.sh
+++ /dev/null
@@ -1,37 +0,0 @@
---- dependencies.sh.orig 2011-02-28 11:04:24.000000000 -0500
-+++ dependencies.sh 2011-03-28 08:52:03.000000000 -0400
-@@ -1,4 +1,4 @@
--#! /bin/bash
-+#!/bin/sh
- #
- # Check if dependencies are installed before build.
- #
-@@ -7,15 +7,15 @@
- # but they are required at run time to handle EXIF data
- # and RAW files from digital cameras.
-
--dlist=" g++ /usr/include/gtk-2.0/gtk/gtk.h
-- /usr/include/tiffio.h /usr/lib*/libtiff.so
-- xdg-open xdg-desktop-menu exiftool"
-+dlist=" /usr/local/include/gtk-2.0/gtk/gtk.h
-+ /usr/local/include/tiffio.h /usr/local/lib/libtiff.so
-+ /usr/local/bin/xdg-open /usr/local/bin/xdg-desktop-menu /usr/local/bin/exiftool"
-
- error=0
-
- for dname in $dlist
- do
-- if [ ${dname:0:1} = "/" ]
-+ if [ ${dname#/*} = ${dname} ]
- then find $dname >/dev/null 2>&1
- else which $dname >/dev/null
- fi
-@@ -40,7 +40,7 @@
-
- for dname in $dlist
- do
-- if [ ${dname:0:1} = "/" ]
-+ if [ ${dname#/*} = ${dname} ]
- then find $dname >/dev/null 2>&1
- else which $dname >/dev/null
- fi
diff --git a/graphics/fotoxx/files/patch-f.file.cc b/graphics/fotoxx/files/patch-f.file.cc
new file mode 100644
index 000000000000..2df6b87c15f3
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.file.cc
@@ -0,0 +1,10 @@
+--- ./f.file.cc.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./f.file.cc 2014-02-06 10:32:37.000000000 +0100
+@@ -23,6 +23,7 @@
+
+ #define EX extern // disable extern declarations
+ #include "fotoxx.h"
++#include <sys/wait.h>
+
+ /**************************************************************************
+ Fotoxx image edit - file menu functions
diff --git a/graphics/fotoxx/files/patch-f.meta.cc b/graphics/fotoxx/files/patch-f.meta.cc
new file mode 100644
index 000000000000..65bf2a8dc312
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.meta.cc
@@ -0,0 +1,46 @@
+--- ./f.meta.cc.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./f.meta.cc 2014-02-06 10:32:37.000000000 +0100
+@@ -23,6 +23,7 @@
+
+ #define EX extern // enable extern declarations
+ #include "fotoxx.h"
++#include <sys/wait.h>
+
+
+ /**************************************************************************
+@@ -5786,7 +5787,7 @@
+ strcpy(sxrec.size,"null");
+
+ if (! sxrec.tags)
+- sxrec.tags = strdupz("null"tagdelimB,0,"search-index");
++ sxrec.tags = strdupz("null" tagdelimB,0,"search-index");
+
+ if (! sxrec.capt)
+ sxrec.capt = strdupz("null",0,"search-index");
+@@ -5993,7 +5994,7 @@
+
+ if (sxrec->tags)
+ nn = fprintf(fid2,"tags: %s\n",sxrec->tags); // tags rec.
+- else nn = fprintf(fid2,"tags: null"tagdelimB"\n");
++ else nn = fprintf(fid2,"tags: null" tagdelimB"\n");
+ if (! nn) goto file_err;
+
+ if (sxrec->capt)
+@@ -6147,7 +6148,7 @@
+ strcpy(sxrec.size,"null");
+
+ if (! sxrec.tags)
+- sxrec.tags = strdupz("null"tagdelimB,0,"search-index");
++ sxrec.tags = strdupz("null" tagdelimB,0,"search-index");
+
+ if (! sxrec.capt)
+ sxrec.capt = strdupz("null",0,"search-index");
+@@ -6259,7 +6260,7 @@
+
+ if (sxrec->tags)
+ nn = fprintf(fid,"tags: %s\n",sxrec->tags); // tags rec.
+- else nn = fprintf(fid,"tags: null"tagdelimB"\n");
++ else nn = fprintf(fid,"tags: null" tagdelimB"\n");
+ if (! nn) goto file_err;
+
+ if (sxrec->capt)
diff --git a/graphics/fotoxx/files/patch-fotoxx-11.03.cc b/graphics/fotoxx/files/patch-fotoxx-11.03.cc
deleted file mode 100644
index d5a09e11bcd5..000000000000
--- a/graphics/fotoxx/files/patch-fotoxx-11.03.cc
+++ /dev/null
@@ -1,52 +0,0 @@
---- fotoxx-11.03.cc.orig 2011-02-28 16:04:24.000000000 +0000
-+++ fotoxx-11.03.cc 2013-03-30 08:59:16.000000000 +0000
-@@ -24,6 +24,13 @@
- #include <tiffio.h>
- #include "zfuncs.h"
-
-+#ifdef __FreeBSD__
-+ #include <unistd.h> /* for getcwd */
-+ #include <sys/types.h> /* for getpwuid */
-+ #include <pwd.h> /* for getpwuid */
-+ #define WEXITSTATUS(w)((w)>>8) // fixes WEXITSTATUS not declared on FreeBSD
-+#endif
-+
- #define fversion "Fotoxx v.11.03 2011.03.01" // version and date
- #define fversioncc 16 // cc to use for window title bar
- #define flicense "Free software - GNU General Public License v.3"
-@@ -200,7 +207,7 @@
- PXM *Dpxm16 = 0; // drawing window pixmap, 1x 16-bits
- PXM *Dpxm8 = 0; // drawing window pixmap, Mscale 8-bits
-
--mutex Fpixmap_lock; // lock for accessing PXM pixmaps
-+mutex_tp Fpixmap_lock; // lock for accessing PXM pixmaps
-
- int Fww, Fhh; // input image dimensions
- int E1ww, E1hh, E3ww, E3hh; // edit image dimensions
-@@ -986,7 +993,7 @@
- }
-
- if (! curr_file) { // set curr. directory anyway v.11.01
-- ppv = get_current_dir_name();
-+ ppv = getwd(null);
- curr_dirk = strdupz(ppv,0,"curr_dirk");
- free(ppv);
- err = chdir(curr_dirk);
-@@ -2428,7 +2435,7 @@
- if (curr_file)
- image_gallery(curr_file,"paint1",0,m_gallery2,mWin); // overlay main window v.10.9
- else {
-- char *pp = get_current_dir_name();
-+ char *pp = getwd(null);
- if (pp) {
- image_gallery(pp,"paint1",0,m_gallery2,mWin); // use current directory v.10.9
- free(pp);
-@@ -5169,7 +5176,7 @@
- }
-
- *tempdir = 0; // temp directory: /tmp/<user>/fotoxx/email
-- strncatv(tempdir,99,"/tmp/",cuserid(null),"/fotoxx/email",null);
-+ strncatv(tempdir,99,"/tmp/",getpwuid(null),"/fotoxx/email",null);
-
- sprintf(command,"mkdir -p %s",tempdir); // (re)create directory
- err = system(command);
diff --git a/graphics/fotoxx/files/patch-fotoxx-14.02.2.cc b/graphics/fotoxx/files/patch-fotoxx-14.02.2.cc
new file mode 100644
index 000000000000..e2525ee14eab
--- /dev/null
+++ b/graphics/fotoxx/files/patch-fotoxx-14.02.2.cc
@@ -0,0 +1,116 @@
+--- ./fotoxx-14.02.2.cc.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./fotoxx-14.02.2.cc 2014-02-06 10:32:37.000000000 +0100
+@@ -133,7 +133,8 @@
+
+ #define EX // disable extern declarations
+ #include "fotoxx.h"
+-
++#include <sys/types.h>
++#include <sys/sysctl.h>
+
+ // fotoxx main program
+
+@@ -451,7 +452,6 @@
+ char procfile[20], buff[200];
+ char KBshortsU[200], KBshortsI[200];
+ char favorites_config[200], badnews[200];
+- double freememory, cachememory; // available memory at startup
+ float exifver = 0;
+ FILE *fid;
+ struct stat statb;
+@@ -542,19 +542,12 @@
+
+ snprintf(URS_filename,200,"%s/undo_nn",tempdir); // /run/shm/fotoxx-nnnnnn/undo_nn
+
+- // check free memory and suggest image size limits
+-
+- parseprocfile("/proc/meminfo","MemFree:",&freememory,null); // get amount of free memory
+- parseprocfile("/proc/meminfo","Cached:",&cachememory,null);
+- freememory = (freememory + cachememory) / 1024; // megabytes
+- printz("free memory: %.0f MB \n",freememory);
+- printz("image size limits for good performance: \n"); // v.13.04
+- printz(" view: %.0f megapixels \n",(freememory-100)/6); // F + preview, 3 bytes/pixel each
+- printz(" edit: %.0f megapixels \n",(freememory-100)/54); // + E0/E1/E3/ER, 12 bytes/pixel each
+-
+ // miscellaneous
+
+- Nwt = get_nprocs(); // get SMP CPU count
++ //Nwt = get_nprocs(); // get SMP CPU count
++ size_t len = sizeof(Nwt);
++ sysctlbyname("hw.ncpu",&Nwt,&len,NULL,0);
++
+ if (Nwt <= 0) Nwt = 2;
+ if (Nwt > max_threads) Nwt = max_threads; // compile time limit
+ printz("using %d threads \n",Nwt);
+@@ -4321,31 +4314,6 @@
+ }
+
+
+-/**************************************************************************/
+-
+-// popup a warning message if real memory is below specified threshold
+-// returns margin: real memory - threshold, in megabytes
+-// (+ if enough memory, - if not)
+-// the popup message only appears if real memory < threshold
+-// the popup message goes away after a few seconds
+-
+-int warn_memory(int req_mb)
+-{
+- double freemem, cachemem;
+- int act_mb, gap_mb;
+- cchar *message = ZTX("warning: real memory %d MB < required %d MB \n"
+- "response time may become very long \n");
+-
+- parseprocfile("/proc/meminfo","MemFree:",&freemem,null); // get current free memory
+- parseprocfile("/proc/meminfo","Cached:",&cachemem,null);
+- act_mb = (freemem + cachemem) / 1024; // megabytes
+- gap_mb = act_mb - req_mb;
+- if (gap_mb > -10) return gap_mb;
+- zpopup_message(message,act_mb,req_mb); // deficit > 10 MB
+- return gap_mb;
+-}
+-
+-
+ /**************************************************************************
+ PXM pixmap functions - RGB float pixel map
+ pixel RGB values may range from 0.0 to 255.99
+@@ -4386,9 +4354,6 @@
+ return 0;
+ }
+
+- int req_mb = ww * hh * 12 / mega; // warn if memory low
+- warn_memory(req_mb);
+-
+ PXM *pxm = (PXM *) zmalloc(sizeof(PXM),"PXM"); // 0.45 sec for 116 megapix image (1.4 GB)
+ pxm->ww = ww;
+ pxm->hh = hh;
+@@ -4806,9 +4771,6 @@
+
+ PXB * PXB_make(int ww, int hh)
+ {
+- int req_mb = ww * hh * 3 / mega; // warn if memory low
+- warn_memory(req_mb);
+-
+ PXB *pxb = (PXB *) zmalloc(sizeof(PXB),"PXB");
+ strcpy(pxb->wmi,"pxbpix");
+ pxb->pixbuf = gdk_pixbuf_new(GDKRGB,0,8,ww,hh);
+@@ -4857,9 +4819,6 @@
+
+ PXB * PXB_copy(PXB *pxb1)
+ {
+- int req_mb = pxb1->ww * pxb1->hh * 3 / mega; // warn if memory low
+- warn_memory(req_mb);
+-
+ PXB *pxb2 = (PXB *) zmalloc(sizeof(PXB),"PXB");
+ strcpy(pxb2->wmi,"pxbpix");
+ pxb2->pixbuf = gdk_pixbuf_copy(pxb1->pixbuf);
+@@ -4876,9 +4835,6 @@
+ PXB * PXB_rescale(PXB *pxb1, int ww2, int hh2)
+ {
+ GdkPixbuf *pixbuf2 = 0;
+- int req_mb = ww2 * hh2 * 3 / mega; // warn if memory low
+- warn_memory(req_mb);
+-
+ if (strEqu(interpolation,"tiles")) // v.13.05
+ pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_TILES);
+ else if (strEqu(interpolation,"hyperbolic"))
diff --git a/graphics/fotoxx/files/patch-fotoxx.h b/graphics/fotoxx/files/patch-fotoxx.h
new file mode 100644
index 000000000000..67fc9cac98d7
--- /dev/null
+++ b/graphics/fotoxx/files/patch-fotoxx.h
@@ -0,0 +1,13 @@
+--- ./fotoxx.h.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./fotoxx.h 2014-02-06 10:32:37.000000000 +0100
+@@ -339,8 +339,8 @@
+ EX int dww, dhh; // Dpxb size in drawing window, <= Dww, Dhh
+ EX int zoomx, zoomy; // req. zoom center of window
+
+-EX mutex Fpixmap_lock; // lock for accessing PXM pixmaps
+-EX mutex preload_lock; // lock for image file preload function
++EX mutex_tp Fpixmap_lock; // lock for accessing PXM pixmaps
++EX mutex_tp preload_lock; // lock for image file preload function
+
+ EX int Mbutton; // mouse button, 1/3 = left/right
+ EX int Mwxposn, Mwyposn; // mouse position, window space
diff --git a/graphics/fotoxx/files/patch-zfuncs.cc b/graphics/fotoxx/files/patch-zfuncs.cc
index f6158620de8b..869384303ac0 100644
--- a/graphics/fotoxx/files/patch-zfuncs.cc
+++ b/graphics/fotoxx/files/patch-zfuncs.cc
@@ -1,137 +1,20 @@
---- zfuncs.cc.orig 2011-02-28 16:04:24.000000000 +0000
-+++ zfuncs.cc 2013-03-30 09:00:04.000000000 +0000
-@@ -24,6 +24,15 @@
+--- ./zfuncs.cc.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./zfuncs.cc 2014-02-06 10:32:37.000000000 +0100
+@@ -854,7 +854,7 @@
+ // A mutex lock is used to insure one thread at a time has access to the parameter.
+ // Many parameters can be used but there is only one mutex lock.
- #include "zfuncs.h"
-
-+#ifdef __FreeBSD__
-+ #include <sys/event.h>
-+ #include <sys/types.h>
-+ #include <sys/times.h>
-+ #include <pwd.h>
-+ #include <execinfo.h>
-+
-+ #define WEXITSTATUS(w)((w)>>8) // fixes the WEXITSTATUS not declared on FreeBSD
-+#endif
-
- /**************************************************************************
- system-level utility functions
-@@ -281,7 +290,7 @@
- // safely access parameters from multiple threads
- // limitation: one lock for any number of parameters
-
--mutex zget_lock = PTHREAD_MUTEX_INITIALIZER;
-+mutex_tp zget_lock = PTHREAD_MUTEX_INITIALIZER;
+-mutex zget_lock = PTHREAD_MUTEX_INITIALIZER;
++mutex_tp zget_lock = PTHREAD_MUTEX_INITIALIZER;
int zget_locked(int &param) // lock and return parameter
{
-@@ -778,23 +787,27 @@
- char fname[200]; // null-terminated file name within directory
- };
-
-+ int f, kq, nev;
-+ struct kevent change;
-+ struct kevent event;
-+
- inotify_event evbuff;
- struct timeval waitime;
- fd_set fids;
- int wd, retval, cc, fcc;
-- int evbcc = sizeof(evbuff);
-+ int evbcc = sizeof(event);
- static int fid = -1;
-
- if (strEqu(action,"open")) // setup a monitored directory
- {
-- fid = inotify_init();
-- if (fid < 0) {
-+ f = kqueue();
-+ if (f < 0) {
- return -1;
- }
-- wd = inotify_add_watch(fid,dirk,IN_ALL_EVENTS);
-+ wd = kevent(f, &change, 1, &event, 1, NULL);
- if (wd < 0) {
-- close(fid);
-- fid = -1;
-+ close(f);
-+ f = -1;
- return -1;
- }
- return 0;
-@@ -802,7 +815,7 @@
-
- if (strEqu(action,"event")) // return pending event or zero
- {
-- if (fid < 0) return -1;
-+ if (f < 0) return -1;
-
- if (file) {
- if (*file) zfree(*file); // free prior memory
-@@ -816,12 +829,12 @@
- waitime.tv_sec = 0;
- waitime.tv_usec = 1;
-
-- retval = select(fid+1, &fids, null, null, &waitime);
-+ retval = select(f+1, &fids, null, null, &waitime);
- if (retval == 0) return 0; // nothing pending
-
- if (retval == -1) { // error
- close(fid);
-- fid = -1;
-+ f = -1;
- return -1;
- }
-
-@@ -832,28 +845,21 @@
- return -1;
- }
-
-- fcc = evbuff.len;
-- if (fcc > 199) return -1;
-- if (fcc > 0 && file)
-- *file = strdupz(evbuff.fname,0,"zmondirk_file"); // return filename v.3.5
--
-- if (evbuff.mask & (IN_CREATE | IN_MOVED_TO)) // file was added
-+ if (event.fflags & (NOTE_WRITE | NOTE_RENAME)) // file was added
- return 1;
-- if (evbuff.mask & (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE | IN_MODIFY)) // file was possibly added
-+ if (event.fflags & (NOTE_EXIT | NOTE_REVOKE | NOTE_ATTRIB)) // file was possibly added
- return 1;
-- if (evbuff.mask & (IN_DELETE | IN_MOVED_FROM)) // file was deleted
-+ if (event.fflags & (NOTE_DELETE)) // file was deleted
- return 2;
-- if (evbuff.mask & (IN_DELETE_SELF | IN_MOVE_SELF)) // monitored directory gone
-- return 3;
- return 9; // other
- }
- }
-
- if (strEqu(action,"close")) // stop monitoring
- {
-- if (fid > -1) retval = close(fid);
-+ if (f > -1) retval = close(f);
- else retval = -1;
-- fid = -1;
-+ f = -1;
- return retval;
- }
-
-@@ -2983,7 +2989,7 @@
- strcpy(zicondir,zdatadir);
- strcat(zicondir,"/icons");
-
-- pp = cuserid(0);
-+ pp = getlogin();
- if (strEqu(pp,"root")) snprintf(zuserdir,199,"/root/.%s",zappname); // get /root/.appname
- else snprintf(zuserdir,199,"%s/.%s",getenv("HOME"),zappname); // or /home/user/.appname
-
-@@ -3435,7 +3441,7 @@
- pthread_t tids[tmax];
- int tlocks[tmax];
- int zinit = 0;
--mutex zmutex;
-+mutex_tp zmutex;
-
- void zlockInit() // initz. call from main()
- {
+@@ -1276,7 +1276,7 @@
+ namespace shell_asynch_names {
+ char *command[10];
+ int status[10];
+- mutex mlock = PTHREAD_MUTEX_INITIALIZER;
++ mutex_tp mlock = PTHREAD_MUTEX_INITIALIZER;
+ }
+
+ int shell_asynch(cchar *Fcommand, ...) // v.5.5
diff --git a/graphics/fotoxx/files/patch-zfuncs.h b/graphics/fotoxx/files/patch-zfuncs.h
index 01a996ece9b6..350475889139 100644
--- a/graphics/fotoxx/files/patch-zfuncs.h
+++ b/graphics/fotoxx/files/patch-zfuncs.h
@@ -1,35 +1,37 @@
---- zfuncs.h.orig 2011-02-28 16:04:24.000000000 +0000
-+++ zfuncs.h 2013-03-30 08:58:28.000000000 +0000
-@@ -36,7 +36,13 @@
- #include <signal.h>
- #include <execinfo.h>
- #include <locale.h>
--#include <sys/inotify.h>
-+
-+#ifdef __linux__
-+ #include <sys/inotify.h>
-+#elif defined(__FreeBSD__)
-+ #include <sys/event.h>
-+ #include <sys/types.h>
-+#endif
+--- ./zfuncs.h.orig 2014-02-05 20:42:34.000000000 +0100
++++ ./zfuncs.h 2014-02-06 10:32:37.000000000 +0100
+@@ -22,7 +22,7 @@
- #define int8 char // number types
- #define int16 short
-@@ -52,7 +58,7 @@
+ // zfuncs.h version v.5.8
+
+-#include <sys/sysinfo.h>
++//#include <sys/sysinfo.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
+ #include <sys/resource.h>
+@@ -33,6 +33,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <sys/wait.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <math.h>
+@@ -60,7 +61,7 @@
#define wstrerror(err) strerror(WEXITSTATUS(err)) // get text status for child process
-#define mutex pthread_mutex_t // abbreviations
-+#define mutex_tp pthread_mutex_t // abbreviations
++#define mutex_tp pthread_mutex_t // abbreviations
#define mutex_init pthread_mutex_init
#define mutex_lock pthread_mutex_lock
#define mutex_trylock pthread_mutex_trylock
-@@ -504,7 +510,7 @@
+@@ -625,7 +626,7 @@
{
char wmi[8];
Vxstring * vd; // vector of xstrings
- mutex qmutex; // for multi-thread access
-+ mutex_tp qmutex; // for multi-thread access
++ mutex_tp qmutex; // for multi-thread access
int qcap; // queue capacity
int qcount; // curr. queue count
int ent1; // first entry pointer
diff --git a/graphics/fotoxx/pkg-descr b/graphics/fotoxx/pkg-descr
index fec6f11dd4c8..45753cbc7625 100644
--- a/graphics/fotoxx/pkg-descr
+++ b/graphics/fotoxx/pkg-descr
@@ -2,4 +2,4 @@ Fotoxx is a free open source Linux program for photo editing
and collection management. The goal is to meet most user needs
while remaining fast and easy to use.
-WWW: http://kornelix.squarespace.com/fotoxx
+WWW: http://www.kornelix.com/fotoxx.html
diff --git a/graphics/fotoxx/pkg-plist b/graphics/fotoxx/pkg-plist
index e7bae1fe00de..8b778368436e 100644
--- a/graphics/fotoxx/pkg-plist
+++ b/graphics/fotoxx/pkg-plist
@@ -1,97 +1,209 @@
bin/fotoxx
-%%DATADIR%%/icons/arrow.png
-%%DATADIR%%/icons/busy.png
-%%DATADIR%%/icons/drag.png
-%%DATADIR%%/icons/draw.png
-%%DATADIR%%/icons/first-page.png
+share/applications/fotoxx.desktop
+%%PORTDOCS%%%%DOCSDIR%%/README-ca
+%%PORTDOCS%%%%DOCSDIR%%/README-en
+%%PORTDOCS%%%%DOCSDIR%%/README-es
+%%PORTDOCS%%%%DOCSDIR%%/changelog.gz
+%%PORTDOCS%%%%DOCSDIR%%/copyright
+%%PORTDOCS%%%%DOCSDIR%%/fotoxx-release
+%%PORTDOCS%%%%DOCSDIR%%/fotoxx.man
+%%PORTDOCS%%%%DOCSDIR%%/freecode
+%%PORTDOCS%%%%DOCSDIR%%/translations-ca
+%%PORTDOCS%%%%DOCSDIR%%/translations-en
+%%PORTDOCS%%%%DOCSDIR%%/translations-es
+%%DATADIR%%/data/KB-shortcuts-ca
+%%DATADIR%%/data/KB-shortcuts-en
+%%DATADIR%%/data/KB-shortcuts-es
+%%DATADIR%%/data/edit-menus-ca
+%%DATADIR%%/data/edit-menus-en
+%%DATADIR%%/data/edit-menus-es
+%%DATADIR%%/data/favorites/menu-config
+%%DATADIR%%/data/favorites/menu-config-pixbuf-009.png
+%%DATADIR%%/data/images/F-toolbar.jpg
+%%DATADIR%%/data/images/G-toolbar.jpg
+%%DATADIR%%/data/images/HDF-paint.jpg
+%%DATADIR%%/data/images/HDR-adjust.jpg
+%%DATADIR%%/data/images/KB-shortcuts.jpg
+%%DATADIR%%/data/images/add-geotags.jpg
+%%DATADIR%%/data/images/add-text.jpg
+%%DATADIR%%/data/images/add-text2.jpg
+%%DATADIR%%/data/images/anti-alias.jpg
+%%DATADIR%%/data/images/auto-trim.jpg
+%%DATADIR%%/data/images/batch-add-geotags.jpg
+%%DATADIR%%/data/images/batch-convert.jpg
+%%DATADIR%%/data/images/batch-raw-conv.jpg
+%%DATADIR%%/data/images/brightness-distribution.jpg
+%%DATADIR%%/data/images/brightness-ramp.jpg
+%%DATADIR%%/data/images/brightness steps.jpg
+%%DATADIR%%/data/images/chromatic.jpg
+%%DATADIR%%/data/images/cmyk.jpg
+%%DATADIR%%/data/images/collections.jpg
+%%DATADIR%%/data/images/colorchart.png
+%%DATADIR%%/data/images/denoise.jpg
+%%DATADIR%%/data/images/dots.jpg
+%%DATADIR%%/data/images/drawing.jpg
+%%DATADIR%%/data/images/edit-metadata.jpg
+%%DATADIR%%/data/images/edit-translation.jpg
+%%DATADIR%%/data/images/favorites.jpg
+%%DATADIR%%/data/images/file-save.jpg
+%%DATADIR%%/data/images/flatbook.jpg
+%%DATADIR%%/data/images/fotoxx.jpg
+%%DATADIR%%/data/images/gallery-select.jpg
+%%DATADIR%%/data/images/gammachart.png
+%%DATADIR%%/data/images/geotag-groups.jpg
+%%DATADIR%%/data/images/grad_blur.jpg
+%%DATADIR%%/data/images/grid-lines.jpg
+%%DATADIR%%/data/images/index.jpg
+%%DATADIR%%/data/images/jpeg quality.jpg
+%%DATADIR%%/data/images/keystone.jpg
+%%DATADIR%%/data/images/leverage-edits.jpg
+%%DATADIR%%/data/images/mashup.jpg
+%%DATADIR%%/data/images/mashup2.jpg
+%%DATADIR%%/data/images/match-colors.jpg
+%%DATADIR%%/data/images/move-collections.jpg
+%%DATADIR%%/data/images/paint-clone.jpg
+%%DATADIR%%/data/images/paint-edits.jpg
+%%DATADIR%%/data/images/pano-color.jpg
+%%DATADIR%%/data/images/pano-pre-align.jpg
+%%DATADIR%%/data/images/plugins.jpg
+%%DATADIR%%/data/images/print.jpg
+%%DATADIR%%/data/images/remove-dust.jpg
+%%DATADIR%%/data/images/rename.jpg
+%%DATADIR%%/data/images/resize.jpg
+%%DATADIR%%/data/images/retouch-combo.jpg
+%%DATADIR%%/data/images/retouch-combo2.jpg
+%%DATADIR%%/data/images/revise-RGB.jpg
+%%DATADIR%%/data/images/search-images-metadata.jpg
+%%DATADIR%%/data/images/search-images.jpg
+%%DATADIR%%/data/images/select-area.jpg
+%%DATADIR%%/data/images/sharpen.jpg
+%%DATADIR%%/data/images/sharpen4.jpg
+%%DATADIR%%/data/images/shift-colors.jpg
+%%DATADIR%%/data/images/show-RGB.jpg
+%%DATADIR%%/data/images/sketch.jpg
+%%DATADIR%%/data/images/slide-show.jpg
+%%DATADIR%%/data/images/smart-erase.jpg
+%%DATADIR%%/data/images/stack-noise.jpg
+%%DATADIR%%/data/images/stack-paint.jpg
+%%DATADIR%%/data/images/stuck-pixels.jpg
+@comment %%DATADIR%%/data/images/synchronize.jpg
+%%DATADIR%%/data/images/tabsF&G.png
+%%DATADIR%%/data/images/texture.jpg
+%%DATADIR%%/data/images/tone-mapping.jpg
+%%DATADIR%%/data/images/trim-rotate.jpg
+%%DATADIR%%/data/images/unbend.jpg
+%%DATADIR%%/data/images/user-settings.jpg
+%%DATADIR%%/data/images/vignette.jpg
+%%DATADIR%%/data/images/warps.jpg
+%%DATADIR%%/data/quickstart-ca.html
+%%DATADIR%%/data/quickstart-de.html
+%%DATADIR%%/data/quickstart-en.html
+%%DATADIR%%/data/quickstart-es.html
+%%DATADIR%%/data/quickstart-fr.html
+%%DATADIR%%/data/quickstart-it.html
+%%DATADIR%%/data/quickstart-pt.html
+%%DATADIR%%/data/slideshow-tone.oga
+%%DATADIR%%/data/tags_defined
+%%DATADIR%%/data/userguide-en.html
+%%DATADIR%%/data/userguide-es.html
+%%DATADIR%%/data/userguide-it.html
+%%DATADIR%%/icons/F-tab.png
+%%DATADIR%%/icons/G-tab.png
+%%DATADIR%%/icons/W-tab.png
+%%DATADIR%%/icons/bottom.png
+%%DATADIR%%/icons/broken.png
+%%DATADIR%%/icons/cancel.png
+%%DATADIR%%/icons/down+.png
+%%DATADIR%%/icons/down.png
+%%DATADIR%%/icons/edit-funcs/CMYK.png
+%%DATADIR%%/icons/edit-funcs/HDF.png
+%%DATADIR%%/icons/edit-funcs/HDR.png
+%%DATADIR%%/icons/edit-funcs/RGB.png
+%%DATADIR%%/icons/edit-funcs/blur.png
+%%DATADIR%%/icons/edit-funcs/bright distrib.png
+%%DATADIR%%/icons/edit-funcs/brigth color sat.png
+%%DATADIR%%/icons/edit-funcs/brigth ramp.png
+%%DATADIR%%/icons/edit-funcs/color depth.png
+%%DATADIR%%/icons/edit-funcs/crop rotate.png
+%%DATADIR%%/icons/edit-funcs/dots.png
+%%DATADIR%%/icons/edit-funcs/drawing01.png
+%%DATADIR%%/icons/edit-funcs/embossing.png
+%%DATADIR%%/icons/edit-funcs/expand bright.png
+%%DATADIR%%/icons/edit-funcs/fix fringes.png
+%%DATADIR%%/icons/edit-funcs/fix stuck pixels.png
+%%DATADIR%%/icons/edit-funcs/flatten bright.png
+%%DATADIR%%/icons/edit-funcs/flip.png
+%%DATADIR%%/icons/edit-funcs/gamma.png
+%%DATADIR%%/icons/edit-funcs/invert.png
+%%DATADIR%%/icons/edit-funcs/keystone.png
+%%DATADIR%%/icons/edit-funcs/landscape.png
+%%DATADIR%%/icons/edit-funcs/leverage edit.png
+%%DATADIR%%/icons/edit-funcs/outlines.png
+%%DATADIR%%/icons/edit-funcs/paint edits.png
+%%DATADIR%%/icons/edit-funcs/paint pixels.png
+%%DATADIR%%/icons/edit-funcs/painting.png
+%%DATADIR%%/icons/edit-funcs/panorama.png
+%%DATADIR%%/icons/edit-funcs/pencil.png
+%%DATADIR%%/icons/edit-funcs/red eyes.png
+%%DATADIR%%/icons/edit-funcs/reduce noise.png
+%%DATADIR%%/icons/edit-funcs/remove dust.png
+%%DATADIR%%/icons/edit-funcs/resize.png
+%%DATADIR%%/icons/edit-funcs/sharpen.png
+%%DATADIR%%/icons/edit-funcs/shiftcolors.png
+%%DATADIR%%/icons/edit-funcs/smarterase.png
+%%DATADIR%%/icons/edit-funcs/stacknoise.png
+%%DATADIR%%/icons/edit-funcs/stackpaint.png
+%%DATADIR%%/icons/edit-funcs/text.png
+%%DATADIR%%/icons/edit-funcs/tiles.png
+%%DATADIR%%/icons/edit-funcs/tonemapping.png
+%%DATADIR%%/icons/edit-funcs/unbend.png
+%%DATADIR%%/icons/edit-funcs/vert panorama.png
+%%DATADIR%%/icons/edit-funcs/voodoo.png
+%%DATADIR%%/icons/edit-funcs/warp affine.png
+%%DATADIR%%/icons/edit-funcs/warp area.png
+%%DATADIR%%/icons/edit-funcs/warp curved.png
+%%DATADIR%%/icons/edit-funcs/warp linear.png
+%%DATADIR%%/icons/edit-funcs/whitebalance.png
+%%DATADIR%%/icons/favorites.png
+%%DATADIR%%/icons/fg-color.png
%%DATADIR%%/icons/folder.png
-%%DATADIR%%/icons/folder256.png
%%DATADIR%%/icons/fotoxx.png
-%%DATADIR%%/icons/gallery.png
+%%DATADIR%%/icons/goto.png
%%DATADIR%%/icons/help.png
-%%DATADIR%%/icons/last-page.png
-%%DATADIR%%/icons/next-page.png
-%%DATADIR%%/icons/next-row.png
%%DATADIR%%/icons/next.png
%%DATADIR%%/icons/open.png
-%%DATADIR%%/icons/prev-page.png
-%%DATADIR%%/icons/prev-row.png
%%DATADIR%%/icons/prev.png
-%%DATADIR%%/icons/print.png
%%DATADIR%%/icons/quit.png
%%DATADIR%%/icons/redo.png
+%%DATADIR%%/icons/rotate-left.png
+%%DATADIR%%/icons/rotate-right.png
%%DATADIR%%/icons/save.png
-%%DATADIR%%/icons/saveas.png
+%%DATADIR%%/icons/sort.png
+%%DATADIR%%/icons/sync.G.png
+%%DATADIR%%/icons/top.png
%%DATADIR%%/icons/trash.png
%%DATADIR%%/icons/undo.png
+%%DATADIR%%/icons/up+.png
+%%DATADIR%%/icons/up.png
+%%DATADIR%%/icons/warning.png
%%DATADIR%%/icons/zoom+.png
%%DATADIR%%/icons/zoom-.png
-%%DOCSDIR%%/userguide-en.html
-%%DOCSDIR%%/freshmeat
-%%DOCSDIR%%/fotoxx.man
-%%DOCSDIR%%/TRANSLATIONS
-%%DOCSDIR%%/README
-%%DOCSDIR%%/COPYING
-%%DOCSDIR%%/CHANGES
-%%DOCSDIR%%/images/HDF-paint.jpg
-%%DOCSDIR%%/images/HDR-adjust.jpg
-%%DOCSDIR%%/images/annotate.jpg
-%%DOCSDIR%%/images/brightness-color.jpg
-%%DOCSDIR%%/images/brightness-ramp.png
-%%DOCSDIR%%/images/edit-tags.jpg
-%%DOCSDIR%%/images/expand-brightness.png
-%%DOCSDIR%%/images/gallery image selection.jpg
-%%DOCSDIR%%/images/manage-tags.jpg
-%%DOCSDIR%%/images/navigation.jpeg
-%%DOCSDIR%%/images/pano-dialog.jpeg
-%%DOCSDIR%%/images/rename.jpeg
-%%DOCSDIR%%/images/save-as.jpeg
-%%DOCSDIR%%/images/search-images.jpg
-%%DOCSDIR%%/images/select-area.png
-%%DOCSDIR%%/images/select-whole-image.jpg
-%%DOCSDIR%%/images/select_edit.jpg
-%%DOCSDIR%%/images/sharpen.jpeg
-%%DOCSDIR%%/images/smart-erase.png
-%%DOCSDIR%%/images/stack.png
-%%DOCSDIR%%/images/tone-mapping.png
-%%DOCSDIR%%/images/trim.jpg
-%%DOCSDIR%%/images/watermark.jpg
-%%DATADIR%%/locales/de/fotoxx.po
-%%DATADIR%%/locales/de/zfuncs.po
-%%DATADIR%%/locales/en/fotoxx.po
-%%DATADIR%%/locales/en/zfuncs.po
-%%DATADIR%%/locales/es/fotoxx.po
-%%DATADIR%%/locales/es/zfuncs.po
-%%DATADIR%%/locales/fr/fotoxx.po
-%%DATADIR%%/locales/fr/fotoxx.po.old
-%%DATADIR%%/locales/fr/zfuncs.po
-%%DATADIR%%/locales/gl/fotoxx.po
-%%DATADIR%%/locales/gl/zfuncs.po
-%%DATADIR%%/locales/it/fotoxx.po
-%%DATADIR%%/locales/it/zfuncs.po
-%%DATADIR%%/locales/nl/fotoxx.po
-%%DATADIR%%/locales/nl/zfuncs.po
-%%DATADIR%%/locales/pt/fotoxx.po
-%%DATADIR%%/locales/pt/zfuncs.po
-%%DATADIR%%/locales/ru/fotoxx.po
-%%DATADIR%%/locales/ru/zfuncs.po
-%%DATADIR%%/locales/sv/fotoxx.po
-%%DATADIR%%/locales/sv/zfuncs.po
-%%DATADIR%%/locales/zh_CN/fotoxx.po
-%%DATADIR%%/locales/zh_CN/zfuncs.po
-@dirrm %%DOCSDIR%%/images
-@dirrm %%DOCSDIR%%
-@dirrm %%DATADIR%%/locales/de
-@dirrm %%DATADIR%%/locales/en
-@dirrm %%DATADIR%%/locales/es
-@dirrm %%DATADIR%%/locales/fr
-@dirrm %%DATADIR%%/locales/gl
-@dirrm %%DATADIR%%/locales/it
-@dirrm %%DATADIR%%/locales/nl
-@dirrm %%DATADIR%%/locales/pt
-@dirrm %%DATADIR%%/locales/ru
-@dirrm %%DATADIR%%/locales/sv
-@dirrm %%DATADIR%%/locales/zh_CN
-@dirrm %%DATADIR%%/locales
-@dirrm %%DATADIR%%/icons
-@dirrm %%DATADIR%%
+%%DATADIR%%/locales/translate-ca.po
+%%DATADIR%%/locales/translate-de.po
+%%DATADIR%%/locales/translate-en.po
+%%DATADIR%%/locales/translate-es.po
+%%DATADIR%%/locales/translate-fr.po
+%%DATADIR%%/locales/translate-it.po
+%%DATADIR%%/locales/translate-nl.po
+%%DATADIR%%/locales/translate-pt.po
+%%DATADIR%%/locales/translate-ru.po
+%%DATADIR%%/locales/translate-sv.po
+man/man1/fotoxx.1.gz
+@dirrmtry %%DATADIR%%/locales
+@dirrmtry %%DATADIR%%/icons/edit-funcs
+@dirrmtry %%DATADIR%%/icons
+@dirrmtry %%DATADIR%%/data/images
+@dirrmtry %%DATADIR%%/data/favorites
+@dirrmtry %%DATADIR%%/data
+@dirrmtry %%DATADIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%