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]