On Sat, Oct 13, 2018 at 06:28:03PM -0400, Muammar El Khatib wrote: > On Fri, Oct 12, 2018 at 4:13 AM Andreas Henriksson <andr...@fatal.se> wrote: [...] > > Normally I find that the main package (mkchromecast here) instead has > > alternative dependency on the different backends, eg. mkchromecast would: > > Depends: mkchromecast-pulseaudio | mkchromecast-alsa | > > mkchromecast-gstreamer > > > > (Or in which ever order you prefer, listing the recommended and best > > supported backend as the first alternative.) > > > > (And to avoid circular dependencies, the mkchromecast-* package would > > have to drop or demote the Dependency on mkchromecast to a Recommends.) > > > > This way the users can just pull the package named after the program and > > end up having the recommeded backend pulled in for them. [...]
> Your explanation makes lots of sense for me. Just to clarify this layout: > > 1) mkchromecast-common would contain all needed files to make things > functional meaning the python module itself and things in /usr/bin/. Yes (except -common packages usually don't ship /usr/bin things). This basically means renaming the current mkchromecast package to mkchromecast-common. > 2) There will be other mkchromecast-* packages e.g.: > mkchromecast-pulseaudio; mkchromecast-alsa, and mkchromecast-gstreamer > and those ones will pull out dependencies to make the package work for > each of those audio servers. Basically, instead of doing an `apt > install mkchromecast`, users would need to do `apt install > mkchromecast-something`. Yes, isn't that what you already expect them to do? > > Is that what you meant? If that is correct, then I think that the > package `mkchromecast` does not have to be provided at all. I would > like just to confirm these things before I go and change the > packaging. As I tried to explain before, but probably confused you with by mentioning two different ways in the same mail. I think "the -common way" (discussed above) is not the preferred way though. The alternative would be like the attached patch does (untested, but hopefully it should show my thinking). It implements the way I quoted at the top of this mail from my previous mail and has the following advantages over "the -common way": - you can install from either direction. Doing 'apt install mkchromecast' gives the uninformed user a nice setup, and the picky informed people can still do 'apt install mkchromecast-alsa' to get a particular set. - this is much more in line with how most other packages does it. - you don't have to go through NEW queue because of renamed packages. Having said that, I think there's a third option here as well. Since mkchromecast-* seems to just be meta-packages that for many users seems to add more confusion than they help. The third option would thus simply be to get rid off all -* packages (removing packages doesn't need NEW either) and simply listing all pulseaudio/alsa pieces under Recommends on the main (and only) mkchromecast binary package. That way people get all choices and functionality by default, but people who want a slimmer install and are informed can skip installing the pieces they don't want. This would actually be probably the most in line with debian policy and how most other packages does it. Hope this helps. Regards, Andreas Henriksson
diff -uriNp mkchromecast-0.3.8.1/debian/control mkchromecast-0.3.8.1.patched/debian/control --- mkchromecast-0.3.8.1/debian/control 2017-12-24 15:29:49.000000000 +0100 +++ mkchromecast-0.3.8.1.patched/debian/control 2018-10-14 01:00:07.010435210 +0200 @@ -27,11 +27,10 @@ Depends: ${python3:Depends}, opus-tools, youtube-dl, nodejs, - gir1.2-notify-0.7 + gir1.2-notify-0.7, + mkchromecast-pulseaudio | mkchromecast-alsa | mkchromecast-gstreamer Suggests: libav-tools, - ffmpeg, - mkchromecast-pulseaudio, - mkchromecast-alsa + ffmpeg Description: Cast your Linux audio or video to your Google Cast devices It is written in Python, and it streams via node.js, ffmpeg, or avconv. mkchromecast is capable of using lossy and lossless audio formats provided @@ -57,8 +56,8 @@ Depends: ${python3:Depends}, ${misc:Depends}, pavucontrol, pulseaudio-utils, - pulseaudio, - mkchromecast + pulseaudio +Recommends: mkchromecast Description: Pulseaudio dependencies to cast with mkchromecast This dependency package contains an informational list of packages which are considered essential for using mkchromecast together with pulseaudio sound @@ -71,8 +70,8 @@ Depends: ${python3:Depends}, alsa-utils, alsa-tools, kmod, - ffmpeg, - mkchromecast + ffmpeg +Recommends: mkchromecast Description: ALSA dependencies to cast with mkchromecast This dependency package contains an informational list of packages which are considered essential for using mkchromecast together with ALSA software @@ -86,7 +85,7 @@ Architecture: all Depends: ${python3:Depends}, ${misc:Depends}, gstreamer1.0-tools, - mkchromecast +Recommends: mkchromecast Description: GStreamer dependencies to cast with mkchromecast This dependency package contains an informational list of packages which are considered essential for using mkchromecast together with GStreamer software