Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 75192

Summary: This adds a new ebuild for the autopano-sift program
Product: Gentoo Linux Reporter: seddes <destraub2002>
Component: New packagesAssignee: dotnet project <dotnet>
Status: RESOLVED FIXED    
Severity: enhancement CC: cbm, davidgrant, duvall, gentoo, gilles, graphics+disabled, miolinux, radek, voyageur
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
URL: http://user.cs.tu-berlin.de/~nowozin/autopano-sift/
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 24922    
Attachments: ebuild for autopano-sift
new release of 2.1 ebuild
shell script for /usr/bin to execute mono & autopanog.exe
ChangeLog
r2 of autopano-sift-2.1
autopano-sift-2.1-r3.ebuild
autopano-sift-2.2.ebuild
autopano-sift-2.2.ebuild
generic script to run autopano-sift utilities
autopano-sift-2.2-r1.ebuild
autopano-sift-2.2-r1.ebuild
autopano-sift-2.2-r1.ebuild
autopano-sift-2.3.ebuild

Description seddes 2004-12-21 08:44:31 UTC
autopano-sift is a graphics module that is used for the stitching of digital photos.  It is mono based.

Reproducible: Always
Steps to Reproduce:
1.
2.
3.
Comment 1 seddes 2004-12-21 08:47:29 UTC
Created attachment 46547 [details, diff]
ebuild for autopano-sift

Mostly "hotheads" ebuild.  See 
http://forums.gentoo.org/viewtopic.php?t=251842&highlight=autopanosift
in forums.  Version 2.1 of autopano-sift.  Should be under media-gfx.
Comment 2 Ciaran McCreesh 2004-12-21 08:49:31 UTC
Ick, fix that global scope export please. Should be in pkg_setup...
Comment 3 Peter Johanson (RETIRED) gentoo-dev 2004-12-21 10:12:53 UTC
1) Use the mono eclass to avoid this MONO_SHARED_DIR problem.

2) As much as possible, *.exe should avoid going into /usr/bin. *.dll *definitely* shouldn't be there. Please see how muine or blam handle the placement of their files.
Comment 4 seddes 2004-12-21 12:00:05 UTC
Created attachment 46558 [details]
new release of 2.1 ebuild

New ebuild of autopano-sift:
21 Dec 2004; seddes <destraub2002@yahoo.com>
  autopano-sift-2.1-r1.ebuild, autopano-sift : Changed
  MONO_SHARED_DIR to importing the mono eclass, changed install
  directory to /usr/lib/autopano-sift, added shell script
  "autopano-sift" that is installed in bin (to be placed in "files"
  in the ebuild directory)
Comment 5 seddes 2004-12-21 12:01:37 UTC
Created attachment 46560 [details]
shell script for /usr/bin to execute mono & autopanog.exe

shell script to be placed in bin.  For ebuild, should be placed in files
directory.
Comment 6 seddes 2004-12-21 12:02:23 UTC
Created attachment 46561 [details]
ChangeLog

ChangeLog
Comment 7 seddes 2004-12-22 17:49:36 UTC
Created attachment 46680 [details]
r2 of autopano-sift-2.1

r2 of autopano-sift-2.1 ebuild.  Updates LICENSE, installs docs.
Comment 8 David Grant 2005-01-02 16:13:11 UTC
Just a small note for some people to save you some time. If you have the nptl USE flag enabled, just disable it for autopano-sift. If you use nptl, it will require gcc-3.4 for mono, which is required by autopano-sift.
Comment 9 David Grant 2005-01-04 08:23:27 UTC
Created attachment 47597 [details]
autopano-sift-2.1-r3.ebuild

Got rid of some madness in the SRC_URI

Download the script manually and put in the ./files dir relative to the ebuild.
Comment 10 David Grant 2005-01-05 00:57:13 UTC
This is an amazing program. You have to see it to believe it.
Comment 11 David Grant 2005-01-05 00:58:02 UTC
Tested fine for me, works great.
Comment 12 David Grant 2005-01-16 23:30:41 UTC
Created attachment 48723 [details]
autopano-sift-2.2.ebuild

Updated autopano-sift ebuild.

-version bump to 2.2
-changed COPYING file to LICENSE
-tested
Comment 13 David Grant 2005-01-16 23:31:34 UTC
Hello panorama enthusiasts,

I am proud to announce a new version of autopano-sift, version 2.2.  It adds a
refining step for the keypoints found in which a small part of the original
sized image is extracted for high precision matching (think "auto-refine" of
hugin on steroids  ;-) .  For the best matching results possible.

As always its available from

	http://cs.tu-berlin.de/~nowozin/autopano-sift/

However, I have not gotten around to include the feature into the Windows GUI,
sorry (if somebody wants to help with that, patches are welcome).  The
refinement is only available on the command line and from the Gtk# GUI.


Here is the CHANGES.txt:

autopano-sift 2.2, libsift 1.7
2005/01/15

  + Add best quality refinement of control point matches.  To enable this, run
    autopano.exe with "--refine".  Note that the original image files need to
    be available.  Further information available in the manpage.  (So far its
    not available in the native Windows GUI).
  + Add options to autopanog, the Gtk# GUI.
  + Update documentation.

Enjoy,
Sebastian Nowozin <nowozin@cs.tu-berlin.de>
Comment 14 David Grant 2005-01-17 00:36:37 UTC
Created attachment 48727 [details]
autopano-sift-2.2.ebuild

Added new dependancy: libgdiplus
Comment 15 David Grant 2005-01-17 00:37:13 UTC
Should this be assigned to graphics?
Comment 16 Peter Johanson (RETIRED) gentoo-dev 2005-01-18 10:53:19 UTC
CCing them, in case they have more time than I for things like this.


David: until mono is more pervasive, most mono consuming apps get assigned to dotnet herd, as we're used to the problems involved with these apps.

If i find time this week, i'll get this guy into portage.
Comment 17 seddes 2005-01-18 18:41:52 UTC
Just to confirm, 2.2 worked fine for me.  Stitched 5 photos with autopano-sift, hugin, and enblend.
Comment 18 Karl Tomlinson 2005-01-19 13:58:52 UTC
Great package.
All worked fine except the new refinement step which sometimes failed with:

Refining keypoints
...
Unhandled Exception: System.Exception: BUG: less than three neighbours!
in <0x0036f> MultiMatch:BuildGlobalMatchList ()
in <0x000f2> MultiMatch:TwoPatchMatch (System.Collections.ArrayList,int,int,System.Collections.ArrayList,int,int,bool)
in <0x00836> Autopano:RefineKeypoints (System.Collections.ArrayList,bool,bool)
in <0x00a92> Autopano:Main (string[])

This could be worked around by either increasing the --maxmatches number or using the --refine-by-mean option.
Comment 19 Karl Tomlinson 2005-01-19 14:05:32 UTC
Created attachment 48994 [details]
generic script to run autopano-sift utilities

Runs mono on autopano-sift binaries with arguments quoted.

For ebuild to follow, should be placed in files/autopano.
Comment 20 Karl Tomlinson 2005-01-19 14:15:20 UTC
Created attachment 48996 [details]
autopano-sift-2.2-r1.ebuild

Modified to

Install autopano-complete.sh.
Make utilities easier to run with symlinks in /usr/bin to generic script.
Not install ICSharpCode.SharpZipLib.dll as this is provided by mono.
Not install autopano-win32.exe.
Install the binaries compiled from source instead of the prebuilt binaries.

I changed the gui to be run with autopanog instead of autopano-sift because I
thought it was more consistent with the man page.
Comment 21 miolinux 2005-02-25 00:42:45 UTC
The 2.2-r1 ebuild creates /usr/bin/autopanog,
but this is a symlink pointing to /usr/bin/autopano
that is not installed by the ebuild!

$ etcat -f =autopano-sift-2.2-r1|grep -i bin
/usr/bin
/usr/bin/generatekeys
/usr/bin/autopano-complete.sh
/usr/bin/autopanog

$ ls -al /usr/bin/autopanog
lrwxrwxrwx  1 root root 8 Feb 25 09:29 /usr/bin/autopanog -> autopano


the solution is to create /usr/bin/autopano with the "generic script to run autopano-sift utilities" attachment,
but i think the ebuild should do that.

bye
Comment 22 Colin Macdonald 2005-02-25 09:16:44 UTC
Comment #21, there is another file called "generic script to run autopano-sift utilities" in the list of attachments that you need to download and put in /usr/local/portage/.../autopano-sift/files.  It is the script you describe.  I also missed this the first time and the ebuild doesn't die if it is missing (which is a bug I think).  Since its only a 1 liner, I think the ebuild should just create the appropriate script rather then putting another file in the portage tree.
Comment 23 Karl Tomlinson 2005-02-28 21:40:21 UTC
Created attachment 52341 [details]
autopano-sift-2.2-r1.ebuild

I agree with Comment #22 that the ebuild should create the script to run mono
on autopano-sift utilities (if we need one) rather than have another file in
portage for everyone to sync.  Modified the ebuild to do this.
Comment 24 Colin Macdonald 2005-03-12 19:54:14 UTC
mono dep should change to dev-lang instead of dev-dotnet.
Comment 25 David Grant 2005-03-28 15:52:56 UTC
Created attachment 54724 [details]
autopano-sift-2.2-r1.ebuild

changed dev-dotnet/mono to dev-lang/mono
Comment 26 Hal Engel 2005-03-29 00:39:38 UTC
I am trying to use this ebuild (2.2-r1) on an amd64 system. and I am getting an error during compile.  I have mono 1.1.5, gtk-sharp 1.0.8, glade-sharp 1.0.8, libgdiplus 1.1.5 installed.  Any ideas?  There is my emerge output:

snip
>>> Source unpacked.
mcs /debug /unsafe /target:library /out:libsift.dll \
        ImageMap.cs KDTree.cs ScaleSpace.cs SimpleMatrix.cs ImageMatchModel.cs RANSAC.cs Transform.cs LoweDetector.cs GaussianConvolution.cs KeypointXML.cs MatchKeys.cs BondBall.cs AreaFilter.cs /pkg:gtk-sharp /r:System.Drawing /r:ICSharpCode.SharpZipLib
KDTree.cs(448) warning CS0219: The variable 'nearest' is assigned but its valueis never used
KDTree.cs(573) warning CS0219: The variable 'nearest' is assigned but its valueis never used
BondBall.cs(241) warning CS0219: The variable 'unknownFile' is assigned but itsvalue is never used
Compilation succeeded - 3 warning(s)
make  -C util all
make[1]: Entering directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util'
mcs /debug /unsafe /out:autopano.exe Autopano.cs \
        DrawingPrimitives.cs BasicImagingInterface.cs GUIImage-Drawing.cs \
        /r:../libsift.dll /r:System.Drawing /define:USING_GTK /pkg:gtk-sharp /pkg:glade-sharp
DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
mcs /debug /unsafe /out:showone.exe ShowOne.cs DrawingPrimitives.cs BasicImagingInterface.cs GUIImage.cs /r:../libsift.dll /r:System.Drawing /define:USING_GTK /pkg:gtk-sharp /pkg:glade-sharp
DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
mcs /debug /unsafe /out:showtwo.exe ShowTwo.cs DrawingPrimitives.cs BasicImagingInterface.cs GUIImage.cs /r:../libsift.dll /r:System.Drawing /define:USING_GTK /pkg:gtk-sharp /pkg:glade-sharp
DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
mcs /debug /unsafe /out:generatekeys.exe GenerateKeys.cs \
        DrawingPrimitives.cs BasicImagingInterface.cs GUIImage.cs /r:../libsift.dll /r:System.Drawing /define:USING_GTK /pkg:gtk-sharp /pkg:glade-sharp
DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
mv generatekeys.exe generatekeys-gtk.exe
make -C . systemdrawing=yes generatekeys.exe
make[2]: Entering directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util'
mcs /debug /unsafe /out:generatekeys.exe GenerateKeys.cs \
        DrawingPrimitives.cs BasicImagingInterface.cs GUIImage-Drawing.cs /r:../libsift.dll /r:System.Drawing
DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned but its value is never used
Compilation succeeded - 1 warning(s)
make[2]: Leaving directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util'
mv generatekeys.exe generatekeys-sd.exe
mv generatekeys-gtk.exe generatekeys.exe
make  -C autopanog all
make[2]: Entering directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util/autopanog'
mcs /debug /unsafe -out:autopanog.exe -main:Autopanog autopanog.cs \
        -resource:autopanog.glade \
        ../BasicImagingInterface.cs ../GUIImage-Drawing.cs ../DrawingPrimitives.cs ../Autopano.cs /pkg:gtk-sharp /pkg:glade-sharp /resource:image-bottom-left.png /resource:image-bottom-right.png /resource:image-vanilla.png /r:System.Drawing.dll /r:../../libsift.dll
autopanog.cs(89) warning CS0219: The variable 'test' is assigned but its value is never used
autopanog.cs(130) warning CS0219: The variable 'test' is assigned but its valueis never used
autopanog.cs(167) warning CS0219: The variable 'test' is assigned but its valueis never used
../DrawingPrimitives.cs(66) warning CS0219: The variable 'sign' is assigned butits value is never used
Compilation succeeded - 4 warning(s)
make[2]: Leaving directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util/autopanog'
make  -C autopano-win32 all
make[2]: Entering directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util/autopano-win32'
mcs   -main:autopano_sift_winGUI.Form1 \
        -r:System.dll -r:System.Data.dll -r:System.Drawing.dll \
        -r:System.Windows.Forms.dll -r:System.Xml.dll \
        -r:ICSharpCode.SharpZipLib.dll \
        -r:../../libsift.dll \
        -target:winexe -out:autopano-win32.exe \
        -resource:Form1.resx,autopano_sift_winGUI.Form1.resx -resource:FormProcess.resx,autopano_sift_winGUI.FormProcess.resx \
        AssemblyInfo.cs ../Autopano.cs ../BasicImagingInterface.cs Form1.cs FormProcess.cs ../GUIImage-Drawing.cs
