Norbert Preining <[EMAIL PROTECTED]> wrote:

> On Fre, 29 Sep 2006, Frank Küster wrote:
>> The same applies for some other suggestions with respect to texlive
>> packaging that I have in mind, but not yet found time to write them
>> down. 
>
> Please take your time and write it down...

Okay, here we go.

>From a Perl point of view, the tpm2deb.pl script is fun to work with, at
least for me who's not a guru.  It's cleanly written, with functions
that exactly do what they are made for, etc.

However, I think it's not so good from a collective maintenance point of
view:  There are two many pieces of information, or strings that end up
somewhere in the debian/ directory, cluttered throughout the script.  It
would be much better to separate all this out to either a configuration
file, or to separate files.  

As an example for "to a configuration file", take this patch that I
prepared long ago, but never submitted (and that is probably outdated):

@@ -29,6 +30,18 @@
 # please see the README file in the pkg-texlive svn repository of the
 # debian-tex project on alioth.debian.org
 
+# configuration items for all texlive packages
+my $debsection    = "Section: tex\n";
+my $debpriority   = "Priority: optional\n";
+my $debmaintainer = 'Maintainer: Debian TeX Maintainers <[EMAIL 
PROTECTED]>'."\n";
+my $debuploaders  = 'Uploaders: Norbert Preining <[EMAIL PROTECTED]>', "\n";
+my $debstandardsversion = "Standards-Version: 3.7.2\n";
+
+# and special ones for some
+my $base_bin_provides = "Provides: dvipdfm\n";
+my $extra_utils_provides = "Provides: cweb, ctie, texdoctk\n";
+my $ctanlist_heading = " .\n This package includes the following CTAN 
packages:\n";
+
 BEGIN {   # get our other local perl modules.
        ($mydir = $0) =~ s,/[^/]*$,,;
        if ($mydir eq $0) { $mydir = `pwd` ; chomp($mydir); }
@@ -766,17 +779,17 @@
        local $foo;
        myopen(CONTROL,">$destfname") || die("Cannot open $destfname!\n");
        print CONTROL "Source: $package\n";
-       print CONTROL "Section: tex\n";
-       print CONTROL "Priority: optional\n";
-       print CONTROL 'Maintainer: Debian TeX Maintainers <[EMAIL 
PROTECTED]>'."\n";
-       print CONTROL 'Uploaders: Norbert Preining <[EMAIL PROTECTED]>', "\n";
+       print CONTROL $debsection ;
+       print CONTROL $debpriority ;
+       print CONTROL $debmaintainer ;
+       print CONTROL $debuploaders ;
        if (defined($BuildDep{$package})) {
                print CONTROL "Build-Depends: $BuildDep{$package}\n";
        }
        if (defined($BuildDepIndep{$package})) {
                print CONTROL "Build-Depends-Indep: $BuildDepIndep{$package}\n";
        }
-       print CONTROL "Standards-Version: 3.7.2\n";
+       print CONTROL $debstandardsversion;
        #
        # now start the individual packages
        #
@@ -858,47 +871,47 @@
...

taking this out into a separate configfile is the next step.  A good
example for an external file is the function create_rules_file which
contains lots of 

print RULES <<EOP
...Makefile snippet...
EOF

This would also be better in separate files:  You can more easily find
and change it, without caring for the Perl inside.  Heck, even the
Python people could happily provide patches ;-).

With proper names for the configuration variables and separate files,
much of the "we should really document this" would already be resolved. 

That is how far I got...

Regards, Frank
-- 
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX/TeXLive)

Reply via email to