rpms/cernlib/EL-5 cernlib-122-fix-cdf-file-syntax-errors.dpatch, NONE, 1.1 cernlib-123-extern-memmove-only-if-not-macro.dpatch, NONE, 1.1 cernlib-211-support-amd64-and-itanium.dpatch, NONE, 1.1 cernlib-600-use-host.def-config-file.dpatch, NONE, 1.1 cernlib-64test.patch, NONE, 1.1 cernlib-fedora_desktop.patch, NONE, 1.1 cernlib-man_static.patch, NONE, 1.1 cernlib-ppc64test.patch, NONE, 1.1 cernlib-script.patch, NONE, 1.1 cernlib-segf_eudtest.patch, NONE, 1.1 cernlib-test.patch, NONE, 1.1 geant321-109-fix-broken-xsneut95.dat-link.dpatch, NONE, 1.1 mclibs-321-support-gfortran.dpatch, NONE, 1.1 npatchy-curdir.patch, NONE, 1.1 npatchy-np_flags.patch, NONE, 1.1 patchy-use_OPT.patch, NONE, 1.1 paw-120-fix-mlp-cdf-file.dpatch, NONE, 1.1 paw-121-call-gfortran-in-cscrexec.dpatch, NONE, 1.1 paw-211-support-amd64-and-itanium.dpatch, NONE, 1.1 paw-706-use-external-xbae-and-xaw.dpatch, NONE, 1.1 .cvsignore, 1.4, 1.5 315-fixes-for-MacOSX.dpatch, 1.3, 1.4 cernlib-115-rsrtnt64-goto-outer-block.dpatch, 1.2, 1.3 cernlib-202-fix-includes-in-minuit-example.dpatch, 1.1, 1.2 cernlib-211-support-digital-alpha.dpatch, 1.1, 1.2 cernlib-304-update-Imake-config-files.dpatch, 1.1, 1.2 cernlib-318-additional-gcc-3.4-fixes.dpatch, 1.1, 1.2 cernlib-321-support-gfortran.dpatch, 1.1, 1.2 cernlib-800-implement-shared-library-rules-in-Imake.dpatch, 1.1, 1.2 cernlib-803-link-binaries-dynamically.dpatch, 1.1, 1.2 cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch, 1.1, 1.2 cernlib-deadpool.txt, 1.2, 1.3 cernlib-enforce-FHS.diff, 1.1, 1.2 cernlib-remove-deadpool, 1.1, 1.2 cernlib.spec, 1.37, 1.38 geant321-001-fix-missing-fluka.dpatch, 1.1, 1.2 mclibs-102-dont-optimize-some-code.dpatch, 1.1, 1.2 mclibs-206-herwig-uses-DBLE-not-REAL.dpatch, 1.1, 1.2 paw-119-fix-compiler-warnings.dpatch, 1.1, 1.2 paw-207-compile-temp-libs-with-fPIC.dpatch, 1.1, 1.2 paw-801-non-optimized-rule-uses-fPIC-g.dpatch, 1.1, 1.2 paw-806-bump-mathlib-and-dependents-sonames.dpatch, 1.1, 1.2 sources, 1.5, 1.6 022-no-assign-string-literals, 1.1, NONE 027-use-tmpfile-not-mktemp, 1.1, NONE 031-fix-varargs-use, 1.1, NONE 048-log-to-var-log-not-tmp, 1.1, NONE 049-fix-kuesvr-security-hole, 1.1, NONE 050-make-secure-comis-tmpdir, 1.1, NONE 051-fix-miscellaneous-tmp-uses, 1.1, NONE 211-support-amd64-and-itanium.dpatch, 1.1, NONE cernlib-113-cups-postscript-fix.dpatch, 1.1, NONE cernlib-314-permit-using-regcomp-for-re_comp.dpatch, 1.1, NONE cernlib-cernlib_kernlib.patch, 1.1, NONE cernlib-hwhiga_use_dimag.diff, 1.1, NONE cernlib-hwuli2_use_dimag.diff, 1.1, NONE cernlib_2005.dfsg-3.diff, 1.1, NONE geant321_3.21.14.dfsg-1.diff, 1.1, NONE mclibs_2005.dfsg-1.diff, 1.1, NONE patchy-case.patch, 1.2, NONE patchy-fcasplit.patch, 1.1, NONE patchy-yexpand.diff, 1.1, NONE paw_2.14.04-3.diff, 1.1, NONE

Patrice Dumas (pertusus) fedora-extras-commits at redhat.com
Wed Dec 19 23:28:29 UTC 2007


Author: pertusus

Update of /cvs/extras/rpms/cernlib/EL-5
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7989

Modified Files:
	.cvsignore 315-fixes-for-MacOSX.dpatch 
	cernlib-115-rsrtnt64-goto-outer-block.dpatch 
	cernlib-202-fix-includes-in-minuit-example.dpatch 
	cernlib-211-support-digital-alpha.dpatch 
	cernlib-304-update-Imake-config-files.dpatch 
	cernlib-318-additional-gcc-3.4-fixes.dpatch 
	cernlib-321-support-gfortran.dpatch 
	cernlib-800-implement-shared-library-rules-in-Imake.dpatch 
	cernlib-803-link-binaries-dynamically.dpatch 
	cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch 
	cernlib-deadpool.txt cernlib-enforce-FHS.diff 
	cernlib-remove-deadpool cernlib.spec 
	geant321-001-fix-missing-fluka.dpatch 
	mclibs-102-dont-optimize-some-code.dpatch 
	mclibs-206-herwig-uses-DBLE-not-REAL.dpatch 
	paw-119-fix-compiler-warnings.dpatch 
	paw-207-compile-temp-libs-with-fPIC.dpatch 
	paw-801-non-optimized-rule-uses-fPIC-g.dpatch 
	paw-806-bump-mathlib-and-dependents-sonames.dpatch sources 
Added Files:
	cernlib-122-fix-cdf-file-syntax-errors.dpatch 
	cernlib-123-extern-memmove-only-if-not-macro.dpatch 
	cernlib-211-support-amd64-and-itanium.dpatch 
	cernlib-600-use-host.def-config-file.dpatch 
	cernlib-64test.patch cernlib-fedora_desktop.patch 
	cernlib-man_static.patch cernlib-ppc64test.patch 
	cernlib-script.patch cernlib-segf_eudtest.patch 
	cernlib-test.patch 
	geant321-109-fix-broken-xsneut95.dat-link.dpatch 
	mclibs-321-support-gfortran.dpatch npatchy-curdir.patch 
	npatchy-np_flags.patch patchy-use_OPT.patch 
	paw-120-fix-mlp-cdf-file.dpatch 
	paw-121-call-gfortran-in-cscrexec.dpatch 
	paw-211-support-amd64-and-itanium.dpatch 
	paw-706-use-external-xbae-and-xaw.dpatch 
Removed Files:
	022-no-assign-string-literals 027-use-tmpfile-not-mktemp 
	031-fix-varargs-use 048-log-to-var-log-not-tmp 
	049-fix-kuesvr-security-hole 050-make-secure-comis-tmpdir 
	051-fix-miscellaneous-tmp-uses 
	211-support-amd64-and-itanium.dpatch 
	cernlib-113-cups-postscript-fix.dpatch 
	cernlib-314-permit-using-regcomp-for-re_comp.dpatch 
	cernlib-cernlib_kernlib.patch cernlib-hwhiga_use_dimag.diff 
	cernlib-hwuli2_use_dimag.diff cernlib_2005.dfsg-3.diff 
	geant321_3.21.14.dfsg-1.diff mclibs_2005.dfsg-1.diff 
	patchy-case.patch patchy-fcasplit.patch patchy-yexpand.diff 
	paw_2.14.04-3.diff 
Log Message:
sync with devel


--- NEW FILE cernlib-122-fix-cdf-file-syntax-errors.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 122-fix-cdf-file-syntax-errors.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix some lines in CDF file descriptions that were accidentally
## DP: commented out by virtue of beginning with a '*' character.

@DPATCH@
diff -urNad cernlib-2006.dfsg.2~/src/packlib/cspack/programs/zftp/zftpcdf.cdf cernlib-2006.dfsg.2/src/packlib/cspack/programs/zftp/zftpcdf.cdf
--- cernlib-2006.dfsg.2~/src/packlib/cspack/programs/zftp/zftpcdf.cdf	1996-03-08 10:44:20.000000000 -0500
+++ cernlib-2006.dfsg.2/src/packlib/cspack/programs/zftp/zftpcdf.cdf	2007-04-21 18:56:29.000000000 -0400
@@ -388,8 +388,8 @@
 CHOPT 'CHOPT' C D=' '
 >Guidance
 Transfer all files matching the specified remote file name
-to the local system. The file name given may contain
-*, to match one or more characters, or %, to match a single
+to the local system. The file name given may contain *,
+to match one or more characters, or %, to match a single
 character.
 .
 By default the transfer is performed
@@ -397,9 +397,9 @@
 .
 e.g.
 .
-*.PAM         --> GETP
-*.CETA, *.CET --> GETB, LRECL=3600
-*.CMZ,  *.RZ  --> GETRZ
+ *.PAM         --> GETP
+ *.CETA, *.CET --> GETB, LRECL=3600
+ *.CMZ,  *.RZ  --> GETRZ
 .
 Options are passed to the appropriate transfer routine.
 >Action MGET
@@ -413,17 +413,18 @@
 CHOPT 'CHOPT' C D=' '
 >Guidance
 Transfer all files matching the specified local file name
-to the remote system. The file name given may contain
-*, to match one or more characters, or %, to match a single
+to the remote system. The file name given may contain *,
+to match one or more characters, or %, to match a single
 character.
+.
 By default the transfer is performed
 using PUTA, unless the file name has a known extension.
 .
 e.g.
 .
-*.PAM         --> GETP
-*.CETA, *.CET --> GETB, LRECL=3600
-*.CMZ,  *.RZ  --> GETRZ
+ *.PAM         --> GETP
+ *.CETA, *.CET --> GETB, LRECL=3600
+ *.CMZ,  *.RZ  --> GETRZ
 .
 e.g.
 .
diff -urNad cernlib-2006.dfsg.2~/src/packlib/fatmen/programs/fmkuip/fmcdf.cdf cernlib-2006.dfsg.2/src/packlib/fatmen/programs/fmkuip/fmcdf.cdf
--- cernlib-2006.dfsg.2~/src/packlib/fatmen/programs/fmkuip/fmcdf.cdf	1997-01-07 06:20:31.000000000 -0500
+++ cernlib-2006.dfsg.2/src/packlib/fatmen/programs/fmkuip/fmcdf.cdf	2007-04-21 18:58:52.000000000 -0400
@@ -324,8 +324,8 @@
 >Command SEARCH
 >Guidance
 Use the SEARCH command to print the generic names of files which
-match the specified criteria. Character fields may include the
-* or % wild cards.
+match the specified criteria. Character fields may include the *
+or % wild cards.
 .
 e.g. SEARCH * VID=I* # search current working directory for entries
 # with VID's beginning with I.
@@ -432,7 +432,7 @@
 If no wild-cards are present in the pathname, the characters /*
 are automatically appended. To zoom down a tree starting with
 .
-*ALLD, use ZOOM *ALLD/*
+ *ALLD, use ZOOM *ALLD/*
 .
 >MENU \FMDATA
 >Guidance


--- NEW FILE cernlib-123-extern-memmove-only-if-not-macro.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 123-extern-memmove-only-if-not-macro.dpatch by  <pertusus at free.fr>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Declare memmove() only if it is not already defined as a macro.

@DPATCH@
diff -urNad cernlib-2006.dfsg.2~/src/packlib/kuip/kuip/kstring.h cernlib-2006.dfsg.2/src/packlib/kuip/kuip/kstring.h
--- cernlib-2006.dfsg.2~/src/packlib/kuip/kuip/kstring.h	2007-04-21 19:21:26.000000000 -0400
+++ cernlib-2006.dfsg.2/src/packlib/kuip/kuip/kstring.h	2007-04-21 19:22:20.000000000 -0400
@@ -21,8 +21,10 @@
  */
 
 #ifndef WIN32
+#ifndef memmove
 extern void* memmove( void* dst, const void* src, size_t n );
 #endif
+#endif
 
 /* GF. make conform to kkern.c#if !defined(__convexc__)*/
 #ifndef HAVE_STRCASECMP


***** Error reading new file: [Errno 2] No such file or directory: 'cernlib-211-support-amd64-and-itanium.dpatch'

--- NEW FILE cernlib-600-use-host.def-config-file.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 600-use-host.def-config-file.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/config/site.def cernlib-2005.05.09.dfsg/src/config/site.def
--- cernlib-2005.05.09.dfsg~/src/config/site.def	2002-04-26 10:46:04.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/config/site.def	2006-07-05 10:25:00.691451379 -0400
@@ -71,9 +71,9 @@
 
 #define HasFortran YES
 
-/*
+
 #include <host.def>
-*/
+
 
 /*
 #ifndef HasGcc2

cernlib-64test.patch:

--- NEW FILE cernlib-64test.patch ---
--- cernlib-2006/2006/src/packlib/Imakefile.64test	2007-04-22 18:31:11.000000000 +0200
+++ cernlib-2006/2006/src/packlib/Imakefile	2007-04-23 08:48:31.000000000 +0200
@@ -16,7 +16,7 @@
 InstallLibraryAlias(packlib,packlib-shift,$(CERN_LIBDIR))
 InstallSharedLibrary(packlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
-TestSubdirs($(LIBDIRS))
+TestSubdirs(cspack epio fatmen hepdb kapack minuit)
 
 #ifdef CERNLIB_VAXVMS
 
--- cernlib-2006/2006/src/kernlib/Imakefile.64test	2007-04-22 16:53:02.000000000 +0200
+++ cernlib-2006/2006/src/kernlib/Imakefile	2007-04-22 16:53:45.000000000 +0200
@@ -18,6 +18,6 @@
 
 test::	LibraryTargetName(kernlib)
 
-TestSubdirs($(SUBDIRS))
+TestSubdirs(kernbit kerngen umon)
 
 InstallIncludeSubdirs($(LIBDIRS))

cernlib-fedora_desktop.patch:

--- NEW FILE cernlib-fedora_desktop.patch ---
--- cernlib-2006/paw-2.14.04.dfsg.2/debian/add-ons/misc/paw++.desktop.fedora_desktop	2007-04-14 23:41:45.000000000 +0200
+++ cernlib-2006/paw-2.14.04.dfsg.2/debian/add-ons/misc/paw++.desktop	2007-04-14 23:44:39.000000000 +0200
@@ -7,5 +7,5 @@
 Comment[en_GB]=Analyse and graphically present experimental data
 Type=Application
 Exec=paw++
-Icon=paw48x48
-Categories=Application;Physics;Science;
+Icon=paw
+Categories=Physics;Science;Graphics;

cernlib-man_static.patch:

--- NEW FILE cernlib-man_static.patch ---
--- cernlib-2006/2006/src/man/man1/cernlib.1.man_static	1998-05-19 18:32:03.000000000 +0200
+++ cernlib-2006/2006/src/man/man1/cernlib.1	2007-04-14 00:59:29.000000000 +0200
@@ -1,18 +1,18 @@
-.TH cernlib 1 "$Date: 1998/05/19 16:32:03 $" "CERN Program Library"
+.TH cernlib-static 1 "$Date: 1998/05/19 16:32:03 $" "CERN Program Library"
 "CERNlib commands" 
 .ds )H Cern Program Library
-.ds ]W cernlib
+.ds ]W cernlib-static
 .SH NAME
-cernlib \- get libraries needed to link with CERN Program Library
+cernlib-static \- get libraries needed to link with CERN Program Library
 .SH SYNOPSIS
-.B cernlib
+.B cernlib-static
 .RI [options]
 .I library[/version]
 .I ...
 
 .SH DESCRIPTION
 
-.B cernlib
+.B cernlib-static
 writes to standard output a list of object libraries needed to link 
 a program with the given 
 .I library(s)
@@ -27,7 +27,7 @@
 
 .SS Options
 
-.B cernlib 
+.B cernlib-static 
 recognizes the following options:
 
 .TP 11
@@ -52,6 +52,10 @@
 obsolete option. Ignored.
 
 .TP 11
+.B -l
+Don't link against system lapack and blas.
+
+.TP 11
 .B -u
 do 
 .B not
@@ -73,7 +77,7 @@
 
 .SS USAGE
 
-.B cernlib 
+.B cernlib-static 
 expects to find the CERNlib directory tree in /cern; if your system does
 not have this, set the environment variable CERN to contain the name of the
 root directory for the CERNlib tree.
@@ -91,16 +95,16 @@
 .SS EXAMPLES
 
 As 
-.B cernlib
+.B cernlib-static
 writes the list of libraries to standard output, using it as a command will 
-show the list of libraries generated by cernlib. Also, it can be used like
+show the list of libraries generated by cernlib-static. Also, it can be used like
 other commands in the command line surrounded by back quotes(`). 
 At CERN you should use the hepf77 command to link on your system as this
 gives the compiler parameters which are compatible with Cernlib  
 (in particular for xlf on IBM/RS6000 and fort77 on HP/UX ) 
 you could type:
 .RS 5
-hepf77 your.o `cernlib`
+hepf77 your.o `cernlib-static`
 .RE
 to link your object file with routines from packlib and kernlib; you need 
 not specify packlib, as this is added automatically. Also all
@@ -108,7 +112,7 @@
 If your application uses graflib and the Motif interface, the command would
 be:
 .RS 5
-hepf77 your.o `cernlib graflib/Motif`
+hepf77 your.o `cernlib-static graflib/Motif`
 .RE
 Again packlib need not be specified.
 .PP
@@ -117,15 +121,15 @@
 .RS 5
  .profile for sh, ksh or similar
 .RS 5
-CERNLIB=`cernlib graflib`; export CERNLIB
+CERNLIB=`cernlib-static graflib`; export CERNLIB
 .RE
  .login for users of csh of similar
 .RS 5
-setenv CERNLIB "`cernlib graflib`"
+setenv CERNLIB "`cernlib-static graflib`"
 .RE
 .RE
 The CERNLIB variable can then be used in the link command instead of
-calling the cernlib command.
+calling the cernlib-static command.
 
 .SS BUGS
 
@@ -141,7 +145,7 @@
 
 .SS FILES
 
-The cernlib command is available in the /cern/pro/bin directory 
+The cernlib-static command is available in the /cern/pro/bin directory 
 in the CERNlib tree. 
 
 .SS CONTACT Address
@@ -153,5 +157,5 @@
 Your report must state which version of CERNlib you are using, or the output of
 the command:
 .RS 5
-what `which cernlib`
+what `which cernlib-static`
 .RE

cernlib-ppc64test.patch:

--- NEW FILE cernlib-ppc64test.patch ---
--- cernlib-2006/2006/src/packlib/Imakefile.ppc64test	2007-05-14 10:26:14.000000000 +0200
+++ cernlib-2006/2006/src/packlib/Imakefile	2007-05-14 12:08:52.000000000 +0200
@@ -16,7 +16,7 @@ InstallLibrary(packlib,$(CERN_LIBDIR))
 InstallLibraryAlias(packlib,packlib-shift,$(CERN_LIBDIR))
 InstallSharedLibrary(packlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
-TestSubdirs($(LIBDIRS))
+TestSubdirs(cspack epio fatmen hepdb kapack kuip minuit zbook zebra)
 
 #ifdef CERNLIB_VAXVMS
 

cernlib-script.patch:

--- NEW FILE cernlib-script.patch ---
diff -up cernlib-2006/2006/src/pawlib/paw/programs/paw.script cernlib-2006/2006/src/pawlib/paw/programs/paw
diff -up cernlib-2006/2006/src/graflib/dzdoc/dzedit/dzedit.script cernlib-2006/2006/src/graflib/dzdoc/dzedit/dzedit
diff -up cernlib-2006/2006/src/scripts/cernlib.script cernlib-2006/2006/src/scripts/cernlib
--- cernlib-2006/2006/src/scripts/cernlib.script	2006-12-07 14:26:55.000000000 +0100
+++ cernlib-2006/2006/src/scripts/cernlib	2007-07-25 21:00:54.000000000 +0200
@@ -16,12 +16,17 @@
   [ -z "$CERN_LEVEL" ] && gver="pro" || gver="$CERN_LEVEL"
  
   _P=0  ; _p=0 ;   _u=0 ; Gsys=""
+  #default is to use dynamic lapack
+  _l=1 ;
+  dynlapack=0;
+  dynxbae=0;
   while [ $# -gt 0 ]
   do case $1 in
        -G) Gsys=$2   ; shift ;;
        -P) _P=1              ;;
        -s) _s="is an obsolete option"     ;;
        -u) _u=1 ; _p=1       ;;
+       -l) _l=0              ;;
        -v) gver=$2   ; shift ;;
        --) shift ; break     ;;
         *)         break     ;;
@@ -46,14 +51,38 @@
       [ $# -eq 2 -a $1 != "graflib" ] && lver=$2
       dir=$CERN/$lver/lib
          ln=$1
-      if [ $1 = "kernlib" -o $1 = "packlib" ] ; then
+      if [ $1 = "kernlib" ]; then
          _p=1
       fi
+      if [ $1 = "packlib" -o $1 = "packlib-lesstif" ]; then
+         _p=1
+         ln="packlib.a $dir/libkernlib"
+         [ $1 = "packlib-lesstif" -o z"$Gsys" = 'zMotif' ] && ln="packlib-lesstif.a $dir/lib$ln"
+      fi
+
+      if [ $1 = "geant321" -o $1 = "pawlib" -o $1 = "packlib-lesstif" ]; then
+         [ -z "$Gsys" ] && Gsys="Motif"
+      fi
          [ $1 = "genlib"  ] && ln="mathlib.a $dir/libphtools"
          [ $1 = "bvsl"    ] && ln="mathlib"
          [ $1 = "mpalib"  ] && ln="mathlib"
-         [ $1 = "lapack"  ] && ln="lapack3.a $dir/libblas"
-	 [ $1 = "pawlib"  ] && ln="pawlib.a $dir/liblapack3.a $dir/libblas"
+         if [ $_l -eq 0 ] ; then
+           if [ $1 = "pawlib"  ]; then 
+              ln="pawlib-lesstif.a $dir/libpawlib.a $dir/liblapack3.a $dir/libblas"
+              dynxbae=1
+           fi
+           [ $1 = "lapack"  ] && ln="lapack3.a $dir/libblas"
+         else
+           if [ $1 = "pawlib"  ] ; then 
+              ln="pawlib-lesstif.a $dir/libpawlib"
+              dynxbae=1
+              dynlapack=1
+           fi
+           if [ $1 = "lapack"  ] ; then
+              ln=""
+              dynlapack=1
+           fi
+         fi
          [ $1 = "pythia"  ] && ln="jetset"
       if [ $1 = "GKS" -o $1 = "gks" ] ; then
          drv="X11" ; glib="$1" ; dir="$CERN/gks/$lver/lib"
@@ -69,10 +98,14 @@
          [ $drv = "Motif" ] && drv="X11"
          ln="$ln.a $dir/libgraf$drv"
       fi
-         CERNLIB="$CERNLIB $dir/lib$ln.a"
+      [ -n "$ln" ] && CERNLIB="$CERNLIB $dir/lib$ln.a"
   done
-  [ $_p -eq 0 ] && CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib.a"
-
+  if [ $_p -eq 0 ]; then 
+       if [ z"$Gsys" = "zMotif" ]; then
+           CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib-lesstif.a"
+       fi
+       CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib.a $CERN/$gver/lib/libkernlib.a"
+  fi
 #  get system name
   [ -d /NextAdmin ] && Msys="NeXT" || Msys=`uname -s`
   case $Msys in
@@ -81,7 +114,6 @@
                 ;;
           *)    ;;
   esac
-
  
   if [ -n "$Gsys" ] ; then
      case $Msys in
@@ -110,10 +142,12 @@
                SYSGGL="-lfgl -lgl_s -lm -lbsd" ;
                SYSGMOTIF="-lXm -lXt -lX11 -lPW"
 	       ;;
-      Linux)   [ -d /usr/X386/lib ] && SYSGX11="-L/usr/X386/lib -lX11"
-	       [ -d /usr/X11/lib ] && SYSGX11="-L/usr/X11/lib -lX11"
-	       [ -d /usr/X11R6/lib ] && SYSGX11="-L/usr/X11R6/lib -lX11"
-	       [ -d /usr/X11R6/lib ] && SYSGMOTIF="-L/usr/X11R6/lib -lXm -lXt -lXp -lXext -lX11"
+      Linux)   SYSGX11="-lX11"
+	       SYSGMOTIF="-lXm -lXt -lXp -lXext -lX11"
+	       [ -d /usr/X11R6/lib ] && SYSGX11="-L/usr/X11R6/lib $SYSGX11"
+	       [ -d /usr/X11R6/lib64 ] && SYSGX11="-L/usr/X11R6/lib64 $SYSGX11"
+	       [ -d /usr/X11R6/lib ] && SYSGMOTIF="-L/usr/X11R6/lib $SYSGMOTIF"
+	       [ -d /usr/X11R6/lib64 ] && SYSGMOTIF="-L/usr/X11R6/lib64 $SYSGMOTIF"
 	       [ `uname -m` = ppc ] && SYSGMOTIF="$SYSGMOTIF -lSM -lICE -lXpm"
 	       ;;
       Darwin)  [ -d /usr/X11R6/lib ] && SYSGX11="-L/usr/X11R6/lib -lX11"
@@ -150,7 +184,11 @@
                SYSGMOTIF="-L/usr/lib/X11 -lXm -lXt -lX11 -lm" ;;
      esac
  
+  if [ $_u -eq 0 ] ; then
+     [ $dynxbae = 1 ] && CERNLIB="$CERNLIB -lXbae -lXm -lXaw"
+  fi
             [ -z "$SYSGX11" ]   && SYSGX11="-lX11"
+
      case $Gsys in
        X11) CERNLIB="$CERNLIB $SYSGX11" ;;
      Motif) [ -z "$SYSGMOTIF" ] && SYSGMOTIF="-lXm -lXt $SYSGX11" ;
@@ -212,6 +250,9 @@
      if [ "$Msys" = "Linux" ] ; then
         CERNLIB="$CERNLIB -lnsl -lcrypt -ldl"
      fi
+     if [ $dynlapack = 1 ] ; then
+         CERNLIB="$CERNLIB -llapack -lblas"
+     fi
      if [ "$Msys" = "Darwin" ] ; then
 	 CERNLIB1="$CERNLIB -L/usr/local/lib/system -lcompat -ldl"
      fi
diff -up cernlib-2006/2006/src/patchy/yexpand.script cernlib-2006/2006/src/patchy/yexpand

cernlib-segf_eudtest.patch:

--- NEW FILE cernlib-segf_eudtest.patch ---
--- cernlib-2006/2006/src/mclibs/Imakefile.segf_eudtest	2007-04-21 13:08:47.000000000 +0200
+++ cernlib-2006/2006/src/mclibs/Imakefile	2007-04-21 13:09:58.000000000 +0200
@@ -10,7 +10,8 @@
 
 SUBDIRS = $(LIBDIRS)
 
-TestSubdirs($(LIBDIRS))
+/* eurodec test program segfaults */
+TestSubdirs(cojets pdf photos herwig isajet)
 
 InstallLibSubdirs($(LIBDIRS))
 InstallSharedLibSubdirs($(LIBDIRS))

cernlib-test.patch:

--- NEW FILE cernlib-test.patch ---
--- cernlib-2006/2006/src/geant321/examples/gexam2/Imakefile.test	1997-04-10 17:33:20.000000000 +0200
+++ cernlib-2006/2006/src/geant321/examples/gexam2/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -13,7 +13,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(exam2,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib)
+CernlibFortranProgramTarget(exam2,$(OBJS),NullParameter,NullParameter,graflib packlib geant321)
 
 TestTarget(exam2,gexam2.dat,gexam2.input)
 
--- cernlib-2006/2006/src/geant321/examples/gexam1/Imakefile.test	1997-04-10 17:33:14.000000000 +0200
+++ cernlib-2006/2006/src/geant321/examples/gexam1/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -3,7 +3,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(exam1,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib)
+CernlibFortranProgramTarget(exam1,$(OBJS),NullParameter,NullParameter,graflib packlib geant321)
 
 TestTarget(exam1,gexam1.dat,gexam1.input)
 
--- cernlib-2006/2006/src/geant321/examples/gexam3/Imakefile.test	1997-04-10 17:33:34.000000000 +0200
+++ cernlib-2006/2006/src/geant321/examples/gexam3/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -3,7 +3,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(exam3,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib)
+CernlibFortranProgramTarget(exam3,$(OBJS),NullParameter,NullParameter,graflib packlib geant321)
 
 TestTarget(exam3,gexam3.dat,gexam3.input)
 
--- cernlib-2006/2006/src/geant321/examples/gexam5/Imakefile.test	1997-04-10 17:33:38.000000000 +0200
+++ cernlib-2006/2006/src/geant321/examples/gexam5/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -3,7 +3,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(exam5,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib)
+CernlibFortranProgramTarget(exam5,$(OBJS),NullParameter,NullParameter,graflib packlib geant321)
 
 TestTarget(exam5,gexam5.dat,gexam5.input)
 
--- cernlib-2006/2006/src/geant321/examples/Imakefile.test	1996-03-06 18:31:38.000000000 +0100
+++ cernlib-2006/2006/src/geant321/examples/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -1,7 +1,10 @@
 #define IHaveSubdirs
 #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' /* for NamedMakeSubdirs */
 
+/* gexam4 needs fluka
 SUBDIRS= gexam1 gexam2 gexam3 gexam4 gexam5
+*/
+SUBDIRS= gexam1 gexam2 gexam3 gexam5
 
 TestSubdirs($(SUBDIRS))
 
--- cernlib-2006/2006/src/geant321/examples/gexam4/Imakefile.test	1997-04-10 17:33:37.000000000 +0200
+++ cernlib-2006/2006/src/geant321/examples/gexam4/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -14,7 +14,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(exam4,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib)
+CernlibFortranProgramTarget(exam4,$(OBJS),NullParameter,NullParameter,graflib packlib geant321)
 
 TestTarget(exam4,gexam4.dat,gexam4.input)
 
--- cernlib-2006/2006/src/packlib/hbook/tests/Imakefile.test	1996-02-20 16:46:41.000000000 +0100
+++ cernlib-2006/2006/src/packlib/hbook/tests/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -1,6 +1,6 @@
 #if 0
 /* this is not yet understood */
-CernlibFortranProgramTarget(hbtest,test_fp.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter)
+CernlibFortranProgramTarget(hbtest,test_fp.o,NullParameter,NullParameter,packlib)
 
 
 TestTarget(hbtest)
--- cernlib-2006/2006/src/packlib/hbook/examples/Imakefile.test	1996-02-20 16:46:21.000000000 +0100
+++ cernlib-2006/2006/src/packlib/hbook/examples/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -5,11 +5,11 @@
 
 DefinePackageLibrary(hbtlib)
 
-CernlibFortranProgramTarget(hbtest,hexam.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter)
+CernlibFortranProgramTarget(hbtest,hexam.o,libhbtlib.a,libhbtlib.a,packlib)
 