Form1.cs(43) error CS0234: The type or namespace name `ErrorProvider' could notbe found in namespace `System.Windows.Forms'
Compilation failed: 1 error(s), 0 warnings
make[2]: *** [autopano-win32.exe] Error 1
make[2]: Leaving directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util/autopano-win32'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/autopano-sift-2.2-r1/work/autopano-sift-2.2/src/util'
make: *** [utils] Error 2

!!! ERROR: media-gfx/autopano-sift-2.2-r1 failed.
!!! Function src_compile, Line 25, Exitcode 2
!!! compiling failed
!!! If you need support, post the topmost build error, NOT this status message.

Comment 27 Bernard Cafarelli gentoo-dev 2005-03-31 10:27:52 UTC
Same thing here (and amd64 too). But the error is related to a "autopano-win32" thing the makefile wants to build... Since gentoo is a linux system, I removed the offending lines from the makefile and voila, autopanog is available on amd64 :)

I added to src_compile():
sed -i "s/^.*win32.*$//" util/Makefile
(after the cd ${S}/src line).
Comment 28 David Grant 2005-04-09 11:47:32 UTC
Created attachment 55779 [details]
autopano-sift-2.3.ebuild

Please test and then add to portage.

I've tested this version and it works for me.
Comment 29 Bernard Cafarelli gentoo-dev 2005-04-10 04:34:41 UTC
At last, this new version is usable with a screen resolution smaller than 1280x1024!
As for the "autopano-win32" compile problem on amd64, i think it doesn't appear on x86 with the help of dev-dotnet/winelib (since the error is related to Windows.Forms). But with the makefile tweak it runs quite well.
Comment 30 Karl Tomlinson 2005-04-10 14:42:28 UTC
Comment on attachment 52341 [details]
autopano-sift-2.2-r1.ebuild

autopano-sift-2.3 resolves the "less than three neighbours" issue mentioned in
Comment #18 (for at least one case that failed with 2.2).
Comment 31 Hal Engel 2005-04-21 12:47:29 UTC
The amd64 compile error happens when trying to build the byte code.  The simplest way around this is to simply copy the byte code from the bin directory in the autopano-sift tarball to someplace in the path.  After all this byte code is the same no matter where it is being run.  Both 2.2 and 2.3 have worked fine after doing this.  I have not tried installing dev-dotnet/winelib so I do not know if this works on amd64.  Perahps some other amd64 person could try the ebuild after installing dev-dotnet/winelib.

There are a number of amd64 users on the hugin list that have the whole suite of tools running in 64bit mode including at least 2 Gentoo users.  This includes autopano-sift, hugin, nona, PTOptimizer and enblend.  The only thing that does not work in 64 bit mode is PTStitcher which is only available as a 32 bit binary.  I have it running in 32 bit mode. The biggest hang up getting autopano-sift running is getting the correct versions of mono and related installed.  I have mono-1.1.5, libgdiplus-1.1.5, gtk-sharp-1.0.8 and glade-sharp-1.0.8.  All of these are masked for amd64 or hard masked for all archs but appear to work fine.  At the time I installed these they were the latest versions.  Versions of mono <1.1 do not correctly support the amd64.
Comment 32 Steven Brown 2005-05-08 12:06:39 UTC
When emerging autopano-sift-2.3, I got the same error as in Comment 26.
Using:
	mono 1.1.6-r1
	libgdiplus-1.1.5
	gtk-sharp-1.0.8
	glade-sharp-1.0.8

(I'm on x86)

Then I followed the directions in Comment 27, and it worked!  Thanks a lot!
Comment 33 Mark Loeser (RETIRED) gentoo-dev 2005-08-10 16:03:13 UTC
Added to the tree.  Thanks everyone.
Comment 34 Hans Oischinger 2006-02-13 02:14:23 UTC
There is one glitch in the current ebuild:
autopano-sift requires an unstable version of libgdiplus to downscale images for processing.
libgdiplus 1.1.11 worked fine for me. However the currently stable version 1.1.8 made generatekeys crash here.
Comment 35 Marcelo Goes (RETIRED) gentoo-dev 2006-02-13 08:56:13 UTC
Hope you don't mind Mark (please revbump if you think it's necessary):

  13 Feb 2006; Marcelo Goes <>
  autopano-sift-2.4.ebuild:
  Depend on >=libgdiplus-1.1.11. Thanks to Hans Oischinger <hans dot
  oischinger at arcor dot de> in bug 75192.