Hi,

On Fri, Oct 12, 2018 at 4:13 AM Andreas Henriksson <andr...@fatal.se> wrote:
>
> Hi,
>
> Chiming in here because I'd like to just suggest an alternative
> that might be more in line with how other packages are layed out
> and thus how users might expect things to work.
>
> On Thu, Oct 11, 2018 at 04:24:16PM -0400, Muammar El Khatib wrote:
> > On Sat, Sep 29, 2018 at 3:33 AM Ruben Undheim
> > <ruben.undh...@beebeetle.com> wrote:
> [...]
> > > I get an error saying 'pactl' cannot be found when
> > > starting. Solved it by installing pulseaudio-utils.
> > >
> >
> > The package suggests mkchromecast-pulseaudio:
> [...]
>
> I think I understand how you layed out the package.
> You expect the user to pick a particular special version that suits
> their needs from mkchromecast-* and install that. Then that pulls in the
> common (mkchromecast) package.
>
> If a package has the bulk of the program, but users are not expected to
> directly install it but rather have it pulled in via a dependency then
> usually the package name gets a -common postfix, ie. in your current
> layout you could have named mkchromecast mkchromecast-common instead.
>
> Going back a bit and looking at the bigger picture again I find your
> current layout not how packages in debian normally are layed out.
> 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.
>
> With this package layout you avoid ever having an uninformed user
> ending up with installing a package and having it 'not working'.
> If they install mkchromecast they get the recommended backend with it.
> If they install a particular mkchromecast-* the recommends will pull
> in the mkchromecast package. (And if they disable installing recommends
> then they are expected to pay attention or they get to keep all their
> broken pieces. eg. apt install mkchromecast mkchromecast-gstreamer would
> given them the non-default backend without pulling in the
> recommended/first alternative dependency.)
>

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/.
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`.

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.

Thanks for this idea Andreas.

Best,

-- 
Muammar El Khatib.
Linux user: 403107.
GPG Key = 71246E4A.
http://muammar.me | http://proyectociencia.org
  ,''`.
 : :' :
 `. `'
   `-

Reply via email to