[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#987874: marked as done (unblock: osspd/1.3.2-12.2)



Your message dated Tue, 22 Jun 2021 15:04:42 +0000
with message-id <E1lvhxC-0005ss-0d@respighi.debian.org>
and subject line unblock osspd
has caused the Debian Bug report #987874,
regarding unblock: osspd/1.3.2-12.2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
987874: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987874
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Hi release team!

I'm writing on behalf of the maintainer of the osspd package (I intend
to sponsor the potential upload).

We'd like to upload the osspd package to fix #986662 (see [1] for
details). The bug is serious as the currently osspd doesn't work at all.

The diff is attached. It includes two other fixes, which are much less
serious, so if you decide that changes are too big for the freeze
time then we'll drop them.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986662

unblock osspd/1.3.2-12

-- System Information:
Debian Release: 10.9
  APT prefers stable-debug
  APT policy: (500, 'stable-debug'), (500, 'proposed-updates'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental'), (1, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-16-amd64 (SMP w/12 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog
index c412732..9481d07 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+osspd (1.3.2-12) unstable; urgency=low
+
+  [ Sébastien Noel ]
+  * cherrypick 2 commits from upstream GIT:
+    + d/p/GIT-fix-adsp_se.patch
+    + d/p/GIT-fix-compiler-warnings.patch
+  * Add workaround for pulseaudio >= 13
+    d/p/Hack-to-work-with-modern-PulseAudio.patch  (Closes: #986662)
+
+  [ Ralf Jung ]
+  * Switch to debhelper compat level 13.
+
+ -- Ralf Jung <post@ralfj.de>  Sat, 17 Apr 2021 14:28:09 +0200
+
 osspd (1.3.2-11) unstable; urgency=medium
 
   * Update Standards-Version to 4.3.0.  No changes needed.
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
index c3cd2da..ee044ca 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,8 @@ Source: osspd
 Section: sound
 Priority: optional
 Maintainer: Ralf Jung <post@ralfj.de>
-Build-Depends: debhelper (>= 9.20160709),
+Uploaders: Sébastien Noel <sebastien@twolife.be>
+Build-Depends: debhelper-compat (= 13),
                libasound2-dev,
                libfuse-dev,
                libpulse-dev
@@ -14,6 +15,7 @@ Vcs-Git: git://ralfj.de/osspd.git
 Package: osspd
 Architecture: linux-any
 Multi-Arch: foreign
+Pre-Depends: ${misc:Pre-Depends}
 Depends: lsb-base (>= 3.2-14),
          osspd-pulseaudio | osspd-backend,
          ${misc:Depends},
diff --git a/debian/patches/GIT-fix-adsp_se.patch b/debian/patches/GIT-fix-adsp_se.patch
new file mode 100644
index 0000000..7316f9c
--- /dev/null
+++ b/debian/patches/GIT-fix-adsp_se.patch
@@ -0,0 +1,24 @@
+From 4c6161d951daa98f6463904f76b3fa2ce7216194 Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Mon, 21 Feb 2011 11:54:06 +0100
+Subject: [PATCH] adsp_se was incorrectly created with dsp_ops.  Create it with
+ adsp_ops.
+
+Reported-by: Aaron <aaron.hamid@gmail.com>
+---
+ osspd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/osspd.c b/osspd.c
+index 37c9b35..df1cfc4 100644
+--- a/osspd.c
++++ b/osspd.c
+@@ -2253,7 +2253,7 @@ int main(int argc, char **argv)
+ 					   param.mixer_major, param.mixer_minor,
+ 					   args.argc, args.argv);
+ 	if (strlen(param.adsp_name))
+-		adsp_se = setup_ossp_cuse(&dsp_ops, param.adsp_name,
++		adsp_se = setup_ossp_cuse(&adsp_ops, param.adsp_name,
+ 					  param.adsp_major, param.adsp_minor,
+ 					  args.argc, args.argv);
+ 
diff --git a/debian/patches/GIT-fix-compiler-warnings.patch b/debian/patches/GIT-fix-compiler-warnings.patch
new file mode 100644
index 0000000..1424b2b
--- /dev/null
+++ b/debian/patches/GIT-fix-compiler-warnings.patch
@@ -0,0 +1,251 @@
+From 37eb730a452f0ded2ed1c174feb438e3df041581 Mon Sep 17 00:00:00 2001
+From: Miklos Szeredi <mszeredi@suse.cz>
+Date: Fri, 11 Nov 2011 14:19:32 +0100
+Subject: [PATCH] fix compiler warnings
+
+---
+ ossp-padsp.c |  3 ---
+ osspd.c      | 75 ++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 44 insertions(+), 34 deletions(-)
+
+diff --git a/ossp-padsp.c b/ossp-padsp.c
+index 1871f5b..3143960 100644
+--- a/ossp-padsp.c
++++ b/ossp-padsp.c
+@@ -972,16 +972,13 @@ static void do_mmap_read(size_t bytes)
+ 
+ static void stream_rw_callback(pa_stream *s, size_t length, void *userdata)
+ {
+-	int dir;
+ 	size_t size;
+ 
+ 	if (s == stream[PLAY]) {
+-		dir = PLAY;
+ 		size = pa_stream_writable_size(s);
+ 		if (mmap_map[PLAY])
+ 			do_mmap_write(size);
+ 	} else if (s == stream[REC]) {
+-		dir = REC;
+ 		size = pa_stream_readable_size(s);
+ 		if (mmap_map[REC])
+ 			do_mmap_read(size);
+diff --git a/osspd.c b/osspd.c
+index df1cfc4..4be1ad5 100644
+--- a/osspd.c
++++ b/osspd.c
+@@ -469,15 +469,6 @@ static int ioctl_prep_uarg(fuse_req_t req, void *in, size_t in_sz, void *out,
+ 		return;							\
+ } while (0)
+ 
+-#define IOCTL_RETURN(result, outp) do {					\
+-	if ((outp) != NULL)						\
+-		fuse_reply_ioctl(req, result, (outp), sizeof(*(outp)));	\
+-	else								\
+-		fuse_reply_ioctl(req, result, NULL, 0);			\
+-	return;								\
+-} while (0)
+-
+-
+ /***************************************************************************
+  * Mixer implementation
+  */
+@@ -709,7 +700,8 @@ static void mixer_simple_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+ 		strncpy(info.id, id, sizeof(info.id) - 1);
+ 		strncpy(info.name, name, sizeof(info.name) - 1);
+ 		info.modify_counter = mixer->modify_counter;
+-		IOCTL_RETURN(0, &info);
++		fuse_reply_ioctl(req, 0, &info, sizeof(info));
++		break;
+ 	}
+ 
+ 	case SOUND_OLD_MIXER_INFO: {
+@@ -718,7 +710,8 @@ static void mixer_simple_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+ 		PREP_UARG(NULL, &info);
+ 		strncpy(info.id, id, sizeof(info.id) - 1);
+ 		strncpy(info.name, name, sizeof(info.name) - 1);
+-		IOCTL_RETURN(0, &info);
++		fuse_reply_ioctl(req, 0, &info, sizeof(info));
++		break;
+ 	}
+ 
+ 	case OSS_GETVERSION:
+@@ -737,16 +730,16 @@ static void mixer_simple_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+ 		goto puti;
+ 	puti:
+ 		PREP_UARG(NULL, &i);
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SOUND_MIXER_WRITE_RECSRC:
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	default:
+ 		*not_minep = 1;
+-		return;
+ 	}
+-	assert(0);
+ }
+ 
+ static void mixer_do_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+@@ -787,7 +780,8 @@ static void mixer_do_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+ 		break;
+ 	default:
+ 		i = 0;
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		return;
+ 	}
+ 
+ 	init_mixer_cmd(&mxcmd, mixer);
+@@ -837,7 +831,12 @@ static void mixer_do_ioctl(fuse_req_t req, struct ossp_mixer *mixer,
+ 	finish_mixer_cmd(&mxcmd);
+ 	free(osa);
+ 
+-	IOCTL_RETURN(0, out_bufsz ? &mxcmd.rvol : NULL);
++	if (out_bufsz)
++		fuse_reply_ioctl(req, 0, &mxcmd.rvol, sizeof(mxcmd.rvol));
++	else
++		fuse_reply_ioctl(req, 0, NULL, 0);
++
++	return;
+ 
+ err:
+ 	fuse_reply_err(req, -rc);
+@@ -1510,7 +1509,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 	case OSS_GETVERSION:
+ 		i = SNDRV_OSS_VERSION;
+ 		PREP_UARG(NULL, &i);
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SNDCTL_DSP_GETCAPS:
+ 		i = DSP_CAP_DUPLEX | DSP_CAP_REALTIME | DSP_CAP_TRIGGER |
+@@ -1519,12 +1519,14 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ #endif
+ 			DSP_CAP_MULTI;
+ 		PREP_UARG(NULL, &i);
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SNDCTL_DSP_NONBLOCK:
+ 		dsps->nonblock = 1;
+ 		ret = 0;
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	case SNDCTL_DSP_RESET:		op = OSSP_DSP_RESET;		goto nd;
+ 	case SNDCTL_DSP_SYNC:		op = OSSP_DSP_SYNC;		goto nd;
+@@ -1533,7 +1535,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		ret = exec_simple_cmd(&dsps->os, op, NULL, NULL);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	case SOUND_PCM_READ_RATE:	op = OSSP_DSP_GET_RATE;		goto ri;
+ 	case SOUND_PCM_READ_BITS:	op = OSSP_DSP_GET_FORMAT;	goto ri;
+@@ -1546,7 +1549,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		ret = exec_simple_cmd(&dsps->os, op, NULL, &i);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SNDCTL_DSP_SPEED:		op = OSSP_DSP_SET_RATE;		goto wi;
+ 	case SNDCTL_DSP_SETFMT:		op = OSSP_DSP_SET_FORMAT;	goto wi;
+@@ -1557,7 +1561,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		ret = exec_simple_cmd(&dsps->os, op, &i, &i);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SNDCTL_DSP_STEREO:
+ 		PREP_UARG(NULL, &i);
+@@ -1566,7 +1571,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		i--;
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, &i);
++		fuse_reply_ioctl(req, 0, &i, sizeof(i));
++		break;
+ 
+ 	case SNDCTL_DSP_SETFRAGMENT:
+ 		PREP_UARG(&i, NULL);
+@@ -1574,7 +1580,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 				      OSSP_DSP_SET_FRAGMENT, &i, NULL);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	case SNDCTL_DSP_SETTRIGGER:
+ 		PREP_UARG(&i, NULL);
+@@ -1582,7 +1589,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 				      OSSP_DSP_SET_TRIGGER, &i, NULL);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	case SNDCTL_DSP_GETOSPACE:
+ 	case SNDCTL_DSP_GETISPACE: {
+@@ -1603,7 +1611,8 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		ret = exec_simple_cmd(&dsps->os, op, NULL, &info);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, &info);
++		fuse_reply_ioctl(req, 0, &info, sizeof(info));
++		break;
+ 	}
+ 
+ 	case SNDCTL_DSP_GETOPTR:
+@@ -1616,14 +1625,16 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 		ret = exec_simple_cmd(&dsps->os, op, NULL, &info);
+ 		if (ret)
+ 			goto err;
+-		IOCTL_RETURN(0, &info);
++		fuse_reply_ioctl(req, 0, &info, sizeof(info));
++		break;
+ 	}
+ 
+ 	case SNDCTL_DSP_GETODELAY:
+ 		PREP_UARG(NULL, &i);
+ 		i = 0;
+ 		ret = exec_simple_cmd(&dsps->os, OSSP_DSP_GET_ODELAY, NULL, &i);
+-		IOCTL_RETURN(ret, &i);	/* always copy out result, 0 on err */
++		fuse_reply_ioctl(req, ret, &i, sizeof(i));	/* always copy out result, 0 on err */
++		break;
+ 
+ 	case SOUND_PCM_WRITE_FILTER:
+ 	case SOUND_PCM_READ_FILTER:
+@@ -1638,14 +1649,16 @@ static void dsp_ioctl(fuse_req_t req, int signed_cmd, void *uarg,
+ 	case SNDCTL_DSP_SETSYNCRO:
+ 	case SNDCTL_DSP_SETDUPLEX:
+ 	case SNDCTL_DSP_PROFILE:
+-		IOCTL_RETURN(0, NULL);
++		fuse_reply_ioctl(req, 0, NULL, 0);
++		break;
+ 
+ 	default:
+ 		warn_os(os, "unknown ioctl 0x%x", cmd);
+ 		ret = -EINVAL;
+ 		goto err;
+ 	}
+-	assert(0);	/* control shouldn't reach here */
++	return;
++
+ err:
+ 	fuse_reply_err(req, -ret);
+ }
diff --git a/debian/patches/Hack-to-work-with-modern-PulseAudio.patch b/debian/patches/Hack-to-work-with-modern-PulseAudio.patch
new file mode 100644
index 0000000..25996cc
--- /dev/null
+++ b/debian/patches/Hack-to-work-with-modern-PulseAudio.patch
@@ -0,0 +1,37 @@
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Fri, 18 Dec 2020 23:17:36 +0000
+Subject: [PATCH] Hack to work with modern PulseAudio
+
+---
+ ossp-padsp.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/ossp-padsp.c b/ossp-padsp.c
+index c505b57..b4ac097 100644
+--- a/ossp-padsp.c
++++ b/ossp-padsp.c
+@@ -22,6 +22,8 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <linux/limits.h>
++#include <stdlib.h>
+ 
+ #include <pulse/pulseaudio.h>
+ #include <sys/soundcard.h>
+@@ -1478,9 +1480,15 @@ static void action_post(void)
+ int main(int argc, char **argv)
+ {
+ 	int rc;
++	static char runtime_dir[PATH_MAX];
+ 
+ 	ossp_slave_init(argc, argv);
+ 
++	snprintf(runtime_dir, sizeof runtime_dir, "/run/user/%llu",
++		(long long unsigned) getuid());
++	if (access(runtime_dir, R_OK | X_OK) == 0)
++		setenv("XDG_RUNTIME_DIR", runtime_dir, 0);
++
+ 	page_size = sysconf(_SC_PAGE_SIZE);
+ 
+ 	mainloop = pa_threaded_mainloop_new();
diff --git a/debian/patches/series b/debian/patches/series
index 521cc6b..03f1d68 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,6 @@
 0005-Add-pthread-compiler-and-linker-flag.patch
 0006-fix-build-on-MIPS.patch
 0007-cross.patch
+GIT-fix-adsp_se.patch
+GIT-fix-compiler-warnings.patch
+Hack-to-work-with-modern-PulseAudio.patch
diff --git a/debian/rules b/debian/rules
index 9b9a0a1..2a38240 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,7 +4,7 @@ SLAVESDIR=/usr/lib/osspd
 UDEVDIR=/lib/udev/rules.d
 
 %:
-	dh $@ --parallel --with=systemd
+	dh $@
 
 override_dh_auto_build:
 	dh_auto_build -- SLAVESDIR=$(SLAVESDIR) UDEVDIR=$(UDEVDIR)
@@ -16,7 +16,7 @@ override_dh_strip:
 	dh_strip --ddeb-migration='osspd-dbg (<< 1.3.2-7~)'
 
 override_dh_install:
-	dh_install --fail-missing
+	dh_install
 	# adding kmod integration
 	install -D -m 0644 debian/osspd.kmod debian/osspd/lib/modules-load.d/osspd.conf
 

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: