git: 0dcc8a5e5059 - main - graphics/fotoxx: the port had been resurrected^Wreadded

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Wed, 22 Dec 2021 04:04:33 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0dcc8a5e5059464da9c8e96077debb130ecc0405

commit 0dcc8a5e5059464da9c8e96077debb130ecc0405
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2021-12-22 04:03:16 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2021-12-22 04:03:16 +0000

    graphics/fotoxx: the port had been resurrected^Wreadded
    
    - Remove offending and needless dependency on `graphics/dcraw',
      `graphics/ufraw' port provides both `dcraw' and `ufraw-batch'
    - Add missing dependency on `graphics/tiff' and put `gnome' on
      the USES list while here
---
 MOVED                                       |  1 -
 graphics/Makefile                           |  1 +
 graphics/fotoxx/Makefile                    | 45 +++++++++++++++++++++++++
 graphics/fotoxx/distinfo                    |  3 ++
 graphics/fotoxx/files/patch-f.combine.cc    | 11 +++++++
 graphics/fotoxx/files/patch-f.file.cc       | 10 ++++++
 graphics/fotoxx/files/patch-f.metadata.cc   | 50 ++++++++++++++++++++++++++++
 graphics/fotoxx/files/patch-f.repair.cc     | 11 +++++++
 graphics/fotoxx/files/patch-fotoxx-15.05.cc | 51 +++++++++++++++++++++++++++++
 graphics/fotoxx/files/patch-zfuncs.cc       | 18 ++++++++++
 graphics/fotoxx/files/patch-zfuncs.h        | 23 +++++++++++++
 graphics/fotoxx/pkg-descr                   |  5 +++
 12 files changed, 228 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index ff33f9f5b1a2..ada668c011c7 100644
--- a/MOVED
+++ b/MOVED
@@ -10693,7 +10693,6 @@ deskutils/ithought||2018-12-21|Has expired: Uses obsolete glib12
 deskutils/gaddr||2018-12-21|Has expired: Uses obsolete glib12
 x11-fonts/gfe||2018-12-21|Has expired: Uses obsolete glib12
 graphics/graphopt||2018-12-21|Has expired: Uses obsolete glib12
-graphics/fotoxx||2018-12-21|Has expired: Broken for more than 6 months
 graphics/gcolor||2018-12-21|Has expired: Uses obsolete glib12
 graphics/danpei||2018-12-21|Has expired: Uses obsolete glib12
 graphics/chbg||2018-12-21|Has expired: Uses obsolete glib12
diff --git a/graphics/Makefile b/graphics/Makefile
index affd4ad72bd9..96bca4299b6a 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -196,6 +196,7 @@
     SUBDIR += fly
     SUBDIR += fortytwo
     SUBDIR += fotofix
+    SUBDIR += fotoxx
     SUBDIR += founts
     SUBDIR += fpc-cairo
     SUBDIR += fpc-graph
diff --git a/graphics/fotoxx/Makefile b/graphics/fotoxx/Makefile
new file mode 100644
index 000000000000..595be66094e8
--- /dev/null
+++ b/graphics/fotoxx/Makefile
@@ -0,0 +1,45 @@
+# Created by: Rod Person <rodperson@rodperson.com>
+
+PORTNAME=	fotoxx
+PORTVERSION=	15.05
+CATEGORIES=	graphics
+MASTER_SITES=	http://freebsd.nsu.ru/distfiles/ \
+		http://fossies.org/linux/misc/legacy/ \
+		http://www.kornelix.com/uploads/1/3/0/3/13035936/
+
+MAINTAINER=	danfe@FreeBSD.org
+COMMENT=	Application to organize and edit image collections
+
+LICENSE=	GPLv3
+
+LIB_DEPENDS=	libtiff.so:graphics/tiff
+RUN_DEPENDS=	xdg-open:devel/xdg-utils \
+		exiftool:graphics/p5-Image-ExifTool \
+		ufraw-batch:graphics/ufraw
+
+USES=		desktop-file-utils gmake gnome pkgconfig
+USE_GNOME=	gtk30
+ALL_TARGET=	fotoxx
+
+PORTDOCS=	*
+PORTDATA=	*
+PLIST_FILES=	bin/fotoxx \
+		man/man1/fotoxx.1.gz \
+		share/appdata/fotoxx.appdata.xml \
+		share/applications/fotoxx.desktop
+
+OPTIONS_DEFINE=	DOCS
+
+post-patch:
+	@${REINPLACE_CMD} -e \
+		's|-ggdb|| ; \
+		 s|-rdynamic|-Wl,-export-dynamic| ; \
+		 s|share/man|man| ; \
+		 s|-lpthread|-lexecinfo|' ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} -e \
+		's|/usr/share/fotoxx|${DATADIR}|' ${WRKSRC}/desktop
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/fotoxx
+
+.include <bsd.port.mk>
diff --git a/graphics/fotoxx/distinfo b/graphics/fotoxx/distinfo
new file mode 100644
index 000000000000..542a7f21292b
--- /dev/null
+++ b/graphics/fotoxx/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1430473829
+SHA256 (fotoxx-15.05.tar.gz) = 65567adc86087a3a8acdebcb0f15ec299cf690a869129825e3d32da7e50c4604
+SIZE (fotoxx-15.05.tar.gz) = 3573278
diff --git a/graphics/fotoxx/files/patch-f.combine.cc b/graphics/fotoxx/files/patch-f.combine.cc
new file mode 100644
index 000000000000..b19d19fbf3f0
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.combine.cc
@@ -0,0 +1,11 @@
+--- f.combine.cc.orig	2015-05-01 09:40:38 UTC
++++ f.combine.cc
+@@ -6475,7 +6475,7 @@ void m_pano_PT(GtkWidget *, cchar *)    
+       goto cleanup;
+    }
+ 
+-   olddir = get_current_dir_name();                                        //  save curr. directory
++   olddir = getcwd(NULL,PATH_MAX);                                         //  save curr. directory
+ 
+    err = chdir(tempdir);                                                   //  use /tmp/fotoxx-xxxxx
+    if (err) {
diff --git a/graphics/fotoxx/files/patch-f.file.cc b/graphics/fotoxx/files/patch-f.file.cc
new file mode 100644
index 000000000000..003f8847e350
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.file.cc
@@ -0,0 +1,10 @@
+--- f.file.cc.orig	2015-05-01 09:40:38 UTC
++++ f.file.cc
+@@ -74,6 +74,7 @@
+ 
+ #define EX extern                                                          //  disable extern declarations
+ #include "fotoxx.h"                                                        //  (variables in fotoxx.h are refs)
++#include <sys/wait.h>
+ 
+ /**************************************************************************/
+ 
diff --git a/graphics/fotoxx/files/patch-f.metadata.cc b/graphics/fotoxx/files/patch-f.metadata.cc
new file mode 100644
index 000000000000..223e9b48a66b
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.metadata.cc
@@ -0,0 +1,50 @@
+--- f.metadata.cc.orig	2015-05-01 09:40:38 UTC
++++ f.metadata.cc
+@@ -92,6 +92,11 @@
+ 
+ #define EX extern                                                          //  enable extern declarations
+ #include "fotoxx.h"                                                        //  (variables in fotoxx.h are refs)
++#include <sys/wait.h>
++
++#ifndef ECOMM
++#define ECOMM EIO
++#endif
+ 
+ /**************************************************************************/
+ 
+@@ -5911,7 +5917,7 @@ int get_sxrec(sxrec_t &sxrec, cchar *fil
+       strcpy(sxrec.size,"null");
+ 
+    if (! sxrec.tags)
+-      sxrec.tags = zstrdup("null"tagdelimB);
++      sxrec.tags = zstrdup("null" tagdelimB);
+ 
+    if (! sxrec.capt)
+       sxrec.capt = zstrdup("null");
+@@ -6118,7 +6124,7 @@ int put_sxrec(sxrec_t *sxrec, cchar *fil
+ 
+          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)
+@@ -6270,7 +6276,7 @@ int read_sxrec_seq(sxrec_t &sxrec, int &
+       strcpy(sxrec.size,"null");
+ 
+    if (! sxrec.tags)
+-      sxrec.tags = zstrdup("null"tagdelimB);
++      sxrec.tags = zstrdup("null" tagdelimB);
+ 
+    if (! sxrec.capt)
+       sxrec.capt = zstrdup("null");
+@@ -6381,7 +6387,7 @@ int write_sxrec_seq(sxrec_t *sxrec, int 
+ 
+    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-f.repair.cc b/graphics/fotoxx/files/patch-f.repair.cc
new file mode 100644
index 000000000000..b7b073846439
--- /dev/null
+++ b/graphics/fotoxx/files/patch-f.repair.cc
@@ -0,0 +1,11 @@
+--- f.repair.cc.orig	2015-05-01 09:40:38 UTC
++++ f.repair.cc
+@@ -2055,7 +2055,7 @@ void m_smart_erase(GtkWidget *, const ch
+ int smart_erase_dialog_event(zdialog *zd, const char *event)               //  overhauled
+ {
+    void smart_erase_func(int mode);
+-   void smart_erase_blur(float radius);
++   int smart_erase_blur(float radius);
+ 
+    float       radius;
+    int         cc;
diff --git a/graphics/fotoxx/files/patch-fotoxx-15.05.cc b/graphics/fotoxx/files/patch-fotoxx-15.05.cc
new file mode 100644
index 000000000000..73eaa585bfc1
--- /dev/null
+++ b/graphics/fotoxx/files/patch-fotoxx-15.05.cc
@@ -0,0 +1,51 @@
+--- fotoxx-15.05.cc.orig	2015-05-01 09:40:38 UTC
++++ fotoxx-15.05.cc
+@@ -139,6 +139,8 @@
+ 
+ #define EX                                                                 //  disable extern declarations
+ #include "fotoxx.h"                                                        //  (variables in fotoxx.h are defined)
++#include <sys/types.h>
++#include <sys/sysctl.h>
+ 
+ /**************************************************************************/
+ 
+@@ -335,7 +337,9 @@ int initzfunc(void *)
+    char     procfile[20], buff[200];
+    char     KBshortsU[200], KBshortsI[200];
+    char     tonefile[200], badnews[200];
++#ifdef __linux__
+    double   freememory, cachememory;
++#endif
+    float    exifver = 0;
+    FILE     *fid;
+    STATB    statb;
+@@ -445,6 +449,7 @@ int initzfunc(void *)
+ 
+    //  check free memory and suggest image size limits
+ 
++#ifdef __linux__
+    parseprocfile("/proc/meminfo","MemFree:",&freememory,0);                //  get amount of free memory
+    parseprocfile("/proc/meminfo","Cached:",&cachememory,0);
+    freememory = (freememory + cachememory) / 1024;                         //  megabytes
+@@ -452,6 +457,7 @@ int initzfunc(void *)
+    printz("image size limits for good performance: \n");
+    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
++#endif
+ 
+    //  update KB shortcuts if needed
+ 
+@@ -531,7 +537,13 @@ int initzfunc(void *)
+    screenhh = gdk_screen_get_height(screen);
+    printz("screen width: %d  height: %d \n",screenww,screenhh);
+ 
++#ifdef __linux__
+    NWT = get_nprocs();                                                     //  get SMP CPU count
++#endif
++#ifdef __FreeBSD__
++   size_t	len = sizeof(NWT);
++   sysctlbyname("hw.ncpu",&NWT,&len,NULL,0);
++#endif
+    if (NWT <= 0) NWT = 2;
+    if (NWT > max_threads) NWT = max_threads;                               //  compile time limit
+    printz("using %d threads \n",NWT);
diff --git a/graphics/fotoxx/files/patch-zfuncs.cc b/graphics/fotoxx/files/patch-zfuncs.cc
new file mode 100644
index 000000000000..55efd163c701
--- /dev/null
+++ b/graphics/fotoxx/files/patch-zfuncs.cc
@@ -0,0 +1,18 @@
+--- zfuncs.cc.orig	2015-05-01 09:40:38 UTC
++++ zfuncs.cc
+@@ -262,6 +262,7 @@ char *zstrdup(cchar *string, int addcc)
+ 
+ void zmalloc_report()
+ {
++#ifdef __linux__
+    using namespace zfuncs;
+ 
+    static double     ptime = 0;
+@@ -282,6 +283,7 @@ void zmalloc_report()
+ 
+    ptime = jobtime();                                                      //  reset some counters
+    Nmalloc = Nstrdup = Nfree = 0;
++#endif
+ 
+    return;
+ }
diff --git a/graphics/fotoxx/files/patch-zfuncs.h b/graphics/fotoxx/files/patch-zfuncs.h
new file mode 100644
index 000000000000..b8f37f435ee6
--- /dev/null
+++ b/graphics/fotoxx/files/patch-zfuncs.h
@@ -0,0 +1,23 @@
+--- zfuncs.h.orig	2015-05-01 09:40:38 UTC
++++ zfuncs.h
+@@ -22,17 +22,18 @@
+ 
+ //     zfuncs.h   version  v.6.1
+ 
+-#include <sys/sysinfo.h>
++//#include <sys/sysinfo.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
+ #include <sys/resource.h>
+ #include <sys/file.h>
+ #include <sys/utsname.h>
+-#include <malloc.h>
++//#include <malloc.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <sys/wait.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <math.h>
diff --git a/graphics/fotoxx/pkg-descr b/graphics/fotoxx/pkg-descr
new file mode 100644
index 000000000000..45753cbc7625
--- /dev/null
+++ b/graphics/fotoxx/pkg-descr
@@ -0,0 +1,5 @@
+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://www.kornelix.com/fotoxx.html