== 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 == Subversion 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 [http://trac.project-builder.org project-builder] tool and install the project-builder and perl-ProjectBuidler - or similar for Debian like - packages. From the last 3.x SVN tree extracted you need to launch: {{{ $ cat >> ~/.pbrc << EOF pbconfurl mondorescue = svn+ssh://user@mondo.hpintelco.org/prj/svn/pb/projects/mondorescue/pbconf # Adapt to fit your needs pbprojdir mondorescue = $ENV{'HOME'}/mondo/svn pburl mondorescue = svn+ssh://user@mondo.hpintelco.org/prj/svn/mondorescue EOF $ pb -p mondorescue -r branches/3.0 sbx2pkg }}} which will create for you both the compressed tar files (step sbx2build) and then from those the packages (step build2pkg) If you have or want to create virtual machines for other distributions that you want to generate packages for, you have to build and set them up 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 sbx2vm }}} 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 }}} == 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 VERSION=2.2.9.3 # make install # mkdir -p /usr/local/var/cache/mondo # cd .. # tar xvfz mindi-busybox*tar.gz # cd mindi-busybox* # make # make install # cd .. # tar xvfz mindi-[0-9]*tar.gz # cd mindi-[0-9]* # ./install.sh # cd .. }}} == 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 }}} On RHEL6 the yum command required to install dependencies needed for pb build is: {{{ wget http://mirror.centos.org/centos/6/os/x86_64/Packages/slang-devel-2.2.1-1.el6.x86_64.rpm wget http://mirror.centos.org/centos/6/os/x86_64/Packages/newt-devel-0.52.11-2.el6.x86_64.rpm rpm -Uvh slang-devel-2.2.1-1.el6.x86_64.rpm newt-devel-0.52.11-2.el6.x86_64.rpm yum install -y subversion autoconf automake libtool docbook2x dvips ImageMagick gcc-c++ docbook-utils-pdf }}} For version 3.2.x onward, you'll need additional perl packages, not part of the distribution but part of EPEL. Install first the epel-release package from http://mir01.syntis.net/epel/6/i386/repoview/epel-release.html: {{{ rpm -Uvh http://mir01.syntis.net/epel/6/i386/epel-release-6-8.noarch.rpm }}} == !Debian/Ubuntu rebuild process == Obtain the sources needed from your distro: {{{ % cd /usr/local/src % sudo apt-get source mondo % sudo apt-get source mindi % sudo apt-get source mindi-busybox }}} or download a tar source archive from ftp://ftp.mondorescue.org. Then you may build packages by doing: {{{ % tar xvfz mondo*tar.gz % cd mondo* % sudo apt-get build-dep mondo % debuild -us -uc % cd .. % sudo dpkg -i mondo_*.deb % tar xvfz mindi-busybox*tar.gz % cd mindi-busybox* % sudo apt-get build-dep mindi-busybox % debuild -us -uc % cd .. % sudo dpkg -i mindi-busybox_*.deb % tar xvfz mindi-[0-9]*tar.gz % cd mindi-[0-9]* % sudo apt-get build-dep mindi % debuild -us -uc % cd .. % sudo dpkg -i mindi-busybox_*.deb }}} == 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 [http://trac.mondorescue.org/browser that] interface. Say that you want to apply [http://trac.mondorescue.org/changeset/1488 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 === * ftp://ftp.debian.org/debian/pool/main/m/mondo * ftp://ftp.debian.org/debian/pool/main/m/mindi * ftp://ftp.debian.org/debian/pool/main/m/mindi-busybox QA for Debian * http://packages.qa.debian.org/m/mondo.html * http://packages.qa.debian.org/m/mindi.html * http://packages.qa.debian.org/m/mindi-busybox.html Status for testing * http://release.debian.org/migration/testing.pl?package=mondo === Bug tracking === * http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=mondo * http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=mindi * http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=mindi-busybox === Location of mondo and mindi pre-releases Debian packages === * http://people.debian.org/~andree/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 === * http://lrk.com.au/mindo_backports/index.html (not available anymore it seems) == Ubuntu related info == * https://help.ubuntu.com/community/MondoMindi == Location of mondo and mindi un-official SuSE packages by Mike == * http://www.mikenjane.net/~mike/ * http://build.opensuse.org/project/show?project=Archiving%3ABackup%3AMondoRescue == Info for Slackware packaging == * http://www.linuxpackages.net/howto.php?page=slack-desc&title=Slackware+Desc+File * http://www.linuxpackages.net/howto.php?page=package&title=Package+Howto == Info for Mandriva official packaging == * http://mdv.vmlinuz.ca/Development/Packaging/BuildSystem/QuickRef * http://kenobi.mandriva.com/bs/build.php Latest packages for cooker are available at : * http://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/devel/cooker/SRPMS/contrib/release/ Build process status : * http://kenobi.mandriva.com/ (generic entry point) * http://kenobi.mandriva.com/bs/output.php (status) == Info for Mageia official packaging == * http://www.mageia.org/wiki/doku.php?id=packaging * http://pkgsubmit.mageia.org/ Latest packages for cauldron are available at : * http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/SRPMS/core/release/ == Info for Trixbox distro == * http://www.trixbox.org/forums/trixbox-forums/help/mondo-rescue-backup-howto == Info for Fedora official packaging == * https://bugzilla.redhat.com/show_bug.cgi?id=187317 (mindi) * https://bugzilla.redhat.com/show_bug.cgi?id=187318 (mondo) * https://bugzilla.redhat.com/show_bug.cgi?id=476234 (mindi-busybox) * https://bugzilla.redhat.com/show_bug.cgi?id=462982 (buffer) [DONE] * https://bugzilla.redhat.com/show_bug.cgi?id=759818 (buffer) * https://bugzilla.redhat.com/show_bug.cgi?id=449037 (afio) * http://fedoraproject.org/wiki/PackageMaintainers == Info for Gentoo official packaging == * http://bugs.gentoo.org/show_bug.cgi?id=106497 * http://bugs.gentoo.org/show_bug.cgi?id=79262 * http://bugs.gentoo.org/show_bug.cgi?id=84106 * http://bugs.gentoo.org/show_bug.cgi?id=176738 Ebuild HOWTO: * http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=1 == Info for Arch Linux == * http://www.invoca.ch/pub/packages/buffer/buffer-1.19-8.src.rpm (buffer) * http://members.brabant.chello.nl/~k.holtman/afio-2.5.tgz (afio) * http://aur.archlinux.org/packages.php?ID=38366 (mondo) * http://aur.archlinux.org/packages.php?ID=38365 (mindi) * http://aur.archlinux.org/packages.php?ID=38364 (mindi-busybox) == Info for Sys distribution == * ftp://ftp5.gwdg.de/pub/linux/install/sys/ (Work done by Werner Landgraf) == Info for FreeBSD packaging == * http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html == Location of mondo and mindi Files == ||'''Distributions'''||'''File 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 (most probably /etc/yum.repos.d) 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/x86_64 enabled=1 gpgcheck=1 gpgkey=ftp://ftp.mondorescue.org/fedora/$releasever/x86_64/mondorescue.pubkey }}} Such a file is now automatically produced by project-builder and available on the ftp server at the same place as the packages. E.g. for Fedora 20 x86_64 download it from ftp://ftp.mondorescue.org/fedora/20/x86_64/mondorescue.repo If you want to contribute to the testing of !MondoRescue, also download the corresponding repo file under the test directory and the same subtree. In the above case it's ftp://ftp.mondorescue.org/test/fedora/20/x86_64/mondorescue.repo Now just use the command: {{{ # yum install mondo }}} You may also want to add {{{ multilib_policy=best }}} to your yum.conf file. (tip from Simon Lyall) yum will discover that mindi is a dependency for mondo and add it to your list. project-builder also generates debian configuration files for apt so that you can use our repositories to apt-get install your packages more easily. However look for [http://trac.mondorescue.org/wiki/FAQ#Q11DoesmondoworkwithDebianUbuntudistributions CAVEAT]