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

Attachment: signature.asc
Description: PGP signature

Reply via email to