Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] Eliminate libupnp dependencies
@ 2021-01-11 16:58 ahesford
  2021-01-11 17:07 ` [PR PATCH] [Updated] " ahesford
  2021-01-12  4:17 ` [PR PATCH] [Closed]: " ahesford
  0 siblings, 2 replies; 3+ messages in thread
From: ahesford @ 2021-01-11 16:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1050 bytes --]

There is a new pull request by ahesford against master on the void-packages repository

https://github.com/ahesford/void-packages upnp
https://github.com/void-linux/void-packages/pull/27829

Eliminate libupnp dependencies
`djmount` is ancient (from 2006) and, after the initial packaging, has only ever been revbumped to rebuild for dependency updates. It refuses to build against `libupnp1.8` or newer and is holding back our `libupnp`.

`retroshare` has some upstream patches to build against `libupnp1.8` but they do not apply cleanly to the release version. However, the package builds against `miniupnpc`, so let's do that. We can revisit newer `libupnp` later if there is a compelling reason and they cut a new release.

This paves the way for updating `libupnp` to a modern version. Maybe we can unify the `libupnp` if we can clean up `gerbera`, `mpd` and `vlc`. If not, maybe `libupnp` should be a meta that pulls in the latest versioned package.

A patch file from https://github.com/void-linux/void-packages/pull/27829.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-upnp-27829.patch --]
[-- Type: text/x-diff, Size: 14078 bytes --]

From 0230b6cf390abfcd4dfceb0493d886bf06e9387a Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 11 Jan 2021 10:46:27 -0500
Subject: [PATCH 1/2] djmount: remove package

Upstream has not been updated since 2006-08-27.
---
 srcpkgs/djmount/INSTALL.msg                   |   1 +
 srcpkgs/djmount/patches/000_djmount.1.diff    | 105 ------------------
 .../djmount/patches/001-libupnp-1.6.6.diff    |  31 ------
 .../patches/003-support-fstab-mounting.diff   |  96 ----------------
 .../patches/djmount-0.71-includes.patch       |  10 --
 srcpkgs/djmount/patches/musl.patch            |  11 --
 srcpkgs/djmount/template                      |  16 +--
 7 files changed, 4 insertions(+), 266 deletions(-)
 create mode 100644 srcpkgs/djmount/INSTALL.msg
 delete mode 100644 srcpkgs/djmount/patches/000_djmount.1.diff
 delete mode 100644 srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
 delete mode 100644 srcpkgs/djmount/patches/003-support-fstab-mounting.diff
 delete mode 100644 srcpkgs/djmount/patches/djmount-0.71-includes.patch
 delete mode 100644 srcpkgs/djmount/patches/musl.patch

diff --git a/srcpkgs/djmount/INSTALL.msg b/srcpkgs/djmount/INSTALL.msg
new file mode 100644
index 00000000000..32dd66613a6
--- /dev/null
+++ b/srcpkgs/djmount/INSTALL.msg
@@ -0,0 +1 @@
+djmount is no longer provided by Void Linux
diff --git a/srcpkgs/djmount/patches/000_djmount.1.diff b/srcpkgs/djmount/patches/000_djmount.1.diff
deleted file mode 100644
index a20589a339d..00000000000
--- a/srcpkgs/djmount/patches/000_djmount.1.diff
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-# Description: Adds djmount.1 manpage which isn't included in original sources.
-# Forwarded: http://sourceforge.net/tracker/index.php?func=detail&aid=2834139&group_id=142039&atid=751320
-# Author: Dario Minnucci <midget@debian.org>
-# Last-Update: 2010-01-24
-#
---- djmount.1	1970-01-01 01:00:00.000000000 +0100
-+++ djmount.1	2009-08-31 19:38:36.289425318 +0200
-@@ -0,0 +1,96 @@
-+.\"                                      Hey, EMACS: -*- nroff -*-
-+.\" First parameter, NAME, should be all caps
-+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-+.\" other parameters are allowed: see man(7), man(1)
-+.TH DJMOUNT 1 "August 31, 2009"
-+.\" Please adjust this date whenever revising the manpage.
-+.\"
-+.\" Some roff macros, for reference:
-+.\" .nh        disable hyphenation
-+.\" .hy        enable hyphenation
-+.\" .ad l      left justify
-+.\" .ad b      justify to both left and right margins
-+.\" .nf        disable filling
-+.\" .fi        enable filling
-+.\" .br        insert line break
-+.\" .sp <n>    insert n+1 empty lines
-+.\" for manpage-specific macros, see man(7)
-+.SH NAME
-+djmount \- file system client for mounting network media servers
-+.SH SYNOPSIS
-+.B djmount
-+.RI [ options ] " mountpoint"
-+.br
-+.SH DESCRIPTION
-+This manual page describes briefly the
-+.B djmount
-+command.
-+.PP
-+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
-+.\" respectively.
-+This package provides a client for Universal Plug'n'Play (UPnP) Audio-Visual MediaServers.  It discovers all compatible UPnP AV devices on the network automatically and mounts their media content as a file system using FUSE.
-+
-+.SH OPTIONS
-+This program follows the usual GNU command line syntax, with long
-+options starting with two dashes (`-').
-+A summary of options is included below.
-+For a complete description, see the Info files.
-+
-+.TP
-+.B \-d[levels]
-+enable debug output (implies \-f)
-+
-+.TP
-+.B \-f
-+foreground operation (default: daemonized)
-+
-+.TP
-+.B \-h, \-\-help
-+print this help, then exit
-+
-+.TP
-+.B \-\-version
-+print version number, then exit
-+
-+.TP
-+.B \-o [options]
-+mount options (see below)
-+
-+
-+.TP
-+Mount options (one or more comma separated options):
-+
-+ iocharset=<charset>    filenames encoding (default: from environment)
-+ playlists              use playlists for AV files, instead of plain files
-+ search_history=<size>  number of remembered searches (default: 100)
-+                        (set to 0 to disable search)
-+
-+.TP
-+See FUSE documentation for the following mount options:
-+
-+ default_permissions    enable permission checking by kernel
-+ allow_other            allow access to other users
-+ allow_root             allow access to root
-+ kernel_cache           cache files in kernel
-+ nonempty               allow mounts over non-empty file/dir
-+ fsname=NAME            set filesystem name in mtab
-+
-+
-+.TP
-+Debug levels are one or more comma separated words:
-+
-+ upnperr, upnpall: increasing level of UPnP traces
-+ error, warn, info, debug: increasing level of djmount traces
-+ fuse: activates FUSE traces
-+ leak, leakfull: enable talloc leak reports at exit
-+ '\-d' alone defaults to 'upnpall, debug, fuse, leak' which is all traces.
-+
-+
-+.SH SEE ALSO
-+.BR fusermount (1)
-+.SH AUTHOR
-+djmount was written by Rémi Turboult <r3mi@users.sourceforge.net>.
-+.PP
-+This manual page was written by Dario Minnucci <midget@debian.org>,
-+for the Debian project (and may be used by others).
diff --git a/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff b/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
deleted file mode 100644
index aebc9dd22c5..00000000000
--- a/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Description: Update libupnp API for 1.6.x.
-#   Between libupnp2 and libupnp3 (pupnp 1.4.x and 1.6.x) the function
-#   SetLogFileNames was renamed to UpnpSetLogFileNames.
-# Author: nick@leverton.org
-# Bug-Debian: 581879 
-#
---- djmount/fuse_main.c	2010-05-16 21:40:56.000000000 +0100
-+++ djmount/fuse_main.c	2010-05-16 21:43:55.000000000 +0100
-@@ -616,7 +616,7 @@
- 	}  
- 	Log_Colorize (true);
- #if UPNP_HAVE_DEBUG
--	SetLogFileNames ("/dev/null", "/dev/null");
-+	UpnpSetLogFileNames ("/dev/null", "/dev/null");
- #endif
- 	
- 	/*
-@@ -710,10 +710,10 @@
- 					Log_SetMaxLevel (LOG_ERROR);
- #if UPNP_HAVE_DEBUG
- 				} else if (strcmp (s, "upnperr") == 0) {
--					SetLogFileNames ("/dev/stdout", 
-+					UpnpSetLogFileNames ("/dev/stdout",
- 							 "/dev/null");
- 				} else if (strcmp (s, "upnpall") == 0) {
--					SetLogFileNames ("/dev/stdout", 
-+					UpnpSetLogFileNames ("/dev/stdout",
- 							 "/dev/stdout");
- #endif
- 				} else {
diff --git a/srcpkgs/djmount/patches/003-support-fstab-mounting.diff b/srcpkgs/djmount/patches/003-support-fstab-mounting.diff
deleted file mode 100644
index 05a1e6f8539..00000000000
--- a/srcpkgs/djmount/patches/003-support-fstab-mounting.diff
+++ /dev/null
@@ -1,96 +0,0 @@
-Description: Support /etc/fstab mounting
-Forwarded: https://sourceforge.net/tracker/?func=detail&aid=3514280&group_id=142039&atid=751317
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660098
-Author: Kevin Vargo <vargok@yahoo.com>
-Last-Update: 2012-04-02
---- djmount/fuse_main.c	2006-08-27 16:12:20.000000000 -0400
-+++ djmount/fuse_main.c	2011-12-23 15:39:29.000000000 -0500
-@@ -529,6 +529,7 @@
-      "    --version              print version number, then exit\n"
-      "    -o [options]           mount options (see below)\n"
-      "    -d[levels]             enable debug output (implies -f)\n"
-+     "    -s                     sloppy -- ignore unknown options\n"
-      "    -f                     foreground operation (default: daemonized)\n"
-      "\n"
-      "Mount options (one or more comma separated options) :\n"
-@@ -538,6 +539,7 @@
-      "    playlists              use playlists for AV files, instead of plain files\n"
-      "    search_history=<size>  number of remembered searches (default: %d)\n"
-      "                           (set to 0 to disable search)\n"
-+     "    sloppy                 ignore unknown options (e.g., for /etc/fstab)\n"
-      "\n", DEFAULT_SEARCH_HISTORY_SIZE);
-   fprintf 
-     (stream,
-@@ -635,6 +637,9 @@
- 	Log_Printf (LOG_DEBUG, "  Fuse option = %s", fuse_argv[fuse_argc]); \
- 	fuse_argc++
- 
-+	//Ignore unknown options "sloppy" -- mount -s
-+	bool options_sloppy = false;
-+
- 	int opt = 1;
- 	char* o;
- 	while ((o = argv[opt++])) {
-@@ -646,6 +651,9 @@
- 			
- 		} else if (strcmp(o, "-f") == 0) {
- 			background = false;
-+			
-+		} else if (strcmp(o, "-s") == 0) {
-+			options_sloppy = true;
- 
- 		} else if (*o != '-') { 
- 			// mount point
-@@ -657,6 +665,10 @@
- 			char* options_copy = strdup (options);
- 			char* tokptr = 0;
- 			char* s;
-+
-+			char** unknown_options = talloc_size(tmp_ctx, sizeof(char) * strlen(options_copy));
-+			int unknown_ptr = -1;
-+
- 			for (s = strtok_r (options_copy, ",", &tokptr); 
- 			     s != NULL; 
- 			     s = strtok_r (NULL, ",", &tokptr)) {
-@@ -669,16 +681,39 @@
- 				} else if (strncmp(s, "search_history=", 15)
- 					   == 0) {
- 					search_history_size = atoi (s+15);
-+				//check for '-s|-o sloppy' -- ignore unknown options
-+				} else if (strncmp(s, "sloppy", 15) == 0 ||
-+						(strlen(s) == 1 && strncmp(s, "s", 1) == 0)) {
-+					options_sloppy = true;
- 				} else if (strncmp(s, "fsname=", 7) == 0 ||
- 					   strstr (FUSE_ALLOWED_OPTIONS, s)) {
- 					FUSE_ARG ("-o");
- 					FUSE_ARG (talloc_strdup (tmp_ctx, s));
- 				} else {
-+					//Record unknown options for analysis, after we're sure
-+					//we don't see '-o sloppy'
-+					unknown_options[++unknown_ptr] = strdup(s);
-+				}
-+			}
-+
-+			//Now, we should know if we have invalid option(s), or can
-+			//ignore:
-+			if (unknown_ptr >= 0) {
-+				//If debug...
-+				int i = 0;
-+				for (i = 0; i <= unknown_ptr; i++) {
-+					Log_Printf (LOG_WARNING, "Found unknown option = %s%s",
-+						unknown_options[i], (options_sloppy ? "; ignoring" : ""));
-+				}
-+				//If 'sloppy' is not enabled...
-+				if (! options_sloppy) {
- 					bad_usage (argv[0], 
--						   "unknown mount option '%s'",
--						   s); // ---------->
-+						   "unknown mount option '%s' (and [-s|-o sloppy] not provided)",
-+						   unknown_options[0]); // ---------->
- 				}
- 			}
-+			talloc_free(unknown_options);
-+
- 			free (options_copy);
- 			Log_Printf (LOG_INFO, "  Mount options = %s", options);
- 			
diff --git a/srcpkgs/djmount/patches/djmount-0.71-includes.patch b/srcpkgs/djmount/patches/djmount-0.71-includes.patch
deleted file mode 100644
index 36cf3be000c..00000000000
--- a/srcpkgs/djmount/patches/djmount-0.71-includes.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- djmount/upnp_util.c.jx	2006-08-27 16:12:20.000000000 -0400
-+++ djmount/upnp_util.c	2011-05-31 12:30:42.980161484 -0400
-@@ -28,6 +28,7 @@
- #	include <config.h>
- #endif
- 
-+#include "upnp.h"
- #include "upnp_util.h"
- #include "log.h"
- #include "xml_util.h"
diff --git a/srcpkgs/djmount/patches/musl.patch b/srcpkgs/djmount/patches/musl.patch
deleted file mode 100644
index 14084beebea..00000000000
--- a/srcpkgs/djmount/patches/musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- djmount/cache.h.orig	2016-04-25 08:49:55.265766330 +0200
-+++ djmount/cache.h	2016-04-25 08:50:06.728886696 +0200
-@@ -25,7 +25,7 @@
- 
- #include <stdlib.h>
- #include <stdbool.h>
--
-+#include <sys/time.h>
- 
- /******************************************************************************
-  * @var Cache
diff --git a/srcpkgs/djmount/template b/srcpkgs/djmount/template
index b0ef3b59c33..bd3ff5733a9 100644
--- a/srcpkgs/djmount/template
+++ b/srcpkgs/djmount/template
@@ -1,19 +1,9 @@
 # Template file for 'djmount'
 pkgname=djmount
 version=0.71
-revision=7
-build_style=gnu-configure
-configure_args="--with-external-libupnp --with-external-talloc"
-hostmakedepends="pkg-config"
-makedepends="fuse-devel talloc-devel libupnp-devel readline-devel"
-short_desc="Mount MediaServers content as a Linux file system"
+revision=8
+build_style=meta
+short_desc="Mount MediaServers content as a Linux file system (removed package)"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://djmount.sourceforge.net"
-distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
-checksum=aa5bb482af4cbd42695a7e396043d47b53d075ac2f6aa18a8f8e11383c030e4f
-
-do_install() {
-	vbin djmount/djmount
-	vman djmount.1
-}

From aabebd7f827e0aa76f9e74831183f1ac44a98b53 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 11 Jan 2021 11:47:03 -0500
Subject: [PATCH 2/2] retroshare: build against miniupnpc

---
 srcpkgs/retroshare/template | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/retroshare/template b/srcpkgs/retroshare/template
index 4931444905a..c33991221f9 100644
--- a/srcpkgs/retroshare/template
+++ b/srcpkgs/retroshare/template
@@ -1,12 +1,14 @@
 # Template file for 'retroshare'
 pkgname=retroshare
 version=0.6.5
-revision=3
+revision=4
 wrksrc="RetroShare-${version}"
 build_style=qmake
-hostmakedepends="pkg-config qt5-qmake"
+configure_args="RS_UPNP_LIB=miniupnpc"
+hostmakedepends="pkg-config qt5-qmake qt5-host-tools
+ qt5-tools-devel qt5-multimedia-devel qt5-x11extras-devel"
 makedepends="ffmpeg-devel libgnome-keyring-devel libmicrohttpd-devel
- libopencv-devel libssh-devel libupnp-devel libXScrnSaver-devel libxslt-devel
+ libopencv-devel libssh-devel miniupnpc-devel libXScrnSaver-devel libxslt-devel
  pulseaudio-devel qt5-multimedia-devel qt5-tools-devel qt5-x11extras-devel
  speex-devel sqlcipher-devel sqlite-devel rapidjson"
 short_desc="Decentralized, private and secure commmunication and sharing platform"
@@ -16,5 +18,9 @@ homepage="https://retroshare.cc"
 distfiles="https://github.com/RetroShare/RetroShare/archive/v${version}.tar.gz"
 checksum=901a1d1f282e04118fbe0e24190355b4a8f355a806cc5448738b1d691b46f5d5
 
-nocross="https://travis-ci.org/voidlinux/void-packages/jobs/375096223#L1160
- https://travis-ci.org/voidlinux/void-packages/jobs/375096224#L1668"
+post_patch() {
+	# upnputil.c includes a C++ header, so make sure qmake recognizes it as C++
+	mv libretroshare/src/upnp/upnputil.{c,cc}
+	vsed -i libretroshare/src/libretroshare.pro \
+		-e 's,\bupnp/upnputil.c\b,upnp/upnputil.cc,'
+}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PR PATCH] [Updated] Eliminate libupnp dependencies
  2021-01-11 16:58 [PR PATCH] Eliminate libupnp dependencies ahesford
@ 2021-01-11 17:07 ` ahesford
  2021-01-12  4:17 ` [PR PATCH] [Closed]: " ahesford
  1 sibling, 0 replies; 3+ messages in thread
From: ahesford @ 2021-01-11 17:07 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1055 bytes --]

There is an updated pull request by ahesford against master on the void-packages repository

https://github.com/ahesford/void-packages upnp
https://github.com/void-linux/void-packages/pull/27829

Eliminate libupnp dependencies
`djmount` is ancient (from 2006) and, after the initial packaging, has only ever been revbumped to rebuild for dependency updates. It refuses to build against `libupnp1.8` or newer and is holding back our `libupnp`.

`retroshare` has some upstream patches to build against `libupnp1.8` but they do not apply cleanly to the release version. However, the package builds against `miniupnpc`, so let's do that. We can revisit newer `libupnp` later if there is a compelling reason and they cut a new release.

This paves the way for updating `libupnp` to a modern version. Maybe we can unify the `libupnp` if we can clean up `gerbera`, `mpd` and `vlc`. If not, maybe `libupnp` should be a meta that pulls in the latest versioned package.

A patch file from https://github.com/void-linux/void-packages/pull/27829.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-upnp-27829.patch --]
[-- Type: text/x-diff, Size: 14129 bytes --]

From 0230b6cf390abfcd4dfceb0493d886bf06e9387a Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 11 Jan 2021 10:46:27 -0500
Subject: [PATCH 1/2] djmount: remove package

Upstream has not been updated since 2006-08-27.
---
 srcpkgs/djmount/INSTALL.msg                   |   1 +
 srcpkgs/djmount/patches/000_djmount.1.diff    | 105 ------------------
 .../djmount/patches/001-libupnp-1.6.6.diff    |  31 ------
 .../patches/003-support-fstab-mounting.diff   |  96 ----------------
 .../patches/djmount-0.71-includes.patch       |  10 --
 srcpkgs/djmount/patches/musl.patch            |  11 --
 srcpkgs/djmount/template                      |  16 +--
 7 files changed, 4 insertions(+), 266 deletions(-)
 create mode 100644 srcpkgs/djmount/INSTALL.msg
 delete mode 100644 srcpkgs/djmount/patches/000_djmount.1.diff
 delete mode 100644 srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
 delete mode 100644 srcpkgs/djmount/patches/003-support-fstab-mounting.diff
 delete mode 100644 srcpkgs/djmount/patches/djmount-0.71-includes.patch
 delete mode 100644 srcpkgs/djmount/patches/musl.patch

diff --git a/srcpkgs/djmount/INSTALL.msg b/srcpkgs/djmount/INSTALL.msg
new file mode 100644
index 00000000000..32dd66613a6
--- /dev/null
+++ b/srcpkgs/djmount/INSTALL.msg
@@ -0,0 +1 @@
+djmount is no longer provided by Void Linux
diff --git a/srcpkgs/djmount/patches/000_djmount.1.diff b/srcpkgs/djmount/patches/000_djmount.1.diff
deleted file mode 100644
index a20589a339d..00000000000
--- a/srcpkgs/djmount/patches/000_djmount.1.diff
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-# Description: Adds djmount.1 manpage which isn't included in original sources.
-# Forwarded: http://sourceforge.net/tracker/index.php?func=detail&aid=2834139&group_id=142039&atid=751320
-# Author: Dario Minnucci <midget@debian.org>
-# Last-Update: 2010-01-24
-#
---- djmount.1	1970-01-01 01:00:00.000000000 +0100
-+++ djmount.1	2009-08-31 19:38:36.289425318 +0200
-@@ -0,0 +1,96 @@
-+.\"                                      Hey, EMACS: -*- nroff -*-
-+.\" First parameter, NAME, should be all caps
-+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-+.\" other parameters are allowed: see man(7), man(1)
-+.TH DJMOUNT 1 "August 31, 2009"
-+.\" Please adjust this date whenever revising the manpage.
-+.\"
-+.\" Some roff macros, for reference:
-+.\" .nh        disable hyphenation
-+.\" .hy        enable hyphenation
-+.\" .ad l      left justify
-+.\" .ad b      justify to both left and right margins
-+.\" .nf        disable filling
-+.\" .fi        enable filling
-+.\" .br        insert line break
-+.\" .sp <n>    insert n+1 empty lines
-+.\" for manpage-specific macros, see man(7)
-+.SH NAME
-+djmount \- file system client for mounting network media servers
-+.SH SYNOPSIS
-+.B djmount
-+.RI [ options ] " mountpoint"
-+.br
-+.SH DESCRIPTION
-+This manual page describes briefly the
-+.B djmount
-+command.
-+.PP
-+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
-+.\" respectively.
-+This package provides a client for Universal Plug'n'Play (UPnP) Audio-Visual MediaServers.  It discovers all compatible UPnP AV devices on the network automatically and mounts their media content as a file system using FUSE.
-+
-+.SH OPTIONS
-+This program follows the usual GNU command line syntax, with long
-+options starting with two dashes (`-').
-+A summary of options is included below.
-+For a complete description, see the Info files.
-+
-+.TP
-+.B \-d[levels]
-+enable debug output (implies \-f)
-+
-+.TP
-+.B \-f
-+foreground operation (default: daemonized)
-+
-+.TP
-+.B \-h, \-\-help
-+print this help, then exit
-+
-+.TP
-+.B \-\-version
-+print version number, then exit
-+
-+.TP
-+.B \-o [options]
-+mount options (see below)
-+
-+
-+.TP
-+Mount options (one or more comma separated options):
-+
-+ iocharset=<charset>    filenames encoding (default: from environment)
-+ playlists              use playlists for AV files, instead of plain files
-+ search_history=<size>  number of remembered searches (default: 100)
-+                        (set to 0 to disable search)
-+
-+.TP
-+See FUSE documentation for the following mount options:
-+
-+ default_permissions    enable permission checking by kernel
-+ allow_other            allow access to other users
-+ allow_root             allow access to root
-+ kernel_cache           cache files in kernel
-+ nonempty               allow mounts over non-empty file/dir
-+ fsname=NAME            set filesystem name in mtab
-+
-+
-+.TP
-+Debug levels are one or more comma separated words:
-+
-+ upnperr, upnpall: increasing level of UPnP traces
-+ error, warn, info, debug: increasing level of djmount traces
-+ fuse: activates FUSE traces
-+ leak, leakfull: enable talloc leak reports at exit
-+ '\-d' alone defaults to 'upnpall, debug, fuse, leak' which is all traces.
-+
-+
-+.SH SEE ALSO
-+.BR fusermount (1)
-+.SH AUTHOR
-+djmount was written by Rémi Turboult <r3mi@users.sourceforge.net>.
-+.PP
-+This manual page was written by Dario Minnucci <midget@debian.org>,
-+for the Debian project (and may be used by others).
diff --git a/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff b/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
deleted file mode 100644
index aebc9dd22c5..00000000000
--- a/srcpkgs/djmount/patches/001-libupnp-1.6.6.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Description: Update libupnp API for 1.6.x.
-#   Between libupnp2 and libupnp3 (pupnp 1.4.x and 1.6.x) the function
-#   SetLogFileNames was renamed to UpnpSetLogFileNames.
-# Author: nick@leverton.org
-# Bug-Debian: 581879 
-#
---- djmount/fuse_main.c	2010-05-16 21:40:56.000000000 +0100
-+++ djmount/fuse_main.c	2010-05-16 21:43:55.000000000 +0100
-@@ -616,7 +616,7 @@
- 	}  
- 	Log_Colorize (true);
- #if UPNP_HAVE_DEBUG
--	SetLogFileNames ("/dev/null", "/dev/null");
-+	UpnpSetLogFileNames ("/dev/null", "/dev/null");
- #endif
- 	
- 	/*
-@@ -710,10 +710,10 @@
- 					Log_SetMaxLevel (LOG_ERROR);
- #if UPNP_HAVE_DEBUG
- 				} else if (strcmp (s, "upnperr") == 0) {
--					SetLogFileNames ("/dev/stdout", 
-+					UpnpSetLogFileNames ("/dev/stdout",
- 							 "/dev/null");
- 				} else if (strcmp (s, "upnpall") == 0) {
--					SetLogFileNames ("/dev/stdout", 
-+					UpnpSetLogFileNames ("/dev/stdout",
- 							 "/dev/stdout");
- #endif
- 				} else {
diff --git a/srcpkgs/djmount/patches/003-support-fstab-mounting.diff b/srcpkgs/djmount/patches/003-support-fstab-mounting.diff
deleted file mode 100644
index 05a1e6f8539..00000000000
--- a/srcpkgs/djmount/patches/003-support-fstab-mounting.diff
+++ /dev/null
@@ -1,96 +0,0 @@
-Description: Support /etc/fstab mounting
-Forwarded: https://sourceforge.net/tracker/?func=detail&aid=3514280&group_id=142039&atid=751317
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660098
-Author: Kevin Vargo <vargok@yahoo.com>
-Last-Update: 2012-04-02
---- djmount/fuse_main.c	2006-08-27 16:12:20.000000000 -0400
-+++ djmount/fuse_main.c	2011-12-23 15:39:29.000000000 -0500
-@@ -529,6 +529,7 @@
-      "    --version              print version number, then exit\n"
-      "    -o [options]           mount options (see below)\n"
-      "    -d[levels]             enable debug output (implies -f)\n"
-+     "    -s                     sloppy -- ignore unknown options\n"
-      "    -f                     foreground operation (default: daemonized)\n"
-      "\n"
-      "Mount options (one or more comma separated options) :\n"
-@@ -538,6 +539,7 @@
-      "    playlists              use playlists for AV files, instead of plain files\n"
-      "    search_history=<size>  number of remembered searches (default: %d)\n"
-      "                           (set to 0 to disable search)\n"
-+     "    sloppy                 ignore unknown options (e.g., for /etc/fstab)\n"
-      "\n", DEFAULT_SEARCH_HISTORY_SIZE);
-   fprintf 
-     (stream,
-@@ -635,6 +637,9 @@
- 	Log_Printf (LOG_DEBUG, "  Fuse option = %s", fuse_argv[fuse_argc]); \
- 	fuse_argc++
- 
-+	//Ignore unknown options "sloppy" -- mount -s
-+	bool options_sloppy = false;
-+
- 	int opt = 1;
- 	char* o;
- 	while ((o = argv[opt++])) {
-@@ -646,6 +651,9 @@
- 			
- 		} else if (strcmp(o, "-f") == 0) {
- 			background = false;
-+			
-+		} else if (strcmp(o, "-s") == 0) {
-+			options_sloppy = true;
- 
- 		} else if (*o != '-') { 
- 			// mount point
-@@ -657,6 +665,10 @@
- 			char* options_copy = strdup (options);
- 			char* tokptr = 0;
- 			char* s;
-+
-+			char** unknown_options = talloc_size(tmp_ctx, sizeof(char) * strlen(options_copy));
-+			int unknown_ptr = -1;
-+
- 			for (s = strtok_r (options_copy, ",", &tokptr); 
- 			     s != NULL; 
- 			     s = strtok_r (NULL, ",", &tokptr)) {
-@@ -669,16 +681,39 @@
- 				} else if (strncmp(s, "search_history=", 15)
- 					   == 0) {
- 					search_history_size = atoi (s+15);
-+				//check for '-s|-o sloppy' -- ignore unknown options
-+				} else if (strncmp(s, "sloppy", 15) == 0 ||
-+						(strlen(s) == 1 && strncmp(s, "s", 1) == 0)) {
-+					options_sloppy = true;
- 				} else if (strncmp(s, "fsname=", 7) == 0 ||
- 					   strstr (FUSE_ALLOWED_OPTIONS, s)) {
- 					FUSE_ARG ("-o");
- 					FUSE_ARG (talloc_strdup (tmp_ctx, s));
- 				} else {
-+					//Record unknown options for analysis, after we're sure
-+					//we don't see '-o sloppy'
-+					unknown_options[++unknown_ptr] = strdup(s);
-+				}
-+			}
-+
-+			//Now, we should know if we have invalid option(s), or can
-+			//ignore:
-+			if (unknown_ptr >= 0) {
-+				//If debug...
-+				int i = 0;
-+				for (i = 0; i <= unknown_ptr; i++) {
-+					Log_Printf (LOG_WARNING, "Found unknown option = %s%s",
-+						unknown_options[i], (options_sloppy ? "; ignoring" : ""));
-+				}
-+				//If 'sloppy' is not enabled...
-+				if (! options_sloppy) {
- 					bad_usage (argv[0], 
--						   "unknown mount option '%s'",
--						   s); // ---------->
-+						   "unknown mount option '%s' (and [-s|-o sloppy] not provided)",
-+						   unknown_options[0]); // ---------->
- 				}
- 			}
-+			talloc_free(unknown_options);
-+
- 			free (options_copy);
- 			Log_Printf (LOG_INFO, "  Mount options = %s", options);
- 			
diff --git a/srcpkgs/djmount/patches/djmount-0.71-includes.patch b/srcpkgs/djmount/patches/djmount-0.71-includes.patch
deleted file mode 100644
index 36cf3be000c..00000000000
--- a/srcpkgs/djmount/patches/djmount-0.71-includes.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- djmount/upnp_util.c.jx	2006-08-27 16:12:20.000000000 -0400
-+++ djmount/upnp_util.c	2011-05-31 12:30:42.980161484 -0400
-@@ -28,6 +28,7 @@
- #	include <config.h>
- #endif
- 
-+#include "upnp.h"
- #include "upnp_util.h"
- #include "log.h"
- #include "xml_util.h"
diff --git a/srcpkgs/djmount/patches/musl.patch b/srcpkgs/djmount/patches/musl.patch
deleted file mode 100644
index 14084beebea..00000000000
--- a/srcpkgs/djmount/patches/musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- djmount/cache.h.orig	2016-04-25 08:49:55.265766330 +0200
-+++ djmount/cache.h	2016-04-25 08:50:06.728886696 +0200
-@@ -25,7 +25,7 @@
- 
- #include <stdlib.h>
- #include <stdbool.h>
--
-+#include <sys/time.h>
- 
- /******************************************************************************
-  * @var Cache
diff --git a/srcpkgs/djmount/template b/srcpkgs/djmount/template
index b0ef3b59c33..bd3ff5733a9 100644
--- a/srcpkgs/djmount/template
+++ b/srcpkgs/djmount/template
@@ -1,19 +1,9 @@
 # Template file for 'djmount'
 pkgname=djmount
 version=0.71
-revision=7
-build_style=gnu-configure
-configure_args="--with-external-libupnp --with-external-talloc"
-hostmakedepends="pkg-config"
-makedepends="fuse-devel talloc-devel libupnp-devel readline-devel"
-short_desc="Mount MediaServers content as a Linux file system"
+revision=8
+build_style=meta
+short_desc="Mount MediaServers content as a Linux file system (removed package)"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://djmount.sourceforge.net"
-distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
-checksum=aa5bb482af4cbd42695a7e396043d47b53d075ac2f6aa18a8f8e11383c030e4f
-
-do_install() {
-	vbin djmount/djmount
-	vman djmount.1
-}

From 3d3ebc5224bd46a2c9738c3bcfdff56eae21f772 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 11 Jan 2021 11:47:03 -0500
Subject: [PATCH 2/2] retroshare: build against miniupnpc

---
 srcpkgs/retroshare/template | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/retroshare/template b/srcpkgs/retroshare/template
index 4931444905a..8b92dd990f1 100644
--- a/srcpkgs/retroshare/template
+++ b/srcpkgs/retroshare/template
@@ -1,12 +1,14 @@
 # Template file for 'retroshare'
 pkgname=retroshare
 version=0.6.5
-revision=3
+revision=4
 wrksrc="RetroShare-${version}"
 build_style=qmake
-hostmakedepends="pkg-config qt5-qmake"
+configure_args="RS_UPNP_LIB=miniupnpc"
+hostmakedepends="pkg-config qt5-qmake qt5-host-tools
+ qt5-tools-devel qt5-multimedia-devel qt5-x11extras-devel"
 makedepends="ffmpeg-devel libgnome-keyring-devel libmicrohttpd-devel
- libopencv-devel libssh-devel libupnp-devel libXScrnSaver-devel libxslt-devel
+ libopencv-devel libssh-devel miniupnpc-devel libXScrnSaver-devel libxslt-devel
  pulseaudio-devel qt5-multimedia-devel qt5-tools-devel qt5-x11extras-devel
  speex-devel sqlcipher-devel sqlite-devel rapidjson"
 short_desc="Decentralized, private and secure commmunication and sharing platform"
@@ -16,5 +18,13 @@ homepage="https://retroshare.cc"
 distfiles="https://github.com/RetroShare/RetroShare/archive/v${version}.tar.gz"
 checksum=901a1d1f282e04118fbe0e24190355b4a8f355a806cc5448738b1d691b46f5d5
 
-nocross="https://travis-ci.org/voidlinux/void-packages/jobs/375096223#L1160
- https://travis-ci.org/voidlinux/void-packages/jobs/375096224#L1668"
+post_patch() {
+	# upnputil.c includes a C++ header, so make sure qmake recognizes it as C++
+	mv libretroshare/src/upnp/upnputil.{c,cc}
+	vsed -i libretroshare/src/libretroshare.pro \
+		-e 's,\bupnp/upnputil.c\b,upnp/upnputil.cc,'
+}
+
+post_install() {
+	vlicense LICENSE.txt
+}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PR PATCH] [Closed]: Eliminate libupnp dependencies
  2021-01-11 16:58 [PR PATCH] Eliminate libupnp dependencies ahesford
  2021-01-11 17:07 ` [PR PATCH] [Updated] " ahesford
@ 2021-01-12  4:17 ` ahesford
  1 sibling, 0 replies; 3+ messages in thread
From: ahesford @ 2021-01-12  4:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 900 bytes --]

There's a closed pull request on the void-packages repository

Eliminate libupnp dependencies
https://github.com/void-linux/void-packages/pull/27829

Description:
`djmount` is ancient (from 2006) and, after the initial packaging, has only ever been revbumped to rebuild for dependency updates. It refuses to build against `libupnp1.8` or newer and is holding back our `libupnp`.

`retroshare` has some upstream patches to build against `libupnp1.8` but they do not apply cleanly to the release version. However, the package builds against `miniupnpc`, so let's do that. We can revisit newer `libupnp` later if there is a compelling reason and they cut a new release.

This paves the way for updating `libupnp` to a modern version. Maybe we can unify the `libupnp` if we can clean up `gerbera`, `mpd` and `vlc`. If not, maybe `libupnp` should be a meta that pulls in the latest versioned package.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-01-12  4:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-11 16:58 [PR PATCH] Eliminate libupnp dependencies ahesford
2021-01-11 17:07 ` [PR PATCH] [Updated] " ahesford
2021-01-12  4:17 ` [PR PATCH] [Closed]: " ahesford

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).