wiki:DistributionPackaging

Version 6 (modified by Bruno Cornec, 18 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

Then depending on your distribution you'll have to follow one of the following recipe:

Debian

(Note from Bruno: Andree, it's probably outdated, and I think the RPM procedure also works here)

  1. for mondo package, cd into mondo directory and run ./bootstrap
  2. rename package directory: <package>-<latest release><branch><yymmdd>
    Note: <branch> = 'bt' for berlios trunk and 'bb' for berlios branch
  3. create tarball: tar cvzf <package>_<latest release><branch><yymmdd>.orig.tar.gz <package>-<latest release><branch><yymmdd>
  4. create new directory <package>-<latest release><branch><yymmdd>-1
  5. copy tarball in new directory and unpack there
  6. cd into tarball directory
  7. copy debian directory from last package
  8. dch --newversion <latest release><branch><yymmdd>-1
  9. build ;-)

Ubuntu

You will need to rebuild the packages, though (mainly because of library differences):

  1. get <prg_ver>.dsc, <prg_ver>.orig.tar.gz and <prg_ver>.diff.gz files
  2. unpack source with dpkg-source -x <program>.dsc
  3. change into new directory <prg-ver>
  4. run dpkg-buildpackage -rfakeroot -us -uc
  5. install all missing packages for building and repeat
  6. install using dpkg -i <prg_ver>.deb
  7. if this fails install all missing binary dependencies and repeat

You need to do this for mindi, mondo and mindi-busybox.

(On Ubuntu I suggest to use sudo bash to get a root shell rather than sudo'ing every command.)

RPM Based Distributions

This has currently only be tested with RedHat Enterprise Linux 3 and 4, Fedora Core 4/5, SLES 9, !OpenSuSE 10 and Mandriva 10.2/2005 and 2006.0

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/i?86/mondo*.i?86.rpm /usr/src/*/RPMS/i?86/mindi*.i?86.rpm 

Or from the stable SVN tree extracted:

# tools/svn2build 

which will create for you a build directory (under ../../build/stable-1) with the tar files containing the version expanded

then you can call

# tools/build2pkg 

in order to produce local packages for your distribution.

If you have virtual machines of other distributions that you want to generate packages for, then after setting them up following the documentation under tools/qemu-vm.txt you can call:

# tools/build2qemu 

to produce packages for all supported distros (in tools/DISTROS)

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

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
Note: See TracWiki for help on using the wiki.