Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/wmcube/Makefile,v
retrieving revision 1.28
diff -u -p -u -p -r1.28 Makefile
--- Makefile	12 Jul 2019 20:49:54 -0000	1.28
+++ Makefile	4 Feb 2021 23:17:45 -0000
@@ -2,29 +2,40 @@
 
 COMMENT=		wm-dockapp; shows rotating 3d-object and CPU load
 
-DISTNAME=		wmcube-0.98
-REVISION=		4
+DISTNAME=		wmcube-1.0.2
+FIX_EXTRACT_PERMISSIONS=	Yes
+
 CATEGORIES=		sysutils x11 x11/windowmaker
 
-HOMEPAGE=		http://kling.mine.nu/wmcube.htm
+HOMEPAGE=		https://www.dockapps.net/wmcube
 
-# GPL
-PERMIT_PACKAGE=	Yes
-WANTLIB=		X11 Xext Xpm c m xcb
+# GPLv3
+PERMIT_PACKAGE=		Yes
+WANTLIB=		X11 Xext Xpm c m
 
-MASTER_SITES=		http://kling.mine.nu/files/
+MASTER_SITES=		https://www.dockapps.net/download/
 
 NO_TEST=		Yes
 
-MAKE_FLAGS=		CC="${CC}"
+MAKE_FLAGS+=		CC="${CC}" CFLAGS="${CFLAGS}" LIBDIR="${LDFLAGS}"
 MAKE_FILE=		Makefile.OPENBSD
-WRKDIST=		${WRKDIR}/wmcube
+
+CFLAGS+=		-I${X11BASE}/include -DOPENBSD
+
+LDFLAGS+=		-L${X11BASE}/lib
+
 WRKSRC=			${WRKDIST}/wmcube
 
 3D_OBJECTS=		${PREFIX}/share/wmcube
 
-post-install:
+pre-configure:
+	@${SUBST_CMD} ${WRKSRC}/wmcube.c
+
+# nicer than upstream's install target
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/wmcube ${PREFIX}/bin
+	${INSTALL_MAN} ${WRKSRC}/wmcube.1 ${PREFIX}/man/man1
 	${INSTALL_DATA_DIR} ${3D_OBJECTS}
-	${INSTALL_DATA} ${WRKDIST}/3dObjects/* ${3D_OBJECTS}
+	${INSTALL_DATA} ${WRKDIST}/3D-objects/* ${3D_OBJECTS}
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/sysutils/wmcube/distinfo,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 distinfo
--- distinfo	18 Jan 2015 03:15:16 -0000	1.4
+++ distinfo	4 Feb 2021 23:17:45 -0000
@@ -1,2 +1,2 @@
-SHA256 (wmcube-0.98.tar.gz) = U8Kzq+5SuHXb89GoZ6wbkqBciPIguOKdglPdFSyQEKQ=
-SIZE (wmcube-0.98.tar.gz) = 38310
+SHA256 (wmcube-1.0.2.tar.gz) = Xp8VoZArFSNozRWeLzmZWNbQLPP/yee8mI0KrxGmOYk=
+SIZE (wmcube-1.0.2.tar.gz) = 56908
Index: patches/patch-wmcube_Makefile_OPENBSD
===================================================================
RCS file: patches/patch-wmcube_Makefile_OPENBSD
diff -N patches/patch-wmcube_Makefile_OPENBSD
--- patches/patch-wmcube_Makefile_OPENBSD	28 Aug 2001 14:08:57 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-$OpenBSD: patch-wmcube_Makefile_OPENBSD,v 1.2 2001/08/28 14:08:57 wilfried Exp $
---- wmcube/Makefile.OPENBSD.orig	Sun Oct  8 22:38:46 2000
-+++ wmcube/Makefile.OPENBSD	Mon Aug 27 19:11:27 2001
-@@ -1,37 +1,34 @@
--CC = gcc
--OS = -DOPENBSD
--
--LIBDIR = -L/usr/X11R6/lib -L./libdocapp/
--
--# Edit OSLIBS as appropriate to include OS specific libraries.
--
--OSLIBS = 
--LIBS   = -lXpm -lXext -lX11 -lm $(OSLIBS)
--INCLUDES = -I/usr/X11R6/include
--CFLAGS = -Wall -O2 $(OS) $(INCLUDES)
--
--OBJS =	wmcube.o \
--		../wmgeneral/wmgeneral.o \
--		../wmgeneral/misc.o \
--		../wmgeneral/list.o
--
--.c.o:
--	$(CC) $(CFLAGS) $(INCDIR) -c $< -o $*.o
--
--wmcube: $(OBJS)
--	$(CC) -o wmcube $^ -lXext $(LIBDIR) $(LIBS) $>
--
--all:: wmcube
--
--clean::
--	for i in $(OBJS) ; do \
--		rm -f $$i ; \
--	done
--	rm -f wmcube
--	rm -f *~
--
--install:: wmcube
--	cp -f wmcube /usr/local/bin/
--	chmod 755 /usr/local/bin/wmcube
--	chown root:root /usr/local/bin/wmcube
--	@echo "wmCube installation finished..."
-+CC?= cc
-+OS = -DOPENBSD
-+
-+LIBDIR = -L${X11BASE}/lib -L./libdocapp/
-+
-+# Edit OSLIBS as appropriate to include OS specific libraries.
-+
-+OSLIBS =
-+LIBS   = -lXpm -lXext -lX11 -lm $(OSLIBS)
-+INCLUDES = -I${X11BASE}/include
-+CFLAGS += $(OS) $(INCLUDES)
-+
-+OBJS =	wmcube.o \
-+		../wmgeneral/wmgeneral.o \
-+		../wmgeneral/misc.o \
-+		../wmgeneral/list.o
-+
-+.c.o:
-+	$(CC) $(CFLAGS) $(INCDIR) -c $< -o $*.o
-+
-+wmcube: $(OBJS)
-+	$(CC) -o wmcube $(OBJS) -lXext $(LIBDIR) $(LIBS)
-+
-+all:: wmcube
-+
-+clean::
-+	for i in $(OBJS) ; do \
-+		rm -f $$i ; \
-+	done
-+	rm -f wmcube
-+	rm -f *~
-+
-+install:: wmcube
-+	$(BSD_INSTALL_PROGRAM) wmcube $(PREFIX)/bin
Index: patches/patch-wmcube_wmcube_c
===================================================================
RCS file: /cvs/ports/sysutils/wmcube/patches/patch-wmcube_wmcube_c,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-wmcube_wmcube_c
--- patches/patch-wmcube_wmcube_c	17 Sep 2014 14:34:39 -0000	1.4
+++ patches/patch-wmcube_wmcube_c	4 Feb 2021 23:17:45 -0000
@@ -1,52 +1,62 @@
 $OpenBSD: patch-wmcube_wmcube_c,v 1.4 2014/09/17 14:34:39 espie Exp $
---- wmcube/wmcube.c.orig	Mon Oct 23 22:11:47 2000
-+++ wmcube/wmcube.c	Wed Sep 17 16:33:06 2014
-@@ -858,6 +858,10 @@ void print_help() {
- 	printf("  -n  : exclude \"nice\" processes. (default OFF)\n");
+Index: wmcube/wmcube.c
+--- wmcube/wmcube.c.orig
++++ wmcube/wmcube.c
+@@ -407,7 +407,7 @@ void set_plugin()
+ {
+ 	strcpy(obj_filename,plugin);
+ 	if (access (obj_filename, R_OK) == -1) {
+-		strcpy(obj_filename,"/usr/share/wmcube/");
++		strcpy(obj_filename,"${LOCALBASE}/share/wmcube/");
+ 		strcat(obj_filename,plugin);
+ 	}
+ }
+@@ -939,6 +939,10 @@ void print_help() {
+ 	printf("  -n   : exclude \"nice\" processes (default OFF).\n");
  #endif
  
 +#ifdef OPENBSD
 +	printf("  -n  : exclude \"nice\" processes. (default OFF)\n");
 +#endif
 +
- 	printf("  -b  : draw the cube in a brighter color. (default OFF)\n");
- 	printf("  -i  : invert cube speed. (default OFF)\n");
- 	printf("  -p  : do not display cpu-load (default OFF)\n");
-@@ -913,7 +917,7 @@ int loadobj(char *filename) {
+ 	printf("  -b   : draw the cube in a brighter color (default OFF).\n");
+ 	printf("  -i   : invert cube speed (default OFF).\n");
+ 	printf("  -p   : do not display the CPU load (default OFF).\n");
+@@ -997,7 +1001,7 @@ int loadobj(char *filename) {
  		exit(0);
  	}
  
--	fscanf(fp,"%s",tmp);
-+	fscanf(fp,"%63s",tmp);
+-	if (fscanf(fp,"%s",tmp) < 1)
++	if (fscanf(fp,"%63s",tmp) < 1)
+ 		printf("WARNING: Could not read first line of object-file (%s).\n",filename);
  	
- 	if (strcmp(tmp,"WMCUBE_COORDINATES") != 0) { 
- 		printf("\nError in objectfile: it must start with WMCUBE_COORDINATES\n\n");
-@@ -921,7 +925,7 @@ int loadobj(char *filename) {
+ 	if (strcmp(tmp,"WMCUBE_COORDINATES") != 0) {
+@@ -1006,7 +1010,7 @@ int loadobj(char *filename) {
  		exit(0);
  	}
  
--	fscanf(fp,"%s",tmp);
-+	fscanf(fp,"%63s",tmp);
- 	counter = atoi(tmp);
+-	if (fscanf(fp,"%s",tmp) < 1)
++	if (fscanf(fp,"%63s",tmp) < 1)
+ 		printf("WARNING: Could not read second line of object-file (%s).\n",filename);
  
  	while ((strcmp(tmp,"WMCUBE_LINES") != 0) && (strcmp(tmp,"WMCUBE_PLANES") != 0)) {		
-@@ -938,7 +942,7 @@ int loadobj(char *filename) {
+@@ -1024,7 +1028,7 @@ int loadobj(char *filename) {
  			fclose(fp);
  			exit(0);
  		}
--		fscanf(fp,"%s",tmp);
-+		fscanf(fp,"%63s",tmp);
+-		if (fscanf(fp,"%s",tmp) < 1)
++		if (fscanf(fp,"%63s",tmp) < 1)
+ 			printf("WARNING: Could not read next line of object-file (%s).\n",filename);
  
  		if (feof(fp)) {
- 			printf("\nError in objectfile: you must have a section WMCUBE_LINES or WMCUBE_PLANES\n\n");
-@@ -1272,17 +1276,45 @@ int calc_cpu_total() {
- }
+@@ -1371,18 +1375,46 @@ int calc_cpu_total() {
  
  #elif defined OPENBSD
+ 
 +#include <sys/param.h>
 +#include <sys/sysctl.h>
 +#include <sys/sched.h>
- 
++
  int init_calc_cpu()
  {
  	return 0;
@@ -54,19 +64,19 @@ $OpenBSD: patch-wmcube_wmcube_c,v 1.4 20
  
 -int calc_cpu_total() {
 -        double avenrun[3];
--        
--        (void) getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0]));
--        return(((5.0*avenrun[0] + 0.5) > 50) ? 50 : (5.0*avenrun[0] + 0.5))*2;
 +int calc_cpu_total()
 +{
 +	int total, used, t=0;
 +	static int previous_total = 0, previous_used = 0;
 +	int cpu,nice,system,idle;
 +	unsigned long int cpu_time[CPUSTATES];
-+
+ 
+-        (void) getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0]));
+-        return(((5.0*avenrun[0] + 0.5) > 50) ? 50 : (5.0*avenrun[0] + 0.5))*2;
+-}
 +	int mib[2];
 +	size_t size;
-+
+ 
 +	mib[0] = CTL_KERN;
 +	mib[1] = KERN_CPTIME;
 +	size = sizeof (cpu_time);
@@ -87,6 +97,7 @@ $OpenBSD: patch-wmcube_wmcube_c,v 1.4 20
 +	previous_used = used;
 +
 +	return t;
- }
- 
++}
  
+ #elif defined NETBSD /* END OPENBSD */
+ #include <sys/sched.h>
Index: patches/patch-wmgeneral_list_h
===================================================================
RCS file: patches/patch-wmgeneral_list_h
diff -N patches/patch-wmgeneral_list_h
--- patches/patch-wmgeneral_list_h	24 Apr 2017 02:14:04 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-$OpenBSD: patch-wmgeneral_list_h,v 1.1 2017/04/24 02:14:04 jca Exp $
---- wmgeneral/list.h.orig	Sun Oct  8 22:38:45 2000
-+++ wmgeneral/list.h	Mon Apr 24 04:11:07 2017
-@@ -29,11 +29,7 @@ Boston, MA 02111-1307, USA.  */
- #ifndef __LIST_H_
- #define __LIST_H_
- 
--#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
--# define INLINE inline
--#else
--# define INLINE
--#endif
-+#define INLINE
- 
- typedef struct LinkedList {
-   void *head;
Index: patches/patch-wmgeneral_wmgeneral_c
===================================================================
RCS file: patches/patch-wmgeneral_wmgeneral_c
diff -N patches/patch-wmgeneral_wmgeneral_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-wmgeneral_wmgeneral_c	4 Feb 2021 23:17:45 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+Fix the build with -fno-common
+
+Index: wmgeneral/wmgeneral.c
+--- wmgeneral/wmgeneral.c.orig
++++ wmgeneral/wmgeneral.c
+@@ -67,6 +67,7 @@ Window		iconwin, win;
+ GC			NormalGC;
+ XpmIcon		wmgen;
+ Pixmap		pixmask;
++Display		*display;
+ 
+   /*****************/
+  /* Mouse Regions */
Index: patches/patch-wmgeneral_wmgeneral_h
===================================================================
RCS file: patches/patch-wmgeneral_wmgeneral_h
diff -N patches/patch-wmgeneral_wmgeneral_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-wmgeneral_wmgeneral_h	4 Feb 2021 23:17:45 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Fix the build with -fno-common
+
+Index: wmgeneral/wmgeneral.h
+--- wmgeneral/wmgeneral.h.orig
++++ wmgeneral/wmgeneral.h
+@@ -36,7 +36,7 @@ typedef struct {
+  /* Global variable */
+ /*******************/
+ 
+-Display		*display;
++extern Display		*display;
+ 
+   /***********************/
+  /* Function Prototypes */
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/sysutils/wmcube/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 PLIST
--- pkg/PLIST	18 Sep 2004 13:11:38 -0000	1.4
+++ pkg/PLIST	4 Feb 2021 23:17:45 -0000
@@ -1,6 +1,7 @@
 @comment $OpenBSD: PLIST,v 1.4 2004/09/18 13:11:38 espie Exp $
 @conflict wmcube-gdk-*
-bin/wmcube
+@bin bin/wmcube
+@man man/man1/wmcube.1
 share/wmcube/
 share/wmcube/2planes-solid.wmc
 share/wmcube/4d.wmc
@@ -8,8 +9,11 @@ share/wmcube/8star-small.wmc
 share/wmcube/8star.wmc
 share/wmcube/CONTRIBUTE
 share/wmcube/README
+share/wmcube/X-lines.wmc
+share/wmcube/X-planes.wmc
 share/wmcube/ball-solid.wmc
 share/wmcube/ball.wmc
+share/wmcube/beryllium.wmc
 share/wmcube/celtic.wmc
 share/wmcube/cross.wmc
 share/wmcube/cross2-solid.wmc
@@ -33,6 +37,9 @@ share/wmcube/peace.wmc
 share/wmcube/pyramid.wmc
 share/wmcube/radioactive.wmc
 share/wmcube/shield.wmc
+share/wmcube/slackware1.wmc
+share/wmcube/slackware2.wmc
+share/wmcube/slackware3.wmc
 share/wmcube/spaceshuttle.wmc
 share/wmcube/spiral.wmc
 share/wmcube/star.wmc
