changeset 17346:a5bef61f49bf

Improve the Debian package configuration: Remove the vo module configuration, add a debconf TrueType font configuration. Based on the Debian package by Andrea Menucci.
author diego
date Sun, 08 Jan 2006 18:33:54 +0000
parents 16ebf01c5179
children 14f41e4c530e
files debian/config debian/postinst debian/templates
diffstat 3 files changed, 79 insertions(+), 189 deletions(-) [+]
line wrap: on
line diff
--- a/debian/config	Sun Jan 08 17:37:48 2006 +0000
+++ b/debian/config	Sun Jan 08 18:33:54 2006 +0000
@@ -1,99 +1,52 @@
-#!/usr/bin/perl -w
+#!/bin/sh
+
+CONFIGFILE=/etc/mplayer/mplayer.conf
+
+set -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+if test -r $CONFIGFILE && ! grep -q '### mplayer DEBCONF AREA' $CONFIGFILE
+then
+    db_input medium 'mplayer/replace-existing-files'  || true
+    db_go || true
+    if [ "$RET" != "true" ]; then
+        exit 0
+    fi
+    db_get  'mplayer/replace-existing-files' || true
+fi
+
+########################################## find fonts
+#default font (if available)
+BESTFONT=/usr/share/fonts/truetype/Arial.ttf
+[ -r $BESTFONT ] || BESTFONT=/usr/share/fonts/truetype/freefont/FreeSans.ttf
 
-# Script to configure mplayer 
-# based on etherconf by John Goerzen <jgoerzen@progenylinux.com>
+t=$(tempfile -p fonts )
+find /usr/share/fonts/ /?/?in*/?ont* -type f -iname '*.ttf' -maxdepth 3 2> /dev/null  > $t  || true
+
+if test -s $t
+then
+    fonts=$( awk '{print a $0;a=", "}' $t || true )
+    db_subst "mplayer/ttfont" ttfontchoices $fonts  || true
+ ## suppose the question is skipped: give a default
+    a=$BESTFONT
+    [ -r $BESTFONT ] || a=$(head -1 $t)
+    db_subst "mplayer/ttfont" ttfontdefault $a  || true
 
-use Debconf::Client::ConfModule qw(:all);
+    db_input medium  mplayer/ttfont  || true
+    if [ "$?" = 30 ] ; then
+        db_set  mplayer/ttfont $a  || true
+    fi
+else
+    db_input medium "mplayer/no-ttfont" || true
+fi
+
+rm $t
+
+db_go || true
+
+############################################################
 
 
-my $version = version(2.0);
-title('MPlayer Configuration');
-my $PRIORITY = 'high';
-#TODO: 'medium'
-my $next = 'mainmenu';
-my $isediting = 0;
-
-my @nextargs = ();
-
-checkupgrade();			# Find out if we have to upgrade.
-mainloop(letsgo());
-
-sub checkupgrade {
-  open(MCFG, "</etc/mplayer/mplayer.conf") || return 1;
-  my $line = <MCFG>;
-  return 1 if ($line =~ /mplayer DEBCONF AREA/);
-  exit(0) if (input($PRIORITY, 'mplayer/replace-existing-files') eq "question skipped");
-  go();
-  if (get('mplayer/replace-existing-files') eq 'false') {
-    input($PRIORITY, 'mplayer/replace-existing-files-bail');
-    go();
-    exit();
-  }
-  close MCFG;
-}
-
-sub mainloop {
-  $next = shift @_;
-  do {
-    my @retval = &$next(@nextargs);
-    #  if ($retval[0] eq 'BACK') {
-    #    $retval[0] = $backups{$next};
-    #  }
-    ($next, @nextargs) = @retval;
-  } while ($next ne 'Exit');
-}
-
-sub letsgo {
-#useless!
-  return "configure";
-}
-
-sub configure {
-  subst("mplayer/voutput", "vochoices", "xv, xmga, mga, x11, gl, sdl, xvidix");
-  # db_subst mplayer/output vo xc,xmga,mga,x11,gl,sdl
-  exit(0) if (input($PRIORITY, "mplayer/voutput") eq "question skipped");
-  go();
-  exit 0 unless (get("mplayer/voutput") eq 'true');
-  #return 'audioout';
-  return 'mainmenu';
-}
-
-sub mainmenu {
-  go();				# To catch spare things from before
-  my @choices = (
-    'Video Output: ' . scalar(get("mplayer/voutput")));
-    #,
-  $choices = join(', ', @choices);
-  $isediting = 1;
-  
-  subst('mplayer/mainmenu', 'choices', $choices);
-  input($PRIORITY, 'mplayer/mainmenu');
-  go();
-  
-  my $selection = get('mplayer/mainmenu');
-  if ($selection =~ /^Exit/) {
-    return 'Exit';
-  }
-
-  # Set to redisplay.
-  fset('mplayer/mainmenu', 'isdefault', 'true');
-
-  $_ = $selection;
-
-  return 'configure' if /^Video/;
-#  return 'aoutput' if /^Aoutput/;
-  return 'Exit';
-}
-      
-sub editreturn {
-  my @args = @_;
-  return 'mainmenu' if $isediting;
-  return @args;
-}
-
-sub editfix {
-  my $template = shift @_;
-  if ($isediting) {
-    fset($template, 'isdefault', 'true');
-  }
-}
+exit 0
--- a/debian/postinst	Sun Jan 08 17:37:48 2006 +0000
+++ b/debian/postinst	Sun Jan 08 18:33:54 2006 +0000
@@ -7,44 +7,20 @@
 use Debconf::Client::ConfModule qw(:all);
 use IO::Handle;
 use Fcntl;
-my $version = version(1.0);
-my @savedolddata = ();
+my $version = version(2.0);
 my $didupgrade = 0;
 
 dealwithupgrades();
 
 my $mcfg = new ConfHelper('mplayer', "/etc/mplayer/mplayer.conf");
-$mcfg->setconfarea("
-#MPlayer config file generated by .deb package.
-#ffactor	=	0.9
-#fs	=	yes
-");
 
-###########################################################################
 
-debug("Configuring video output driver...");
-
-my $dcarea = <<"EOF";
-# MPlayer video output driver, configured by mplayer.deb
-EOF
 
-  $dcarea .= "vo=" . scalar(get("mplayer/voutput"));
-  $dcarea .= ",\n";
-
+my $dcarea = "" ;
+my $font =  scalar(get("mplayer/ttfont"))  ;
+  $dcarea .= "#truetype font\nfont=" . $font . "\n"   if $font;
 $mcfg->setconfarea($dcarea);
 
-if ($didupgrade) {
-  $mcfg->setotherarea_DANGEROUS(@savedolddata);
-}
-
-#%###################################
-
-exit unless (get("mplayer/configure") eq 'true');
-exit unless (fget("mplayer/configure", "isdefault") eq 'false');
-
-#%##################################
-get("mplayer/cfgnote");
-
 
 
 sub dealwithupgrades {
@@ -57,31 +33,17 @@
 
   if ((get('mplayer/replace-existing-files') eq 'true') &&
       (fget('mplayer/replace-existing-files', 'isdefault') eq 'false')) {
-    print STDERR "Upgrading...\n";
-#?    saveolddata("/etc/network/interfaces", "pppconf");
     $didupgrade = 1;
-    for my $file ("/etc/mplayer/mplayer.conf"
-    #, "/etc/mplayer/fonts/sth
-    ) {
-      debug("Deleting $file");
-      unlink $file;
+    for my $file ("/etc/mplayer/mplayer.conf"    ) {
+      debug("Moving away $file");
+      rename($file,$file . ".old");
     }
   } else {
-    print STDERR "Upgrade refused, exiting.\n";
+    debug("Upgrade refused, exiting");
     exit 0;
   }
 }
 
-# Gets any debconf area for other packages and saves it off.
-
-sub saveolddata {
-  my ($file, $package) = @_;
-  my $conf = new ConfHelper($package, $file);
-  push(@savedolddata, $conf->{startline} . "\n");
-  push(@savedolddata, $conf->getconfarea());
-  push(@savedolddata, $conf->{endline} . "\n");
-}
-		  
 sub debug {
   print STDERR @_, "\n";
 }
@@ -89,6 +51,8 @@
 
 # pass control to debhelper scripts..
 #
-system <<EODEBHELPER;
+my $temp="set -e\nset -- @ARGV\n" . << 'DEBHELPER_EOF_';
 #DEBHELPER#
-EODEBHELPER
+DEBHELPER_EOF_
+system ($temp) / 256 == 0
+   or die "Problem with debhelper scripts: $!";
--- a/debian/templates	Sun Jan 08 17:37:48 2006 +0000
+++ b/debian/templates	Sun Jan 08 18:33:54 2006 +0000
@@ -2,53 +2,26 @@
 Type: boolean
 Default: true
 Description: Upgrade existing system?
- It looks like you've configured your mplayer already.
- If you'd like to configure it with this program, I'll have
- to delete the old configuration.  Do you want to continue
- configuration with this program?  If you say "yes", I'll go ahead
- and delete your old configuration and you can create it anew with
- this program. 
+ It looks like you've configured MPlayer already. If you'd like to
+ configure it with this program, I'll have to delete the old
+ configuration /etc/mplayer/mplayer.conf.  Do you want to continue
+ configuration with this program?  If you say "Yes", I'll go ahead and
+ delete your old configuration and you can create it anew with this
+ program.  If you say "No" I'm going to exit now since you don't want
+ me to replace your existing files.  If you change your mind later,
+ you can run 'dpkg-reconfigure mplayer'.
 
-Template: mplayer/replace-existing-files-bail
-Type: note
-Description: Files not replaced
- I'm going to exit now since you don't want me to replace your
- existing files.  If you change your mind later, you can run
- dpkg-reconfigure mplayer.
-
-Template: mplayer/mainmenu
-Type: select
-Choices: ${choices}, Exit
-Description: MPlayer Main Menu
- From this menu, you can modify any of the settings for your device.
- Simply select the item you'd like to change to modify it.
- When you are done, select Exit.
-
-Template: mplayer/voutput
+Template: mplayer/ttfont
 Type: select
-Default: xv
-Choices: ${vochoices}
-Description: MPlayer Video Output
-  MPlayer can use very wide range of video output drivers:
- ( order aproximately by speed: )
- 	 * mga, xmga - direct hardware access on MGA cards (G200/400/450), needs /dev/mga_vid
- 	   this driver can work without X and display video on secondary head of matrox cards
- 	 * xv - XVideo extensions of X 4.x ( hardware scaling, bilinear filtering )
- 	 * sdl - SDL library, it can also use hardware scaling, filtering etc 
- 	 * ggi - GGI library, it can also use hardware scaling, filtering etc 
- 	 * dga, fsdga - DGA extension.
- 	 * fsbdev - framebuffer device ( watching movies on text console )
- 	 * x11 - simple x11 output.
- .	 
- Please choose carefully because this will have a tremendous effect on speed.
+Choices: ${ttfontchoices}
+Default: ${ttfontdefault}
+Description: MPlayer fonts
+ MPlayer can use TrueType fonts to render the OSD and subtitles.
+ Choose your favorite.
 
-Template: mplayer/cfgnote
+Template: mplayer/no-ttfont
 Type: note
-Description: Create your ~/.mplayer/conf file.
- Remember to read documentation and edit your ~/.mplayer/conf
- (or /etc/mplayer.conf) file. This binary depends heavily on
- your hardware - which means that it needs tweaking for every single
- machine it's installed to. And it also it means that it will use
- your setup very effectively. Look at /usr/share/doc/mplayer
- end
-
+Description: MPlayer cannot find TrueType fonts
+ You should install a package providing TrueType fonts (such as
+ 'ttf-freefont' or 'ttf-bitstream-vera' or  'msttcorefonts' )
+ and reconfigure mplayer.