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

Justin B Rye justin.byam.rye at gmail.com
Wed Aug 12 10:23:13 UTC 2015


Christian PERRIER wrote:
> --- libdvd-pkg.old/debian/templates	2015-07-29 08:18:35.980914897 +0200
> +++ libdvd-pkg/debian/templates	2015-08-08 08:24:38.242456340 +0200
> @@ -2,7 +2,7 @@
>  Type: note
>  _Description:
>   This package downloads the ${PKGG} source files from videolan.org,
> - compile them and install the binary deb package(s)
> + compiles them and installs the binary deb package(s)
>   [${PKGG_ALL}].
>   .
>   Please remember to run "sudo dpkg-reconfigure ${PKGI}"
> 
> Spelling error fix

I gather we're letting this get away with being a debconf note on the
basis that it's essential that users get this information.

But in that case, why are these templates so resolutely uninformative?
Surely the maintainer knows whether "the binary deb package(s)" are
singular or plural?  Why is it asking me to *remember* to do a thing
that I've obviously never yet been given a reason to believe I need
to do in the first place?  And why *is* it necessary?

And then this template is immediately followed by libdvd-pkg/build,
which (apparently) also gets shown under exactly the same
circumstances and also contains the reminder to run dpkg-reconfigure.
So why couldn't the information above have been incorporated into that
template instead?

Also, I would add a serial comma and throw out the meaningless use of
square brackets.
 
> @@ -16,7 +16,7 @@
>  Type: boolean
>  Default: true
>  _Description: Proceed with downloading and compiling ${PKGG}${VER}?
> - The installation process is therefore about to download the source files
> + The installation process is about to download the source files
>   from videolan.org, compile them, and install the binary deb package(s)
>   [${PKGG_ALL}].
>   .
> 
> I feel like the "therefore" is useless here....

Let's make it useful by importing the text from the note.  Or actually
once I do that almost everything here is redundant.

Still it's acting as if the maintainer doesn't know how many packages
are involved.  If there's a -dev library involved here and end users
don't get to opt out of building it, that seems like a major bug.

It goes on to say:

>   Please remember to run "sudo dpkg-reconfigure ${PKGI}"
>   to build and install guest package(s) for the first time.

Wait, what?  I just said it was okay to do that, didn't I?  So why am
I now being told it won't happen unless I run it manually?  Or is it
saying that I'll need to do it manually *unless* I let it happen
automatically?

And what happens to the download stage if I say no to this prompt?  It
doesn't do it now, and according to the above it won't do it later
either.  Or does "build and install" here have a stage missing?
Probably, judging from the way the Description line misses a different
one out.

If ${PKGI} is always going to mean libdvd-pkg, why is it a variable?

And... "guest packages"?  Uh-oh - I recognise this.  It's another
instance of that unintelligible autobuilder framework that I couldn't
make head or tail of in October 2013 (through to October 2014!) -
       
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725467
         
I hope we can get some explanations this time around, since I don't
see how we're going to be able to do this review properly otherwise.

I *think* it ought to be something like this:

   _Description: Proceed with building ${PKGG}${VER}?
    This package downloads the ${PKGG} source files from videolan.org,
    compiles them, and installs the binary deb package
    ${PKGG_ALL}.
    .
    Please indicate whether this process should go ahead now.
    .
    Alternatively, the download, compilation, and installation process can
    be launched manually by running "sudo dpkg-reconfigure ${PKGI}".
 
Then *another* debconf note:

>   Template: libdvd-pkg/upgrade
>   Type: note
>   _Description:
>    An update to guest package(s) [${PKGG_ALL}] version ${VER} is available
>    but automatic upgrades are disabled.
>    .
>    Please remember to run "sudo dpkg-reconfigure ${PKGI}" to build and
>    install guest package(s) or consider installing the APT post-invoke hook.

What, so even if I tell it *not* to install the hook it'll bother me
with a debconf note any time there happens to be an update?  It seems
to me if it's going to nag me like that it might as well offer to do
the one-off autoinstall every time, too.

(Ah, but I suppose I could stop the installer nagging me by
uninstalling it?  After all, I don't want to have to keep the whole of
build-essential permanently installed on my non-developer desktop just
so that I have the option of watching a DVD once every few years.)

If installing the APT post-invoke hook *also* requires me to run
"sudo dpkg-reconfigure ${PKGI}" then the final paragraph needs to be
rephrased.

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

    Template: libdvd-pkg/upgrade
    Type: note
    _Description:
     An upgrade is available for ${PKGG_ALL} (version ${VER}) but automatic
     upgrades are disabled.
     .
     To launch the process of downloading, compiling, and installing the
     new version, run "sudo dpkg-reconfigure ${PKGI}". This will also
     give an opportunity to enable automatic upgrades.


> @@ -38,7 +38,7 @@
>  Template: libdvd-pkg/post-invoke_hook-install
>  Type: boolean
>  Default: true
> -_Description: Install APT post-invoke hook?
> +_Description: Install APT post-invoke hook for libdvd-pkg?
>   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".
>
> If the question comes in the middle of a bunch of other questions it
> might be good for users to know that this is about libdvd-pkg

This was also true for the debconf notes and the title_u template.

I'm not letting it get away with this gibberish terminology of "guest
packages".  There's no hosting setup here, and there's no implication
that my guests are going to leave at some stage while the host stays -
if anything the reverse is more likely.  We might as well call them
"marmoset packages".  That doesn't mean anything either, but after
dealing with all this stuff I'd prefer to be thinking about marmosets.

Again the process is summarised to only two items: "to download and
build", but then not install?  If not, what does it do with them?

How about:

   _Description: Enable automatic upgrades for ${PKGG}?
    If activated, the APT post-invoke hook takes care of future automatic
    upgrades of autocompiled software on upgrades of the installer
    package. When updates are available, the hook will attempt the
    appropriate source downloads and package recompilations, and (if
    "apt-get check" reports no errors) will install the packages with
    "dpkg -i".
    .
    Alternatively, the download, compilation, and installation process can
    be launched manually by running "sudo dpkg-reconfigure ${PKGI}".
 
> @@ -50,7 +50,7 @@
>  Template: libdvd-pkg/post-invoke_hook-remove
>  Type: boolean
>  Default: false
> -_Description: Remove APT post-invoke hook?
> +_Description: Remove APT post-invoke hook for libdvd-pkg?
>   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),
> 
> Ditto

Ditto (I didn't mention that I'm rephrasing the synopses in less
implementationy terms.)

> --- libdvd-pkg.old/debian/control	2015-07-29 08:18:35.980914897 +0200
> +++ libdvd-pkg/debian/control	2015-08-08 08:25:18.210847421 +0200
> @@ -18,5 +18,5 @@
>  Suggests: ${guest:Suggests}
>  Description: download and install software necessary to play video DVDs

Not a noun phrase.

>   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.).
> + packages that are necessary to play all video DVDs with any media
> + player (such as VLC, SMplayer, Totem, etc.).
> 
> avoid "of your choice"....

The one thing users *don't* really need to be told here is that video
DVDs can be played with a variety of media players.  Listing them just
means you'll have to update this text every couple of years as
desktops change their minds about which one to use.

And this description has the same problem that descriptions for
installer packages always seem to have: it doesn't tell me *why* it's
only an installer.  It ought to start with something like

    Description: DVD-Video playing library - installer
     Some features of the DVD-Video format require the use of software
     to bypass the Content Scramble System (CSS), which cannot be
     distributed via the Debian repositories.

(We could do with some extra information here, but that's as much as
I've got.)

Then

     This package automates the process of downloading source code from
     videolan.org for libdvdcss, building and installing the binary
     package, and managing subsequent updates.

 * * *
 
Wait a minute... there are package descriptions for the marmoset
package(s) in libdvd-pkg/libdvd-pkg-1.3.99-1libdvdcss/debian/control,
and it turns out there *are* two of them, libdvdcss2 and
libdvdcss-dev.  Maintainer?  Hello?
   
-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package
-------------- next part --------------
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-12 10:45:18.471957364 +0100
@@ -16,7 +16,11 @@
         ,${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
+ Some features of the DVD-Video format require the use of software
+ to bypass the Content Scramble System (CSS), which cannot be
+ distributed via the Debian repositories.
+ .
+ This package automates the process of downloading source code from
+ videolan.org for libdvdcss, building and installing the binary
+ package, and managing subsequent updates.
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-12 10:43:42.174673142 +0100
@@ -1,13 +1,3 @@
-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}].
- .
- Please remember to run "sudo dpkg-reconfigure ${PKGI}"
- to build and install guest package(s) for the first time.
-
 Template: libdvd-pkg/title_b-i
 Type: title
 _Description: Build and install ${PKGG}${VER}