-CernlibFortranProgramTarget(hbdiff,htdiffb.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(hbdiff,htdiffb.o,libhbtlib.a,libhbtlib.a,mathlib)
 
-CernlibFortranProgramTarget(hmerge,hmerg.o hmergin.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(hmerge,hmerg.o hmergin.o,libhbtlib.a,libhbtlib.a,mathlib)
 
 TestTarget(hbtest,NullParameter,NullParameter)
 TestTarget(hbdiff,NullParameter,NullParameter)
--- cernlib-2006/2006/src/packlib/kuip/examples/Imakefile.test	1996-10-02 17:37:00.000000000 +0200
+++ cernlib-2006/2006/src/packlib/kuip/examples/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -5,7 +5,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(ktest,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib kernlib)
+CernlibFortranProgramTarget(ktest,$(OBJS),NullParameter,NullParameter,graflib packlib kernlib)
 
 TestTarget(ktest,NullParameter,ktest.inp)
 
--- cernlib-2006/2006/src/packlib/kapack/test/Imakefile.test	1996-12-02 16:29:51.000000000 +0100
+++ cernlib-2006/2006/src/packlib/kapack/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -1,7 +1,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(kapack,test1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(kapack,test1.o,NullParameter,NullParameter,kernlib packlib)
 
 /* the kapack test, or better kamake asks for a file name only in unix.
  *  on VMS, the file is opened on unit 11, resulting in for011.dat
--- cernlib-2006/2006/src/packlib/minuit/examples/Imakefile.test	1997-10-23 19:04:15.000000000 +0200
+++ cernlib-2006/2006/src/packlib/minuit/examples/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -9,6 +9,6 @@
 FDEBUGFLAGS=NoOpFortranDebugFlags
 #endif
 
-CernlibFortranProgramTarget(minuit,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter)
+CernlibFortranProgramTarget(minuit,$(OBJS),NullParameter,NullParameter,packlib)
 
 TestTarget(minuit,NullParameter,NullParameter)
--- cernlib-2006/2006/src/packlib/epio/tests/ptest2/Imakefile.test	1996-03-08 16:21:45.000000000 +0100
+++ cernlib-2006/2006/src/packlib/epio/tests/ptest2/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -10,9 +10,9 @@
 SpecialFortranObjectRule(main_32,main,NullParameter,-DCERNLIB_PH32BIT)
 SpecialFortranObjectRule(test2_32,test2,NullParameter,-DCERNLIB_PH32BIT)
 
-CernlibFortranProgramTarget(ptest2_16,$(OBJS_16) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest2_16,$(OBJS_16) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
-CernlibFortranProgramTarget(ptest2_32,$(OBJS_32) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest2_32,$(OBJS_32) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
 TestTarget(ptest2_32,NullParameter,NullParameter)
 
--- cernlib-2006/2006/src/packlib/epio/tests/ptest3/Imakefile.test	1996-03-08 16:21:46.000000000 +0100
+++ cernlib-2006/2006/src/packlib/epio/tests/ptest3/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -12,9 +12,9 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(ptest3_16,$(OBJS_16) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest3_16,$(OBJS_16) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
-CernlibFortranProgramTarget(ptest3_32,$(OBJS_32) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest3_32,$(OBJS_32) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
 TestTarget(ptest3_32,NullParameter,NullParameter)
 
--- cernlib-2006/2006/src/packlib/epio/tests/ptest1/Imakefile.test	1996-03-08 16:21:45.000000000 +0100
+++ cernlib-2006/2006/src/packlib/epio/tests/ptest1/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -11,9 +11,9 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(ptest1_16,$(OBJS_16) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest1_16,$(OBJS_16) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
-CernlibFortranProgramTarget(ptest1_32,$(OBJS_32) $(OBJS_CO),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ptest1_32,$(OBJS_32) $(OBJS_CO),NullParameter,NullParameter,kernlib packlib)
 
 TestTarget(ptest1_32,NullParameter,NullParameter)
 
--- cernlib-2006/2006/src/packlib/zbook/test/Imakefile.test	1996-03-12 09:13:30.000000000 +0100
+++ cernlib-2006/2006/src/packlib/zbook/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -5,6 +5,6 @@
 
 SubdirLibraryTarget(zbookt,NullParameter)
 
-CernlibFortranProgramTarget(zexam,zexam.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(zexam,zexam.o,libzbookt.a,libzbookt.a,packlib)
 
 TestTarget(zexam,NullParameter,NullParameter)
--- cernlib-2006/2006/src/packlib/ffread/test/Imakefile.test	1996-10-02 17:36:27.000000000 +0200
+++ cernlib-2006/2006/src/packlib/ffread/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -2,7 +2,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(ffread,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(ffread,$(OBJS),NullParameter,NullParameter,kernlib packlib)
 
 TestTarget(ffread,NullParameter,test.input)
 
--- cernlib-2006/2006/src/packlib/zebra/test/Imakefile.test	1997-08-29 15:33:57.000000000 +0200
+++ cernlib-2006/2006/src/packlib/zebra/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -41,27 +41,27 @@
 
 testrz: zebrz1 zebrz2 zebrz3
 
-CernlibFortranProgramTarget(zebmz1,zebmz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(zebmz1,zebmz1.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
 
-CernlibFortranProgramTarget(zebfz1,zebfz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz2,zebfz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz3,zebfz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz4,zebfz4.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz5,zebfz5.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz6,zebfz6.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz7,zebfz7.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz8,zebfz8.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfz9,zebfz9.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-
-CernlibFortranProgramTarget(zebfc1,zebfc1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfc2,zebfc2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebfc3,zebfc3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-
-CernlibFortranProgramTarget(zebjz1,zebjz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-
-CernlibFortranProgramTarget(zebrz1,zebrz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebrz2,zebrz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
-CernlibFortranProgramTarget(zebrz3,zebrz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(zebfz1,zebfz1.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz2,zebfz2.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz3,zebfz3.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz4,zebfz4.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz5,zebfz5.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz6,zebfz6.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz7,zebfz7.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz8,zebfz8.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfz9,zebfz9.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+
+CernlibFortranProgramTarget(zebfc1,zebfc1.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfc2,zebfc2.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebfc3,zebfc3.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+
+CernlibFortranProgramTarget(zebjz1,zebjz1.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+
+CernlibFortranProgramTarget(zebrz1,zebrz1.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebrz2,zebrz2.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
+CernlibFortranProgramTarget(zebrz3,zebrz3.o,libzebtlib.a,libzebtlib.a,kernlib packlib)
 
 TestTarget(zebmz1,zxtest.dat,NullParameter)
 
--- cernlib-2006/2006/src/phtools/wicoexam/Imakefile.test	1996-03-22 17:42:50.000000000 +0100
+++ cernlib-2006/2006/src/phtools/wicoexam/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -1,5 +1,5 @@
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(wicot,wicoex.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter)
+CernlibFortranProgramTarget(wicot,wicoex.o,NullParameter,NullParameter,packlib phtools)
 
 TestTarget(wicot,NullParameter,NullParameter)
--- cernlib-2006/2006/src/mathlib/bvsl/test/Imakefile.test	1996-03-21 18:19:55.000000000 +0100
+++ cernlib-2006/2006/src/mathlib/bvsl/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -6,7 +6,7 @@
 
 DefinePackageLibrary(bvsltst)
 
-CernlibFortranProgramTarget(bvslt,tsbvsl.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib kernlib)
+CernlibFortranProgramTarget(bvslt,tsbvsl.o,libbvsltst.a,libbvsltst.a,mathlib kernlib)
 
 TestTarget(bvslt,NullParameter,NullParameter)
 
--- cernlib-2006/2006/src/mathlib/gen/tests/Imakefile.test	2005-03-24 17:40:10.000000000 +0100
+++ cernlib-2006/2006/src/mathlib/gen/tests/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -63,7 +63,7 @@
 
 DefinePackageLibrary(gentest)
 
-CernlibFortranProgramTarget(gent,main.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(gent,main.o,libgentest.a,libgentest.a,packlib mathlib)
 
 
 TestTarget(gent,NullParameter,NullParameter)
--- cernlib-2006/2006/src/mclibs/eurodec/eudtest/Imakefile.test	1997-03-14 18:32:14.000000000 +0100
+++ cernlib-2006/2006/src/mclibs/eurodec/eudtest/Imakefile	2007-04-21 11:15:36.000000000 +0200
@@ -4,11 +4,10 @@
 
 FORTRANSAVEOPTION = FortranSaveFlags
 
-CernlibFortranProgramTarget(eudtest,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(eudtest,$(OBJS),NullParameter,NullParameter,packlib eurodec)
 
 TestTarget(eudtest,eurodec.dat,eutitle.dat)
 
 CopyFile(eutitle.data,eutitle.dat)
 
 LinkFileFromDir($(TOP)$(PACKAGETOP),eurodec.dat)
-
--- cernlib-2006/2006/src/mclibs/herwig/test/Imakefile.test	1997-01-06 18:06:42.000000000 +0100
+++ cernlib-2006/2006/src/mclibs/herwig/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -4,6 +4,6 @@
 DefinePackageLibrary(NullParameter)
 
 
-CernlibFortranProgramTarget(herwigt,test.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(herwigt,test.o,NullParameter,NullParameter,kernlib herwig)
 
 TestTarget(herwigt,NullParameter,NullParameter)
--- cernlib-2006/2006/src/mclibs/cojets/test/Imakefile.test	1996-03-27 10:32:16.000000000 +0100
+++ cernlib-2006/2006/src/mclibs/cojets/test/Imakefile	2007-04-21 09:30:47.000000000 +0200
@@ -3,7 +3,7 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(cojetst,test.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib kernlib)
+CernlibFortranProgramTarget(cojetst,test.o,NullParameter,NullParameter,mathlib kernlib cojets)
 
 CopyFile(test.input,test.in)
 
--- cernlib-2006/2006/src/mclibs/photos/test/Imakefile.test	1999-03-26 11:53:26.000000000 +0100
+++ cernlib-2006/2006/src/mclibs/photos/test/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -2,6 +2,6 @@
 
 DefinePackageLibrary(NullParameter)
 
-CernlibFortranProgramTarget(photost,phodem.o pseudo_jetset.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib)
+CernlibFortranProgramTarget(photost,phodem.o pseudo_jetset.o,NullParameter,NullParameter,kernlib photos)
 
 TestTarget(photost,NullParameter,NullParameter)
--- cernlib-2006/2006/src/mclibs/isajet/test/Imakefile.test	2007-04-21 09:29:29.000000000 +0200
+++ cernlib-2006/2006/src/mclibs/isajet/test/Imakefile	2007-04-21 09:30:54.000000000 +0200
@@ -6,9 +6,12 @@
 
 LinkFileFromDir($(TOP)$(PACKAGETOP),isajet.dat)
 
-CernlibFortranProgramTarget(isajett,isajett.o,$(PACKAGE_LIB),$(PACKAGE_LIB),pdflib804 mathlib kernlib)
+CernlibFortranProgramTarget(isajett,isajett.o,NullParameter,NullParameter,pdflib804 mathlib kernlib isajet)
 
 #if !defined(CERNLIB_GFORTRAN)
 /* breaks on 'STOP 99' if compiled with gfortran */
 TestTarget(isajett,isajet.dat,test.input)
 #endif
+#if defined(CERNLIB_GFORTRAN)
+test::
+#endif
--- cernlib-2006/2006/src/mclibs/pdf/tpdf/Imakefile.test	2000-04-19 15:52:13.000000000 +0200
+++ cernlib-2006/2006/src/mclibs/pdf/tpdf/Imakefile	2007-04-21 09:29:30.000000000 +0200
@@ -13,13 +13,13 @@
 DefinePackageLibrary(NullParameter)
 
 
-CernlibFortranProgramTarget(testpdf,testpdf.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(testpdf,testpdf.o,NullParameter,NullParameter,mathlib pdflib)
 
-CernlibFortranProgramTarget(testpdg,testpdg.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(testpdg,testpdg.o,NullParameter,NullParameter,mathlib pdflib)
 
-CernlibFortranProgramTarget(testgam,testgam.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(testgam,testgam.o,NullParameter,NullParameter,mathlib pdflib)
 
-CernlibFortranProgramTarget(test_npdf,test_npdf.o,$(PACKAGE_LIB),$(PACKAGE_LIB),mathlib)
+CernlibFortranProgramTarget(test_npdf,test_npdf.o,NullParameter,NullParameter,mathlib pdflib)
 
 TestTarget(testpdf,NullParameter,NullParameter)
 TestTarget(testpdg,NullParameter,NullParameter)


--- NEW FILE geant321-109-fix-broken-xsneut95.dat-link.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 109-fix-broken-xsneut95.dat-link.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Link to xsneut95.dat in the correct place.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/Imakefile cernlib-2005.05.09.dfsg/src/geant321/Imakefile
--- cernlib-2005.05.09.dfsg~/src/geant321/Imakefile	2005-11-23 15:38:52.663383751 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/Imakefile	2005-11-23 15:39:00.618680825 +0000
@@ -41,7 +41,7 @@
 install.lib:: $(CERN_LIBDIR)/xsneut95.dat
 
 $(CERN_LIBDIR)/xsneut95.dat:
-	cd $(@D);$(LN) ../share/lib/$(@F) $(@F)
+	cd $(@D) && $(LN) ../src/geant321/data/$(@F) $(@F)
 
 #endif
 #if defined(CERNLIB_VAXVMS)


--- NEW FILE mclibs-321-support-gfortran.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 321-support-gfortran.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Minor changes to support use of gfortran.  From Harald Vogt.

@DPATCH@
diff -urNad mclibs-2005.dfsg~/src/mclibs/herwig/code/hwhew2.F mclibs-2005.dfsg/src/mclibs/herwig/code/hwhew2.F
--- mclibs-2005.dfsg~/src/mclibs/herwig/code/hwhew2.F	1996-12-03 09:16:55.000000000 -0500
+++ mclibs-2005.dfsg/src/mclibs/herwig/code/hwhew2.F	2006-09-27 13:47:59.876963852 -0400
@@ -75,8 +75,7 @@
       H(J,I)=(ZDMP*ZP-ZDPM*ZQ)*ZT
       CH(J,I)=(ZDMP*ZPS-ZDPM*ZQS)*ZT
       ZD=H(J,I)*CH(J,I)
-      PT5=CMPLX(.5,0.)
-      D(J,I)=PT5*ZD
+      D(J,I)=CMPLX(.5,0.)*ZD
    11 CONTINUE
       DO 60 I=1,NPART-1
       IPP1=I+1
diff -urNad mclibs-2005.dfsg~/src/mclibs/isajet/test/Imakefile mclibs-2005.dfsg/src/mclibs/isajet/test/Imakefile
--- mclibs-2005.dfsg~/src/mclibs/isajet/test/Imakefile	2000-07-25 12:21:34.000000000 -0400
+++ mclibs-2005.dfsg/src/mclibs/isajet/test/Imakefile	2006-09-27 13:49:49.783806148 -0400
@@ -8,4 +8,7 @@
 
 CernlibFortranProgramTarget(isajett,isajett.o,$(PACKAGE_LIB),$(PACKAGE_LIB),pdflib804 mathlib kernlib)
 
+#if !defined(CERNLIB_GFORTRAN)
+/* breaks on 'STOP 99' if compiled with gfortran */
 TestTarget(isajett,isajet.dat,test.input)
+#endif

npatchy-curdir.patch:

--- NEW FILE npatchy-curdir.patch ---
--- cernlib-2006/2006/src/patchy/yexpand.script.curdir	2005-04-18 17:41:03.000000000 +0200
+++ cernlib-2006/2006/src/patchy/yexpand.script	2007-04-20 23:31:00.000000000 +0200
@@ -26,8 +26,8 @@
 # CERN_ROOT=":$CERN_ROOT" ; export CERN_ROOT 
   CERN_ROOT=":$CERN/$CERN_LEVEL" ; export CERN_ROOT 
 
-  tfile="$HOME/$tfile.yexp"
-  echo "#!/bin/sh"    >$tfile
+  tfile="./$tfile.yexp"
+  echo "#! /bin/sh"    >$tfile
   echo "  cat <<EOI" >>$tfile
   cat <$ifile        >>$tfile
   cc=$?

npatchy-np_flags.patch:

--- NEW FILE npatchy-np_flags.patch ---
--- cernlib-2006/2006/src/patchy/fcasplit.F.np_flags	1999-11-30 18:37:25.000000000 +0100
+++ cernlib-2006/2006/src/patchy/fcasplit.F	2007-04-20 23:39:34.000000000 +0200
@@ -343,8 +343,8 @@
       PARAMETER   (CHIDA = ';DECK  I' )
       PARAMETER   (CHOVER= 'UNKNOWN')
 
-      PARAMETER   (CHPOF = '-c -O -fno-automatic')
-      PARAMETER   (CHPOC = '-c -O2 -m486')
+      PARAMETER   (CHPOF = '-c -g -O2 -fno-automatic')
+      PARAMETER   (CHPOC = '-c -g -O2')
       PARAMETER   (CHPOA = ' ')
 
       PARAMETER   (CHEXFOR = '.f')
@@ -507,7 +507,7 @@
 #endif
 
       PARAMETER   (MLMKLN=100)
-      PARAMETER   (MXLENG=128, MXMKLN=64)
+      PARAMETER   (MXLENG=1024, MXMKLN=128)
       CHARACTER    CHHOLD*(MXLENG)
       CHARACTER    CHOPT(7)*(MXLENG)
       DIMENSION    NCHOPT(7)
@@ -532,7 +532,7 @@
       DIMENSION    LXCBUF(MXCBUF)
       CHARACTER*80 CHCBUF(MXCBUF)
 
-      CHARACTER    CHLINE*80, CHNAME*80, CHTEXT*511
+      CHARACTER    CHLINE*80, CHNAME*80, CHTEXT*3000
       CHARACTER    CHUSE*1
 
       PARAMETER   (NKEYS=11)
--- cernlib-2006/2006/src/patchy/Imakefile.np_flags	2006-09-06 16:36:54.000000000 +0200
+++ cernlib-2006/2006/src/patchy/Imakefile	2007-04-20 23:39:34.000000000 +0200
@@ -54,19 +54,9 @@
 
 $(P5LIB): $(LDIR)patchy.car $(LDIR)p5lib.cra p5lib.libmake fcasplit Makefile
 	ypatchy - p5lib p5lib TTY .go
-	fcasplit p5lib.f
-	RemoveFile(p5lib.f)
+	./fcasplit p5lib.f "-c $(FORTRANOPTIONS) $(FDEBUGFLAGS)" "-c $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)" "" "$(FC)" "$(CC)"
 	cat p5lib.libmake >> p5lib.mkfca
-#if defined(CERNLIB_GFORTRAN)	
-	sed -e 's;f77;gfortran;' -e 's;g77;gfortran;' -e 's;-Nx800;;' \
-	    -e 's;-Nc200;;' -e 's;+ppu;;' p5lib.mkfca > p5lib.mkfca.mod
-	sed -e 's;f77;gfortran;' -e 's;g77;gfortran;' -e 's;-Nx800;;' \
-	    -e 's;-Nc200;;' -e 's;+ppu;;' p5lib.shfca > p5lib.shfca.mod
-	mv p5lib.mkfca.mod p5lib.mkfca
-	mv p5lib.shfca.mod p5lib.shfca
-#endif	
 	$(MAKE) -f p5lib.mkfca $@
-	RemoveFile(p5lib.mkfca)
 	RemoveFile(p5lib.shfca)
 
 p5lib.libmake: Makefile
@@ -78,7 +68,7 @@
 	echo "	rm -f \$$(subst .o,.f,\$$(ROUTINES))" >> $@ 
 
 fcasplit: fcasplit.o
-	$(F77) $< -o $@
+	$(FCLINK) $< -o $@ $(FCLDOPTIONS)
 
 $(LDIR)%.cra: %.cra $(LDIR)yexpand
 	PLINAME=$(PLINAME);export PLINAME;$(LDIR)yexpand $< $@
@@ -87,22 +77,22 @@
 	@ ln -s $< $@
 
 %.f:  $(LDIR)%.cra $(LDIR)patchy.car
-	ypatchy - $@ $< TTY .go
-	
+	ypatchy - :$@ :$< TTY .go
+
 .f.o:
 	$(FC) -c $(FORTRANOPTIONS) $(FDEBUGFLAGS) $<
 
 $(LDIR)yexpand:	yexpand.script
-	@cp $< $@
-	@chmod +x $@
+	cp $< $@
+	chmod +x $@
 
 /*  Links to patchy 4.15 */
 YMODULES=ycompar yedit yfrceta yindex yindexb ylist ypatchy \
 	 ysearch yshift ytobcd ytobin ytoceta
 
-P4LINKS: $(foreach yp,$(YMODULES),$(CERN_BINDIR)$(yp))
+P4LINKS: $(foreach yp,$(YMODULES),$(CERN_BINDIR)/$(yp))
 
-$(foreach yp,$(YMODULES),$(CERN_BINDIR)$(yp)):
+$(foreach yp,$(YMODULES),$(CERN_BINDIR)/$(yp)):
 	cd $(dir $@);	\ @@\
 	if [ -f ../../patchy/4.15/bin/$(notdir $@) ] ; then \ @@\
 		ln -s ../../patchy/4.15/bin/$(notdir $@) $(notdir $@); \ @@\

patchy-use_OPT.patch:

--- NEW FILE patchy-use_OPT.patch ---
--- cernlib-2006/patchy/fcasplit.f.use_OPT	2006-04-12 19:30:57.000000000 +0200
+++ cernlib-2006/patchy/fcasplit.f	2007-04-20 23:30:53.000000000 +0200
@@ -23,7 +23,7 @@
       PARAMETER   (CHIDA = ';DECK  I' )
       PARAMETER   (CHOVER= 'UNKNOWN')
  
-      PARAMETER   (CHPOF = '-c -O2 -Nx800 -Nc200')
+      PARAMETER   (CHPOF = '-c -O2')
       PARAMETER   (CHPOC = '-c -O2 -posix')
       PARAMETER   (CHPOA = ' ')
  
@@ -37,7 +37,7 @@
       PARAMETER   (CHWHA = 'as  ')
  
       PARAMETER   (MLMKLN=100)
-      PARAMETER   (MXLENG=128, MXMKLN=64)
+      PARAMETER   (MXLENG=256, MXMKLN=128)
       CHARACTER    CHHOLD*(MXLENG)
       CHARACTER    CHOPT(7)*(MXLENG)
       DIMENSION    NCHOPT(7)
--- cernlib-2006/patchy/p4boot.sh.use_OPT	2006-04-12 19:30:57.000000000 +0200
+++ cernlib-2006/patchy/p4boot.sh	2007-04-20 23:30:53.000000000 +0200
@@ -5,6 +5,8 @@
  set  TARG =   /usr/local/bin      # target directory
  set  FOPT  = "-O2"                # Fortran compiler options
  set  FOPTC = "-c $FOPT -posix"
+ set  COPT  = "-O2"                # C compiler options
+ set  COPTC =  "-c $COPT -posix"
  
 # *******************************************************************
 # *                                                                 *
@@ -151,7 +153,7 @@
  mkdir p4sub
  cd p4sub                    # operate in the sub-directory p4sub
  
- fcasplit  ../p4comp.fca  "$FOPTC"
+ fcasplit  ../p4comp.fca  "$FOPTC" "$COPTC"
  
  csh  -v p4comp.shfca
  
@@ -177,17 +179,17 @@
  echo ' -----------   ---->  Make the new Patchy executable files'
  set  CLD  = "f77"
  
- $CLD   -o ypatchy  ypatch.o   libp4lib.a
- $CLD   -o ytobcd   ytobcd.o   libp4lib.a
- $CLD   -o ytobin   ytobin.o   libp4lib.a
- $CLD   -o ytoceta  ytocet.o   libp4lib.a
- $CLD   -o yfrceta  yfrcet.o   libp4lib.a
- $CLD   -o ycompar  ycompa.o   libp4lib.a
- $CLD   -o yedit    yedit.o    libp4lib.a
- $CLD   -o yindexb  yindex.o   libp4lib.a
- $CLD   -o ylistb   ylist.o    libp4lib.a
- $CLD   -o ysearch  ysearc.o   libp4lib.a
- $CLD   -o yshift   yshift.o   libp4lib.a
+ $CLD $FOPT  -o ypatchy  ypatch.o   libp4lib.a
+ $CLD $FOPT  -o ytobcd   ytobcd.o   libp4lib.a
+ $CLD $FOPT  -o ytobin   ytobin.o   libp4lib.a
+ $CLD $FOPT  -o ytoceta  ytocet.o   libp4lib.a
+ $CLD $FOPT  -o yfrceta  yfrcet.o   libp4lib.a
+ $CLD $FOPT  -o ycompar  ycompa.o   libp4lib.a
+ $CLD $FOPT  -o yedit    yedit.o    libp4lib.a
+ $CLD $FOPT  -o yindexb  yindex.o   libp4lib.a
+ $CLD $FOPT  -o ylistb   ylist.o    libp4lib.a
+ $CLD $FOPT  -o ysearch  ysearc.o   libp4lib.a
+ $CLD $FOPT  -o yshift   yshift.o   libp4lib.a
  
  chmod a+x  ypatchy
  chmod a+x  ytobcd


--- NEW FILE paw-120-fix-mlp-cdf-file.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 120-fix-mlp-cdf-file.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: add missing >Guidance keyword in CDF file before help text.

@DPATCH@
diff -urNad paw-2.14.04.dfsg~/src/pawlib/paw/cdf/mlpdef.cdf paw-2.14.04.dfsg/src/pawlib/paw/cdf/mlpdef.cdf
--- paw-2.14.04.dfsg~/src/pawlib/paw/cdf/mlpdef.cdf	2001-05-21 05:12:35.000000000 -0400
+++ paw-2.14.04.dfsg/src/pawlib/paw/cdf/mlpdef.cdf	2007-01-17 14:26:43.199756845 -0500
@@ -260,6 +260,7 @@
 >Action mlppawc%c
 
 >Menu ../TPAT
+>Guidance
 Operations on the test patterns
 .
 Whereas it is obviously necessary to define learning


--- NEW FILE paw-121-call-gfortran-in-cscrexec.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 121-call-gfortran-in-cscrexec.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Build temporary shared libs with gfortran when it is the default
## DP: Fortran compiler on Linux and OS X.

@DPATCH@
diff -urNad paw-2.14.04.dfsg~/src/pawlib/comis/code/cscrexec.F paw-2.14.04.dfsg/src/pawlib/comis/code/cscrexec.F
--- paw-2.14.04.dfsg~/src/pawlib/comis/code/cscrexec.F	2007-03-06 15:05:30.173089849 -0500
+++ paw-2.14.04.dfsg/src/pawlib/comis/code/cscrexec.F	2007-03-06 15:08:05.919014086 -0500
@@ -179,14 +179,25 @@
       ENDIF
 #endif
 #if defined(CERNLIB_LINUX) && !defined(CERNLIB_MACOSX)
-      CHLINE=                   'ld -shared -o '
+#if defined (CERNLIB_GFORTRAN)
+      CHLINE=                   'gfortran -shared -o '
      +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
+#else
+      CHLINE=                   'g77 -shared -o '
+     +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
+#endif
 #endif
 #if defined(CERNLIB_MACOSX)
+#if defined (CERNLIB_GFORTRAN)
+      CHLINE= 'gfortran -bundle -bundle_loader `/usr/bin/which pawX11`'
+     +                    // ' -bind_at_load -o '
+     +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
+#else
       CHLINE= 'g77 -bundle -bundle_loader `/usr/bin/which pawX11` '
      +                    // ' -bind_at_load -o '
      +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
 #endif
+#endif
 #if defined(CERNLIB_ALPHA_OSF)
         CHLINE=                   'ld -shared -o '
      +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o \\'


--- NEW FILE paw-211-support-amd64-and-itanium.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 211-support-amd64-and-itanium.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Large patch from Harald Vogt <hvogt at ifh.de> to make PAW and Paw++ work
## DP: (at least when statically linked) on 64-bit architectures.
## DP: Slightly modified in an attempt to keep ABI compatibility of the
## DP: dynamic libraries; not that it matters much as they don't work well
## DP: when dynamically linked on 64-bit anyway.  Last revision 2006-07-20.

@DPATCH@
diff -urNad paw-2.14.04~/src/pawlib/comis/code/Imakefile paw-2.14.04/src/pawlib/comis/code/Imakefile
--- paw-2.14.04~/src/pawlib/comis/code/Imakefile	2006-09-08 14:44:11.387353882 -0400
+++ paw-2.14.04/src/pawlib/comis/code/Imakefile	2006-09-08 14:44:11.806264586 -0400
@@ -50,6 +50,10 @@
 SRCS_F := $(SRCS_F) cscrexec.F
 #endif
 
+#if defined(CERNLIB_QMLXIA64)
+SRCS_F := $(SRCS_F) csrtgpl.F csitgpl.F
+#endif
+
 #if defined(CERNLIB_OLD)
 SRCS_F := $(SRCS_F) cspdir.F csrmbk.F
 #endif
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csaddr.F paw-2.14.04/src/pawlib/comis/code/csaddr.F
--- paw-2.14.04~/src/pawlib/comis/code/csaddr.F	1996-02-26 12:16:25.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/csaddr.F	2006-09-08 14:44:11.806264586 -0400
@@ -17,8 +17,15 @@
       INTEGER CSLTGP,CSITGP
       CHARACTER*32 NAME
 #include "comis/cstab.inc"
-#if defined(CERNLIB_SHL)
+#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64))
       INTEGER CS_GET_FUNC
+#endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+      INTEGER CSITGPL
+      INTEGER*8 CS_GET_FUNC
+#endif
+#if defined(CERNLIB_SHL)
       NAME=CHNAME
       NC=LENOCC(NAME)
       CALL CSCHID(NAME(:NC))
@@ -26,21 +33,39 @@
       I=CSLTGP(IPVS)
       IF(I.GT.0)THEN
         IF(IFCS.EQ.0)THEN
+#if defined (CERNLIB_QMLXIA64)
+          IADGPL=CS_GET_FUNC(NAME(1:NC)//'_')
+          IF(IADGPL.NE.0)THEN
+            IFCS=-2
+            CALL CSRTGPL(I)
+#else
           IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
           IF(IADGP.NE.0)THEN
             IFCS=-2
             CALL CSRTGP(I)
+#endif
+#endif
+#if defined(CERNLIB_SHL)
           ELSE
             I=0
           ENDIF
         ENDIF
       ELSE
+#if defined (CERNLIB_QMLXIA64)
+          IADGPL=CS_GET_FUNC(NAME(1:NC)//'_')
+        IF(IADGPL.NE.0)THEN
+          IFCS=-2
+          ITYPGP=-2
+          I=CSITGPL(IPVS)
+        ENDIF
+#else
         IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
         IF(IADGP.NE.0)THEN
           IFCS=-2
           ITYPGP=-2
           I=CSITGP(IPVS)
         ENDIF
+#endif
       END IF
       CSADDR=I
 #endif
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csinit.F paw-2.14.04/src/pawlib/comis/code/csinit.F
--- paw-2.14.04~/src/pawlib/comis/code/csinit.F	2005-04-18 11:41:04.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/code/csinit.F	2006-09-08 14:44:11.807264373 -0400
@@ -64,6 +64,9 @@
 #if defined(CERNLIB_SHL)
 #include "comis/cshlnm.inc"
 #endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+#endif
 #if defined(CERNLIB_PAW)
 #include "paw/pcmode.inc"
 #include "comis/cshfill.inc"
@@ -159,6 +162,9 @@
       ICHMINU=ICHAR('-')
       ICHPLUS=ICHAR('+')
       ICHCOMM=ICHAR(',')
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+      IPIADGV=0
+#endif
 #if defined(CERNLIB_PAW)
       CALL CSPAWI
       MODHFI=0
@@ -211,8 +217,8 @@
 #endif
 #if (defined(CERNLIB_LINUX))
       ITMPLEN=CSTMPD(CHPATH, 256)
-      CHF77 ='g77 -c'
-      CHCC  ='cc -c'
+      CHF77 ='g77 -g -c -fPIC'
+      CHCC  ='cc -g -c -fPIC'
 #endif
 #if (defined(CERNLIB_SGI))&&(defined(CERNLIB_SHL))
       ITMPLEN=CSTMPD(CHPATH, 256)
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csintx.F paw-2.14.04/src/pawlib/comis/code/csintx.F
--- paw-2.14.04~/src/pawlib/comis/code/csintx.F	1996-12-05 04:50:37.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/csintx.F	2006-09-08 14:44:11.807264373 -0400
@@ -38,6 +38,9 @@
 #if defined(CERNLIB_PAW)
 #include "comis/cskucs.inc"
 #endif
+#if defined(CERNLIB_QMLXIA64)
+#include "comis/cstab64.inc"
+#endif
 #if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_ALPHA_OSF))
       INTEGER CSTRCMP
 #endif
@@ -1105,6 +1108,23 @@
       ENDIF
 #endif
 #if (!defined(CERNLIB_VAX))&&(!defined(CERNLIB_APOLLO))
+#if defined(CERNLIB_QMLXIA64)
+      IF(IQ(IP+KSIFCS).EQ.-2)THEN
+*Dynamic linker may give long addresses
+        IADGPL = IADGPLV(IADGP)
+      ELSE
+        IADGPL = IADGP
+      ENDIF
+      IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+        ICSRES=CSCALI(IADGPL,NPAR,IDA(IOFSPL))
+      ELSEIF(ITP.EQ.2)THEN
+        RCSRES=CSCALR(IADGPL,NPAR,IDA(IOFSPL))
+      ELSEIF(ITP.EQ.5)THEN
+        DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+      ELSEIF(ITP.EQ.7)THEN
+        DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+      ENDIF
+#else
       IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
         ICSRES=CSCALI(IADGP,NPAR,IDA(IOFSPL))
       ELSEIF(ITP.EQ.2)THEN
@@ -1115,6 +1135,7 @@
         DCSRES=CSCALD(IADGP,NPAR,IDA(IOFSPL))
       ENDIF
 #endif
+#endif
       IPC=IPC+4
       GO TO 999
 *NUM I
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csitgpl.F paw-2.14.04/src/pawlib/comis/code/csitgpl.F
--- paw-2.14.04~/src/pawlib/comis/code/csitgpl.F	1969-12-31 19:00:00.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/csitgpl.F	2006-09-08 14:44:11.808264160 -0400
@@ -0,0 +1,32 @@
+* Comis
+*
+*
+#if (defined(CERNLIB_QMLXIA64))
+#include "comis/pilot.h"
+*CMZU:  1.16/16 04/10/93  12.14.52  by  Vladimir Berezhnoi
+*-- Author : V.Berezhnoi
+* special for 64 bit addresses for dynamic linking (H. Vogt)
+      INTEGER FUNCTION CSITGPL(IP)
+***------------------------------
+*   it is last routine from the tables-set.
+***-----------------------------
+#include "comis/cspar.inc"
+#include "comis/mdpool.inc"
+#include "comis/cspnts.inc"
+#include "comis/cstabps.inc"
+#include "comis/cstab64.inc"
+      I=MHLOC(KSIDP+NWIDEN)
+      IQ(I)=0
+      IQ(I+1)=NCIDEN
+      DO 1 K=1,NWIDEN
+        IQ(I+KSIDP-1+K)=IDEN(K)
+   1  CONTINUE
+      CALL CSRTGPL(I)
+      IF(IP.EQ.0)THEN
+        IPGP=I
+      ELSE
+        IQ(IP)=I
+      ENDIF
+      CSITGPL=I
+      END
+#endif
diff -urNad paw-2.14.04~/src/pawlib/comis/code/cskcal.F paw-2.14.04/src/pawlib/comis/code/cskcal.F
--- paw-2.14.04~/src/pawlib/comis/code/cskcal.F	1996-12-05 04:50:39.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/cskcal.F	2006-09-08 14:44:11.808264160 -0400
@@ -31,6 +31,9 @@
 #include "comis/cstab.inc"
 #include "comis/csfres.inc"
 #include "comis/cssysd.inc"
+#if defined(CERNLIB_QMLXIA64)
+#include "comis/cstab64.inc"
+#endif
       CHARACTER PRONAME*32
       INTEGER CSCALI
       DOUBLE PRECISION CSCALD
@@ -232,6 +235,24 @@
         I2=I2+KS
         I=I+1
  9203 CONTINUE
+#if defined(CERNLIB_QMLXIA64)
+*  Dynamic linker may give long addresses
+      IF (IFCS.EQ.-2)THEN
+        IADGPL = IADGPLV(IADGP)
+      ELSE
+        IADGPL = IADGP
+      ENDIF
+      IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+        ICSRES=CSCALI(IADGPL,NOPAR,IF77PL(1))
+      ELSEIF(ITP.EQ.2)THEN
+        RCSRES=CSCALR(IADGPL,NOPAR,IF77PL(1))
+      ELSEIF(ITP.EQ.5)THEN
+        DCSRES=CSCALD(IADGPL,NOPAR,IF77PL(1))
+      ELSEIF(ITP.EQ.7)THEN
+*  I think it will works correctly
+        DCSRES=CSCALD(IADGPL,NOPAR,IF77PL(1))
+      ENDIF
+#else
 *      IT=IABS(ITYPGP)
       IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
         ICSRES=CSCALI(IADGP,NOPAR,IF77PL(1))
@@ -245,6 +266,7 @@
       ENDIF
 *+SELF,IF=UNIX,IF=-SGI,IF=-IBMRT,IF=-DECS,IF=-HPUX,IF=-SUN,IF=-MSDOS.
 #endif
+#endif
 #if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_STDUNIX))
       I=1
       DO 9203 K=ITA-NPAR+1,ITA
diff -urNad paw-2.14.04~/src/pawlib/comis/code/cslink.F paw-2.14.04/src/pawlib/comis/code/cslink.F
--- paw-2.14.04~/src/pawlib/comis/code/cslink.F	1996-02-26 12:16:17.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/cslink.F	2006-09-08 14:44:11.808264160 -0400
@@ -21,10 +21,15 @@
 #include "comis/cstab.inc"
 #include "comis/cspnts.inc"
 #include "comis/cslun.inc"
-#if defined(CERNLIB_SHL)
+#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64))
       CHARACTER*(KLENID) FNNAME
       INTEGER CS_GET_FUNC
 #endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+      CHARACTER*(KLENID) FNNAME
+      INTEGER*8 CS_GET_FUNC
+#endif
          COMMON/CSGSCM/IGS,JGS,NGS,CSJUNK(3)
       IF(ISTLIB.EQ.0 .AND. ITBS.EQ.0)RETURN
    2  I=IPGP
@@ -60,12 +65,20 @@
 #if defined(CERNLIB_SHL)
           CALL CSGTIDP(I,FNNAME,NC)
           CALL CUTOL(FNNAME(1:NC))
+#if defined (CERNLIB_QMLXIA64)
+          IADGPL=CS_GET_FUNC(FNNAME(1:NC)//'_')
+          IF(IADGPL.NE.0)THEN
+            IFCS=-2
+            CALL CSRTGPL(I)
+          ENDIF
+#else
           IADGP=CS_GET_FUNC(FNNAME(1:NC)//'_')
           IF(IADGP.NE.0)THEN
             IFCS=-2
             CALL CSRTGP(I)
           ENDIF
 #endif
+#endif
           IP=0
         ENDIF
       ENDIF
diff -urNad paw-2.14.04~/src/pawlib/comis/code/cspawi.F paw-2.14.04/src/pawlib/comis/code/cspawi.F
--- paw-2.14.04~/src/pawlib/comis/code/cspawi.F	1996-02-26 12:16:22.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/cspawi.F	2006-09-08 14:44:11.808264160 -0400
@@ -23,10 +23,12 @@
       COMMON/PAWC/NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU,FENC(5),LMAIN,HCV(9989)
       DIMENSION IQ(2),Q(2),LQ(8000)
       EQUIVALENCE (LQ(1),LMAIN),(IQ(1),LQ(9)),(Q(1),IQ(1))
+      CHARACTER*8 MYCSPAWC
+      MYCSPAWC = 'CSPAWC  '
 ****      JKUVBS=LOCF(IQ(1))-1
       JKUVBS=LOCF(IQ(1))+KUVOFS-1
       KUVCUR=0
-      CALL CCOPYS(MJSCHA('CSPAWC  '),JID,8)
+      CALL CCOPYS(MJSCHA(MYCSPAWC),JID,8)
       NCIDEN=6
       NWIDEN=2
       I=CSLTGB(IPVS)
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csrtgpl.F paw-2.14.04/src/pawlib/comis/code/csrtgpl.F
--- paw-2.14.04~/src/pawlib/comis/code/csrtgpl.F	1969-12-31 19:00:00.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/csrtgpl.F	2006-09-08 14:44:11.808264160 -0400
@@ -0,0 +1,31 @@
+* Comis
+*
+*
+#if (defined(CERNLIB_QMLXIA64))
+#include "comis/pilot.h"
+*CMZ :  1.18/14 10/01/95  15.41.06  by  Vladimir Berezhnoi
+*-- Author : V.Berezhnoi
+* special for 64 bit addresses for dynamic linking (H. Vogt)
+
+      SUBROUTINE CSRTGPL(I)
+***--------------------------
+#include "comis/cspar.inc"
+#include "comis/mdpool.inc"
+#include "comis/cstabps.inc"
+#include "comis/cstab.inc"
+#include "comis/cstab64.inc"
+
+      IPIADGV = IPIADGV + 1
+      IF (IPIADGV .GT. MAXIAD64)  THEN
+        WRITE (*,'(2a,I4)') 'to much addresses for dynamik linking, ',
+     &                      'limit is ', MAXIAD64
+        WRITE (*,'(2a)') 'increase MAXIAD64 in cstab64.inc and ',
+     &                    'recompile COMIS'
+
+        STOP
+      END IF
+      IADGPLV(IPIADGV) = IADGPL
+      IADGP            = IPIADGV
+      CALL CCOPYA(IADGP,IQ(I+2),KSIDP-2)
+      END
+#endif
diff -urNad paw-2.14.04~/src/pawlib/comis/code/cstran.F paw-2.14.04/src/pawlib/comis/code/cstran.F
--- paw-2.14.04~/src/pawlib/comis/code/cstran.F	2001-02-07 04:27:01.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/code/cstran.F	2006-09-08 14:44:11.810263734 -0400
@@ -521,6 +521,7 @@
 *                 '#'             DRSJNT
 *            'OD'/'FI'/'ENDDO'/'ENDIF'/'END' DELIM DRSJNT
 ****
+      CHARACTER*8 MYCSPAWC
       INTEGER GSCMST(3046),GSSTRC(135),GSSTRP(255)
       INTEGER GSCMS1(361),GSCMS2(361),GSCMS3(361),GSCMS4(361),
      *GSCMS5(361),GSCMS6(361),GSCMS7(361),GSCMS8(361),GSCMS9(158)
@@ -719,6 +720,7 @@
       DATA IOST/0/
 **      DATA NHSSC/4H;   /, NHSEQ/4H=   /, NHSBR/4H)   /
       DATA NMPAWC/4HPAWC/
+      MYCSPAWC = 'CSPAWC  '
       CALL CCOPYA(IDEN,IDENPR,NWIDEN)
       NCIDPR=NCIDEN
       NWIDPR=NWIDEN
@@ -903,7 +905,7 @@
   211 CONTINUE
 #if defined(CERNLIB_PAW)
       KEYWD=22
-      CALL CCOPYS(MJSCHA('CSPAWC  '),JID,8)
+      CALL CCOPYS(MJSCHA(MYCSPAWC),JID,8)
       NCIDEN=6
       NWIDEN=2
       IGB=CSLTGB(IPVSB)
diff -urNad paw-2.14.04~/src/pawlib/comis/comis/cstab64.inc paw-2.14.04/src/pawlib/comis/comis/cstab64.inc
--- paw-2.14.04~/src/pawlib/comis/comis/cstab64.inc	1969-12-31 19:00:00.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/comis/cstab64.inc	2006-09-08 14:44:11.810263734 -0400
@@ -0,0 +1,10 @@
+*
+*
+* cstab64.inc
+*
+      PARAMETER (MAXIAD64=100) !maximum number of shared objects
+      INTEGER*8 IADGPL,IADGPLV(MAXIAD64)
+      INTEGER   IADGPL1, IADGPL2
+      COMMON /CSTB64/ IADGPL,IADGPLV
+      COMMON /CSTB64I/ IPIADGV
+      EQUIVALENCE (IADGPL, IADGPL1)
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/ccopys.c paw-2.14.04/src/pawlib/comis/deccc/ccopys.c
--- paw-2.14.04~/src/pawlib/comis/deccc/ccopys.c	1997-09-02 11:50:38.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/deccc/ccopys.c	2006-09-08 14:44:11.810263734 -0400
@@ -33,11 +33,42 @@
 #else
 void ccopys_(ja,jb,nn)
 #endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below -
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ */
+
+/* For Itanium, the situation is even worse.  Itanium architecture is such
+ * that the data section starts at 0x6000000000000000.  The stack is
+ * supposed to be between 0x80...0 and 0xa0...0 starting at the high end
+ * and growing downwards, although on a test machine (merulo.debian.org)
+ * it seemed instead to start at 0x6000100000000000 and grow downwards.
+ * The addresses we actually get are truncated to the lowest 32 bits,
+ * so we assume that those greater than 0x80000000 are in the stack.
+ *
+ * Constant strings are in the text section starting at 0x40...0; we hope
+ * this function doesn't receive any.
+ * -- Kevin McCarty
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+# include "cscal_lp64.h"
+     int *ja, *jb;
+     int *nn;
+{
+  int i,n; char *a,*b;
+  n=*nn; 
+  setaddr_lp64(*ja,*jb)
+
+#else
      char **ja, **jb;
      int *nn;
 {
   int i,n; char *a,*b;
-  n=*nn; a=*ja; b=*jb;
+  n=*nn; 
+  a=*ja; b=*jb;
+#endif
   if ( a >= b )
      for ( i=0; i<n; i++ )
           b[i]=a[i];
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cs_hlshl.c paw-2.14.04/src/pawlib/comis/deccc/cs_hlshl.c
--- paw-2.14.04~/src/pawlib/comis/deccc/cs_hlshl.c	1998-01-12 04:56:07.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/deccc/cs_hlshl.c	2006-09-08 14:48:50.060932620 -0400
@@ -25,9 +25,24 @@
 #if (defined(CERNLIB_SUN)||defined(CERNLIB_SGI)||defined(CERNLIB_IBMRT)||defined(CERNLIB_ALPHA_OSF)||defined(CERNLIB_LINUX))&&(defined(CERNLIB_SHL))
 /*CMZ :          22/05/95  18.40.45  by  Julian Bunn*/
 /*-- Author :*/
-#if defined(CERNLIB_SUN)||defined(CERNLIB_LINUX)
+#if defined(CERNLIB_SUN)||defined(CERNLIB_LINUX)&&(!defined(CERNLIB_QMLXIA64))
 #define SUN
 #endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses  
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ */
+
+#if defined(CERNLIB_LINUX)
+#include <stdio.h>
+#if defined(CERNLIB_QMLXIA64)
+#define ALPHA_OSF
+#endif
+#endif
+
 #if defined(CERNLIB_SGI)
 #define SGI
 #endif
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cscal_lp64.h paw-2.14.04/src/pawlib/comis/deccc/cscal_lp64.h
--- paw-2.14.04~/src/pawlib/comis/deccc/cscal_lp64.h	1969-12-31 19:00:00.000000000 -0500
+++ paw-2.14.04/src/pawlib/comis/deccc/cscal_lp64.h	2006-09-08 14:44:11.811263521 -0400
@@ -0,0 +1,74 @@
+#if defined(CERNLIB_QMLXIA64)
+/* Hideous hack macros that attempt to deal with 64-bit pointers using
+ * knowledge about only 32 bits of them. */
+
+/* Test whether a variable is automatic or static based on the lowest 32 bits
+ * of its address.
+ *
+ * Itanium architecture is such that the data section starts at
+ * 0x6000000000000000.  The stack is supposed to be between 0x80...0 and
+ * 0xa0...0 starting at the high end and growing downwards, although on a test
+ * machine (merulo.debian.org) it seemed instead to start at 0x6000100000000000
+ * and grow downwards.  The addresses we actually get are truncated to the
+ * lowest 32 bits, so we assume that those greater than 0x80000000 are in the
+ * stack.  Constant strings are in the text section starting at 0x40...0; we
+ * hope that functions using these macros don't receive any.
+ *
+ * On AMD64, the data section and constant strings are all within 32 bits
+ * of NULL, starting at 0x400000 and growing upward.  The stack starts
+ * at 0x80000000000 and grows downward.  However, tests I've run on an AMD64
+ * indicate that the low-order 32 bits of the address for variables on the
+ * stack may be indistinguishable from data segments; therefore we simply
+ * hope (pray) that all variables used are in the data segments.
+ *
+ * On Alpha, on the other hand, I couldn't find any docs for the Linux
+ * segmentation for virtual memory.  Judging by a test machine
+ * (escher.debian.org), the data section starts slightly above 0x120010000.
+ * On the other hand the stack grows downward from 0x120000000.  Here it
+ * seems safe to suppose that the variable is in the stack if the uint32
+ * truncated address received is less than 0x20000000.
+ *
+ * -- Kevin McCarty
+ */
+
+#if defined (__ia64__)
+# define autotest(_var) ((unsigned long)(_var) > 0x80000000UL)
+#elif defined (__alpha__)
+# define autotest(_var) ((unsigned long)(_var) < 0x20000000UL)
+#else /* amd64 */
+# define autotest(_var) 0 /* can't test for it */
+#endif
+
+
+#define restore_pointer(_var, _ptr, _cast) do {			      	    \
+   static int sdummy = 0; int adummy = 0;                                   \
+   unsigned long sbase = ((unsigned long)&sdummy) & 0xffffffff00000000UL;   \
+   unsigned long abase = ((unsigned long)&adummy) & 0xffffffff00000000UL;   \
+   _ptr = (_cast)((unsigned long)(_var) + (autotest(_var) ? abase : sbase));\
+ } while (0)
+
+
+#define setcall_lp64(type)                                                  \
+ long *fptr;                                                                \
+ int *n;                                                                    \
+ unsigned pin[16];                                                          \
+{                                                                           \
+   int jumpad_();                                                           \
+   type (*name)();                                                          \
+   unsigned long ptr = (unsigned long)jumpad_;                              \
+   unsigned long p[16];                                                     \
+   int  count;                                                              \
+   ptr += *fptr;                                                            \
+   name = (type (*)())ptr;                                                  \
+   for ( count=0; count<16; count++ )                                       \
+     restore_pointer(pin[count], p[count], unsigned long);                  \
+   /* end of macro */
+
+
+#define setaddr_lp64(__ja, __jb)                                            \
+  restore_pointer(__ja, a, char*);                                          \
+  restore_pointer(__jb, b, char*);                                          \
+   /* end of macro */
+
+#endif
+
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cscald.c paw-2.14.04/src/pawlib/comis/deccc/cscald.c
--- paw-2.14.04~/src/pawlib/comis/deccc/cscald.c	2004-10-27 05:01:54.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/deccc/cscald.c	2006-09-08 14:45:54.322410202 -0400
@@ -29,11 +29,10 @@
 #define cscald   
 #undef  cscald
 
-#ifdef CERNLIB_WINNT
+#if defined(CERNLIB_WINNT) || defined(CERNLIB_LINUX)
 # include <stdio.h>
 #endif
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
 double cscald_ (name,n,p)
 #endif
 #if defined(CERNLIB_QXNO_SC)
@@ -46,10 +45,30 @@
     int CSCALD (name,n,p)
 #  endif
 #endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below 
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscald_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+# include "cscal_lp64.h"
+double cscald_ (fptr,n,pin)
+ setcall_lp64(double)
+#else
  double (type_of_call *(*name)) ();
  int *n;
- int *p[15];
+ int *p[16];
 {
+#endif
    double d;
    switch (*n)
    {
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cscali.c paw-2.14.04/src/pawlib/comis/deccc/cscali.c
--- paw-2.14.04~/src/pawlib/comis/deccc/cscali.c	2004-10-22 08:42:40.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/deccc/cscali.c	2006-09-08 14:46:14.981004397 -0400
@@ -26,11 +26,10 @@
 #define cscali
 #undef  cscali
 
-#ifdef CERNLIB_WINNT
+#if defined(CERNLIB_WINNT) || defined(CERNLIB_LINUX)
 # include <stdio.h>
 #endif
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
 int cscali_ (name,n,p)
 #endif
 #if defined(CERNLIB_QXNO_SC)
@@ -39,10 +38,30 @@
 #if defined(CERNLIB_QXCAPT)
 int type_of_call CSCALI (name,n,p)
 #endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below 
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscali_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+# include "cscal_lp64.h"
+int cscali_ (fptr,n,pin)
+ setcall_lp64(int)
+#else
  int (type_of_call *(*name)) ();
  int *n;
- int *p[15];
+ int *p[16];
 {
+#endif
    int i;
    switch (*n)
    {
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cscalr.c paw-2.14.04/src/pawlib/comis/deccc/cscalr.c
--- paw-2.14.04~/src/pawlib/comis/deccc/cscalr.c	2004-10-22 08:03:16.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/deccc/cscalr.c	2006-09-08 14:47:10.662129691 -0400
@@ -30,19 +30,15 @@
 #define cscalr
 #undef  cscalr
 
-#ifdef CERNLIB_WINNT
+#if defined(CERNLIB_WINNT) || defined(CERNLIB_LINUX)
 # include <stdio.h>
 #endif
-
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
 float cscalr_ (name,n,p)
 #endif
-
 #if defined(CERNLIB_QXNO_SC)
 float cscalr (name,n,p)
 #endif
-
 #if defined(CERNLIB_QXCAPT)
 # if defined(CERNLIB_MSSTDCALL)
    float type_of_call CSCALR(name,n,p)
@@ -51,10 +47,42 @@
 # endif
 #endif
 
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below 
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscalr_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+
+/* Additional note: g77 generates code such that it expects REAL functions
+ * to return "double".  Hence C functions to be used in FORTRAN as REAL
+ * must return "double", and declarations of REAL FORTRAN functions in C files
+ * must also return "double".  On most architectures one can get away with
+ * using "float" instead, but not on amd64 ... see
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15397
+ *
+ * -- Kevin McCarty */
+# if !(defined(CERNLIB_GFORTRAN)||defined(CERNLIB_INTELIFC))  /* i.e. g77 */
+#  define float double
+# endif
+
+# include "cscal_lp64.h"
+float cscalr_ (fptr,n,pin)
+ setcall_lp64(float)
+#else
  float (type_of_call *(*name)) ();
  int *n;
- int *p[15];
+ int *p[16];
 {
+#endif
    float r;
    switch (*n)
    {
diff -urNad paw-2.14.04~/src/pawlib/comis/deccc/cstrcmp.c paw-2.14.04/src/pawlib/comis/deccc/cstrcmp.c
--- paw-2.14.04~/src/pawlib/comis/deccc/cstrcmp.c	1997-09-02 11:50:44.000000000 -0400
+++ paw-2.14.04/src/pawlib/comis/deccc/cstrcmp.c	2006-09-08 14:44:11.812263308 -0400
@@ -36,6 +36,43 @@
 #else
 int cstrcmp_(ja,na,jb,nb)
 #endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below -
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ */
+ 
+/* For Itanium, the situation is even worse.  Itanium architecture is such
+ * that the data section starts at 0x6000000000000000.  The stack is
+ * supposed to be between 0x80...0 and 0xa0...0 starting at the high end
+ * and growing downwards, although on a test machine (merulo.debian.org)
+ * it seemed instead to start at 0x6000100000000000 and grow downwards.
+ * The addresses we actually get are truncated to the lowest 32 bits,
+ * so we assume that those greater than 0x80000000 are in the stack.
+ *
+ * Constant strings are in the text section starting at 0x40...0; we hope
+ * this function doesn't receive any.
+ * -- Kevin McCarty
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+# include "cscal_lp64.h"
+     int *ja, *jb;
+     int *na, *nb;
+{
+
+  static int i,la,lb,k; static char *a,*b;
+  if ( *na >= *nb )
+     {
+       setaddr_lp64(*ja,*jb)
+       la=*na; lb=*nb; k=1;
+     }
+  else
+     {
+       setaddr_lp64(*jb,*ja)
+       la=*nb; lb=*na; k=-1;
+     }
+#else
      char **ja, **jb;
      int *na, *nb;
 {
@@ -48,6 +85,7 @@
     {
       a=*jb; b=*ja; la=*nb; lb=*na; k=-1;
      }
+#endif
   for ( i=0; i<lb; i++ )
     { if(a[i] != b[i])
       { return ( (a[i] > b[i]) ? k : -k ); }
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/att_color.c paw-2.14.04/src/pawlib/paw/cmotif/att_color.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/att_color.c	1996-03-01 06:38:53.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/att_color.c	2006-09-08 14:44:11.812263308 -0400
@@ -114,7 +114,7 @@
 
    XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentObject,NULL);
    XtVaGetValues(CurrentObject,XmNuserData,&data,NULL);
-   switch ((int ) client_data) {
+   switch ((long) client_data) {
       case 1: /* Surface */
          sprintf(Svalue,"%d",data->SurfaceColor);
          break;
@@ -164,7 +164,7 @@
       Ncol=atoi((char *)XmTextGetString(NcolText));
    } else Ncol=8;
    ColorNum=atoi((char *)XmTextGetString(AttColorText));
-   switch((int) client_data) {
+   switch((long) client_data) {
       case 1: /* UpArrow */
          ColorNum++;
          break;
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/att_define_color.c paw-2.14.04/src/pawlib/paw/cmotif/att_define_color.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/att_define_color.c	1999-03-01 04:07:01.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/att_define_color.c	2006-09-08 14:44:11.812263308 -0400
@@ -338,7 +338,7 @@
 static void MoveScale_cb(Widget w,caddr_t client_data,
                          XmAnyCallbackStruct *call_data)
 {
-   switch ((int ) client_data) {
+   switch ((long) client_data) {
       case 1 : /* RED */
          EditColor.red=((XmScaleCallbackStruct *) call_data)->value;
          break;
@@ -369,7 +369,7 @@
       default :
          fprintf(stderr,"Error in function MoveScale_cb");
    } /*end of switch */
-   apply_color((int) client_data);
+   apply_color((long) client_data);
 }
 
 /*****************************************************************************
@@ -452,7 +452,7 @@
    char *ComStr;
 
    ColorNum=atoi((char *)XmTextGetString(ColorIndex));
-   switch((int) client_data) {
+   switch((long) client_data) {
       case 1: /* UpArrow */
          ColorNum++;
          break;
@@ -494,7 +494,7 @@
    XmAnyCallbackStruct cb;
 
    Ncol=atoi((char *)XmTextGetString(NcolText));
-   switch((int) client_data) {
+   switch((long) client_data) {
       case 1: /* UpArrow*/
          Ncol++;
          break;
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/att_general.c paw-2.14.04/src/pawlib/paw/cmotif/att_general.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/att_general.c	1996-03-01 06:38:53.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/att_general.c	2006-09-08 14:44:11.813263095 -0400
@@ -454,7 +454,7 @@
 {
    char ComStr[15];
 
-   sprintf(ComStr,"IGSET MTYP %d",(int) client_data);
+   sprintf(ComStr,"IGSET MTYP %ld",(long) client_data);
    execute_kuip_cmd(ComStr);
    if (appres.auto_refresh) {
       plot_current_histo();
@@ -471,8 +471,8 @@
 {
    char ComStr[15];
 
-   sprintf(ComStr,"IGSET LTYP %d",(int) client_data);
-   sprintf(ComStr,"SET DMOD %d",(int) client_data);
+   sprintf(ComStr,"IGSET LTYP %ld",(long) client_data);
+   sprintf(ComStr,"SET DMOD %ld",(long) client_data);
 
    execute_kuip_cmd(ComStr);
    if (appres.auto_refresh) {
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/att_geometry.c paw-2.14.04/src/pawlib/paw/cmotif/att_geometry.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/att_geometry.c	1999-02-01 12:56:11.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/att_geometry.c	2006-09-08 14:44:11.815262668 -0400
@@ -2582,7 +2582,7 @@
    char *ComStr;
 
    XtVaGetValues(CButton,XmNuserData,&data,NULL);
-   switch ((int) client_data ) {
+   switch ((long) client_data ) {
       case 1 : /**** value change in text */
          Fvalue= (float)atof((char *)XmTextGetString(Text));
 
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/att_main.c paw-2.14.04/src/pawlib/paw/cmotif/att_main.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/att_main.c	1996-03-01 06:38:54.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/att_main.c	2006-09-08 14:44:11.816262455 -0400
@@ -139,7 +139,7 @@
 {
    int i;
    XmAnyCallbackStruct cb;
-   int pos;
+   long pos;
    char tempstr[6];
    int tempint;
 
@@ -147,7 +147,7 @@
 
    switch (*label) {
       case 'B' :
-         pos=(int) strchr(value,'.')-(int) value;
+         pos=strchr(value,'.')-value;
          strncpy(tempstr,value,pos);
          tempint=atoi(tempstr);
          if (tempint>=1000) {
@@ -157,7 +157,7 @@
             StateObject[i].ContourColor=tempint;
             StateObject[i].SurfaceColor=0;
          }
-         value=(char *)((int) value+pos+1);
+         value=(char *)(value+pos+1);
          strncpy(tempstr,value,2);
          StateObject[i].StatColor=tempstr[1]-'0';
          StateObject[i].ZoneColor=tempstr[0]-'0';
@@ -324,12 +324,12 @@
 static char *Clean(char *string)
 {
    char *Apos;
-   int pos;
+   long pos;
    char end[MAX_TITLE_SIZE];
 
    Apos=strrchr(string,39); /* #27 == ' */
    if (Apos) {
-      pos=((int)Apos  - (int)string  );
+      pos=Apos  - string;
       strcpy(end,++Apos);
       string[pos]='\0';
       strcat(Clean(string),"@'");
@@ -692,7 +692,7 @@
    XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentToggle,NULL);
    XtVaGetValues(CurrentToggle,XmNuserData,&CurrentState,NULL);
    LineWidth=CurrentState->LineWidth;
-   switch((int) client_data) {
+   switch((long) client_data) {
       case 1: /* UpArrow */
          LineWidth++;
          break;
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/attatch.c paw-2.14.04/src/pawlib/paw/cmotif/attatch.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/attatch.c	1996-03-01 06:38:54.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/attatch.c	2006-09-08 14:44:11.816262455 -0400
@@ -88,7 +88,7 @@
 
    XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentObject,NULL);
    XtVaGetValues(CurrentObject,XmNuserData,&data,NULL);
-   switch ((int) client_data ) {
+   switch ((long) client_data ) {
       case 1 : /**** value change in text */
          Svalue=(char *)XmTextGetString(IndexText);
 
@@ -124,7 +124,7 @@
        /* value change in scale */
          XmScaleGetValue(w,&Ivalue);
          Svalue=(char *)XmTextGetString(IndexText);
-         Svalue[((int) client_data )-2]='0' + Ivalue;
+         Svalue[((long) client_data )-2]='0' + Ivalue;
          XmTextSetString(IndexText,Svalue);
          if (data->IndexHatch!=atoi(Svalue)) {
             data->IndexHatch=atoi(Svalue);
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/axis.c paw-2.14.04/src/pawlib/paw/cmotif/axis.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/axis.c	1996-03-01 06:38:54.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/axis.c	2006-09-08 14:44:11.817262242 -0400
@@ -1336,7 +1336,7 @@
 {
    XmAnyCallbackStruct cbs1;
 
-   switch ((int)type) {
+   switch ((long)type) {
       case 1:
        axis.xo = 1;
        break;
@@ -1432,7 +1432,7 @@
    unselect_list();
    comstr = XtCalloc(MAX_CMD_LENGTH, 1);
 
-   switch ((int)type) {
+   switch ((long)type) {
       case 0:
 
        XmToggleButtonGadgetSetState(labeltoggleButtonGadget0,True,False);
@@ -1680,7 +1680,7 @@
    cbs1.reason = 0;
    cbs1.event = (XEvent *) NULL;
 
-   switch ((int) num) {
+   switch ((long) num) {
       case 1:
        if (XmToggleButtonGadgetGetState(labeltoggleButtonGadget1))
           XtCallCallbacks(labeltoggleButtonGadget1,XmNvalueChangedCallback,
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/histo.c paw-2.14.04/src/pawlib/paw/cmotif/histo.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/histo.c	1996-03-01 06:38:56.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/histo.c	2006-09-08 14:44:11.818262029 -0400
@@ -529,7 +529,7 @@
 static void show_option(Widget w, int *type, XmToggleButtonCallbackStruct *cbs)
 {
    if (cbs->set) {
-      switch( (int)type ) {
+      switch( (long)type ) {
          case 1:
             if ( !widget_stat ) {
                widget_stat = create_statFormDialog();
@@ -651,7 +651,7 @@
             return;
       }
    } else {
-      switch( (int)type ) {
+      switch( (long)type ) {
          case 1:
           if (widget_stat) {
              XtUnmanageChild(widget_stat);
@@ -758,7 +758,7 @@
    int            x,y;
 
 
-   switch( (int)type ) {
+   switch( (long)type ) {
       case 1:
          sprintf (comstr,"Set STAT %d%d%d%d%d%d%d"
                   ,XmToggleButtonGadgetGetState(AllchanToggleButtonGadget)
@@ -996,7 +996,7 @@
 static void coordinate_set(Widget w, int *type, XmAnyCallbackStruct *cbs)
 {
 
-   switch( (int)type ) {
+   switch( (long)type ) {
       case 1:
          sprintf (histogram.coordinate,"   ");
          break;
@@ -1034,7 +1034,7 @@
    int      ilen1, ilen2;
    XmString xmstr;
 
-   switch( (int)type ) {
+   switch( (long)type ) {
       case 1:
          histogram.x1 = cbs->value;
          if( x_range_lock != 0 ) {
@@ -1131,7 +1131,7 @@
       if( histogram.y1 <= 0 ) histogram.y1 = 1;
       if( histogram.y2 <= 0 ) histogram.y2 = 1;
 
-   if ( (int)type < 3 ) {
+   if ( (long)type < 3 ) {
       XmScaleSetValue(X2Scale,histogram.x2);
       XmScaleSetValue(X1Scale,histogram.x1);
       if( x_range_lock == 0 || upd_nbin) {
diff -urNad paw-2.14.04~/src/pawlib/paw/cmotif/init.c paw-2.14.04/src/pawlib/paw/cmotif/init.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/init.c	1996-03-12 11:58:51.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/init.c	2006-09-08 14:44:11.818262029 -0400
@@ -286,7 +286,7 @@
 static void destroy_browser(Widget w, int *which, XmAnyCallbackStruct *cbs)
 {
    MenuCbStruct    *menu_item;
-   int              i = (int) which;
+   long             i = (long) which;
 
    browser[i].widget = NULL;
    if (browser[i].open_dialog) {
@@ -308,7 +308,7 @@
  ***********************************************************************/
 static void destroy_graphics(Widget w, int *which, XmAnyCallbackStruct *cbs)
 {
-   int    i = (int) which;
+   long   i = (long) which;
 
    graphics[i].widget = NULL;
 }
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/c_hcntpar.h paw-2.14.04/src/pawlib/paw/ntuple/c_hcntpar.h
--- paw-2.14.04~/src/pawlib/paw/ntuple/c_hcntpar.h	1996-04-23 14:37:45.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/c_hcntpar.h	2006-09-08 14:44:11.818262029 -0400
@@ -47,7 +47,7 @@
 #define ZID	12
 #define ZITMP	10
 #define ZNTMP	6
-#define ZNTMP1	3
+#define ZNTMP1	4
 #define ZLINK	6
 
 #endif	/*	CERN_C_HCNTPAR	*/
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_execute.c paw-2.14.04/src/pawlib/paw/ntuple/qp_execute.c
--- paw-2.14.04~/src/pawlib/paw/ntuple/qp_execute.c	2001-09-18 09:41:35.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_execute.c	2006-09-08 14:44:11.819261816 -0400
@@ -184,12 +184,19 @@
 					/* all definitions for the stack */
 #undef INIT_STACK_TO_NULL		/* are kept together in this file */
 
+#if defined(CERNLIB_QMLXIA64)
+# undef HBALLOC
+# undef HGNTBF
+# define HBALLOC HBALLOC64
+# define HGNTBF HGNTBF64
+#endif
+
 /* extern functions */
 extern void qp_exec_evt( QueryExe *, long, long, QPCmd *, int *);
 
 typedef		char	tName[MAX_NAME_LEN+1];
 tName		*namelist;
-int		*offsetlist;
+long		*offsetlist;
 int		*indexlist;
 
 
@@ -245,7 +252,23 @@
 	char		ntname[MAX_NAME_LEN+6];
 	int		i, ierr, indx, itype, isize, ielem;
 	Int32 *		addr;
-	int		ibase[1], ioff, nuse;
+
+	/* LP64 compatibility:
+	   - use static for ibase (at least) because its address is stored
+	     as Int32 in structure CWNBlock
+	     static takes ibase from the stack and puts it the code area.
+	   - use type long for ioff and offsetlist[i]
+	     (for 32 bit architectures type long is 4 Bytes as it is used
+	      also in packlib/hbook/chbook/halloc.c in hballo1 !)
+	   The x86-64 ABI has the code area in the 32 bit address space
+	   but addresses to the stack and to dynamically allocated areas
+	   may and will be above the 32 bit address space (below 0x80000000000).
+	   See also: http://www.x86-64.org/documentation/abi-0.96.pdf
+	   (H. Vogt, Oct. 2005) */
+
+	static int	ibase[1];
+	long		ioff;
+	int		nuse;
 	int		id = qe->id;
 	char *		path = qe->path;
 	char *		title;
@@ -286,7 +309,11 @@
 	CWNBlock = (RefCWN *) calloc( CWNCount + 1, sizeof( RefCWN ) );
 	qp_assert( MAX_NAME_LEN == 32 ); /* see hbook.h (HGNTBF) */
 	namelist = (tName *) calloc( CWNCount + 1, sizeof(tName) );
-	offsetlist = (int *) calloc( CWNCount + 1, sizeof(int) );
+
+	/* offsetlist should be of type long (see above) (H. Vogt, Oct. 2005) */
+
+	offsetlist = (long *) calloc( CWNCount + 1, sizeof(long) );
+
 	indexlist = (int *) calloc( CWNCount + 1, sizeof(int) );
 	qp_assert(
 		CWNBlock != 0 &&
@@ -381,6 +408,7 @@
 						offsetlist[nt_load_cnt]=
 						CWNBlock[index].p -
 						PAWC.iq_eqv;
+
 						strncpy(
 						namelist[nt_load_cnt],
 						vi->name,
@@ -871,8 +899,21 @@
 			if ( cmd->u.scan.pawpp ) {
 				char	buf[33];
 
+				/* for LP64 ABI matlab and matrow are 64 bit pointer, type is void*  
+				   but PCADDR.jmlab and PCADDR.jmrow are of type int
+				   see: c_pcaddr.h and qp_command.h
+				   it is related to CWNBlock -> see above (H. Vogt)*/
+
+#if defined(CERNLIB_QMLXIA64)
+				unsigned long long int	 myjmlab, myjmrow;
+				myjmlab = PCADDR.jmlab;
+				myjmrow = PCADDR.jmrow;
+				c->matlab = (TableCallBack) myjmlab;
+				c->matrow = (TableCallBack) myjmrow;
+#else
 				c->matlab = (TableCallBack) PCADDR.jmlab;
 				c->matrow = (TableCallBack) PCADDR.jmrow;
+#endif
 
 				qp_assert( qe->nexpr <= MAX_OUTSTR );
 
@@ -1791,6 +1832,31 @@
 	PAWIDN.idnevt = ievt;
         PAWCHN.ichevt = ievt_chain;
 
+#if defined(CERNLIB_QMLXIA64)
+/* avoid addresses from calloc which are above 32 bits here */
+	static Int32 helpp[8];
+	int i;
+	if ( npar < 9 ) {
+		for ( i=0; i<npar; i++ ) helpp[i] = stack[frame[framep-i]];
+	}
+	switch ( npar ) {
+	case 8: p8 = &helpp[7];
+	case 7: p7 = &helpp[6];
+	case 6: p6 = &helpp[5];
+	case 5: p5 = &helpp[4];
+	case 4: p4 = &helpp[3];
+	case 3: p3 = &helpp[2];
+	case 2: p2 = &helpp[1];
+	case 1: p1 = &helpp[0];
+	case 0: 
+		break;
+	default:
+		sf_report( "exec_comis: To many arguments (%d)\n", npar );
+		*errp = R_INTERNAL_ERROR;
+		return FALSE;
+		break;
+	}
+#else
 	switch ( npar ) {
 	case 8: p8 = &stack[frame[framep-7]];
 	case 7: p7 = &stack[frame[framep-6]];
@@ -1808,6 +1874,7 @@
 		return FALSE;
 		break;
 	}
+#endif
 
 	switch ( fc ) {
 
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_hbook_if.c paw-2.14.04/src/pawlib/paw/ntuple/qp_hbook_if.c
--- paw-2.14.04~/src/pawlib/paw/ntuple/qp_hbook_if.c	1999-07-05 11:43:35.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_hbook_if.c	2006-09-08 14:44:11.820261603 -0400
@@ -149,7 +149,15 @@
 	int	idn, idtmp;
 	int	icycle;
 	int	ierr;
-	int     izero = 0;
+
+	/* LP64 compatibility:
+	   use static for izero because its address is fetched by hbname_
+	   using locb and locb expects 32 bit addresses only.
+	   static takes izero from the stack and puts it the code area
+	   and the LP64 ABI has the code area in the 32 bit address space
+	   but the stack starts downward from 0x80000000000 (H. Vogt) */
+
+	static int     izero = 0;
 
 	/* split string into  path, id and cycle */
 


--- NEW FILE paw-706-use-external-xbae-and-xaw.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 706-use-external-xbae-and-xaw.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Do not compile embedded old Xbae and Xaw code.

@DPATCH@
diff -urNad paw-2.14.04.dfsg~/src/paw_motif/Imakefile paw-2.14.04.dfsg/src/paw_motif/Imakefile
--- paw-2.14.04.dfsg~/src/paw_motif/Imakefile	2007-01-11 16:35:03.203039255 -0500
+++ paw-2.14.04.dfsg/src/paw_motif/Imakefile	2007-01-11 16:35:55.436956428 -0500
@@ -5,7 +5,7 @@
 #define PassCDebugFlags
 
 MotifDependantMakeVar(MOTIF_DIRS,cmotif fmotif fpanelsc)
-MotifDependantMakeVar(PAWPP_DIRS,fpanelsf tree uimx)
+MotifDependantMakeVar(PAWPP_DIRS,fpanelsf      uimx)
 
 LIBDIRS= code cdf
 
@@ -13,6 +13,7 @@
 LIBDIRS :=$(LIBDIRS) $(MOTIF_DIRS) $(PAWPP_DIRS)
 #endif
 
+#if 0 /* we want to use external libXbae */
 #if defined(CERNLIB_UNIX) && !defined(CERNLIB_WINNT)
 MotifDependantMakeVar(PAWPP_DIRS,xbae)
 LIBDIRS := $(LIBDIRS) $(PAWPP_DIRS)
@@ -22,6 +23,7 @@
 MotifDependantMakeVar(PAWPP_DIRS,xbaevms)
 LIBDIRS := $(LIBDIRS) $(PAWPP_DIRS)
 #endif
+#endif
 
 SUBDIRS= $(LIBDIRS)
 
diff -urNad paw-2.14.04.dfsg~/src/paw_motif/cmotif/chain_tree.c paw-2.14.04.dfsg/src/paw_motif/cmotif/chain_tree.c
--- paw-2.14.04.dfsg~/src/paw_motif/cmotif/chain_tree.c	1996-03-01 06:38:54.000000000 -0500
+++ paw-2.14.04.dfsg/src/paw_motif/cmotif/chain_tree.c	2007-01-11 16:37:01.447950095 -0500
@@ -19,7 +19,7 @@
 
 #include "hmotif/pawm.h"
 #include "hpaw/chain.h"
-#include "paw/tree.h"
+#include <X11/Xaw/Tree.h>
 
 #if defined(CERNLIB_QX_SC)
 #define  show_chain_tree     show_chain_tree_
diff -urNad paw-2.14.04.dfsg~/src/paw_motif/hmotif/scan.h paw-2.14.04.dfsg/src/paw_motif/hmotif/scan.h
--- paw-2.14.04.dfsg~/src/paw_motif/hmotif/scan.h	1996-09-09 11:21:28.000000000 -0400
+++ paw-2.14.04.dfsg/src/paw_motif/hmotif/scan.h	2007-01-11 16:36:26.990261436 -0500
@@ -20,10 +20,10 @@
 #define _scan_h
 
 #include "ntuplescan.h"
-#ifdef CERNLIB_VAXVMS
+#if 0
 #include "xbaevms/matrix.h"
 #else
-#include "xbae/matrix.h"
+#include <Xbae/Matrix.h>
 #endif
 
 


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/.cvsignore,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- .cvsignore	11 Apr 2006 22:53:00 -0000	1.4
+++ .cvsignore	19 Dec 2007 23:27:43 -0000	1.5
@@ -1,16 +1,6 @@
-src_car.tar.gz
-src_Imakefile.tar.gz
-src_patchy.tar.gz
-src_cfortran.tar.gz
-src_include.tar.gz
-src_pawlib.tar.gz
-src_config.tar.gz
-src_mathlib.tar.gz
-src_phtools.tar.gz
-src_geant321.tar.gz
-src_mclibs.tar.gz
-src_scripts.tar.gz
-src_graflib.tar.gz
-src_packlib.tar.gz
-xsneut95.dat
+2006_src-free.tar.gz
 patchy.tar.gz
+geant321_3.21.14.dfsg-5.diff.gz
+mclibs_2006.dfsg.2-1.diff.gz
+paw_2.14.04.dfsg.2-1.diff.gz
+cernlib_2006.dfsg.2-2.diff.gz


Index: 315-fixes-for-MacOSX.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/315-fixes-for-MacOSX.dpatch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- 315-fixes-for-MacOSX.dpatch	14 Dec 2005 16:52:26 -0000	1.3
+++ 315-fixes-for-MacOSX.dpatch	19 Dec 2007 23:27:43 -0000	1.4
@@ -6,9 +6,9 @@
 ## DP: and run on OS X.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/Imakefile cernlib-2005.05.09.dfsg/src/Imakefile
---- cernlib-2005.05.09.dfsg~/src/Imakefile	1996-12-16 10:08:41.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/Imakefile	2005-12-07 14:47:34.141148558 -0500
+diff -urNad cernlib-2006.dfsg~/src/Imakefile cernlib-2006.dfsg/src/Imakefile
+--- cernlib-2006.dfsg~/src/Imakefile	2007-01-09 19:27:31.059892042 -0500
++++ cernlib-2006.dfsg/src/Imakefile	2007-01-09 19:27:33.049467233 -0500
 @@ -7,8 +7,12 @@
  SUBDIRS= $(LIBDIRS) patchy cfortran
  
@@ -22,9 +22,9 @@
  
  InstallLibSubdirs($(LIBDIRS))
  
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/Imake.rules cernlib-2005.05.09.dfsg/src/config/Imake.rules
---- cernlib-2005.05.09.dfsg~/src/config/Imake.rules	2005-04-18 11:39:25.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/config/Imake.rules	2005-12-07 14:47:34.139148983 -0500
+diff -urNad cernlib-2006.dfsg~/src/config/Imake.rules cernlib-2006.dfsg/src/config/Imake.rules
+--- cernlib-2006.dfsg~/src/config/Imake.rules	2005-04-18 11:39:25.000000000 -0400
++++ cernlib-2006.dfsg/src/config/Imake.rules	2007-01-09 19:27:33.050467019 -0500
 @@ -2171,7 +2171,7 @@
  #define CppScriptTarget(dst,src,defs,deplist)				@@\
  dst::  src deplist							@@\
@@ -43,381 +43,136 @@
  									@@\
  clean::									@@\
  	RemoveFiles(dst)
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.cf cernlib-2005.05.09.dfsg/src/config/MacOSX.cf
---- cernlib-2005.05.09.dfsg~/src/config/MacOSX.cf	1969-12-31 19:00:00.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.cf	2005-12-07 14:47:34.140148771 -0500
-@@ -0,0 +1,170 @@
-+XCOMM platform:  $SFO: MOSXS.cf,v 1.0 95/11/19 23:21:00 sl Exp $
-+
-+#define OSVendor          Apple Computer, Inc.
-+#ifdef MacOSXArchitecture
-+#define OSName            MacOSX
-+#define OSMajorVersion    DefaultOSMajorVersion
-+#define OSMinorVersion    DefaultOSMinorVersion
-+#define OSTeenyVersion    0
-+#endif
-+
-+#define ProjectRulesFile  <MacOSX.rules>
-+#define ProjectTmplFile   <MacOSX.tmpl>
-+
-+#define InstKmemFlags -m 2755 -g kmem
-+/* #define ConstructMFLAGS		NO */
-+
-+#define HasNdbm     YES
-+#define SetTtyGroup YES
-+#define HasBsearch  YES
-+#ifdef MacOSXArchitecture
-+#define HasPutenv               YES
-+#define MathLibrary             /**/
-+#define DBMLibrary              /**/
-+#define TermcapLibrary          /**/
-+#define HasBSD44Sockets         YES
-+#define HAS_SNPRINTF            YES
-+#endif
-+
-+#define NeedConstPrototypes     YES
-+#define NeedVarargsPrototypes   YES
-+#define NeedFunctionPrototypes  YES
-+#define NeedWidePrototypes      NO
-+
-+#define GzipFontCompression     YES
-+#define CompressAllFonts        YES
-+
-+#ifndef HasShm
-+# define HasShm			YES
-+#endif
-+#ifndef BuildGlxExt
-+# define BuildGlxExt 	  	YES
-+# define GlxUseNSGL             YES
-+#endif
-+#define BuildServer             YES
-+#define BuildXprint             NO
-+#define BuildFonts              YES
-+#define BuildDPMS               NO
-+
-+#define TenonServer             YES
-+#define XprtServer              NO
-+#define XVendorString "Tenon Intersystems Xtools"
-+#define XVendorRelease 1000
-+#ifndef UseRgbTxt
-+#define UseRgbTxt               YES
-+#endif
-+
-+#define BuildPexExt             NO
-+
-+#ifndef BuildGLXLibrary
-+# define BuildGLXLibrary	YES
-+#endif
-+
-+/* no direct graphics extension */
-+#define	BuildXF86DGA	NO
-+
-+/* no extra tablets and weird input devices */
-+#define BuildXInputExt	NO
-+
-+/* Build Xinerama (aka panoramiX) extension */
-+#define BuildXinerama		YES
-+
-+/* no Display Power Management extension */
-+#define	BuildDPMSExt	NO
-+
-+# define BuildXvExt     NO
+diff -urNad cernlib-2006.dfsg~/src/config/MacOSX.cf cernlib-2006.dfsg/src/config/MacOSX.cf
+--- cernlib-2006.dfsg~/src/config/MacOSX.cf	2006-11-23 09:25:33.000000000 -0500
++++ cernlib-2006.dfsg/src/config/MacOSX.cf	2007-01-09 19:41:23.844091722 -0500
+@@ -73,8 +73,12 @@
+ #define	BuildDPMSExt	NO
+ 
+ # define BuildXvExt     NO
+-#define OptimizedCDebugFlags -O0 -g -pipe
+-#define ExtraLoadFlags -L/usr/X11R6/lib
 +
 +#ifndef OptimizationLevel
 +# define OptimizationLevel -O
 +#endif
-+#define OptimizedCDebugFlags OptimizationLevel -fPIC -pipe
-+#define ExtraLoadFlags -L/usr/X11R6/lib -L/sw/lib -L/usr/lib -lc
-+
-+#define BuildExamples YES
-+
-+#define StandardDefines -DCERNLIB_LINUX -DCERNLIB_PPC -DCERNLIB_MACOSX \
-+			-Dunix=unix -D__powerpc__ -D__DARWIN__
-+/* -DX_NOT_POSIX -DX_LOCALE */
-+
-+#define HasVoidSignalReturn YES
-+
-+#ifndef DependFlags
++#define OptimizedCDebugFlags OptimizationLevel -g -pipe
++#define ExtraLoadFlags -L/usr/X11R6/lib -L/sw/lib
+ 
+ #define BuildExamples YES
+ 
+@@ -87,9 +91,11 @@
+ #define HasVoidSignalReturn YES
+ 
+ #ifndef DependFlags
+-#define DependFlags -I/usr/include/ansi -I/usr/include/bsd
 +#define DependFlags -I/usr/include/ansi -I/usr/include/bsd -I/sw/include
-+#endif
-+
+ #endif
+ 
 +#define StandardIncludes -I/sw/include
 +
-+#define InstallCmd	install	/* unlink old */
-+
-+/* #define ArCmd libtool -a -o */
-+#define ArCmd ar -r
-+
-+#ifndef RanlibCmd
-+#define RanlibCmd	ranlib -c -s
-+#endif
-+
-+/* see below for ServerDefines */
-+
-+#define PrimaryScreenResolution 95	/* for 17 inch screen */
-+
-+#define ServerCDebugFlags OptimizationLevel -fPIC -g -pipe
-+
-+#ifndef HasGcc
-+#define HasGcc YES
-+#endif
-+
-+#undef CcCmd
-+#undef CplusplusCmd
-+#ifdef MacOSXArchitecture
-+#define CcCmd		cc -g -arch "ppc" -no-cpp-precomp
-+#define CplusplusCmd    c++ -g -no-cpp-precomp
-+#endif
-+#ifndef CcCmd
+ #define InstallCmd	install	/* unlink old */
+ 
+ /* #define ArCmd libtool -a -o */
+@@ -103,7 +109,7 @@
+ 
+ #define PrimaryScreenResolution 95	/* for 17 inch screen */
+ 
+-#define ServerCDebugFlags -O0 -g -pipe
++#define ServerCDebugFlags OptimizationLevel -g -pipe
+ 
+ /* #define HasGcc YES */
+ #ifndef HasGcc
+@@ -122,7 +128,7 @@
+ #endif
+ #endif
+ #ifndef CcCmd
+-#define CcCmd cc
 +#define CcCmd cc -g
-+#endif
-+
-+#define CppCmd        /usr/bin/cpp
-+
-+#include <MacOSX.rules>
-+#include <xf86.rules>
-+#undef XFree86Server
-+/* #define GLX_DIRECT_RENDERING */
-+
-+#define f2cFortran              YES
-+#define FortranCmd              g77 -g
-+#define XargsCmd                xargs
-+#define FortranSaveFlags        /* */ /* Everything static !? */
-+#define OptimisedFortranFlags	OptimizationLevel -fPIC -funroll-loops \
-+				-fomit-frame-pointer
-+#define DefaultCCOptions	OptimizationLevel
-+#define DefaultFCOptions        -fno-automatic \
-+				-fno-second-underscore \
-+				-fno-f90 -fugly-complex -fno-globals \
-+				-fugly-init -Wno-globals OptimizationLevel
-+
+ #endif
+ 
+ #define CppCmd        /usr/bin/cpp
+@@ -133,25 +139,35 @@
+ /* #define GLX_DIRECT_RENDERING */
+ 
+ #define f2cFortran              YES
+-#define FortranCmd              gfortran
++#define FortranCmd              gfortran -g
+ #define XargsCmd                xargs
+ #define FortranSaveFlags        /* -fno-automatic */ /* Everything static !? */
+-#define OptimisedFortranFlags	-O0 -g -funroll-loops -fomit-frame-pointer \
++#define OptimisedFortranFlags	OptimizationLevel -g -funroll-loops \
+ 				-ftree-vectorize
+-#define DefaultFCOptions        -fno-second-underscore
+-/*#define CernlibSystem           -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \
+-				-DCERNLIB_PPC -DCERNLIB_QMGLIBC \
+-				-DCERNLIB_MACOSX -DCERNLIB_GFORTRAN */
++#define DefaultFCOptions        -fno-second-underscore OptimizationLevel
+ 
 +#ifndef CernlibLocalDefines
 +# define CernlibLocalDefines
 +#endif
++#ifdef PpcDarwinArchitecture
 +#define CernlibSystem           -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \
 +				-DCERNLIB_PPC -DCERNLIB_QMGLIBC \
-+				-DCERNLIB_MACOSX CernlibLocalDefines
-+
-+#undef CERNLIB_SHIFT
-+
-+#define CERNLIB_LINUX
-+#define CERNLIB_UNIX
-+#define CERNLIB_LNX
-+#define CERNLIB_PPC
-+#define CERNLIB_QMGLIBC
-+#define CERNLIB_MACOSX
-+
-+#define X11Includes             -I/usr/X11R6/include
-+
-+/*
-+ *  Create a Make Variable to allow building with/out Motif
-+ */
-+#undef MotifDependantMakeVar
-+#define MotifDependantMakeVar(variable,value) variable=value
-+/* End  CERNLIB changes */
-+
-+
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.rules cernlib-2005.05.09.dfsg/src/config/MacOSX.rules
---- cernlib-2005.05.09.dfsg~/src/config/MacOSX.rules	1969-12-31 19:00:00.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.rules	2005-12-07 14:47:34.140148771 -0500
-@@ -0,0 +1,123 @@
-+XCOMM $XConsortium: MOSXS.rules,v 1.1 97/12/12 15:34:45 sl Exp $
-+
-+/*
-+ * MacOSX shared library rules
-+ */
-+
-+#define HasSharedLibraries YES
-+
-+#define ForceNormalLib NO
-+
-+#ifndef SharedDataSeparation
-+#define SharedDataSeparation YES
-+#endif
-+#ifndef SharedCodeDef
-+#define SharedCodeDef
-+#endif
-+#ifndef SharedLibraryDef
-+#define SharedLibraryDef -fno-common
-+#endif
-+
-+#define ShLibIncludeFile <MacOSX.tmpl>
-+
-+#ifndef SharedLibraryLoadFlags
-+#define SharedLibraryLoadFlags
-+#endif
-+#ifndef PositionIndependentCFlags
-+#define PositionIndependentCFlags
-+#endif
-+
-+
-+/*
-+ * InstallSharedLibrary - generate rules to install the shared library.
++				-DCERNLIB_MACOSX -DCERNLIB_GFORTRAN \
++				CernlibLocalDefines
++#else
+ #define CernlibSystem           -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \
+ 				-DCERNLIB_QMGLIBC \
+-				-DCERNLIB_MACOSX -DCERNLIB_GFORTRAN 
++				-DCERNLIB_MACOSX -DCERNLIB_GFORTRAN \
++				CernlibLocalDefines
++#endif
+ 
+ /* #define CERNLIB_SHIFT NO */
+ #define CERNLIB_LINUX
+ #define CERNLIB_UNIX
+ #define CERNLIB_LNX
+-/*#define CERNLIB_PPC*/
++#ifdef PpcDarwinArchitecture
++# define CERNLIB_PPC
++#endif
+ #define CERNLIB_QMGLIBC
+ #define CERNLIB_MACOSX
+ #define CERNLIB_GFORTRAN
+diff -urNad cernlib-2006.dfsg~/src/config/MacOSX.rules cernlib-2006.dfsg/src/config/MacOSX.rules
+--- cernlib-2006.dfsg~/src/config/MacOSX.rules	2006-09-04 08:32:56.000000000 -0400
++++ cernlib-2006.dfsg/src/config/MacOSX.rules	2007-01-09 15:47:15.542676000 -0500
+@@ -28,18 +28,24 @@
+ #endif
+ 
+ 
+-
+-
+ /*
+  * InstallSharedLibrary - generate rules to install the shared library.
 + * Edited 2003-05-09 by Kevin McCarty to add an install.shlib target.
-+ */
-+#ifndef InstallSharedLibrary
-+#define InstallSharedLibrary(libname,rev,dest)				@@\
+  */
+ #ifndef InstallSharedLibrary
+ #define InstallSharedLibrary(libname,rev,dest)				@@\
+-install:: Concat(lib,libname.dylib)					@@\
 +.PHONY: install.shlib shlib/libname					@@\
 +shlib/libname:: $(DESTDIR)dest/SharedLibraryTargetName(libname)		@@\
 +									@@\
 +install.shlib:: $(DESTDIR)dest/SharedLibraryTargetName(libname)		@@\
 +									@@\
 +$(DESTDIR)dest/SharedLibraryTargetName(libname): SharedLibraryTargetName(libname) @@\
-+	MakeDir($(DESTDIR)dest)						@@\
+ 	MakeDir($(DESTDIR)dest)						@@\
+-	$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.dylib) $(DESTDIR)dest
+-@@\
+-
 +	$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.rev.dylib) $(DESTDIR)dest @@\
 +	(T=`echo Concat($(DESTDIR)dest/lib,libname.rev.dylib) | sed 's/\.[^\.d]*\.dylib/\.dylib/'`;\ @@\
 +		$(RM) $$T && $(LN) Concat(lib,libname.rev.dylib) $$T)	@@\
 +	$(RM) Concat($(DESTDIR)dest/lib,libname.dylib)			@@\
 +	$(LN) Concat(lib,libname.rev.dylib) Concat($(DESTDIR)dest/lib,libname.dylib)
-+#endif /* InstallSharedLibrary */
-+
-+/*
-+ * NormalSharedLibraryTarget - generate rules to create a shared library;
-+ * build it into a different name so that the we do not hose people by having
-+ * the library gone for long periods.
-+ */
-+#ifndef SharedLibraryTarget
-+#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\
-+AllTarget(Concat(lib,libname.dylib))					@@\
-+									@@\
-+Concat(lib,libname.dylib):  solist $(EXTRALIBRARYDEPS)			@@\
-+	$(RM) $@~							@@\
-+	(cd down; $(CC) -I/usr/X11R6/lib -dynamiclib -undefined suppress -install_name /usr/X11R6/lib/$@ -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
-+	$(MV) $@~ $@							@@\
-+	LinkBuildLibrary($@)						@@\
-+									@@\
-+clean::									@@\
-+	$(RM) Concat(lib,libname.dylib)
-+
-+#endif /* SharedLibraryTarget */
-+
-+/*
-+ * SharedDepLibraryTarget - generate rules to create a shared library.
-+ */
-+#ifndef SharedDepLibraryTarget
-+#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up)	@@\
-+AllTarget(Concat(lib,libname.dylib))					@@\
-+									@@\
-+Concat(lib,libname.dylib):  deplist $(EXTRALIBRARYDEPS)		@@\
-+	$(RM) $@~							@@\
-+	(cd down; $(CC) -I/usr/X11R6/lib -dynamiclib -undefined suppress -install_name /usr/X11R6/lib/$@ -o up/$@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS)) @@\
-+	$(RM) $@							@@\
-+	$(MV) $@~ $@							@@\
-+	LinkBuildLibrary($@)						@@\
-+									@@\
-+clean::									@@\
-+	$(RM) Concat(lib,libname.dylib)
-+
-+#endif /* SharedDepLibraryTarget */
-+
-+/*
-+ * SharedLibraryDataTarget - generate rules to create shlib data file;
-+ */
-+#ifndef SharedLibraryDataTarget
-+#define SharedLibraryDataTarget(libname,rev,salist)
-+#endif /* SharedLibraryDataTarget */
-+
-+#ifndef InstallSharedLibraryData
-+#define InstallSharedLibraryData(libname,rev,dest)
-+#endif /* InstallSharedLibraryData */
-+
-+/*
-+ * SharedLibReferences - variables for shared libraries
-+ */
-+#ifndef SharedLibReferences
-+#define SharedLibReferences(varname,libname,libsource,revname,rev)	@@\
-+revname = rev								@@\
-+Concat3(DEP,varname,LIB) = SharedLibDependencies(libname,libsource,revname) @@\
-+Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname)		@@\
-+LintLibReferences(varname,libname,libsource)
-+#endif
-+
-+/*
-+ * SharedDSLibReferences - variables for shared libraries
-+ */
-+#ifndef SharedDSLibReferences
-+#define SharedDSLibReferences(varname,libname,libsource,revname,rev)	@@\
-+revname = rev								@@\
-+Concat3(DEP,varname,LIB) = SharedDSLibDependencies(libname,libsource,revname) @@\
-+Concat(varname,LIB) = LoaderLibPrefix Concat(-l,libname) Concat3(Shared,libname,Reqs)		@@\
-+LintLibReferences(varname,libname,libsource)
-+#endif
-+
-+
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/MacOSX.tmpl cernlib-2005.05.09.dfsg/src/config/MacOSX.tmpl
---- cernlib-2005.05.09.dfsg~/src/config/MacOSX.tmpl	1969-12-31 19:00:00.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/config/MacOSX.tmpl	2005-12-07 14:47:34.140148771 -0500
-@@ -0,0 +1,67 @@
-+XCOMM $XConsortium: MOSXS.tmpl,v 1.2 97/12/12 19:07:12 sl Exp $
-+
-+/*
-+ * Xnext shared library template
-+ */
-+
-+
-+
-+#ifndef SharedXtReqs
-+#define SharedXtReqs /**/
-+#endif
-+#ifndef SharedXawReqs
-+#define SharedXawReqs /**/
-+#endif
-+#ifndef SharedXmuReqs
-+#define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB)
-+#endif
-+
-+#define SharedLibX11 YES
-+#define SharedX11Rev F
-+SharedLibReferences(XONLY,X11,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
-+
-+#define SharedLibXau NO		/* don't need shared form */
-+#define SharedLibXdmcp NO	/* don't need shared form */
-+
-+#define SharedLibXmu YES
-+#define SharedXmuRev F
-+
-+#define SharedOldXRev F
-+
-+#define SharedLibXext YES
-+#define SharedXextRev F
-+
-+#define SharedLibXt YES
-+#define SharedXtRev F
-+SharedDSLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC),SOXTREV,SharedXtRev)
-+
-+#define SharedXawRev F
-+
-+#define SharedXtfRev A
-+
-+#define SharedLibXi YES
-+#define SharedXiRev F
-+SharedLibReferences(XI,Xi,$(XILIBSRC),SOXINPUTREV,SharedXiRev)
-+
-+#define SharedLibXtst YES
-+#define SharedXtstRev F
-+SharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC),SOXTESTREV,SharedXtstRev)
-+
-+
-+#define SharedPexRev F
-+SharedLibReferences(PEX,PEX5,$(PEXLIBSRC),SOPEXREV,SharedPexRev)
-+
-+#define SharedLibXie YES
-+#define SharedXieRev F
-+
-+#define SharedLibICE YES
-+#define SharedICERev F
-+SharedLibReferences(ICE,ICE,$(ICESRC),SOICEREV,SharedICERev)
-+
-+#define SharedLibSM YES
-+#define SharedSMRev F
-+SharedLibReferences(SM,SM,$(SMSRC),SOSMREV,SharedSMRev)
-+
-+#define SharedFSRev F
-+SharedLibReferences(FS,FS,$(FSLIBSRC),SOFSREV,SharedFSRev)
-+
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/site.def cernlib-2005.05.09.dfsg/src/config/site.def
---- cernlib-2005.05.09.dfsg~/src/config/site.def	2002-04-26 10:46:04.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/config/site.def	2005-12-07 14:47:34.140148771 -0500
+ #endif /* InstallSharedLibrary */
+ 
+ /*
+diff -urNad cernlib-2006.dfsg~/src/config/site.def cernlib-2006.dfsg/src/config/site.def
+--- cernlib-2006.dfsg~/src/config/site.def	2002-04-26 10:46:04.000000000 -0400
++++ cernlib-2006.dfsg/src/config/site.def	2007-01-09 19:27:33.051466806 -0500
 @@ -99,9 +99,7 @@
  /*   if it is already defined and false, undef it! */
  /* do not use shift by default
@@ -441,36 +196,6 @@
  
  install.lib:: $(CERN_LIBDIR)/gxint.f
  
-diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c327m.F cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c327m.F
---- cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c327m.F	1996-04-01 10:01:17.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c327m.F	2005-12-07 14:47:34.141148558 -0500
-@@ -92,7 +92,11 @@
- #endif
-       ENDIF
-       WRITE(Z,'(2D26.16)') H,T
-+#if defined(CERNLIB_MACOSX)
-+      READ(Z,'(2(4X,D22.16))') H1,T1
-+#else
-       READ(Z,'(2(D22.16,4X))') H1,T1
-+#endif
-        IF(IDS .EQ. 1) THEN
-       ERRMAX=MAX(ERRMAX,ABS(H1-T1))
-       LTEST= LTEST .AND. ERRMAX .LE.  TSTERR
-diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c342m.F cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c342m.F
---- cernlib-2005.05.09.dfsg~/src/mathlib/gen/tests/c342m.F	1996-04-01 10:01:19.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/mathlib/gen/tests/c342m.F	2005-12-07 14:47:34.141148558 -0500
-@@ -70,7 +70,11 @@
- #endif
-       END IF
-       WRITE(Z,'(2D26.16)') R,T
-+#if defined(CERNLIB_MACOSX)
-+      READ(Z,'(2(4X,D22.16))') R1,T1
-+#else
-       READ(Z,'(2(D22.16,4X))') R1,T1
-+#endif
-       ERMAX= MAX(ERMAX,ABS(R1-T1))
-       IF(IDS .EQ. 3 .OR. IDS .EQ. 4) THEN
-        WRITE(LOUT,'(1X,F10.3,2F25.16,1P,D10.1)') SX,R,T,ABS(R1-T1)
 diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/cojets/data/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/cojets/data/Imakefile
 --- cernlib-2005.05.09.dfsg~/src/mclibs/cojets/data/Imakefile	1996-03-27 04:31:06.000000000 -0500
 +++ cernlib-2005.05.09.dfsg/src/mclibs/cojets/data/Imakefile	2005-12-07 14:47:34.141148558 -0500
@@ -503,255 +228,3 @@
  
  PackageDirFileTarget(isajet.dat)
  
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/cspack/sysreq/log.c cernlib-2005.05.09.dfsg/src/packlib/cspack/sysreq/log.c
---- cernlib-2005.05.09.dfsg~/src/packlib/cspack/sysreq/log.c	2003-09-02 08:47:16.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/cspack/sysreq/log.c	2005-12-07 14:47:34.142148345 -0500
-@@ -80,7 +80,7 @@
- static int pid;                 /* process identifier                   */
- static int logfd ;              /* logging file descriptor              */
- #if !defined(SOLARIS) && !defined(linux) && !defined(_AIX) \
--  && !defined(IRIX5) && !defined(apollo)
-+  && !defined(IRIX5) && !defined(apollo) && !defined(__DARWIN__)
- extern int syslog();
- #endif /* !SOLARIS && !IRIX5 && !apollo && !linux && !AIX */
- extern char *getenv();
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c cernlib-2005.05.09.dfsg/src/packlib/cspack/tcpaw/tcpaw.c
---- cernlib-2005.05.09.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c	2005-12-07 14:47:25.920897902 -0500
-+++ cernlib-2005.05.09.dfsg/src/packlib/cspack/tcpaw/tcpaw.c	2005-12-07 14:47:34.146147494 -0500
-@@ -2569,7 +2569,7 @@
- #if !defined(IBM) && !defined(_WIN32)
- /* I provide "getpass" myself as standard version truncates to 8 characters */
- #include <sys/ioctl.h>
--#ifdef CBREAK
-+#if defined(CBREAK) || defined(CERNLIB_MACOSX)
- #define BSDTTY         /* First find out if BSD or SYSV terminal handling.. */
- #endif
-  
-@@ -2577,6 +2577,10 @@
- #include <termio.h>
- #else
- #include <sgtty.h>
-+# if defined(CERNLIB_MACOSX)
-+# define gtty(x,y) ioctl(x,TIOCGETP,y)
-+# define stty(x,y) ioctl(x,TIOCSETP,y)
-+# endif
- #endif
-  
- /* Fails with gcc 3.4.3
-@@ -3540,3 +3544,20 @@
-  
- }
- #endif
-+
-+#if defined(CERNLIB_MACOSX)
-+  /* need to define cuserid() for OS X */
-+
-+char * getlogin();
-+
-+char *
-+cuserid(char *string)
-+{
-+  static char cuserid_str[L_cuserid];
-+  char *result = (string ? string : cuserid_str);
-+  
-+  strncpy(result, getlogin(), L_cuserid - 1);
-+  result[L_cuserid - 1] = '\0';
-+  return result;
-+}
-+#endif /* CERNLIB_MACOSX */
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernbit/z268/systems.c cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernbit/z268/systems.c
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernbit/z268/systems.c	1998-08-25 08:45:56.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernbit/z268/systems.c	2005-12-07 14:47:34.146147494 -0500
-@@ -200,7 +200,7 @@
- || defined(_IBMR2) \
- || defined(__convexc__) \
- || defined(_OSK) \
--|| defined(__linux) || defined(__FreeBSD__)
-+|| defined(__linux) || defined(__FreeBSD__) || defined(__DARWIN__)
- 
-   void systems_( command, buf, buflen, l, chars, rc, ovflw )
- 
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/d704fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/d704fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/d704fort/Imakefile	1996-06-12 06:03:53.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/d704fort/Imakefile	2005-12-07 14:47:34.146147494 -0500
-@@ -4,6 +4,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 
- SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f002fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f002fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f002fort/Imakefile	1996-06-12 06:04:09.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f002fort/Imakefile	2005-12-07 14:47:34.146147494 -0500
-@@ -10,6 +10,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 
- SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f003fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f003fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f003fort/Imakefile	1996-06-12 06:04:12.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f003fort/Imakefile	2005-12-07 14:47:34.147147281 -0500
-@@ -11,6 +11,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 
- SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f004fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f004fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f004fort/Imakefile	1996-06-12 06:04:16.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f004fort/Imakefile	2005-12-07 14:47:34.147147281 -0500
-@@ -6,6 +6,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 
- SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f010fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f010fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f010fort/Imakefile	1996-06-12 06:04:19.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f010fort/Imakefile	2005-12-07 14:47:34.147147281 -0500
-@@ -7,6 +7,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 	 
- 
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f011fort/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f011fort/Imakefile
---- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kernnum/f011fort/Imakefile	1996-06-12 06:04:24.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kernnum/f011fort/Imakefile	2005-12-07 14:47:34.147147281 -0500
-@@ -7,6 +7,10 @@
- FDEBUGFLAGS=NoOpFortranDebugFlags
- #endif
- 
-+#if defined(CERNLIB_MACOSX)
-+FDEBUGFLAGS=-O0 -fPIC
-+#endif
-+
- FORTRANSAVEOPTION=FortranSaveFlags
- 
- SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kuip/kuip/ksys.h cernlib-2005.05.09.dfsg/src/packlib/kuip/kuip/ksys.h
---- cernlib-2005.05.09.dfsg~/src/packlib/kuip/kuip/ksys.h	1997-09-02 10:50:01.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/packlib/kuip/kuip/ksys.h	2005-12-07 14:47:34.147147281 -0500
-@@ -188,6 +188,17 @@
- #endif
- 
- 
-+#ifdef CERNLIB_MACOSX
-+#  define MACOSX
-+#  define MACHINE_NAME "MACOSX"
-+#  define UNIX
-+#  define HAVE_MEMMOVE
-+#  define HAVE_STRCASECMP
-+#  define HAVE_SELECT
-+#  define MATCH_REGCOMP         /* use regcomp/regexec */
-+#endif
-+
-+
- #ifdef MSDOS
- #  define MACHINE_NAME "IBMPC"
- #  define OS_NAME "MSDOS"
-diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/csaddr.F cernlib-2005.05.09.dfsg/src/pawlib/comis/code/csaddr.F
---- cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/csaddr.F	2005-12-07 14:47:25.807921944 -0500
-+++ cernlib-2005.05.09.dfsg/src/pawlib/comis/code/csaddr.F	2005-12-07 14:55:23.810167859 -0500
-@@ -38,7 +38,12 @@
-             IFCS=-2
-             CALL CSRTGPL(I)
- #else
-+c     thanks to Keisuke Fujii for this patch for OS X            
-+#if defined (CERNLIB_MACOSX)
-+          IADGP=CS_GET_FUNC('_'//NAME(1:NC)//'_')
-+#else
-           IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
-+#endif
-           IF(IADGP.NE.0)THEN
-             IFCS=-2
-             CALL CSRTGP(I)
-@@ -58,7 +63,11 @@
-           I=CSITGPL(IPVS)
-         ENDIF
- #else
-+#if defined (CERNLIB_MACOSX)
-+        IADGP=CS_GET_FUNC('_'//NAME(1:NC)//'_')
-+#else
-         IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
-+#endif
-         IF(IADGP.NE.0)THEN
-           IFCS=-2
-           ITYPGP=-2
-diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/cscrexec.F cernlib-2005.05.09.dfsg/src/pawlib/comis/code/cscrexec.F
---- cernlib-2005.05.09.dfsg~/src/pawlib/comis/code/cscrexec.F	2005-12-07 14:47:25.687947476 -0500
-+++ cernlib-2005.05.09.dfsg/src/pawlib/comis/code/cscrexec.F	2005-12-07 14:47:34.148147068 -0500
-@@ -82,11 +82,19 @@
-       IF(FEXT.EQ.'.c')THEN
-         L=LENOCC(CHCC)
- *                                 'cc -c .... -fPIC name.c'
-+#if defined(CERNLIB_MACOSX)
-+        CHLINE=CHCC(:L)//' -fPIC -fno-common '//NAME(:LN)// '.c'
-+#else
-         CHLINE=CHCC(:L)//' -fPIC '//NAME(:LN)// '.c'
-+#endif
-       ELSE
-         L=LENOCC(CHF77)
- *                                 'f77 -c .... -fPIC name.f'
-+#if defined(CERNLIB_MACOSX)
-+        CHLINE=CHF77(:L)//' -fPIC -fno-common '//NAME(:LN)// '.f'
-+#else
-         CHLINE=CHF77(:L)//' -fPIC '//NAME(:LN)// '.f'
-+#endif
-       ENDIF
-       L=LENOCC(CHLINE)
-       WRITE(LUNOUT,'(A)')CHLINE(:L)
-@@ -176,8 +184,15 @@
-       ENDIF
- #endif
- #if defined(CERNLIB_LINUX)
-+# if defined(CERNLIB_MACOSX)
-+      CHLINE= 'g77 -bundle -bind_at_load -bundle_loader '
-+     +        '`/usr/bin/which pawX11` -o '
-+     +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
-+C     thanks to Keisuke Fujii for the above compiler command      
-+# else
-       CHLINE=                   'g77 -shared -o '
-      +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
-+# endif
- #endif
- #if defined(CERNLIB_ALPHA_OSF)
-         CHLINE=                   'ld -shared -o '
-diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/paw/programs/Imakefile cernlib-2005.05.09.dfsg/src/pawlib/paw/programs/Imakefile
---- cernlib-2005.05.09.dfsg~/src/pawlib/paw/programs/Imakefile	2002-04-25 06:20:11.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/pawlib/paw/programs/Imakefile	2005-12-07 14:47:34.148147068 -0500
-@@ -9,7 +9,7 @@
- EXTRA_LDOPTIONS=-Wl,-E
- #endif
- 
--#if defined(CERNLIB_LINUX)
-+#if defined(CERNLIB_LINUX) && !defined(CERNLIB_MACOSX)
- EXTRA_LDOPTIONS=-Wl,-E
- #endif
- 


Index: cernlib-115-rsrtnt64-goto-outer-block.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-115-rsrtnt64-goto-outer-block.dpatch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- cernlib-115-rsrtnt64-goto-outer-block.dpatch	11 Sep 2006 22:32:35 -0000	1.2
+++ cernlib-115-rsrtnt64-goto-outer-block.dpatch	19 Dec 2007 23:27:43 -0000	1.3
@@ -2,16 +2,16 @@
 ## 115-rsrtnt64-goto-outer-block.dpatch by  <kmccarty at debian.org>
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch from Patrice Dumas <pertusus at free.fr> to fix spaghetti code in
-## DP: rsrtnt64.F that breaks linking step on Itanium.
+## DP: Avoid weird jump assignments on g77/ia64 as well as with gfortran
+## DP: to avoid breakage during linking step on Itanium.
 ## DP: Also, following Harald Vogt, change indicators of line continuation
 ## DP: from "1" -> "&" to be compatible with gfortran.
 
 @DPATCH@
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F
---- cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F	1996-04-01 10:01:51.000000000 -0500
-+++ cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F	2006-09-06 14:12:38.087369193 -0400
-@@ -53,7 +53,7 @@
+diff -urNad cernlib-2006.dfsg~/src/mathlib/gen/b/rsrtnt64.F cernlib-2006.dfsg/src/mathlib/gen/b/rsrtnt64.F
+--- cernlib-2006.dfsg~/src/mathlib/gen/b/rsrtnt64.F	2006-09-15 05:34:52.000000000 -0400
++++ cernlib-2006.dfsg/src/mathlib/gen/b/rsrtnt64.F	2007-01-09 16:27:13.488797346 -0500
+@@ -56,7 +56,7 @@
        IF(LLL) GO TO 9
  
        LLL=K .GE. 0 .OR. K .EQ. -1 .AND. U*V .NE. 0
@@ -20,27 +20,16 @@
        IF(.NOT.LLL) GO TO 9
  
        DELTA=4*A*C-B**2
-@@ -117,9 +117,16 @@
+@@ -120,7 +120,7 @@
          ENDIF
         ELSE
          IF(N .EQ. 1) THEN
--         ASSIGN 11 TO JMP1
--         GO TO 10
--   11    IF(K .EQ. 0) THEN
-+      C2=2*C
-+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
-+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
-+      ELSEIF(DELTA .EQ. 0) THEN
-+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
-+      ELSE
-+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
-+      ENDIF
-+         IF(K .EQ. 0) THEN
-           H=H
-          ELSEIF(K .EQ. 1) THEN
-           H=(RT(V)-RT(U)-HF*B*H)/C
-@@ -134,7 +141,7 @@
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined(__ia64__)
+          ASSIGN 11 TO JMP1
+          GO TO 10
+ #else
+@@ -141,7 +141,7 @@
            G2=A*C
            H3=G1-16*G2
            H=(((H1*V-H2)*V+H3)*RT(V)-((H1*U-H2)*U+H3)*RT(U)-
@@ -49,41 +38,25 @@
           ENDIF
          ELSE
           IF(DELTA .EQ. 0) THEN
-@@ -174,21 +181,35 @@
+@@ -181,7 +181,7 @@
             H=2*((H1+B*U)/RT(U)-(H1+B*V)/RT(V))/DELTA
             LB1=11
            ELSEIF(K .EQ. 2) THEN
--           ASSIGN 12 TO JMP1
--           GO TO 10
--   12      H1=DELTA-B**2
-+      C2=2*C
-+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
-+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
-+      ELSEIF(DELTA .EQ. 0) THEN
-+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
-+      ELSE
-+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
-+      ENDIF
-+           H1=DELTA-B**2
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined(__ia64__)
+            ASSIGN 12 TO JMP1
+            GO TO 10
+ #else
+@@ -191,7 +191,7 @@
             H2=2*A*B
             H=(((H1*U-H2)/RT(U)-(H1*V-H2)/RT(V))/DELTA+H)/C
            ELSEIF(K .EQ. 3) THEN
--           ASSIGN 13 TO JMP1
--           GO TO 10
--   13      H1=C*DELTA
-+      C2=2*C
-+      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
-+       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
-+      ELSEIF(DELTA .EQ. 0) THEN
-+       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
-+      ELSE
-+       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
-+      ENDIF
-+           H1=C*DELTA
-            G1=A*C
-            G2=3*B**2
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined(__ia64__)
+            ASSIGN 13 TO JMP1
+            GO TO 10
+ #else
+@@ -203,7 +203,7 @@
             H2=B*(10*G1-G2)
             H3=A*(8*G1-G2)
             H=(2*(((H1*V+H2)*V+H3)/RT(V)-((H1*U+H2)*U+H3)/RT(U))/
@@ -92,44 +65,16 @@
            ENDIF
           ENDIF
          ENDIF
-@@ -217,9 +238,33 @@
+@@ -232,7 +232,7 @@
          ENDIF
         ELSE
          IF(N .EQ. 1) THEN
--         ASSIGN 21 TO JMP2
--         GO TO 20
--   21    IF(K .EQ. -1) THEN
-+      IF(C .EQ. 0) THEN
-+       IF(B .EQ. 0) THEN
-+        H=LOG(ABS(V/U))/SQRT(A)
-+       ELSE
-+        IF(A .LT. 0) THEN
-+         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
-+        ELSE
-+         WA=SQRT(A)
-+         WU=SQRT(A+B*U)
-+         WV=SQRT(A+B*V)
-+         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
-+        ENDIF
-+       ENDIF
-+      ELSE
-+       A2=2*A
-+       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
-+        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
-+     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
-+       ELSEIF(DELTA .EQ. 0) THEN
-+        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
-+        IF(U*V .GT. 0) H=SIGN(H,U)
-+       ELSE
-+        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
-+        IF(U .LT. 0 .AND. V .LT. 0) H=-H
-+       ENDIF
-+      ENDIF
-+         IF(K .EQ. -1) THEN
-           H=H
-          ELSEIF(K .EQ. -2) THEN
-           H=(RT(U)/U-RT(V)/V-HF*B*H)/A
-@@ -227,7 +272,7 @@
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined(__ia64__)
+          ASSIGN 21 TO JMP2
+          GO TO 20
+ #else
+@@ -246,7 +246,7 @@
            H1=6*B
            H2=4*A
            H=((H1*V-H2)*RT(V)/V**2-(H1*U-H2)*RT(U)/U**2+
@@ -138,44 +83,16 @@
           ENDIF
          ELSE
           IF(DELTA .EQ. 0) THEN
-@@ -257,9 +302,33 @@
+@@ -276,7 +276,7 @@
             IF(U. LT. -X0) H=-H
            ENDIF
           ELSE
--          ASSIGN 22 TO JMP2
--          GO TO 20
--   22     IF(K .EQ. -1) THEN
-+      IF(C .EQ. 0) THEN
-+       IF(B .EQ. 0) THEN
-+        H=LOG(ABS(V/U))/SQRT(A)
-+       ELSE
-+        IF(A .LT. 0) THEN
-+         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
-+        ELSE
-+         WA=SQRT(A)
-+         WU=SQRT(A+B*U)
-+         WV=SQRT(A+B*V)
-+         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
-+        ENDIF
-+       ENDIF
-+      ELSE
-+       A2=2*A
-+       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
-+        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
-+     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
-+       ELSEIF(DELTA .EQ. 0) THEN
-+        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
-+        IF(U*V .GT. 0) H=SIGN(H,U)
-+       ELSE
-+        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
-+        IF(U .LT. 0 .AND. V .LT. 0) H=-H
-+       ENDIF
-+      ENDIF
-+          IF(K .EQ. -1) THEN
-            H1=B*C
-            H2=B**2-2*A*C
-            H=(2*((H1*U+H2)/RT(U)-(H1*V+H2)/RT(V))/DELTA+H)/A
-@@ -270,7 +339,7 @@
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined (__ia64__)
+           ASSIGN 22 TO JMP2
+           GO TO 20
+ #else
+@@ -293,7 +293,7 @@
             H2=(G1-10*G2)*B
             H3=A*DELTA
             H=(((H1*V+H2-H3/V)/RT(V)-(H1*U+H2-H3/U)/RT(U))/DELTA
@@ -184,7 +101,7 @@
            ELSEIF(K .EQ. -3) THEN
             G1=A*DELTA
             G2=A*C
-@@ -281,52 +350,13 @@
+@@ -304,19 +304,19 @@
             H3=(G4-62*G2)*G3+24*G2**2
             H4=B*C*(G4-52*G2)
             H=((((H2-H1/V)/V-H3-H4*V)/RT(V)-((H2-H1/U)/U-H3-H4*U)/RT(U))
@@ -195,46 +112,24 @@
          ENDIF
         ENDIF
        ENDIF
--      GO TO 9
+-#if !defined(CERNLIB_GFORTRAN)
++#if (!defined(CERNLIB_GFORTRAN)) && !defined(__ia64__)
+       GO TO 9
  
--   10 C2=2*C
--      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
--       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
+    10 C2=2*C
+       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
+        H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
 -     1           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
--      ELSEIF(DELTA .EQ. 0) THEN
--       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
--      ELSE
--       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
--      ENDIF
--      GO TO JMP1, (11,12,13)
--
--   20 IF(C .EQ. 0) THEN
--       IF(B .EQ. 0) THEN
--        H=LOG(ABS(V/U))/SQRT(A)
--       ELSE
--        IF(A .LT. 0) THEN
--         H=2*(ATAN(SQRT(-(A+B*V)/A))-ATAN(SQRT(-(A+B*U)/A)))/SQRT(-A)
--        ELSE
--         WA=SQRT(A)
--         WU=SQRT(A+B*U)
--         WV=SQRT(A+B*V)
--         H=LOG(ABS((WV-WA)*(WU+WA)/((WV+WA)*(WU-WA))))/WA
--        ENDIF
--       ENDIF
--      ELSE
--       A2=2*A
--       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
--        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
++     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
+       ELSEIF(DELTA .EQ. 0) THEN
+        H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
+       ELSE
+@@ -341,7 +341,7 @@
+        A2=2*A
+        IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
+         H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
 -     1           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
--       ELSEIF(DELTA .EQ. 0) THEN
--        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
--        IF(U*V .GT. 0) H=SIGN(H,U)
--       ELSE
--        H=(ASIN((B*V+A2)/(V*RTD))-ASIN((B*U+A2)/(U*RTD)))/SQRT(-A)
--        IF(U .LT. 0 .AND. V .LT. 0) H=-H
--       ENDIF
--      ENDIF
--      GO TO JMP2, (21,22)
- 
-     9 RES=SIGN(R1,V1-U1)*H
-       LRL=LLL
++     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
+        ELSEIF(DELTA .EQ. 0) THEN
+         H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
+         IF(U*V .GT. 0) H=SIGN(H,U)


Index: cernlib-202-fix-includes-in-minuit-example.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-202-fix-includes-in-minuit-example.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-202-fix-includes-in-minuit-example.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-202-fix-includes-in-minuit-example.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -9,8 +9,8 @@
 --- cernlib-2005.05.09/src/cfortran/Examples/minuit-main.c	2001-04-18 04:56:22.000000000 -0400
 +++ /tmp/dpep.SuauEf/cernlib-2005.05.09/src/cfortran/Examples/minuit-main.c	2005-06-09 13:22:59.567224997 -0400
 @@ -15,8 +15,8 @@
- #define FCN fcn
- #endif
+  *          Gunter Folger <Gunter.Folger at cern.ch>
+  */
  
 -#include "cfortran.h"
 -#include "minuit.h"


Index: cernlib-211-support-digital-alpha.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-211-support-digital-alpha.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-211-support-digital-alpha.dpatch	11 Sep 2006 22:32:35 -0000	1.1
+++ cernlib-211-support-digital-alpha.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -30,5 +30,5 @@
 +#else  /* amd64 */
 +    if ( jadr != 0) {
  #endif
-       printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
-       printf("LOCB/LOCF: address %p exceeds the 32 bit address space\n", iadr);
+       fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+       fprintf(stderr, "LOCB/LOCF: address %p exceeds the 32 bit address space\n", iadr);


Index: cernlib-304-update-Imake-config-files.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-304-update-Imake-config-files.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-304-update-Imake-config-files.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-304-update-Imake-config-files.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -7,17 +7,18 @@
 ## DP: to support most Linux architectures.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/Imake.cf cernlib-2005.05.09.dfsg/src/config/Imake.cf
---- cernlib-2005.05.09.dfsg~/src/config/Imake.cf	2004-10-05 11:54:40.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/config/Imake.cf	2005-12-12 09:42:08.529220732 -0500
-@@ -1,24 +1,10 @@
+diff -urNad cernlib-2006.dfsg~/src/config/Imake.cf cernlib-2006.dfsg/src/config/Imake.cf
+--- cernlib-2006.dfsg~/src/config/Imake.cf	2006-09-15 05:34:47.000000000 -0400
++++ cernlib-2006.dfsg/src/config/Imake.cf	2007-01-09 19:03:04.701920749 -0500
+@@ -1,27 +1,10 @@
 -/* $Id$
 - *
 - * $Log$
-- * Revision 1.1  2006/09/01 13:15:22  pertusus
-- * * Fri Sep  1 2006 Patrice Dumas <pertusus at free.fr> 2005-23
-- * - update to newer source split debian patchsets
-- * - don't set the exec bits on file installed in /etc/profile.d/
+- * Revision 1.2  2007/12/19 23:27:43  pertusus
+- * sync with devel
+- *
+- * Revision 1.6  2006/09/15 09:34:47  mclareni
+- * Submitted mods for gcc4/gfortran and MacOSX, corrected to work also on slc4 with gcc3.4 and 4.1
 - *
 - * Revision 1.5  2004/10/05 15:54:40  mclareni
 - * Add configuration file linux-lp64 for Linux 64-bit pointer systems like AMD Opteron and Intel IA64.
@@ -46,38 +47,11 @@
  /*
   * To add support for another platform:
   * 
-@@ -37,250 +23,448 @@
+@@ -40,184 +23,358 @@
   *
   *     4.  Create a .cf file with the name given by MacroFile.
   */
 +XCOMM $XFree86: xc/config/cf/Imake.cf,v 3.81 2003/02/18 16:51:45 tsi Exp $
- 
--#ifdef ultrix
--#define MacroIncludeFile <ultrix.cf>
--#define MacroFile ultrix.cf
--#ifdef vax
--#undef vax
--#define VaxArchitecture
--#endif
--#ifdef mips
--#undef mips
--#define MipsArchitecture
-+#if defined(__APPLE__)
-+# undef __APPLE__
-+# define MacroIncludeFile <MacOSX.cf>
-+# define MacroFile MacOSX.cf
-+# define DarwinArchitecture
-+# ifdef __ppc__
-+#  define PpcDarwinArchitecture
-+#  undef __ppc__
-+# endif
-+# ifdef __i386__
-+#  define i386DarwinArchitecture
-+#  undef __i386__
-+# endif
- #endif
--#undef ultrix
--#define UltrixArchitecture
 +
 +#if defined(clipper) || defined(__clipper__)
 +# undef clipper
@@ -99,8 +73,20 @@
 +#undef _X86_
 +#undef __CYGWIN__
 +#endif /* CYGWIN */
-+
-+#ifdef ultrix
+ 
+ #ifdef ultrix
+-#define MacroIncludeFile <ultrix.cf>
+-#define MacroFile ultrix.cf
+-#ifdef vax
+-#undef vax
+-#define VaxArchitecture
+-#endif
+-#ifdef mips
+-#undef mips
+-#define MipsArchitecture
+-#endif
+-#undef ultrix
+-#define UltrixArchitecture
 +# define MacroIncludeFile <ultrix.cf>
 +# define MacroFile ultrix.cf
 +# ifdef vax
@@ -553,6 +539,21 @@
 +# define MacIIArchitecture
  #endif /* macII */
  
+ #ifdef __APPLE__
+@@ -225,72 +382,89 @@
+ # define MacroFile MacOSX.cf
+ # define MacOSXArchitecture
+ # define DarwinArchitecture
++# ifdef __ppc__
++#  define PpcDarwinArchitecture
++#  undef __ppc__
++# endif
++# ifdef __i386__
++#  define i386DarwinArchitecture
++#  undef __i386__
++# endif
+ #endif
+ 
  #ifdef _CRAY
 -#define MacroIncludeFile <cray.cf>
 -#define MacroFile cray.cf
@@ -680,7 +681,7 @@
  #endif /* luna */
  
  #ifdef Mips
-@@ -307,9 +491,14 @@
+@@ -317,9 +491,14 @@
  # endif
  #endif /* MOTOROLA */
  
@@ -696,7 +697,7 @@
  # endif
  # define SVR4Architecture
  # define MacroIncludeFile <svr4.cf>
-@@ -319,13 +508,42 @@
+@@ -329,13 +508,42 @@
  
  #ifdef SYSV
  # ifdef i386
@@ -743,7 +744,7 @@
  # ifdef SVR4
  #  define i386Architecture
  #  define SVR4Architecture
-@@ -333,18 +551,46 @@
+@@ -343,18 +551,46 @@
  #  define MacroIncludeFile <svr4.cf>
  #  define MacroFile svr4.cf
  #  undef SVR4
@@ -799,7 +800,7 @@
  #endif /* DGUX */
  
  #ifdef __convex__
-@@ -356,101 +602,405 @@
+@@ -366,101 +602,405 @@
  # define ConvexArchitecture
  #endif /* _convex_ */
  
@@ -1272,10 +1273,10 @@
  
  #ifndef MacroIncludeFile
  XCOMM WARNING:  Imake.cf not configured; guessing at definitions!!!
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/linux.cf cernlib-2005.05.09.dfsg/src/config/linux.cf
---- cernlib-2005.05.09.dfsg~/src/config/linux.cf	2004-10-05 11:56:45.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/config/linux.cf	2005-12-12 09:42:42.505976387 -0500
-@@ -65,20 +65,20 @@
+diff -urNad cernlib-2006.dfsg~/src/config/linux.cf cernlib-2006.dfsg/src/config/linux.cf
+--- cernlib-2006.dfsg~/src/config/linux.cf	2006-09-15 05:34:48.000000000 -0400
++++ cernlib-2006.dfsg/src/config/linux.cf	2007-01-09 19:17:01.559270079 -0500
+@@ -68,20 +68,20 @@
  #define OSVendor		/**/
  #define OSMajorVersion		2
  #define OSMinorVersion		4
@@ -1300,7 +1301,7 @@
  #endif
  #define HasPutenv		YES
  #define HasShm			YES
-@@ -94,38 +94,302 @@
+@@ -97,38 +97,302 @@
  #define NeedVarargsPrototypes	YES
  #define NeedWidePrototypes	NO
  
@@ -1617,7 +1618,7 @@
  /* Some of these man page defaults are overriden in the above OS sections */
  #ifndef ManSuffix
  # define ManSuffix	1x
-@@ -160,7 +424,7 @@
+@@ -163,7 +427,7 @@
  #define FortranSaveFlags	/* */ /* Everything static !? */
  #define OptimisedFortranFlags   -g -pc 64 -tp p6
  #define DefaultFCOptions        -Msave -fpic -Kieee
@@ -1626,7 +1627,7 @@
  
  #else
  
-@@ -171,19 +435,18 @@
+@@ -174,19 +438,18 @@
  #  undef StandardDefines
  #  undef NeedFunctionPrototypes
  #  undef NeedWidePrototypes
@@ -1658,7 +1659,7 @@
   
  #else
  
-@@ -194,19 +457,18 @@
+@@ -197,19 +460,18 @@
  #  undef StandardDefines
  #  undef NeedFunctionPrototypes
  #  undef NeedWidePrototypes
@@ -1690,7 +1691,45 @@
  /*
   *  Create a Make Variable to allow building with/out Motif
   */
-@@ -221,17 +483,32 @@
+@@ -222,25 +484,28 @@
+ #else
+ 
+ # ifdef Hasgfortran
+-#  undef CcCmd
+-#  undef DefaultCCOptions
+-#  undef OptimizedCDebugFlags
+ #  undef StandardDefines
+ #  undef NeedFunctionPrototypes
+ #  undef NeedWidePrototypes
+-# define CcCmd			gcc4
+-# define DefaultCCOptions	
+-# define OptimizedCDebugFlags	-O -g -fomit-frame-pointer
++# ifndef DefaultCCOptions
++# define DefaultCCOptions
++# endif
++# ifndef OptimizedCDebugFlags
++# define OptimizedCDebugFlags	OptimizationLevel DefaultCCOptions
++# endif
+ 
+ # define FortranDoesCpp         YES
+ # define f2cFortran             YES
+-# define FortranCmd             gfortran
++# define gFortran               YES
++# define FortranCmd             gfortran -g
+ # define XargsCmd               xargs
+ # define FortranSaveFlags       -fno-automatic
+-# define OptimisedFortranFlags  -O0 -g -funroll-loops -fomit-frame-pointer
++# define OptimisedFortranFlags  OptimizedCDebugFlags -funroll-loops
++/* Remove -fomit-frame-pointer since -O implies it and it inhibits debugging */
+ # define DefaultFCOptions       -fno-second-underscore
+ # define NoOpFortranDebugFlags  -O0
+-# define CernlibSystem          -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX -DCERNLIB_QMGLIBC -DCERNLIB_GFORTRAN
++# define CernlibSystem          CernlibDefaultDefines CernlibMachineDefines \
++                                CernlibLocalDefines -DCERNLIB_GFORTRAN
+ 
+ #define CERNLIB_GFORTRAN
+  
+@@ -249,17 +514,32 @@
  /* Start CERNLIB changes A.Waananen 15. Apr. 1996 */
  /*  Adapted to CERN style GF. 20-Sep-96 */
  
@@ -1726,7 +1765,7 @@
  
  # endif
  # endif
-@@ -251,7 +528,7 @@
+@@ -280,7 +560,7 @@
  /*
   *  Create a Make Variable to allow building with/out Motif
   */


Index: cernlib-318-additional-gcc-3.4-fixes.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-318-additional-gcc-3.4-fixes.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-318-additional-gcc-3.4-fixes.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-318-additional-gcc-3.4-fixes.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -5,43 +5,15 @@
 ## DP: Additional fixes for gcc 3.4, courtesy of Andreas Jochens.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c /tmp/dpep.f5SU0N/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c
---- cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-06-14 12:31:12.078969103 -0400
-+++ /tmp/dpep.f5SU0N/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-06-14 12:33:16.618251997 -0400
-@@ -2405,6 +2405,7 @@
-  */
- 
- static  FILE *cfile;
-+static  rnetrc(), token();
-  
- ruserpass(host, aname, apass)
-         char *host, **aname, **apass;
-@@ -2592,6 +2593,8 @@
- /*** NOTE MAXPASSWD IS DEFINED AS 8 IN ALL STANDARD UNIX SYSTEMS, BUT THIS
-  *** GIVES US PROBLEMS INTERWORKING WITH VMS AND CRAY-SECURID SYSTEMS. ***/
- #define MAXPASSWD     20       /* max significant characters in password */
-+
-+static void (*sig)(), catch();
-  
- char *
- getpass(prompt)
-@@ -2608,7 +2611,6 @@
-         register int c;
-         FILE    *fi;
-         static char pbuf[ MAXPASSWD + 1 ];
--        void    (*sig)(), catch();
-  
-         if((fi = fopen("/dev/tty", "r")) == NULL)
-                 return((char*)NULL);
 diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_motif/iconwidget.c /tmp/dpep.f5SU0N/cernlib-2005.05.09/src/packlib/kuip/code_motif/iconwidget.c
 --- cernlib-2005.05.09/src/packlib/kuip/code_motif/iconwidget.c	1996-03-08 10:33:10.000000000 -0500
 +++ /tmp/dpep.f5SU0N/cernlib-2005.05.09/src/packlib/kuip/code_motif/iconwidget.c	2005-06-14 12:33:43.511482468 -0400
-@@ -31,7 +31,7 @@
- /* _Xm routine definitions  */
+@@ -35,7 +35,7 @@
  void    _XmHighlightBorder ();
  void   _XmUnhighlightBorder ();
+ #ifndef __APPLE__
 -void   _XmDrawShadow ();
 +/* void   _XmDrawShadow (); */
+ #endif
  
  /* Motif1.1 ( except apollo, hpux has _XmPrimitive... with two args only
-  * Gunter 30-jan-95


Index: cernlib-321-support-gfortran.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-321-support-gfortran.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-321-support-gfortran.dpatch	11 Sep 2006 22:32:35 -0000	1.1
+++ cernlib-321-support-gfortran.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -3,57 +3,11 @@
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Support compilation with gfortran.  Patch thanks to Harald Vogt
-## DP: (except for changes to src/config/linux.cf).
 
 @DPATCH@
-diff -urNad cernlib-2005.dfsg~/src/config/linux.cf cernlib-2005.dfsg/src/config/linux.cf
---- cernlib-2005.dfsg~/src/config/linux.cf	2006-09-07 15:06:06.891836867 -0400
-+++ cernlib-2005.dfsg/src/config/linux.cf	2006-09-07 15:06:08.249547206 -0400
-@@ -478,7 +478,7 @@
-     variable=value							@@\
- endif									@@\
- 
--# else    /* g77 */
-+# else    /* g77 or gfortran */
- 
- /* Start CERNLIB changes A.Waananen 15. Apr. 1996 */
- /*  Adapted to CERN style GF. 20-Sep-96 */
-@@ -498,17 +498,32 @@
- #endif
- 
- #define f2cFortran	        YES
-+#ifdef HasGFortran
-+#define FortranCmd		gfortran -g
-+#define gFortran		YES
-+#define CERNLIB_GFORTRAN
-+#else
- #define FortranCmd		g77 -g
-+#endif
- #define XargsCmd		xargs
- #define FortranSaveFlags	/* */ /* Everything static !? */
- #define OptimisedFortranFlags	OptimizedCDebugFlags -funroll-loops
- /* Remove -fomit-frame-pointer since -O implies it and it inhibits debugging */
-+
-+#ifdef HasGFortran
-+#ifndef DefaultFCOptions
-+# define DefaultFCOptions	-fno-automatic -fno-second-underscore
-+#endif
-+#define CernlibSystem	        CernlibDefaultDefines CernlibMachineDefines \
-+				CernlibLocalDefines -DCERNLIB_GFORTRAN
-+#else
- #ifndef DefaultFCOptions
- # define DefaultFCOptions	-fno-automatic -fno-second-underscore \
- 				-fugly-complex
- #endif
- #define CernlibSystem	        CernlibDefaultDefines CernlibMachineDefines \
- 				CernlibLocalDefines
-+#endif
- 
- # endif
- # endif
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/c/rteq464.F cernlib-2005.dfsg/src/mathlib/gen/c/rteq464.F
---- cernlib-2005.dfsg~/src/mathlib/gen/c/rteq464.F	1996-04-01 10:01:53.000000000 -0500
-+++ cernlib-2005.dfsg/src/mathlib/gen/c/rteq464.F	2006-09-07 15:06:08.249547206 -0400
+diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/c/rteq464.F cernlib-2006.dfsg.2/src/mathlib/gen/c/rteq464.F
+--- cernlib-2006.dfsg.2~/src/mathlib/gen/c/rteq464.F	1996-04-01 10:01:53.000000000 -0500
++++ cernlib-2006.dfsg.2/src/mathlib/gen/c/rteq464.F	2007-04-21 19:45:12.000000000 -0400
 @@ -45,7 +45,16 @@
           MT=3
           Z(1)=SQRT(SQRT(-D))
@@ -93,50 +47,9 @@
        ENDIF
        W3=0
        IF(W1*W2 .NE. 0) W3=-Q/(8*W1*W2)
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/c/wpsipg.F cernlib-2005.dfsg/src/mathlib/gen/c/wpsipg.F
---- cernlib-2005.dfsg~/src/mathlib/gen/c/wpsipg.F	1996-04-01 10:02:01.000000000 -0500
-+++ cernlib-2005.dfsg/src/mathlib/gen/c/wpsipg.F	2006-09-07 15:06:08.250546993 -0400
-@@ -62,7 +62,11 @@
-        H=0                                                                      
-        WRITE(ERRTXT,101) K                                                      
-        CALL MTLPRT(NAME,'C317.1',ERRTXT)                                        
--      ELSEIF(ABS(IMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)           
-+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
-+      ELSEIF(ABS(AIMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)
-+#else
-+      ELSEIF(ABS(IMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)
-+#endif
-      1                                                        THEN              
-        H=0                                                                      
-        WRITE(ERRTXT,102) X                                                      
-@@ -88,7 +92,11 @@
-        IF(X .LT. 0) THEN                                                        
-         V=PI*U                                                                  
-         X=V                                                                     
--        Y=IMAG(V)                                                               
-+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
-+        Y=AIMAG(V)
-+#else
-+        Y=IMAG(V)
-+#endif
-         A=SIN(X)                                                                
-         B=COS(X)                                                                
-         T=TANH(Y)                                                               
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/d/cfstft.F cernlib-2005.dfsg/src/mathlib/gen/d/cfstft.F
---- cernlib-2005.dfsg~/src/mathlib/gen/d/cfstft.F	1997-12-15 11:18:42.000000000 -0500
-+++ cernlib-2005.dfsg/src/mathlib/gen/d/cfstft.F	2006-09-07 15:06:08.250546993 -0400
-@@ -43,7 +43,7 @@
-       W=CMPLX(C,S)
-       U=W
-       C=SQRT(0.5*C+0.5)
--#if defined(CERNLIB_QFPGF77)
-+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
-       S=AIMAG(W)/(C+C)
- #else
-       S=IMAG(W)/(C+C)
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/v/nranf.F cernlib-2005.dfsg/src/mathlib/gen/v/nranf.F
---- cernlib-2005.dfsg~/src/mathlib/gen/v/nranf.F	1996-04-01 10:02:54.000000000 -0500
-+++ cernlib-2005.dfsg/src/mathlib/gen/v/nranf.F	2006-09-07 15:06:08.250546993 -0400
+diff -urNad cernlib-2006.dfsg.2~/src/mathlib/gen/v/nranf.F cernlib-2006.dfsg.2/src/mathlib/gen/v/nranf.F
+--- cernlib-2006.dfsg.2~/src/mathlib/gen/v/nranf.F	1996-04-01 10:02:54.000000000 -0500
++++ cernlib-2006.dfsg.2/src/mathlib/gen/v/nranf.F	2007-04-21 19:45:12.000000000 -0400
 @@ -14,10 +14,12 @@
        VECTOR(I) = RNDM(I)
    100 CONTINUE
@@ -152,27 +65,9 @@
        CALL RDMOUT(V)
        RETURN
        END
-diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/v/v107z0.inc cernlib-2005.dfsg/src/mathlib/gen/v/v107z0.inc
---- cernlib-2005.dfsg~/src/mathlib/gen/v/v107z0.inc	2000-06-08 05:57:22.000000000 -0400
-+++ cernlib-2005.dfsg/src/mathlib/gen/v/v107z0.inc	2006-09-07 15:06:08.250546993 -0400
-@@ -16,9 +16,13 @@
- * v107z0.inc
- *
- 
--#if defined(CERNLIB_LNX)||defined(CERNLIB_ALLIANT)||defined(CERNLIB_DECS)||defined(CERNLIB_MACMPW)||defined(CERNLIB_SGI)
-+#if (defined(CERNLIB_LNX)||defined(CERNLIB_ALLIANT)||defined(CERNLIB_DECS)||defined(CERNLIB_MACMPW)||defined(CERNLIB_SGI))&&!defined(CERNLIB_GFORTRAN)
-       DATA IZ0/'33000000'X/
- 
-+#elif defined(CERNLIB_GFORTRAN)
-+*     this is the new Fortran 2003 ISO standard
-+      DATA IZ0/Z'33000000'/
-+
- #elif defined(CERNLIB_APOLLO)
-       DATA IZ0/16#33000000/
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/hbook/chbook/Imakefile cernlib-2005.dfsg/src/packlib/hbook/chbook/Imakefile
---- cernlib-2005.dfsg~/src/packlib/hbook/chbook/Imakefile	1999-11-15 08:25:58.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/hbook/chbook/Imakefile	2006-09-07 15:06:08.250546993 -0400
+diff -urNad cernlib-2006.dfsg.2~/src/packlib/hbook/chbook/Imakefile cernlib-2006.dfsg.2/src/packlib/hbook/chbook/Imakefile
+--- cernlib-2006.dfsg.2~/src/packlib/hbook/chbook/Imakefile	1999-11-15 08:25:58.000000000 -0500
++++ cernlib-2006.dfsg.2/src/packlib/hbook/chbook/Imakefile	2007-04-21 19:45:12.000000000 -0400
 @@ -13,7 +13,19 @@
  #endif
  
@@ -193,77 +88,24 @@
 +#endif
  
  SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/kerngen/klnx.h cernlib-2005.dfsg/src/packlib/kernlib/kerngen/kerngen/klnx.h
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/kerngen/klnx.h	1998-09-25 05:31:11.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/kerngen/klnx.h	2006-09-07 15:13:01.777308060 -0400
-@@ -8,15 +8,16 @@
- *       Hollerith storage not orthodox
- *              UCOPY et al. to copy integers
- #endif
--#ifndef CERNLIB_QMLNX
--#define CERNLIB_QMLNX
--#endif
- #ifndef CERNLIB_QPOSIX
- #define CERNLIB_QPOSIX
- #endif
- #ifndef CERNLIB_QIEEE
- #define CERNLIB_QIEEE
- #endif
-+#if (!defined(CERNLIB_GFORTRAN))
-+# ifndef CERNLIB_QMLNX
-+#  define CERNLIB_QMLNX
-+# endif
- #if (!defined(CERNLIB_PPC))
- #  ifdef CERNLIB_QISASTD
- #    undef CERNLIB_QISASTD
-@@ -32,6 +33,21 @@
- #    define CERNLIB_QORTHOLL
- #  endif
- #endif
-+#else
-+#if 0
-+*      gfortran follows
-+#endif
-+# ifdef CERNLIB_QMLNX
-+#  undef CERNLIB_QMLNX
-+# endif
-+# ifndef CERNLIB_QISASTD
-+#  define CERNLIB_QISASTD
-+# endif
-+# ifdef CERNLIB_QORTHOLL
-+#  undef CERNLIB_QORTHOLL
-+# endif
-+#endif
-+
- #ifndef CERNLIB_QINTCOPY
- #define CERNLIB_QINTCOPY
- #endif
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/Imakefile cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/Imakefile
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/Imakefile	1997-02-04 12:36:14.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/Imakefile	2006-09-07 15:06:08.251546780 -0400
-@@ -52,7 +52,7 @@
- #if defined(CERNLIB_DOS) || defined(CERNLIB_MPW) || defined(CERNLIB_LNX) || defined(CERNLIB_WINNT)
- SRCS_F := $(SRCS_F) lenocc.F 
- #endif
--#ifdef CERNLIB_HPUX
-+#if defined(CERNLIB_HPUX) || defined(CERNLIB_GFORTRAN)
- SRCS_F := $(SRCS_F) getarg.F
- #endif
+diff -urNad cernlib-2006.dfsg.2~/src/packlib/kernlib/kerngen/unix/gfortgs/Imakefile cernlib-2006.dfsg.2/src/packlib/kernlib/kerngen/unix/gfortgs/Imakefile
+--- cernlib-2006.dfsg.2~/src/packlib/kernlib/kerngen/unix/gfortgs/Imakefile	2006-09-04 08:32:59.000000000 -0400
++++ cernlib-2006.dfsg.2/src/packlib/kernlib/kerngen/unix/gfortgs/Imakefile	2007-04-21 19:45:41.000000000 -0400
+@@ -1,6 +1,6 @@
  
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/getarg.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/getarg.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/getarg.F	1996-02-15 12:49:40.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/getarg.F	2006-09-07 15:06:08.251546780 -0400
-@@ -11,4 +11,6 @@
- #include "hpxgs/getarg.F"
- #elif defined(CERNLIB_QMVAX)
- #include "vaxsys/getarg.F"
-+#elif defined(CERNLIB_GFORTRAN)
-+#include "lnxgfort/getarg.F"
- #endif
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F	1969-12-31 19:00:00.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F	2006-09-07 15:06:08.251546780 -0400
-@@ -0,0 +1,17 @@
+-SRCS_F= irndm.F qnext.F rdmin.F
++SRCS_F= irndm.F qnext.F rdmin.F getarg.F
+ 
+-SRCS_C= lshift.c ishftr.c getarg.c
++SRCS_C= lshift.c ishftr.c /* getarg.c */
+ 
+ SubdirLibraryTarget(NullParameter,NullParameter)
+diff -urNad cernlib-2006.dfsg.2~/src/packlib/kernlib/kerngen/unix/gfortgs/getarg.F cernlib-2006.dfsg.2/src/packlib/kernlib/kerngen/unix/gfortgs/getarg.F
+--- cernlib-2006.dfsg.2~/src/packlib/kernlib/kerngen/unix/gfortgs/getarg.F	1969-12-31 19:00:00.000000000 -0500
++++ cernlib-2006.dfsg.2/src/packlib/kernlib/kerngen/unix/gfortgs/getarg.F	2007-04-21 19:48:39.000000000 -0400
+@@ -0,0 +1,19 @@
++*     Wrapper GETARG routine for gfortran,
++*     originally written by Harald Vogt <hvogt at ifh.de>
 +*
 +      SUBROUTINE GETARG (JARG, CHARG)
 +*     The following stuff is required to use gfortrans inline routine GETARG
@@ -280,277 +122,4 @@
 +*     therefore it will not clash in the linking step
 +      CALL GETARG (JARG, CHARG)
 +      END
-+
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/iucomh.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/iucomh.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/iucomh.F	1997-02-04 12:36:24.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/iucomh.F	2006-09-07 15:06:08.251546780 -0400
-@@ -17,7 +17,7 @@
- #include "wntgs/iucomh.F"
- #elif defined(CERNLIB_QMDOS)
- #include "dosgs/iucomh.F"
--#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
-+#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN)
- #include "allgs/iucomh.F"
- #elif defined(CERNLIB_QMLNX)
- #include "lnxgs/iucomh.F"
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/rndm.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/rndm.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/rndm.F	1997-10-23 12:37:04.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/rndm.F	2006-09-07 15:06:08.252546566 -0400
-@@ -24,7 +24,7 @@
- #include "mpwgs/rndm.F"
- #elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
- #include "allgs/rndm.F"
--#elif defined(CERNLIB_QMLNX)
-+#elif defined(CERNLIB_QMLNX)||defined(CERNLIB_GFORTRAN)
- #include "lnxgs/rndm.F"
- #elif defined(CERNLIB_QMIRTD)
- #include "irtdgs/rndm.F"
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ublow.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ublow.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ublow.F	1998-09-25 05:32:02.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ublow.F	2006-09-07 15:06:08.252546566 -0400
-@@ -25,7 +25,7 @@
- #include "dosgs/ublow.F"
- #elif defined(CERNLIB_QMMPW)
- #include "mpwgs/ublow.F"
--#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
-+#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN)
- #include "allgs/ublow.F"
- #elif (defined(CERNLIB_QMLNX) && !defined(CERNLIB_PPC))
- #include "lnxgs/ublow.F"
-diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ubunch.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ubunch.F
---- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ubunch.F	1998-09-25 05:32:06.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ubunch.F	2006-09-07 15:06:08.252546566 -0400
-@@ -23,7 +23,7 @@
- #include "wntgs/ubunch.F"
- #elif defined(CERNLIB_QMDOS) || defined(CERNLIB_WINNT)
- #include "dosgs/ubunch.F"
--#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
-+#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN)
- #include "allgs/ubunch.F"
- #elif (defined(CERNLIB_QMLNX) && !defined(CERNLIB_PPC))
- #include "lnxgs/ubunch.F"
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/fq/fzdaeof.inc cernlib-2005.dfsg/src/packlib/zebra/fq/fzdaeof.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/fq/fzdaeof.inc	1996-03-06 05:47:08.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/zebra/fq/fzdaeof.inc	2006-09-07 15:06:08.252546566 -0400
-@@ -30,7 +30,7 @@
- ***   PARAMETER    (IOSEOF = 10)     !*  for xlf 2.2
- ***   PARAMETER    (IOSEOF = 122)    !*  for xlf 2.3
-       PARAMETER    (IOSEOF = 1)      !*  for xlf 3.2
--#elif defined(CERNLIB_QMLNX)
-+#elif defined(CERNLIB_QMLNX)&&!defined(CERNLIB_GFORTRAN)
-       PARAMETER    (IOSEOF = 36)
- #elif defined(CERNLIB_QMOS9)
-       PARAMETER    (IOSEOF = 326)
-@@ -43,6 +43,8 @@
- #elif defined(CERNLIB_WINDOWS)
- *    only valid for dec fortran (e.g. not f2c + microsoft c)
-       PARAMETER    (IOSEOF = 36)
-+#elif defined(CERNLIB_GFORTRAN)
-+      PARAMETER    (IOSEOF = 3)
- #elif 1
-       PARAMETER    (IOSEOF = -1)
- #endif
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_and.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_and.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_and.inc	1996-04-18 12:15:05.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_and.inc	2006-09-07 15:06:08.252546566 -0400
-@@ -24,7 +24,7 @@
- #elif defined(CERNLIB_QMIBMSI)
-       IAND (IZV,IZW) = LAND (IZV, IZW)
- 
--#elif defined(CERNLIB_LNX)
-+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
-       IAND(IZV,IZW)  = AND(IZV,IZW)
- 
- #elif defined(CERNLIB_SUN)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_andor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_andor.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_andor.inc	1996-03-06 05:46:52.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_andor.inc	2006-09-07 15:06:08.253546353 -0400
-@@ -36,7 +36,7 @@
-       IEOR (IZV,IZW) = LXOR (IZV, IZW)
-       NOT (IZW)      = LCOMPL (IZW)
- 
--#elif defined(CERNLIB_LNX)
-+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
-       IAND(IZV,IZW)  = AND(IZV,IZW)
-        IOR(IZV,IZW)  =  OR(IZV,IZW)
-       IEOR(IZV,IZW)  = XOR(IZV,IZW)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbit.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbit.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbit.inc	1996-04-18 12:15:06.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbit.inc	2006-09-07 15:06:08.253546353 -0400
-@@ -47,7 +47,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       JBIT (IZW,IZP)    = SHFTR (SHFTL(IZW,32-IZP), 31)
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       JBIT(IZW,IZP)     = AND(ISHFTR(IZW,IZP-1),1)
- 
- #elif defined(CERNLIB_OS9)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbyt.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbyt.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbyt.inc	1996-04-18 12:15:07.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbyt.inc	2006-09-07 15:06:08.253546353 -0400
-@@ -45,7 +45,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       JBYT (IZW,IZP,NZB)= SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB)
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       JBYT(IZW,IZP,NZB) = ISHFTR(LSHIFT(IZW,33-IZP-NZB),32-NZB)
- 
- #elif defined(CERNLIB_OS9)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytet.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytet.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytet.inc	1996-04-18 12:15:07.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytet.inc	2006-09-07 15:06:08.253546353 -0400
-@@ -52,7 +52,7 @@
-       JBYTET (MZ,IZW,IZP,NZB) = LAND (MZ,
-      +                        SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       JBYTET (MZ,IZW,IZP,NZB) = AND (MZ,
-      +                        ISHFTR (LSHIFT(IZW,33-IZP-NZB),32-NZB) )
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytor.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytor.inc	1996-04-18 12:15:10.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytor.inc	2006-09-07 15:06:08.253546353 -0400
-@@ -50,7 +50,7 @@
-       JBYTOR (MZ,IZW,IZP,NZB) = LOR  (MZ,
-      +                        SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       JBYTOR (MZ,IZW,IZP,NZB) = OR  (MZ,
-      +                        ISHFTR (LSHIFT(IZW,33-IZP-NZB),32-NZB) )
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytet.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytet.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytet.inc	1996-04-18 12:15:11.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytet.inc	2006-09-07 15:06:08.254546140 -0400
-@@ -51,7 +51,7 @@
-       MBYTET (MZ,IZW,IZP,NZB) = LAND (IZW, LCOMPL(SHFTR (
-      +                       SHFTL(LCOMPL(MZ),32-NZB), 33-IZP-NZB)) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MBYTET (MZ,IZW,IZP,NZB) = AND (IZW,
-      +           NOT(ISHFTR (LSHIFT(NOT(MZ),32-NZB),33-IZP-NZB)) )
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytor.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytor.inc	1996-04-18 12:15:12.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytor.inc	2006-09-07 15:06:08.254546140 -0400
-@@ -51,7 +51,7 @@
-       MBYTOR (MZ,IZW,IZP,NZB) = LOR (IZW, SHFTR (
-      +                               SHFTL(MZ,32-NZB), 33-IZP-NZB) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MBYTOR (MZ,IZW,IZP,NZB) = OR (IZW,
-      +       ISHFTR (LSHIFT(MZ,32-NZB),33-IZP-NZB))
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_or.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_or.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_or.inc	1996-04-18 12:15:13.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_or.inc	2006-09-07 15:06:08.254546140 -0400
-@@ -24,7 +24,7 @@
- #elif defined(CERNLIB_QMIBMSI)
-       IOR  (IZV,IZW) =  LOR (IZV, IZW)
- 
--#elif defined(CERNLIB_LNX)
-+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
-        IOR(IZV,IZW)  =  OR(IZV,IZW)
- 
- #elif defined(CERNLIB_SUN)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit.inc	1996-04-18 12:15:23.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit.inc	2006-09-07 15:06:08.254546140 -0400
-@@ -46,7 +46,7 @@
-       MSBIT (MZ,IZW,IZP) = LOR (LAND (IZW, LCOMPL(SHFTL(1,IZP-1)) )
-      +                                 , SHFTL(LAND(MZ,1),IZP-1) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MSBIT (MZ,IZW,IZP) = OR (AND (IZW, NOT(LSHIFT(1,IZP-1)))
-      +                              ,LSHIFT(AND(MZ,1),IZP-1))
- 
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit0.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit0.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit0.inc	1996-04-18 12:15:24.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit0.inc	2006-09-07 15:06:08.254546140 -0400
-@@ -41,7 +41,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       MSBIT0 (IZW,IZP)   = LAND (IZW, LCOMPL(SHFTL(1,IZP-1)) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MSBIT0 (IZW,IZP)   = AND (IZW, NOT(LSHIFT(1,IZP-1)))
- 
- #elif defined(CERNLIB_PDP)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit1.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit1.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit1.inc	1996-04-18 12:15:24.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit1.inc	2006-09-07 15:06:08.255545926 -0400
-@@ -40,7 +40,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       MSBIT1 (IZW,IZP)   = LOR  (IZW,        SHFTL(1,IZP-1)  )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MSBIT1 (IZW,IZP)   = OR  (IZW,     LSHIFT(1,IZP-1))
- 
- #elif defined(CERNLIB_PDP)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbyt.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbyt.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbyt.inc	1996-03-06 05:46:52.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbyt.inc	2006-09-07 15:06:08.255545926 -0400
-@@ -43,7 +43,7 @@
-      +            LAND (IZW, LCOMPL(SHFTL (SHFTR(-1,32-NZB), IZP-1)))
-      +          , SHFTR (SHFTL(MZ,32-NZB), 33-IZP-NZB) )
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       MSBYT (MZ,IZW,IZP,NZB) = OR (
-      +       AND (IZW, NOT(LSHIFT (ISHFTR(NOT(0),32-NZB),IZP-1)))
-      +      ,ISHFTR (LSHIFT(MZ,32-NZB), 33-IZP-NZB) )
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shift.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shift.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shift.inc	1996-03-06 05:46:52.000000000 -0500
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shift.inc	2006-09-07 15:06:08.255545926 -0400
-@@ -36,7 +36,7 @@
-       ISHFTL (IZW,NZB) = SHFTL (IZW, NZB)
-       ISHFTR (IZW,NZB) = SHFTR (IZW, NZB)
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       ISHFTL (IZW,NZB) = LSHIFT (IZW,NZB)
- 
- #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftl.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftl.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftl.inc	1996-04-18 12:15:25.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftl.inc	2006-09-07 15:06:08.255545926 -0400
-@@ -28,7 +28,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       ISHFTL (IZW,NZB) = SHFTL (IZW, NZB)
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
-       ISHFTL (IZW,NZB) = LSHIFT (IZW,NZB)
- 
- #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftr.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftr.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftr.inc	1996-04-18 12:15:25.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftr.inc	2006-09-07 15:06:08.255545926 -0400
-@@ -32,7 +32,7 @@
- #elif defined(CERNLIB_QF_SIEM)
-       ISHFTR (IZW,NZB) = SHFTR (IZW, NZB)
- 
--#elif defined(CERNLIB_LINUX)
-+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
- 
- #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
-       ISHFTR (IZW,NZB) = lrshft (IZW, NZB)
-diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_xor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_xor.inc
---- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_xor.inc	1996-04-18 12:15:26.000000000 -0400
-+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_xor.inc	2006-09-07 15:06:08.256545713 -0400
-@@ -24,7 +24,7 @@
- #elif defined(CERNLIB_QMIBMSI)
-       IEOR (IZV,IZW) = LXOR (IZV, IZW)
- 
--#elif defined(CERNLIB_LNX)
-+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
-       IEOR(IZV,IZW)  = XOR(IZV,IZW)
- 
- #elif defined(CERNLIB_SUN)
++ 


Index: cernlib-800-implement-shared-library-rules-in-Imake.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-800-implement-shared-library-rules-in-Imake.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-800-implement-shared-library-rules-in-Imake.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-800-implement-shared-library-rules-in-Imake.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -5,9 +5,9 @@
 ## DP: Implement macros for shared libraries on Linux in the Imake cfg files.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/Imake.rules cernlib-2005.05.09.dfsg/src/config/Imake.rules
---- cernlib-2005.05.09.dfsg~/src/config/Imake.rules	2006-01-02 10:42:00.576902424 -0500
-+++ cernlib-2005.05.09.dfsg/src/config/Imake.rules	2006-01-02 10:42:08.484202137 -0500
+diff -urNad cernlib-2006.dfsg.2~/src/config/Imake.rules cernlib-2006.dfsg.2/src/config/Imake.rules
+--- cernlib-2006.dfsg.2~/src/config/Imake.rules	2007-04-25 23:32:50.000000000 -0400
++++ cernlib-2006.dfsg.2/src/config/Imake.rules	2007-04-25 23:32:52.000000000 -0400
 @@ -904,6 +904,8 @@
   * InstallSharedLibrary - generate rules to install the indicated sharable 
   * Library
@@ -56,9 +56,9 @@
  ifneq (locallib,)							@@\
  override PACKAGE_LIB:= LibraryTargetName(locallib) $(PACKAGE_LIB)	@@\
  									@@\
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/biglib.rules cernlib-2005.05.09.dfsg/src/config/biglib.rules
---- cernlib-2005.05.09.dfsg~/src/config/biglib.rules	2000-04-19 06:51:01.000000000 -0400
-+++ cernlib-2005.05.09.dfsg/src/config/biglib.rules	2006-01-02 10:42:08.485201922 -0500
+diff -urNad cernlib-2006.dfsg.2~/src/config/biglib.rules cernlib-2006.dfsg.2/src/config/biglib.rules
+--- cernlib-2006.dfsg.2~/src/config/biglib.rules	2000-04-19 06:51:01.000000000 -0400
++++ cernlib-2006.dfsg.2/src/config/biglib.rules	2007-04-25 23:33:16.000000000 -0400
 @@ -227,7 +227,7 @@
  	RanLibrary($@)
  #endif
@@ -77,7 +77,7 @@
  
  #ifndef SharedLibraryTargetName
  #define SharedLibraryTargetName(name)Concat(lib,name.so)
-@@ -281,6 +281,41 @@
+@@ -281,6 +281,45 @@
  	@date
  #endif
  
@@ -87,13 +87,17 @@
 +#define SharedLibraryTargetName(name)Concat(lib,name.so.$(LIB_SONAME).$(CERN_LEVEL))
 +#endif
 +
++#ifndef SharedLibrarySonameName
++#define SharedLibrarySonameName(name)Concat(lib,name.so.$(LIB_SONAME)$(TOOL_SONAME))
++#endif
++
 +#ifndef SharedLibraryBuild
 +#define SharedLibraryBuild(libname,version)				@@\
 +SharedLibraryTargetName(libname): version/objects.list			@@\
 +	@echo rebuild version library $@ in $(CURRENT_DIR)		@@\
 +	@$(RM) $@							@@\
 +	@date								@@\
-+	@$(FCLINK) -shared -Wl,-soname=Concat(lib,libname.so.$(LIB_SONAME))\ @@\
++	@$(FCLINK) -shared -Wl,-soname=SharedLibrarySonameName(libname)\ @@\
 +		-o $@ `cat version/objects.list` `cernlib -v "" -dy libname\ @@\
 +		| sed s/Concat(-l,libname)//g`				@@\
 +	@date
@@ -119,9 +123,9 @@
  #elif 1 
  #ifndef SharedLibraryBuild
  #define SharedLibraryBuild(libname,version)				@@\
-diff -urNad cernlib-2005.05.09.dfsg~/src/config/lnxLib.rules cernlib-2005.05.09.dfsg/src/config/lnxLib.rules
---- cernlib-2005.05.09.dfsg~/src/config/lnxLib.rules	1995-12-20 10:26:45.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/config/lnxLib.rules	2006-01-02 10:42:08.485201922 -0500
+diff -urNad cernlib-2006.dfsg.2~/src/config/lnxLib.rules cernlib-2006.dfsg.2/src/config/lnxLib.rules
+--- cernlib-2006.dfsg.2~/src/config/lnxLib.rules	1995-12-20 10:26:45.000000000 -0500
++++ cernlib-2006.dfsg.2/src/config/lnxLib.rules	2007-04-25 23:33:16.000000000 -0400
 @@ -43,6 +43,9 @@
  #ifndef PositionIndependentCplusplusFlags
  #define PositionIndependentCplusplusFlags -fPIC
@@ -145,12 +149,14 @@
 +$(DESTDIR)dest/SharedLibraryTargetName(libname): SharedLibraryTargetName(libname) @@\
  	MakeDir($(DESTDIR)dest)						@@\
 -	$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\
-+	$(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\
- 	(T=`echo Concat($(DESTDIR)dest/lib,libname.so.rev) | sed 's/\.[^\.]*$$//'`;\
- 		$(RM) $$T && $(LN) Concat(lib,libname.so.rev) $$T)	@@\
+-	(T=`echo Concat($(DESTDIR)dest/lib,libname.so.rev) | sed 's/\.[^\.]*$$//'`;\
+-		$(RM) $$T && $(LN) Concat(lib,libname.so.rev) $$T)	@@\
++	$(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) SharedLibraryTargetName(libname) $(DESTDIR)dest @@\
++	$(RM) SharedLibrarySonameName(libname) \
++		&& $(LN) SharedLibraryTargetName(libname) $(DESTDIR)dest/SharedLibrarySonameName(libname)	@@\
  	$(RM) Concat($(DESTDIR)dest/lib,libname.so)			@@\
 -	$(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so)
-+	$(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so) @@\
++	$(LN) SharedLibraryTargetName(libname) Concat($(DESTDIR)dest/lib,libname.so) @@\
 +	$(RM) $<                                                        @@\
 +	$(LN) $@ $<
  #endif /* InstallSharedLibrary */


Index: cernlib-803-link-binaries-dynamically.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-803-link-binaries-dynamically.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-803-link-binaries-dynamically.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-803-link-binaries-dynamically.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -47,12 +47,12 @@
 diff -urNad cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile
 --- cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile	2005-06-13 15:26:18.903636773 -0400
 +++ /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile	2005-06-13 15:26:23.699609849 -0400
-@@ -13,17 +13,17 @@
+@@ -13,14 +13,14 @@
  DefinePackageLibrary(kxtlib)
  
  #if defined(CERNLIB_UNIX)
 -CLIBS= -G Motif kernlib
-+CLIBS= -G Motif Xm
++CLIBS= -G Motif -u Xm
  # if defined(CERNLIB_INTELIFC)
  CLIBS= $(CLIBS) -nofor_main
  # endif
@@ -64,7 +64,3 @@
  #endif
  
  
--CernlibCcProgramTarget(kxterm,kxterm.o,libkxtlib.a,libkxtlib.a,$(CLIBS))
-+CernlibFortranProgramTarget(kxterm,kxterm.o,libkxtlib.a,libkxtlib.a,$(CLIBS))
- 
- InstallProgram(kxterm,$(CERN_BINDIR))


Index: cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-805-expunge-missing-mathlib-kernlib-symbols.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -6,19 +6,6 @@
 ## DP: dummy symbols where needed.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/kernlib/kerngen/ccgen/Imakefile cernlib-2005.05.09.dfsg/src/kernlib/kerngen/ccgen/Imakefile
---- cernlib-2005.05.09.dfsg~/src/kernlib/kerngen/ccgen/Imakefile	2006-05-16 10:42:32.138587850 -0400
-+++ cernlib-2005.05.09.dfsg/src/kernlib/kerngen/ccgen/Imakefile	2006-05-16 10:42:40.475808665 -0400
-@@ -1,6 +1,8 @@
- #ifndef CERNLIB_VAXVMS
- 
--SRCS_F= accessf.F chdirf.F getenvf.F getwdf.F lstatf.F perrorf.F \ @@\
-+/* perrorf.F has been removed since it depends upon files which introduce
-+   unreferenced dependencies into the shared libraries.  --Kevin McCarty */
-+SRCS_F= accessf.F chdirf.F getenvf.F getwdf.F lstatf.F           \ @@\
- 	readlnf.F renamef.F setenvf.F statf.F systemf.F tmpro.F \ @@\
- 	tmproi.F toslat.F unlinkf.F
- 
 diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/d/Imakefile cernlib-2005.05.09.dfsg/src/mathlib/gen/d/Imakefile
 --- cernlib-2005.05.09.dfsg~/src/mathlib/gen/d/Imakefile	2006-05-16 10:42:32.921420791 -0400
 +++ cernlib-2005.05.09.dfsg/src/mathlib/gen/d/Imakefile	2006-05-16 10:46:11.446026937 -0400


Index: cernlib-deadpool.txt
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-deadpool.txt,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- cernlib-deadpool.txt	30 Nov 2005 22:01:01 -0000	1.2
+++ cernlib-deadpool.txt	19 Dec 2007 23:27:43 -0000	1.3
@@ -7,6 +7,7 @@
 # Authors of Pythia/Jetset did NOT give permission to release
 # their code under GPL.  CERN should have checked this more carefully!!!
 car/jetset74.car
+cmz/jetset74.cmz
 mclibs/jetset/
 mclibs/pythia/
 
@@ -20,8 +21,8 @@
 # the web site http://www.fluka.org/Faq.html
 car/geanf.car
 car/geanf321.car
-#cmz/geanf.cmz
-#cmz/geanf321.cmz
+cmz/geanf.cmz
+cmz/geanf321.cmz
 geant321/data/flukaaf.dat
 geant321/block/
 geant321/fiface/

cernlib-enforce-FHS.diff:

Index: cernlib-enforce-FHS.diff
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-enforce-FHS.diff,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-enforce-FHS.diff	30 Nov 2005 22:01:01 -0000	1.1
+++ cernlib-enforce-FHS.diff	19 Dec 2007 23:27:43 -0000	1.2
@@ -10,39 +10,3 @@
           INQUIRE(FILE=XSFILE,EXIST=EXISTS)
           IF(.NOT.EXISTS) THEN
              CHROOT=' '
-diff -ur ../original-cernlib-source/src/mclibs/cojets/test/test.F src/mclibs/cojets/test/test.F
---- ../original-cernlib-source/src/mclibs/cojets/test/test.F    Mon Mar 25 07:53:36 1996
-+++ src/mclibs/cojets/test/test.F    Tue Oct 22 07:27:55 2002
-@@ -6,7 +6,7 @@
- #if defined(CERNLIB_IBMVM)
-       PARAMETER (DFILE='/COJETS DATA *')
- #else
--      PARAMETER (DFILE='cojets.dat')
-+      PARAMETER (DFILE='DATADIR/cojets.dat')
- #endif
- C
- C          MAIN PROGRAM FOR COJETS
-diff -ur ../original-cernlib-source/src/mclibs/eurodec/eurodec/eufiles.inc src/mclibs/eurodec/eurodec/eufiles.inc
---- ../original-cernlib-source/src/mclibs/eurodec/eurodec/eufiles.inc   Fri Mar  8 11:58:49 1996
-+++ src/mclibs/eurodec/eurodec/eufiles.inc   Tue Oct 22 07:27:55 2002
-@@ -18,7 +18,7 @@
-       PARAMETER (ETFILE='/EUTITLE DAT   *')
- #endif
-       CHARACTER*(*) EDFILE,ETFILE
--      PARAMETER (EDFILE='eurodec.dat')
-+      PARAMETER (EDFILE='DATADIR/eurodec.dat')
-       PARAMETER (ETFILE='eutitle.dat')
-
- #endif
-diff -ur ../original-cernlib-source/src/mclibs/isajet/test/isajett.F src/mclibs/isajet/test/isajett.F
---- ../original-cernlib-source/src/mclibs/isajet/test/isajett.F Fri Mar 14 12:32:39 1997
-+++ src/mclibs/isajet/test/isajett.F Tue Oct 22 07:27:55 2002
-@@ -8,7 +8,7 @@
- #if defined(CERNLIB_VAXVMS)
-       PARAMETER (DFILE='CERN_ROOT:[lib]isajet.dat')
- #else
--      PARAMETER (DFILE='isajet.dat')
-+      PARAMETER (DFILE='DATADIR/isajet.dat')
- #endif
- #endif
- C


Index: cernlib-remove-deadpool
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib-remove-deadpool,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-remove-deadpool	16 Nov 2005 23:34:07 -0000	1.1
+++ cernlib-remove-deadpool	19 Dec 2007 23:27:43 -0000	1.2
@@ -1,26 +1,28 @@
-#!/bin/bash
+#!/bin/sh
 
 set -e
 cd .
 
+file=2006_src.tar.gz
+result=2006_src-free.tar.gz
+echo Unpacking compressed source from $file...
+tar xzf $file
 for dir in `tr '/' ' ' < ./cernlib-deadpool.txt | awk '{print $1}' \
 	| sed -e 's/#.*//g' -e '/$^/d' | sort | uniq` ; do
-	file=src_${dir}.tar.gz
-	echo Unpacking compressed source from $file...
-	tar xzf $file
 #	version=`ls -1 | head -n 1`
-	version=2005
-	echo Removing files with bad copyright...
+	version=2006
+	echo Removing files with bad copyright from $dir module...
 	for badfile in `grep '^'$dir ./cernlib-deadpool.txt \
 			| sed 's/\#.*$//g'` ; do
 		path=$version/src/$badfile
 		[ -e "$path" ] || echo "Skipping non-existent $path ..."
 		rm -rf $version/src/$badfile
 	done
-	echo Repacking $file.
-	tar czf $file $version
-	rm -rf $version
 done
+echo Repacking $result.
+rm -f $result
+tar czf $result $version
+rm -rf $version
 echo Done.
 
 exit 0


Index: cernlib.spec
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/cernlib.spec,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- cernlib.spec	11 Sep 2006 22:32:35 -0000	1.37
+++ cernlib.spec	19 Dec 2007 23:27:43 -0000	1.38
@@ -1,42 +1,93 @@
-Name:          cernlib
-Version:       2005
-Release:       26%{?dist}
-Summary:       General purpose CERN library and associated binaries
+%if 0%{?fedora}
+%if "%fedora" > "6"
+%bcond_without gfortran
+%else
+%bcond_with gfortran
+# this is set to 1 if g77 is used for the cernlib package without
+# suffix.
+%define g77_cernlib_compiler 1
+%endif
+
+%if "%fedora" <= "3" 
+%define old_lapack_name 1
+%endif
+%if "%fedora" <= "4"
+%define monolithic_X 1
+%endif
+%endif
+
+%if 0%{?rhel}
+%bcond_without gfortran
+%endif
+
+# compiler is used to disambiguate package names and executables
+%if %{with gfortran}
+
+%define compiler_string -gfortran
+%if 0%{?g77_cernlib_compiler}
+%define compiler -gfortran
+%endif
+
+%else
+# g77 is used to build the utilities that goes in the packages without
+# suffix.
+%define utils_compiler 1
+%define compiler_string -g77
+%if ! 0%{?g77_cernlib_compiler}
+%define compiler -g77
+%endif
+# no compat prefix, the utilities compiled with gfortran are non functionnal
+# see Bug 241416
+#%%define compat compat-
+%endif
+# verdir is the directory used for libraries and replaces the version 
+# in some files and file names
+%define verdir %{version}%{?compiler}
+# data files should be the same and therefore parallel installable
+
+Name:          %{?compat}cernlib%{?compiler}
+Version:       2006
+Release:       20%{?dist}
+Summary:       General purpose CERN library
 Group:         Development/Libraries
 # As explained in the cernlib on debian FAQ, cfortran can be considered LGPL.
 # http://borex.princeton.edu/~kmccarty/faq.html#44
-License:       GPL/LGPL
+License:       GPL+ and LGPLv2+
 URL:           http://cernlib.web.cern.ch/cernlib/
 # mandrake
 #BuildRequires: libxorg-x11-devel lesstif-devel libblas3-devel liblapack3-devel
 #BuildRequires: gcc-g77
 #Requires:      libxorg-x11-devel lesstif-devel libblas3-devel liblapack3-devel
 # fedora core
-%if "%fedora" > "5"
-BuildRequires: lesstif-devel
-%else
-BuildRequires: openmotif-devel
-%endif
 
-%if "%fedora" <= "3"
+%if 0%{?old_lapack_name}
 BuildRequires: lapack blas
 %else
 BuildRequires: lapack-devel blas-devel
 %endif
 
-%if "%fedora" <= "4"
+%if 0%{?monolithic_X}
 BuildRequires: xorg-x11-devel 
 %else
-BuildRequires: imake 
+BuildRequires: imake libXaw-devel
 # workaround #173530
 BuildRequires: libXau-devel
 %endif
+
+# indirectly requires lesstif or openmotif and X libs
+BuildRequires: xbae-devel
+
 # for patchy build scripts
 BuildRequires: tcsh
 BuildRequires: gawk
-# there are missing f2c intrinsics in gfortran so gfortran cannot be used to
-# build the cernlib
+
+BuildRequires: desktop-file-utils
+
+%if %{with gfortran}
+BuildRequires: gcc-gfortran
+%else
 BuildRequires: /usr/bin/g77
+%endif
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 # these sources are different from the upstream sources as files with 
@@ -44,24 +95,12 @@
 # and cernlib-deadpool.txt to recreate them from the upstream
 # In a directory with the cernlib sources, issue 
 # sh cernlib-remove-deadpool 
-Source3: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_geant321.tar.gz
-Source4: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_graflib.tar.gz
-Source7: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_mclibs.tar.gz
-Source8: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_packlib.tar.gz 
-Source10: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_pawlib.tar.gz
-# not used during the build (if I'm not wrong)
-Source15: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_car.tar.gz
-# unmodified files
-Source0: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_config.tar.gz
-Source2: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_Imakefile.tar.gz
-Source5: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_include.tar.gz
-Source6: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_mathlib.tar.gz 
-Source11: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_phtools.tar.gz
-Source12: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_scripts.tar.gz
-Source9: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_patchy.tar.gz
-Source14: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/tar/src_cfortran.tar.gz
-Source16: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2005_source/lib/xsneut95.dat
-# The patchy version 4 sources
+
+# source is now monolithic
+#Source0: http://wwwasd.web.cern.ch/wwwasd/cernlib/download/2006_source/tar/2006_src.tar.gz
+Source0: 2006_src-free.tar.gz
+
+# The patchy version 4 sources. Mattias Ellert gave it so me in a mail.
 Source17: patchy.tar.gz
 # this is modified with regard with what Mattias gave me. Indeed the file
 # containing some other files (p4inceta) was in fortran unformatted format, 
@@ -71,6 +110,8 @@
 Source203: patchy-unpack-rceta 
 
 # Shell scripts that go in /etc/profile.d
+# Currently they are not installed since they do more harm than good, when
+# parallel cernlib versions are installed.
 Source100: cernlib.sh.in
 Source105: cernlib.csh.in
 # m4 macros for autoconf
@@ -86,13 +127,13 @@
 Source200: cernlib-remove-deadpool
 Source201: cernlib-deadpool.txt
 # copyright.in from the non split debian patchset
-Source203: cernlib-debian-copyright.in
+Source204: cernlib-debian-copyright.in
 
 # debian patchsets
-Patch100001: cernlib_2005.dfsg-3.diff 
-Patch100002: paw_2.14.04-3.diff
-Patch100003: mclibs_2005.dfsg-1.diff
-Patch100004: geant321_3.21.14.dfsg-1.diff
+Patch100001: http://ftp.debian.org/debian/pool/main/c/cernlib/cernlib_2006.dfsg.2-2.diff.gz
+Patch100002: http://ftp.debian.org/debian/pool/main/p/paw/paw_2.14.04.dfsg.2-1.diff.gz
+Patch100003: http://ftp.debian.org/debian/pool/main/m/mclibs/mclibs_2006.dfsg.2-1.diff.gz
+Patch100004: http://ftp.debian.org/debian/pool/main/g/geant321/geant321_3.21.14.dfsg-5.diff.gz
 # change file to directory to DATADIR
 Patch1100: cernlib-enforce-FHS.diff
 Patch1: geant321-001-fix-missing-fluka.dpatch
@@ -111,13 +152,14 @@
 Patch106: cernlib-106-fix-paw++-menus-in-lesstif.dpatch
 Patch107: cernlib-107-define-strdup-macro-safely.dpatch
 Patch108: paw-108-quote-protect-comis-script.dpatch
-# not used as xsneut.dat is at the right place
-#Patch109: 109-fix-broken-xsneut95.dat-link.dpatch
+# use xsneut95.dat from the archive
+Patch109: geant321-109-fix-broken-xsneut95.dat-link.dpatch
 Patch110: cernlib-110-ignore-included-lapack-rule.dpatch
 Patch111: cernlib-111-fix-kuesvr-install-location.dpatch
 Patch112: cernlib-112-remove-nonexistent-prototypes-from-gen.h.dpatch
 # a workaround for cups. Applied in doubt.
-Patch113: cernlib-113-cups-postscript-fix.dpatch
+# removed in 2006
+#Patch113: cernlib-113-cups-postscript-fix.dpatch
 # it is the same in all source packages...
 Patch114: 114-install-scripts-properly.dpatch
 Patch115: cernlib-115-rsrtnt64-goto-outer-block.dpatch
@@ -126,8 +168,12 @@
 Patch118: cernlib-118-rename-mathlib-common-blocks.dpatch
 Patch11901: cernlib-119-fix-compiler-warnings.dpatch
 Patch11902: paw-119-fix-compiler-warnings.dpatch
-Patch120: cernlib-120-fix-gets-usage-in-kuipc.dpatch 
-Patch121: cernlib-121-fix-mathlib-test-case-c209m.dpatch
+Patch12001: cernlib-120-fix-gets-usage-in-kuipc.dpatch 
+Patch12002: paw-120-fix-mlp-cdf-file.dpatch
+Patch12101: cernlib-121-fix-mathlib-test-case-c209m.dpatch
+Patch12102: paw-121-call-gfortran-in-cscrexec.dpatch
+Patch122: cernlib-122-fix-cdf-file-syntax-errors.dpatch
+Patch123: cernlib-123-extern-memmove-only-if-not-macro.dpatch
 Patch200: paw-200-comis-allow-special-chars-in-path.dpatch
 Patch201: cernlib-201-update-kuip-helper-apps.dpatch
 Patch202: cernlib-202-fix-includes-in-minuit-example.dpatch
@@ -145,10 +191,16 @@
 Patch210: 210-improve-cfortran-header-files.dpatch
 # split in newer debian patchset
 # in debian split there is a common part at the beginning of the patch
+# 
+# obsolete in 2006:
 # 211-support-amd64-and-itanium corresponds with a merge of
 # cernlib-211-support-amd64-and-itanium.dpatch
 # paw-211-support-amd64-and-itanium.dpatch
-Patch2110: 211-support-amd64-and-itanium.dpatch
+# 
+# in 2006
+# paw-211-support-amd64-and-itanium.dpatch has the common part removed
+Patch21101: cernlib-211-support-amd64-and-itanium.dpatch
+Patch21102: paw-211-support-amd64-and-itanium.dpatch
 Patch2111: cernlib-211-support-digital-alpha.dpatch
 Patch300: cernlib-300-skip-duplicate-lenocc.dpatch
 # Use another approach, see cernlib-enforce-FHS
@@ -178,7 +230,8 @@
 # It is a departure from upstream. Apply, but may revert if not agreed.  
 Patch31301: cernlib-313-comis-preserves-filename-case.dpatch
 Patch31302: paw-313-comis-preserves-filename-case.dpatch
-Patch314: cernlib-314-permit-using-regcomp-for-re_comp.dpatch
+# fixed in 2006
+#Patch314: cernlib-314-permit-using-regcomp-for-re_comp.dpatch
 # first chunk of the patches are the same in the split cernlib
 Patch315: 315-fixes-for-MacOSX.dpatch
 
@@ -187,8 +240,11 @@
 Patch319: cernlib-319-work-around-imake-segfaults.dpatch
 Patch32001: cernlib-320-support-ifort.dpatch
 Patch32002: paw-320-support-ifort-and-gfortran.dpatch
-Patch321: cernlib-321-support-gfortran.dpatch
+Patch32101: cernlib-321-support-gfortran.dpatch
+Patch32102: mclibs-321-support-gfortran.dpatch
 
+# use host.def for gfortran 
+Patch600: cernlib-600-use-host.def-config-file.dpatch
 # in cernlib debian split also remove other packages from LIBDIRS
 Patch700: 700-remove-kernlib-from-packlib-Imakefile.dpatch
 Patch70101: cernlib-701-patch-hbook-comis-Imakefiles.dpatch
@@ -201,6 +257,7 @@
 # I would have preferred not to move the motif code to toplevel...
 # in paw debian split also remove other packages from LIBDIRS
 Patch705: 705-patch-paw_motif-paw-Imakefiles.dpatch
+Patch706: paw-706-use-external-xbae-and-xaw.dpatch
 
 Patch800: cernlib-800-implement-shared-library-rules-in-Imake.dpatch
 Patch80101: cernlib-801-non-optimized-rule-uses-fPIC-g.dpatch
@@ -225,33 +282,31 @@
 Patch80603: geant321-806-bump-mathlib-and-dependents-sonames.dpatch
 Patch80604: mclibs-806-bump-mathlib-and-dependents-sonames.dpatch
 
-# not applied in newer debian patchset
-Patch3006: 022-no-assign-string-literals
-# fixed upstream
-Patch3007: 027-use-tmpfile-not-mktemp
-# not applied in the newer debian patchset
-Patch3008: 031-fix-varargs-use
-# fixed upstream 
-Patch3009: 048-log-to-var-log-not-tmp
-# fixed upstream
-Patch3010: 049-fix-kuesvr-security-hole
-# fixed upstream
-Patch3011: 050-make-secure-comis-tmpdir
-# fixed upstream
-Patch3012: 051-fix-miscellaneous-tmp-uses
-
 # change the cernlib script such that -llapack -lblas is used instead of 
 # cernlib lapack
 # depend explicitely on libkernlib now that it is out of packlib
 # use lesstif-pawlib and lesstif-packlib
+# use external Xbae and Xaw
 # the modified script is renamed cernlib-static later and the debian cernlib
 # script is used instead.
-Patch1200: cernlib-cernlib_kernlib.patch
+Patch1200: cernlib-script.patch
 # don't stop if the CERN variable isn't defined
 Patch1201: cernlib-gxint-script.diff
-# FIXME: maybe those 2 patches aren't needed with newer gfortran anymore
-Patch1203: cernlib-hwuli2_use_dimag.diff 
-Patch1204: cernlib-hwhiga_use_dimag.diff
+# not needed in 2006
+#Patch1203: cernlib-hwuli2_use_dimag.diff 
+#Patch1204: cernlib-hwhiga_use_dimag.diff
+# modify the cernlib man page to fit with the distribution
+Patch1206: cernlib-man_static.patch
+# modify the debian cernlib paw desktop file icon name
+Patch1207: cernlib-fedora_desktop.patch
+# fix tests Imakefiles
+Patch1208: cernlib-test.patch
+# don't recurse in eurodec for tests because the testcase segfaults
+Patch1210: cernlib-segf_eudtest.patch
+# kernlib/kernnum packlib/{ffread hbook kuip zbook zebra} test error on 64 bit
+# packlib/{ffread hbook kuip} segfaults on ppc64
+Patch1211: cernlib-64test.patch
+
 
 # patchy 4
 # not applied as it has allready been done by the sed one-liner in 
@@ -259,13 +314,20 @@
 Patch1500: patchy-rceta.patch
 
 Patch1501: patchy-insecure_tmp_use.diff
-Patch1502: patchy-fcasplit.patch
+#Patch1502: patchy-fcasplit.patch
+# build fixes
 Patch1503: patchy-p4comp.patch
+# use the flags in the the p4boot.sh script and have fcasplit handle
+# enough command line arguments (this fcasplit is not shipped)
+Patch1507: patchy-use_OPT.patch
 
 # patchy 5 (included in cernlib)
-Patch1504: patchy-case.patch
-Patch1505: patchy-perror.patch
-Patch1506: patchy-yexpand.diff
+# correct build, use optflags and have fcasplit handle
+# enough command line arguments (this fcasplit is shipped)
+Patch1504: npatchy-np_flags.patch
+#Patch1505: patchy-perror.patch
+# in yexpand don't put temporary files in HOME, but in current directory
+Patch1506: npatchy-curdir.patch
 
 %description
 CERN program library is a large collection of general purpose libraries
@@ -279,24 +341,30 @@
 scripts from the utils subpackage.
 
 %package devel
-Summary:       General purpose CERN library static libraries and headers
-%if "%fedora" > "5"
-BuildRequires: lesstif-devel
-%else
-BuildRequires: openmotif-devel
-%endif
-%if "%fedora" <= "3"
+Summary:       General purpose CERN library development package
+
+%if 0%{?old_lapack_name}
 Requires:       lapack blas
 %else
 Requires:       lapack-devel blas-devel
 %endif
 
-%if "%fedora" > "4"
+# Motif and X devel libs are indirectly required through xbae
+Requires: xbae-devel
+
+%if 0%{?monolithic_X}
+Requires:      xorg-x11-devel
+%else
 # workaround #173530
 Requires:      libXau-devel
+Requires:      libXaw-devel
 %endif
 Requires:      %{name} = %{version}-%{release}
 Group:         Development/Libraries
+Provides:  cernlib(devel) = %{version}-%{release}
+
+# for the m4 macro directory ownership
+Requires: automake
 
 %description devel
 CERN program library is a large collection of general purpose libraries
@@ -306,13 +374,33 @@
 detectors simulation, data-handling etc... applicable to a wide range 
 of problems.
 
-The cernlib-devel package contains the header files and libraries needed  
-to develop programs that use the CERN library.  
+The cernlib-devel package contains the header files and symlinks needed  
+to develop programs that use the CERN library using dynamic libraries.
+
+Static libraries are in %{name}-static.
+
+%package static
+Summary:       General purpose CERN library static libraries
+Group:         Development/Libraries
+Requires:  %{name}-devel = %{version}-%{release}
+Provides:  cernlib(static) = %{version}-%{release}
+
+%description static
+CERN program library is a large collection of general purpose libraries
+and modules maintained and offered on the CERN. Most of these programs 
+were developed at CERN and are therefore oriented towards the needs of a 
+physics research laboratory that is general mathematics, data analysis, 
+detectors simulation, data-handling etc... applicable to a wide range 
+of problems.
+
+The %{name}-static package contains the static cernlib libraries.
 
 %package utils
 Summary:   CERN library compilation and environment setting scripts
 Group:     Applications/System
 Requires:  %{name}-devel = %{version}-%{release}
+Requires:  %{name}-static = %{version}-%{release}
+Provides:  cernlib(utils) = %{version}-%{release}
 
 %description utils
 CERN library compilation and environment setting scripts.
@@ -321,22 +409,13 @@
 want to have different compile script and different environments for 
 different versions of the library you have to set them by hand.
 
-%package -n paw
-Group: Applications/Engineering
-Summary: A program for the analysis and presentation of data
-
-%description -n paw
-PAW is conceived as an instrument to assist physicists in the analysis and 
-presentation of their data. It provides interactive graphical presentation 
-and statistical or mathematical analysis, working on objects familiar to 
-physicists like histograms, event files (Ntuples), vectors, etc. PAW is 
-based on several components of the CERN Program Library.
-
-%package -n geant321
+%package -n %{?compat}geant321%{?compiler}
 Summary:  Particle detector description and simulation tool
 Group:    Applications/Engineering
-Requires: cernlib-devel cernlib-utils
-%description -n geant321
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-utils = %{version}-%{release}
+
+%description -n %{?compat}geant321%{?compiler}
 Geant simulates the passage of subatomic particles through matter, for 
 instance, particle detectors. For maximum flexibility, Geant simulations 
 are performed by linking Fortran code supplied by the user with the Geant 
@@ -344,12 +423,12 @@
 
 This package includes gxint, the script used to perform this linking step. 
 
-%package -n kuipc
+%package -n %{?compat}kuipc%{?compiler}
 Summary:  Cernlib's Kit for a User Interface Package (KUIP) compiler
 Group:    Development/Languages
-Requires: cernlib-devel
+Requires: cernlib(devel)
 
-%description -n kuipc
+%description -n %{?compat}kuipc%{?compiler}
 KUIPC, the Kit for a User Interface Package Compiler, is a tool to simplify 
 the writing of a program's user interface code. It takes as input a Command 
 Definition File (CDF) that describes the commands to be understood by the 
@@ -358,11 +437,54 @@
 with the rest of the program. Since the generated code uses KUIP routines, 
 the program must also be linked against the Packlib library that contains them.
 
-%package packlib
+# we want to have both g77 and gfortran suffixed utilities available.
+%package -n %{?compat}paw%{?compiler_string}
+Group: Applications/Engineering
+Summary: A program for the analysis and presentation of data
+
+%description -n %{?compat}paw%{?compiler_string}
+PAW is conceived as an instrument to assist physicists in the analysis and 
+presentation of their data. It provides interactive graphical presentation 
+and statistical or mathematical analysis, working on objects familiar to 
+physicists like histograms, event files (Ntuples), vectors, etc. PAW is 
+based on several components of the CERN Program Library.
+
+%package -n cernlib-packlib%{?compiler_string}
+Group: Applications/Archiving
+Summary: I/O, network and other utilities from the cernlib
+
+%description -n cernlib-packlib%{?compiler_string}
+I/O, network and miscalleneous utilities based on the CERN Program 
+Library. 
+According to the responsible of the cernlib debian package, some
+of these utilities may have security flaws.
+
+%package -n %{?compat}patchy%{?compiler_string}
+Group: Applications/Archiving
+Summary: The patchy utilities
+
+%description -n %{?compat}patchy%{?compiler_string}
+Utilities for extracting sources from patchy cards and cradles.
+
+# the package that has utils_compiler set provides the utilities without
+# suffix
+%if 0%{?utils_compiler}
+%package -n paw
+Group: Applications/Engineering
+Summary: A program for the analysis and presentation of data
+
+%description -n paw
+PAW is conceived as an instrument to assist physicists in the analysis and 
+presentation of their data. It provides interactive graphical presentation 
+and statistical or mathematical analysis, working on objects familiar to 
+physicists like histograms, event files (Ntuples), vectors, etc. PAW is 
+based on several components of the CERN Program Library.
+
+%package -n cernlib-packlib
 Group: Applications/Archiving
 Summary: I/O, network and other utilities from the cernlib
 
-%description packlib
+%description -n cernlib-packlib
 I/O, network and miscalleneous utilities based on the CERN Program 
 Library. 
 According to the responsible of the cernlib debian package, some
@@ -374,23 +496,15 @@
 
 %description -n patchy
 Utilities for extracting sources from patchy cards and cradles.
+%endif
 
 
 %prep
+
+echo 'Building cernlib %{verdir}'
+
 %setup -q -c 
-%setup -q -T -D -a 2
-%setup -q -T -D -a 3
-%setup -q -T -D -a 4
-%setup -q -T -D -a 5
-%setup -q -T -D -a 6
-%setup -q -T -D -a 7
-%setup -q -T -D -a 8
-%setup -q -T -D -a 9
-%setup -q -T -D -a 10
-%setup -q -T -D -a 11
-%setup -q -T -D -a 12
-%setup -q -T -D -a 14
-%setup -q -T -D -a 15
+# patchy4
 %setup -q -T -D -a 17
 
 # patch patchy 4 installer fortran generator script
@@ -406,14 +520,39 @@
 #        ./rceta.sh
 #popd
 
-%patch -P 1502
+#%patch -P 1502 -b .use_OPT
 %patch -P 1503
+%patch -P 1507 -p1 -b .use_OPT
 
+# adapt static script to modular X, use system libs and follow debian split
+%patch -P 1200 -p1 -b .script
+# patches for man page
+%patch -P 1206 -p1 -b .man_static
+touch -r %{version}/src/man/man1/cernlib.1.man_static %{version}/src/man/man1/cernlib.1
 
+# debian patchesets
 %patch -P 100001 -p0
 %patch -P 100002 -p0
 %patch -P 100003 -p0
 %patch -P 100004 -p0 
+# we should set the debian files timestamps to the debian patches timestamps
+# but they are not the same for the packages corresponding with different
+# compilers :(. So we use the src/log/tag file.
+#find cernlib-*dfsg* -type f -exec touch -r %{PATCH100001} {} \;
+#find paw-*dfsg* -type f -exec touch -r %{PATCH100002} {} \;
+#find mclibs-*dfsg* -type f -exec touch -r %{PATCH100003} {} \;
+#find geant321-*dfsg* -type f -exec touch -r %{PATCH100004} {} \;
+timestamp=%{_builddir}/%{name}-%{version}/%{version}/src/log/tag
+find cernlib-*dfsg* -type f -exec touch -r $timestamp {} \;
+find paw-*dfsg* -type f -exec touch -r $timestamp {} \;
+find mclibs-*dfsg* -type f -exec touch -r $timestamp {} \;
+find geant321-*dfsg* -type f -exec touch -r $timestamp {} \;
+
+%patch -P 1207 -p1 -b .fedora_desktop
+touch -r paw-*dfsg*/debian/add-ons/misc/paw++.desktop.fedora_desktop paw-*dfsg*/debian/add-ons/misc/paw++.desktop
+
+cp -p cernlib-2006.dfsg.2/debian/add-ons/bin/cernlib.in .
+
 cd %{version}
 %patch -P 1100 -p2
 %patch -P 1 -p1
@@ -431,11 +570,11 @@
 %patch -P 106 -p1
 %patch -P 107 -p1
 %patch -P 108 -p1
-#%patch -P 109 -p1
+%patch -P 109 -p1
 %patch -P 110 -p1
 %patch -P 111 -p1
 %patch -P 112 -p1
-%patch -P 113 -p1
+#%patch -P 113 -p1
 %patch -P 114 -p1
 %patch -P 115 -p1
 %patch -P 116 -p1
@@ -443,8 +582,12 @@
 %patch -P 118 -p1
 %patch -P 11901 -p1
 %patch -P 11902 -p1
-%patch -P 120 -p1
-%patch -P 121 -p1
+%patch -P 12001 -p1
+%patch -P 12002 -p1
+%patch -P 12101 -p1
+%patch -P 12102 -p1
+%patch -P 122 -p1
+%patch -P 123 -p1
 %patch -P 200 -p1
 %patch -P 201 -p1
 %patch -P 202 -p1
@@ -456,7 +599,8 @@
 %patch -P 208 -p1
 %patch -P 209 -p1
 %patch -P 210 -p1
-%patch -P 2110 -p1
+%patch -P 21101 -p1
+%patch -P 21102 -p1
 %patch -P 2111 -p1
 %patch -P 300 -p1
 #%patch -P 301 -p1
@@ -475,18 +619,22 @@
 %patch -P 312 -p1
 %patch -P 31301 -p1
 %patch -P 31302 -p1
-%patch -P 314 -p1
+#%patch -P 314 -p1
 %patch -P 315 -p1
 
 # copy a paw include file to include directory (debian
 # 317-copy-converter.h-to-installed-headers-dir.sh.dpatch)
-cp src/pawlib/paw/tree/converter.h src/pawlib/paw/paw/
+# not in 2006
+#cp src/pawlib/paw/tree/converter.h src/pawlib/paw/paw/
 
 %patch -P 318 -p1
 %patch -P 319 -p1
 %patch -P 32001 -p1
 %patch -P 32002 -p1
-%patch -P 321 -p1
+%patch -P 32101 -p1
+%patch -P 32102 -p1
+
+%patch -P 600 -p1
 
 # move kernlib out of packlib (debian 700-move-kernlib-to-top-level.sh.dpatch)
 mv src/packlib/kernlib src/kernlib
@@ -575,6 +723,7 @@
 popd
 
 %patch -P 705 -p1
+%patch -P 706 -p1
 
 %patch -P 800 -p1
 %patch -P 80101 -p1
@@ -596,14 +745,19 @@
 %patch -P 80603 -p1
 %patch -P 80604 -p1
 
-%patch -P 1504 -p1
-%patch -P 1505 -p1
-%patch -P 1506 -p1
+%patch -P 1504 -p2 -b .np_flags
+#%patch -P 1505 -p1
+%patch -P 1506 -p2 -b .curdir
 
-%patch -P 1200
 %patch -P 1201
-%patch -P 1203
-%patch -P 1204
+#%patch -P 1203
+#%patch -P 1204
+%patch -P 1208 -p2 -b .test
+%patch -P 1210 -p2 -b .segf_eudtest
+
+%ifarch x86_64 ppc64
+%patch -P 1211 -p2 -b .64test
+%endif
 
 # remove CVS directories
 find . -depth -type d -name CVS -exec rm -rf {} ';' 
@@ -617,7 +771,7 @@
 
 %build
 
-CERN=$RPM_BUILD_DIR/cernlib-%{version}
+CERN=$RPM_BUILD_DIR/%{name}-%{version}
 CERN_LEVEL=%{version}
 CERN_ROOT=$CERN/$CERN_LEVEL
 CVSCOSRC=$CERN/$CERN_LEVEL/src
@@ -632,39 +786,49 @@
 LIB_SONAME=1
 export LIB_SONAME
 
+# add something in the soname to avoid binaries linked against g77-compiled
+# library to be linked against gfortran-compiled libraries, as the ABI is 
+# incompatible for functions.
+%if %{with gfortran}
+TOOL_SONAME=_gfortran
+export TOOL_SONAME
+%endif
+
 # set the CERN and CERN_LEVEL environment variables in shell scripts
 # meant to go to /etc/profile.d
-sed -e 's/==CERN_LEVEL==/%{version}/' -e 's:==CERN==:%{_libdir}/cernlib:' %{SOURCE100} > cernlib-%{version}.sh
-sed -e 's/==CERN_LEVEL==/%{version}/' -e 's:==CERN==:%{_libdir}/cernlib:' %{SOURCE105} > cernlib-%{version}.csh
+sed -e 's/==CERN_LEVEL==/%{verdir}/' -e 's:==CERN==:%{_libdir}/cernlib:' %{SOURCE100} > cernlib-%{verdir}.sh
+sed -e 's/==CERN_LEVEL==/%{verdir}/' -e 's:==CERN==:%{_libdir}/cernlib:' %{SOURCE105} > cernlib-%{verdir}.csh
 
-cp %{SOURCE101} .
-cp %{SOURCE102} .
-cp %{SOURCE103} .
+cp -p %{SOURCE101} .
+cp -p %{SOURCE102} .
+cp -p %{SOURCE103} .
 
 # Regenerate the copyright file (from non split debian/rules)
 grep -v DEADPOOL_LIST_GOES_HERE %{SOURCE203} > debian-copyright
 sed -e 's/#.*//g' -e '/^[[:space:]]*$$/d' %{SOURCE201} | \
     sort | uniq >> debian-copyright
 
-# copy xsneut.data in 2005/share/lib, where geant expects it to be
-# there is a link from 2005/lib
-mkdir -p %{version}/share/lib
-cp %{SOURCE16} %{version}/share/lib
-
 cd $CERN_ROOT
 
 # substitude the right defaults in the scripts
-sed -i -e 's:"/cern":"%{_libdir}/cernlib/":' -e 's:"pro":"%{version}":' \
-   src/scripts/paw src/scripts/cernlib src/graflib/dzdoc/dzedit/dzedit.script \
+sed -i.paths -e 's:"/cern":"%{_libdir}/cernlib/":' -e 's:"pro":"%{verdir}":' \
+   src/scripts/paw src/scripts/cernlib src/graflib/dzdoc/dzedit/dzedit.script
+
+sed -i -e 's:"/cern":"%{_libdir}/cernlib/":' -e 's:"pro":"%{verdir}":' \
    ../patchy/ylist ../patchy/yindex
 
 # substitute version in gxint with the right version
 # substitute includedir in gxint to conform to FHS, and gxint.o to gxint.f
-sed -i -e 's/"pro"/%{version}/' -e 's:\${CERN}/\${ver}/lib/gxint\${gvs}\.\$_o:%{_includedir}/cernlib/\${ver}/gxint.f:' src/scripts/gxint 
+# and substitue the name of the cernlib link script
+sed -i -e 's/"pro"/%{version}/' -e 's:\${CERN}/\${ver}/lib/gxint\${gvs}\.\$_o:%{_includedir}/cernlib/\${ver}/gxint.f:' \
+  -e 's/`cernlib /`cernlib%{?compiler} /' \
+  src/scripts/gxint 
 
 # substitute DATADIR in source files to conform to FHS
 sed -i -e 's:DATADIR:%{_datadir}/cernlib/%{version}:' \
-  src/geant321/miface/gmorin.F src/mclibs/cojets/test/test.F src/mclibs/eurodec/eurodec/eufiles.inc src/mclibs/isajet/test/isajett.F
+  src/geant321/miface/gmorin.F 
+# don't correct datadir in test files or header used in tests
+#src/mclibs/cojets/test/test.F src/mclibs/eurodec/eurodec/eufiles.inc src/mclibs/isajet/test/isajett.F
 
 # substitute bindir in ylist and yindex to conform to FHS
 sed -i -e 's:\$CERN/patchy/\$PATCHY_VERSION/bin:%{_bindir}:' ../patchy/ylist ../patchy/yindex
@@ -672,42 +836,89 @@
 # Create the build directory structure
 mkdir -p build bin lib shlib
 
-# rename the cernlib script cernlib-static and use the debian cernlib
-# script for dynamic libraries support
+# rename the cernlib script cernlib-static
+mv src/scripts/cernlib src/scripts/cernlib-static
+%{__install} -p -m755 src/scripts/cernlib-static bin/cernlib-static
+
+# use the debian cernlib script for dynamic libraries support.
 # remove -lg2c to the link commands, because libg2c.so isn't available, 
-# it is found by g77 if needed
-mv src/scripts/cernlib bin/cernlib-static
+# it is found by g77/gfortran if needed.
+# don't add %{_libdir} to the directory searched in for libraries, 
+# since it is already in the list.
 sed -e 's:@PREFIX@:%{_prefix}:g' \
-  -e 's:@LIBPREFIX@:%{_libdir}/cernlib/%{version}:g' \
+  -e 's:@CERN@:%{_libdir}/cernlib:g' \
+  -e 's:@VERSION@:%{verdir}:g' \
+  -e 's:@LIBPREFIX@::g' \
   -e 's/-lg2c//' \
-  ../cernlib-2005.dfsg/debian/add-ons/bin/cernlib.in > src/scripts/cernlib
+  ../cernlib.in > src/scripts/cernlib
+# to remove reference to monolithic X directories
+#  -e 's/-L\$XDIR\(64\)\? //' \
+#  -e 's:-L/usr/X11R6/lib\(64\)\? ::' \
+#  -e 's:/usr/X11R6/lib\(64\)\? ::g' \
+#
 chmod 0755 src/scripts/cernlib
+touch -r ../cernlib.in src/scripts/cernlib
 
 # install mkdirhier which is needed to make directories
-cp %{SOURCE104} bin/
-chmod a+x bin/mkdirhier
+%{__install} -p -m755 %{SOURCE104} bin/
+
+# set FC_OPTFLAGS and FC_COMPILER based on compiler used
+%if %{with gfortran}
+FC_OPTFLAGS="%{optflags}"
+FC_COMPILER=gfortran
+%else
+# optflags are different for g77, so we remove problematic flags
+FC_OPTFLAGS=`echo "%optflags" | sed -e 's/-mtune=[^ ]\+//' -e 's/-fstack-protector//' -e 's/--param=ssp-buffer-size=[^ ]\+//'`
+# this is needed (at least in F-8).
+G_LDFLAGS='-Wl,--build-id'
+FC_COMPILER=g77
+%endif
 
 PATHSAVE=$PATH
 # Build patchy version 4
 pushd ../patchy
+
+if [ z"$G_LDFLAGS" != z ]; then
+	sed -i.ldflags -e "s/f77/f77 $G_LDFLAGS/" p4boot.sh
+fi
+
+%if %{with gfortran}
+        sed -i.gfortran -e 's/f77/gfortran/' fcasplit.f p4boot.sh
+%endif
+        sed -i.optflags -e 's/FOPT \+=.*/FOPT = "'"$FC_OPTFLAGS"'"/' \
+                 -e 's/COPT  \+=.*/COPT = "%{optflags}"/' p4boot.sh
 #        export PATH="$CERN/patchy:$CERN/patchy/p4sub:$PATH" 
         export PATH=".:..:$PATH" 
         p4boot.sh 0
 popd
-find ../patchy -name y* -a -perm -755 -exec install {} bin ';'
 export PATH=$PATHSAVE
 
-# Create the top level Makefile with imake
+# pass informations to the build system through host.def
+echo '#define DefaultCDebugFlags %{optflags}' >> ${CVSCOSRC}/config/host.def
+
+%if %{with gfortran}
+echo '#define Hasgfortran YES' >> ${CVSCOSRC}/config/host.def
+%endif
+echo "#define FortranDebugFlags $FC_OPTFLAGS" >> ${CVSCOSRC}/config/host.def
+# keep timestamps
+echo "#define InstallCmd %{__install} -p" >> ${CVSCOSRC}/config/host.def
+# don't strip executables
+echo "#define InstPgmFlags -m 0755" >> ${CVSCOSRC}/config/host.def
+# this is not used for libraries
+#   echo "#define ExtraLoadOptions $G_LDFLAGS" >> ${CVSCOSRC}/config/host.def
+
+# optflags are doubled for programs because they are in FortranDebugFlags
+# and below, but they are not doubled for libs.
+echo "#define FortranLinkCmd $FC_COMPILER $FC_OPTFLAGS $G_LDFLAGS" >> ${CVSCOSRC}/config/host.def
 
+# Create the top level Makefile with imake
 cd $CERN_ROOT/build
 $CVSCOSRC/config/imake_boot
 
-# the RPM optflags are not used during the build
-
 # Install kuipc and the scripts (cernlib, paw and gxint) in $CERN_ROOT/bin
 
-make %{?_smp_mflags} bin/kuipc
-make patchy/Makefile
+#  %{?_smp_mflags} breaks the builds
+make bin/kuipc
 make scripts/Makefile
 cd scripts
 make install.bin
@@ -715,73 +926,137 @@
 # Install the libraries
 
 cd $CERN_ROOT/build
-#  %{?_smp_mflags} breaks the build
 make
 make install.shlib
 chmod a+x ../shlib/*.so.*
 
 # Build dynamic paw
 cd $CERN_ROOT/build/pawlib
-make %{?_smp_mflags} install.bin
+make install.bin
 cd $CERN_ROOT/
 mv bin/pawX11 bin/pawX11.dynamic
 mv bin/paw++ bin/paw++.dynamic
+
 # Build static paw
-g77 $CERN_ROOT/build/pawlib/paw/programs/0pamain.o \
+$FC_COMPILER $FC_OPTFLAGS $G_LDFLAGS $CERN_ROOT/build/pawlib/paw/programs/0pamain.o \
   `cernlib -G X11 pawlib` -Wl,-E -o bin/pawX11
-g77 $CERN_ROOT/build/pawlib/paw/programs/0pamainm.o \
+$FC_COMPILER $FC_OPTFLAGS $G_LDFLAGS $CERN_ROOT/build/pawlib/paw/programs/0pamainm.o \
   `cernlib -G Motif pawlib` -Wl,-E -o bin/paw++
 
 # Build packlib
 cd $CERN_ROOT/build/packlib
-make %{?_smp_mflags} install.bin
+make install.bin
+
+cd $CERN_ROOT/build/graflib
+make install.bin
+
+# bootstrap npatchy
+mkdir -p $CERN_ROOT/build/p5boot
+cd $CERN_ROOT/build/p5boot
+cp -p -r $CERN_ROOT/src/p5boot/* .
+# there is a main program in this file, so the file is removed.
+rm p5lib/nsynopt.f
+$FC_COMPILER $FC_OPTFLAGS $G_LDFLAGS -o nypatchy nypatchy.f p5lib/*.f  $CERN_ROOT/lib/libkernlib.a
+ln -s $CERN_ROOT/build/p5boot/nypatchy $CERN_ROOT/bin/ypatchy
 
 # Build npatchy
-# The build of patchy is completly messed up on ppc
-%ifnarch ppc
-cd $CERN_ROOT/build/patchy
-make %{?_smp_mflags} install.bin
+%if %{with gfortran}
+        sed -i.gfortran -e 's/g77/gfortran/' $CERN_ROOT/src/patchy/fcasplit.F
 %endif
+cd $CERN_ROOT/build
+make patchy/Makefile
+cd patchy
+# we cannot use %%{?_smp_mflags} because fcasplit is used after being
+# built, and during the fcasplit installation (which is done in parallel 
+# with the build) it is removed and replaced by a symlink, and if it 
+# takes time the link may not be there on time. 
+# At least that's my understanding of the failure.
+make install.bin
+
+# it is not completly obvious that it is better to use patchy 4 for 
+# ypatchy, but that's what we do. In any case it should be replaced by a
+# link to the final npatchy
+rm $CERN_ROOT/bin/ypatchy
 
 %install
 
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
 
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
-%{__install} -m644 cernlib-%{version}.sh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
-%{__install} -m644 cernlib-%{version}.csh $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
+%{__install} -d -m755 %{buildroot}%{_sysconfdir}/profile.d
+#%{__install} -p -m644 cernlib-%{verdir}.sh %{buildroot}%{_sysconfdir}/profile.d
+#%{__install} -p -m644 cernlib-%{verdir}.csh %{buildroot}%{_sysconfdir}/profile.d
 
 %{__install} -d -m755 cfortran/Examples
-%{__install} -m644 %{version}/src/cfortran/Examples/*.c cfortran/Examples/
+%{__install} -p -m644 %{version}/src/cfortran/Examples/*.c cfortran/Examples/
+
+%{__install} -d -m755 %{buildroot}%{_datadir}/aclocal
+%{__install} -p -m644 cernlib.m4 %{buildroot}%{_datadir}/aclocal/cernlib.m4
 
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_datadir}/aclocal
-%{__install} -m644 cernlib.m4 $RPM_BUILD_ROOT%{_datadir}/aclocal/cernlib.m4
+# copy patchy executables in bin. Keep the timestamps for the scripts.
+%{__install} -d -m755 %{buildroot}%{_bindir}/
+find patchy -name y* -a -perm -755 -exec %{__install} -p -m755 {} %{buildroot}%{_bindir} ';'
 
 cd %{version}
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_libdir}/cernlib/%{version}/lib
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_datadir}/cernlib/%{version}
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}/cfortran
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_bindir}/
-
-%{__install} -m644 lib/*.dat $RPM_BUILD_ROOT%{_datadir}/cernlib/%{version}
-%{__install} -m644 lib/gxint321.f $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
-%{__install} -m644 src/cfortran/*.h $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}/
-
-%{__install} -m755 bin/* $RPM_BUILD_ROOT%{_bindir}/
-
-# add a link to pawX11 from %{_libdir}/cernlib/%{version}/bin
-%{__install} -d -m755 $RPM_BUILD_ROOT%{_libdir}/cernlib/%{version}/bin/
-%{__ln_s} %{_bindir}/pawX11 $RPM_BUILD_ROOT%{_libdir}/cernlib/%{version}/bin/pawX11
-
-# to preserve symlinks
-(cd lib && tar cf - *.a) | (cd $RPM_BUILD_ROOT%{_libdir}/cernlib/%{version}/lib && tar xf -)
-(cd shlib && tar cf - *.so*) | (cd $RPM_BUILD_ROOT%{_libdir}/cernlib/%{version}/lib && tar xf -)
+# fix generated data file timestamps such that they are the same for all 
+# compilers
+touch -r src/mclibs/cojets/data/cojets.cpp lib/cojets.dat
+touch -r src/mclibs/isajet/data/decay.cpp lib/isajet.dat
+touch -r src/mclibs/eurodec/data/eurodec.dat lib/eurodec.dat
+
+%{__install} -d -m755 %{buildroot}%{_libdir}/cernlib/%{verdir}/lib
+%{__install} -d -m755 %{buildroot}%{_datadir}/cernlib/%{version}
+%{__install} -d -m755 %{buildroot}%{_includedir}/cernlib/%{version}
+%{__install} -d -m755 %{buildroot}%{_includedir}/cernlib/%{version}/cfortran
+
+%{__install} -p -m644 lib/*.dat %{buildroot}%{_datadir}/cernlib/%{version}
+ 
+%{__install} -p -m644 lib/gxint321.f %{buildroot}%{_includedir}/cernlib/%{version}
+%{__install} -p -m644 src/cfortran/*.h %{buildroot}%{_includedir}/cernlib/%{version}/
+
+%{__install} -p -m755 bin/* %{buildroot}%{_bindir}/
+
+
+# avoid name conflicts for files in bin
+# first move kuipc, cernlib and gxint scripts out of the way
+for file in cernlib cernlib-static gxint kuipc; do
+   mv %{buildroot}%{_bindir}/$file $file%{?compiler}
+done
+
+# always ship suffixed utilities
+for file in %{buildroot}%{_bindir}/*; do
+   cp -p $file ${file}%{compiler_string}
+   # and not suffixed utilities only for one compiler 
+   if [ 'z%{?utils_compiler}' != 'z1' ]; then
+     rm $file
+   fi
+done
 
-rm -f $RPM_BUILD_ROOT%{_bindir}/mkdirhier
+# move gxint and cernlib scripts back
+mv cernlib%{?compiler} cernlib-static%{?compiler} gxint%{?compiler} kuipc%{?compiler}\
+   %{buildroot}%{_bindir}/
+
+# add a link to pawX11 and dzeX11 from %{_libdir}/cernlib/%{verdir}/bin
+%{__install} -d -m755 %{buildroot}%{_libdir}/cernlib/%{verdir}/bin/
+%{__ln_s} %{_bindir}/pawX11%{?compiler_string} %{buildroot}%{_libdir}/cernlib/%{verdir}/bin/pawX11%{?compiler_string}
+%{__ln_s} %{_bindir}/dzeX11%{?compiler_string} %{buildroot}%{_libdir}/cernlib/%{verdir}/bin/dzeX11%{?compiler_string}
+
+# fix utilities names in calling scripts
+sed -i -e 's:$GDIR/paw$drv:$GDIR/paw$drv%{compiler_string}:' %{buildroot}%{_bindir}/paw%{compiler_string}
+sed -i -e 's:$GDIR/dze$drv:$GDIR/dze$drv%{compiler_string}:' %{buildroot}%{_bindir}/dzedit%{compiler_string}
+
+%if 0%{?utils_compiler}
+   %{__ln_s} %{_bindir}/pawX11 %{buildroot}%{_libdir}/cernlib/%{verdir}/bin/pawX11
+   %{__ln_s} %{_bindir}/dzeX11 %{buildroot}%{_libdir}/cernlib/%{verdir}/bin/dzeX11
+%endif
+
+# to preserve symlinks and timestamps
+(cd lib && tar cf - *.a) | (cd %{buildroot}%{_libdir}/cernlib/%{verdir}/lib && tar xf -)
+(cd shlib && tar cf - *.so*) | (cd %{buildroot}%{_libdir}/cernlib/%{verdir}/lib && tar xf -)
+
+rm %{buildroot}%{_bindir}/mkdirhier*
 
 # add links for cfortran header files in the top include directory
-pushd $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
+pushd %{buildroot}%{_includedir}/cernlib/%{version}
 for file in *.h; do
    %{__ln_s} ../$file cfortran/$file
 done
@@ -790,79 +1065,297 @@
 
 cd src
 # install include directories for the cernlib libraries
-base_include=$RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
+base_include=%{buildroot}%{_includedir}/cernlib/%{version}
 for dir in `cat ../../*/debian/add-ons/includelist.txt`; do
    basedir=`basename $dir`
    rm -rf $base_include/$basedir
    cp -Rp $dir $base_include/
 done
 
-%{__install} -d -m755 $RPM_BUILD_ROOT/etc/ld.so.conf.d
-echo %{_libdir}/cernlib/%{version}/lib > $RPM_BUILD_ROOT/etc/ld.so.conf.d/cernlib-%{version}-%{_arch}.conf
+# patching of header files changed their timestamp. However, since it 
+# is much more complicated, instead of finding the real timestamp, the 
+# source file timestamp is used
+
+pushd $base_include
+for file in cfortran.h comis.h cspack.h geant315.h geant321.h gen.h graflib.h \
+ gxint321.f hbook.h jetset74.h kernlib.h kuip.h  lapack.h lepto62.h minuit.h \
+ packlib.h paw.h zebra.h \
+ comis/cspar.inc comis/cstab64.inc comis/mdpool.* comis/mdsize.h \
+ cspack/hcntpar.inc \
+ geant321/gcnmec.inc \
+ hbook/hcdire.inc hbook/hcntpar.inc \
+ kuip/kstring.h \
+ ntuple/cern_types.h ntuple/c_hcntpar.h \
+ paw/pawsiz.inc; do
+# source file timestamps are not the same for the packages corresponding 
+# with different compilers. So we use the src/log/tag file.
+   #touch -r %{SOURCE0} $file
+   touch -r %{_builddir}/%{name}-%{version}/%{version}/src/log/tag $file
+done
+popd
+
+# substitute the path in installed eufiles.inc, not in in-source
+# file, because in-source the relative path is required for test
+touch -r %{buildroot}%{_includedir}/cernlib/%{version}/eurodec/eufiles.inc __eufiles_timestamp
+sed -i -e 's:eurodec.dat:%{_datadir}/cernlib/%{version}/eurodec.dat:' \
+  %{buildroot}%{_includedir}/cernlib/%{version}/eurodec/eufiles.inc
+touch -r __eufiles_timestamp %{buildroot}%{_includedir}/cernlib/%{version}/eurodec/eufiles.inc
+rm __eufiles_timestamp
+
+# install the tree.h and converter.h include files redirecting to 
+# system headers
+%{__install} -p -m644 ../../paw-2.14.04.dfsg.2/debian/add-ons/paw/*.h %{buildroot}%{_includedir}/cernlib/%{version}/paw
+
+%{__install} -d -m755 %{buildroot}/etc/ld.so.conf.d
+echo %{_libdir}/cernlib/%{verdir}/lib > %{buildroot}/etc/ld.so.conf.d/cernlib-%{verdir}-%{_arch}.conf
+
+%{__install} -d -m755 %{buildroot}/%{_mandir}/man1
+%{__install} -p -m644 man/man1/cernlib.1 %{buildroot}/%{_mandir}/man1/cernlib-static.1
+for cernlib_manpage in cernlib.1 kxterm.1 dzedit.1 dzeX11.1 kuipc.1 kuesvr.1 zftp.1 gxint.1 paw.1 paw++.1 pawX11.1; do
+	%{__install} -p -m644 ../../*/debian/add-ons/manpages/$cernlib_manpage %{buildroot}/%{_mandir}/man1/
+done
+
+%{__install} -d -m755 %{buildroot}/%{_mandir}/man8
+for cernlib_manpage in pawserv.8 zserv.8; do
+	%{__install} -p -m644 ../../*/debian/add-ons/manpages/$cernlib_manpage %{buildroot}/%{_mandir}/man8/
+done
+
+%{__install} -d -m755 %{buildroot}/%{_datadir}/X11/app-defaults
+%{__install} -p -m644 ../../*/debian/add-ons/app-defaults/* %{buildroot}/%{_datadir}/X11/app-defaults/
+
+sed -e 's/Exec=paw++/Exec=paw++%{?compiler_string}/' -e 's/PAW++/PAW++%{?compiler_string}/' \
+ ../../paw*/debian/add-ons/misc/paw++.desktop > paw++%{?compiler_string}.desktop
+desktop-file-install --vendor="fedora"               \
+  --dir=%{buildroot}/%{_datadir}/applications         \
+  --delete-original                                   \
+  paw++%{?compiler_string}.desktop
+
+%if 0%{?utils_compiler}
+desktop-file-install --vendor="fedora"               \
+  --dir=%{buildroot}/%{_datadir}/applications         \
+  ../../paw*/debian/add-ons/misc/paw++.desktop
+%endif
+
+%{__install} -d -m755 %{buildroot}/%{_datadir}/pixmaps
+%{__install} -d -m755 %{buildroot}/%{_datadir}/icons/hicolor/{48x48,32x32}/apps/
+%{__install} -p -m644 ../../*/debian/add-ons/icons/*.xpm %{buildroot}/%{_datadir}/pixmaps/
+%{__install} -p -m644 ../../paw*/debian/add-ons/icons/paw32x32.xpm %{buildroot}/%{_datadir}/icons/hicolor/32x32/apps/paw.xpm
+%{__install} -p -m644 ../../paw*/debian/add-ons/icons/paw48x48.xpm %{buildroot}/%{_datadir}/icons/hicolor/48x48/apps/paw.xpm
+
+find %{buildroot}%{_includedir}/cernlib/%{version} -name 'Imakefile*' -exec rm \{\} \;
+rm %{buildroot}%{_includedir}/cernlib/%{version}/ntuple/*.c
+
+
+%check
+CERN=$RPM_BUILD_DIR/%{name}-%{version}
+CERN_LEVEL=%{version}
+CERN_ROOT=$CERN/$CERN_LEVEL
+CVSCOSRC=$CERN/$CERN_LEVEL/src
+PATH=$CERN_ROOT/bin:$PATH
+
+export CERN
+export CERN_LEVEL
+export CERN_ROOT
+export CVSCOSRC
+export PATH
+
+export LD_LIBRARY_PATH=$CERN_ROOT/shlib/
+
+# cannot make out-of build test because of the data files
+cd $CERN_ROOT/build
+
+# no test in code_motif paw_motif scripts patchy pawlib
+test_dirs='graflib mclibs kernlib mathlib packlib phtools'
+
+%ifnarch x86_64 ppc64
+test_dirs="$test_dirs geant321"
+%endif
+
+for dir in $test_dirs; do
+make -C $dir test
+done
 
-find $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version} -name Imakefile -exec rm -f \{\} \;
-rm -f $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}/ntuple/*.c
 
 %clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
 
 %post -p /sbin/ldconfig
 
 %postun -p /sbin/ldconfig
 
+%post -n %{?compat}paw%{?compiler_string}
+touch --no-create %{_datadir}/icons/hicolor || :
+%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+
+%postun -n %{?compat}paw%{?compiler_string}
+touch --no-create %{_datadir}/icons/hicolor || :
+%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+
+%if 0%{?utils_compiler}
+%post -n paw
+touch --no-create %{_datadir}/icons/hicolor || :
+%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+
+%postun -n paw
+touch --no-create %{_datadir}/icons/hicolor || :
+%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+%endif
+
 %files
 %defattr(-,root,root,-)
+%doc cernlib.README debian-copyright
+%doc geant321-3.21.14.dfsg/debian/debhelper/geant321.README.debian 
+%doc mclibs-2006.dfsg.2/debian/debhelper/libpdflib804-2-dev.README.debian
+%doc mclibs-2006.dfsg.2/debian/debhelper/montecarlo-base.README.debian
+%doc cernlib-2006.dfsg.2/debian/add-ons/vim/
 /etc/ld.so.conf.d/*
 %dir %{_libdir}/cernlib/
-%dir %{_libdir}/cernlib/%{version}
-%dir %{_libdir}/cernlib/%{version}/lib
-%dir %{_libdir}/cernlib/%{version}/bin
-%{_libdir}/cernlib/%{version}/lib/*.so.*
+%dir %{_libdir}/cernlib/%{verdir}
+%dir %{_libdir}/cernlib/%{verdir}/lib
+%dir %{_libdir}/cernlib/%{verdir}/bin
+%{_libdir}/cernlib/%{verdir}/lib/*.so.*
 %{_datadir}/cernlib/
-%doc cernlib.README debian-copyright
-%doc geant321-3.21.14.dfsg/debian/debhelper/geant321.README.debian 
-%doc mclibs-2005.dfsg/debian/debhelper/libpdflib804-2-dev.README.debian
-%doc mclibs-2005.dfsg/debian/debhelper/montecarlo-base.README.debian
 
 # the utils and devel are separated to have the possibility to install
 # parallel versions of the library
 %files devel
 %defattr(-,root,root,-)
-%{_libdir}/cernlib/%{version}/lib/*.a
-%{_libdir}/cernlib/%{version}/lib/*.so
+%doc cfortran paw-*/debian/add-ons/misc/comis-64bit-example.F
+%{_libdir}/cernlib/%{verdir}/lib/*.so
 %{_includedir}/cernlib/
 %{_datadir}/aclocal/cernlib.m4
-%doc cfortran 
+
+%files static
+%defattr(-,root,root,-)
+%{_libdir}/cernlib/%{verdir}/lib/*.a
 
 %files utils
 %defattr(-,root,root,-)
-%{_bindir}/cernlib*
-%{_sysconfdir}/profile.d/cernlib-%{version}.sh
-%{_sysconfdir}/profile.d/cernlib-%{version}.csh
+%doc cernlib-%{verdir}.csh cernlib-%{verdir}.sh
+%{_bindir}/cernlib*%{?compiler}
+#%{_sysconfdir}/profile.d/cernlib-%{verdir}.sh
+#%{_sysconfdir}/profile.d/cernlib-%{verdir}.csh
+%{_mandir}/man1/cernlib*.1*
+
+
+%files -n %{?compat}geant321%{?compiler}
+%defattr(-,root,root,-)
+%{_bindir}/gxint%{?compiler}
+%{_datadir}/X11/app-defaults/*Geant++
+%{_mandir}/man1/gxint.1*
+
+%files -n %{?compat}kuipc%{?compiler}
+%defattr(-,root,root,-)
+%{_bindir}/kuipc%{?compiler}
+%{_mandir}/man1/kuipc.1*
+
+%files -n %{?compat}paw%{?compiler_string}
+%defattr(-,root,root,-)
+%doc paw.README
+%{_bindir}/paw++%{?compiler_string}
+%{_bindir}/paw%{?compiler_string}
+%{_bindir}/pawX11%{?compiler_string}
+%{_bindir}/pawX11.dynamic%{?compiler_string}
+%{_bindir}/paw++.dynamic%{?compiler_string}
+# paw doesn't explicitly depend on the main package, so it owns the dirs
+%dir %{_libdir}/cernlib/%{verdir}
+%dir %{_libdir}/cernlib/%{verdir}/bin
+%{_libdir}/cernlib/%{verdir}/bin/pawX11%{?compiler_string}
+%{_datadir}/X11/app-defaults/*Paw++
+%{_datadir}/icons/hicolor/
+%{_mandir}/man1/paw*.1*
+%{_datadir}/applications/*paw++%{?compiler_string}.desktop
+%{_datadir}/pixmaps/paw*.xpm
 
+%files -n cernlib-packlib%{?compiler_string}
+%defattr(-,root,root,-)
+%doc cernlib-*/debian/debhelper/zftp.README.debian
+%{_bindir}/cdbackup%{?compiler_string}
+%{_bindir}/cdserv%{?compiler_string}
+%{_bindir}/dzedit%{?compiler_string}
+# packlib doesn't explicitly depend on the main package, so it owns the dirs
+%dir %{_libdir}/cernlib/%{verdir}
+%dir %{_libdir}/cernlib/%{verdir}/bin
+%{_libdir}/cernlib/%{verdir}/bin/dzeX11%{?compiler_string}
+%{_bindir}/dzeX11%{?compiler_string}
+%{_bindir}/fatmen%{?compiler_string}
+%{_bindir}/fatsrv%{?compiler_string}
+%{_bindir}/kuesvr%{?compiler_string}
+%{_bindir}/zserv%{?compiler_string}
+%{_bindir}/cdmake%{?compiler_string}
+%{_bindir}/fatnew%{?compiler_string}
+%{_bindir}/pawserv%{?compiler_string}
+%{_bindir}/cdmove%{?compiler_string}
+%{_bindir}/fatback%{?compiler_string}
+%{_bindir}/fatsend%{?compiler_string}
+%{_bindir}/hepdb%{?compiler_string}
+%{_bindir}/kxterm%{?compiler_string}
+%{_bindir}/zftp%{?compiler_string}
+%{_datadir}/X11/app-defaults/KXterm
+%{_datadir}/pixmaps/kxterm*.xpm
+%{_mandir}/man1/kxterm.1* 
+%{_mandir}/man1/dze*.1*
+%{_mandir}/man1/kuesvr.1* 
+%{_mandir}/man1/zftp.1*
+%{_mandir}/man8/*.8*
+
+%files -n %{?compat}patchy%{?compiler_string}
+%defattr(-,root,root,-)
+%{_bindir}/fcasplit%{?compiler_string}
+%{_bindir}/nycheck%{?compiler_string}
+%{_bindir}/nydiff%{?compiler_string}
+%{_bindir}/nyindex%{?compiler_string}
+%{_bindir}/nylist%{?compiler_string}
+%{_bindir}/nymerge%{?compiler_string}
+%{_bindir}/nypatchy%{?compiler_string}
+%{_bindir}/nyshell%{?compiler_string}
+%{_bindir}/nysynopt%{?compiler_string}
+%{_bindir}/nytidy%{?compiler_string}
+%{_bindir}/yexpand%{?compiler_string}
+%{_bindir}/ycompar%{?compiler_string}
+%{_bindir}/yedit%{?compiler_string}
+%{_bindir}/yfrceta%{?compiler_string}
+%{_bindir}/yindex%{?compiler_string}
+%{_bindir}/yindexb%{?compiler_string}
+%{_bindir}/ylist%{?compiler_string}
+%{_bindir}/ylistb%{?compiler_string}
+%{_bindir}/ypatchy%{?compiler_string}
+%{_bindir}/ysearch%{?compiler_string}
+%{_bindir}/yshift%{?compiler_string}
+%{_bindir}/ytobcd%{?compiler_string}
+%{_bindir}/ytobin%{?compiler_string}
+%{_bindir}/ytoceta%{?compiler_string}
+
+%if 0%{?utils_compiler}
 %files -n paw
 %defattr(-,root,root,-)
+%doc paw.README
 %{_bindir}/paw++
 %{_bindir}/paw
 %{_bindir}/pawX11
 %{_bindir}/pawX11.dynamic
 %{_bindir}/paw++.dynamic
-%dir %{_libdir}/cernlib/%{version}/bin
-%{_libdir}/cernlib/%{version}/bin/pawX11
-%doc paw.README 
-
-%files -n geant321
-%defattr(-,root,root,-)
-%{_bindir}/gxint
+# paw doesn't explicitly depend on the main package, so it owns the dirs
+%dir %{_libdir}/cernlib/%{verdir}
+%dir %{_libdir}/cernlib/%{verdir}/bin
+%{_libdir}/cernlib/%{verdir}/bin/pawX11
+%{_datadir}/X11/app-defaults/*Paw++
+%{_datadir}/icons/hicolor/
+%{_mandir}/man1/paw*.1*
+%{_datadir}/applications/*paw++.desktop
+%{_datadir}/pixmaps/paw*.xpm
 
-%files -n kuipc
-%defattr(-,root,root,-)
-%{_bindir}/kuipc
-
-%files packlib
+%files -n cernlib-packlib
 %defattr(-,root,root,-)
+%doc cernlib-*/debian/debhelper/zftp.README.debian
 %{_bindir}/cdbackup
 %{_bindir}/cdserv
+%{_bindir}/dzedit
+# packlib doesn't explicitly depend on the main package, so it owns the dirs
+%dir %{_libdir}/cernlib/%{verdir}
+%dir %{_libdir}/cernlib/%{verdir}/bin
+%{_libdir}/cernlib/%{verdir}/bin/dzeX11
+%{_bindir}/dzeX11
 %{_bindir}/fatmen
 %{_bindir}/fatsrv
 %{_bindir}/kuesvr
@@ -876,11 +1369,16 @@
 %{_bindir}/hepdb
 %{_bindir}/kxterm
 %{_bindir}/zftp
-%doc cernlib-2005.dfsg/debian/debhelper/zftp.README.debian
+%{_datadir}/X11/app-defaults/KXterm
+%{_datadir}/pixmaps/kxterm*.xpm
+%{_mandir}/man1/kxterm.1* 
+%{_mandir}/man1/dze*.1*
+%{_mandir}/man1/kuesvr.1* 
+%{_mandir}/man1/zftp.1*
+%{_mandir}/man8/*.8*
 
 %files -n patchy
 %defattr(-,root,root,-)
-%ifnarch ppc
 %{_bindir}/fcasplit
 %{_bindir}/nycheck
 %{_bindir}/nydiff
@@ -892,7 +1390,6 @@
 %{_bindir}/nysynopt
 %{_bindir}/nytidy
 %{_bindir}/yexpand
-%endif
 %{_bindir}/ycompar
 %{_bindir}/yedit
 %{_bindir}/yfrceta
@@ -906,9 +1403,101 @@
 %{_bindir}/ytobcd
 %{_bindir}/ytobin
 %{_bindir}/ytoceta
-
+%endif
 
 %changelog
+* Tue Oct 30 2007 Patrice Dumas <pertusus at free.fr> 2006-20
+- don't use the same spec for epel4
+- always ship the packages with compiler suffix. This is needed for 
+  proper upgrade path as soon as such a package has been ever shipped
+- fix timestamps
+
+* Mon Aug 27 2007 Patrice Dumas <pertusus at free.fr> 2006-19
+- pass --build-id when linking, this is needed for debuginfo generation
+- use g77 binaries, paw with gfortran is broken on x86_64 (#241416)
+- add virtual provides for devel, utils and static packages, packages 
+  (like kuipc) may need the cernlib, but accept g77 or gfortran compiled 
+  cernlib
+- don't set the environment. It only hurts parallel installations.
+
+* Mon Aug 27 2007 Patrice Dumas <pertusus at free.fr> 2006-18
+- correct license
+- use the right debian patch source
+
+* Sun Aug  5 2007 Patrice Dumas <pertusus at free.fr> 2006-17
+- remove old patches
+- remove 'binaries' from the main lib summary
+
+* Wed Jul 25 2007 Patrice Dumas <pertusus at free.fr> 2006-16
+- add rhel conditionals
+- bring back support for monolithic X
+- don't build anything in parallel
+
+* Sun May 27 2007 Patrice Dumas <pertusus at free.fr> 2006-15
+- split out static libraries, as per FESCO decision
+
+* Sat May 26 2007 Patrice Dumas <pertusus at free.fr> 2006-14
+- add link to $CERN_ROOT/bin/dzeX11
+- use %%{name} in the Requires
+- Provides %%{name}-static
+- allow utilities to have another suffix than libs. This allows to 
+  have the utilities compiled with g77 and the default libraries compiled
+  with gfortran
+
+* Wed May 23 2007 Patrice Dumas <pertusus at free.fr> 2006-13
+- remove reference to %%{_libdir} and X11R6 path in cernlib script
+- apply cernlib-static script patch
+- add packlib-lesstif only if Motif driver is selected. This driver
+  is selected in the default case for geant321 and pawlib
+- build and ship the graflib utilities
+
+* Mon May 14 2007 Patrice Dumas <pertusus at free.fr> 2006-11
+- disable the same tests on ppc64 than on x86_64
+
+* Mon May 14 2007 Patrice Dumas <pertusus at free.fr> 2006-10.1
+- packlib/{ffread,hbook} test segfaults on ppc64
+
+* Sun May 13 2007 Patrice Dumas <pertusus at free.fr> 2006-9
+- add a compat prefix when built with g77
+- new debian patcheset
+
+* Tue Apr 24 2007 Patrice Dumas <pertusus at free.fr> 2006-8
+- change the soname with gfortran after coordination with debian maintainer
+
+* Tue Apr 24 2007 Patrice Dumas <pertusus at free.fr> 2006-7
+- use real cernlib lib location in cernlib debian script, don't assume
+  that they are in %%_prefix, it is not the case on fedora
+
+* Mon Apr 23 2007 Patrice Dumas <pertusus at free.fr> 2006-6
+- package compiled with g77 is parallel installable with gfortran 
+  compiled package
+
+* Sun Apr 22 2007 Patrice Dumas <pertusus at free.fr> 2006-5.4
+- packlib/ffread, packlib/hbook, packlib/kuip, packlib/zbook, packlib/zebra 
+  tests fail on x86_64, exclude the tests on this arch
+- kernbit/kernnum test fails on x86_64, exclude the test on this arch
+
+* Sun Apr 22 2007 Patrice Dumas <pertusus at free.fr> 2006-3
+- geant321 test fails on x86_64, exclude the test on this arch
+
+* Sun Apr 22 2007 Patrice Dumas <pertusus at free.fr> 2006-2
+- don't do a parallel build for npatchy
+
+* Fri Apr 13 2007 Patrice Dumas <pertusus at free.fr> 2006-1
+- update to cernlib 2006
+- build with gfortran
+- use system Xbae and Xaw
+- ship man pages, app-defaults, icons and paw++ desktop file (from debian)
+- run tests
+- use optflags in patchy4
+- bootstrap npatchy with p5boot (instead of using patchy4)
+- fix npatchy build
+
+* Tue Dec 19 2006 Patrice Dumas <pertusus at free.fr> 2005-27
+- add support for gfortran (not enabled, lshift missing in fedora gfortran)
+- use fedora compiler flags when possible
+- use %%{optflags} and %%{buildroot}
+
 * Mon Sep 11 2006 Patrice Dumas <pertusus at free.fr> 2005-26
 - update to newer debian patchsets (paw and cernlib)
 - remove gfortran related patches integrated in the debian 
@@ -986,7 +1575,7 @@
 - correct defaults in cernlib scripts
 
 * Sun Sep 11 2005 Patrice Dumas <pertusus at free.fr> - 2005-3
-- add rm -rf $RPM_BUILD_ROOT
+- add rm -rf %%{buildroot}
 
 * Thu Sep  1 2005 Patrice Dumas <pertusus at free.fr> - 2005-2
 - minor update of cernlib.README


Index: geant321-001-fix-missing-fluka.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/geant321-001-fix-missing-fluka.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- geant321-001-fix-missing-fluka.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ geant321-001-fix-missing-fluka.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -5,9 +5,9 @@
 ## DP: Deal with FLUKA code having been purged from Debian's Cernlib source.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/Imakefile cernlib-2005.05.09.dfsg/src/geant321/Imakefile
---- cernlib-2005.05.09.dfsg~/src/geant321/Imakefile	1998-03-05 11:20:07.000000000 +0000
-+++ cernlib-2005.05.09.dfsg/src/geant321/Imakefile	2005-11-23 17:41:29.886310858 +0000
+diff -urNad geant321-3.21.14~/src/geant321/Imakefile geant321-3.21.14/src/geant321/Imakefile
+--- geant321-3.21.14~/src/geant321/Imakefile	1998-03-05 06:20:07.000000000 -0500
++++ geant321-3.21.14/src/geant321/Imakefile	2007-01-30 17:37:26.209615233 -0500
 @@ -4,10 +4,11 @@
  
  AllTarget(geant321)
@@ -35,9 +35,29 @@
  
  /* This will install the correct link for xsneut95.dat at CERN;
   * If you want a local copy of the file, just copy it there
-diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/miface/Imakefile cernlib-2005.05.09.dfsg/src/geant321/miface/Imakefile
---- cernlib-2005.05.09.dfsg~/src/geant321/miface/Imakefile	1995-10-24 10:21:53.000000000 +0000
-+++ cernlib-2005.05.09.dfsg/src/geant321/miface/Imakefile	2005-11-23 17:41:52.230563421 +0000
+diff -urNad geant321-3.21.14~/src/geant321/geant321/gcnmec.inc geant321-3.21.14/src/geant321/geant321/gcnmec.inc
+--- geant321-3.21.14~/src/geant321/geant321/gcnmec.inc	1995-10-24 06:20:31.000000000 -0400
++++ geant321-3.21.14/src/geant321/geant321/gcnmec.inc	2007-01-30 17:39:15.301513801 -0500
+@@ -16,13 +16,14 @@
+       PARAMETER(NMECA=45,IBLOWN=23)
+       CHARACTER*4 CHNMEC(NMECA)
+ *
+-* *** Two blank spaces for FISF and CAPF which do not exist
++* *** Null out all FLUKA mechanisms since we've removed FLUKA code
++* *** for DFSG reasons.  -- Kevin McCarty, for Debian
+ *
+ * *** The low-neutron cross-sections have to be at the end for the
+ * *** logics of the routine to work, and they have to start at
+ * *** IBLOWN
+       DATA CHNMEC /
+-     +     'HADF',  'INEF',  'ELAF',  'NULL',  'NULL',
++     +     'NULL',  'NULL',  'NULL',  'NULL',  'NULL',
+      +     'HADG',  'INEG',  'ELAG',  'FISG',  'CAPG',
+      +     'LOSS',  'PHOT',  'ANNI',  'COMP',  'BREM',
+      +     'PAIR',  'DRAY',  'PFIS',  'RAYL',  'MUNU',
+diff -urNad geant321-3.21.14~/src/geant321/miface/Imakefile geant321-3.21.14/src/geant321/miface/Imakefile
+--- geant321-3.21.14~/src/geant321/miface/Imakefile	1995-10-24 06:21:53.000000000 -0400
++++ geant321-3.21.14/src/geant321/miface/Imakefile	2007-01-30 17:37:26.319591944 -0500
 @@ -1,5 +1,5 @@
  SRCS_F= \ @@\
 -	 gfmdis.F gfmfin.F gmicap.F gmiset.F gmorin.F gmplxs.F gmxsec.F


Index: mclibs-102-dont-optimize-some-code.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/mclibs-102-dont-optimize-some-code.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mclibs-102-dont-optimize-some-code.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ mclibs-102-dont-optimize-some-code.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -6,9 +6,9 @@
 ## DP: (either compiler crash or broken code generation).
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09/src/mclibs/isajet/isatape/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mclibs/isajet/isatape/Imakefile
---- cernlib-2005.05.09/src/mclibs/isajet/isatape/Imakefile	1996-05-06 11:19:44.000000000 -0400
-+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mclibs/isajet/isatape/Imakefile	2005-06-09 11:16:58.039286811 -0400
+diff -urNad mclibs-2006.dfsg~/src/mclibs/isajet/isatape/Imakefile mclibs-2006.dfsg/src/mclibs/isajet/isatape/Imakefile
+--- mclibs-2006.dfsg~/src/mclibs/isajet/isatape/Imakefile	1996-05-06 11:19:44.000000000 -0400
++++ mclibs-2006.dfsg/src/mclibs/isajet/isatape/Imakefile	2007-01-19 17:35:47.210374125 -0500
 @@ -4,4 +4,8 @@
  
  FORTRANSAVEOPTION = FortranSaveFlags
@@ -18,10 +18,10 @@
 +#endif
 +
  SubdirLibraryTarget(NullParameter,NullParameter)
-diff -urNad cernlib-2005.05.09/src/mclibs/pdf/spdf/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mclibs/pdf/spdf/Imakefile
---- cernlib-2005.05.09/src/mclibs/pdf/spdf/Imakefile	2000-04-19 09:51:56.000000000 -0400
-+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mclibs/pdf/spdf/Imakefile	2005-06-09 11:22:02.812494322 -0400
-@@ -97,4 +97,10 @@
+diff -urNad mclibs-2006.dfsg~/src/mclibs/pdf/spdf/Imakefile mclibs-2006.dfsg/src/mclibs/pdf/spdf/Imakefile
+--- mclibs-2006.dfsg~/src/mclibs/pdf/spdf/Imakefile	2006-09-04 08:32:57.000000000 -0400
++++ mclibs-2006.dfsg/src/mclibs/pdf/spdf/Imakefile	2007-01-19 17:35:47.211373912 -0500
+@@ -101,4 +101,10 @@
  #ifdef CERNLIB_HPUX
  FORTRANOPTIONS += '-WF,-P'
  #endif


Index: mclibs-206-herwig-uses-DBLE-not-REAL.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/mclibs-206-herwig-uses-DBLE-not-REAL.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mclibs-206-herwig-uses-DBLE-not-REAL.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ mclibs-206-herwig-uses-DBLE-not-REAL.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -5,27 +5,27 @@
 ## DP: Have libherwig use double precision consistently
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09/src/mclibs/herwig/code/hwhiga.F /tmp/dpep.1kYOCO/cernlib-2005.05.09/src/mclibs/herwig/code/hwhiga.F
---- cernlib-2005.05.09/src/mclibs/herwig/code/hwhiga.F	1996-12-03 09:16:56.000000000 -0500
-+++ /tmp/dpep.1kYOCO/cernlib-2005.05.09/src/mclibs/herwig/code/hwhiga.F	2005-06-09 15:22:00.263743792 -0400
+diff -urNad mclibs-2006.dfsg~/src/mclibs/herwig/code/hwhiga.F mclibs-2006.dfsg/src/mclibs/herwig/code/hwhiga.F
+--- mclibs-2006.dfsg~/src/mclibs/herwig/code/hwhiga.F	2006-09-04 08:32:57.000000000 -0400
++++ mclibs-2006.dfsg/src/mclibs/herwig/code/hwhiga.F	2007-01-19 17:39:10.154251922 -0500
 @@ -72,7 +72,7 @@
        TAMP(6)=HWHIG5(T,S,U,EMH2,EMQ2,2,0,5,0,0,0)
        TAMP(7)=HWHIG5(U,T,S,EMH2,EMQ2,3,0,6,0,0,0)
        DO 20 I=1,7
 -      TAMPI(I)= REAL(TAMP(I))
 +      TAMPI(I)= DBLE(TAMP(I))
+ #if !defined(CERNLIB_GFORTRAN)
    20  TAMPR(I)=-IMAG(TAMP(I))
- C Square and add prefactors
-       WTGG=0.03125*FLOAT(NCOLO*(NCOLO**2-1))
-diff -urNad cernlib-2005.05.09/src/mclibs/herwig/code/hwuli2.F /tmp/dpep.1kYOCO/cernlib-2005.05.09/src/mclibs/herwig/code/hwuli2.F
---- cernlib-2005.05.09/src/mclibs/herwig/code/hwuli2.F	1996-12-03 09:17:04.000000000 -0500
-+++ /tmp/dpep.1kYOCO/cernlib-2005.05.09/src/mclibs/herwig/code/hwuli2.F	2005-06-09 15:22:00.263743792 -0400
+ #else
+diff -urNad mclibs-2006.dfsg~/src/mclibs/herwig/code/hwuli2.F mclibs-2006.dfsg/src/mclibs/herwig/code/hwuli2.F
+--- mclibs-2006.dfsg~/src/mclibs/herwig/code/hwuli2.F	2006-09-04 08:32:57.000000000 -0400
++++ mclibs-2006.dfsg/src/mclibs/herwig/code/hwuli2.F	2007-01-19 17:39:27.722516271 -0500
 @@ -18,7 +18,7 @@
       &  1.644934066848226D0/
        PROD(Y,Y2)=Y*(ONE+A1*Y*(ONE+A2*Y*(ONE+A3*Y2*(ONE+A4*Y2*(ONE+A5*Y2*
       & (ONE+A6*Y2*(ONE+A7*Y2*(ONE+A8*Y2*(ONE+A9*Y2*(ONE+A10*Y2))))))))))
 -      XR=REAL(X)
 +      XR=DBLE(X)
+ #if !defined(CERNLIB_GFORTRAN)
        XI=IMAG(X)
-       R2=XR*XR+XI*XI
-       IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN
+ #else


Index: paw-119-fix-compiler-warnings.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/paw-119-fix-compiler-warnings.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- paw-119-fix-compiler-warnings.dpatch	11 Sep 2006 22:32:35 -0000	1.1
+++ paw-119-fix-compiler-warnings.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -5,9 +5,51 @@
 ## DP: Fix a number of compiler warnings.  Courtesy of Harald Vogt.
 
 @DPATCH@
+diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/cern_types.h paw-2.14.04/src/pawlib/paw/ntuple/cern_types.h
+--- paw-2.14.04~/src/pawlib/paw/ntuple/cern_types.h	1996-04-23 14:37:54.000000000 -0400
++++ paw-2.14.04/src/pawlib/paw/ntuple/cern_types.h	2006-09-08 14:58:22.811814451 -0400
+@@ -36,26 +36,38 @@
+ 
+ typedef unsigned int		UInt32;
+ 
++#ifndef UINT32_MAX
+ #define	UINT32_MAX	UINT_MAX
++#endif
+ 
+ 
+ /* typedef unsigned long long	UInt64; */
+ typedef unsigned long 		UInt64;
+ 
++#ifndef UINT64_MAX
+ #define	UINT64_MAX	ULONG_MAX
++#endif
+ 
+ 
+ typedef int			Int32;
+ 
++#ifndef INT32_MAX
+ #define	INT32_MAX	INT_MAX
++#endif
++#ifndef INT32_MIN
+ #define	INT32_MIN	INT_MIN
++#endif
+ 
+ 
+ /* typedef long long		Int64; */
+ typedef long			Int64;
+ 
++#ifndef INT64_MAX
+ #define	INT64_MAX	LONG_MAX
++#endif
++#ifndef INT64_MIN
+ #define	INT64_MIN	LONG_MIN
++#endif
+ 
+ 
+ typedef float			Float32;
 diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_vvec.c paw-2.14.04/src/pawlib/paw/ntuple/qp_vvec.c
 --- paw-2.14.04~/src/pawlib/paw/ntuple/qp_vvec.c	1996-05-12 11:13:56.000000000 -0400
-+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_vvec.c	2006-09-07 17:41:07.574458016 -0400
++++ paw-2.14.04/src/pawlib/paw/ntuple/qp_vvec.c	2006-09-08 14:49:56.490766940 -0400
 @@ -19,6 +19,7 @@
   */
  
@@ -18,7 +60,7 @@
  #include	"qp_vvec.h"
 diff -urNad paw-2.14.04~/src/pawlib/paw/xbae/caption.c paw-2.14.04/src/pawlib/paw/xbae/caption.c
 --- paw-2.14.04~/src/pawlib/paw/xbae/caption.c	1996-03-01 06:39:36.000000000 -0500
-+++ paw-2.14.04/src/pawlib/paw/xbae/caption.c	2006-09-07 17:41:07.576457590 -0400
++++ paw-2.14.04/src/pawlib/paw/xbae/caption.c	2006-09-08 15:05:15.658762762 -0400
 @@ -244,7 +244,7 @@
       * it will use our name as it's label.
       */
@@ -28,9 +70,18 @@
                                  xmLabelWidgetClass, (Widget)new,
                                  XmNbackground,  new->core.background_pixel,
                                  XmNforeground,  new->manager.foreground,
+@@ -613,7 +613,7 @@
+          * to handle gadgets (the Motif function always calls the gadgets
+          * resize method)
+          */
+-#if XmREVISION == 1
++#if (XmREVISION == 1) && (! defined(LESSTIF_VERSION))
+         _XmConfigureObject((RectObj)UserChild(cw),
+ #else
+         _XmConfigureObject((Widget)UserChild(cw),
 diff -urNad paw-2.14.04~/src/pawlib/paw/xbae/clip.c paw-2.14.04/src/pawlib/paw/xbae/clip.c
 --- paw-2.14.04~/src/pawlib/paw/xbae/clip.c	1996-03-01 06:39:36.000000000 -0500
-+++ paw-2.14.04/src/pawlib/paw/xbae/clip.c	2006-09-07 17:41:07.577457377 -0400
++++ paw-2.14.04/src/pawlib/paw/xbae/clip.c	2006-09-08 14:49:56.491766727 -0400
 @@ -190,8 +190,8 @@
       * XXX It might be more efficient to fake up an Expose event
       * and call Redisplay directly
@@ -44,7 +95,7 @@
                     True);
 diff -urNad paw-2.14.04~/src/pawlib/paw/xbae/matrix.c paw-2.14.04/src/pawlib/paw/xbae/matrix.c
 --- paw-2.14.04~/src/pawlib/paw/xbae/matrix.c	1998-09-02 11:23:57.000000000 -0400
-+++ paw-2.14.04/src/pawlib/paw/xbae/matrix.c	2006-09-07 17:41:07.582456313 -0400
++++ paw-2.14.04/src/pawlib/paw/xbae/matrix.c	2006-09-08 14:49:56.494766087 -0400
 @@ -67,7 +67,10 @@
  #endif
  


Index: paw-207-compile-temp-libs-with-fPIC.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/paw-207-compile-temp-libs-with-fPIC.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- paw-207-compile-temp-libs-with-fPIC.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ paw-207-compile-temp-libs-with-fPIC.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -25,12 +25,3 @@
        ENDIF
        L=LENOCC(CHLINE)
        WRITE(LUNOUT,'(A)')CHLINE(:L)
-@@ -176,7 +176,7 @@
-       ENDIF
- #endif
- #if defined(CERNLIB_LINUX)
--      CHLINE=                   'ld -shared -o '
-+      CHLINE=                   'g77 -shared -o '
-      +                    // NAME(:LN) //'.sl '// NAME(:LN) //'.o'
- #endif
- #if defined(CERNLIB_ALPHA_OSF)


Index: paw-801-non-optimized-rule-uses-fPIC-g.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/paw-801-non-optimized-rule-uses-fPIC-g.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- paw-801-non-optimized-rule-uses-fPIC-g.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ paw-801-non-optimized-rule-uses-fPIC-g.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -12,7 +12,7 @@
 @@ -3,7 +3,7 @@
  	plotisto.F pmhist.F pminit.F show_chain.F
  
- #ifdef CERNLIB_LINUX
+ #if defined(CERNLIB_LINUX) && !defined(CERNLIB_GFORTRAN)
 -FORTRANOPTIONS = -fno-backslash  $(FORTRANSAVEOPTION) -fno-second-underscore
 +FORTRANOPTIONS = -g -fno-backslash  $(FORTRANSAVEOPTION) -fno-second-underscore
  #endif


Index: paw-806-bump-mathlib-and-dependents-sonames.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/paw-806-bump-mathlib-and-dependents-sonames.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- paw-806-bump-mathlib-and-dependents-sonames.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ paw-806-bump-mathlib-and-dependents-sonames.dpatch	19 Dec 2007 23:27:43 -0000	1.2
@@ -13,7 +13,7 @@
  DoIncludePackage(paw)
  #include "paw/pilot.h"
  
-+export LIB_SONAME := 2
++export LIB_SONAME := 3
 +
  #define IHaveSubdirs
  #define PassCDebugFlags


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/cernlib/EL-5/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sources	12 Apr 2006 17:42:16 -0000	1.5
+++ sources	19 Dec 2007 23:27:43 -0000	1.6
@@ -1,16 +1,6 @@
-9d37e3c16c336d1887029227b27a42d8  src_car.tar.gz
-03bfd1239e57a23ab087bf29fe48c8a8  src_Imakefile.tar.gz
-fd20e80b3f58fc88168bcd6ce701f999  src_patchy.tar.gz
-9e686519ae3a52344222b21c9444ddd6  src_cfortran.tar.gz
-9ebd72a2b6e5349b25fc93e7b20c172a  src_include.tar.gz
-bb4e224a7713ac4b8c13598e388c17f3  src_pawlib.tar.gz
-b72b89cb3a7f7c592d28b992c95b4eff  src_config.tar.gz
-0ec66e6d4920af79999b4c73fd3b065a  src_mathlib.tar.gz
-f215b9adba3cfb3be4bd74d624f00d32  src_phtools.tar.gz
-24e2460fa61675df1cd74c7204a8d79e  src_geant321.tar.gz
-666d8a5c483c275463ebb1a3dd48c742  src_mclibs.tar.gz
-b30b121167ddf6508c22fc25a4272276  src_scripts.tar.gz
-67228b011eac13b44499c50219e21545  src_graflib.tar.gz
-4fdcdc9f819ebbb9c6d3a04f339cdcf8  src_packlib.tar.gz
-eecb52159458ead0ee6b0d00b90aab66  xsneut95.dat
+fe71a3f6b95ff2151c5a4690116a0358  2006_src-free.tar.gz
 b1f550eedc545a02f0ab58eb7d550480  patchy.tar.gz
+c3133b7a5885bd1ee7e47d4f4e76beca  geant321_3.21.14.dfsg-5.diff.gz
+3978b81499f205062b540aa58bb79193  mclibs_2006.dfsg.2-1.diff.gz
+90982e80623338cf2d4b4a9efb445f8c  paw_2.14.04.dfsg.2-1.diff.gz
+2a9795aed7895477a2759dc34e7f9b96  cernlib_2006.dfsg.2-2.diff.gz


--- 022-no-assign-string-literals DELETED ---


--- 027-use-tmpfile-not-mktemp DELETED ---


--- 031-fix-varargs-use DELETED ---


--- 048-log-to-var-log-not-tmp DELETED ---


--- 049-fix-kuesvr-security-hole DELETED ---


--- 050-make-secure-comis-tmpdir DELETED ---


--- 051-fix-miscellaneous-tmp-uses DELETED ---


--- 211-support-amd64-and-itanium.dpatch DELETED ---


--- cernlib-113-cups-postscript-fix.dpatch DELETED ---


--- cernlib-314-permit-using-regcomp-for-re_comp.dpatch DELETED ---


--- cernlib-cernlib_kernlib.patch DELETED ---


--- cernlib-hwhiga_use_dimag.diff DELETED ---


--- cernlib-hwuli2_use_dimag.diff DELETED ---


--- cernlib_2005.dfsg-3.diff DELETED ---


--- geant321_3.21.14.dfsg-1.diff DELETED ---


--- mclibs_2005.dfsg-1.diff DELETED ---


--- patchy-case.patch DELETED ---


--- patchy-fcasplit.patch DELETED ---


--- patchy-yexpand.diff DELETED ---


--- paw_2.14.04-3.diff DELETED ---




More information about the fedora-extras-commits mailing list