[campsite-dev] RPM installer
  • Hi Mugur

    On Sava's request, I've just spent an hour or two looking at the task of
    putting together an RPM for the new campsite version, but the following
    problems are getting in the way. These are pretty similar to the earlier
    problems I had with version 2.2.2's RPM but because many files have
    changed, I can't just reapply my patch from last time without looking
    carefully at everything again.

    I wonder if you have any comments on the following items? I am going to
    propose that I patch against a side-branch of the CVS (SVN?) repository,
    so that my changes get saved for easy reuse in later versions. Would be
    happy with that idea? If I build an RPM now, I want not to have to go
    through all the details of these things again in the lext version.
    Several of the issues will disappear when we move to Smarty, but not all
    of them.

    Cheers
    JP

    * "make install" doesn't just install files. Current campsite "make
    install" downloads and installs third-party PEAR components, and
    uses some nonstandard environment variables.
    * Changes are required to backup_instance and related scripts to
    ensure correct behaviour when called just so from commandline
    * php-adodb is bundled with campsite but is also available as
    independent RPM. The independent RPM should be used if at all
    possible.
    * PEAR modules are downloaded by campsite installer even if a PEAR
    RPM has been correctly installed.
    * correct override of BIN_DIR with $PREFIX/bin doesn't occur, also
    it seems to be assumed that campsite binaries are located in a
    directory of their own eg /usr/local/campsite/bin; this is not
    standard practise, standard would be /usr/local/bin (or /usr/bin
    in the case of a package/distro installation).
    * The nature of the make.env file is such that the install location
    can not simply be overridden using make prefix=/var/www/campsite
    install, since ALL environment variables must be overridden.
    Current use of the make.env file causes difficulties in building
    an RPM. A better make.env file would take the form eg BIN_DIR =
    $(PREFIX)/bin etc. Or maybe no make.env at all, just commandline
    overrides.
    * An aside: must the install scripts be located in a hidden folder?
    * Utility scripts need should be renamed with a campsite_ prefix so
    that they are not ambiguous in the shell commandline namespace.
    Many of these will remain even after the move to the Smarty parser.

    ------------------------------------------
    Posted to Phorum via PhorumMail
  • 3 Comments sorted by
  • >From my point of view I need only one think respected:
    default install should not ask any questions during its run.
    So untill you keep the process:
    configure
    make
    make install
    I am fine with it.

    About pear dependencies, I have no idea how to mark that as dependency,
    because those are no packages. Therefore I would like to have a chance
    to run some script that installs these dependencies and you can remove
    them from make install

    The install in FreeBSD port system has its own Makefile and through it I
    will install all staff anyways.
    I also plan to create patches that eliminate a need of bash symlink etc.

    Ondra


    On Tue, 2005-08-02 at 10:55 +1000, John Pye wrote:
    > Hi Mugur
    >
    > On Sava's request, I've just spent an hour or two looking at the task of
    > putting together an RPM for the new campsite version, but the following
    > problems are getting in the way. These are pretty similar to the earlier
    > problems I had with version 2.2.2's RPM but because many files have
    > changed, I can't just reapply my patch from last time without looking
    > carefully at everything again.
    >
    > I wonder if you have any comments on the following items? I am going to
    > propose that I patch against a side-branch of the CVS (SVN?) repository,
    > so that my changes get saved for easy reuse in later versions. Would be
    > happy with that idea? If I build an RPM now, I want not to have to go
    > through all the details of these things again in the lext version.
    > Several of the issues will disappear when we move to Smarty, but not all
    > of them.
    >
    > Cheers
    > JP
    >
    > * "make install" doesn't just install files. Current campsite "make
    > install" downloads and installs third-party PEAR components, and
    > uses some nonstandard environment variables.
    > * Changes are required to backup_instance and related scripts to
    > ensure correct behaviour when called just so from commandline
    > * php-adodb is bundled with campsite but is also available as
    > independent RPM. The independent RPM should be used if at all
    > possible.
    > * PEAR modules are downloaded by campsite installer even if a PEAR
    > RPM has been correctly installed.
    > * correct override of BIN_DIR with $PREFIX/bin doesn't occur, also
    > it seems to be assumed that campsite binaries are located in a
    > directory of their own eg /usr/local/campsite/bin; this is not
    > standard practise, standard would be /usr/local/bin (or /usr/bin
    > in the case of a package/distro installation).
    > * The nature of the make.env file is such that the install location
    > can not simply be overridden using make prefix=/var/www/campsite
    > install, since ALL environment variables must be overridden.
    > Current use of the make.env file causes difficulties in building
    > an RPM. A better make.env file would take the form eg BIN_DIR =
    > $(PREFIX)/bin etc. Or maybe no make.env at all, just commandline
    > overrides.
    > * An aside: must the install scripts be located in a hidden folder?
    > * Utility scripts need should be renamed with a campsite_ prefix so
    > that they are not ambiguous in the shell commandline namespace.
    > Many of these will remain even after the move to the Smarty parser.
    >
    >
    >

    ------------------------------------------
    Posted to Phorum via PhorumMail
  • Hey Ondra

    Having no questions during install is a fundamental requirement of RPM
    installs as well.

    This means that 'create_instance' will always needs to be installed
    after the RPM has been installed, to access the database and perform all
    database initialisation stuff, interactively, using a local mysql
    password. This can't be done during installation because the mysql root
    password can't be known, and it shouldn't be guessed because that would
    leave the installation in an indeterminate state.

    Pear dependencies are fine, there are RPM packages with the minimal set
    of PEAR dependencies required. The default location on Red Hat is
    /usr/share/pear, dunno about other systems. (I have seen versions of
    RPM, in pl-linux, which can automatically detect PEAR dependencies but
    this is not provided in FC3, it must have been a bit flakey).

    I noticed that there is a project, I think it was called pkgconfig, that
    allows both DEB and RPM packages to be build from a common spec file,
    but this only works with autotools-based builds. I know that this
    wouldn't help you with BSD, you have a different system.

    Making RPMs requires that different parameters be passed to the "make
    install" step versus the "configure" step. This is because the
    "configure" step sets up and config files required by the software (eg
    locations of installed files) but compiles files in a local/temp
    directory, whereas the "make install" step copies the files into a
    SPECIAL location which RPM then inspects in order to find the files
    which comprise the package. If the distinction between these two steps
    is not clearly maintained in the install process, then it becomes rather
    messy to construct a clean RPM build.

    I understand that DEB packages have a very similar requirement to this;
    DEB packages also require files to be installed into their own little
    private 'filesystem'.

    JP

    Ondra Koutek wrote:

    >>From my point of view I need only one think respected:
    >default install should not ask any questions during its run.
    >So untill you keep the process:
    >configure
    >make
    >make install
    >I am fine with it.
    >
    >About pear dependencies, I have no idea how to mark that as dependency,
    >because those are no packages. Therefore I would like to have a chance
    >to run some script that installs these dependencies and you can remove
    >them from make install
    >
    >The install in FreeBSD port system has its own Makefile and through it I
    >will install all staff anyways.
    >I also plan to create patches that eliminate a need of bash symlink etc.
    >
    >Ondra
    >
    >
    >On Tue, 2005-08-02 at 10:55 +1000, John Pye wrote:
    >
    >
    >>Hi Mugur
    >>
    >>On Sava's request, I've just spent an hour or two looking at the task of
    >>putting together an RPM for the new campsite version, but the following
    >>problems are getting in the way. These are pretty similar to the earlier
    >>problems I had with version 2.2.2's RPM but because many files have
    >>changed, I can't just reapply my patch from last time without looking
    >>carefully at everything again.
    >>
    >>I wonder if you have any comments on the following items? I am going to
    >>propose that I patch against a side-branch of the CVS (SVN?) repository,
    >>so that my changes get saved for easy reuse in later versions. Would be
    >>happy with that idea? If I build an RPM now, I want not to have to go
    >>through all the details of these things again in the lext version.
    >>Several of the issues will disappear when we move to Smarty, but not all
    >>of them.
    >>
    >>Cheers
    >>JP
    >>
    >> * "make install" doesn't just install files. Current campsite "make
    >> install" downloads and installs third-party PEAR components, and
    >> uses some nonstandard environment variables.
    >> * Changes are required to backup_instance and related scripts to
    >> ensure correct behaviour when called just so from commandline
    >> * php-adodb is bundled with campsite but is also available as
    >> independent RPM. The independent RPM should be used if at all
    >> possible.
    >> * PEAR modules are downloaded by campsite installer even if a PEAR
    >> RPM has been correctly installed.
    >> * correct override of BIN_DIR with $PREFIX/bin doesn't occur, also
    >> it seems to be assumed that campsite binaries are located in a
    >> directory of their own eg /usr/local/campsite/bin; this is not
    >> standard practise, standard would be /usr/local/bin (or /usr/bin
    >> in the case of a package/distro installation).
    >> * The nature of the make.env file is such that the install location
    >> can not simply be overridden using make prefix=/var/www/campsite
    >> install, since ALL environment variables must be overridden.
    >> Current use of the make.env file causes difficulties in building
    >> an RPM. A better make.env file would take the form eg BIN_DIR =
    >> $(PREFIX)/bin etc. Or maybe no make.env at all, just commandline
    >> overrides.
    >> * An aside: must the install scripts be located in a hidden folder?
    >> * Utility scripts need should be renamed with a campsite_ prefix so
    >> that they are not ambiguous in the shell commandline namespace.
    >> Many of these will remain even after the move to the Smarty parser.
    >>
    >>
    >>
    >>
    >>
    >
    >
    >
    >

    ------------------------------------------
    Posted to Phorum via PhorumMail
  • Hi John,

    Here are my comments:

    > * "make install" doesn't just install files. Current campsite "make
    > install" downloads and installs third-party PEAR components, and
    > uses some nonstandard environment variables.
    Yes, I had to do this in order to make the install process easier.

    > * Changes are required to backup_instance and related scripts to
    > ensure correct behaviour when called just so from commandline
    Yep, I know, bug "1212: Backup/restore instance scripts broken?", I may be able
    to fix it for 2.3.1

    > * php-adodb is bundled with campsite but is also available as
    > independent RPM. The independent RPM should be used if at all
    > possible.
    Can you make a patch for the install scripts to handle this case?

    > * PEAR modules are downloaded by campsite installer even if a PEAR
    > RPM has been correctly installed.
    Can you make a patch for the install scripts to handle this case?

    > * correct override of BIN_DIR with $PREFIX/bin doesn't occur, also
    > it seems to be assumed that campsite binaries are located in a
    > directory of their own eg /usr/local/campsite/bin; this is not
    > standard practise, standard would be /usr/local/bin (or /usr/bin
    > in the case of a package/distro installation).
    Well, many open source applications are configured by default to install in
    their own directory (see apache for example): /usr/local/[app_name]. What you
    see in distros: binaries located in /bin, /usr/bin etc. is because they (the
    distro builders) configure the packages this way. The same with Campsite: you
    can configure it to any directory you want.

    > * The nature of the make.env file is such that the install location
    > can not simply be overridden using make prefix=/var/www/campsite
    > install, since ALL environment variables must be overridden.
    > Current use of the make.env file causes difficulties in building
    > an RPM. A better make.env file would take the form eg BIN_DIR =
    > $(PREFIX)/bin etc. Or maybe no make.env at all, just commandline
    > overrides.
    I need some place to put my configuration attributes. I can certainly change
    BIN_DIR to $(PREFIX)/bin instead of the fixed path but I can't give up make.env

    > * An aside: must the install scripts be located in a hidden folder?
    No

    > * Utility scripts need should be renamed with a campsite_ prefix so
    > that they are not ambiguous in the shell commandline namespace.
    > Many of these will remain even after the move to the Smarty parser.
    Yep, I saw the bug but don't know when I'll have time to take care of this RPM
    part.

    Mugur

    --- John Pye wrote:
    > Hi Mugur
    >
    > On Sava's request, I've just spent an hour or two looking at the task of
    > putting together an RPM for the new campsite version, but the following
    > problems are getting in the way. These are pretty similar to the earlier
    > problems I had with version 2.2.2's RPM but because many files have
    > changed, I can't just reapply my patch from last time without looking
    > carefully at everything again.
    >
    > I wonder if you have any comments on the following items? I am going to
    > propose that I patch against a side-branch of the CVS (SVN?) repository,
    > so that my changes get saved for easy reuse in later versions. Would be
    > happy with that idea? If I build an RPM now, I want not to have to go
    > through all the details of these things again in the lext version.
    > Several of the issues will disappear when we move to Smarty, but not all
    > of them.
    >
    > Cheers
    > JP
    >
    > * "make install" doesn't just install files. Current campsite "make
    > install" downloads and installs third-party PEAR components, and
    > uses some nonstandard environment variables.
    > * Changes are required to backup_instance and related scripts to
    > ensure correct behaviour when called just so from commandline
    > * php-adodb is bundled with campsite but is also available as
    > independent RPM. The independent RPM should be used if at all
    > possible.
    > * PEAR modules are downloaded by campsite installer even if a PEAR
    > RPM has been correctly installed.
    > * correct override of BIN_DIR with $PREFIX/bin doesn't occur, also
    > it seems to be assumed that campsite binaries are located in a
    > directory of their own eg /usr/local/campsite/bin; this is not
    > standard practise, standard would be /usr/local/bin (or /usr/bin
    > in the case of a package/distro installation).
    > * The nature of the make.env file is such that the install location
    > can not simply be overridden using make prefix=/var/www/campsite
    > install, since ALL environment variables must be overridden.
    > Current use of the make.env file causes difficulties in building
    > an RPM. A better make.env file would take the form eg BIN_DIR =
    > $(PREFIX)/bin etc. Or maybe no make.env at all, just commandline
    > overrides.
    > * An aside: must the install scripts be located in a hidden folder?
    > * Utility scripts need should be renamed with a campsite_ prefix so
    > that they are not ambiguous in the shell commandline namespace.
    > Many of these will remain even after the move to the Smarty parser.
    >
    >
    >
    >


    __________________________________________________
    Do You Yahoo!?
    Tired of spam? Yahoo! Mail has the best spam protection around
    http://mail.yahoo.com

    ------------------------------------------
    Posted to Phorum via PhorumMail