== 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 }}} == Package build process == This is currently working for all distributions mentioned in the file tools/DISTROS (except Slackware) From the stable SVN tree extracted you need to launch: {{{ # tools/svn2build }}} which will create for you a build directory (under ../../build/stable-1) with the tar files containing the version expanded. The way svn2build works is the following: * It first computes the $TOOLHOME variable which is the location of the tools directory in the SVN tree * It then source commen-env, which sets up and creates 2 variables $TOPDIR for the delivery of the files/packages and $MONDOTMP for temporary files * It then source svn-env which creates 3 variables $VER which is mondo version, $REVISION which is the current SVN revision and finaly $TAG which is our package tag (what is after the - in an rpm/deb). * It then creates the delivery directory ($TOPDIR/$VER-$TAG) * Then for each package to be built (passed in parameter or taken by default as all except mindi-kernel), it exports from SVN the content of that package, seting up the REVISION file at the same time and a log file in the target directory. Then for each distro, it instantiate a build file (spec for RPM e.g.) with variables previously computed, creates the log file required for it as well, and uses m4 to create the final file based on templates under each package directory/distributions files. Those steps are distro dependent (rpm, deb and emerge) * Then documentation is instantiated as well (mondo-doc is always the first package in the list in order for that step to be made before as the result is used by the other packages) * Then mindi doc is added to the delivery directory of mindi * Then mondo doc is added to the delivery directory of mondo, and bootsstrap is called which will recreate the autoconf environment. * Finaly once all these steps are done, the tar files are created (tar.gz and tar.bz2) 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 }}} == 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 [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. == 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 == 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 == 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 Fedora official packaging == * https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187317 (mindi) * https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187318 (mondo) == 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 == 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 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 }}} 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.