Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation and package building process #689

Closed
erszcz opened this issue Feb 26, 2016 · 5 comments
Closed

Installation and package building process #689

erszcz opened this issue Feb 26, 2016 · 5 comments

Comments

@erszcz
Copy link
Member

erszcz commented Feb 26, 2016

We need a repeatable .deb and .rpm package building process. Ideally, as much of the support scripts and configuration between the two should be shared. The first checkpoint on this path would be to make sure the standard procedure of cloning followed by:

./configure PREFIX=/my/install/destination
make
make install

works as expected. Then, during the package building process we can use the above procedure to generate the files which will be shipped in the package. The install rule will most probably need to define an extra level of parameters (e.g. DESTDIR used in Debian package building process) which ought to have sane defaults for the case of installing directly from source, but be overridden for installation in a sandbox when building a package.

A convenient interface for triggering a build would be a repository following the Infrastructure as Code pattern. To build a package, we would:

  • clone the repo containing access configuration of the build host/farm infrastructure (hostnames, IPs, identities, ...)
  • run a script, e.g. build deb, build rpm, ...

For as long as the working directory of this repo is intact, we retain all logs and generated artifacts locally. Artifacts may, but don't have to be stored remotely on the build host (I'm not sure what's the current approach).

@michalwski
Copy link
Contributor

We have to remember to create the installation in a way that keeps logs, mnesia, cfg files (maybe sth else) files in directories like:

  • PREFIX/var/log/mongooseim - for logs
  • PREFIX/var/lib/mongooseim - for mnesia
  • PREFIX/etc/mongooseim - for config files

Basically follow the "good practices" for software packages whatever they are.

@michalwski
Copy link
Contributor

Re repo, I would say that this .deb and .rpm scripts should be kept in main repo, which means here.
If we use go.cd for building the packges, than artifacts can be stored there and later pushed either to github release or erlang-solutions.com download section.

@michalwski
Copy link
Contributor

Related issues: #612, #432

@michalwski michalwski added this to the MongooseIM 1.7.0 milestone Feb 26, 2016
@erszcz
Copy link
Member Author

erszcz commented Feb 26, 2016

The remark from #448 applies:

made etc/app.config and bin/mongooseim templates so that the log path can be set uniformly for logs from within the server as well as logs created by the runner script (i.e. bin/mongooseim)

Therefore, configure should take the above into account and supply sensible values to the templates for etc/app.config and bin/mongooseim. Sensible is quite probably dependent on the target: Debian, RedHat, ...

@fenek
Copy link
Member

fenek commented May 29, 2019

We have package building scripts in our repo now.

@fenek fenek closed this as completed May 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants