https://wiki.panotools.org/api.php?action=feedcontributions&user=MaximTee&feedformat=atomPanoTools.org Wiki - User contributions [en]2024-03-29T07:20:03ZUser contributionsMediaWiki 1.35.3https://wiki.panotools.org/index.php?title=Hugin_Compiling_Windows_with_SDK&diff=10151Hugin Compiling Windows with SDK2008-03-30T20:42:24Z<p>MaximTee: /* Build hugin */ Corrected ENBLEND_EXE_DIR</p>
<hr />
<div>This article gives step-by-step instructions for building hugin from a source code snapshot using Visual C++ 2008 Express Edition and precompiled dependencies. That is the recommended way to build hugin for Windows, and the only way that has worked for me. It also shows how to build enblend 3, which hugin now requires, with the same tools.<br />
<br />
Bear in mind that a source snapshot of hugin is a transient stage in an incomplete and rapidly evolving package, so may have a short useful life, and will contain bugs and defects. Your main purpose in building one should be to help find, report, and maybe correct some of those. <br />
<br />
== Background ==<br />
<br />
The hugin build is based on cmake, a cross platform makefile generator. On Windows, cmake can generate project files for various Microsoft Visual Studio toolsets, from the same specifications it uses to create makefiles on other platforms. The current release (cmake 2.4.7) only supports VC 2003 and 2005; the unreleased 2.4.8 and the current development trunk (2.5) support VC 2008 too, so you will need one of those.<br />
<br />
Pablo has recently published an sdk containing all the support components needed to build hugin and enblend (and AutoPano-SIFT-C) on Windows. Version 1 of the sdk has two flavors, one built with Visual C++ 2003 Express, the other with VC 2008 Express. Version 2, which is more complete, is only for VC 2008 at present.<br />
<br />
If if you already have VC 2003 (and the corresponding Windows Platform SDK) installed you might want to try that. Otherwise use VC 2008, which is currently available and easier to install because the Platform SDK is bundled. You can install VC 2008 Express beside other Microsoft compiler versions, even professional ones, without damaging either toolset. <br />
The enblend source tree has projects for building with both the 2003 and 2008 tools (also 2005 but there is no sdk for that).<br />
<br />
The following instructions are for starting from scratch on a Windows PC without any software building tools installed. If you already have some of these things installed, you will need to take care that the right tools and components are used. It is vitally important that all object code is generated by the same compiler version and targeted to the same VC runtime library.<br />
<br />
The recommended Tortoise archive clients work through the Windows File Explorer: right-click a target directory and follow the popup menus.<br />
<br />
== Get Tools ==<br />
<br />
1) install Visual C++ 2008 Express<br />
http://www.microsoft.com/express/download/<br />
<br />
2) install cmake -- not the currently released version 2.4.7, but either<br />
version 2.4.8 (stable, works)<br />
http://www.cmake.org/files/v2.4/cmake-2.4.8-RC-13-win32-x86.exe<br />
or version 2.5 (may not be stable)<br />
http://www.cmake.org/HTML/Download.html<br />
Pending release of 2.5, follow the link "nightly CVS binary" and download the .exe installer for a recent snapshot (cmake-2.5.20080117-win32-x86.exe worked for me). <br />
<br />
3) install Tortoise CVS and SVN clients<br />
http://sourceforge.net/project/platformdownload.php?group_id=48103<br />
http://sourceforge.net/project/showfiles.php?group_id=138498<br />
<br />
== Get hugin SDK ==<br />
<br />
4) download the precompiled sdk<br />
http://hugin.panotools.org/sdk/MSVC/hugin_enblend_sdk_msvc2008_v2.7z<br />
unpack it into new directory huginbase with winrar or 7zip.<br />
NOTE The version 1 sdks, which are zip files, lack the unix utilities (unxutils) required for hugin installaiton. You get that at http://sourceforge.net/project/showfiles.php?group_id=9328.<br />
<br />
== Build enblend 3 ==<br />
<br />
5) check out enblend 3 source tree into huginbase. Right click on huginbase in Windows Explorer and select "CVS Checkout..." from the popup menu. Enter the following incantation into the CVSROOT: box in the resulting dialog and click OK. <br />
:pserver:anonymous@enblend.cvs.sourceforge.net:2401/cvsroot/enblend<br />
If OK is grayed out, click Fetch list..., select enblend module and then click OK.<br />
<br />
The result should be a new directory, huginbase/enblend, containing the source tree.<br />
<br />
6) open huginbase/enblend/enblend_msvc2008.sln with Visual Studio 2008 Express. Change the target configuration to 'release' (build menu, configuration manager). Click build solution. After it completes, copy enblend/INSTALLDIR into huginbase/enblend-3.1/. The hugin install script expects this directory. <br />
<br />
== Build hugin ==<br />
<br />
7) check out hugin source tree into huginbase. Make a new folder called hugin inside huginbase. Right click on huginbase/hugin in Windows Explorer, select "SVN Checkout...", enter this source URL, set target directory to "hugin" and click OK.<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
<br />
The result should be a new directory, huginbase/hugin, containing the source tree. Write down the reported SVN revision number, you will need it later. <br />
<br />
8) Start the cmake gui (cmakesetup.exe). To ensure that the environment is set right, run cmakesetup.exe from the VC 2008 command shell (available under the Windows Start Menu) - essential if you have other compilers installed. You might want to create a desktop shortcut that does this with one click.<br />
<br />
Set cmake's source code directory to huginbase/hugin and its build directory to huginbase/hugin-build (this will create a new directory for the build). Click Configure and tell it to use Visual C++ 2008. Cmake then checks the build tools and if that goes well does the first round of searching for components. When done it displays a list of configuration variable settings, on a red background. Click "Show Advanced Values" to display all of them.<br />
<br />
This is when you get to correct anything that needs correcting. First, set HUGIN_WC_REVISION to the SVN revision number (which should be automatic but currently is not on Windows). And set CMAKE_BUILD_TYPE to "Release". It is an error to leave HUGIN_WC_REVISION blank, and you will get a warning message later if CMAKE_BUILD_TYPE is "Debug". Heed it.<br />
<br />
Next, check that all component pathnames start at huginbase. Cmake may have found some things installed in standard places on your system; but it should only be using the ones in the sdk. To correct a pathname, click on it and either type in the right one or click '...' to pop a fileselector. Look out for values with "_NOT_FOUND" in them; these may indicate problems with your directory names or structure. You will need to set ENBLEND_EXE_DIR to huginbase/enblend-3.1/INSTALLDIR that that was created when you built enblend. Also, you need to set HUGIN_BUILDER and HUGIN_BUILDATE -- this is you name and date of the build that will appear on application splash screen.<br />
<br />
When you are satisfied the paths are right, click Configure again, and Cmake will try to validate the variables. That might set some new ones, which will appear in red. Recheck all values, even the grey ones. If a variable keeps coming up wrong try deleting it from cache (right click on name pops menu) and configure again; this is often necessary to trigger a new search. Keep fixing and clicking Configure until everything is OK. Then click OK to generate the project files.<br />
<br />
9) Open hugin.sln in the build directory with Visual Studio 2008 Express and wait while it loads and checks all the projects. Then select a target configuration and click "build solution". After a long time, and many warnings, you should get a successful build.<br />
<br />
10) Build the INSTALL project. This should put a complete hugin installation in huginbase/hugin-build/INSTALL/FILES.<br />
<br />
NOTE any missing file stops the install script, leaving the installation more or less incomplete. If this happens, first look at the install scripts, cmake_install.cmake (several places in the hugin-build tree) to identify all the files that were not found (paths with "_NOT_FOUND" in them). If you can find all of them, put them where the install script expects them -- hugin/cmakemodules/winbundle.cmake will help indentify those places. You can't just build INSTALL again, because the files are searched for at configuration time, so the install scripts will still contain invalid pathnames until you run cmakesetup again. Exit Visual Studio first, since all project files must be rebuilt. It may be necessary to delete pathnames of the failed places (such as enblend-3.1) from cache to ensure everything gets regenerated. Then Configure, OK, open the new hugin.sln and build INSTALL.<br />
<br />
== Updating the hugin build ==<br />
<br />
To update your source tree to to the latest revision, right click on huginbase/hugin in Windows Explorer and select "SVN Update". Remember to note the revision number. <br />
<br />
Check if there is a new release of the sdk, and if so, download and install it.<br />
<br />
Then you have to run cmakesetup again. Proceed as in 8) above, but click "Delete Cache" before "Configure", so that the new configuration gets built from scratch.<br />
<br />
Remember to "Clean" or "Rebuild" the entire solution in MSVC.<br />
<br />
== Installing hugin on Windows ==<br />
<br />
Directory hugin-build/INSTALL/FILES contains a complete, self-contained hugin installation. You can use this as is, or copy it to a directory of your choice if you wish to delete the build tree (it is a good idea to put the the SVN version number in the name of that directory. e.g. FILES becomes "hugin_0.7.0.2766"). You should create a shortcut to hugin.exe on your desktop (note you can start new projects by dragging and dropping groups of files on the shortcut). You may also want to associate the new hugin.exe with the hugin project file (.pto) file extension. <br />
<br />
This way of installing can be undone simply by deleting the files. It will not break any other hugin installation that may be on your system. However, note that all instances of hugin do share the same persistent settings, so options you set in one version will affect the others, too.<br />
<br />
The source tree and sdk contain support for building Windows Installer (.msi) packages with War Setup and/or Innosetup. At present these are under development and could potentially damage your Registry and/or prior installations of hugin, so I would advise not using them until a stable release is issued.<br />
<br />
The hugin team periodically publishes "snapshot" builds for testing. The Windows versions of these come in two forms, as a self-installing archive that automates the simple "copy files" method described above, and as a Windows Installer package.<br />
<br />
== Some things that don't work ==<br />
<br />
Trying to target the dll versions of the Visual C runtimes. Only the static C libraries (libcmt, libcmtd) will do. You can't mix static and dll runtimes, so all (static) dependencies must also have been compiled with /MT or /MTd. While it might be possible to use dll versions of some of the support libraries, such as tiff or OpenEXR, it is safest to keep a strict policy of "static libraries only".<br />
<br />
Trying to use dependencies built with a different compiler. For all practical purposes, Microsoft runtime libraries are now usable with only one compiler version. Although linking code built with more than one compiler sometimes seems to work, the resulting program is likely to fail.<br />
<br />
Trying to link Boost libraries of a different source version than the Boost headers. Boost takes some trouble to lock object code to source version as well as compiler version, so it is rarely possible (and always a mistake) to do this.<br />
<br />
Occasionally a build step fails mysteriously, that has succeeded before. The main cause of this is a file being marked in the Windows filesystem as in use when a tool tries to open it. On a slow, heavily loaded machine, the filesystem may not update a closed file's status quickly enough -- solution: reduce the load. On any machine, Google Desktop Search (or other automatic indexer) may grab a recently updated file and really have it open -- solution: pause or disable indexing and retry the build step.<br />
<br />
<small>--[[User:Tksharpless|Tksharpless]] 16:42, 23 January 2008 (CET)</small><br />
<br />
[[Category:Software:Hugin]]<br />
[[Category:Software:Platform:Windows]]</div>MaximTeehttps://wiki.panotools.org/index.php?title=Talk:Hugin_Compiling_Windows_with_SDK&diff=10118Talk:Hugin Compiling Windows with SDK2008-03-16T16:50:22Z<p>MaximTee: New page: TortoiseSVN has a tool called SubWCRev. Quoting from the help file: <code> SubWCRev is Windows console program which can be used to read the status of a Subversion working copy and optio...</p>
<hr />
<div>TortoiseSVN has a tool called SubWCRev. Quoting from the help file: <br />
<br />
<code><br />
SubWCRev is Windows console program which can be used to read the status of a Subversion working copy and optionally perform keyword substitution in a template file. <br />
</code><br />
<br />
<code><br />
SubWCRev reads the Subversion status of all files in a working copy, excluding externals by default. It records the highest commit revision number found, and the commit timestamp of that revision, It also records whether there are local modifications in the working copy, or mixed update revisions. <br />
</code><br />
<br />
<code><br />
If you want SubWCRev to perform keyword substitution, so that fields like repository revision and URL are saved to a text file, you need to supply a template file SrcVersionFile and an output file DstVersionFile which contains the substituted version of the template. <br />
</code><br />
<br />
Full details can be found [http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html here]<br />
<br />
Does anyone else think it is worth the effort to be incorporated into Windows build process? This will improve "fool-profeness" of test build, as the executable will always be traceable back to the SVN revision and one of CMake config parameters can be eliminated. I'm yet not proficient enough in the current toolchain to do this myself, but eager to help in testing, etc.<br />
<br />
<small>--[[User:MaximTee|MaximTee]] 17:50, 16 March 2008 (CET)</small></div>MaximTeehttps://wiki.panotools.org/index.php?title=Development_of_Open_Source_tools&diff=10110Development of Open Source tools2008-03-15T11:17:08Z<p>MaximTee: /* ought to be done 0.7.0 */</p>
<hr />
<div>== Panorama Related Open Source tools ==<br />
<br />
* [[Hugin]]<br />
* [[Enblend]]<br />
* [[Enfuse]]<br />
* [[Panotools]]<br />
<br />
== Contribution ==<br />
<br />
=== Why contribute? ===<br />
<br />
The above tools are free for you (and every other user), because volunteers have contributed their skills and time. They provide immense value to the whole community. They provide value to you, don't they? If they do, please consider contributing something back.<br />
<br />
=== How to contribute? ===<br />
<br />
Join the [http://groups.google.com/group/hugin-ptx hugin-ptx] mailing list to find out what is going on at the moment and how you can help.<br />
<br />
If you don't have time, you are most likely a busy professional. You can donate money to [http://sourceforge.net/project/project_donations.php?group_id=77506 Hugin], [http://sourceforge.net/project/project_donations.php?group_id=123407 Enblend/Enfuse] on their project pages through Sourceforge.<br />
<br />
At the time of writing (03-February-2008) the building process of hugin is robust and we are looking for testers to go over bug reports and test them against the regular snapshot builds.<br />
<br />
'''Don't be afraid of failures in the building process'''<br />
* The likelihood that errors will occur when following the build processes linked below is high.<br />
* Don't worry such failure will not compromise your computer.<br />
* The failure of the building process is actually your success! Every time you report such a failure, with as much detail as possible to how it came about, you are contributing to the progress toward a stable release.<br />
<br />
If you are fluent in other languages than English, you can help translate Hugin. There's a [[Hugin translation guide]] to help you get started or help when you run into translation problems.<br />
<br />
== Hugin 0.7.0 release schedule ==<br />
<br />
Clearing the bugs in the sourceforge bug tracker is an iterative process. Feedback from tester is essential for this process. Please take the time to check if the older bugs apply to a current snapshot, if you like to see a release soon.<br />
<br />
We'll be releasing frequent snapshots until a release candidate emerges. This is an iterative process:<br />
# '''Volunteers''' check the bugs listed in the [https://sourceforge.net/tracker/?group_id=77506&atid=550441 sourceforge bug tracker] under group v0.7.0 against the most recent [http://panospace.wordpress.com/downloads/ snapshots] (scroll down on that page).<br />
#* Install the latest snapshot.<br />
#* Try to reproduce the bug on your system.<br />
#* If you find that the bug no longer occurs, chances are that it has been fixed. Close it (assuming you have the required access), or simply leave a note that it has been fixed (together with the SVN revision and the system used for testing).<br />
#* If you reproduce the bug, leave a note to confirm that it is still actual. Note the SVN revision and the system used for testing.<br />
#* Try again. If you can consistently reproduce the crash more than twice, raise its priority to 8. Post detailed instructions how to reproduce the crash.<br />
#* If you can confirm a bug a bug that is older than 3-4 months, please raise its priority to 6. If it is a real show stopper.<br />
#* Add any comments you have to the ticket in the bug tracker. Let the community know you have tested. The bug-tracker is like a mailing list or forum thread, don't be afraid to post.<br />
#* If you don't want to open an account with Sourceforge, post your observations on the hugin-ptx mailing list. It is possible to post comments to the bug tracker anonymously, but it is e<br />
# The '''developers''' fix the bugs identified in the tracker.<br />
# The '''builders''' build new snapshots including the fixes.<br />
<br />
We'll repeat this process to deal with:<br />
* functional bugs: to make sure that the program does what it is meant to do<br />
* GUI bugs: to make sure that the user has full access to the program's functionalities<br />
* stability bugs: to make sure the program is robust and does not crash<br />
<br />
After the GUI bugs have been fixed<br />
* a string freeze will be issued to allow translators to prepare the translations. The string freeze will be announced on hugin-ptx and on this page.<br />
* a first release candidate will be issued to allow for robustness testing.<br />
<br />
=== Current Status ===<br />
<br />
We have started to systematically look at the bugs in the bug tracker.<br />
<br />
This list is incomplete based on testing svn2733 running on OSX. Thank you, Klaus!<br />
<br />
==== showstoppers blocking 0.7.0 release ====<br />
Please collect bugs (must be in tracker, include link) that <b>must</b> be fixed before 0.7.0 can be released.<br />
<br />
* Hugin does not stitch on Windows<br />
[https://sourceforge.net/tracker/index.php?func=detail&aid=1910220&group_id=77506&atid=550441 1910220]<br />
* ...<br />
<br />
==== ought to be done 0.7.0 ====<br />
* get the Option buttons working in the Stitcher tab<br />
* reduce image size to image content size for Stitcher cropped output<br />
* prevent modification of exposure information on merely clicking tabs<br />
* fix issues with non-latin characters in file paths on Windows [https://sourceforge.net/tracker/index.php?func=detail&aid=1908349&group_id=77506&atid=550441 1908349]<br />
[https://sourceforge.net/tracker/index.php?func=detail&aid=1902471&group_id=77506&atid=550441 1902471]<br />
<br />
==== may be done for 0.7.0 if easily implemented ====<br />
*interpolator selection<br />
*flatfield file<br />
<br />
* correct top grey rim in enblend , however '''--fine-mask''' option is workaround<br />
<br />
=== release 0.7.x ===<br />
*include antialiasing interpolators<br />
<br />
=== release >0.7 ===<br />
*lots of GUI items i.e.<br />
**histograms for intensity and RGB<br />
**mass handling of Control Points, specify areas where (not) to put them<br />
<br />
<br />
== Download Test Build ==<br />
<br />
If you want to contribute testing but you don't want to go through the hassle of building the code, you can find the latest installer download for Windows and OSX [http://panospace.wordpress.com/downloads/ here].<br />
<br />
== Build your Own Test Builds ==<br />
<br />
If you are ready to go through the building process, here are the instructions.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;"<br />
|-valign="top"<br />
! '''IMPORTANT:'''<br />
! These builds are for your computer. If you decide to share them with others, be aware that you are subject to the GPL, and that the general public may need guidance regarding what you distribute. Read the information in the packaging and distribution section [http://wiki.panotools.org/Development_of_Open_Source_tools#Packaging_and_Distribution below]. If you are unsure, ask on the hugin-ptx mailing list for advice before posting a file for download.<br />
|}<br />
<br />
=== Goal ===<br />
<br />
an infrastructure for on-demand build and distribution of usable test-binaries for the most popular platforms. These builds are meant to enable users to test the newest features and report bugs. Ideally, on Pablo's demand all those who have a build chain will run it against the newest source code to produce the builds.<br />
<br />
=== Process ===<br />
<br />
# Experienced users will build the most current hugin and helpers (libpano, enblend, autopano, etc.) for the target platform of their choice, with support from coders.<br />
# The build process will be documented for each of the supported platform.<br />
# Users willing to spend some time learning how to build will reproduce the documented process.<br />
# Power users will script and automate the building process.<br />
# Users with packaging skills will package the builds for distribution (installers).<br />
# The produced binaries/installers will be made available on the web.<br />
<br />
=== Specific revisions ===<br />
<br />
When building from the repository, some revisions have bugs. This process is meant to build the latest revision so that if the latest revision has bugs these can be identified and corrected. However sometimes these bugs can be more critical than other times. If you need a more or less working version of hugin, try applying the process to one of the following revisions.<br />
<br />
==== hugin ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2801<br />
| style="border-top: thin dotted #333333;" |<br />
builds on Windows, used for Windows installer snapshot. Builds on ubuntu 7.10 AMD64<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2797<br />
| style="border-top: thin dotted #333333;" |<br />
builds on OSX, used for OSX snapshot package.<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2766<br />
| style="border-top: thin dotted #333333;" |<br />
Windows self-installing archives. [ftp://tksftp@tksharpless.net] "TKSpwd1"<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2733<br />
| style="border-top: thin dotted #333333;" |<br />
build on OSX. runs on Macs that have no programming packages installed.<br />
|-valign="top" <br />
|}<br />
<br />
[[older hugin revision notes]]<br />
<br />
==== libpano ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
785<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 x86 32bit<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
770<br />
| style="border-top: thin dotted #333333;" |<br />
does not build [http://groups.google.com/group/hugin-ptx/browse_thread/thread/f69427e3b112bcca]<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
767<br />
| style="border-top: thin dotted #333333;" |<br />
does not build [http://groups.google.com/group/hugin-ptx/browse_thread/thread/f69427e3b112bcca]<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
759<br />
| style="border-top: thin dotted #333333;" |<br />
builds on AMD64 ubuntu 7.10<br />
|-valign="top"<br />
|}<br />
<br />
[[older libpano revision notes]]<br />
<br />
==== enblend ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-07<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 AMD64, OSX (used for snapshot package), Windows (used for first snapshot installer)<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-03<br />
| style="border-top: thin dotted #333333;" |<br />
builds on Windows and ubuntu 7.10 x86 32bit<br />
|-valign="top" <br />
|}<br />
<br />
[[older enblend revision notes]]<br />
<br />
=== Supported Platforms ===<br />
<br />
* If you don't find your preferred platform listed below '''and''' you are willing to contribute your time and skills to build hugin on it, feel free to add it to the table. We will accommodate any well supported platform in the regular release process.<br />
* The '''Build-Chain Responsibles''' listed below have access to a build chain on the selected platform and have agreed to run the build chain within 2 days of a request from Pablo. They will forward the resulting binary package to the Release Manager who will in turn put them up for download by the general public.<br />
* '''Redundancy is good'''. If you have access to one of the listed platforms, please try to run the documented process below and report success to hugin-ptx. If you think you could do this on a more regular basis, enter yourself in the Backup Build-Chain field.<br />
<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Platform<br />
! width="100" |<br />
Status<br />
! width="100" |<br />
Process<br />
! width="200" |<br />
Build-Chain Responsible<br />
! width="200" |<br />
Credits <br />
! width="200" |<br />
Backup Build-Chains <br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Sébastien Perez-Duarte<br />
* Yuval Levy<br />
* Régis B.<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Fedora 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Bruno Postle<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Fedora 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX IntelMac <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OSX | draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
Peter A. Crowley<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Ippei Ukai<br />
* JD Smith <br />
* Daniel M. German<br />
* Peter A. Crowley<br />
* David Haberthür<br />
* John Riley<br />
* Roger Howard<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX PPC <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OSX | draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
Peter A. Crowley<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Windows 32bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
*[[Build Hugin for Windows with SDK | OK, SDK based]]<br />
*[[Hugin Compiling Windows | draft, from scratch]]<br />
| style="border-top: thin dotted #333333;" |<br />
Tom Sharpless<br />
| style="border-top: thin dotted #333333;" |<br />
* Tom Sharpless<br />
* John Navas<br />
* Jean-Marc Paratte<br />
* Yili Zhao<br />
* Yuval Levy<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Kornel Benko (10.3)<br />
* Peter Suetterlin (10.2)<br />
* Stephan Hegel (10.3 x86_64)<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
Vasil Dimov, FreeBSD port maintainer<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* confirmed to build on FreeBSD 6.2/i386<br />
* confirmed to build on FreeBSD 7.0/amd64<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
<!-- spanned| style="border-top: thin dotted #333333;" | tbd --><br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
all platforms<br />
! style="border-top: thin dotted #333333;" colspan="5" |<br />
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.<br />
|-valign="top"<br />
|}<br />
<br />
=== Stati ===<br />
<br />
'''Build Chain'''<br />
* tbd: looking for responsible<br />
* OK: mostly automated build process ready on request<br />
* unavailable: temporarily unavailable (e.g. responsible on holiday)<br />
* HW-broken: the hardware is temporarily unavailable<br />
* SW-broken: temporarily dysfunctional, working on a fix<br />
* broken: nobody is working on a fix<br />
* unsupported: has been dropped for lack of support<br />
<br />
'''Process'''<br />
* tbd: status unknown<br />
* auto: work as documented and has been automated to a reasonable extent<br />
* OK: works as documented, could use automation / scripting<br />
* draft: documented, needs validation / testing / cleaning<br />
* incomplete: parts are missing (e.g. enblend, libpano)<br />
* outdated: worked in the past but needs an update<br />
* obsolete: nobody has the time to update<br />
<br />
== Packaging and Distribution ==<br />
<br />
Instructions for packaging binaries for distribution will follow. Some important points:<br />
<br />
=== Snapshots ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
* label clearly the snapshot as such, with a reference to the build date and/or the SVN revision number<br />
* edit the text / readme files that come with the snapshot<br />
** indicate clearly that it is unstable, experimental software<br />
** indicate where to find the latest version<br />
** indicate that the advertised features might or might not work<br />
<br />
=== Release ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
<br />
== Feedback ==<br />
<br />
When running through the building process documented above chances are that something goes wrong. While it is disappointing when the process ends in a flurry of cryptic error messages it is not harmful. This is the nature of software development and you are now part of it. There is still a lot of value in your experience and you can help improve the process and get closer to the hoped for software package. Please don't be ashamed that it did not work. This happens even to the most expert coders. Give the developers feedback on the hugin-ptx mailing list. Only with your feedback they can know that something goes wrong, and a well crafted feedback helps them find out quickly what went wrong and devise a solution. Be a part of the solution, not a part of the problem!<br />
<br />
To give good feedback, note down carefully all of this information while you are going through the instructions.<br />
# details about your computer. CPU, operating system, other particularities<br />
# the revision number of the code checked out with SVN (which appears at the end of the checkout process) or with CVS. Or, if you don't find a revision number, the date and time when you checked out the code.<br />
# the last step / command you entered into the command line<br />
# a copy of the last few lines displayed, from where you think the error messages started. Don't worry if you copy a couple of lines too many, it is better to give more lines than less lines.<br />
<br />
Even the standard feedback is good feedback. For those wishing to dig deeper, you can try<br />
* to use "make VERBOSE=1" when building hugin.<br />
* to do a debug build "cmake -DCMAKE_BUILD_TYPE=DEBUG" and use oprofile for profiling.</div>MaximTeehttps://wiki.panotools.org/index.php?title=Development_of_Open_Source_tools&diff=10109Development of Open Source tools2008-03-15T11:11:48Z<p>MaximTee: /* showstoppers blocking 0.7.0 release */</p>
<hr />
<div>== Panorama Related Open Source tools ==<br />
<br />
* [[Hugin]]<br />
* [[Enblend]]<br />
* [[Enfuse]]<br />
* [[Panotools]]<br />
<br />
== Contribution ==<br />
<br />
=== Why contribute? ===<br />
<br />
The above tools are free for you (and every other user), because volunteers have contributed their skills and time. They provide immense value to the whole community. They provide value to you, don't they? If they do, please consider contributing something back.<br />
<br />
=== How to contribute? ===<br />
<br />
Join the [http://groups.google.com/group/hugin-ptx hugin-ptx] mailing list to find out what is going on at the moment and how you can help.<br />
<br />
If you don't have time, you are most likely a busy professional. You can donate money to [http://sourceforge.net/project/project_donations.php?group_id=77506 Hugin], [http://sourceforge.net/project/project_donations.php?group_id=123407 Enblend/Enfuse] on their project pages through Sourceforge.<br />
<br />
At the time of writing (03-February-2008) the building process of hugin is robust and we are looking for testers to go over bug reports and test them against the regular snapshot builds.<br />
<br />
'''Don't be afraid of failures in the building process'''<br />
* The likelihood that errors will occur when following the build processes linked below is high.<br />
* Don't worry such failure will not compromise your computer.<br />
* The failure of the building process is actually your success! Every time you report such a failure, with as much detail as possible to how it came about, you are contributing to the progress toward a stable release.<br />
<br />
If you are fluent in other languages than English, you can help translate Hugin. There's a [[Hugin translation guide]] to help you get started or help when you run into translation problems.<br />
<br />
== Hugin 0.7.0 release schedule ==<br />
<br />
Clearing the bugs in the sourceforge bug tracker is an iterative process. Feedback from tester is essential for this process. Please take the time to check if the older bugs apply to a current snapshot, if you like to see a release soon.<br />
<br />
We'll be releasing frequent snapshots until a release candidate emerges. This is an iterative process:<br />
# '''Volunteers''' check the bugs listed in the [https://sourceforge.net/tracker/?group_id=77506&atid=550441 sourceforge bug tracker] under group v0.7.0 against the most recent [http://panospace.wordpress.com/downloads/ snapshots] (scroll down on that page).<br />
#* Install the latest snapshot.<br />
#* Try to reproduce the bug on your system.<br />
#* If you find that the bug no longer occurs, chances are that it has been fixed. Close it (assuming you have the required access), or simply leave a note that it has been fixed (together with the SVN revision and the system used for testing).<br />
#* If you reproduce the bug, leave a note to confirm that it is still actual. Note the SVN revision and the system used for testing.<br />
#* Try again. If you can consistently reproduce the crash more than twice, raise its priority to 8. Post detailed instructions how to reproduce the crash.<br />
#* If you can confirm a bug a bug that is older than 3-4 months, please raise its priority to 6. If it is a real show stopper.<br />
#* Add any comments you have to the ticket in the bug tracker. Let the community know you have tested. The bug-tracker is like a mailing list or forum thread, don't be afraid to post.<br />
#* If you don't want to open an account with Sourceforge, post your observations on the hugin-ptx mailing list. It is possible to post comments to the bug tracker anonymously, but it is e<br />
# The '''developers''' fix the bugs identified in the tracker.<br />
# The '''builders''' build new snapshots including the fixes.<br />
<br />
We'll repeat this process to deal with:<br />
* functional bugs: to make sure that the program does what it is meant to do<br />
* GUI bugs: to make sure that the user has full access to the program's functionalities<br />
* stability bugs: to make sure the program is robust and does not crash<br />
<br />
After the GUI bugs have been fixed<br />
* a string freeze will be issued to allow translators to prepare the translations. The string freeze will be announced on hugin-ptx and on this page.<br />
* a first release candidate will be issued to allow for robustness testing.<br />
<br />
=== Current Status ===<br />
<br />
We have started to systematically look at the bugs in the bug tracker.<br />
<br />
This list is incomplete based on testing svn2733 running on OSX. Thank you, Klaus!<br />
<br />
==== showstoppers blocking 0.7.0 release ====<br />
Please collect bugs (must be in tracker, include link) that <b>must</b> be fixed before 0.7.0 can be released.<br />
<br />
* Hugin does not stitch on Windows<br />
[https://sourceforge.net/tracker/index.php?func=detail&aid=1910220&group_id=77506&atid=550441 1910220]<br />
* ...<br />
<br />
==== ought to be done 0.7.0 ====<br />
*get the Option buttons working in the Stitcher tab<br />
*reduce image size to image content size for Stitcher cropped output<br />
*prevent modification of exposure information on merely clicking tabs<br />
<br />
==== may be done for 0.7.0 if easily implemented ====<br />
*interpolator selection<br />
*flatfield file<br />
<br />
* correct top grey rim in enblend , however '''--fine-mask''' option is workaround<br />
<br />
=== release 0.7.x ===<br />
*include antialiasing interpolators<br />
<br />
=== release >0.7 ===<br />
*lots of GUI items i.e.<br />
**histograms for intensity and RGB<br />
**mass handling of Control Points, specify areas where (not) to put them<br />
<br />
<br />
== Download Test Build ==<br />
<br />
If you want to contribute testing but you don't want to go through the hassle of building the code, you can find the latest installer download for Windows and OSX [http://panospace.wordpress.com/downloads/ here].<br />
<br />
== Build your Own Test Builds ==<br />
<br />
If you are ready to go through the building process, here are the instructions.<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFF99;color:#FF0000;text-align:left;border: solid #FF3300;"<br />
|-valign="top"<br />
! '''IMPORTANT:'''<br />
! These builds are for your computer. If you decide to share them with others, be aware that you are subject to the GPL, and that the general public may need guidance regarding what you distribute. Read the information in the packaging and distribution section [http://wiki.panotools.org/Development_of_Open_Source_tools#Packaging_and_Distribution below]. If you are unsure, ask on the hugin-ptx mailing list for advice before posting a file for download.<br />
|}<br />
<br />
=== Goal ===<br />
<br />
an infrastructure for on-demand build and distribution of usable test-binaries for the most popular platforms. These builds are meant to enable users to test the newest features and report bugs. Ideally, on Pablo's demand all those who have a build chain will run it against the newest source code to produce the builds.<br />
<br />
=== Process ===<br />
<br />
# Experienced users will build the most current hugin and helpers (libpano, enblend, autopano, etc.) for the target platform of their choice, with support from coders.<br />
# The build process will be documented for each of the supported platform.<br />
# Users willing to spend some time learning how to build will reproduce the documented process.<br />
# Power users will script and automate the building process.<br />
# Users with packaging skills will package the builds for distribution (installers).<br />
# The produced binaries/installers will be made available on the web.<br />
<br />
=== Specific revisions ===<br />
<br />
When building from the repository, some revisions have bugs. This process is meant to build the latest revision so that if the latest revision has bugs these can be identified and corrected. However sometimes these bugs can be more critical than other times. If you need a more or less working version of hugin, try applying the process to one of the following revisions.<br />
<br />
==== hugin ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2801<br />
| style="border-top: thin dotted #333333;" |<br />
builds on Windows, used for Windows installer snapshot. Builds on ubuntu 7.10 AMD64<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2797<br />
| style="border-top: thin dotted #333333;" |<br />
builds on OSX, used for OSX snapshot package.<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2766<br />
| style="border-top: thin dotted #333333;" |<br />
Windows self-installing archives. [ftp://tksftp@tksharpless.net] "TKSpwd1"<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2733<br />
| style="border-top: thin dotted #333333;" |<br />
build on OSX. runs on Macs that have no programming packages installed.<br />
|-valign="top" <br />
|}<br />
<br />
[[older hugin revision notes]]<br />
<br />
==== libpano ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
785<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 x86 32bit<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
770<br />
| style="border-top: thin dotted #333333;" |<br />
does not build [http://groups.google.com/group/hugin-ptx/browse_thread/thread/f69427e3b112bcca]<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
767<br />
| style="border-top: thin dotted #333333;" |<br />
does not build [http://groups.google.com/group/hugin-ptx/browse_thread/thread/f69427e3b112bcca]<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
759<br />
| style="border-top: thin dotted #333333;" |<br />
builds on AMD64 ubuntu 7.10<br />
|-valign="top"<br />
|}<br />
<br />
[[older libpano revision notes]]<br />
<br />
==== enblend ====<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Revision<br />
! width="500" |<br />
Comments<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-07<br />
| style="border-top: thin dotted #333333;" |<br />
builds on ubuntu 7.10 AMD64, OSX (used for snapshot package), Windows (used for first snapshot installer)<br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
2008-02-03<br />
| style="border-top: thin dotted #333333;" |<br />
builds on Windows and ubuntu 7.10 x86 32bit<br />
|-valign="top" <br />
|}<br />
<br />
[[older enblend revision notes]]<br />
<br />
=== Supported Platforms ===<br />
<br />
* If you don't find your preferred platform listed below '''and''' you are willing to contribute your time and skills to build hugin on it, feel free to add it to the table. We will accommodate any well supported platform in the regular release process.<br />
* The '''Build-Chain Responsibles''' listed below have access to a build chain on the selected platform and have agreed to run the build chain within 2 days of a request from Pablo. They will forward the resulting binary package to the Release Manager who will in turn put them up for download by the general public.<br />
* '''Redundancy is good'''. If you have access to one of the listed platforms, please try to run the documented process below and report success to hugin-ptx. If you think you could do this on a more regular basis, enter yourself in the Backup Build-Chain field.<br />
<br />
<br />
{| style="margin: 1em auto 1em 1em;background:#FFFFDD;text-align:left;border-top: thin dotted #333333;"<br />
|-valign="top"<br />
! width="100" |<br />
Platform<br />
! width="100" |<br />
Status<br />
! width="100" |<br />
Process<br />
! width="200" |<br />
Build-Chain Responsible<br />
! width="200" |<br />
Credits <br />
! width="200" |<br />
Backup Build-Chains <br />
|-valign="top" <br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Sébastien Perez-Duarte<br />
* Yuval Levy<br />
* Régis B.<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
ubuntu 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Ubuntu | OK]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Fedora 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Bruno Postle<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Fedora 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling Fedora | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX IntelMac <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OSX | draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
Peter A. Crowley<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Ippei Ukai<br />
* JD Smith <br />
* Daniel M. German<br />
* Peter A. Crowley<br />
* David Haberthür<br />
* John Riley<br />
* Roger Howard<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OSX PPC <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OSX | draft]]<br />
| style="border-top: thin dotted #333333;" |<br />
Peter A. Crowley<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
Windows 32bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
*[[Build Hugin for Windows with SDK | OK, SDK based]]<br />
*[[Hugin Compiling Windows | draft, from scratch]]<br />
| style="border-top: thin dotted #333333;" |<br />
Tom Sharpless<br />
| style="border-top: thin dotted #333333;" |<br />
* Tom Sharpless<br />
* John Navas<br />
* Jean-Marc Paratte<br />
* Yili Zhao<br />
* Yuval Levy<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* Kornel Benko (10.3)<br />
* Peter Suetterlin (10.2)<br />
* Stephan Hegel (10.3 x86_64)<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
OpenSuse 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
| style="border-top: thin dotted #333333;" |<br />
[[Hugin Compiling OpenSuse | tbd]]<br />
| style="border-top: thin dotted #333333;" |<br />
tbd<br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD 32bit<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
Vasil Dimov, FreeBSD port maintainer<br />
| style="border-top: thin dotted #333333;" rowspan="2" |<br />
* confirmed to build on FreeBSD 6.2/i386<br />
* confirmed to build on FreeBSD 7.0/amd64<br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
FreeBSD 64bit <br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
| style="border-top: thin dotted #333333;" |<br />
n/a<br />
<!-- spanned| style="border-top: thin dotted #333333;" | tbd --><br />
<!-- spanned style="border-top: thin dotted #333333;" | --><br />
| style="border-top: thin dotted #333333;" |<br />
|-valign="top"<br />
! style="border-top: thin dotted #333333;" |<br />
all platforms<br />
! style="border-top: thin dotted #333333;" colspan="5" |<br />
a big thank you to '''Pablo d'Angelo''' for supporting all of those building efforts.<br />
|-valign="top"<br />
|}<br />
<br />
=== Stati ===<br />
<br />
'''Build Chain'''<br />
* tbd: looking for responsible<br />
* OK: mostly automated build process ready on request<br />
* unavailable: temporarily unavailable (e.g. responsible on holiday)<br />
* HW-broken: the hardware is temporarily unavailable<br />
* SW-broken: temporarily dysfunctional, working on a fix<br />
* broken: nobody is working on a fix<br />
* unsupported: has been dropped for lack of support<br />
<br />
'''Process'''<br />
* tbd: status unknown<br />
* auto: work as documented and has been automated to a reasonable extent<br />
* OK: works as documented, could use automation / scripting<br />
* draft: documented, needs validation / testing / cleaning<br />
* incomplete: parts are missing (e.g. enblend, libpano)<br />
* outdated: worked in the past but needs an update<br />
* obsolete: nobody has the time to update<br />
<br />
== Packaging and Distribution ==<br />
<br />
Instructions for packaging binaries for distribution will follow. Some important points:<br />
<br />
=== Snapshots ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
* label clearly the snapshot as such, with a reference to the build date and/or the SVN revision number<br />
* edit the text / readme files that come with the snapshot<br />
** indicate clearly that it is unstable, experimental software<br />
** indicate where to find the latest version<br />
** indicate that the advertised features might or might not work<br />
<br />
=== Release ===<br />
* comply with the GPL<br />
** join a text of the GPL in the distribution<br />
** give access to the source code<br />
** credit the authors<br />
<br />
== Feedback ==<br />
<br />
When running through the building process documented above chances are that something goes wrong. While it is disappointing when the process ends in a flurry of cryptic error messages it is not harmful. This is the nature of software development and you are now part of it. There is still a lot of value in your experience and you can help improve the process and get closer to the hoped for software package. Please don't be ashamed that it did not work. This happens even to the most expert coders. Give the developers feedback on the hugin-ptx mailing list. Only with your feedback they can know that something goes wrong, and a well crafted feedback helps them find out quickly what went wrong and devise a solution. Be a part of the solution, not a part of the problem!<br />
<br />
To give good feedback, note down carefully all of this information while you are going through the instructions.<br />
# details about your computer. CPU, operating system, other particularities<br />
# the revision number of the code checked out with SVN (which appears at the end of the checkout process) or with CVS. Or, if you don't find a revision number, the date and time when you checked out the code.<br />
# the last step / command you entered into the command line<br />
# a copy of the last few lines displayed, from where you think the error messages started. Don't worry if you copy a couple of lines too many, it is better to give more lines than less lines.<br />
<br />
Even the standard feedback is good feedback. For those wishing to dig deeper, you can try<br />
* to use "make VERBOSE=1" when building hugin.<br />
* to do a debug build "cmake -DCMAKE_BUILD_TYPE=DEBUG" and use oprofile for profiling.</div>MaximTeehttps://wiki.panotools.org/index.php?title=Hugin_Compiling_Windows_with_SDK&diff=10108Hugin Compiling Windows with SDK2008-03-14T22:41:09Z<p>MaximTee: added some clarifications after validating the process on a clean WinXP system</p>
<hr />
<div>This article gives step-by-step instructions for building hugin from a source code snapshot using Visual C++ 2008 Express Edition and precompiled dependencies. That is the recommended way to build hugin for Windows, and the only way that has worked for me. It also shows how to build enblend 3, which hugin now requires, with the same tools.<br />
<br />
Bear in mind that a source snapshot of hugin is a transient stage in an incomplete and rapidly evolving package, so may have a short useful life, and will contain bugs and defects. Your main purpose in building one should be to help find, report, and maybe correct some of those. <br />
<br />
== Background ==<br />
<br />
The hugin build is based on cmake, a cross platform makefile generator. On Windows, cmake can generate project files for various Microsoft Visual Studio toolsets, from the same specifications it uses to create makefiles on other platforms. The current release (cmake 2.4.7) only supports VC 2003 and 2005; the unreleased 2.4.8 and the current development trunk (2.5) support VC 2008 too, so you will need one of those.<br />
<br />
Pablo has recently published an sdk containing all the support components needed to build hugin and enblend (and AutoPano-SIFT-C) on Windows. Version 1 of the sdk has two flavors, one built with Visual C++ 2003 Express, the other with VC 2008 Express. Version 2, which is more complete, is only for VC 2008 at present.<br />
<br />
If if you already have VC 2003 (and the corresponding Windows Platform SDK) installed you might want to try that. Otherwise use VC 2008, which is currently available and easier to install because the Platform SDK is bundled. You can install VC 2008 Express beside other Microsoft compiler versions, even professional ones, without damaging either toolset. <br />
The enblend source tree has projects for building with both the 2003 and 2008 tools (also 2005 but there is no sdk for that).<br />
<br />
The following instructions are for starting from scratch on a Windows PC without any software building tools installed. If you already have some of these things installed, you will need to take care that the right tools and components are used. It is vitally important that all object code is generated by the same compiler version and targeted to the same VC runtime library.<br />
<br />
The recommended Tortoise archive clients work through the Windows File Explorer: right-click a target directory and follow the popup menus.<br />
<br />
== Get Tools ==<br />
<br />
1) install Visual C++ 2008 Express<br />
http://www.microsoft.com/express/download/<br />
<br />
2) install cmake -- not the currently released version 2.4.7, but either<br />
version 2.4.8 (stable, works)<br />
http://www.cmake.org/files/v2.4/cmake-2.4.8-RC-13-win32-x86.exe<br />
or version 2.5 (may not be stable)<br />
http://www.cmake.org/HTML/Download.html<br />
Pending release of 2.5, follow the link "nightly CVS binary" and download the .exe installer for a recent snapshot (cmake-2.5.20080117-win32-x86.exe worked for me). <br />
<br />
3) install Tortoise CVS and SVN clients<br />
http://sourceforge.net/project/platformdownload.php?group_id=48103<br />
http://sourceforge.net/project/showfiles.php?group_id=138498<br />
<br />
== Get hugin SDK ==<br />
<br />
4) download the precompiled sdk<br />
http://hugin.panotools.org/sdk/MSVC/hugin_enblend_sdk_msvc2008_v2.7z<br />
unpack it into new directory huginbase with winrar or 7zip.<br />
NOTE The version 1 sdks, which are zip files, lack the unix utilities (unxutils) required for hugin installaiton. You get that at http://sourceforge.net/project/showfiles.php?group_id=9328.<br />
<br />
== Build enblend 3 ==<br />
<br />
5) check out enblend 3 source tree into huginbase. Right click on huginbase in Windows Explorer and select "CVS Checkout..." from the popup menu. Enter the following incantation into the CVSROOT: box in the resulting dialog and click OK. <br />
:pserver:anonymous@enblend.cvs.sourceforge.net:2401/cvsroot/enblend<br />
If OK is grayed out, click Fetch list..., select enblend module and then click OK.<br />
<br />
The result should be a new directory, huginbase/enblend, containing the source tree.<br />
<br />
6) open huginbase/enblend/enblend_msvc2008.sln with Visual Studio 2008 Express. Change the target configuration to 'release' (build menu, configuration manager). Click build solution. After it completes, copy enblend/INSTALLDIR into huginbase/enblend-3.1/. The hugin install script expects this directory. <br />
<br />
== Build hugin ==<br />
<br />
7) check out hugin source tree into huginbase. Make a new folder called hugin inside huginbase. Right click on huginbase/hugin in Windows Explorer, select "SVN Checkout...", enter this source URL, set target directory to "hugin" and click OK.<br />
https://hugin.svn.sourceforge.net/svnroot/hugin/hugin/trunk<br />
<br />
The result should be a new directory, huginbase/hugin, containing the source tree. Write down the reported SVN revision number, you will need it later. <br />
<br />
8) Start the cmake gui (cmakesetup.exe). To ensure that the environment is set right, run cmakesetup.exe from the VC 2008 command shell (available under the Windows Start Menu) - essential if you have other compilers installed. You might want to create a desktop shortcut that does this with one click.<br />
<br />
Set cmake's source code directory to huginbase/hugin and its build directory to huginbase/hugin-build (this will create a new directory for the build). Click Configure and tell it to use Visual C++ 2008. Cmake then checks the build tools and if that goes well does the first round of searching for components. When done it displays a list of configuration variable settings, on a red background. Click "Show Advanced Values" to display all of them.<br />
<br />
This is when you get to correct anything that needs correcting. First, set HUGIN_WC_REVISION to the SVN revision number (which should be automatic but currently is not on Windows). And set CMAKE_BUILD_TYPE to "Release". It is an error to leave HUGIN_WC_REVISION blank, and you will get a warning message later if CMAKE_BUILD_TYPE is "Debug". Heed it.<br />
<br />
Next, check that all component pathnames start at huginbase. Cmake may have found some things installed in standard places on your system; but it should only be using the ones in the sdk. To correct a pathname, click on it and either type in the right one or click '...' to pop a fileselector. Look out for values with "_NOT_FOUND" in them; these may indicate problems with your directory names or structure. You will need to set ENBLEND_EXE_DIR to huginbase/enblend that was created when you checked out enblend source. Also, you need to set HUGIN_BUILDER and HUGIN_BUILDATE -- this is you name and date of the build that will appear on application splash screen.<br />
<br />
When you are satisfied the paths are right, click Configure again, and Cmake will try to validate the variables. That might set some new ones, which will appear in red. Recheck all values, even the grey ones. If a variable keeps coming up wrong try deleting it from cache (right click on name pops menu) and configure again; this is often necessary to trigger a new search. Keep fixing and clicking Configure until everything is OK. Then click OK to generate the project files.<br />
<br />
9) Open hugin.sln in the build directory with Visual Studio 2008 Express and wait while it loads and checks all the projects. Then select a target configuration and click "build solution". After a long time, and many warnings, you should get a successful build.<br />
<br />
10) Build the INSTALL project. This should put a complete hugin installation in huginbase/hugin-build/INSTALL/FILES.<br />
<br />
NOTE any missing file stops the install script, leaving the installation more or less incomplete. If this happens, first look at the install scripts, cmake_install.cmake (several places in the hugin-build tree) to identify all the files that were not found (paths with "_NOT_FOUND" in them). If you can find all of them, put them where the install script expects them -- hugin/cmakemodules/winbundle.cmake will help indentify those places. You can't just build INSTALL again, because the files are searched for at configuration time, so the install scripts will still contain invalid pathnames until you run cmakesetup again. Exit Visual Studio first, since all project files must be rebuilt. It may be necessary to delete pathnames of the failed places (such as enblend-3.1) from cache to ensure everything gets regenerated. Then Configure, OK, open the new hugin.sln and build INSTALL.<br />
<br />
== Updating the hugin build ==<br />
<br />
To update your source tree to to the latest revision, right click on huginbase/hugin in Windows Explorer and select "SVN Update". Remember to note the revision number. <br />
<br />
Check if there is a new release of the sdk, and if so, download and install it.<br />
<br />
Then you have to run cmakesetup again. Proceed as in 8) above, but click "Delete Cache" before "Configure", so that the new configuration gets built from scratch.<br />
<br />
Remember to "Clean" or "Rebuild" the entire solution in MSVC.<br />
<br />
== Installing hugin on Windows ==<br />
<br />
Directory hugin-build/INSTALL/FILES contains a complete, self-contained hugin installation. You can use this as is, or copy it to a directory of your choice if you wish to delete the build tree (it is a good idea to put the the SVN version number in the name of that directory. e.g. FILES becomes "hugin_0.7.0.2766"). You should create a shortcut to hugin.exe on your desktop (note you can start new projects by dragging and dropping groups of files on the shortcut). You may also want to associate the new hugin.exe with the hugin project file (.pto) file extension. <br />
<br />
This way of installing can be undone simply by deleting the files. It will not break any other hugin installation that may be on your system. However, note that all instances of hugin do share the same persistent settings, so options you set in one version will affect the others, too.<br />
<br />
The source tree and sdk contain support for building Windows Installer (.msi) packages with War Setup and/or Innosetup. At present these are under development and could potentially damage your Registry and/or prior installations of hugin, so I would advise not using them until a stable release is issued.<br />
<br />
The hugin team periodically publishes "snapshot" builds for testing. The Windows versions of these come in two forms, as a self-installing archive that automates the simple "copy files" method described above, and as a Windows Installer package.<br />
<br />
== Some things that don't work ==<br />
<br />
Trying to target the dll versions of the Visual C runtimes. Only the static C libraries (libcmt, libcmtd) will do. You can't mix static and dll runtimes, so all (static) dependencies must also have been compiled with /MT or /MTd. While it might be possible to use dll versions of some of the support libraries, such as tiff or OpenEXR, it is safest to keep a strict policy of "static libraries only".<br />
<br />
Trying to use dependencies built with a different compiler. For all practical purposes, Microsoft runtime libraries are now usable with only one compiler version. Although linking code built with more than one compiler sometimes seems to work, the resulting program is likely to fail.<br />
<br />
Trying to link Boost libraries of a different source version than the Boost headers. Boost takes some trouble to lock object code to source version as well as compiler version, so it is rarely possible (and always a mistake) to do this.<br />
<br />
Occasionally a build step fails mysteriously, that has succeeded before. The main cause of this is a file being marked in the Windows filesystem as in use when a tool tries to open it. On a slow, heavily loaded machine, the filesystem may not update a closed file's status quickly enough -- solution: reduce the load. On any machine, Google Desktop Search (or other automatic indexer) may grab a recently updated file and really have it open -- solution: pause or disable indexing and retry the build step.<br />
<br />
<small>--[[User:Tksharpless|Tksharpless]] 16:42, 23 January 2008 (CET)</small><br />
<br />
[[Category:Software:Hugin]]<br />
[[Category:Software:Platform:Windows]]</div>MaximTee