Hugin Compiling Fedora

From PanoTools.org Wiki
Revision as of 15:42, 6 August 2009 by Aston (talk | contribs) (freeglut-devel dependency)
Jump to navigation Jump to search

The hugin and enblend stable releases are part of default fedora, available via the Add/Remove Software menu. Note that there is no autopano-sift in fedora due to patent issues, but autopano-sift-C can be found in the RPM Fusion 3rd party package repository.

Otherwise, recent-ish hugin snapshots and other panorama-related software can usually be found at the fedora panorama repository. To subscribe just follow this panorama release link, use the Package Installer option, and each time you do a Software Update hugin will be upgraded to the latest snapshot.

If you want to compile hugin yourself, just follow the instructions in the INSTALL_cmake file, you will need these development packages (June 2009): libpano13-devel zlib-devel libtiff-devel libjpeg-devel libpng-devel gettext-devel wxGTK-devel boost-devel cmake desktop-file-utils OpenEXR-devel gcc-c++ exiv2-devel glew-devel freeglut-devel

To actually use hugin you also need enblend 3.2 and perl-Image-ExifTool packages. autopano-sift-C or panomatic are useful to automatically generate control points.

rpm building instructions

The source RPM package contains an hugin.spec file which is both the build documentation and the script for an automated build (other linux packaging systems work basically the same way).

fedora configuration

First set up your fedora system for building rpms, install some packages (as root):

 yum groupinstall "Development Tools"
 yum install rpmdevtools

Using a normal user account create a build tree, by default this is ~/rpmbuild:

 rpmdev-setuptree

Get a source tarball of hugin

Either download the current stable .tar.gz file from sourceforge or get the latest from the subversion trunk:

 svn co https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk
 cd trunk
 cmake .
 make package_source

In future, you only need to update the source tree rather than checking out again:

 cd trunk
 svn up
 cmake .
 make package_source

'package_source' is a Makefile target, targets are things like 'all' or 'clean' or 'install', this one just creates a tarball.

Get a hugin.spec file

Download an existing hugin .src.rpm file and extract the hugin.spec file file by running this command as a normal user:

 rpm -ivh hugin-0.8.0-1.src.rpm

This should put the .spec file where rpmbuild expects to find it.

 ~/rpmbuild/SPECS/hugin.spec

The next step is to put the .tar.gz where rpmbuild expects to find it:

 ~/rpmbuild/SOURCES/hugin-2009.1.0.tar.gz

..and run rpmbuild to create both the SRPM and RPMS at the same time:

 rpmbuild -ba ~/rpmbuild/SPECS/hugin.spec

This will fail, probably. You need to edit the .spec file to change the 'Version' entry to match the current number, add dependencies such as 'freeglut-devel' to the list of 'BuildRequires' that are missing, and try again.

Building with mock

'mock' is a more sophisticated system for creating RPMS, it is possible to build multiple architectures and create packages for different releases of fedora and redhat enterprise linux on a single fedora system.

Install mock as root and add yourself to the 'mock' group (use your user name, not 'myusername'):

 yum install mock
 usermod -a -G mock myusername

Follow the instructions above for creating rpms, but just create the source rpm instead:

 rpmbuild -bs ~/rpmbuild/SPECS/hugin.spec

Then you can build rpms from this src.rpm with mock like so:

 mock -r fedora-11-i386 rebuild ~/rpmbuild/SRPMS/hugin-2009.1.0-0.src.rpm

The first time you do this it will take a very long time while it downloads and assembles a 'virtual' machine, but subsequent builds will only take a few minutes.