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

Re: Bug#793937: [RFR] templates://libdvd-pkg/{templates}



Dmitry Smirnov wrote:
> Justin B Rye wrote:
>> "Software" seems the obvious solution, but in this particular context
>> it feels slightly less natural - something like:
>> 
>>       This package downloads the sourcecode for ${PKGM} from ${UPSTREAM},
>>       compiles it into binary deb package format, and installs the
>> resulting software (${PKGM_ALL}).
> 
> Indeed it feels awkward and it is not necessary better than the original 
> version...

I probably should have gone back and mentioned here that I was going
to go through so many alternatives to this...

[...]
>> There are lots of ways we could do this, and none of them require us
>> to give the user the impression we're arbitrarily withholding useful
>> information.
> 
> I'm really not sure... "binary deb package format"?? Also "results" feels
> weird in this context...

I had "binary deb package format" lying around from some earlier
revision, but it is rather ugly.  My latest version avoids the phrase.

> I'm not sure I recognise the problem as you describe 
> it ("give the user the impression we're arbitrarily withholding useful 
> information")... Maybe I've forgotten your explanation from earlier emails 
> but choice of brackets can hardly give such impression...

The bit about the choice of "()" or "[]" was a different issue; this
was about avoiding "foo(s)", which is ostentatiously noncommittal
about whether it's talking about one foo or many - even though as far
as the reader can see you ought to be able to specify.  It's like a
press release saying "the CEO has announced his or her resignation".

[...]
>>>> You think the end users who chose to install this package because you
>>>> advertised it to them as providing a way of watching DVDs are going to
>>>> want to build and install -dev packages?  That strikes me as
>>>> implausible.
>>> 
>>> It doesn't matter. -dev package is in Provides field so it can be pulled
>>> despite of package description.
>> 
>> I don't follow.
> 
> "libdvd-pkg" advertises guest packages in "Provides" field so "libdvdcss2" is 
> a virtual package. Therefore those who know that they need "libdvdcss2" to 
> watch DVDs might do something like
> 
>     apt-get install libdvdcss2
> 
> which pulls "libdvd-pkg" which builds "libdvdcss2" package.
> So it is possible that user may see no package description but only debconf 
> dialogs.

My point was that whether they find this package that way or by doing
an "apt search DVD video" or by browsing through the package
descriptions, nothing warns them that they're going to get a -dev
package as well.  And this isn't information that we're particularly
required to obfuscate.

>> I don't keep things installed on my jessie desktop that I don't use,
>> especially if they have big dependency chains.  In this case a lot of
>> those dependencies are things that will already have been pulled in
>> for libdvd-pkg itself, but honestly, once libdvd-pkg had done its job
>> of giving me a version of libdvdcss, my next step would be to *purge*
>> libdvd-pkg so I could get rid of all those.  If libdvdcss-dev makes
>> that harder (by counting as a manually-installed development package)
>> it would also reduce my keenness to ever reinstall libdvd-pkg.
> 
> You can build "libdvdcss2" manually and never upgrade it if you wish.

Not on this machine, I can't!  Remember, no compiler installed...

> The purpose of "libdvd-pkg" is to provide seamless upgrades at the cost of 
> having guest package build-dependencies installed. This is similar to 
> function and requirements of DKMS family of packages.
> I don't know why one would want to purge "libdvd-pkg" and lost upgrade 
> functionality.

Well, that's because you're a developer who's running unstable; for
you, there are significant benefits and no costs.  I'm a non-developer
who's running stable, so for me the cost is having a large number of
unwanted packages installed and (all being well) there may be no
benefits at all between one Debian release and the next.
 
>> (After all, why would I need to keep an installer package installed on
>> stable?  If libdvdcss gets a security fix, I'll see the announcement.)
> 
> If you are tracking announcements. Otherwise point release ship a patch for 
> you and trigger rebuild.

I can believe there are users who *will* find it useful; I'm just
pointing out that they might not include me.  However, you're right -
I'm wandering way off-topic for this review.

>> I'm not asking for a full explanation in the template, just a wording
>> that's less actively misleading!  These so-called "automatic upgrades
>> of guest package(s) on host package upgrade" *aren't* automatic on
>> host package upgrade.
> 
> But they are in case when post-install hook is activated. Not necessarily 
> though if only a minor update to installer package is delivered without need 
> to re-build guest packages...

The trouble is, "automatic" can mean either "non-manual, under
software control" or "unconditional, inevitable".  You meant it in the
former sense, I understood it in the latter sense.  I've rephrased it
slightly, keeping the word "automatic" but making it explicit what
triggers it.

>> Just make it something like "automatic upgrades
>> of $MARMOSET (which may be triggered by new versions of $INSTALLER)".
> 
> "which may be triggered" is confusing and probably misleading without 
> explanations what is actually meant by this...

How about:
                (which will triggered any time a new "major version" of
   $INSTALLER is installed)

Or just:
                (triggered by new "major versions" of $INSTALLER)

(Though neither version is in my latest patch,)

>> (Incidentally, it's far from obvious that the "apt-get check" is just
>> testing for a lock - for a start that isn't one of the things the man
>> page says it does.)
> 
> Did I say that "apt-get check" testing a lock? It does not. "apt-get check" 
> is to see whether there are broken packages -- an unsafe condition to install 
> generated guest packages.
> DPKG database lock is tested with "dpkg -i /dev/zero".

Does that work?  I suppose you can check which kind of hideous death
it suffered.  But surely you could equally well just check apt-get's
return value to see if that failed to lock /var/lib/dpkg/lock?

Sorry, I've gone off-topic again!
 
[...]
>> Or is the probability of a dpkg lock problem high enough that there
>> needs to be a hint in that direction, like, say:
>> 
>>                 When updates are available, the hook will launch the
>> process of downloading the source, recompiling it, and (if it can acquire
>> a lock on the package database) using "dpkg -i" to install the new
>> versions.
> 
> This version seems to express hook status by "if it can acquire a lock on the 
> package database" which is not quite the same...

Let's go back to your version with "if apt-get check reports no
errors", then - there's nothing wrong with the English there.

> Thank you. I've applied most of your changes to "control" file (I've dropped 
> only "of your choice" part) and I've merged most of your improvements to 
> "templates" (I've changed "doing downloads" with "downloading"):
> 
>     https://anonscm.debian.org/cgit/pkg-multimedia/libdvd-pkg.git/commit/?id=bee536ee
> 
> Would it be OK to replace
> 
>     process of downloading of the source files for ${PKGG} from videolan.org

It would certainly be a good idea to replace that with something,
since it has an excess "of the"...
 
> with 
> 
>     process of downloading ${PKGG} sources files from videolan.org
> 
> ?

You need an extra article and uninflected "source":

      process of downloading the ${PKGG} source files from videolan.org

But see below.

Back to the package description:

> Package: libdvd-pkg
[...]
> Description: DVD-Video playing library - installer
>  This package fetches, compiles from source code, and installs library
>  packages necessary for playing video DVDs with media player
>  (such as VLC, SMplayer, Totem, etc.).

You've thrown out the article, and it still needs one - if not the
specific media player "of my choice" then just "a" media player.
But looking at this for the umpteenth time I finally notice that it's
odd to talk about fetching library packages and then compiling them.
Not to mention that it's claiming that packageS are necessary for the
runtime library.  This was one of the reasons I wanted to do a
thorough rewrite - maybe I should recycle some text from the
templates:

   This package provides libraries that are needed for playing video DVDs
   with a media player (such as VLC, SMplayer, Totem, etc.). It automates
   the process of downloading source files, compiling them, and installing
   the binary packages.

And going through the templates again:
> Template: libdvd-pkg/first-install
> Type: note
> _Description:
>  This package automates the process of downloading of the source files for
>  ${PKGG} from videolan.org, compiling them and installing the
>  binary deb packages (${PKGG_ALL}).

So you've shuffled "from videolan.org" later - that does work.

But I had carefully selected the phrase "doing downloadS", because
with plural runs of the process we can talk about "packageS" without
implying anything about how many are produced in an individual run.
(And "source fileS/compiling THEM" rather than "source code/compiling
IT" further increases the background level of pluralisation...)

As you mentioned, we might want to avoid "binary deb packages" - for
instance by saying "compiling them into deb format and intalling the
binary packages", or indeed just "compiling them and installing the
binary packages".

Most trivially of all, you've lost the comma I had after "compiling
them".  This one's a matter of taste, but the "d-l-e house style"
tends to encourage standardising on "Harvard comma".

>  .
>  Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process for
>  the first time.
> 
> Template: libdvd-pkg/title_b-i
> Type: title
> _Description: Download, build and install ${PKGG}${VER}
> 
> Template: libdvd-pkg/build
> Type: boolean
> Default: true
> _Description: Download, build, and install ${PKGG}${VER}?
>  This package automates the process of downloading of the source files for
>  ${PKGG} from videolan.org, compiling them and installing the
>  binary deb packages (${PKGG_ALL}).

(Ditto)

>  .
>  Please confirm whether you wish this to happen.
> 
> Template: libdvd-pkg/title_u
> Type: title
> _Description: Upgrade available for ${PKGG}
> 
> Template: libdvd-pkg/upgrade
> Type: note
> _Description:
>  This package automates the process of downloading of the source files for
>  ${PKGG} from videolan.org, compiling them and installing the
>  binary deb packages (${PKGG_ALL}).

(Ditto)

>  .
>  An update to version ${VER} is available, but automatic upgrades are
>  disabled.
>  .
>  Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process
>  manually and/or activate automatic upgrades in future.
> 
> Template: libdvd-pkg/post-invoke_hook-install
> Type: boolean
> Default: true
> _Description: Enable automatic upgrades for ${PKGG}?
>  If activated, the APT post-invoke hook takes care of future automatic
>  upgrades of ${PKGG} (which may be triggered by new versions of
>  ${PKGI}). When updates are available, the hook will launch the
>  process of downloading the source, recompiling it, and (if "apt-get check"
>  reports no errors) use "dpkg -i" to install the new versions.

It needs to talk about "usING" dpkg, to go with downloading and
recompiling.

Also, we were considering having something like
                   (triggered by new "major versions" of $PKGI)


>  .
>  Alternatively, the process can be launched manually by running
>  "sudo dpkg-reconfigure ${PKGI}".
> 
> Template: libdvd-pkg/post-invoke_hook-remove
[...]

(Ditto)
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package
diff -ru libdvd-pkg-1.3.99-1.pristine/debian/control libdvd-pkg-1.3.99-1/debian/control
--- libdvd-pkg-1.3.99-1.pristine/debian/control	2015-04-14 02:47:06.000000000 +0100
+++ libdvd-pkg-1.3.99-1/debian/control	2015-08-16 19:54:37.380170990 +0100
@@ -16,7 +16,8 @@
         ,${guest:Build-Depends}
 Recommends: ${guest:Recommends} ,libcap2-bin
 Suggests: ${guest:Suggests}
-Description: download and install software necessary to play video DVDs
- This package fetches, compiles from source code and installs library
- packages that are necessary to play all video DVDs with media
- player of your choice (like VLC, SMplayer, Totem, etc.).
+Description: DVD-Video playing library - installer
+ This package provides libraries that are needed for playing video DVDs
+ with a media player (such as VLC, SMplayer, Totem, etc.). It automates
+ the process of downloading source files, compiling them, and installing
+ the binary packages.
diff -ru libdvd-pkg-1.3.99-1.pristine/debian/templates libdvd-pkg-1.3.99-1/debian/templates
--- libdvd-pkg-1.3.99-1.pristine/debian/templates	2014-12-17 03:00:49.000000000 +0000
+++ libdvd-pkg-1.3.99-1/debian/templates	2015-08-16 21:08:38.160957208 +0100
@@ -1,60 +1,66 @@
 Template: libdvd-pkg/first-install
 Type: note
 _Description:
- This package downloads the ${PKGG} source files from videolan.org,
- compile them and install the binary deb package(s)
- [${PKGG_ALL}].
+ This package automates the process of doing downloads of the source
+ files for ${PKGG} from videolan.org, compiling them, and installing the
+ binary packages (${PKGG_ALL}).
  .
- Please remember to run "sudo dpkg-reconfigure ${PKGI}"
- to build and install guest package(s) for the first time.
+ Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process for
+ the first time.
 
 Template: libdvd-pkg/title_b-i
 Type: title
-_Description: Build and install ${PKGG}${VER}
+_Description: Download, build and install ${PKGG}${VER}
 
 Template: libdvd-pkg/build
 Type: boolean
 Default: true
-_Description: Proceed with downloading and compiling ${PKGG}${VER}?
- The installation process is therefore about to download the source files
- from videolan.org, compile them, and install the binary deb package(s)
- [${PKGG_ALL}].
+_Description: Download, build, and install ${PKGG}${VER}?
+ This package automates the process of doing downloads of the source
+ files for ${PKGG} from videolan.org, compiling them, and installing the
+ binary packages (${PKGG_ALL}).
  .
  Please confirm whether you wish this to happen.
 
 Template: libdvd-pkg/title_u
 Type: title
-_Description: Upgrades available for guest package(s)
+_Description: Upgrade available for ${PKGG}
 
 Template: libdvd-pkg/upgrade
 Type: note
 _Description:
- An update to guest package(s) [${PKGG_ALL}] version ${VER} is available
- but automatic upgrade is disabled.
+ This package automates the process of doing downloads of the source
+ files for ${PKGG} from videolan.org, compiling them, and installing the
+ binary packages (${PKGG_ALL}).
  .
- Please remember to run "sudo dpkg-reconfigure ${PKGI}" to build and
- install guest package(s) or consider installing the APT post-invoke hook.
+ An update to version ${VER} is available, but automatic upgrades are
+ disabled.
+ .
+ Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process
+ manually and/or activate automatic upgrades in future.
 
 Template: libdvd-pkg/post-invoke_hook-install
 Type: boolean
 Default: true
-_Description: Install APT post-invoke hook?
+_Description: Enable automatic upgrades for ${PKGG}?
  If activated, the APT post-invoke hook takes care of future automatic
- upgrades of guest package(s) on host package upgrade. When an update
- is available, the hook will attempt to download and build the package(s),
- and (if "apt-get check" reports no errors) install them with "dpkg -i".
+ upgrades of ${PKGG} (which may be triggered by new versions of
+ ${PKGI}). When updates are available, the hook will launch the
+ process of downloading the source, recompiling it, and (if "apt-get check"
+ reports no errors) using "dpkg -i" to install the new versions.
  .
- Alternatively, guest package(s) can be built by manual invocation of
- "dpkg-reconfigure ${PKGI}".
+ Alternatively, the process can be launched manually by running
+ "sudo dpkg-reconfigure ${PKGI}".
 
 Template: libdvd-pkg/post-invoke_hook-remove
 Type: boolean
 Default: false
-_Description: Remove APT post-invoke hook?
+_Description: Disable automatic upgrades for ${PKGG}?
  If activated, the APT post-invoke hook takes care of future automatic
- upgrades of guest package(s) on host package upgrade. When an update
- is available, the hook will attempt to download and build the package(s),
- and (if "apt-get check" reports no errors) install them with "dpkg -i".
+ upgrades of ${PKGG} (which may be triggered by new versions of
+ ${PKGI}). When updates are available, the hook will launch the
+ process of downloading the source, recompiling it, and (if "apt-get check"
+ reports no errors) using "dpkg -i" to install the new versions.
  .
- Alternatively, guest package(s) can be built by manual invocation of
- "dpkg-reconfigure ${PKGI}".
+ Alternatively, the process can be launched manually by running
+ "sudo dpkg-reconfigure ${PKGI}".
Source: libdvd-pkg
Section: contrib/utils
Priority: optional
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Uploaders: Dmitry Smirnov <onlyjob@debian.org>
Standards-Version: 3.9.6
Build-Depends: debhelper (>= 9)
Vcs-Browser: http://anonscm.debian.org/cgit/pkg-multimedia/libdvd-pkg.git
Vcs-Git: git://anonscm.debian.org/pkg-multimedia/libdvd-pkg.git

Package: libdvd-pkg
Architecture: all
Provides: ${guest:Provides}
Depends: ${misc:Depends} ,build-essential
        ,wget | devscripts
        ,${guest:Build-Depends}
Recommends: ${guest:Recommends} ,libcap2-bin
Suggests: ${guest:Suggests}
Description: DVD-Video playing library - installer
 This package provides libraries that are needed for playing video DVDs
 with a media player (such as VLC, SMplayer, Totem, etc.). It automates
 the process of downloading source files, compiling them, and installing
 the binary packages.
Template: libdvd-pkg/first-install
Type: note
_Description:
 This package automates the process of doing downloads of the source
 files for ${PKGG} from videolan.org, compiling them, and installing the
 binary packages (${PKGG_ALL}).
 .
 Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process for
 the first time.

Template: libdvd-pkg/title_b-i
Type: title
_Description: Download, build and install ${PKGG}${VER}

Template: libdvd-pkg/build
Type: boolean
Default: true
_Description: Download, build, and install ${PKGG}${VER}?
 This package automates the process of doing downloads of the source
 files for ${PKGG} from videolan.org, compiling them, and installing the
 binary packages (${PKGG_ALL}).
 .
 Please confirm whether you wish this to happen.

Template: libdvd-pkg/title_u
Type: title
_Description: Upgrade available for ${PKGG}

Template: libdvd-pkg/upgrade
Type: note
_Description:
 This package automates the process of doing downloads of the source
 files for ${PKGG} from videolan.org, compiling them, and installing the
 binary packages (${PKGG_ALL}).
 .
 An update to version ${VER} is available, but automatic upgrades are
 disabled.
 .
 Please run "sudo dpkg-reconfigure ${PKGI}" to launch this process
 manually and/or activate automatic upgrades in future.

Template: libdvd-pkg/post-invoke_hook-install
Type: boolean
Default: true
_Description: Enable automatic upgrades for ${PKGG}?
 If activated, the APT post-invoke hook takes care of future automatic
 upgrades of ${PKGG} (which may be triggered by new versions of
 ${PKGI}). When updates are available, the hook will launch the
 process of downloading the source, recompiling it, and (if "apt-get check"
 reports no errors) using "dpkg -i" to install the new versions.
 .
 Alternatively, the process can be launched manually by running
 "sudo dpkg-reconfigure ${PKGI}".

Template: libdvd-pkg/post-invoke_hook-remove
Type: boolean
Default: false
_Description: Disable automatic upgrades for ${PKGG}?
 If activated, the APT post-invoke hook takes care of future automatic
 upgrades of ${PKGG} (which may be triggered by new versions of
 ${PKGI}). When updates are available, the hook will launch the
 process of downloading the source, recompiling it, and (if "apt-get check"
 reports no errors) using "dpkg -i" to install the new versions.
 .
 Alternatively, the process can be launched manually by running
 "sudo dpkg-reconfigure ${PKGI}".

Reply to: