On Mon, Apr 12, 2004 at 05:55:22AM +0300, Shlomi Fish wrote:
> Hi good people!
> 
> I have developed Quad-Pres, which is a presentation tool based on Perl and Web 
> Meta Language (http://thewml.org/) first for my own use and now distribute as 
> open source software.

WML is mostly some perl modules. You should package them. There are a
number of useful scripts for that (e.g: cpanflute). So you should
package them separately.

If QuadPres has some perl scripts/modules that use those modules then an
automatic dependency will be created.

(You may need to add a build-time dependency, though)

I installed WML on a certain Mandrake 9.2 system recently. I'll see if I
can find the rpm I made.

> 
> Now, up to now, after I revamped the program to be centralized in the system, 
> I used GNU Autoconf and Automake to manage the program's "compilation" and 
> installation. The problem is that now I have several tests and the process 
> I'm using to invoke them from Autoconf is "icky": it's slow, cumbersome and 
> unfit for a Perl program.
> 
> I'm looking for a nice alternative installer, preferablly written in Perl 
> (which I can already assume is installed there), that I can use to perform 
> the preparation, testing and installation. Rolling something on my own should 
> not be too hard, but I'd rather use an available solution if possible. 
> 
> I'll describe here what the various components of the program do and how they 
> are installed: (you can skip to the requirements below)
> 
> 1. First there's the quadp Perl executable that invokes the appropriate Perl
> module that is installed, not in the standard perl path but in it's own 
> dedicated path. This executable is used as a wrapper for all user-land 
> commands.

There is always cons and such programs. However this (IIRC) requires a
non-standard program, unlike configure that only requires the basic
core-utils.

> 
> 2. Under /usr/share/quad-pres/perl5/ several Perl modules are present that
> perform most of the logic of the command line program, as well as some of that
> that is provided as an extension to the Web Meta Language code. (see below).
> This code should be somehow @INC'ed into all invocations of the program.


> 
> 3. Under /usr/share/quad-pres/wml/ lies a hierarchy of web meta language 
> include files. Now Web Meta Language is a very powerful processor for HTML 
> files and it has ePerl as one of its passes. This ePerl in turn calls logic 
> from the modules in #2. quadp and its supporting scripts (see below) invoke
> the wml interpreter with a this directory in the include path.

Why do you assume that the user does not have WML installed? Make it a
separate package and install it to its standard localtion.

> 
> 4. Under /usr/share/quad-pres/scripts there are several scripts written in 
> Perl that are invoked by the quadp+modules Perl code to perform several tasks. 
> These are largely remnants of the history of Quad-Pres and I'm now seriously 
> considering integrating their logic into the main quadp code.
> 
> 5. There's a man page at /usr/share/man/man1/quadp.1.(bz2|gz)

%{_mandir}/man1/quadp.1*

Different distros will use different ocmpression methods (RH: gz, MDK:
bz2). The compression is done automatically in the scripts that run
after the %install phase.

> 
> 6. There are some documents under /usr/share/doc.

%doc

> 
> ------------------
> 
> Basically, what the installer needs to do is:
> 
> 1. Temporarly install all the components in a local path for easy testing.
> 
> 2. Determine the prefix from the command line (an Autoconf like --prefix) and 
> be able to install everything there. (with a modified prefix for the local 
> installation)

Makefile.PL should support this. Why reinvent the wheel?

> 
> 3. Determine the location of the Perl interpreter and set the #!-locations in 
> the quadp executable and scripts accordingly.
> 
> 4. Pre-process some Perl files for them to contain the path under which 
> everything was installed.
> 
> 5. Process files from a directory tree that corresponds to what will later be 
> installed.

-- 
Tzafrir Cohen                       +---------------------------+
http://www.technion.ac.il/~tzafrir/ |vim is a mutt's best friend|
mailto:[EMAIL PROTECTED]       +---------------------------+

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to