@@ -15,46 +5,54 @@
 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: Proceed with building ${PKGG}${VER}?
+ This package downloads the ${PKGG} source files from videolan.org,
+ compiles them, and installs the binary deb package
+ ${PKGG_ALL}.
+ .
+ Please indicate whether this process should go ahead now.
  .
- Please confirm whether you wish this to happen.
+ Alternatively, the download, compilation, and installation process can
+ be launched manually by running "sudo dpkg-reconfigure ${PKGI}".
 
 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.
+ An upgrade is available for ${PKGG_ALL} (version ${VER}) but automatic
+ upgrades are disabled.
  .
- Please remember to run "sudo dpkg-reconfigure ${PKGI}" to build and
- install guest package(s) or consider installing the APT post-invoke hook.
+ To launch the process of downloading, compiling, and installing the
+ new version, run "sudo dpkg-reconfigure ${PKGI}". This will also
+ give an opportunity to enable automatic upgrades.
 
 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 autocompiled software on upgrades of the installer
+ package. When updates are available, the hook will attempt the
+ appropriate source downloads and package recompilations, and (if
+ "apt-get check" reports no errors) will install the packages with
+ "dpkg -i".
  .
- Alternatively, guest package(s) can be built by manual invocation of
- "dpkg-reconfigure ${PKGI}".
+ Alternatively, the download, compilation, and installation 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 autocompiled software on upgrades of the installer
+ package. When updates are available, the hook will attempt the
+ appropriate source downloads and package recompilations, and (if
+ "apt-get check" reports no errors) will install the packages with
+ "dpkg -i".
  .
- Alternatively, guest package(s) can be built by manual invocation of
- "dpkg-reconfigure ${PKGI}".
+ Alternatively, the download, compilation, and installation process can
+ be launched manually by running "sudo dpkg-reconfigure ${PKGI}".
-------------- next part --------------
Template: libdvd-pkg/title_b-i
Type: title
_Description: Build and install ${PKGG}${VER}

Template: libdvd-pkg/build
Type: boolean
Default: true
_Description: Proceed with building ${PKGG}${VER}?
 This package downloads the ${PKGG} source files from videolan.org,
 compiles them, and installs the binary deb package
 ${PKGG_ALL}.
 .
 Please indicate whether this process should go ahead now.
 .
 Alternatively, the download, compilation, and installation process can
 be launched manually by running "sudo dpkg-reconfigure ${PKGI}".

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

Template: libdvd-pkg/upgrade
Type: note
_Description:
 An upgrade is available for ${PKGG_ALL} (version ${VER}) but automatic
 upgrades are disabled.
 .
 To launch the process of downloading, compiling, and installing the
 new version, run "sudo dpkg-reconfigure ${PKGI}". This will also
 give an opportunity to enable automatic upgrades.

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 autocompiled software on upgrades of the installer
 package. When updates are available, the hook will attempt the
 appropriate source downloads and package recompilations, and (if
 "apt-get check" reports no errors) will install the packages with
 "dpkg -i".
 .
 Alternatively, the download, compilation, and installation 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 autocompiled software on upgrades of the installer
 package. When updates are available, the hook will attempt the
 appropriate source downloads and package recompilations, and (if
 "apt-get check" reports no errors) will install the packages with
 "dpkg -i".
 .
 Alternatively, the download, compilation, and installation process can
 be launched manually by running "sudo dpkg-reconfigure ${PKGI}".
-------------- next part --------------
Source: libdvd-pkg
Section: contrib/utils
Priority: optional
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers at lists.alioth.debian.org>
Uploaders: Dmitry Smirnov <onlyjob at 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
 Some features of the DVD-Video format require the use of software
 to bypass the Content Scramble System (CSS), which cannot be
 distributed via the Debian repositories.
 .
 This package automates the process of downloading source code from
 videolan.org for libdvdcss, building and installing the binary
 package, and managing subsequent updates.


More information about the pkg-multimedia-maintainers mailing list