diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix index 816bd5aa48a4..b1a940b9b56d 100644 --- a/pkgs/applications/graphics/hugin/default.nix +++ b/pkgs/applications/graphics/hugin/default.nix @@ -3,15 +3,13 @@ glew, libXmu, libXi }: stdenv.mkDerivation rec { - name = "hugin-2009.4.0"; + name = "hugin-2010.0.0"; src = fetchurl { url = "mirror://sourceforge/hugin/${name}.tar.gz"; - sha256 = "1xa7rnpwlv68wfkikmlrs74hqylpkh837p3narqljr2a7fxf04r9"; + sha256 = "08xm7ggfrh536lqvdzw7zg09p2awbclw5r7i8c59gf092w1cac7d"; }; -# patches = [ ./levmar-64-bit-alignment.patch ]; - NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR"; NIX_LDFLAGS = "-lrt"; diff --git a/pkgs/applications/graphics/hugin/levmar-64-bit-alignment.patch b/pkgs/applications/graphics/hugin/levmar-64-bit-alignment.patch deleted file mode 100644 index b0c39e378ec9..000000000000 --- a/pkgs/applications/graphics/hugin/levmar-64-bit-alignment.patch +++ /dev/null @@ -1,64 +0,0 @@ -This patch fixes alignment issues on 64-bit machines. It was taken -from http://www.mail-archive.com/hugin-ptx@googlegroups.com/msg02976.html . -See also http://thread.gmane.org/gmane.linux.distributions.nixos/2352 . - ---- hugin/src/foreign/levmar/misc_core.c 2009-04-28 13:30:33.000000000 +0200 # SVN 3799 -+++ hugin/src/foreign/levmar/misc_core.c 2009-05-04 07:49:00.000000000 +0200 # Merged patch.pt and fix_alias.diff -@@ -332,7 +332,7 @@ - a_sz=m*m; - u_sz=m*m; s_sz=m; vt_sz=m*m; - -- tot_sz=iworksz*sizeof(int) + (a_sz + u_sz + s_sz + vt_sz + worksz)*sizeof(LM_REAL); -+ tot_sz=(a_sz + u_sz + s_sz + vt_sz + worksz)*sizeof(LM_REAL) + iworksz*sizeof(int); /* should be arranged in that order for proper doubles alignment */ - - buf_sz=tot_sz; - buf=(LM_REAL *)malloc(buf_sz); -@@ -414,25 +414,27 @@ - int buf_sz=0; - - register int i, j, k, l; --int *idx, maxi=-1, idx_sz, a_sz, x_sz, work_sz, tot_sz; -+int *idxbuf, *idx, maxi=-1, idx_sz, a_sz, x_sz, work_sz, tot_sz; - LM_REAL *a, *x, *work, max, sum, tmp; - - /* calculate required memory size */ - idx_sz=m; -+ idxbuf=(void *)malloc(idx_sz*sizeof(int)); -+ - a_sz=m*m; - x_sz=m; - work_sz=m; -- tot_sz=idx_sz*sizeof(int) + (a_sz+x_sz+work_sz)*sizeof(LM_REAL); -+ tot_sz=(a_sz + x_sz + work_sz)*sizeof(LM_REAL) + idx_sz*sizeof(int); /* should be arranged in that order for proper doubles alignment */ - - buf_sz=tot_sz; - buf=(void *)malloc(tot_sz); -- if(!buf){ -+ if(!buf || !idxbuf){ - fprintf(stderr, RCAT("memory allocation in ", LEVMAR_LUINVERSE) "() failed!\n"); - exit(1); - } - -- idx=(int *)buf; -- a=(LM_REAL *)(idx + idx_sz); -+ idx=(int *)idxbuf; -+ a=(LM_REAL *)buf; - x=a + a_sz; - work=x + x_sz; - -@@ -448,6 +450,7 @@ - if(max==0.0){ - fprintf(stderr, RCAT("Singular matrix A in ", LEVMAR_LUINVERSE) "()!\n"); - free(buf); -+ free(idxbuf); - - return 0; - } -@@ -522,6 +525,7 @@ - } - - free(buf); -+ free(idxbuf); - - return 1; - }