wiki:DistributionPackaging

Version 36 (modified by Bruno Cornec, 15 years ago) ( diff )

--

SVN repository Management

First you need to get the content of the SVN repository:

    # cd /to/desired/path 
    # svn checkout svn://svn.mondorescue.org/mondorescue/branches/stable

or

    # svn checkout svn://svn.mondorescue.org/mondorescue/trunk

?MondoRescue dependencies

In order to build and run MondoRescue suite you need:

to build:

  • newt-devel >= 0.50, gcc-c++, gcc

to run:

  • afio/star, buffer, bzip2 >= 0.9, mkisofs/genisofs, ncurses, binutils, gawk, dosfstools, parted, perl, mtools, which, grep >= 2.5, syslinux >= 1.52, elilo, binutils, newt >= 0.50, cdrecord/growisofs/wodim

Package build process

This is currently working for a lot of distributions (including Fedora, Mandriva, openSuSE, RHEL, SLES, debian, ubuntu, gentoo) In order to build mondo and mindi packages, you need to use the project-builder tool. From the last 2.2.x SVN tree extracted you need to launch:

# pb -p mondorescue cms2pkg

which will create for you both the compressed tar files (step cms2build) and then from those the packages (step build2pkg)

If you have or want to create virtual machines of other distributions that you want to generate packages for, you ave to build and set them u using:

pb -p mondorescue -m distro-version-arch -i distro-dvd.iso newvm
pb -p mondorescue -m distro-version-arch setupvm

Then you can use pb to generate packages for that distro by doing:

pb -p mondorescue -m distro-version-arch cms2vm

which will create for you both the compressed tar files (step cms2build) and then from those the packages in the VM (step build2vm), and get them back and send them to a server with ssh.

An evolution is planned for RPM packages to create hierarchies of package to ease deployment :

                                 mondorescue
                                     |
       ----------------------------------------------------------------
       |                      |              |                        |
   mondorescue-tape     mondorescue-cd   mondorescue-nfs           .....
         |                    |              |
-------------------     --------------   ---------------
|       |         |     |      |     |   |       |
mt   buffer       |     |   cdrecord     |     nfs-utils
                  mondo-/----------------/
                    |
                    ----------------------------------------------------
                    |                |           |           |         |
                  mindi            afio       mkisofs       newt   syslinux
                    |
               mindi-busybox

RPM rebuild process

From the sources rpm packages the nearest from your distro (that you can get from ftp://ftp.mondorescue.org), you may build packages for your target distribution by doing:

# rpm -ivh mindi*.src.rpm mondo*.src.rpm
# rpmbuild -ba /usr/src/*/SPECS/mondo.spec 
# rpmbuild -ba /usr/src/*/SPECS/mindi.spec 
# rpmbuild -ba /usr/src/*/SPECS/mindi-busybox.spec 
# rpm -ivh /usr/src/*/RPMS/*/mondo*.*.rpm /usr/src/*/RPMS/*/mindi*.*.rpm 

File rebuild process

From the tar.gz files available under ftp://ftp.mondorescue.org/src, you may build and install MondoRescue by doing for each package:

# tar xvfz mondo*tar.gz
# cd mondo*
# ./configure
# make
# make install
# cd .. 
# tar xvfz mindi-busybox*tar.gz
# cd mindi-busybox*
# ./configure
# make
# make install
# cd .. 
# tar xvfz mindi-[0-9]*tar.gz
# cd mindi-[0-9]*
# 
# ./install.sh
# cd ..

Applying patches

You may want to apply patches to a given version of mondo and/or mindi in order to fix an annoying issue. Look at SVN through that interface. Say that you want to apply revision 1488 which was issued after 2.2.3 of mondo to your 2.2.3 version to fix OCFS support.

First save the revision under /tmp as a patch file format (Use the Unified Diff link at the bottom of the changeset page) Then use the previous File Rebuild Process paragraph, but before calling make to build the software, apply your previously saved patch by doing

cd /tmp
wget ftp://ftp.mondorescue.org/src/mondo-2.2.3.tar.bz2
wget "http://trac.mondorescue.org/changeset/1488?format=diff"
tar xvfj mondo-2.2.3.tar.bz2
cd mondo-2.2.3
patch -s -p3 < ../1488\?format=diff

After that you may have to solve conflicts (due to the fact that as in this case the patch doesn't apply cleanly as other patches in the middle are missing) Then again you can use the configure ; make ; make install trilogy.

Debian related info

Location of mondo and mindi official Debian packages

QA for Debian

Status for testing

Bug tracking

Location of mondo and mindi pre-releases Debian packages

This directory contains pre-releases of Mondo Rescue Debian packages. They may not be production quality. You have been warned.

However, you are more than welcome to try them and provide feedback. Please email andree_at_debian_dot_org or preferably the Mondo Rescue mailing list at mondo-devel_at_lists_dot_sourceforge_dot_net both in case of success or lack thereof.

If you have no idea what to do with these packages, Andree suggests you just use the ones that come with Debian proper instead.

Location of mondo and mindi Backports for Debian Sarge 3.1 by Lubos

Location of mondo and mindi un-official SuSE packages by Mike

Info for Slackware packaging

Info for Mandriva official packaging

Latest packages for cooker are available at :

Build process status :

Info for Trixbox distro

Info for Fedora official packaging

Info for Gentoo official packaging

Info for Arch Linux

Info for FreeBSD packaging

Location of mondo and mindi Files

DistributionsFile base install
/usr/sbin/mindi/usr/local/sbin/mindi
/usr/sbin/analyze-my-lvm/usr/local/sbin/analyze-my-lvm
/usr/sbin/mondoarchive/usr/local/sbin/mondoarchive
/usr/sbin/mondorestore/usr/local/sbin/mondorestore
/etc/m?nd?/usr/local/etc/m?nd?
/usr/share/doc/m?nd?*/usr/local/share/doc/m?nd?*
/usr/share/man/man8/m?nd?*.8/usr/local/share/man/man8/m?nd?*.8
/usr/lib/mindi/usr/local/lib/mindi
/usr/share/mondo/usr/local/share/mondo

Installing from YUM

The ftp site is also set up as a yum repository. You can install and update your mindi/mondo packages using yum. First create a file in your yum repo directory like the following (you may download it from our ftp server in each fedora/version directory). Note that this sample is for fedora. You will need to edit a bit for other distros.

[root@tesla yum.repos.d]# cat mondo.repo

[mondorpms]
name=Fedora Core $releasever - mondo
baseurl=ftp://ftp.mondorescue.org/fedora/$releasever/
#gpgkey=http://somethin/RPM-GPG-KEY
enabled=1
gpgcheck=0

Such a file is now automatically produced by project-builder in available on the ftp srver at the same place s the pacakges.

Now just use the command:

# yum install mondo
or 
# yum update mondo

yum will discover that mindi is a dependency for mondo and add it to your list.

project-builder also generates debin configuration files for apt so that you can use our repositories to apt-get install your packages more easily. However look for CAVEAT

Note: See TracWiki for help on using the wiki.