Control: tags -1 moreinfo On 2021-05-01 11:03:07 +0300, Sergei Golovan wrote: > Package: release.debian.org > Severity: normal > User: release.debian....@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. Changing compat levels is no longer acceptable for bullseye. Please revert. > + > + -- Ralf Jung <p...@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 <p...@ralfj.de> > -Build-Depends: debhelper (>= 9.20160709), > +Uploaders: Sébastien Noel <sebast...@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} Why? Cheers > 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 <t...@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.ha...@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 <mszer...@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.steff...@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 > -- Sebastian Ramacher
signature.asc
Description: PGP signature