rpms/cernlib/FC-4 003-geant-dummy-functions.dpatch, NONE, 1.1 100-fix-isajet-manual-corruption.dpatch, NONE, 1.1 101-undefine-PPC.dpatch, NONE, 1.1 102-dont-optimize-some-code.dpatch, NONE, 1.1 103-ignore-overly-long-macro-in-gen.h.dpatch, NONE, 1.1 104-fix-undefined-insertchar-warning.dpatch, NONE, 1.1 105-fix-obsolete-xmfontlistcreate-warning.dpatch, NONE, 1.1 106-fix-paw++-menus-in-lesstif.dpatch, NONE, 1.1 107-define-strdup-macro-safely.dpatch, NONE, 1.1 108-quote-protect-comis-script.dpatch, NONE, 1.1 110-ignore-included-lapack-rule.dpatch, NONE, 1.1 111-fix-kuesvr-install-location.dpatch, NONE, 1.1 112-remove-nonexistent-prototypes-from-gen.h.dpatch, NONE, 1.1 113-cups-postscript-fix.dpatch, NONE, 1.1 114-install-scripts-properly.dpatch, NONE, 1.1 200-comis-allow-special-chars-in-path.dpatch, NONE, 1.1 201-update-kuip-helper-apps.dpatch, NONE, 1.1 202-fix-includes-in-minuit-example.dpatch, NONE, 1.1 203-compile-geant-with-ertrak.dpatch, NONE, 1.1 204-compile-isajet-with-isasrt.dpatch, NONE, 1.1 205-! max-path-length-to-256.dpatch, NONE, 1.1 206-herwig-uses-DBLE-not-REAL.dpatch, NONE, 1.1 207-compile-temp-libs-with-fPIC.dpatch, NONE, 1.1 208-fix-redundant-packlib-dependencies.dpatch, NONE, 1.1 209-ignore-unneeded-headers-in-kmutil.c.dpatch, NONE, 1.1 210-improve-cfortran-header-files.dpatch, NONE, 1.1 211-fix-comis-on-64-bit-arches.dpatch, NONE, 1.1 300-skip-duplicate-lenocc.dpatch, NONE, 1.1 303-shadow-passwords-supported.dpatch, NONE, 1.1 304-update-Imake-config-files.dpatch, NONE, 1.1 305-use-POWERPC-not-PPC-as-test.dpatch, NONE, 1.1 306-patch-assert.h-for-makedepend.dpatch, NONE, 1.1 307-use-canonical-cfortran.dpatch, NONE, 1.1 308-use-canonical-cfortran-location.dpatch, NONE, 1.1 309-define-dummy-herwig-routines.dpatch, NONE, 1.1 310-define-dummy-fowl-routines.dpatch, NONE, 1.1 311-skip-duplicate-qnext.dpatch, NONE, 1.1 312-skip-duplicate-gamma.dpatch, NONE, 1.1 313-comis-preserves-filename-case.dpatch, NONE, 1.1 314-permit-using-regcomp-for-re_comp.dpatch, NONE, 1.1 315-fixes-for-MacOSX.dpatch, NONE, 1.1 3! 18-additional-gcc-3.4-fixes.dpatch,NONE,1.1 701-patch-hbook-co! mis-Im

Patrice Dumas (pertusus) fedora-extras-commits at redhat.com
Fri Dec 9 16:09:21 UTC 2005


Author: pertusus

Update of /cvs/extras/rpms/cernlib/FC-4
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv26165

Modified Files:
	001-fix-missing-fluka.dpatch 002-fix-missing-mclibs.dpatch 
	700-remove-kernlib-from-packlib-Imakefile.dpatch 
	cernlib-cernlib_kernlib.patch cernlib-deadpool.txt 
	cernlib-gxint-script.diff cernlib.README cernlib.spec 
	paw.README sources 
Added Files:
	003-geant-dummy-functions.dpatch 
	100-fix-isajet-manual-corruption.dpatch 
	101-undefine-PPC.dpatch 102-dont-optimize-some-code.dpatch 
	103-ignore-overly-long-macro-in-gen.h.dpatch 
	104-fix-undefined-insertchar-warning.dpatch 
	105-fix-obsolete-xmfontlistcreate-warning.dpatch 
	106-fix-paw++-menus-in-lesstif.dpatch 
	107-define-strdup-macro-safely.dpatch 
	108-quote-protect-comis-script.dpatch 
	110-ignore-included-lapack-rule.dpatch 
	111-fix-kuesvr-install-location.dpatch 
	112-remove-nonexistent-prototypes-from-gen.h.dpatch 
	113-cups-postscript-fix.dpatch 
	114-install-scripts-properly.dpatch 
	200-comis-allow-special-chars-in-path.dpatch 
	201-update-kuip-helper-apps.dpatch 
	202-fix-includes-in-minuit-example.dpatch 
	203-compile-geant-with-ertrak.dpatch 
	204-compile-isajet-with-isasrt.dpatch 
	205-max-path-length-to-256.dpatch 
	206-herwig-uses-DBLE-not-REAL.dpatch 
	207-compile-temp-libs-with-fPIC.dpatch 
	208-fix-redundant-packlib-dependencies.dpatch 
	209-ignore-unneeded-headers-in-kmutil.c.dpatch 
	210-improve-cfortran-header-files.dpatch 
	211-fix-comis-on-64-bit-arches.dpatch 
	300-skip-duplicate-lenocc.dpatch 
	303-shadow-passwords-supported.dpatch 
	304-update-Imake-config-files.dpatch 
	305-use-POWERPC-not-PPC-as-test.dpatch 
	306-patch-assert.h-for-makedepend.dpatch 
	307-use-canonical-cfortran.dpatch 
	308-use-canonical-cfortran-location.dpatch 
	309-define-dummy-herwig-routines.dpatch 
	310-define-dummy-fowl-routines.dpatch 
	311-skip-duplicate-qnext.dpatch 
	312-skip-duplicate-gamma.dpatch 
	313-comis-preserves-filename-case.dpatch 
	314-permit-using-regcomp-for-re_comp.dpatch 
	315-fixes-for-MacOSX.dpatch 
	318-additional-gcc-3.4-fixes.dpatch 
	701-patch-hbook-comis-Imakefiles.dpatch 
	702-patch-Imakefiles-for-packlib-mathlib.dpatch 
	703-patch-code_motif-packlib-Imakefiles.dpatch 
	704-patch-code_kuip-higzcc-Imakefiles.dpatch 
	705-patch-paw_motif-paw-Imakefiles.dpatch 
	800-implement-shared-library-rules-in-Imake.dpatch 
	801-non-optimized-rule-uses-fPIC-g.dpatch 
	802-create-shared-libraries.dpatch 
	803-link-binaries-dynamically.dpatch 
	804-workaround-for-comis-mdpool-struct-location.dpatch 
	805-expunge-missing-mathlib-kernlib-symbols.dpatch 
	806-bump-mathlib-and-dependents-sonames.dpatch 
	cernlib-enforce-FHS.diff cernlib-hwhiga_use_dimag.diff 
	cernlib-hwuli2_use_dimag.diff cernlib_2005.05.09.dfsg-2.diff 
Removed Files:
	003-enforce-FHS 005-enable-shadow-passwd 008-undef-PPC 
	010-comis-allow-special-chars-in-path 
	012-add-no-optimization-macro 
	013-fix-paw-imakefile-special-rules 
	013-fix-paw-imakefile-special-rules-modified 
	014-fix-herwig-imakefile-special-rules 015-fix-optimization 
	028-fix-isajet-docs 029-fixes-for-MacOSX 
	030-filename-length-to-256 032-use-regcomp-not-re_comp 
	033-fix-undefined-insertchar 035-do-not-use-XmFontListCreate 
	038-fix-strndup-macro-problem 039-use-DBLE-not-REAL 
	044-fix-strdup-redefinition 045-compile-with-isasrt 
	047-fix-paw++-menus cernlib-XmDrawShadow-no-prototype.patch 
	cernlib-bimsel-nodouble-save.diff cernlib-config_pmac.diff 
	cernlib-hwhiga_use_aimag.diff cernlib-hwuli2_use_aimag.diff 
	cernlib-includelist.txt cernlib-install_scripts.patch 
	cernlib-static-tcpaw.diff cernlib_2004.11.04-3.diff 
Log Message:
- use new debian patchset
- enable 64 bit fixes patch
- remove the BSD in the licence because there is no library nor binary
  under a BSD licence and someone could get the idea that there is 
  some dual BSD/GPL licenced binaries or libraries. The LGPL is kept
  because of cfortran
- update with newer debian patchset for cernlib, fix licence issues
- build shared libraries
- simplify the scripts modifications

sync with devel



--- NEW FILE 003-geant-dummy-functions.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 003-geant-dummy-functions.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Add stub Geant functions to avoid missing symbols due to Fluka removal.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/gkine/Imakefile cernlib-2005.05.09.dfsg/src/geant321/gkine/Imakefile
--- cernlib-2005.05.09.dfsg~/src/geant321/gkine/Imakefile	1996-03-28 16:21:20.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/gkine/Imakefile	2005-11-29 15:59:27.035065621 +0000
@@ -1,6 +1,9 @@
 SRCS_F= gfkine.F gfvert.F gludky.F glund.F glundi.F gpkine.F \ @@\
 	gpkinx.F gpvert.F gskine.F gskinu.F gsvert.F gsveru.F gtau.F
 
+/* Dummy file containing stubs for deleted Fluka and mclibs functions: */
+SRCS_C= dummy.c
+
 #ifdef CERNLIB_QMVAOS
  FORTRANSAVEOPTION=FortranSaveFlags
  FORTRANOPTIONS = -math_library accurate $(FORTRANSAVEOPTION)
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/gkine/dummy.c cernlib-2005.05.09.dfsg/src/geant321/gkine/dummy.c
--- cernlib-2005.05.09.dfsg~/src/geant321/gkine/dummy.c	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/gkine/dummy.c	2005-11-29 16:55:14.274440352 +0000
@@ -0,0 +1,205 @@
+/* Dummy file to avoid undefined symbols in the library */
+/* Kevin McCarty, 14 Jan 2003 */
+/* Last revised 22 November 2005 */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Want the dummy functions to be weakly defined so they may be overridden
+ * without error. */
+
+#define kludge(x)    #x
+#define stringify(x) kludge(x)
+#define underline(x) __ ## x
+
+#define DUMMY(domain, UPPERNAME, fortranname_, returntype) \
+returntype fortranname_() {print_dummy(#domain,#UPPERNAME);}
+
+#define WEAKDUMMY(domain, UPPERNAME, fortranname_, returntype) \
+static returntype underline(fortranname_)() {print_dummy(#domain,#UPPERNAME);} \
+void fortranname_() \
+	__attribute__ ((weak, alias (stringify(underline(fortranname_))) ))
+
+static void print_dummy(const char *domain, const char *function)
+{
+  fprintf(stderr, "Geant321: Now in dummy %s routine.\n", function);
+  fprintf(stderr,
+"If you see this message, you are presumably trying to call (possibly\n"
+"indirectly) the %s routine");
+
+  if (strcmp(domain, "Jetset") == 0)
+    fprintf(stderr,
+" in the Jetset library.\n"
+#if defined (CERNLIB_DEBIAN)
+"To obtain the Jetset library, please see the file\n"
+"/usr/share/doc/geant321/README.Debian\n"
+#endif
+    );
+
+  else if (strcmp(domain, "Fluka") == 0)
+    fprintf(stderr,
+" in the FLUKA library.\n"
+"FLUKA is unfortunately not available in this distribution of Cernlib for\n"
+"licensing reasons"
+#if defined (CERNLIB_DEBIAN)
+"; please see the file /usr/share/doc/geant321/README.Debian\n"
+"for details.\n"
+#else
+".\n"
+#endif
+    );
+  
+  else if (strcmp(domain, "User") == 0)
+    fprintf(stderr, ".  This routine is not built into Geant;\n"
+"you must write code for it yourself.  Please see the documentation"
+#if defined (CERNLIB_DEBIAN)
+"\n(for instance in the geant321-doc package)"
+#endif
+".\n");
+  
+  exit(EXIT_FAILURE);
+}
+
+/* Functions that the user is supposed to set up */
+WEAKDUMMY(User, UGINIT, uginit_, void);
+WEAKDUMMY(User, UGLAST, uglast_, void);
+
+/* Functions in the non-free Jetset library, which can be used
+ * if it's installed */
+WEAKDUMMY(Jetset, LU1ENT, lu1ent_, void);
+WEAKDUMMY(Jetset, LUCOMP, lucomp_, int);
+WEAKDUMMY(Jetset, LUEEVT, lueevt_, void);
+WEAKDUMMY(Jetset, LUEXEC, luexec_, void);
+
+/* N.B.  When the libgeant321 dynamic soversion is bumped, at the same time
+ * everything below this point except the dummy FLDIST and FLINIT subroutines
+ * may be deleted; those should be turned into weak aliases in case anyone
+ * wants to create a separate GEANT-FLUKA library. */
+
+/* From src/geant321/fluka (not the complete set of functions, just
+ * those referenced from external files) */
+WEAKDUMMY(Fluka, DOST,   dost_,   double);
+WEAKDUMMY(Fluka, EEXLVL, eexlvl_, void);
+WEAKDUMMY(Fluka, EVENTV, eventv_, void);
+WEAKDUMMY(Fluka, EVEVAP, evevap_, void);
+WEAKDUMMY(Fluka, EVVINI, evvini_, void);
+WEAKDUMMY(Fluka, FKENER, fkener_, double);
+WEAKDUMMY(Fluka, FKZERO, fkzero_, void);
+WEAKDUMMY(Fluka, NIZLNW, nizlnw_, void);
+WEAKDUMMY(Fluka, NUCREL, nucrel_, void);
+WEAKDUMMY(Fluka, RACO,   raco_,   void);
+WEAKDUMMY(Fluka, SAMCST, samcst_, void);
+WEAKDUMMY(Fluka, SIGEL,  sigel_,  void);
+WEAKDUMMY(Fluka, SITSAO, sitsao_, double);
+
+/* The following dummy functions are added due to the removal
+ * of the corresponding code from Geant (it is also part of FLUKA).
+ * We are constrained to keep the ABI for the dynamic library, so
+ * these dummy functions must be kept until next time the libgeant321
+ * soversion is changed. */
+
+/* From src/geant321/fiface */
+DUMMY(Fluka, FLDIST, fldist_, void);
+DUMMY(Fluka, FLINIT, flinit_, void);
+DUMMY(Fluka, FLUFIN, flufin_, void);
+
+/* From src/geant321/miface */
+DUMMY(Fluka, GFMFIN, gfmfin_, void);
+DUMMY(Fluka, GFMDIS, gfmdis_, void);
+
+/* From src/geant321/block */
+DUMMY(Fluka, FDEVAP, fdevap_, void);
+DUMMY(Fluka, FDNOPT, fdnopt_, void);
+DUMMY(Fluka, FDPREE, fdpree_, void);
+DUMMY(Fluka, FLKDT1, flkdt1_, void);
+DUMMY(Fluka, FLKDT2, flkdt2_, void);
+DUMMY(Fluka, FLKDT3, flkdt3_, void);
+DUMMY(Fluka, FLKDT4, flkdt4_, void);
+DUMMY(Fluka, FLKDT5, flkdt5_, void);
+DUMMY(Fluka, FLKDT6, flkdt6_, void);
+DUMMY(Fluka, FLKDT7, flkdt7_, void);
+
+/* From src/geant321/peanut */
+DUMMY(Fluka, BIMNXT, bimnxt_, void);   /* alternate entry to BIMSEL */
+DUMMY(Fluka, BIMSEL, bimsel_, void);
+DUMMY(Fluka, COSLEG, cosleg_, double);
+DUMMY(Fluka, FEKFNC, fekfnc_, double);
+DUMMY(Fluka, FPFRNC, fpfrnc_, double);
+DUMMY(Fluka, FRADNC, fradnc_, double);
+DUMMY(Fluka, FRHINC, frhinc_, double);
+DUMMY(Fluka, FRHONC, frhonc_, double);
+DUMMY(Fluka, NCLVFX, nclvfx_, double); /* alternate entry to PFNCLV */
+DUMMY(Fluka, NCLVIN, nclvin_, void);
+DUMMY(Fluka, NCLVST, nclvst_, void);
+DUMMY(Fluka, NUCNUC, nucnuc_, void);
+DUMMY(Fluka, NWINXT, nwinxt_, void);   /* alternate entry to NWISEL */
+DUMMY(Fluka, NWISEL, nwisel_, void);
+DUMMY(Fluka, PEANUT, peanut_, void);
+DUMMY(Fluka, PFNCLV, pfnclv_, double);
+DUMMY(Fluka, PHDSET, phdset_, void);
+DUMMY(Fluka, PHDWLL, phdwll_, void);
+DUMMY(Fluka, PIOABS, pioabs_, void);
+DUMMY(Fluka, PREPRE, prepre_, void);
+DUMMY(Fluka, RSCOMP, rscomp_, void);   /* alternate entry to SBCOMP */
+DUMMY(Fluka, RSTNXT, rstnxt_, void);   /* alternate entry to RSTSEL */
+DUMMY(Fluka, RSTSEL, rstsel_, void);
+DUMMY(Fluka, SBCOMP, sbcomp_, void);
+DUMMY(Fluka, SIGFER, sigfer_, void);
+DUMMY(Fluka, UMOFIN, umofin_, void);
+DUMMY(Fluka, XINNEU, xinneu_, double);
+DUMMY(Fluka, XINPRO, xinpro_, double);
+
+/* The following dummy common blocks are added for the same reason.
+ * The number of bytes required was determined by inspecting the existing
+ * shared libraries in the 12 official Debian architectures and determining
+ * the maximum size of each common block there. */
+
+#define COMMON(fortranname_, size) \
+        struct { char c[size]; } fortranname_ = { { 0, } }
+
+COMMON(fkadhn_, 1376);
+COMMON(fkadhp_, 3712);
+COMMON(fkbala_,  288);
+COMMON(fkcd97_, 1152);
+COMMON(fkchpa_, 1472);
+COMMON(fkchpr_,  576);
+COMMON(fkcmcy_,  176);
+COMMON(fkcomc_, 7424);
+COMMON(fkcosp_,   64);
+COMMON(fkdecc_,10816);
+COMMON(fkdech_, 4328);
+COMMON(fkenco_,   16);
+COMMON(fkeva0_,60960);
+COMMON(fkfinu_,52000);
+COMMON(fkhadf_,  352);
+COMMON(fkheac_,   96);
+COMMON(fkheav_, 5408);
+COMMON(fkhet7_,   64);
+COMMON(fkhetp_,   32);
+COMMON(fkhigf_, 1632);
+COMMON(fkidgb_,   16);
+COMMON(fkinpf_,   32);
+COMMON(fkisot_,10208);
+COMMON(fkmapa_, 5824);
+COMMON(fknegx_,  128);
+COMMON(fknuct_,   16);
+COMMON(fknuda_, 1248);
+COMMON(fknuge_, 1120);
+COMMON(fknugi_,26944);
+COMMON(fknuii_, 1888);
+COMMON(fknule_,18048);
+COMMON(fknupw_,   32);
+COMMON(fkpapr_, 2400);
+COMMON(fkpare_,  256);
+COMMON(fkparn_, 7296);
+COMMON(fkpart_, 9696);
+COMMON(fkploc_, 2864);
+COMMON(fkquar_,  832);
+COMMON(fkreac_,50976);
+COMMON(fkredv_, 2368);
+COMMON(fkresn_,  256);
+COMMON(fkrun_,    32);
+COMMON(fkslop_,  608);
+COMMON(fkxsep_,13600);
+


--- NEW FILE 100-fix-isajet-manual-corruption.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 100-fix-isajet-manual-corruption.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix corruption in LaTeX source to the Isajet manual.
## DP: (Replacement text obtained from a PS version of the manual on the web.)

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mclibs/isajet/doc/physics.doc /tmp/dpep.tlmeFD/cernlib-2005.05.09/src/mclibs/isajet/doc/physics.doc
--- cernlib-2005.05.09/src/mclibs/isajet/doc/physics.doc	2001-10-08 10:03:08.000000000 -0400
+++ /tmp/dpep.tlmeFD/cernlib-2005.05.09/src/mclibs/isajet/doc/physics.doc	2005-06-08 16:12:37.814042242 -0400
@@ -122,7 +122,7 @@
 $W/Z$ decay. These were calculated using FORM 1.1 by J.~Vermaseren. The
 process $g + t \to W + b$ is {\it not} included. Both $g + b \to W^- +
 t$ and $g + \bar t \to W^- + \bar b$ of course give the same $W^- + t
-+\BARB_FINALSTATEAFTERQCDEVOLUTION
++\bar b$ final state after QCD evolution.  While the latter process is
 needed to describe the $m_t = 0$(!) mass singularity for $q_t \gg
 m_t$, it has a pole in the physical region at low $q_t$ from on-shell
 $t \to W + b$ decays. There is no obvious way to avoid this without


--- NEW FILE 101-undefine-PPC.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 101-undefine-PPC.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: If "PPC" is defined by compiler, undefine where it clashes with a
## DP: local variable.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mclibs/cojets/code/bradlp.F /tmp/dpep.aeMGeJ/cernlib-2005.05.09/src/mclibs/cojets/code/bradlp.F
--- cernlib-2005.05.09/src/mclibs/cojets/code/bradlp.F	1996-01-11 09:14:33.000000000 -0500
+++ /tmp/dpep.aeMGeJ/cernlib-2005.05.09/src/mclibs/cojets/code/bradlp.F	2005-06-08 17:00:48.403200778 -0400
@@ -37,6 +37,15 @@
 #include "cojets/zpar2.inc"
 #include "cojets/zwpar.inc"
 #include "cojets/weakon.inc"
+
+C     The following is necessary since PPC is defined in g77 on
+C     the powerpc architecture, but it's also a variable in this
+C     file.
+C       -- Kevin McCarty
+#ifdef PPC
+#undef PPC
+#endif
+
       DIMENSION QP(4),QM(4),QK(4),QE(4),QN(4)
       DIMENSION COEF(2,2),QQV(2)
 C


--- NEW FILE 102-dont-optimize-some-code.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 102-dont-optimize-some-code.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Don't allow the compiler to optimize several files that cause trouble
## DP: (either compiler crash or broken code generation).

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mathlib/gen/d/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	1996-06-12 11:25:38.000000000 -0400
+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	2005-06-09 11:14:52.470486750 -0400
@@ -19,6 +19,11 @@
 SRCS_F:= $(SRCS_F) cgauss64.F dgquad.F dgset.F gauss64.F minfc64.F \ @@\
 	rcauch.F rdeqbs.F rdeqmr.F rderiv.F rfrdh1.F rgmlt.F rkstp64.F \ @@\
 	simps64.F triint64.F 
+#if defined(CERNLIB_LINUX)
+/* -O3 optimization breaks in g77 3.2 */
+SpecialFortranLibObjectRule(rderiv,rderiv,-O0,NullParameter)
+SpecialFortranLibObjectRule(rfrdh1,rfrdh1,-O0,NullParameter)
+#endif
 #else
 SRCS_F:= $(SRCS_F) cgauss128.F cauchy.F cauchy128.F deqbs128.F deqmr128.F \ @@\
 	deriv128.F minfc128.F rfrdh128.F rgmlt128.F rkstp128.F simps128.F \ @@\
@@ -37,6 +42,16 @@
 IMAKE_DEFINES=-DFortranDoesCpp=NO
 #endif
 
+#if defined(CERNLIB_LINUX)
+/* -O3 optimization breaks in g77 3.2 */
+SpecialFortranLibObjectRule(rknysd,rknysd,-O0,NullParameter)
+SpecialFortranLibObjectRule(old506,old506,-O0,NullParameter)
+
+/* -O1 -fno-automatic optimization creates wrong code in g77 2.95, 3.3, 3.4
+   due to x86 chip extended precision, cf. http://bugs.debian.org/290438 */
+SpecialFortranLibObjectRule(radmul,radmul,-O0,NullParameter)
+#endif
+
 FORTRANSAVEOPTION = FortranSaveFlags
 
 SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/mathlib/gen/e/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mathlib/gen/e/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/e/Imakefile	1996-05-01 09:21:54.000000000 -0400
+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/mathlib/gen/e/Imakefile	2005-06-09 11:16:07.058731880 -0400
@@ -12,6 +12,11 @@
 
 #if defined(CERNLIB_DOUBLE)
 SRCS_F:= $(SRCS_F) chsum.F dchebn.F rchecf.F rcspln.F
+#if defined(CERNLIB_LINUX)
+/* -O3 optimization breaks in g77 3.2 */
+SpecialFortranLibObjectRule(rchecf,rchecf,-O0,NullParameter)
+SpecialFortranLibObjectRule(rcspln,rcspln,-O0,NullParameter)
+#endif
 #else
 SRCS_F:= $(SRCS_F) chsum128.F rchebn.F rcspln128.F
 #endif
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
@@ -4,4 +4,8 @@
 
 FORTRANSAVEOPTION = FortranSaveFlags
 
+#if defined(CERNLIB_LINUX)
+SpecialFortranLibObjectRule(isawev,isawev,-O0,NullParameter)
+#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 @@
 #ifdef CERNLIB_HPUX
 FORTRANOPTIONS += '-WF,-P'
 #endif
+
+#if defined(CERNLIB_LINUX)
+/* -O2 optimization on ARM breaks in g77 3.3.3 */
+SpecialFortranLibObjectRule(structm,structm,-O0,NullParameter)
+#endif
+
 SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/packlib/kernlib/kernnum/c204fort/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/packlib/kernlib/kernnum/c204fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/c204fort/Imakefile	1996-06-10 06:20:57.000000000 -0400
+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/packlib/kernlib/kernnum/c204fort/Imakefile	2005-06-09 11:09:34.621022534 -0400
@@ -14,6 +14,11 @@
 FDEBUGFLAGS=+O1
 #endif
 
+#if defined(CERNLIB_LINUX)
+/* -O3 optimization breaks in g77 3.2 */
+SpecialFortranLibObjectRule(muller,muller,-O0,NullParameter)
+#endif
+
 FORTRANSAVEOPTION = FortranSaveFlags
 
 SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/packlib/kernlib/kernnum/g900fort/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/packlib/kernlib/kernnum/g900fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/g900fort/Imakefile	1996-06-12 06:04:36.000000000 -0400
+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/packlib/kernlib/kernnum/g900fort/Imakefile	2005-06-09 11:10:40.068274255 -0400
@@ -4,6 +4,11 @@
 FDEBUGFLAGS=NoOpFortranDebugFlags
 #endif
 
+#if defined(CERNLIB_LINUX)
+/* -O3 optimization breaks in g77 3.2 */
+SpecialFortranLibObjectRule(ranget,ranget,-O0,NullParameter)
+#endif
+
 FORTRANSAVEOPTION=FortranSaveFlags
 
 SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/pawlib/comis/code/Imakefile /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/pawlib/comis/code/Imakefile
--- cernlib-2005.05.09/src/pawlib/comis/code/Imakefile	2001-09-14 09:08:51.000000000 -0400
+++ /tmp/dpep.hNz5sX/cernlib-2005.05.09/src/pawlib/comis/code/Imakefile	2005-06-09 11:19:57.756983183 -0400
@@ -101,4 +101,10 @@
 SpecialFortranLibObjectRule(cskide,cskide,-O0,NullParameter)
 #endif
 
+#if defined(CERNLIB_LINUX)
+/* optimizing this file, even at -O1, causes runtime breakage with g77 3.3
+   cf. http://bugs.debian.org/233689 */
+SpecialFortranLibObjectRule(csrfun,csrfun,-O0,NullParameter)
+#endif
+
 SubdirLibraryTarget(NullParameter,NullParameter)


--- NEW FILE 103-ignore-overly-long-macro-in-gen.h.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 103-ignore-overly-long-macro-in-gen.h.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Comment out macro in cfortran/gen.h with too many arguments for cfortran
## DP: to accept.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/gen.h /tmp/dpep.weQ8Dc/cernlib-2005.05.09/src/cfortran/gen.h
--- cernlib-2005.05.09/src/cfortran/gen.h	2000-06-23 06:13:58.000000000 -0400
+++ /tmp/dpep.weQ8Dc/cernlib-2005.05.09/src/cfortran/gen.h	2005-06-09 11:43:16.729842789 -0400
@@ -1123,10 +1123,10 @@
 
 PROTOCCALLSFSUB3(NAMEZB,namezb,FLOAT,INT,INT)
 #define NAMEZB(A1,A2,A3)  CCALLSFSUB3(NAMEZB,namezb,FLOAT,INT,INT,A1,A2,A3)
-
+/*
 PROTOCCALLSFSUB29(NEWPTQ,newptq,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT)
 #define NEWPTQ(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)  CCALLSFSUB29(NEWPTQ,newptq,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,PDOUBLE,DOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PDOUBLE,PINT,PINT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29)
-
+*/
 PROTOCCALLSFSUB9(NEWRO,newro,INT,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV)
 #define NEWRO(A1,A2,A3,A4,A5,A6,A7,A8,A9)  CCALLSFSUB9(NEWRO,newro,INT,INT,INT,FLOAT,PFLOAT,FLOATV,FLOATV,FLOATV,FLOATV,A1,A2,A3,A4,A5,A6,A7,A8,A9)
 


--- NEW FILE 104-fix-undefined-insertchar-warning.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 104-fix-undefined-insertchar-warning.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Correct Lesstif warning about undefined InsertChar.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/kuipio.c /tmp/dpep.XJ5w0K/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/kuipio.c
--- cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/kuipio.c	1996-03-08 10:33:04.000000000 -0500
+++ /tmp/dpep.XJ5w0K/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/kuipio.c	2005-06-09 14:36:52.509109480 -0400
@@ -573,7 +573,7 @@
                         EditMenu,
                         RES_CONVERT( XmNlabelString, "Copy" ),
                         RES_CONVERT( XmNmnemonic, "C" ),
-                        XmNaccelerator, "Ctrl<Key>InsertChar",
+                        XmNaccelerator, "Ctrl<Key>Insert",
                         RES_CONVERT( XmNacceleratorText, "Ctrl+Ins" ),
                         NULL );
         UxPutContext( copyButton, (char *) UxKuipIoContext );
@@ -585,7 +585,7 @@
                         EditMenu,
                         RES_CONVERT( XmNlabelString, "Paste" ),
                         RES_CONVERT( XmNmnemonic, "P" ),
-                        XmNaccelerator, "Shift<Key>InsertChar",
+                        XmNaccelerator, "Shift<Key>Insert",
                         RES_CONVERT( XmNacceleratorText, "Shift+Ins" ),
                         NULL );
         UxPutContext( pasteButton, (char *) UxKuipIoContext );


--- NEW FILE 105-fix-obsolete-xmfontlistcreate-warning.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 105-fix-obsolete-xmfontlistcreate-warning.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix Lesstif warning about use of obsolete XmFontListCreate() function

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c /tmp/dpep.kv7bf1/cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c
--- cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c	1996-10-24 08:13:41.000000000 -0400
+++ /tmp/dpep.kv7bf1/cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c	2005-06-09 14:39:00.831812710 -0400
@@ -776,6 +776,7 @@
  ***********************************************************************/
 static void init_data ()
 {
+  /* This function edited not to use obsolete function XmFontListCreate() */
     int k;
 
     km_charset = XmSTRING_DEFAULT_CHARSET;
@@ -792,8 +793,11 @@
        if (help_font_struct == NULL)
            printf ("%s Warning: Font loaded for HELP (%s) is NULL \n",
                    main_prompt, srec.Help_font);
-       else
-           help_font = XmFontListCreate (help_font_struct,km_charset);
+       else {
+	   XmFontListEntry entry = XmFontListEntryCreate(
+	       km_charset, XmFONT_IS_FONT, (XtPointer)help_font_struct );
+           help_font = XmFontListAppendEntry( NULL, entry );
+       }
    }
 
    /*
diff -urNad cernlib-2005.05.09/src/pawlib/paw/cmotif/att_font.c /tmp/dpep.kv7bf1/cernlib-2005.05.09/src/pawlib/paw/cmotif/att_font.c
--- cernlib-2005.05.09/src/pawlib/paw/cmotif/att_font.c	2000-10-03 10:11:22.000000000 -0400
+++ /tmp/dpep.kv7bf1/cernlib-2005.05.09/src/pawlib/paw/cmotif/att_font.c	2005-06-09 14:39:00.803818666 -0400
@@ -215,18 +215,22 @@
  *****************************************************************************/
 static void MajButton(Widget w, Widget font,Widget pre,int postab)
 {
+   /* this function edited not to use obsolete function XmFontListCreate() */
    XmFontList police;
+   XmFontListEntry entry;
    XFontStruct *info_police;
    char strlabel[20];
    int prenum,policenum;
-
+   
    XtVaGetValues(pre,XmNuserData,&prenum,NULL);
    prenum--;
    XtVaGetValues(font,XmNuserData,&policenum,NULL);
    policenum--;
    if (( info_police=XLoadQueryFont(UxDisplay,StrFontTab[policenum]))== NULL)
       fprintf(stderr,"Unable to load font %s \n ",StrFontTab[policenum]);
-   police=XmFontListCreate(info_police,XmSTRING_DEFAULT_CHARSET);
+   entry = XmFontListEntryCreate(XmSTRING_DEFAULT_CHARSET,XmFONT_IS_FONT,
+				 (XtPointer)info_police);
+   police=XmFontListAppendEntry(NULL,entry);
    XtVaSetValues(w,XmNfontList,police,NULL);
    /* XFreeFont(UxDisplay,info_police);*/
 


--- NEW FILE 106-fix-paw++-menus-in-lesstif.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 106-fix-paw++-menus-in-lesstif.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix odd behavior of Paw++ menus when compiled against Lesstif.  The
## DP: problem is that Paw++ Motif code does some awfully weird things that
## DP: Lesstif doesn't support; cf. http://bugs.debian.org/270862 .

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c /tmp/dpep.KorIaA/cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c
--- cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c	2005-06-09 14:41:14.451377612 -0400
+++ /tmp/dpep.KorIaA/cernlib-2005.05.09/src/packlib/kuip/code_motif/mkuip.c	2005-06-09 14:41:22.929573007 -0400
@@ -1066,7 +1066,7 @@
 {
     int narg;
     Arg arglist[2];
-    Widget id_pdm;
+    Widget id_pdm, id_pdm_shell;
     Widget PdMenu[15];
 
     /*
@@ -1076,8 +1076,19 @@
     UxKuipBrowserContext = (_UxCkuipBrowser *)UxGetContext(parent);
 
     /*  create pulldown_menu */
-    id_pdm = XmCreatePulldownMenu (browserMenu,"OptionsPdMenu",arglist,0);
-
+    id_pdm_shell = XtVaCreatePopupShell ("OptionsPdMenu_shell",
+	xmMenuShellWidgetClass, browserMenu,
+	XmNwidth, 1,
+	XmNheight, 1,
+	XmNallowShellResize, TRUE,
+	XmNoverrideRedirect, TRUE,
+	NULL );
+    id_pdm = XtVaCreateWidget( "OptionsPdMenu",
+	xmRowColumnWidgetClass,
+	id_pdm_shell,
+	XmNrowColumnType, XmMENU_PULLDOWN,
+	NULL );
+/*  id_pdm = XmCreatePulldownMenu (browserMenu,"OptionsPdMenu",arglist,0); */
 
     /* create pulldown_menu_entry "Options" */
     XtVaCreateManagedWidget( "optionsMenu",
@@ -1091,7 +1102,7 @@
 /*  create list of push_buttons and separators for menu "Option"             */
 /*  create pulldown_menu for "Raise Window" (with list of appl. shells)       */
     narg = 0;
-#if XmREVISION == 99 /* problem with REVISION 2 ! */
+#if XmVERSION > 1 || XmREVISION >= 2
     XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++;
 #endif
     kuipControlShellM = XmCreatePulldownMenu
@@ -1312,9 +1323,7 @@
 static void create_command_menu(parent)
    Widget parent;
 {
-    Widget id_pdme, id_pdm;
-    Arg    arglist[2];
-    int    narg;
+    Widget id_pdme, id_pdm, id_pdm_shell;
 
     /*
      *   find and restore the context for Browser
@@ -1323,12 +1332,26 @@
     UxKuipBrowserContext = (_UxCkuipBrowser *)UxGetContext(parent);
 
     /* create pulldown_menu_entry "Commands" for all commands */
-    narg = 0;
+
+    id_pdm_shell = XtVaCreatePopupShell ("CommandsPdMenu_shell",
+	xmMenuShellWidgetClass, browserMenu,
+	XmNwidth, 1,
+	XmNheight, 1,
+	XmNallowShellResize, TRUE,
+	XmNoverrideRedirect, TRUE,
+	NULL );
+    
+    id_pdm = XtVaCreateWidget( "CommandsPdMenu",
+	xmRowColumnWidgetClass,
+	id_pdm_shell,
+	XmNrowColumnType, XmMENU_PULLDOWN,
 #if XmVERSION > 1 || XmREVISION >= 2
-    XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++;
+	XmNtearOffModel, XmTEAR_OFF_ENABLED,
 #endif
-    id_pdm = XmCreatePulldownMenu
-                     (browserMenu, "CommandsPdMenu", arglist, narg);
+	NULL );
+      
+/*      XmCreatePulldownMenu
+                     (browserMenu, "CommandsPdMenu", arglist, narg); */
 
     id_pdme = XtVaCreateManagedWidget( "id_pdme",
                         xmCascadeButtonGadgetClass, browserMenu,
@@ -1927,7 +1950,7 @@
    if (kuipControlShellM != NULL) XtDestroyWidget (kuipControlShellM);
 
    narg = 0;
-#if XmREVISION == 99 /* problem with REVISION 2 ! */
+#if XmVERSION > 1 || XmREVISION >= 2
    XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++;
 #endif
    kuipControlShellM = XmCreatePulldownMenu


--- NEW FILE 107-define-strdup-macro-safely.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 107-define-strdup-macro-safely.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: In some cases strdup() and strndup() are macros, causing a build
## DP: failure.  Ensure any such macros are undefined before redeclaring them.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/kuip/kstring.h /tmp/dpep.ieQnkg/cernlib-2005.05.09/src/packlib/kuip/kuip/kstring.h
--- cernlib-2005.05.09/src/packlib/kuip/kuip/kstring.h	1997-03-14 12:16:39.000000000 -0500
+++ /tmp/dpep.ieQnkg/cernlib-2005.05.09/src/packlib/kuip/kuip/kstring.h	2005-06-09 14:58:22.446739916 -0400
@@ -32,6 +32,9 @@
 
 extern char* strrstr( const char* str1, const char* str2 );
 
+#ifdef strdup
+# undef strdup /* otherwise the next function declaration may bomb */
+#endif
 #define strdup Strdup           /* prototype without const */
 extern char* strdup( const char* str );
 
@@ -46,6 +49,10 @@
                      const char* str4 );
 extern char* str5dup( const char* str1, const char* str2, const char* str3,
                      const char* str4, const char* str5 );
+
+#ifdef strndup
+# undef strndup /* otherwise the next function declaration may bomb */
+#endif
 extern char* strndup( const char* buf, size_t n );
 extern char* stridup( int i );
 


--- NEW FILE 108-quote-protect-comis-script.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 108-quote-protect-comis-script.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/src/pawlib/comis/code/cscrexec.F /tmp/dpep.tIRzzG/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F
--- cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2000-09-25 10:16:36.000000000 -0400
+++ /tmp/dpep.tIRzzG/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2005-06-09 15:41:16.757077306 -0400
@@ -70,7 +70,7 @@
       LEXEC=LENOCC(FEXEC)
       OPEN(LUNOUT,FILE=FEXEC(:LEXEC), STATUS='UNKNOWN',ERR=99)
       WRITE(LUNOUT,'(A)')         '#!/bin/sh'
-      WRITE(LUNOUT,'(A)')         'olddir=`pwd`'
+      WRITE(LUNOUT,'(A)')         'olddir="`pwd`"'
 *      WRITE(LUNOUT,'(A)')         'cd '//CHPATH(:LPATH)
       CHLINE=                     'cd '//CHPATH(:LPATH)
       L=LENOCC(CHLINE)
@@ -206,7 +206,7 @@
       CHLINE=                     '/bin/rm -f '//NAME(:LN)//'.o'
       L=LENOCC(CHLINE)
       WRITE(LUNOUT,'(A)')CHLINE(:L)
-      WRITE(LUNOUT,'(A)')         'cd $olddir'
+      WRITE(LUNOUT,'(A)')         'cd "$olddir"'
       WRITE(LUNOUT,'(A)')         'exit 0'
       CALL CSCLOS(LUNOUT)
       CLOSE(LUNOUT)


--- NEW FILE 110-ignore-included-lapack-rule.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 110-ignore-included-lapack-rule.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Comment out rule requiring liblapack in a subdirectory of mathlib code.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mathlib/Imakefile /tmp/dpep.Ib8j9x/cernlib-2005.05.09/src/mathlib/Imakefile
--- cernlib-2005.05.09/src/mathlib/Imakefile	1999-11-09 12:07:49.000000000 -0500
+++ /tmp/dpep.Ib8j9x/cernlib-2005.05.09/src/mathlib/Imakefile	2005-06-10 11:24:47.771309475 -0400
@@ -5,9 +5,12 @@
 
 LIBDIRS= gen bvsl
 
+/* Lapack is independent of Cernlib and should be installed as one of
+   the build dependencies.
 #ifndef WIN32
  LIBDIRS := $(LIBDIRS) lapack
 #endif
+*/
 
 SUBDIRS= $(LIBDIRS)
 


--- NEW FILE 111-fix-kuesvr-install-location.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 111-fix-kuesvr-install-location.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix install location of kuesvr binary.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/programs/kuesvr/Imakefile /tmp/dpep.ZmakmH/cernlib-2005.05.09/src/packlib/kuip/programs/kuesvr/Imakefile
--- cernlib-2005.05.09/src/packlib/kuip/programs/kuesvr/Imakefile	1996-03-11 10:43:22.000000000 -0500
+++ /tmp/dpep.ZmakmH/cernlib-2005.05.09/src/packlib/kuip/programs/kuesvr/Imakefile	2005-06-10 12:03:32.706178628 -0400
@@ -1,4 +1,4 @@
 
 NormalProgramTarget(kuesvr,kuesvr.o,NullParameter,NullParameter,NullParameter)
 
-InstallProgram(kuesvr,$(CERN)/$(CERN_LEVEL)/bin)
+InstallProgram(kuesvr,$(CERN_BINDIR))


--- NEW FILE 112-remove-nonexistent-prototypes-from-gen.h.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 112-remove-nonexistent-prototypes-from-gen.h.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Remove prototypes from gen.h of functions that don't exist in mathlib.
## DP: Because of the way cfortran works, their existence otherwise causes
## DP: linking failures in third-party code.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/gen.h /tmp/dpep.3jFEkx/cernlib-2005.05.09/src/cfortran/gen.h
--- cernlib-2005.05.09/src/cfortran/gen.h	2005-06-27 10:02:17.225463958 -0400
+++ /tmp/dpep.3jFEkx/cernlib-2005.05.09/src/cfortran/gen.h	2005-06-27 10:05:41.503584328 -0400
@@ -84,10 +84,10 @@
 
 PROTOCCALLSFFUN1(FLOAT,ALGAMA,algama,FLOAT)
 #define ALGAMA(A2)  CCALLSFFUN1(ALGAMA,algama,FLOAT,A2)
-
+/*
 PROTOCCALLSFFUN1(FLOAT,QLGAMA,qlgama,FLOAT)
 #define QLGAMA(A2)  CCALLSFFUN1(QLGAMA,qlgama,FLOAT,A2)
-
+*/
 PROTOCCALLSFFUN1(DOUBLE,DLGAMA,dlgama,DOUBLE)
 #define DLGAMA(A2)  CCALLSFFUN1(DLGAMA,dlgama,DOUBLE,A2)
 
@@ -141,10 +141,10 @@
 
 PROTOCCALLSFFUN5(DOUBLE,DCAUCH,dcauch,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE)
 #define DCAUCH(A2,A3,A4,A5,A6)  CCALLSFFUN5(DCAUCH,dcauch,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5,A6)
-
+/*
 PROTOCCALLSFFUN6(DOUBLE,CHEBQU,chebqu,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,DOUBLE)
 #define CHEBQU(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(CHEBQU,chebqu,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,INT,DOUBLE,A2,A3,A4,A5,A6,A7)
-
+*/
 PROTOCCALLSFFUN2(FLOAT,CHISIN,chisin,FLOAT,INT)
 #define CHISIN(A2,A3)  CCALLSFFUN2(CHISIN,chisin,FLOAT,INT,A2,A3)
 
@@ -204,13 +204,13 @@
 
 PROTOCCALLSFFUN3(DOUBLE,DVDOT,dvdot,INT,DOUBLEV,DOUBLEV)
 #define DVDOT(A2,A3,A4)  CCALLSFFUN3(DVDOT,dvdot,INT,DOUBLEV,DOUBLEV,A2,A3,A4)
-
+/*
 PROTOCCALLSFFUN2(DOUBLE,E401BD,e401bd,DOUBLE,DOUBLE)
 #define E401BD(A2,A3)  CCALLSFFUN2(E401BD,e401bd,DOUBLE,DOUBLE,A2,A3)
 
 PROTOCCALLSFFUN2(FLOAT,ELIN1,elin1,FLOAT,FLOAT)
 #define ELIN1(A2,A3)  CCALLSFFUN2(ELIN1,elin1,FLOAT,FLOAT,A2,A3)
-
+*/
 PROTOCCALLSFFUN1(FLOAT,ERF,erf,FLOAT)
 #define ERF(A2)  CCALLSFFUN1(ERF,erf,FLOAT,A2)
 
@@ -237,13 +237,13 @@
 
 PROTOCCALLSFFUN2(FLOAT,FREARG,frearg,FLOAT,FLOAT)
 #define FREARG(A2,A3)  CCALLSFFUN2(FREARG,frearg,FLOAT,FLOAT,A2,A3)
-
+/*
 PROTOCCALLSFFUN3(FLOAT,FRED2,fred2,FLOAT,FLOAT,FLOAT)
 #define FRED2(A2,A3,A4)  CCALLSFFUN3(FRED2,fred2,FLOAT,FLOAT,FLOAT,A2,A3,A4)
 
 PROTOCCALLSFFUN1(FLOAT,FRED3,fred3,FLOAT)
 #define FRED3(A2)  CCALLSFFUN1(FRED3,fred3,FLOAT,A2)
-
+*/
 PROTOCCALLSFFUN1(FLOAT,FREQ,freq,FLOAT)
 #define FREQ(A2)  CCALLSFFUN1(FREQ,freq,FLOAT,A2)
 
@@ -255,10 +255,10 @@
 
 PROTOCCALLSFFUN1(DOUBLE,DFRSIN,dfrsin,DOUBLE)
 #define DFRSIN(A2)  CCALLSFFUN1(DFRSIN,dfrsin,DOUBLE,A2)
-
+/*
 PROTOCCALLSFFUN2(FLOAT,FUN,fun,INT,FLOATV)
 #define FUN(A2,A3)  CCALLSFFUN2(FUN,fun,INT,FLOATV,A2,A3)
-
+*/
 PROTOCCALLSFFUN1(FLOAT,G116F1,g116f1,FLOAT)
 #define G116F1(A2)  CCALLSFFUN1(G116F1,g116f1,FLOAT,A2)
 
@@ -270,10 +270,10 @@
 
 PROTOCCALLSFFUN1(FLOAT,GAMMA,gamma,FLOAT)
 #define GAMMA(A2)  CCALLSFFUN1(GAMMA,gamma,FLOAT,A2)
-
+/*
 PROTOCCALLSFFUN1(FLOAT,QGAMMA,qgamma,FLOAT)
 #define QGAMMA(A2)  CCALLSFFUN1(QGAMMA,qgamma,FLOAT,A2)
-
+*/
 PROTOCCALLSFFUN1(DOUBLE,DGAMMA,dgamma,DOUBLE)
 #define DGAMMA(A2)  CCALLSFFUN1(DGAMMA,dgamma,DOUBLE,A2)
 
@@ -297,16 +297,16 @@
 
 PROTOCCALLSFFUN4(FLOAT,GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT)
 #define GAUSS(A2,A3,A4,A5)  CCALLSFFUN4(GAUSS,gauss,ROUTINE,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
-
+/*
 PROTOCCALLSFFUN4(FLOAT,QGAUSS,qgauss,ROUTINE,FLOAT,FLOAT,FLOAT)
 #define QGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(QGAUSS,qgauss,ROUTINE,FLOAT,FLOAT,FLOAT,A2,A3,A4,A5)
-
+*/
 PROTOCCALLSFFUN4(DOUBLE,DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE)
 #define DGAUSS(A2,A3,A4,A5)  CCALLSFFUN4(DGAUSS,dgauss,ROUTINE,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4,A5)
-
+/*
 PROTOCCALLSFFUN6(DOUBLE,GPINDP,gpindp,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,INT)
 #define GPINDP(A2,A3,A4,A5,A6,A7)  CCALLSFFUN6(GPINDP,gpindp,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,DOUBLE,INT,A2,A3,A4,A5,A6,A7)
-
+*/
 PROTOCCALLSFFUN2(INT,IGET,iget,INTV,INT)
 #define IGET(A2,A3)  CCALLSFFUN2(IGET,iget,INTV,INT,A2,A3)
 
@@ -315,16 +315,16 @@
 
 PROTOCCALLSFFUN3(INT,ILSUM,ilsum,INT,LOGICALV,INT)
 #define ILSUM(A2,A3,A4)  CCALLSFFUN3(ILSUM,ilsum,INT,LOGICALV,INT,A2,A3,A4)
-
+/*
 PROTOCCALLSFFUN10(FLOAT,QLINSQ,qlinsq,INT,INT,INT,FLOATV,PFLOAT,FLOATV,FLOATV,FLOATV,PDOUBLE,INT)
 #define QLINSQ(A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFFUN10(QLINSQ,qlinsq,INT,INT,INT,FLOATV,PFLOAT,FLOATV,FLOATV,FLOATV,PDOUBLE,INT,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
-
+*/
 PROTOCCALLSFFUN3(INT,LKKSPL,lkkspl,DOUBLE,DOUBLEV,INT)
 #define LKKSPL(A2,A3,A4)  CCALLSFFUN3(LKKSPL,lkkspl,DOUBLE,DOUBLEV,INT,A2,A3,A4)
-
+/*
 PROTOCCALLSFFUN4(INT,LOCHAR,lochar,INTV,INT,INTV,INT)
 #define LOCHAR(A2,A3,A4,A5)  CCALLSFFUN4(LOCHAR,lochar,INTV,INT,INTV,INT,A2,A3,A4,A5)
-
+*/
 PROTOCCALLSFFUN2(INT,MAXFZE,maxfze,FLOATV,INT)
 #define MAXFZE(A2,A3)  CCALLSFFUN2(MAXFZE,maxfze,FLOATV,INT,A2,A3)
 
@@ -339,10 +339,10 @@
 
 PROTOCCALLSFFUN2(INT,NDIGIT,ndigit,DOUBLE,DOUBLE)
 #define NDIGIT(A2,A3)  CCALLSFFUN2(NDIGIT,ndigit,DOUBLE,DOUBLE,A2,A3)
-
+/*
 PROTOCCALLSFFUN1(INT,NEAR1,near1,FLOAT)
 #define NEAR1(A2)  CCALLSFFUN1(NEAR1,near1,FLOAT,A2)
-
+*/
 PROTOCCALLSFFUN1(INT,NIC311,nic311,FLOAT)
 #define NIC311(A2)  CCALLSFFUN1(NIC311,nic311,FLOAT,A2)
 


--- NEW FILE 113-cups-postscript-fix.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 113-cups-postscript-fix.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Re-order PostScript output to work around CUPS printing issue.

@DPATCH@
diff -urNad cernlib-2005.05.09~/src/graflib/higz/ipost/ipdef.F cernlib-2005.05.09/src/graflib/higz/ipost/ipdef.F
--- cernlib-2005.05.09~/src/graflib/higz/ipost/ipdef.F	2003-03-20 09:14:10.000000000 +0000
+++ cernlib-2005.05.09/src/graflib/higz/ipost/ipdef.F	2005-09-20 18:59:21.992348547 +0000
@@ -316,6 +316,7 @@
       CALL IPPSTR('%%EndProlog@')
 *
       CALL IPPSTR('%%BeginSetup@')
+      CALL IPPSTR('%%EndSetup@')
       CALL IPPSTF(8,'newpath ')
       CALL IPSVRT(1)
       IF (MODE.EQ.1.OR.MODE.EQ.4) THEN
@@ -333,7 +334,6 @@
       ENDIF
       CALL IPPSTF(15,' .25 .25 scale ')
       IF (MODE.NE.3) CALL IPSVRT(1)
-      CALL IPPSTR('%%EndSetup@')
 *
       NBSAV0 = NBSAVE
       IF (MODE.NE.3) CALL IPPSTR('%%Page: number 1@')


--- NEW FILE 114-install-scripts-properly.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 114-install-scripts-properly.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Install scripts properly (i.e. don't try to strip them).

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/scripts/Imakefile cernlib-2005.05.09.dfsg/src/scripts/Imakefile
--- cernlib-2005.05.09.dfsg~/src/scripts/Imakefile	2004-07-29 10:17:08.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/scripts/Imakefile	2005-12-02 10:45:23.091782817 -0500
@@ -1,10 +1,10 @@
 
-InstallProgram(paw,$(CERN_BINDIR))
+InstallNamedProg(paw,paw,$(CERN_BINDIR))
 
 #if defined(CERNLIB_SHIFT)
 InstallNamedProg(cernlib_shift,cernlib,$(CERN_BINDIR))
 #else
-InstallProgram(cernlib,$(CERN_BINDIR))
+InstallNamedProg(cernlib,cernlib,$(CERN_BINDIR))
 #endif
 
-InstallProgram(gxint,$(CERN_BINDIR))
+InstallNamedProg(gxint,gxint,$(CERN_BINDIR))


--- NEW FILE 200-comis-allow-special-chars-in-path.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 200-comis-allow-special-chars-in-path.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/src/pawlib/paw/code/pawfca.F /tmp/dpep.gkT1Y2/cernlib-2005.05.09/src/pawlib/paw/code/pawfca.F
--- cernlib-2005.05.09/src/pawlib/paw/code/pawfca.F	1997-05-20 05:37:58.000000000 -0400
+++ /tmp/dpep.gkT1Y2/cernlib-2005.05.09/src/pawlib/paw/code/pawfca.F	2005-06-08 19:34:43.101436210 -0400
@@ -29,6 +29,7 @@
 C.    *        CHFUNC may be the name of a COMIS function              *
 C.    *        or a file name. A file cannot contain one of            *
 C.    *        the following characters: +*=-()<>                      *
+C.    *        [n.b. patched to work around this. --Kevin McCarty]     *
 C.    *                                                                *
 C.    ******************************************************************
 #include "paw/pawcfu.inc"
@@ -60,7 +61,11 @@
       IF(NCH.LE.0)GO TO 99
       IFILE=0
       TFILE=' '
-      IF(INDEX(CHFUNC,']').EQ.0.AND.INDEX(CHFUNC,':').EQ.0)THEN
+* Added '/' as a character symbolizing a filename; otherwise Unix paths
+* containing +, *, =, -, etc. return a bogus "Unknown routine" error
+* (Fix by Kevin McCarty)
+      IF(INDEX(CHFUNC,']').EQ.0.AND.INDEX(CHFUNC,':').EQ.0.AND.
+     +   INDEX(CHFUNC,'/').EQ.0)THEN
          IF(INDEX(CHFUNC,'+').NE.0.OR.
      +      INDEX(CHFUNC,'*').NE.0.OR.
      +      INDEX(CHFUNC,'=').NE.0.OR.


--- NEW FILE 201-update-kuip-helper-apps.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 201-update-kuip-helper-apps.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Instead of "ghostview" and "lp", call the more modern helper apps
## DP: "gv" and "lpr" from KUIP.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c /tmp/dpep.WCaWVF/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c	2003-02-13 09:25:23.000000000 -0500
+++ /tmp/dpep.WCaWVF/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c	2005-06-09 12:34:49.057760462 -0400
@@ -249,7 +249,7 @@
     host_psviewer = getenv( "PSVIEWER" );
   if( host_psviewer == NULL ) {
 #ifdef UNIX
-    host_psviewer = "ghostview";
+    host_psviewer = "gv";
 #endif
 #ifdef vms
     host_psviewer = "VIEW/FORM=PS/INTERFACE=DECWINDOWS";
@@ -277,7 +277,7 @@
 # if defined(MSDOS) || defined(CERNLIB_WINNT)
   ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'print $*'" );
 # else
-  ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'lp $*'" );
+  ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'lpr $*'" );
 # endif
 #else
   ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'XPRINT $*'" );
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf /tmp/dpep.WCaWVF/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf	1997-09-25 10:02:25.000000000 -0400
+++ /tmp/dpep.WCaWVF/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf	2005-06-09 12:35:59.499480148 -0400
@@ -925,7 +925,7 @@
 The startup value can be defined by the environment variables
 'KUIPPSVIEWER' or 'PSVIEWER'.
 .
-On Unix workstations it is by default set to 'ghostview'.
+On Unix workstations it is by default set to 'gv'.
 On VAX/VMS the default commands is 'VIEW/FORM=PS/INTERFACE=DECWINDOWS'.
 
 >Action kxhostpsviewer%C


--- NEW FILE 202-fix-includes-in-minuit-example.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 202-fix-includes-in-minuit-example.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: minuit-main example should have <> instead of "" around include files.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/Examples/minuit-main.c /tmp/dpep.SuauEf/cernlib-2005.05.09/src/cfortran/Examples/minuit-main.c
--- 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
 
-#include "cfortran.h"
-#include "minuit.h"
+#include <cfortran.h>
+#include <minuit.h>
 #define Ncont 20
 int main()
 {


--- NEW FILE 203-compile-geant-with-ertrak.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 203-compile-geant-with-ertrak.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Ertrak code added to library in Debian since I saw no reason to exclude.

@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:41:44.798536817 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/Imakefile	2005-11-23 15:43:39.618959247 +0000
@@ -5,11 +5,12 @@
 AllTarget(geant321)
 
 /* Fluka removed from Debian source package for copyright reasons. */
+/* Ertrak added to Debian since I saw no reason to leave it out. */
 LIBDIRS=       cdf cgpack              gbase gcons gdraw \ @@\
          geocad ggeom gheisha ghits ghrout ghutils giface \ @@\
 	 giopa gkine gphys gscan gstrag gtrak guser gxint \ @@\
-	 miface miguti neutron
-
+	 miface miguti neutron        \ @@\
+	 erdecks erpremc matx55
 
 SUBDIRS= $(LIBDIRS) data examples gxuser geant321
 


--- NEW FILE 204-compile-isajet-with-isasrt.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 204-compile-isajet-with-isasrt.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Include isasrt in the Isajet library, by request (cf.
## DP: http://bugs.debian.org/260469 )

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile /tmp/dpep.PM12lm/cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile
--- cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile	2001-10-08 09:06:49.000000000 -0400
+++ /tmp/dpep.PM12lm/cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile	2005-06-09 14:25:29.621215677 -0400
@@ -9,7 +9,7 @@
 	 fortop.F frgjet.F frgmnt.F gamma.F getpt.F gettot.F heavyx.F \ @@\
 	 hevolv.F higgs.F idanti.F idgen.F iframs.F inisap.F ipartns.F \ @@\
 	 ipjset.F iprtns.F irmov0.F isabeg.F isaend.F isaevt.F isaini.F \ @@\
-	 isajet.F ispjet.F istrad.F iswdky.F jetgen.F \ @@\
+	 isajet.F isasrt.F ispjet.F istrad.F iswdky.F jetgen.F \ @@\
 	 label.F lboost.F logerr.F \ @@\
 	 logic.F logp.F logphi.F logphw.F logpt.F logqm.F logqt.F logthw.F \ @@\
 	 logx.F logxw.F logyth.F logyw.F lstsq.F mbias.F mbset.F nogood.F \ @@\


--- NEW FILE 205-max-path-length-to-256.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 205-max-path-length-to-256.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Set max path length to 256 in Hbook.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/hbook/hbook/hcdire.inc /tmp/dpep.ceXWNa/cernlib-2005.05.09/src/packlib/hbook/hbook/hcdire.inc
--- cernlib-2005.05.09/src/packlib/hbook/hbook/hcdire.inc	2003-02-07 07:13:37.000000000 -0500
+++ /tmp/dpep.ceXWNa/cernlib-2005.05.09/src/packlib/hbook/hbook/hcdire.inc	2005-06-09 15:20:49.541661646 -0400
@@ -20,7 +20,7 @@
 *
 *CMZ :  4.20/03 28/07/93  09.33.32  by  Rene Brun
 *-- Author :
-      PARAMETER (NLPATM=100, MXFILES=50, LENHFN=128)
+      PARAMETER (NLPATM=100, MXFILES=50, LENHFN=256)
       COMMON /HCDIRN/NLCDIR,NLNDIR,NLPAT,ICDIR,NCHTOP,ICHTOP(MXFILES)
      +              ,ICHTYP(MXFILES),ICHLUN(MXFILES)
       CHARACTER*16   CHNDIR,    CHCDIR,    CHPAT    ,CHTOP


--- NEW FILE 206-herwig-uses-DBLE-not-REAL.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 206-herwig-uses-DBLE-not-REAL.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## 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
@@ -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))
   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
@@ -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)
       XI=IMAG(X)
       R2=XR*XR+XI*XI
       IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN


--- NEW FILE 207-compile-temp-libs-with-fPIC.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 207-compile-temp-libs-with-fPIC.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Compile temporary COMIS libraries with -fPIC for non-x86 arches.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F /tmp/dpep.srSRmd/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F
--- cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2000-09-25 10:16:36.000000000 -0400
+++ /tmp/dpep.srSRmd/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2005-06-09 15:47:44.859676286 -0400
@@ -81,12 +81,12 @@
       WRITE(LUNOUT,'(A)')CHLINE(:L)
       IF(FEXT.EQ.'.c')THEN
         L=LENOCC(CHCC)
-*                                 'cc -c .... name.c'
-        CHLINE=CHCC(:L)//' '//NAME(:LN)// '.c'
+*                                 'cc -c .... -fPIC name.c'
+        CHLINE=CHCC(:L)//' -fPIC '//NAME(:LN)// '.c'
       ELSE
         L=LENOCC(CHF77)
-*                                 'f77 -c .... name.f'
-        CHLINE=CHF77(:L)//' '//NAME(:LN)// '.f'
+*                                 'f77 -c .... -fPIC name.f'
+        CHLINE=CHF77(:L)//' -fPIC '//NAME(:LN)// '.f'
       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)


--- NEW FILE 208-fix-redundant-packlib-dependencies.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 208-fix-redundant-packlib-dependencies.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Remove some redundancy in the libraries listed to be linked against.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/graflib/dzdoc/dzedit/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/graflib/dzdoc/dzedit/Imakefile
--- cernlib-2005.05.09/src/graflib/dzdoc/dzedit/Imakefile	1996-05-09 10:32:43.000000000 -0400
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/graflib/dzdoc/dzedit/Imakefile	2005-06-10 11:54:49.270360036 -0400
@@ -20,7 +20,7 @@
 NeedTcpipLib
 #endif
 
-CernlibFortranProgramTarget(dzeX11,dzedit.o,$(PACKAGE_LIB),$(PACKAGE_LIB),graflib/X11 packlib)
+CernlibFortranProgramTarget(dzeX11,dzedit.o,libdzdoc.a,libdzdoc.a,graflib/X11 packlib)
 
 InstallProgram(dzeX11,$(CERN_BINDIR))
 InstallScript(dzedit,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/packlib/cspack/programs/zftp/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/cspack/programs/zftp/Imakefile
--- cernlib-2005.05.09/src/packlib/cspack/programs/zftp/Imakefile	1996-04-16 04:09:49.000000000 -0400
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/cspack/programs/zftp/Imakefile	2005-06-10 11:55:33.872780414 -0400
@@ -14,6 +14,6 @@
 
 NeedTcpipLib
 
-CernlibFortranProgramTarget(zftp,zftp.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(zftp,zftp.o,libzftplib.a,libzftplib.a,packlib)
 
 InstallProgram(zftp,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/packlib/cspack/programs/zs/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/cspack/programs/zs/Imakefile
--- cernlib-2005.05.09/src/packlib/cspack/programs/zs/Imakefile	1996-05-05 05:40:20.000000000 -0400
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/cspack/programs/zs/Imakefile	2005-06-10 11:56:23.109221943 -0400
@@ -31,10 +31,10 @@
 
 DefinePackageLibrary(zservlib)
 
-CernlibFortranProgramTarget(zserv,zs.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(zserv,zs.o,libzservlib.a,libzservlib.a,packlib)
 
 InstallProgram(zserv,$(CERN_BINDIR))
 
-CernlibFortranProgramTarget(pawserv,zs.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(pawserv,zs.o,libzservlib.a,libzservlib.a,packlib)
 
 InstallProgram(pawserv,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/packlib/fatmen/programs/fmkuip/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/fatmen/programs/fmkuip/Imakefile
--- cernlib-2005.05.09/src/packlib/fatmen/programs/fmkuip/Imakefile	1996-11-05 04:32:29.000000000 -0500
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/fatmen/programs/fmkuip/Imakefile	2005-06-10 11:56:54.779438847 -0400
@@ -28,6 +28,6 @@
 NeedSysexe
 #endif
 
-CernlibFortranProgramTarget(fatmen,fatmen.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(fatmen,fatmen.o,libfmkuip.a,libfmkuip.a,packlib)
 
 InstallProgram(fatmen,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/packlib/hepdb/programs/hepdb/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/hepdb/programs/hepdb/Imakefile
--- cernlib-2005.05.09/src/packlib/hepdb/programs/hepdb/Imakefile	1996-04-02 05:03:43.000000000 -0500
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/hepdb/programs/hepdb/Imakefile	2005-06-10 11:57:39.794807919 -0400
@@ -17,6 +17,6 @@
 SpecialFortranObjectRule(hepdb,hepdb,'-WF,-P',NullParameter)
 #endif
 
-CernlibFortranProgramTarget(hepdb,hepdb.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib)
+CernlibFortranProgramTarget(hepdb,hepdb.o,libdbmodule.a,libdbmodule.a,packlib)
 
 InstallProgram(hepdb,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile
--- cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile	1996-04-18 12:33:08.000000000 -0400
+++ /tmp/dpep.ZL6s2h/cernlib-2005.05.09/src/packlib/kuip/programs/kxterm/Imakefile	2005-06-10 12:00:35.355791756 -0400
@@ -21,6 +21,6 @@
 #endif
 
 
-CernlibCcProgramTarget(kxterm,kxterm.o,$(PACKAGE_LIB),$(PACKAGE_LIB),$(CLIBS))
+CernlibCcProgramTarget(kxterm,kxterm.o,libkxtlib.a,libkxtlib.a,$(CLIBS))
 
 InstallProgram(kxterm,$(CERN_BINDIR))


--- NEW FILE 209-ignore-unneeded-headers-in-kmutil.c.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 209-ignore-unneeded-headers-in-kmutil.c.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Comment out header files not actually needed in kmutil.c.
## DP: (This will be helpful when we move this file elsewhere to be part of
## DP: the Lesstif-dependent library split out from packlib.)

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_motif/kmutil.c /tmp/dpep.BncUU7/cernlib-2005.05.09/src/packlib/kuip/code_motif/kmutil.c
--- cernlib-2005.05.09/src/packlib/kuip/code_motif/kmutil.c	1996-03-08 10:33:09.000000000 -0500
+++ /tmp/dpep.BncUU7/cernlib-2005.05.09/src/packlib/kuip/code_motif/kmutil.c	2005-06-10 12:06:07.198547576 -0400
@@ -20,12 +20,13 @@
 /******************************************************************************/
 
 #include "kuip/kuip.h"
+/* commented out, since this file doesn't need these includes. --Kevin McCarty
 #include "kuip/kfor.h"
 #include "kuip/kmenu.h"
 
 #include "mkutda.h"
 #include "kuip/mkutfu.h"
-
+*/
 
 /***********************************************************************
  *                                                                     *


--- NEW FILE 210-improve-cfortran-header-files.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 210-improve-cfortran-header-files.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Protect against multiple inclusion and add explicit dependency on
## DP: cfortran.h to the Cernlib C headers.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/comis.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/comis.h
--- cernlib-2005.05.09/src/cfortran/comis.h	1999-10-29 07:41:26.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/comis.h	2005-06-10 12:51:30.985999665 -0400
@@ -1,3 +1,11 @@
+#ifndef _COMIS_H
+#define _COMIS_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFFUN1(INT,CSADDR,csaddr,STRING)
 #define	CSADDR(CHFILE) CCALLSFFUN1(CSADDR,csaddr,STRING,CHFILE)
 
@@ -30,3 +38,9 @@
 
 PROTOCCALLSFSUB2(CSTYPE,cstype,INT,PSTRING)
 #define CSTYPE(CADR,CHTYPE) CCALLSFSUB2(CSTYPE,cstype,INT,PSTRING,CADR,CHTYPE)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _COMIS_H */
diff -urNad cernlib-2005.05.09/src/cfortran/cspack.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/cspack.h
--- cernlib-2005.05.09/src/cfortran/cspack.h	1999-10-29 07:42:56.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/cspack.h	2005-06-10 12:51:31.013993690 -0400
@@ -1,5 +1,19 @@
+#ifndef _CSPACK_H
+#define _CSPACK_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFSUB2(CZPUTA,czputa,STRING,PINT)
 #define CZPUTA(CHMAIL,ISTAT) CCALLSFSUB2(CZPUTA,czputa,STRING,PINT,CHMAIL,ISTAT)
 
 PROTOCCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT)
 #define CZGETA(CHMAIL,ISTAT) CCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT,CHMAIL,ISTAT)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _CSPACK_H */
diff -urNad cernlib-2005.05.09/src/cfortran/geant315.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/geant315.h
--- cernlib-2005.05.09/src/cfortran/geant315.h	1996-05-15 05:24:06.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/geant315.h	2005-06-10 12:51:31.080979393 -0400
@@ -1,3 +1,11 @@
+#ifndef _GEANT315_H
+#define _GEANT315_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*------------------------------------------------------------------
 fortran filename   : /cern/new/src/cfs/geant315/abbrch.f
 ------------------------------------------------------------------*/
@@ -4797,3 +4805,9 @@
 
 #define ZEREGS() CCALLSFSUB0(ZEREGS,zeregs)
 
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _GEANT315_H */
diff -urNad cernlib-2005.05.09/src/cfortran/geant321.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/geant321.h
--- cernlib-2005.05.09/src/cfortran/geant321.h	1996-05-15 05:24:07.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/geant321.h	2005-06-10 12:51:31.148964883 -0400
@@ -1,3 +1,11 @@
+#ifndef _GEANT321_H
+#define _GEANT321_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*------------------------------------------------------------------
 fortran filename   : abbrch.f
 ------------------------------------------------------------------*/
@@ -6099,3 +6107,9 @@
  PROTOCCALLSFFUN3(DOUBLE,XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE)
 #define XSEPRO(A2,A3,A4)  CCALLSFFUN3(XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4)
 
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _GEANT321_H */
diff -urNad cernlib-2005.05.09/src/cfortran/gen.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/gen.h
--- cernlib-2005.05.09/src/cfortran/gen.h	2005-06-10 12:51:00.965407158 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/gen.h	2005-06-10 12:51:31.190955921 -0400
@@ -1,3 +1,11 @@
+#ifndef _GEN_H
+#define _GEN_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Subroutines/Functions with COMPLEX not supported ***
 
 #define CBSJA(A1,A2,A3,A4,A5)  CCALLSFSUB5(CBSJA,cbsja,COMPLEX,FLOAT,INT,INT,PCOMPLEX,A1,A2,A3,A4,A5)
@@ -1489,3 +1497,9 @@
 
 PROTOCCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT)
 #define ZEROX(A1,A2,A3,A4,A5,A6)  CCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _GEN_H */
diff -urNad cernlib-2005.05.09/src/cfortran/graflib.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/graflib.h
--- cernlib-2005.05.09/src/cfortran/graflib.h	1998-01-29 05:49:27.000000000 -0500
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/graflib.h	2005-06-10 12:51:31.220949519 -0400
@@ -1,2 +1,16 @@
-#include "higz.h"
-#include "hplot.h"
+#ifndef _GRAFLIB_H
+#define _GRAFLIB_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <higz.h>
+#include <hplot.h>
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _GRAFLIB_H */
diff -urNad cernlib-2005.05.09/src/cfortran/jetset74.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/jetset74.h
--- cernlib-2005.05.09/src/cfortran/jetset74.h	1999-10-29 12:55:45.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/jetset74.h	2005-06-10 12:51:31.250943117 -0400
@@ -1,3 +1,11 @@
+#ifndef _JETSET74_H
+#define _JETSET74_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFFUN2(INT,KLU,klu,INT,INT)
 #define KLU(A2,A3)  CCALLSFFUN2(KLU,klu,INT,INT,A2,A3)
 
@@ -327,3 +335,9 @@
 
 PROTOCCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE)
 #define STRUCTM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)  CCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _JETSET74_H */
diff -urNad cernlib-2005.05.09/src/cfortran/kernlib.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/kernlib.h
--- cernlib-2005.05.09/src/cfortran/kernlib.h	2000-03-16 11:58:18.000000000 -0500
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/kernlib.h	2005-06-10 12:51:31.291934368 -0400
@@ -1,3 +1,11 @@
+#ifndef _KERNLIB_H
+#define _KERNLIB_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFFUN1(FLOAT,ALOGAM,alogam,FLOAT)
 #define ALOGAM(A2)  CCALLSFFUN1(ALOGAM,alogam,FLOAT,A2)
 
@@ -1512,3 +1520,9 @@
 
 PROTOCCALLSFSUB1(WORDSEP,wordsep,STRING)
 #define WORDSEP(A1)  CCALLSFSUB1(WORDSEP,wordsep,STRING,A1)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _KERNLIB_H */
diff -urNad cernlib-2005.05.09/src/cfortran/kuip.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/kuip.h
--- cernlib-2005.05.09/src/cfortran/kuip.h	2000-10-05 10:27:54.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/kuip.h	2005-06-10 12:51:31.319928394 -0400
@@ -1,3 +1,11 @@
+#ifndef _KUIP_H
+#define _KUIP_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT)
 #define KUCLOS(A1,A2,A3)    CCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT,A1,A2,A3)
 
@@ -6,3 +14,9 @@
 
 PROTOCCALLSFSUB0(KUWHAG,kuwhag)
 #define KUWHAG() CCALLSFSUB0(KUWHAG,kuwhag)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _KUIP_H */
diff -urNad cernlib-2005.05.09/src/cfortran/lapack.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/lapack.h
--- cernlib-2005.05.09/src/cfortran/lapack.h	2000-06-23 06:13:58.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/lapack.h	2005-06-10 12:51:31.348922205 -0400
@@ -1,2 +1,16 @@
+#ifndef _LAPACK_H
+#define _LAPACK_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFSUB11(DGELS,dgels,STRING,INT,INT,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,PINT)
 #define DGELS(TRANS,M,N,NRHS,A,LDA,B,LDB,WORK,LWORK,INFO) CCALLSFSUB11(DGELS,dgels,STRING,INT,INT,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,PINT,TRANS,M,N,NRHS,A,LDA,B,LDB,WORK,LWORK,INFO)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _LAPACK_H */
diff -urNad cernlib-2005.05.09/src/cfortran/lepto62.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/lepto62.h
--- cernlib-2005.05.09/src/cfortran/lepto62.h	1999-10-29 12:55:45.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/lepto62.h	2005-06-10 12:51:31.378915804 -0400
@@ -1,3 +1,11 @@
+#ifndef _LEPTO62_H
+#define _LEPTO62_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFFUN2(FLOAT,DCROSS,dcross,FLOAT,FLOAT)
 #define DCROSS(A2,A3)  CCALLSFFUN2(DCROSS,dcross,FLOAT,FLOAT,A2,A3)
 
@@ -174,3 +182,9 @@
 
 PROTOCCALLSFSUB0(RIWIBD,riwibd)
 #define RIWIBD() CCALLSFSUB0(RIWIBD,riwibd)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _LEPTO62_H */
diff -urNad cernlib-2005.05.09/src/cfortran/minuit.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/minuit.h
--- cernlib-2005.05.09/src/cfortran/minuit.h	1999-10-27 11:30:23.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/minuit.h	2005-06-10 12:51:31.407909615 -0400
@@ -1,3 +1,11 @@
+#ifndef _MINUIT_H
+#define _MINUIT_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*
  *  Interface to minuit using cfortran.h
  *
@@ -190,3 +198,9 @@
 
 PROTOCCALLSFSUB0(STAND,stand)
 #define STAND() CCALLSFSUB0(STAND,stand)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _MINUIT_H */
diff -urNad cernlib-2005.05.09/src/cfortran/packlib.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/packlib.h
--- cernlib-2005.05.09/src/cfortran/packlib.h	1998-01-29 11:17:45.000000000 -0500
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/packlib.h	2005-06-10 12:51:31.436903427 -0400
@@ -1,4 +1,18 @@
-#include "hbook.h"
-#include "minuit.h"
-#include "kuip.h"
-#include "zebra.h"
+#ifndef _PACKLIB_H
+#define _PACKLIB_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <hbook.h>
+#include <minuit.h>
+#include <kuip.h>
+#include <zebra.h>
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _PACKLIB_H */
diff -urNad cernlib-2005.05.09/src/cfortran/paw.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/paw.h
--- cernlib-2005.05.09/src/cfortran/paw.h	2000-10-05 10:27:55.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/paw.h	2005-06-10 12:51:31.464897452 -0400
@@ -1,6 +1,20 @@
+#ifndef _PAW_H
+#define _PAW_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFSUB2(PAW,paw,INT,INT)
 #define PAW(A1,A2)  CCALLSFSUB2(PAW,paw,INT,INT,A1,A2)
 
 PROTOCCALLSFSUB0(PAEXIT,paexit)
 #define PAEXIT() CCALLSFSUB0(PAEXIT,paexit)
 
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _PAW_H */
diff -urNad cernlib-2005.05.09/src/cfortran/zebra.h /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/zebra.h
--- cernlib-2005.05.09/src/cfortran/zebra.h	1999-10-29 07:35:47.000000000 -0400
+++ /tmp/dpep.Al0dBQ/cernlib-2005.05.09/src/cfortran/zebra.h	2005-06-10 12:51:31.496890624 -0400
@@ -1,5 +1,19 @@
+#ifndef _ZEBRA_H
+#define _ZEBRA_H
+#include <cfortran/cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PROTOCCALLSFSUB1(MZEBRA,mzebra,INT)
 #define MZEBRA(A1)    CCALLSFSUB1(MZEBRA,mzebra,INT,A1)
 
 PROTOCCALLSFSUB2(MZPAW,mzpaw,INT,STRING)
 #define MZPAW(A1,A2)  CCALLSFSUB2(MZPAW,mzpaw,INT,STRING,A1,A2)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* #ifndef _ZEBRA_H */


--- NEW FILE 211-fix-comis-on-64-bit-arches.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 211-fix-comis-on-64-bit-arches.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~/src/geant321/gphys/gphot.F cernlib-2005.05.09/src/geant321/gphys/gphot.F
--- cernlib-2005.05.09~/src/geant321/gphys/gphot.F	1995-10-24 10:21:29.000000000 +0000
+++ cernlib-2005.05.09/src/geant321/gphys/gphot.F	2005-09-20 19:27:10.734527890 +0000
@@ -240,7 +240,7 @@
                   ELSE
 C Radiative shell decay
                      JS = JFN+1+2*NSHELL+ISHELL
-                     JS = JPHFN+Q(JS)
+                     JS = JPHFN + INT (Q(JS))    ! compiler optimiztion problem H. Vogt 2004/04/29
                      NPOINT = Q(JS)
                      DO 40 I = 1,NPOINT
                         IF(RN05.LT.Q(JS+I)) THEN
@@ -296,7 +296,7 @@
                   ELSE
 c Nonradiative decay
                      JS = JFN+1+3*NSHELL+ISHELL
-                     JS = JPHFN+Q(JS)
+                     JS = JPHFN + INT (Q(JS))    ! compiler optimiztion problem H. Vogt 2004/04/29
                      NPOINT = Q(JS)
                      DO 60 I = 1,NPOINT
                         IF(RN05.LT.Q(JS+I)) THEN
diff -urNad cernlib-2005.05.09~/src/packlib/kernlib/kerngen/ccgen/locb.c cernlib-2005.05.09/src/packlib/kernlib/kerngen/ccgen/locb.c
--- cernlib-2005.05.09~/src/packlib/kernlib/kerngen/ccgen/locb.c	1997-09-02 14:26:37.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/kernlib/kerngen/ccgen/locb.c	2005-09-20 19:27:10.734527890 +0000
@@ -44,7 +44,25 @@
    DummyDef
 #endif
 {
+#if defined(CERNLIB_QMLXIA64)
+   const unsigned long long int mask=0x00000000ffffffff;
+   static unsigned long long int base=1;
+   unsigned long long int jadr=(unsigned long long int) iadr;
+   unsigned long long int jadrl = (mask & jadr);
+
+   if (base == 1) {
+     base = (~mask & jadr);
+   } else if(base != (~mask & jadr)) {
+     printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+     printf("locb_() Warning: changing base from %lx to %lx!!!\n",
+     	   base, (~mask & jadr));
+     printf("This may result in program crash or incorrect results\n");
+     printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+   }
+   return ((int) jadrl);
+#else
    return( (int) iadr );
+#endif
 }
 /*> END <----------------------------------------------------------*/
 #ifdef CERNLIB_TCGEN_LOCB
diff -urNad cernlib-2005.05.09~/src/packlib/zbook/code/zjump.c cernlib-2005.05.09/src/packlib/zbook/code/zjump.c
--- cernlib-2005.05.09~/src/packlib/zbook/code/zjump.c	1996-03-08 12:01:12.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/zbook/code/zjump.c	2005-09-20 19:27:10.734527890 +0000
@@ -7,6 +7,9 @@
  *
  */
 #include "zbook/pilot_c.h"
+#if defined(CERNLIB_QMLXIA64)
+static void (*target)();
+#endif
 #if defined(CERNLIB_UNIX)
 #if defined(CERNLIB_QX_SC)
 zjump_(name,p1,p2,p3,p4)
@@ -18,8 +21,23 @@
 ZJUMP(name,p1,p2,p3,p4)
 #endif
 char *p1, *p2, *p3, *p4;
+
+/*  LP64 compatibility:
+    name is taken from a Fortran array and therefore its address is 32 bit
+    which has to be converted to a 64 bit address to satisfy void (*) (H. Vogt) */
+
+#if defined(CERNLIB_QMLXIA64)
+int *name;
+{
+  long jadr;
+  jadr   = *name;  /* convert int to long */
+  target = (void (*)())jadr;
+  (*target)(p1, p2, p3, p4);
+}
+#else
 void (**name)();
 {
    (**name)(p1, p2, p3, p4);
 }
 #endif
+#endif
diff -urNad cernlib-2005.05.09~/src/packlib/zebra/test/brztest/btest2.F cernlib-2005.05.09/src/packlib/zebra/test/brztest/btest2.F
--- cernlib-2005.05.09~/src/packlib/zebra/test/brztest/btest2.F	1997-09-02 15:16:16.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/zebra/test/brztest/btest2.F	2005-09-20 19:27:10.734527890 +0000
@@ -29,6 +29,15 @@
 ********************************************************************************
 *
       COMMON/CRZT/IXSTOR,IXDIV,IFENCE(2),LEV,LEVIN,BLVECT(30000)
+
+*     LP64 compatibility:
+*     For 64-bit pointer systems put local variables referenced by LOCF
+*     in a dummy named common block to keep addresses in the program region.
+*     see also: packlib/ffread/test/main.F (H. Vogt)
+
+#if defined(CERNLIB_QMLXIA64)
+      COMMON /TEST64/LBANK
+#endif
       DIMENSION LQ(999),IQ(999),Q(999)
       EQUIVALENCE (IQ(1),Q(1),LQ(9)),(LQ(1),LEV)
 C
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/Imakefile cernlib-2005.05.09/src/pawlib/comis/code/Imakefile
--- cernlib-2005.05.09~/src/pawlib/comis/code/Imakefile	2005-09-20 19:26:47.894420356 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/Imakefile	2005-09-20 19:27:10.734527890 +0000
@@ -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 cernlib-2005.05.09~/src/pawlib/comis/code/csaddr.F cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csaddr.F	1996-02-26 17:16:25.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F	2005-09-20 19:27:10.735527676 +0000
@@ -17,8 +17,14 @@
       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*8 CS_GET_FUNC
+#endif
+#if defined(CERNLIB_SHL)
       NAME=CHNAME
       NC=LENOCC(NAME)
       CALL CSCHID(NAME(:NC))
@@ -26,21 +32,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 cernlib-2005.05.09~/src/pawlib/comis/code/csinit.F cernlib-2005.05.09/src/pawlib/comis/code/csinit.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csinit.F	2005-04-18 15:41:04.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csinit.F	2005-09-20 19:27:10.735527676 +0000
@@ -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
@@ -209,11 +215,16 @@
       CHF77 ='f77 -c -pic'
       CHCC  ='cc -c -pic'
 #endif
-#if (defined(CERNLIB_LINUX))
+#if (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_QMLXIA64))
       ITMPLEN=CSTMPD(CHPATH, 256)
       CHF77 ='g77 -c'
       CHCC  ='cc -c'
 #endif
+#if (defined(CERNLIB_LINUX))&&(defined(CERNLIB_QMLXIA64))
+      ITMPLEN=CSTMPD(CHPATH, 256)
+      CHF77 ='g77 -c -fPIC -fno-f2c'
+      CHCC  ='cc -c -fPIC -fno-f2c'
+#endif
 #if (defined(CERNLIB_SGI))&&(defined(CERNLIB_SHL))
       ITMPLEN=CSTMPD(CHPATH, 256)
       CHF77 ='f77 -c'
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csintx.F cernlib-2005.05.09/src/pawlib/comis/code/csintx.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csintx.F	1996-12-05 09:50:37.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csintx.F	2005-09-20 19:27:10.762521893 +0000
@@ -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,32 @@
       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)
+        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
+        IADGPL = IADGP
+        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
+      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 +1144,7 @@
         DCSRES=CSCALD(IADGP,NPAR,IDA(IOFSPL))
       ENDIF
 #endif
+#endif
       IPC=IPC+4
       GO TO 999
 *NUM I
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csitgpl.F cernlib-2005.05.09/src/pawlib/comis/code/csitgpl.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csitgpl.F	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csitgpl.F	2005-09-20 19:27:10.763521679 +0000
@@ -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
+      CSITGP=I
+      END
+#endif
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/cskcal.F cernlib-2005.05.09/src/pawlib/comis/code/cskcal.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/cskcal.F	1996-12-05 09:50:39.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/cskcal.F	2005-09-20 19:27:10.763521679 +0000
@@ -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,34 @@
         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)
+        IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+          ICSRES=CSCALI(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.2)THEN
+          RCSRES=CSCALR(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.5)THEN
+          DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.7)THEN
+*  I think it will works correctly
+          DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+        ENDIF
+      ELSE
+        IADGPL = IADGP
+        IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+          ICSRES=CSCALI(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.2)THEN
+          RCSRES=CSCALR(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.5)THEN
+          DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+        ELSEIF(ITP.EQ.7)THEN
+*  I think it will works correctly
+          DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+        ENDIF
+      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 +276,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 cernlib-2005.05.09~/src/pawlib/comis/code/cslink.F cernlib-2005.05.09/src/pawlib/comis/code/cslink.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/cslink.F	1996-02-26 17:16:17.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/cslink.F	2005-09-20 19:27:10.763521679 +0000
@@ -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 cernlib-2005.05.09~/src/pawlib/comis/code/csrtgpl.F cernlib-2005.05.09/src/pawlib/comis/code/csrtgpl.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csrtgpl.F	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csrtgpl.F	2005-09-20 19:27:10.764521465 +0000
@@ -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 cernlib-2005.05.09~/src/pawlib/comis/comis/cstab64.inc cernlib-2005.05.09/src/pawlib/comis/comis/cstab64.inc
--- cernlib-2005.05.09~/src/pawlib/comis/comis/cstab64.inc	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/comis/cstab64.inc	2005-09-20 19:27:10.775519109 +0000
@@ -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 cernlib-2005.05.09~/src/pawlib/comis/deccc/ccopys.c cernlib-2005.05.09/src/pawlib/comis/deccc/ccopys.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/ccopys.c	1997-09-02 15:50:38.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/ccopys.c	2005-09-20 19:27:10.776518895 +0000
@@ -33,11 +33,25 @@
 #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)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+     int *ja, *jb;
+     int *nn;
+{
+  int i,n; char *a,*b;
+  n=*nn; (long)a=*ja; (long)b=*jb;
+#else
      char **ja, **jb;
      int *nn;
 {
   int i,n; char *a,*b;
   n=*nn; a=*ja; b=*jb;
+#endif
   if ( a >= b )
      for ( i=0; i<n; i++ )
           b[i]=a[i];
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cs_hlshl.c cernlib-2005.05.09/src/pawlib/comis/deccc/cs_hlshl.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cs_hlshl.c	1998-01-12 09:56:07.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cs_hlshl.c	2005-09-20 19:27:10.776518895 +0000
@@ -25,9 +25,21 @@
 #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)&&(defined(CERNLIB_QMLXIA64))
+#define ALPHA_OSF
+#endif
+
 #if defined(CERNLIB_SGI)
 #define SGI
 #endif
@@ -37,7 +49,6 @@
 #if defined(CERNLIB_ALPHA_OSF)
 #define ALPHA_OSF
 #endif
-
 #if defined(SUN) || defined(SGI) || defined(ALPHA_OSF)
 #include <dlfcn.h>
 #endif
@@ -274,6 +285,7 @@
 #endif
          p->next = f->first_proc;
          f->first_proc = p;
+         if (debug_level > 0) printf("function pointer is: %p\n", p->funcptr);
          return (void *)(p->funcptr);
       }
      f = f->next;
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscald.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscald.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscald.c	2004-10-27 09:01:54.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscald.c	2005-09-20 19:27:10.776518895 +0000
@@ -32,8 +32,7 @@
 #ifdef CERNLIB_WINNT
 # 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,41 @@
     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)
+double cscald_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ unsigned pin[15];
+{
+   int jumpad_();
+   double (*name)();
+   unsigned long ptr = *fptr + (unsigned long)jumpad_;
+   if ( *fptr > 0 ) ptr = 0;
+   ptr += *fptr;
+   name = (double (*)())ptr;
+/*    printf ("cscald - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+   long p[15];
+   int  count;  for ( count=0; count<16; count++ )  p[count] = pin[count];
+#else
  double (type_of_call *(*name)) ();
  int *n;
  int *p[15];
 {
+#endif
    double d;
    switch (*n)
    {
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscali.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscali.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscali.c	2004-10-22 12:42:40.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscali.c	2005-09-20 19:27:10.777518681 +0000
@@ -29,8 +29,7 @@
 #ifdef CERNLIB_WINNT
 # 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,41 @@
 #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)
+int cscali_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ unsigned pin[15];
+{
+   int jumpad_();
+   int (*name)();
+   unsigned long ptr = (unsigned long)jumpad_;
+   if ( *fptr > 0 ) ptr = 0;
+   ptr += *fptr;
+   name = (int (*)())ptr;
+/*    printf ("cscali - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+   long p[15];
+   int  count;  for ( count=0; count<16; count++ )  p[count] = pin[count];
+#else
  int (type_of_call *(*name)) ();
  int *n;
  int *p[15];
 {
+#endif
    int i;
    switch (*n)
    {
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscalr.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscalr.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscalr.c	2004-10-22 12:03:16.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscalr.c	2005-09-20 19:27:10.788516325 +0000
@@ -33,16 +33,12 @@
 #ifdef CERNLIB_WINNT
 # 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,39 @@
 # 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)
+float cscalr_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ int pin[15];
+{
+   int jumpad_();
+   float (*name)();
+   unsigned long ptr = (unsigned long)jumpad_;
+   ptr += *fptr;
+   name = (float (*)())ptr;
+/*    printf ("cscalr - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+   long p[15];
+   int  count;  for ( count=0; count<16; count++ )  p[count] = pin[count];
+#else
  float (type_of_call *(*name)) ();
  int *n;
  int *p[15];
 {
+#endif
    float r;
    switch (*n)
    {
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cstrcmp.c cernlib-2005.05.09/src/pawlib/comis/deccc/cstrcmp.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cstrcmp.c	1997-09-02 15:50:44.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cstrcmp.c	2005-09-20 19:27:10.788516325 +0000
@@ -36,6 +36,27 @@
 #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)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+     int *ja, *jb;
+     int *na, *nb;
+{
+
+  int i,la,lb,k; char *a,*b;
+  if ( *na >= *nb )
+     {
+      (long)a=*ja; (long)b=*jb; la=*na; lb=*nb; k=1;
+      }
+  else
+    {
+      (long)a=*jb; (long)b=*ja; la=*nb; lb=*na; k=-1;
+     }
+#else
      char **ja, **jb;
      int *na, *nb;
 {
@@ -48,6 +69,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 cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_execute.c cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_execute.c
--- cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_execute.c	2001-09-18 13:41:35.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_execute.c	2005-09-20 19:27:10.789516111 +0000
@@ -245,7 +245,15 @@
 	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
+	   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	ibase[1], ioff, nuse;
 	int		id = qe->id;
 	char *		path = qe->path;
 	char *		title;
@@ -871,8 +879,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 );
 
diff -urNad cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_hbook_if.c cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_hbook_if.c
--- cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_hbook_if.c	1999-07-05 15:43:35.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_hbook_if.c	2005-09-20 19:27:10.801513541 +0000
@@ -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 */
 
diff -urNad cernlib-2005.05.09~/src/scripts/cernlib cernlib-2005.05.09/src/scripts/cernlib
--- cernlib-2005.05.09~/src/scripts/cernlib	2003-01-23 14:00:37.000000000 +0000
+++ cernlib-2005.05.09/src/scripts/cernlib	2005-09-20 19:27:10.801513541 +0000
@@ -115,6 +115,12 @@
 	       [ -d /usr/X11R6/lib ] && SYSGX11="-L/usr/X11R6/lib -lX11"
 	       [ -d /usr/X11R6/lib ] && SYSGMOTIF="-L/usr/X11R6/lib -lXm -lXt -lXp -lXext -lX11"
 	       [ `uname -m` = ppc ] && SYSGMOTIF="$SYSGMOTIF -lSM -lICE -lXpm"
+#                      add path to lib64 for x86_64 architecture
+	       if [ `uname -m` = x86_64 ] && [ -d /usr/X11R6/lib64 ] ; then
+		  SYSGDIRS="-L/usr/X11R6/lib -L/usr/X11R6/lib64"
+		  SYSGX11="$SYSGDIRS -lX11"
+		  SYSGMOTIF="$SYSGDIRS -lXm -lXt -lXp -lXext -lX11"
+	       fi
 	       ;;
       NeXT)    SYSGX11="/usr/lib/X11/libX11.r" ;
                SYSGMOTIF="-lXm -lXt /usr/lib/X11/libX11.r" ;;


--- NEW FILE 300-skip-duplicate-lenocc.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 300-skip-duplicate-lenocc.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Only compile one of the two "lenocc()" functions.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kerngen/ccgen/Imakefile cernlib-2005.05.09.dfsg/src/packlib/kernlib/kerngen/ccgen/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/kernlib/kerngen/ccgen/Imakefile	2002-09-19 16:44:52.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/packlib/kernlib/kerngen/ccgen/Imakefile	2005-11-28 19:59:28.690293288 +0000
@@ -19,7 +19,9 @@
 SRCS_C += apofsz.c
 #endif
 
-#if defined(CERNLIB_WINNT)
+#if defined(CERNLIB_WINNT) || defined(CERNLIB_LINUX)
+/* Do not use lenocc.c in Linux; favor packlib/kernlib/kerngen/tcgen/lenocc.F
+ * instead.  --Kevin McCarty, for Debian */
 SRCS_C += lnblnk.c
 #endif
 
@@ -29,7 +31,7 @@
 
 #if defined(CERNLIB_DECS) || defined(CERNLIB_QMVAOS) \
  || defined(CERNLIB_HPUX) || defined(CERNLIB_IBMRT) || defined(CERNLIB_IBMRTD) \
- || defined(CERNLIB_OS9)  || defined(CERNLIB_LINUX)
+ || defined(CERNLIB_OS9)
 SRCS_C += lenocc.c lnblnk.c
 #endif
 


--- NEW FILE 303-shadow-passwords-supported.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 303-shadow-passwords-supported.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Allow Cern's server code to read from /etc/shadow.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c /tmp/dpep.KyLyTI/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c
--- cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-04-18 11:39:28.000000000 -0400
+++ /tmp/dpep.KyLyTI/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-06-08 16:55:00.088372396 -0400
@@ -28,6 +28,9 @@
  *
  */
 #include "cspack/pilot.h"
+#if defined(CERNLIB_LINUX) && ! defined(CERNLIB_MACOSX)
+#define SHADOW_SUPPORT /* for Debian */
+#endif
 #if !defined(CERNLIB_IBM)||defined(CERNLIB_TCPSOCK)
 /*N.B. Must define sequence TCPLOG if a log file is required, e.g.*/
 /*#define LOGFILE "disk$dd:-ben.socks-serv.log"*/ /* VMS    */
@@ -231,7 +234,7 @@
 #endif /* OSK */
 #endif /* AUTHENT */
  
-#ifdef linux_softland
+#if defined(linux_softland) || defined(SHADOW_SUPPORT)
 #include <shadow.h>
 #endif /* linux_softland */
  
@@ -1780,10 +1783,10 @@
         union wait ret;
 #endif /* APOPWD1 */
  
-        char   *xpasswd, *crypt();
+        char   *xpasswd, *encrypted, *crypt();
         struct passwd *pw;
  
-#ifdef linux_softland
+#if defined(linux_softland) || defined(SHADOW_SUPPORT)
         struct spwd *spwd;
 #endif /* linux_softland */
  
@@ -1798,6 +1801,7 @@
                 reply("Unknown user %s.\n", user);
                 return(-2);
         }
+	encrypted = pw->pw_passwd;
  
 #ifdef linux_softland
         spwd = getspnam(user);
@@ -1805,6 +1809,29 @@
                 reply("User %s has illegal shadow password\n",user);
                 return(-2);
         }
+	encrypted = spwd->sp_pwdp;
+
+#elif defined(SHADOW_SUPPORT)
+	/* shadow passwords may not be enabled in Debian, so must check */
+	{
+		FILE *test = fopen("/etc/shadow", "r");
+		if (test) {
+			fclose(test);
+			spwd = getspnam(user);
+			if (spwd == NULL) {
+				reply("User %s has illegal shadow password\n",
+				      user);
+				return(-2);
+			}
+			encrypted = spwd->sp_pwdp;
+		}
+		else if (errno == EACCES) {
+			reply("Server has insufficient permissions to "
+			      "read /etc/shadow file\n");
+			return(-2);
+		}
+	}
+
 #endif /* linux_softland */
  
 #ifdef APOPWD1
@@ -1850,15 +1877,16 @@
 #else
  
 #ifdef linux_softland
-            xpasswd = pw_encrypt(pass,spwd->sp_pwdp);
+            xpasswd = pw_encrypt(pass, encrypted);
 #else
-            xpasswd = crypt(pass, pw->pw_passwd);
+            xpasswd = crypt(pass, encrypted);
 #endif /* linux_softland */
+
             /* The strcmp does not catch null passwords! */
-#ifdef linux_softland
-            if (spwd->sp_pwdp == '\0' || strcmp(xpasswd,spwd->sp_pwdp)) {
+#if defined(linux_softland) || defined(SHADOW_SUPPORT)
+            if (*encrypted == '\0' || strcmp(xpasswd,spwd->sp_pwdp)) {
 #else
-            if (*pw->pw_passwd == '\0' || strcmp(xpasswd,pw->pw_passwd)) {
+            if (*encrypted == '\0' || strcmp(xpasswd,pw->pw_passwd)) {
 #endif /* linux_softland */
  
 #endif /* AFS */


***** Error reading new file: [Errno 2] No such file or directory: '304-update-Imake-config-files.dpatch'

--- NEW FILE 305-use-POWERPC-not-PPC-as-test.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 305-use-POWERPC-not-PPC-as-test.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Since patch 304 changed the meaning of CERNLIB_PPC to a mere endianness
## DP: test, we now use CERNLIB_POWERPC to mean actually checking for a PowerPC
## DP: processor; fix the three occurences of this in Imakefiles.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mclibs/herwig/code/Imakefile /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/mclibs/herwig/code/Imakefile
--- cernlib-2005.05.09/src/mclibs/herwig/code/Imakefile	1998-09-25 11:34:28.000000000 -0400
+++ /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/mclibs/herwig/code/Imakefile	2005-06-09 10:51:45.913019086 -0400
@@ -43,7 +43,7 @@
 
 SubdirLibraryTarget(NullParameter,NullParameter)
 
-#if defined(CERNLIB_LINUX) && defined(CERNLIB_PPC)
+#if defined(CERNLIB_LINUX) && defined(CERNLIB_POWERPC)
 SpecialFortranLibObjectRule(hwuci2,hwuci2,-O0,NullParameter)
 #endif
 
diff -urNad cernlib-2005.05.09/src/pawlib/paw/code/Imakefile /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/pawlib/paw/code/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/code/Imakefile	1998-09-25 05:33:51.000000000 -0400
+++ /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/pawlib/paw/code/Imakefile	2005-06-09 10:50:47.068482917 -0400
@@ -56,7 +56,7 @@
 
 SubdirLibraryTarget(NullParameter,NullParameter)
 
-#if defined(CERNLIB_LINUX) && defined(CERNLIB_PPC)
+#if defined(CERNLIB_LINUX) && defined(CERNLIB_POWERPC)
 SpecialFortranLibObjectRule(pawins,pawins,-O0,NullParameter)
 #endif
 
diff -urNad cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile	1999-09-14 05:20:08.000000000 -0400
+++ /tmp/dpep.fQy2EP/cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile	2005-06-09 10:51:15.807396176 -0400
@@ -46,7 +46,7 @@
 
 SubdirLibraryTarget(NullParameter,NullParameter)
 
-#if defined(CERNLIB_LINUX) && defined(CERNLIB_PPC)
+#if defined(CERNLIB_LINUX) && defined(CERNLIB_POWERPC)
 SpecialObjectRule(archive/qp_execute.o,qp_execute.c archive/qp_execute.d,-O0 -o $@)
 SpecialObjectRule(debug/qp_execute.o,qp_execute.c debug/qp_execute.d,-O0 -o $@)
 SpecialObjectRule(shared/qp_execute.o,qp_execute.c shared/qp_execute.d,-O0 -o $@)


--- NEW FILE 306-patch-assert.h-for-makedepend.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 306-patch-assert.h-for-makedepend.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Include local copy of assert.h with a workaround for a bug of
## DP: makedepend (cf. Debian bug # 171908).

@DPATCH@
diff -urNad cernlib-2005.05.09/src/include/assert.h /tmp/dpep.9sKNsJ/cernlib-2005.05.09/src/include/assert.h
--- cernlib-2005.05.09/src/include/assert.h	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.9sKNsJ/cernlib-2005.05.09/src/include/assert.h	2005-06-09 12:50:41.751880968 -0400
@@ -0,0 +1,153 @@
+#ifndef CERNLIB_LINUX
+# include "/usr/include/assert.h"
+#else
+
+/* Copyright (C) 1991,1992,1994-2001,2003 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/*
+ *	ISO C99 Standard: 7.2 Diagnostics	<assert.h>
+ */
+
+#ifdef	_ASSERT_H
+
+# undef	_ASSERT_H
+# undef	assert
+# undef __ASSERT_VOID_CAST
+
+# ifdef	__USE_GNU
+#  undef assert_perror
+# endif
+
+#endif /* assert.h	*/
+
+#define	_ASSERT_H	1
+#include <features.h>
+
+#if defined __cplusplus && __GNUC_PREREQ (2,95)
+# define __ASSERT_VOID_CAST static_cast<void>
+#else
+# define __ASSERT_VOID_CAST (void)
+#endif
+
+/* void assert (int expression);
+
+   If NDEBUG is defined, do nothing.
+   If not, and EXPRESSION is zero, print an error message and abort.  */
+
+#ifdef	NDEBUG
+
+# define assert(expr)		(__ASSERT_VOID_CAST (0))
+
+/* void assert_perror (int errnum);
+
+   If NDEBUG is defined, do nothing.  If not, and ERRNUM is not zero, print an
+   error message with the error text for ERRNUM and abort.
+   (This is a GNU extension.) */
+
+# ifdef	__USE_GNU
+#  define assert_perror(errnum)	(__ASSERT_VOID_CAST (0))
+# endif
+
+#else /* Not NDEBUG.  */
+
+#ifndef _ASSERT_H_DECLS
+#define _ASSERT_H_DECLS
+__BEGIN_DECLS
+
+/* This prints an "Assertion failed" message and aborts.  */
+extern void __assert_fail (__const char *__assertion, __const char *__file,
+			   unsigned int __line, __const char *__function)
+     __THROW __attribute__ ((__noreturn__));
+
+/* Likewise, but prints the error text for ERRNUM.  */
+extern void __assert_perror_fail (int __errnum, __const char *__file,
+				  unsigned int __line,
+				  __const char *__function)
+     __THROW __attribute__ ((__noreturn__));
+
+
+/* The following is not at all used here but needed for standard
+   compliance.  */
+extern void __assert (const char *__assertion, const char *__file, int __line)
+     __THROW __attribute__ ((__noreturn__));
+
+
+__END_DECLS
+#endif /* Not _ASSERT_H_DECLS */
+
+/* For the macro definition we use gcc's __builtin_expect if possible
+   to generate good code for the non-error case.  gcc 3.0 is a good
+   enough estimate for when the feature became available.  */
+# if __GNUC_PREREQ (3, 0)
+#  define assert(expr) \
+  (__ASSERT_VOID_CAST (__builtin_expect (!!(expr), 1) ? 0 :		      \
+		       (__assert_fail (__STRING(expr), __FILE__, __LINE__,    \
+				       __ASSERT_FUNCTION), 0)))
+# else
+#  define assert(expr) \
+  (__ASSERT_VOID_CAST ((expr) ? 0 :					      \
+		       (__assert_fail (__STRING(expr), __FILE__, __LINE__,    \
+				       __ASSERT_FUNCTION), 0)))
+# endif
+
+# ifdef	__USE_GNU
+#  if __GNUC_PREREQ (3, 0)
+#   define assert_perror(errnum) \
+  (__ASSERT_VOID_CAST (__builtin_expect (!(errnum), 1) ? 0 :		      \
+		       (__assert_perror_fail ((errnum), __FILE__, __LINE__,   \
+					      __ASSERT_FUNCTION), 0)))
+#  else
+#   define assert_perror(errnum) \
+  (__ASSERT_VOID_CAST (!(errnum) ? 0 :					      \
+		       (__assert_perror_fail ((errnum), __FILE__, __LINE__,   \
+					      __ASSERT_FUNCTION), 0)))
+#  endif
+# endif
+
+/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
+   which contains the name of the function currently being defined.
+   This is broken in G++ before version 2.6.
+   C9x has a similar variable called __func__, but prefer the GCC one since
+   it demangles C++ function names.  */
+
+/* The following commented-out line breaks makedepend (bug # 171908); a local
+ * patched version of assert.h is therefore included.
+ *   --Kevin McCarty, for Debian */
+/* # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) */
+
+/* begin fix to work around Debian Bug # 171908 */
+# if defined __cplusplus
+#  if __GNUC_PREREQ (2, 6)
+#   define __ASSERT_FUNCTION	__PRETTY_FUNCTION__
+#  endif
+# elif __GNUC_PREREQ (2, 4)
+/* end fix */
+
+#   define __ASSERT_FUNCTION	__PRETTY_FUNCTION__
+# else
+#  if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+#   define __ASSERT_FUNCTION	__func__
+#  else
+#   define __ASSERT_FUNCTION	((__const char *) 0)
+#  endif
+# endif
+
+#endif /* NDEBUG.  */
+
+#endif /* CERNLIB_LINUX */


--- NEW FILE 307-use-canonical-cfortran.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 307-use-canonical-cfortran.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Use the most recent version of cfortran.h and cfortran.doc from
## DP: Debian package of cfortran, version 4.4-6.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/cfortran.doc /tmp/dpep.haCnaO/cernlib-2005.05.09/src/cfortran/cfortran.doc
--- cernlib-2005.05.09/src/cfortran/cfortran.doc	1998-12-11 12:17:09.000000000 -0500
+++ /tmp/dpep.haCnaO/cernlib-2005.05.09/src/cfortran/cfortran.doc	2004-12-10 10:47:33.000000000 -0500
@@ -195,7 +195,7 @@
 HP9000> f77 -c cfortex.f
 HP9000> CC -o cfortest cfortest.c cfortex.o -lI77 -lF77 && cfortest
 
-HP0000> # If old-style f77 +800 compiled objects are required:
+HP9000> # If old-style f77 +800 compiled objects are required:
 HP9000> # #define hpuxFortran800
 HP9000> cc -c -Aa -DhpuxFortran800 cfortest.c
 HP9000> f77 +800 -o cfortest cfortest.o cfortex.f
@@ -643,7 +643,7 @@
    [For an ancient math.h on a 386 or sparc, get similar from a new math.h.]
    #ifdef mc68000     /* 5 lines Copyright (c) 1988 by Sun Microsystems, Inc. */
    #define FLOATFUNCTIONTYPE	int
-   #define RETURNFLOAT(x) 		return (*(int *)(&(x)))
+   #define RETURNFLOAT(x) 	return (*(int *)(&(x)))
    #define ASSIGNFLOAT(x,y)	*(int *)(&x) = y
    #endif
 
@@ -874,7 +874,7 @@
 works everywhere and would seem to be an obvious choice.
 
 
-3. <BYTE|DOUBLE|BYTE|DOUBLE|FLOAT|INT|LOGICAL|LONG|SHORT><V|VV|VVV|...>
+3. <BYTE|DOUBLE|FLOAT|INT|LOGICAL|LONG|SHORT><V|VV|VVV|...>
 
 cfortran.h encourages the exact specification of the type and dimension of
 array parameters because it allows the C compiler to detect errors in the
@@ -1835,7 +1835,7 @@
 
 Unlike all other C compilers supported by cfortran.h,
 'gcc -traditional' promotes to double all functions returning float
-as demonstrated bu the following example.
+as demonstrated by the following example.
 
 /* m.c */
 #include <stdio.h>
@@ -2017,8 +2017,9 @@
 
 THIS PACKAGE, I.E. CFORTRAN.H, THIS DOCUMENT, AND THE CFORTRAN.H EXAMPLE
 PROGRAMS ARE PROPERTY OF THE AUTHOR WHO RESERVES ALL RIGHTS. THIS PACKAGE AND
-THE CODE IT PRODUCES MAY BE FREELY DISTRIBUTED WITHOUT FEES, SUBJECT TO THE
-FOLLOWING RESTRICTIONS:
+THE CODE IT PRODUCES MAY BE FREELY DISTRIBUTED WITHOUT FEES, SUBJECT
+(AT YOUR CHOICE) EITHER TO THE GNU LIBRARY GENERAL PUBLIC LICENSE
+AT http://www.gnu.org/licenses/lgpl.html OR TO THE FOLLOWING RESTRICTIONS:
 - YOU MUST ACCOMPANY ANY COPIES OR DISTRIBUTION WITH THIS (UNALTERED) NOTICE.
 - YOU MAY NOT RECEIVE MONEY FOR THE DISTRIBUTION OR FOR ITS MEDIA 
   (E.G. TAPE, DISK, COMPUTER, PAPER.)
diff -urNad cernlib-2005.05.09/src/cfortran/cfortran.h /tmp/dpep.haCnaO/cernlib-2005.05.09/src/cfortran/cfortran.h
--- cernlib-2005.05.09/src/cfortran/cfortran.h	2002-09-11 13:05:51.000000000 -0400
+++ /tmp/dpep.haCnaO/cernlib-2005.05.09/src/cfortran/cfortran.h	2004-12-10 10:47:34.000000000 -0500
@@ -1,4 +1,4 @@
-/* cfortran.h  4.4_cernlib2002 */
+/* cfortran.h  4.4 */
 /* http://www-zeus.desy.de/~burow/cfortran/                   */
 /* Burkhard Burow  burow at desy.de                 1990 - 2002. */
 
@@ -11,6 +11,32 @@
    MODIFYING, COPYING AND DISTRIBUTING THE CFORTRAN.H PACKAGE.
 */
 
+/* The following modifications were made by the authors of CFITSIO or by me. 
+ * I've flagged them below with "(CFITSIO)" or "(KMCCARTY)".
+ * PDW = Peter Wilson
+ * DM  = Doug Mink
+ * LEB = ??
+ * -- Kevin McCarty, for Debian (11/29/2003) */
+
+/*******
+   Modifications:
+      Oct 1997: Changed symbol name extname to appendus (PDW/HSTX)
+                (Conflicted with a common variable name in FTOOLS)
+      Nov 1997: If g77Fortran defined, also define f2cFortran (PDW/HSTX)
+      Feb 1998: Let VMS see the NUM_ELEMS code. Lets programs treat
+                single strings as vectors with single elements
+      Nov 1999: If macintoxh defined, also define f2cfortran (for Mac OS-X)
+      Apr 2000: If WIN32 defined, also define PowerStationFortran and
+                VISUAL_CPLUSPLUS (Visual C++)
+      Jun 2000: If __GNUC__ and linux defined, also define f2cFortran
+                (linux/gcc environment detection)
+      Apr 2002: If __CYGWIN__ is defined, also define f2cFortran
+      Nov 2002: If __APPLE__ defined, also define f2cfortran (for Mac OS-X)
+
+      Nov 2003: If __INTEL_COMPILER or INTEL_COMPILER defined, also define
+                f2cFortran (KMCCARTY)
+ *******/
+
 /* 
   Avoid symbols already used by compilers and system *.h:
   __ - OSF1 zukal06 V3.0 347 alpha, cc -c -std1 cfortest.c
@@ -75,7 +101,8 @@
 
 /* Remainder of cfortran.h depends on the Fortran compiler. */
 
-#if defined(CLIPPERFortran) || defined(pgiFortran)
+/* 11/29/2003 (KMCCARTY): add *INTEL_COMPILER symbols here */
+#if defined(CLIPPERFortran) || defined(pgiFortran) || defined(__INTEL_COMPILER) || defined(INTEL_COMPILER)
 #define f2cFortran
 #endif
 
@@ -90,6 +117,27 @@
                            Support f2c or f77 with gcc, vcc with f2c. 
                            f77 with vcc works, missing link magic for f77 I/O.*/
 #endif
+/* 04/13/00 DM (CFITSIO): Add these lines for NT */
+/*   with PowerStationFortran and and Visual C++ */
+#if defined(WIN32) && !defined(__CYGWIN__)
+#define PowerStationFortran   
+#define VISUAL_CPLUSPLUS
+#endif
+#if defined(g77Fortran)                        /* 11/03/97 PDW (CFITSIO) */
+#define f2cFortran
+#endif
+#if        defined(__CYGWIN__)                 /* 04/11/02 LEB (CFITSIO) */
+#define       f2cFortran 
+#endif
+#if        defined(__GNUC__) && defined(linux) /* 06/21/00 PDW (CFITSIO) */
+#define       f2cFortran 
+#endif
+#if defined(macintosh)                         /* 11/1999 (CFITSIO) */
+#define f2cFortran
+#endif
+#if defined(__APPLE__)                         /* 11/2002 (CFITSIO) */
+#define f2cFortran
+#endif
 #if defined(__hpux)             /* 921107: Use __hpux instead of __hp9000s300 */
 #define       hpuxFortran       /*         Should also allow hp9000s7/800 use.*/
 #endif
@@ -131,6 +179,7 @@
 #if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
 /* If your compiler barfs on ' #error', replace # with the trigraph for #     */
  #error "cfortran.h:  Can't find your environment among:\
+    - GNU gcc (g77) on Linux.                                            \
     - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...)     \
     - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000     \
     - VAX   VMS CC 3.1 and FORTRAN 5.4.                                  \
@@ -151,7 +200,8 @@
     - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran          \
     - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran \
     - Absoft Pro Fortran: Use #define AbsoftProFortran \
-    - Portland Group Fortran: Use #define pgiFortran"
+    - Portland Group Fortran: Use #define pgiFortran \
+    - Intel Fortran: Use #define INTEL_COMPILER"
 /* Compiler must throw us out at this point! */
 #endif
 #endif
@@ -164,7 +214,8 @@
 
 /* Throughout cfortran.h we use: UN = Uppercase Name.  LN = Lowercase Name.   */
 
-#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(extname)
+/* "extname" changed to "appendus" below (CFITSIO) */
+#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(appendus)
 #define CFC_(UN,LN)            _(LN,_)      /* Lowercase FORTRAN symbols.     */
 #define orig_fcallsc(UN,LN)    CFC_(UN,LN)
 #else 
@@ -268,7 +319,8 @@
 #endif
 
 #ifndef apolloFortran
-#define COMMON_BLOCK_DEF(DEFINITION, NAME) DEFINITION NAME
+/* "extern" removed (CFITSIO) */
+#define COMMON_BLOCK_DEF(DEFINITION, NAME) /* extern */ DEFINITION NAME
 #define CF_NULL_PROTO
 #else                                         /* HP doesn't understand #elif. */
 /* Without ANSI prototyping, Apollo promotes float functions to double.    */
@@ -512,7 +564,7 @@
                     *( (F).dsc$l_m[0]=(F).dsc$bounds[0].dsc$l_u=(ELEMNO)  ),   \
   (F).dsc$a_a0    =  ( (F).dsc$a_pointer=(C) ) - (F).dsc$w_length          ,(F))
 
-#else
+#endif      /* PDW: 2/10/98 (CFITSIO) -- Let VMS see NUM_ELEMS definitions */
 #define _NUM_ELEMS      -1
 #define _NUM_ELEM_ARG   -2
 #define NUM_ELEMS(A)    A,_NUM_ELEMS
@@ -540,7 +592,8 @@
 }
 return (int)num;
 }
-#endif
+/* #endif removed 2/10/98 (CFITSIO) */
+
 /*-------------------------------------------------------------------------*/
 
 /*           UTILITIES FOR C TO USE STRINGS IN FORTRAN COMMON BLOCKS       */


--- NEW FILE 308-use-canonical-cfortran-location.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 308-use-canonical-cfortran-location.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: All code compiled at Cernlib build-time should look for cfortran.h
## DP: at <cfortran/cfortran.h>.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/graflib/higz/higzcc/tkhigz.c /tmp/dpep.d3syqe/cernlib-2005.05.09/src/graflib/higz/higzcc/tkhigz.c
--- cernlib-2005.05.09/src/graflib/higz/higzcc/tkhigz.c	1996-02-14 08:10:26.000000000 -0500
+++ /tmp/dpep.d3syqe/cernlib-2005.05.09/src/graflib/higz/higzcc/tkhigz.c	2005-06-09 13:13:22.079711057 -0400
@@ -39,7 +39,7 @@
  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  */
 
-#include "higz/cfortran.h"
+#include <cfortran/cfortran.h>
 #if !defined(VMS) && !defined(_WINDOWS)
 #include "higz/tkConfig.h"
 #endif
diff -urNad cernlib-2005.05.09/src/pawlib/paw/testsuite/tuple/tuple.c /tmp/dpep.d3syqe/cernlib-2005.05.09/src/pawlib/paw/testsuite/tuple/tuple.c
--- cernlib-2005.05.09/src/pawlib/paw/testsuite/tuple/tuple.c	1996-04-17 10:46:29.000000000 -0400
+++ /tmp/dpep.d3syqe/cernlib-2005.05.09/src/pawlib/paw/testsuite/tuple/tuple.c	2005-06-09 13:14:58.654908060 -0400
@@ -16,7 +16,7 @@
 #include	<float.h>
 
 
-#include	"cfortran.h"
+#include	<cfortran/cfortran.h>
 
 /* #include	"packlib.h" */
 #include	"hbook_interface.h"


--- NEW FILE 309-define-dummy-herwig-routines.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 309-define-dummy-herwig-routines.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Define stub functions for herwig routines that are supposed to be
## DP: provided by the user.  Also, comment out the dummy functions pdfset
## DP: and structm; real versions are provided in pdflib.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/herwig/code/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/herwig/code/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/herwig/code/Imakefile	2005-11-28 19:46:53.619963660 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/herwig/code/Imakefile	2005-11-28 19:46:58.890844233 +0000
@@ -24,8 +24,13 @@
 	hwulob.F hwulof.F hwulor.F hwumas.F hwupcm.F hwurap.F hwures.F \ @@\
 	hwurob.F hwurof.F hwurot.F hwusor.F hwusqr.F hwusta.F hwutab.F \ @@\
 	hwutim.F hwvdif.F hwvdot.F hwvequ.F hwvsca.F hwvsum.F hwvzro.F \ @@\
-	hwwarn.F ieupdg.F ipdgeu.F pdfset.F qqinit.F qqlmat.F sasano.F \ @@\
-	sasbeh.F sasdir.F sasgam.F sasvmd.F structm.F
+	hwwarn.F ieupdg.F ipdgeu.F /*pdfset.F*/ qqinit.F qqlmat.F sasano.F \ @@\
+	sasbeh.F sasdir.F sasgam.F sasvmd.F /*structm.F*/
+	/* comment out pdfset.F, structm.F; real versions are in pdflib */
+
+/* add the following file to define dummy routines as weak symbols */
+/* --Kevin McCarty, for Debian */
+SRCS_C= dummy.c
 
 FORTRANSAVEOPTION = FortranSaveFlags
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/herwig/code/dummy.c cernlib-2005.05.09.dfsg/src/mclibs/herwig/code/dummy.c
--- cernlib-2005.05.09.dfsg~/src/mclibs/herwig/code/dummy.c	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/herwig/code/dummy.c	2005-11-28 19:49:17.897320746 +0000
@@ -0,0 +1,34 @@
+/* Dummy file to avoid undefined symbols in the library */
+/* Kevin McCarty, 14 Jan 2003 */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Want the dummy functions to be weakly defined so they may be overridden
+ * without error. */
+
+#define kludge(x)    #x
+#define stringify(x) kludge(x)
+#define underline(x) dummy_ ## x
+
+#define DUMMY(UPPERNAME, fortranname_, returntype) \
+static returntype underline(fortranname_)() { print_dummy(#UPPERNAME); } \
+void fortranname_() \
+	__attribute__ ((weak, alias (stringify(underline(fortranname_))) ))
+
+static void print_dummy(const char *function)
+{
+  fprintf(stderr, "herwig59: Now in dummy %s routine.\n", function);
+  fprintf(stderr,
+          "If you see this message, you should define your own such routine.\n"
+#if defined (CERNLIB_DEBIAN)
+	  "For details, see the file /usr/share/doc/libherwig59-2-dev/herwig59.txt.gz\n"
+#endif
+  );
+  exit(EXIT_FAILURE);
+}
+
+DUMMY(HWABEG, hwabeg_, void);
+DUMMY(HWANAL, hwanal_, void);
+DUMMY(HWAEND, hwaend_, void);
+


--- NEW FILE 310-define-dummy-fowl-routines.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 310-define-dummy-fowl-routines.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Define stub functions for routines in fowl that are supposed to be
## DP: user-defined.  Also, rename START to FSTART to avoid name clash
## DP: with mathlib.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/fowl/Imakefile cernlib-2005.05.09.dfsg/src/phtools/fowl/Imakefile
--- cernlib-2005.05.09.dfsg~/src/phtools/fowl/Imakefile	1996-04-26 07:13:52.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/fowl/Imakefile	2005-11-28 19:49:52.412989577 +0000
@@ -1,10 +1,12 @@
-SRCS_F=	 beamin.F breitw.F chmove.F delsq.F dumpme.F finish.F \ @@\
+SRCS_F=	 beamin.F breitw.F chmove.F delsq.F dumpme.F /* finish.F */ \ @@\
 	fmass.F fmassq.F fowl.F fowlmp.F fowlpr.F genev.F histey.F \ @@\
 	labsys.F pdk.F qqstrt.F rangnr.F redat2.F redata.F rotes2.F \ @@\
 	scout.F teedia.F tranch.F xplsdx.F
 
+SRCS_C= dummy.c /*"fake" defn of start, user, finish to avoid undefined syms*/
+
 #if !defined(CERNLIB_UNIX)
-SRCS_F := $(SRCS_F) start.F
+SRCS_F := $(SRCS_F) /* start.F */
 #endif
 
 SubdirLibraryTarget(fowl,NullParameter)
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/fowl/dummy.c cernlib-2005.05.09.dfsg/src/phtools/fowl/dummy.c
--- cernlib-2005.05.09.dfsg~/src/phtools/fowl/dummy.c	1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/fowl/dummy.c	2005-11-28 19:53:31.287496776 +0000
@@ -0,0 +1,39 @@
+/* Dummy file to avoid undefined symbols in the library */
+/* Kevin McCarty, 26 Apr 2004 */
+/* Last revised 13 Aug 2004 */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Want the dummy functions to be weakly defined so they may be overridden
+ * without error. */
+
+#define kludge(x)    #x
+#define stringify(x) kludge(x)
+#define underline(x) dummy_ ## x
+
+#define DUMMY(UPPERNAME, fortranname_, returntype) \
+static returntype underline(fortranname_)() { print_dummy(#UPPERNAME); } \
+void fortranname_() \
+	__attribute__ ((weak, alias (stringify(underline(fortranname_))) ))
+
+static void print_dummy(const char *function)
+{
+  fprintf(stderr, "phtools: Now in dummy %s routine.\n", function);
+  fprintf(stderr,
+          "If you see this message, you should define your own such routine.\n"
+	  "For details, see "
+#if defined (CERNLIB_DEBIAN)
+	                   "/usr/share/doc/libphtools2-dev/README.Debian\n"
+	  "and "
+#endif
+	      "the CERN writeup for FOWL (available at the URL\n"
+	  "http://wwwasdoc.web.cern.ch/wwwasdoc/Welcome.html ; scroll down\n"
+	  "to the link for W505 - FOWL.)\n");
+  exit(EXIT_FAILURE);
+}
+
+DUMMY(FSTART, fstart_, void);
+DUMMY(USER,   user_,   void);
+DUMMY(FINISH, finish_, void);
+
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/fowl/fowlmp.F cernlib-2005.05.09.dfsg/src/phtools/fowl/fowlmp.F
--- cernlib-2005.05.09.dfsg~/src/phtools/fowl/fowlmp.F	1996-03-22 16:42:46.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/fowl/fowlmp.F	2005-11-28 19:49:52.412989577 +0000
@@ -30,7 +30,7 @@
       CALL REDATA
       IF(NEVTOT.LT.NGRP) NGRP = NEVTOT
       N2 = MIN (NEVTOT/NGRP, 30000)
-      CALL START
+      CALL FSTART
       DO  500 I2= 1, N2
       DO  400  I= 1, NGRP
       IEVENT = IEVENT + 1
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/fowl/qqstrt.F cernlib-2005.05.09.dfsg/src/phtools/fowl/qqstrt.F
--- cernlib-2005.05.09.dfsg~/src/phtools/fowl/qqstrt.F	1996-03-22 16:42:47.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/fowl/qqstrt.F	2005-11-28 19:49:52.412989577 +0000
@@ -38,6 +38,9 @@
       COMMON
      +/TAPES / NTPIN     ,NTPOUT   ,NTPNCH   ,NTPBIN   ,KONSOL
       IF(JEVT.LE.0) RETURN
+#if 0
+C     Comment this section out; "which" is obsolete
+C     -- Kevin McCarty, for Debian, 26 April 2004
       CALL WHICH(ISIT,VAL)
       WRITE(6,700)JEVT,VAL
   700 FORMAT('0RANDOM NUMBER GENERATOR INITIATED TO',I12,
@@ -46,6 +49,7 @@
 C--     CDC   60-BIT WORD
 CDC                             )B10000000000000007171 .RO.  TVEJ( = POL
       GOTO 200
+#endif
   100 CONTINUE
 C         FOR -CDC JUST MAKE SURE IT IS ODD
       IGLOP = JEVT


--- NEW FILE 311-skip-duplicate-qnext.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 311-skip-duplicate-qnext.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Don't compile in redundant versions of qnext.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kernlib/kerngen/tcgenc/Imakefile /tmp/dpep.5v33rR/cernlib-2005.05.09/src/packlib/kernlib/kerngen/tcgenc/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kerngen/tcgenc/Imakefile	1998-03-05 08:17:18.000000000 -0500
+++ /tmp/dpep.5v33rR/cernlib-2005.05.09/src/packlib/kernlib/kerngen/tcgenc/Imakefile	2005-06-09 14:28:05.755053006 -0400
@@ -1,5 +1,6 @@
+/* don't compile qnexte.F --Kevin*/
 SRCS_F= abend.F accessf.F exitf.F \ @@\
-	intrac.F jumpxn.F lnblnk.F locb.F locf.F qnexte.F unlinkf.F
+	intrac.F jumpxn.F lnblnk.F locb.F locf.F unlinkf.F
 
 #ifndef CERNLIB_OS9
 SRCS_F := $(SRCS_F) timed.F timel.F timex.F 
diff -urNad cernlib-2005.05.09/src/packlib/zebra/qutil/Imakefile /tmp/dpep.5v33rR/cernlib-2005.05.09/src/packlib/zebra/qutil/Imakefile
--- cernlib-2005.05.09/src/packlib/zebra/qutil/Imakefile	1996-03-06 05:47:15.000000000 -0500
+++ /tmp/dpep.5v33rR/cernlib-2005.05.09/src/packlib/zebra/qutil/Imakefile	2005-06-09 14:28:05.755053006 -0400
@@ -1,6 +1,7 @@
+/* don't compile qnext.F --Kevin*/
 SRCS_F=	 izbcd.F izbcdt.F izbcdv.F izchav.F izhnum.F lzbyt.F \ @@\
 	lzfind.F lzfval.F lzlast.F lzlong.F nzbank.F nzfind.F nzlong.F \ @@\
-	qnext.F zhtoi.F zitoh.F zkrak.F zkrakn.F znumid.F zpress.F \ @@\
+	zhtoi.F zitoh.F zkrak.F zkrakn.F znumid.F zpress.F \ @@\
 	zshunt.F zsort.F zsorth.F zsorti.F zsorv.F zsorvh.F zsorvi.F \ @@\
 	ztopsy.F
 


--- NEW FILE 312-skip-duplicate-gamma.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 312-skip-duplicate-gamma.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Don't compile in redundant gamma function in isajet; use the mathlib one

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile /tmp/dpep.IX54UM/cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile
--- cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile	2005-06-09 14:29:18.976494518 -0400
+++ /tmp/dpep.IX54UM/cernlib-2005.05.09/src/mclibs/isajet/code/Imakefile	2005-06-09 14:30:21.913126207 -0400
@@ -1,12 +1,13 @@
 DoIncludePackage(isajet)
 #include "pilot.h"
 
+/* gamma.F removed; use the one defined in mathlib/gen/c/gamma.F */
 SRCS_F= \ @@\
 	 amass.F charge.F cteq5l.F ctxc2i.F ctxi2c.F ctxin.F ctxout.F \ @@\
 	 dblpcm.F dblvec.F dboost.F decay.F decjet.F \ @@\
 	 domssm.F drllyn.F eebeg.F eemax.F elctrn.F epf.F evol01.F evol02.F \ @@\
 	 evol03.F evol05.F evol06.F evol07.F evolms.F evolve.F flavor.F \ @@\
-	 fortop.F frgjet.F frgmnt.F gamma.F getpt.F gettot.F heavyx.F \ @@\
+	 fortop.F frgjet.F frgmnt.F         getpt.F gettot.F heavyx.F \ @@\
 	 hevolv.F higgs.F idanti.F idgen.F iframs.F inisap.F ipartns.F \ @@\
 	 ipjset.F iprtns.F irmov0.F isabeg.F isaend.F isaevt.F isaini.F \ @@\
 	 isajet.F isasrt.F ispjet.F istrad.F iswdky.F jetgen.F \ @@\


--- NEW FILE 313-comis-preserves-filename-case.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 313-comis-preserves-filename-case.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Have COMIS preserve filename case when interpreting FORTRAN code.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c /tmp/dpep.GROFhd/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c	2003-02-13 09:25:23.000000000 -0500
+++ /tmp/dpep.GROFhd/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuinit.c	2005-06-09 15:24:32.751560586 -0400
@@ -200,6 +200,14 @@
   ku_exel( "/KUIP/SET_SHOW/COLUMNS -1" );
   ku_exel( "/KUIP/SET_SHOW/DOLLAR 'ON'" );
 
+#if defined(UNIX) && (defined(WINNT) || !defined(MSDOS))
+/* Correct the default behavior of converting filenames to lower-case
+ * on a case-sensitive operating system... Not that I'm bitter or anything.
+ * --Kevin McCarty, for Debian
+ */
+  ku_exel( "/KUIP/SET_SHOW/FILECASE 'KEEP'" );
+#endif
+
   host_editor = getenv( "KUIPEDITOR" );
   if( host_editor == NULL )
     host_editor = getenv( "EDITOR" );
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf /tmp/dpep.GROFhd/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf	1997-09-25 10:02:25.000000000 -0400
+++ /tmp/dpep.GROFhd/cernlib-2005.05.09/src/packlib/kuip/code_kuip/kuipcdf.cdf	2005-06-09 15:23:49.276738602 -0400
@@ -1064,11 +1064,12 @@
 .
 This command has only an effect on Unix systems to select whether filenames
 are kept as entered on the command line.
-The startup value is 'CONVERT', i.e. filenames are converted to lowercase.
+The startup value is 'KEEP', i.e. filename cases are preserved.  With
+the 'CONVERT' setting, filenames are converted to lowercase.
 .
 On other systems filenames are always converted to uppercase.
 .
-The 'RESTORE' option set the conversion mode to the value effective
+The 'RESTORE' option sets the conversion mode to the value effective
 before the last FILECASE KEEP/CONVERT command.
 E.g. the sequence
      FILECASE KEEP; EDIT Read.Me; FILECASE RESTORE
diff -urNad cernlib-2005.05.09/src/pawlib/paw/code/pawint3.F /tmp/dpep.GROFhd/cernlib-2005.05.09/src/pawlib/paw/code/pawint3.F
--- cernlib-2005.05.09/src/pawlib/paw/code/pawint3.F	1999-05-20 03:37:18.000000000 -0400
+++ /tmp/dpep.GROFhd/cernlib-2005.05.09/src/pawlib/paw/code/pawint3.F	2005-06-09 15:23:49.276738602 -0400
@@ -140,7 +140,7 @@
       CHUTIT = ' '
 *
       IF (IPIAF.EQ.0) THEN
-         CALL KUOPEN(10,'PAW.METAFILE','UNKNOWN',ISTAT)
+         CALL KUOPEN(10,'paw.metafile','UNKNOWN',ISTAT)
 #if (defined(CERNLIB_IBM))&&(!defined(CERNLIB_IBMMVS))
          CALL HERMES(19)
          CALL VMCMS('FILEDEF 19 DISK GKSERROR OUTPUT A',IRET)


--- NEW FILE 314-permit-using-regcomp-for-re_comp.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 314-permit-using-regcomp-for-re_comp.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Add a possibility to use regcomp() instead of re_comp() (selected at
## DP: compile time)

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_motif/kmfile.c /tmp/dpep.OUDE1M/cernlib-2005.05.09/src/packlib/kuip/code_motif/kmfile.c
--- cernlib-2005.05.09/src/packlib/kuip/code_motif/kmfile.c	1996-03-08 10:33:08.000000000 -0500
+++ /tmp/dpep.OUDE1M/cernlib-2005.05.09/src/packlib/kuip/code_motif/kmfile.c	2005-06-09 15:49:30.689188356 -0400
@@ -18,6 +18,11 @@
 #include "kuip/mkutfu.h"
 #include "mkutda.h"
 
+#ifdef MATCH_REGCOMP
+#include <sys/types.h>
+#include <regex.h>     /* for regex_t */
+#endif
+
 static char **ftype_list = NULL;
 static char **class_list = NULL;
 static char **stext_list = NULL;
@@ -92,8 +97,12 @@
     DIR            *dirp;
     struct dirent  *dp;
     char           *pattern;
+#ifdef MATCH_REGCOMP
+    regex_t        *re = (regex_t *)malloc( sizeof(regex_t) );
+#else
     char           *re;
 #endif
+#endif
     struct stat     filestatus;
 
     ndlist     = 0;
@@ -221,11 +230,15 @@
       }
     }
     pattern = mstrcat( pattern, "$" );
+#ifdef MATCH_REGCOMP
+    regcomp( re, pattern, REG_NEWLINE );
+#else
 #ifdef MATCH_RE_COMP
     re = re_comp( pattern );
 #else
     re = regcmp( pattern, NULL );
 #endif
+#endif
     free( pattern );
 
     /*
@@ -260,12 +273,16 @@
         }
         else if( (filestatus.st_mode & S_IFMT) == S_IFREG ) {
           /* regular file: match name against regexp */
+#ifdef MATCH_REGCOMP
+          int match = (regexec( re, dp->d_name, 0, NULL, 0 ) == 0);
+#else
 #ifdef MATCH_RE_COMP
           int match = re_exec( dp->d_name );
 #else
           int match = (regex( re, dp->d_name ) != NULL);
 #endif
-          if( match == 1 ) {
+#endif
+          if( match ) {
             filelist = (char**)realloc( (char*)filelist,
                                        (nflist+1) * sizeof(char*) );
             filelist[nflist] = strdup( dp->d_name );
@@ -276,6 +293,9 @@
       closedir( dirp );
     }
 
+#ifdef MATCH_REGCOMP
+    regfree( re );
+#endif
 #ifndef MATCH_RE_COMP
     free( re );
 #endif


--- NEW FILE 315-fixes-for-MacOSX.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 315-fixes-for-MacOSX.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch set (mostly due to Keisuke Fujii) to allow Cernlib to compile
## DP: and run on OS X.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/config/Imake.rules /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/Imake.rules
--- cernlib-2005.05.09/src/config/Imake.rules	2005-04-18 11:39:25.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/Imake.rules	2005-06-09 15:52:06.472072084 -0400
@@ -2171,7 +2171,7 @@
 #define CppScriptTarget(dst,src,defs,deplist)				@@\
 dst::  src deplist							@@\
 	RemoveFile($@)							@@\
-	$(CPP) defs <src | CppSedMagic >$@				@@\
+	$(CPP) defs src | CppSedMagic >$@				@@\
 	chmod a+x $@							@@\
 									@@\
 clean::									@@\
@@ -2203,7 +2203,7 @@
 #define CppFileTarget(dst,src,defs,deplist)				@@\
 dst::  src deplist							@@\
 	RemoveFile($@)							@@\
-	$(CPP) defs <src | CppSedMagic >$@				@@\
+	$(CPP) defs src | CppSedMagic >$@				@@\
 									@@\
 clean::									@@\
 	RemoveFiles(dst)
diff -urNad cernlib-2005.05.09/src/config/MacOSX.cf /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.cf
--- cernlib-2005.05.09/src/config/MacOSX.cf	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.cf	2004-06-30 21:54:11.000000000 -0400
@@ -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
+
+#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 DependFlags -I/usr/include/ansi -I/usr/include/bsd -I/sw/include
+#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 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
+
+#ifndef CernlibLocalDefines
+# define CernlibLocalDefines
+#endif
+#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/src/config/MacOSX.rules /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.rules
--- cernlib-2005.05.09/src/config/MacOSX.rules	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.rules	2004-06-30 21:54:11.000000000 -0400
@@ -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.
+ * Edited 2003-05-09 by Kevin McCarty to add an install.shlib target.
+ */
+#ifndef InstallSharedLibrary
+#define InstallSharedLibrary(libname,rev,dest)				@@\
+.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)						@@\
+	$(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/src/config/MacOSX.tmpl /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.tmpl
--- cernlib-2005.05.09/src/config/MacOSX.tmpl	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/MacOSX.tmpl	2004-06-30 21:54:11.000000000 -0400
@@ -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/src/config/site.def /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/site.def
--- cernlib-2005.05.09/src/config/site.def	2002-04-26 10:46:04.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/config/site.def	2005-06-09 15:52:06.472072084 -0400
@@ -99,9 +99,7 @@
 /*   if it is already defined and false, undef it! */
 /* do not use shift by default
 #if defined(CERNLIB_UNIX) && !defined(CERNLIB_WINNT)
-#if ! defined(CERNLIB_SHIFT)
-#define CERNLIB_SHIFT
-#elif  ! CERNLIB_SHIFT
+#if defined(CERNLIB_SHIFT) && !CERNLIB_SHIFT
 #undef CERNLIB_SHIFT
 #endif
 #endif
diff -urNad cernlib-2005.05.09/src/geant321/gxint/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/geant321/gxint/Imakefile
--- cernlib-2005.05.09/src/geant321/gxint/Imakefile	1997-01-29 11:37:40.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/geant321/gxint/Imakefile	2005-06-09 15:52:06.472072084 -0400
@@ -30,7 +30,7 @@
 
 gxint321.f:  gxint.F
 	RemoveFile($@)
-	$(CPP) $(FORTRANALLDEFMDEPEND) < $^ | sed -e '/^$$/d' | CppSedMagic >$@
+	FortranCmd -E $(FORTRANALLDEFMDEPEND) $^ | sed -e '/^$$/d' | CppSedMagic >$@
 
 install.lib:: $(CERN_LIBDIR)/gxint.f
 
diff -urNad cernlib-2005.05.09/src/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/Imakefile
--- cernlib-2005.05.09/src/Imakefile	1996-12-16 10:08:41.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/Imakefile	2005-06-09 15:52:06.471072296 -0400
@@ -7,8 +7,12 @@
 SUBDIRS= $(LIBDIRS) patchy cfortran
 
 #ifdef CERNLIB_UNIX
+#ifdef CERNLIB_MACOSX
+SUBDIRS:= $(SUBDIRS) scripts
+#else
 SUBDIRS:= $(SUBDIRS) scripts mgr
 #endif
+#endif
 
 InstallLibSubdirs($(LIBDIRS))
 
diff -urNad cernlib-2005.05.09/src/mathlib/gen/tests/c327m.F /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mathlib/gen/tests/c327m.F
--- cernlib-2005.05.09/src/mathlib/gen/tests/c327m.F	1996-04-01 10:01:17.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mathlib/gen/tests/c327m.F	2005-06-09 15:52:06.483069745 -0400
@@ -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/src/mathlib/gen/tests/c342m.F /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mathlib/gen/tests/c342m.F
--- cernlib-2005.05.09/src/mathlib/gen/tests/c342m.F	1996-04-01 10:01:19.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mathlib/gen/tests/c342m.F	2005-06-09 15:52:06.483069745 -0400
@@ -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/src/mclibs/cojets/data/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mclibs/cojets/data/Imakefile
--- cernlib-2005.05.09/src/mclibs/cojets/data/Imakefile	1996-03-27 04:31:06.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mclibs/cojets/data/Imakefile	2005-06-09 15:52:06.483069745 -0400
@@ -1,11 +1,11 @@
 
 .SUFFIXES:
 
-CopyFile(cojets.cpp,cojets.cin)
+CopyFile(cojets.cpp,cojets.s)
 CopyFile(decay.cpp,decay.cin)
 CopyFile(table.cpp,table.cin)
 
-CppFileTarget(cojets.dat,cojets.cin,NullParameter,table.cin decay.cin)
+CppFileTarget(cojets.dat,cojets.s,-E -traditional,table.cin decay.cin)
 
 PackageDirFileTarget(cojets.dat)
 
diff -urNad cernlib-2005.05.09/src/mclibs/isajet/data/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mclibs/isajet/data/Imakefile
--- cernlib-2005.05.09/src/mclibs/isajet/data/Imakefile	1996-03-27 04:33:19.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/mclibs/isajet/data/Imakefile	2005-06-09 15:52:06.483069745 -0400
@@ -1,9 +1,9 @@
 
 .SUFFIXES:
 
-CopyFile(decay.cpp,decay.cin)
+CopyFile(decay.cpp,decay.s)
 
-CppFileTarget(isajet.dat,decay.cin,NullParameter,NullParameter)
+CppFileTarget(isajet.dat,decay.s,-E -traditional ,NullParameter)
 
 PackageDirFileTarget(isajet.dat)
 
diff -urNad cernlib-2005.05.09/src/packlib/cspack/sysreq/log.c /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/cspack/sysreq/log.c
--- cernlib-2005.05.09/src/packlib/cspack/sysreq/log.c	2003-09-02 08:47:16.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/cspack/sysreq/log.c	2005-06-09 15:52:06.483069745 -0400
@@ -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/src/packlib/cspack/tcpaw/tcpaw.c /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c
--- cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-06-09 15:51:53.621804393 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/cspack/tcpaw/tcpaw.c	2005-06-09 15:52:06.485069320 -0400
@@ -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/src/packlib/kernlib/kernbit/z268/systems.c /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernbit/z268/systems.c
--- cernlib-2005.05.09/src/packlib/kernlib/kernbit/z268/systems.c	1998-08-25 08:45:56.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernbit/z268/systems.c	2005-06-09 15:52:06.485069320 -0400
@@ -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/src/packlib/kernlib/kernnum/d704fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/d704fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/d704fort/Imakefile	1996-06-12 06:03:53.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/d704fort/Imakefile	2005-06-09 15:52:06.485069320 -0400
@@ -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/src/packlib/kernlib/kernnum/f002fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f002fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/f002fort/Imakefile	1996-06-12 06:04:09.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f002fort/Imakefile	2005-06-09 15:52:06.485069320 -0400
@@ -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/src/packlib/kernlib/kernnum/f003fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f003fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/f003fort/Imakefile	1996-06-12 06:04:12.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f003fort/Imakefile	2005-06-09 15:52:06.486069107 -0400
@@ -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/src/packlib/kernlib/kernnum/f004fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f004fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/f004fort/Imakefile	1996-06-12 06:04:16.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f004fort/Imakefile	2005-06-09 15:52:06.486069107 -0400
@@ -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/src/packlib/kernlib/kernnum/f010fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f010fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/f010fort/Imakefile	1996-06-12 06:04:19.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f010fort/Imakefile	2005-06-09 15:52:06.486069107 -0400
@@ -7,6 +7,10 @@
 FDEBUGFLAGS=NoOpFortranDebugFlags
 #endif
 
+#if defined(CERNLIB_MACOSX)
+FDEBUGFLAGS=-O0 -fPIC
+#endif
+
 FORTRANSAVEOPTION=FortranSaveFlags
 	 
 
diff -urNad cernlib-2005.05.09/src/packlib/kernlib/kernnum/f011fort/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f011fort/Imakefile
--- cernlib-2005.05.09/src/packlib/kernlib/kernnum/f011fort/Imakefile	1996-06-12 06:04:24.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kernlib/kernnum/f011fort/Imakefile	2005-06-09 15:52:06.486069107 -0400
@@ -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/src/packlib/kuip/kuip/ksys.h /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kuip/kuip/ksys.h
--- cernlib-2005.05.09/src/packlib/kuip/kuip/ksys.h	1997-09-02 10:50:01.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/packlib/kuip/kuip/ksys.h	2005-06-09 15:52:06.487068895 -0400
@@ -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/src/pawlib/comis/code/csaddr.F /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F
--- cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F	1996-02-26 12:16:25.000000000 -0500
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F	2005-06-09 15:52:06.487068895 -0400
@@ -26,7 +26,12 @@
       I=CSLTGP(IPVS)
       IF(I.GT.0)THEN
         IF(IFCS.EQ.0)THEN
+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)
@@ -35,7 +40,11 @@
           ENDIF
         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/src/pawlib/comis/code/cscrexec.F /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F
--- cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2005-06-09 15:51:53.524825013 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/comis/code/cscrexec.F	2005-06-09 15:57:50.699841388 -0400
@@ -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/src/pawlib/paw/programs/Imakefile /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile	2002-04-25 06:20:11.000000000 -0400
+++ /tmp/dpep.kYNoLQ/cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile	2005-06-09 15:52:06.486069107 -0400
@@ -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
 


--- NEW FILE 318-additional-gcc-3.4-fixes.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 318-additional-gcc-3.4-fixes.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## 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  */
 void    _XmHighlightBorder ();
 void   _XmUnhighlightBorder ();
-void   _XmDrawShadow ();
+/* void   _XmDrawShadow (); */
 
 /* Motif1.1 ( except apollo, hpux has _XmPrimitive... with two args only
  * Gunter 30-jan-95


--- NEW FILE 701-patch-hbook-comis-Imakefiles.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 701-patch-hbook-comis-Imakefiles.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix up makefiles after moving hkfill.F and hkf1q.F in the other
## DP: 701 dpatch (a shell script).

@DPATCH@
diff -urNad cernlib-2005.05.09/src/packlib/hbook/code/Imakefile /tmp/dpep.3VyhWr/cernlib-2005.05.09/src/packlib/hbook/code/Imakefile
--- cernlib-2005.05.09/src/packlib/hbook/code/Imakefile	1997-09-02 09:09:01.000000000 -0400
+++ /tmp/dpep.3VyhWr/cernlib-2005.05.09/src/packlib/hbook/code/Imakefile	2005-06-10 17:04:08.866020136 -0400
@@ -19,8 +19,8 @@
 	hgn.F hgnf.F hgnpar.F hgstat.F hhipar.F hhxye.F hi.F \ @@\
 	hictoi.F hid1.F hid2.F hidall.F hidopt.F hidpos.F hie.F  \ @@\
 	hif.F hij.F hije.F hijxy.F hindex.F hinprx.F hinteg.F  \ @@\
-	hipak1.F histdo.F histgo.F hix.F hkf1.F hkf1q.F hkf2.F  \ @@\
-	hkff1.F hkff2.F hkffi1.F hkfi1.F hkfil2.F hkfill.F hkfilpf.F \ @@\
+	hipak1.F histdo.F histgo.F hix.F hkf1.F         hkf2.F  \ @@\
+	hkff1.F hkff2.F hkffi1.F hkfi1.F hkfil2.F          hkfilpf.F \ @@\
 	hkind.F hknul1.F hknuli.F hlabel.F hlabeq.F hlabnb.F \ @@\
 	hlattr.F hlccmp.F hldir.F hldir1.F hldir2.F hldirt.F \ @@\
 	hlgnxt.F hlhcmp.F hlimit.F hllsq.F hlnext.F hlocat.F \ @@\
diff -urNad cernlib-2005.05.09/src/pawlib/comis/code/Imakefile /tmp/dpep.3VyhWr/cernlib-2005.05.09/src/pawlib/comis/code/Imakefile
--- cernlib-2005.05.09/src/pawlib/comis/code/Imakefile	2005-06-10 17:02:24.843306185 -0400
+++ /tmp/dpep.3VyhWr/cernlib-2005.05.09/src/pawlib/comis/code/Imakefile	2005-06-10 17:05:09.955931988 -0400
@@ -37,7 +37,8 @@
 	csspar.F cssubr.F cssvpt.F cstadv.F cstarr.F csterr.F cstext.F \ @@\
 	cstfrf.F cstinf.F cstlgb.F cstlog.F cstpar.F cstran.F cstrer.F \ @@\
 	cstypar.F cstype.F csubad.F csunam.F csundf.F csxpar.F \ @@\
-	mcline.F mcsident.F
+	mcline.F mcsident.F \ @@\
+	hkfill.F hkf1q.F /* moved here from src/packlib/hbook/code */
 
 #if defined(CERNLIB_PAW)
 SRCS_F := $(SRCS_F) cspawi.F cskuix.F cktoiv.F cspawv.F csmkvd.F \ @@\


--- NEW FILE 702-patch-Imakefiles-for-packlib-mathlib.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 702-patch-Imakefiles-for-packlib-mathlib.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Hacks to Imakefiles to go along with the 702 shellscript for moving
## DP: files around.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/mathlib/gen/d/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	2005-06-10 22:19:15.720962444 -0400
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	2005-06-10 22:24:26.783925145 -0400
@@ -1,6 +1,8 @@
 DoIncludePackage(gen)
 #include "pilot.h"
 
+/* rgmlt*.F have been moved into packlib/hbook to remove circular dependencies.
+   --Kevin McCarty, for Debian. */
 SRCS_F=	arithm.F c128.F c256.F c512.F c64.F cauchy64.F cft.F cfstft.F \ @@\
 	rfstft.F cgauss.F d107d1.F d107r1.F d501l1.F d501l2.F d501n1.F \ @@\
         d501n2.F d501p1.F d501p2.F d501sf.F d700su.F d701bd.F \ @@\
@@ -10,14 +12,14 @@
         epditr.F epdje.F epdloc.F epdsrt.F epdtab.F errorf.F esolve.F \ @@\
 	fcn1.F fftrc.F fumili.F gauss.F i128.F i32.F i64.F linsq.F \ @@\
 	mconv.F mft.F minfc.F minsq.F monito.F newro.F old506.F radapt.F \ @@\
-	radmul.F rca.F rfrdh164.F rfrdh264.F rft.F rgmlt64.F rgquad.F \ @@\
+	radmul.F rca.F rfrdh164.F rfrdh264.F rft.F           rgquad.F \ @@\
 	rgs56p.F rgset.F riwiad.F riwibd.F rknys64.F rknysd.F rkstp.F \ @@\
 	rpa.F rps.F rrkstp.F rsa.F rtriint.F s128.F s256.F s512.F \ @@\
 	s64.F scal.F sgz.F simps.F synt.F traper.F triint.F vd01a.F
 
 #if defined(CERNLIB_DOUBLE)
 SRCS_F:= $(SRCS_F) cgauss64.F dgquad.F dgset.F gauss64.F minfc64.F \ @@\
-	rcauch.F rdeqbs.F rdeqmr.F rderiv.F rfrdh1.F rgmlt.F rkstp64.F \ @@\
+	rcauch.F rdeqbs.F rdeqmr.F rderiv.F rfrdh1.F         rkstp64.F \ @@\
 	simps64.F triint64.F 
 #if defined(CERNLIB_LINUX)
 /* -O3 optimization breaks in g77 3.2 */
@@ -26,7 +28,7 @@
 #endif
 #else
 SRCS_F:= $(SRCS_F) cgauss128.F cauchy.F cauchy128.F deqbs128.F deqmr128.F \ @@\
-	deriv128.F minfc128.F rfrdh128.F rgmlt128.F rkstp128.F simps128.F \ @@\
+	deriv128.F minfc128.F rfrdh128.F            rkstp128.F simps128.F \ @@\
 	triint128.F 
 #endif
 
diff -urNad cernlib-2005.05.09/src/mathlib/gen/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/gen/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/Imakefile	1996-10-02 12:09:45.000000000 -0400
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/gen/Imakefile	2005-06-10 22:20:55.683416711 -0400
@@ -8,7 +8,8 @@
 IMAKE_DEFINES=-DFortranDoesCpp=NO
 #endif
 
-LIBDIRS= a b c d divon e f g h j m n s u v x
+/* "n" subdir moved to packlib/hbook/  --Kevin McCarty, for Debian */
+LIBDIRS= a b c d divon e f g h j m   s u v x
 
 SUBDIRS= $(LIBDIRS) gen tests
 
diff -urNad cernlib-2005.05.09/src/mathlib/hbook/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/hbook/Imakefile
--- cernlib-2005.05.09/src/mathlib/hbook/Imakefile	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/hbook/Imakefile	2004-06-30 21:54:11.000000000 -0400
@@ -0,0 +1,12 @@
+/* this Imakefile used to get hdiff to compile within the mathlib tree */
+
+#define IHaveSubdirs
+#define PassCDebugFlags
+
+LIBDIRS= hdiff
+SUBDIRS= $(LIBDIRS) hbook
+
+TopOfPackage(hbook)
+SubdirLibraryTarget(hbook,$(LIBDIRS))
+DoIncludePackage(hbook)
+InstallIncludeSubdirs(hbook)
diff -urNad cernlib-2005.05.09/src/mathlib/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/Imakefile
--- cernlib-2005.05.09/src/mathlib/Imakefile	2005-06-10 22:19:15.834937877 -0400
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/mathlib/Imakefile	2005-06-10 22:20:05.279280394 -0400
@@ -3,7 +3,7 @@
 #define PassCDebugFlags 
 
 
-LIBDIRS= gen bvsl
+LIBDIRS= gen bvsl hbook /* hdiff stuff moved from packlib */
 
 /* Lapack is independent of Cernlib and should be installed as one of
    the build dependencies.
diff -urNad cernlib-2005.05.09/src/packlib/hbook/d/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/packlib/hbook/d/Imakefile
--- cernlib-2005.05.09/src/packlib/hbook/d/Imakefile	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/packlib/hbook/d/Imakefile	2004-06-30 21:54:11.000000000 -0400
@@ -0,0 +1,25 @@
+/* this Imakefile is used to get some things from mathlib/gen/d to compile
+   within the packlib/hbook tree */
+
+DoIncludePackage(gen)
+#include "pilot.h"
+
+SRCS_F=	rgmlt64.F
+
+#if defined(CERNLIB_DOUBLE)
+SRCS_F:= $(SRCS_F) rgmlt.F
+#else
+SRCS_F:= $(SRCS_F) rgmlt128.F
+#endif
+
+#ifdef CERNLIB_HPUX
+FORTRANOPTIONS += -WF,-P
+#endif
+
+#if defined(CERNLIB_SGI)
+IMAKE_DEFINES=-DFortranDoesCpp=NO
+#endif
+
+FORTRANSAVEOPTION = FortranSaveFlags
+
+SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/packlib/hbook/Imakefile /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/packlib/hbook/Imakefile
--- cernlib-2005.05.09/src/packlib/hbook/Imakefile	1997-04-28 04:21:23.000000000 -0400
+++ /tmp/dpep.aVAPwe/cernlib-2005.05.09/src/packlib/hbook/Imakefile	2005-06-10 22:26:27.063010420 -0400
@@ -2,7 +2,9 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
-LIBDIRS= hdiff hmerge hquad chbook fpclassc \ @@\
+/* hdiff moved to mathlib to avoid circular DLL dependencies; "d" and "n"
+   moved here from mathlib for the same reasons */
+LIBDIRS= d n   hmerge hquad chbook fpclassc \ @@\
 	 hrz code hmcstat hntup
 
 #ifdef CERNLIB_VAX


--- NEW FILE 703-patch-code_motif-packlib-Imakefiles.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 703-patch-code_motif-packlib-Imakefiles.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix up Imakefiles, etc. so that code_motif becomes a separate library
## DP: after moving it around in the patch 703 shell script.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/code_motif/Imakefile /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/code_motif/Imakefile
--- cernlib-2005.05.09/src/code_motif/Imakefile	1996-12-10 10:20:59.000000000 -0500
+++ /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/code_motif/Imakefile	2005-06-12 10:31:56.480928814 -0400
@@ -10,8 +10,10 @@
 	kuxxt.c mkdcmp.c mkdgra.c mkdpan.c mkmpan.c mkuip.c
 
 MotifDependantMakeVar(SRCS_C,$(MOTIF_SRCS_C))
-	
+
+/* Commented out since kmutil.c has been moved to packlib/kuip/code_kuip
 SRCS_C:= $(SRCS_C) kmutil.c
+*/
 
 #if defined(CERNLIB_VAXVMS)
 
@@ -22,4 +24,10 @@
  
 PACKAGE_INCLUDES := $(PACKAGE_INCLUDES) MotifIncludes X11Includes
 
-SubdirLibraryTarget(NullParameter,NullParameter)
+/* Top of package boilerplate to split this out as a separate library */
+
+TopOfPackage(packlib-lesstif)
+
+SubdirLibraryTarget(packlib-lesstif,NullParameter) 
+
+InstallLibrary(packlib-lesstif,$(CERN_LIBDIR))
diff -urNad cernlib-2005.05.09/src/Imakefile /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/Imakefile
--- cernlib-2005.05.09/src/Imakefile	2005-06-12 10:31:54.221414133 -0400
+++ /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/Imakefile	2005-06-12 10:32:20.947673659 -0400
@@ -2,7 +2,7 @@
 #define PassCDebugFlags
 
 
-LIBDIRS= kernlib packlib pawlib graflib mathlib geant321 mclibs phtools
+LIBDIRS= kernlib packlib code_motif pawlib graflib mathlib geant321 mclibs phtools
 
 SUBDIRS= $(LIBDIRS) patchy cfortran
 
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile	1999-11-24 04:52:07.000000000 -0500
+++ /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile	2005-06-12 10:31:56.480928814 -0400
@@ -3,7 +3,9 @@
 SRCS_C=	getline.c kalias.c kbrow.c kedit.c kexec.c khash.c kicon.c \ @@\
 	kienbr.c kipiaf.c kkern.c kmacro.c kmath.c kmenu.c kmisc.c \ @@\
 	kmodel.c kmterm.c kuinit.c kutrue.c kuvers.c kuwhag.c	   \ @@\
-	kuwhat.c kvect.c
+	kuwhat.c kvect.c \ @@\
+	kmutil.c
+	/* ^^ moved here from code_motif.  --Kevin McCarty */
 
 #ifdef CERNLIB_WINNT
 SRCS_C :=$(SRCS_C) kmutil0.c
diff -urNad cernlib-2005.05.09/src/packlib/kuip/Imakefile /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/packlib/kuip/Imakefile
--- cernlib-2005.05.09/src/packlib/kuip/Imakefile	1997-11-28 12:26:56.000000000 -0500
+++ /tmp/dpep.mcTNBz/cernlib-2005.05.09/src/packlib/kuip/Imakefile	2005-06-12 10:31:56.480928814 -0400
@@ -4,11 +4,14 @@
 
 LIBDIRS= code_kuip 
 
+/* Commented out so that code_motif gives a separate shared library
+ * --Kevin McCarty
 #ifndef CERNLIB_WINNT
 LIBDIRS := $(LIBDIRS) code_motif
 #else
 LIBDIRS := $(LIBDIRS) code_windows
 #endif
+*/
 
 SUBDIRS= $(LIBDIRS) programs examples kuip
 


--- NEW FILE 704-patch-code_kuip-higzcc-Imakefiles.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 704-patch-code_kuip-higzcc-Imakefiles.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Patch Imakefiles after moving kuwhag.c from packlib to grafX11.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/graflib/higz/higzcc/Imakefile /tmp/dpep.IDWarm/cernlib-2005.05.09/src/graflib/higz/higzcc/Imakefile
--- cernlib-2005.05.09/src/graflib/higz/higzcc/Imakefile	1998-11-16 04:36:53.000000000 -0500
+++ /tmp/dpep.IDWarm/cernlib-2005.05.09/src/graflib/higz/higzcc/Imakefile	2005-06-13 09:45:37.637201936 -0400
@@ -1,7 +1,7 @@
 DoIncludePackage(higz)
 #include "pilot.h"
 
-SRCS_C=	igvers.c
+SRCS_C=	igvers.c kuwhag.c /* <-- moved here from packlib/kuip/code_kuip */
 
 #if defined(CERNLIB_FALCO) && !defined(CERNLIB_VAX)
 SRCS_C := $(SRCS_C) falint.c 
diff -urNad cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile /tmp/dpep.IDWarm/cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile
--- cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile	2005-06-13 09:44:00.536042728 -0400
+++ /tmp/dpep.IDWarm/cernlib-2005.05.09/src/packlib/kuip/code_kuip/Imakefile	2005-06-13 09:44:41.448261682 -0400
@@ -2,7 +2,7 @@
 
 SRCS_C=	getline.c kalias.c kbrow.c kedit.c kexec.c khash.c kicon.c \ @@\
 	kienbr.c kipiaf.c kkern.c kmacro.c kmath.c kmenu.c kmisc.c \ @@\
-	kmodel.c kmterm.c kuinit.c kutrue.c kuvers.c kuwhag.c	   \ @@\
+	kmodel.c kmterm.c kuinit.c kutrue.c kuvers.c         	   \ @@\
 	kuwhat.c kvect.c \ @@\
 	kmutil.c
 	/* ^^ moved here from code_motif.  --Kevin McCarty */


--- NEW FILE 705-patch-paw_motif-paw-Imakefiles.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 705-patch-paw_motif-paw-Imakefiles.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/src/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/Imakefile
--- cernlib-2005.05.09/src/Imakefile	2005-06-13 16:04:27.418461884 -0400
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/Imakefile	2005-06-13 16:04:48.698899728 -0400
@@ -2,7 +2,7 @@
 #define PassCDebugFlags
 
 
-LIBDIRS= kernlib packlib code_motif pawlib graflib mathlib geant321 mclibs phtools
+LIBDIRS= kernlib packlib code_motif pawlib paw_motif graflib mathlib geant321 mclibs phtools
 
 SUBDIRS= $(LIBDIRS) patchy cfortran
 
diff -urNad cernlib-2005.05.09/src/pawlib/paw/cdf/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/cdf/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/cdf/Imakefile	1999-08-31 04:47:07.000000000 -0400
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/cdf/Imakefile	2005-06-13 16:05:01.263206159 -0400
@@ -1,6 +1,6 @@
 #define IHaveCDF
 
-SRCS_CDF= pawcdf.cdf pamcdf.cdf mlpdef.cdf
+SRCS_CDF= pawcdf.cdf            mlpdef.cdf
 
 #ifdef CERNLIB_IBMRT
 /* Otherwise cc dies with internal compiler error on pawcdf. 
diff -urNad cernlib-2005.05.09/src/pawlib/paw/code/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/code/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/code/Imakefile	2005-06-13 16:04:26.689618135 -0400
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/code/Imakefile	2005-06-13 16:04:33.962059051 -0400
@@ -11,8 +11,8 @@
 	pautit.F pavect.F paw.F pawbrk.F pawdef.F pawfca.F \ @@\
 	pawfitz.F pawfop.F pawfu1.F pawfu2.F \ @@\
 	pawfu3.F pawfud.F pawfun.F pawfuy.F pawild.F pawins.F pawint.F \ @@\
-	pawint1.F pawint2.F pawint3.F pawint4.F pawintm.F \ @@\
-	pawjoj.F pawloc.F pawork.F pawpp.F pawrit.F pawrop.F \ @@\
+	pawint1.F pawint2.F pawint3.F pawint4.F           \ @@\
+	pawjoj.F pawloc.F pawork.F         pawrit.F pawrop.F \ @@\
 	pawsim.F pawusr.F pawuwf.F paxcut.F pazdz.F pazfz.F pazrz.F \ @@\
 	pchain.F pchclo.F pchncd.F pchrop.F pcnext.F pfclos.F \ @@\
 	pfhigz.F pfindc.F pfindf.F pfindf1.F pfindv.F pfinit.F pflog.F \ @@\
diff -urNad cernlib-2005.05.09/src/pawlib/paw/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/Imakefile	2000-06-27 11:27:03.000000000 -0400
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/pawlib/paw/Imakefile	2005-06-13 16:04:33.962059051 -0400
@@ -9,6 +9,9 @@
 
 LIBDIRS= code cpaw cdf ntuple mlpfit
 
+/* Comment out this whole section; Motif code has been moved to
+   paw_motif at top level.  -- Kevin McCarty */
+#if 0
 #ifndef CERNLIB_WINNT
 LIBDIRS :=$(LIBDIRS) $(MOTIF_DIRS) $(PAWPP_DIRS)
 #endif
@@ -22,6 +25,7 @@
 MotifDependantMakeVar(PAWPP_DIRS,xbaevms)
 LIBDIRS := $(LIBDIRS) $(PAWPP_DIRS)
 #endif
+#endif
 
 SUBDIRS= $(LIBDIRS) programs piafs hbpiaf stagerd paw
 
diff -urNad cernlib-2005.05.09/src/paw_motif/cdf/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/cdf/Imakefile
--- cernlib-2005.05.09/src/paw_motif/cdf/Imakefile	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/cdf/Imakefile	2005-06-13 16:04:33.963058837 -0400
@@ -0,0 +1,5 @@
+#define IHaveCDF
+
+SRCS_CDF= pamcdf.cdf
+
+SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/paw_motif/code/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/code/Imakefile
--- cernlib-2005.05.09/src/paw_motif/code/Imakefile	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/code/Imakefile	2005-06-13 16:04:33.963058837 -0400
@@ -0,0 +1,7 @@
+SRCS_F=	pawintm.F pawpp.F
+
+DoIncludePackage(paw)
+#include "pilot.h"
+
+SubdirLibraryTarget(NullParameter,NullParameter)
+
diff -urNad cernlib-2005.05.09/src/paw_motif/Imakefile /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/Imakefile
--- cernlib-2005.05.09/src/paw_motif/Imakefile	2000-06-27 11:27:03.000000000 -0400
+++ /tmp/dpep.Rec1V8/cernlib-2005.05.09/src/paw_motif/Imakefile	2005-06-13 16:04:33.963058837 -0400
@@ -7,7 +7,7 @@
 MotifDependantMakeVar(MOTIF_DIRS,cmotif fmotif fpanelsc)
 MotifDependantMakeVar(PAWPP_DIRS,fpanelsf tree uimx)
 
-LIBDIRS= code cpaw cdf ntuple mlpfit
+LIBDIRS= code cdf
 
 #ifndef CERNLIB_WINNT
 LIBDIRS :=$(LIBDIRS) $(MOTIF_DIRS) $(PAWPP_DIRS)
@@ -23,19 +23,11 @@
 LIBDIRS := $(LIBDIRS) $(PAWPP_DIRS)
 #endif
 
-SUBDIRS= $(LIBDIRS) programs piafs hbpiaf stagerd paw
-
-#if defined CERNLIB_WINNT
-SUBDIRS := $(LIBDIRS) programs
-#endif
-
-TopOfPackage(paw)
-
-SubdirLibraryTarget(paw,$(LIBDIRS))
+SUBDIRS= $(LIBDIRS)
 
-InstallBinSubdirs(programs)
+TopOfPackage(pawlib-lesstif)
 
-TestSubdirs(test)
+SubdirLibraryTarget(pawlib-lesstif,$(LIBDIRS))
 
-InstallIncludeSubdirs(paw)
+InstallLibrary(pawlib-lesstif,$(CERN_LIBDIR))
 


--- NEW FILE 800-implement-shared-library-rules-in-Imake.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 800-implement-shared-library-rules-in-Imake.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## 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	2005-11-29 17:07:32.035570303 +0000
+++ cernlib-2005.05.09.dfsg/src/config/Imake.rules	2005-11-29 17:07:40.003888782 +0000
@@ -904,6 +904,8 @@
  * InstallSharedLibrary - generate rules to install the indicated sharable 
  * Library
  */
+/* Commented out because this appears to be overriding the definition
+ * in lnxLib.rules --Kevin McCarty, 16 May 2002
 #undef InstallSharedLibrary
 #ifndef InstallSharedLibrary
 #define InstallSharedLibrary(libname,rev,dest)				@@\
@@ -917,7 +919,8 @@
 	$(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS)  $< $@		@@\
 	RemoveFile($<)							@@\
 	$(LN) $@ $<
-#endif /* InstallSharedLibrary */
+#endif InstallSharedLibrary
+*/
 
 /*
  * InstallLinkKitLibrary - rule to install Link Kit library.
@@ -1963,6 +1966,15 @@
 #endif /* InstallSubdirs */
 
 /*
+ * InstallSharedLibSubdirs - generate rules to recursively install shared
+ * libraries.  Added by Kevin McCarty for Debian, 15 May 2002
+ */
+#ifndef InstallSharedLibSubdirs
+#define InstallSharedLibSubdirs(dirs) \
+NamedTargetSubdirs(install.shlib,dirs,"installing",DESTDIR=$(DESTDIR),install.shlib)
+#endif /* InstallSharedLibSubdirs */
+
+/*
  * InstallBinSubdirs - generate rules to recursively install programs and
  *		       scripts
  */
@@ -2341,9 +2353,12 @@
  */
 #ifndef DefinePackageLibrary
 #define DefinePackageLibrary(locallib) \
+/* commented out since these will be .so files. -Kevin */		@@\
+/*									@@\
 ifeq ($(strip $(PACKAGE_LIB)),)						@@\
 PACKAGE_LIB=$(TOP)$(PACKAGETOP)/LibraryTargetName($(PACKAGE_NAME))	@@\
 endif									@@\
+*/									@@\
 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 10:51:01.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/config/biglib.rules	2005-11-29 17:09:29.336812562 +0000
@@ -227,7 +227,7 @@
 	RanLibrary($@)
 #endif
 
-#if defined(HPArchitecture)
+#if defined(HPArchitecture) && !defined(LinuxArchitecture)
 
 #ifndef SharedLibraryTargetName
 #define SharedLibraryTargetName(name)Concat(lib,name.sl)
@@ -264,7 +264,7 @@
 	@date
 #endif
 
-#elif defined(AlphaArchitecture)
+#elif defined(AlphaArchitecture) && !defined(LinuxArchitecture)
 
 #ifndef SharedLibraryTargetName
 #define SharedLibraryTargetName(name)Concat(lib,name.so)
@@ -281,6 +281,41 @@
 	@date
 #endif
 
+#elif defined(LinuxArchitecture) /* added by Kevin McCarty
+				    for Debian, 15 May 2002 */
+#ifndef SharedLibraryTargetName
+#define SharedLibraryTargetName(name)Concat(lib,name.so.$(LIB_SONAME).$(CERN_LEVEL))
+#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))\ @@\
+		-o $@ `cat version/objects.list` `cernlib -v "" -dy libname\ @@\
+		| sed s/Concat(-l,libname)//g`				@@\
+	@date
+#endif
+
+#elif defined(DarwinArchitecture) /* added by Kevin McCarty
+				      for fink, 10 May 2003 */
+#ifndef SharedLibraryTargetName
+#define SharedLibraryTargetName(name)Concat(lib,name.$(LIB_SONAME).$(CERN_LEVEL).dylib)
+#endif
+
+#ifndef SharedLibraryBuild
+#define SharedLibraryBuild(libname,version)				@@\
+SharedLibraryTargetName(libname): version/objects.list			@@\
+	@echo rebuild version library $@ in $(CURRENT_DIR)		@@\
+	@$(RM) $@							@@\
+	@/usr/bin/libtool -dynamic -o $@ -compatibility_version $(LIB_SONAME) \ @@\
+		`cat version/objects.list` `cernlib -v "" -dy libname	\ @@\
+		| sed s/Concat(-l,libname)//g`				@@\
+	@date
+#endif
+
 #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 15:26:45.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/config/lnxLib.rules	2005-11-29 17:07:40.004888571 +0000
@@ -43,6 +43,9 @@
 #ifndef PositionIndependentCplusplusFlags
 #define PositionIndependentCplusplusFlags -fPIC
 #endif
+#ifndef PositionIndependentFortranFlags
+#define PositionIndependentFortranFlags -fPIC
+#endif
 
 /*
  * InstallSharedLibrary - generate rules to install the shared library.
@@ -50,13 +53,20 @@
  */
 #ifndef InstallSharedLibrary
 #define	InstallSharedLibrary(libname,rev,dest)				@@\
-install:: Concat(lib,libname.so.rev) 					@@\
+.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)						@@\
-	$(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)	@@\
 	$(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) @@\
+	$(RM) $<                                                        @@\
+	$(LN) $@ $<
 #endif /* InstallSharedLibrary */
 
 /*


--- NEW FILE 801-non-optimized-rule-uses-fPIC-g.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 801-non-optimized-rule-uses-fPIC-g.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Ensure that special rules for creating non-optimized object files
## DP: use -fPIC for files that go into shared libs, and -g for all files.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/config/fortran.rules /tmp/dpep.gResDB/cernlib-2005.05.09/src/config/fortran.rules
--- cernlib-2005.05.09/src/config/fortran.rules	1997-05-30 12:25:18.000000000 -0400
+++ /tmp/dpep.gResDB/cernlib-2005.05.09/src/config/fortran.rules	2005-06-09 10:37:19.092244331 -0400
@@ -345,9 +345,9 @@
 
 #ifndef SpecialFortranLibObjectRule
 #define SpecialFortranLibObjectRule(baseobj,basedep,options,cppoptions)	@@\
-SpecialFortranArchiveObjectRule(baseobj,basedep,options,cppoptions)	@@\
-SpecialFortranSharedObjectRule(baseobj,basedep,options,cppoptions)	@@\
-SpecialFortranDebugObjectRule(baseobj,basedep,options,cppoptions)
+SpecialFortranArchiveObjectRule(baseobj,basedep,options -g,cppoptions)	    @@\
+SpecialFortranSharedObjectRule(baseobj,basedep,options -g -fPIC,cppoptions) @@\
+SpecialFortranDebugObjectRule(baseobj,basedep,options -g,cppoptions)
 #endif
 
 #ifndef SpecialFortranArchiveObjectRule
diff -urNad cernlib-2005.05.09/src/paw_motif/fmotif/Imakefile /tmp/dpep.gResDB/cernlib-2005.05.09/src/paw_motif/fmotif/Imakefile
--- cernlib-2005.05.09/src/paw_motif/fmotif/Imakefile	1996-09-23 10:20:46.000000000 -0400
+++ /tmp/dpep.gResDB/cernlib-2005.05.09/src/paw_motif/fmotif/Imakefile	2005-06-09 10:37:55.631538119 -0400
@@ -3,7 +3,7 @@
 	plotisto.F pmhist.F pminit.F show_chain.F
 
 #ifdef CERNLIB_LINUX
-FORTRANOPTIONS = -fno-backslash  $(FORTRANSAVEOPTION) -fno-second-underscore
+FORTRANOPTIONS = -g -fno-backslash  $(FORTRANSAVEOPTION) -fno-second-underscore
 #endif
 
 SubdirLibraryTarget(NullParameter,NullParameter)
diff -urNad cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile /tmp/dpep.gResDB/cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile	1999-09-14 05:20:08.000000000 -0400
+++ /tmp/dpep.gResDB/cernlib-2005.05.09/src/pawlib/paw/ntuple/Imakefile	2005-06-09 10:40:47.421285771 -0400
@@ -46,8 +46,8 @@
 
 SubdirLibraryTarget(NullParameter,NullParameter)
 
-#if defined(CERNLIB_LINUX) && defined(CERNLIB_POWERPC)
-SpecialObjectRule(archive/qp_execute.o,qp_execute.c archive/qp_execute.d,-O0 -o $@)
-SpecialObjectRule(debug/qp_execute.o,qp_execute.c debug/qp_execute.d,-O0 -o $@)
-SpecialObjectRule(shared/qp_execute.o,qp_execute.c shared/qp_execute.d,-O0 -o $@)
+#if defined(CERNLIB_LINUX)
+SpecialObjectRule(archive/qp_execute.o,qp_execute.c archive/qp_execute.d,-O0 -g -o $@)
+SpecialObjectRule(debug/qp_execute.o,qp_execute.c debug/qp_execute.d,-O0 -g -o $@)
+SpecialObjectRule(shared/qp_execute.o,qp_execute.c shared/qp_execute.d,-O0 -g -fPIC -o $@)
 #endif


--- NEW FILE 802-create-shared-libraries.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 802-create-shared-libraries.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Actually implement the rules to create shared libraries.

@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/Imakefile cernlib-2005.05.09.dfsg/src/Imakefile
--- cernlib-2005.05.09.dfsg~/src/Imakefile	2005-12-01 15:19:24.191267776 +0000
+++ cernlib-2005.05.09.dfsg/src/Imakefile	2005-12-01 15:20:10.310483251 +0000
@@ -2,7 +2,7 @@
 #define PassCDebugFlags
 
 
-LIBDIRS= kernlib packlib code_motif pawlib paw_motif graflib mathlib geant321 mclibs phtools
+LIBDIRS= kernlib packlib mathlib graflib code_motif mclibs phtools pawlib paw_motif geant321
 
 SUBDIRS= $(LIBDIRS) patchy cfortran
 
@@ -15,6 +15,7 @@
 #endif
 
 InstallLibSubdirs($(LIBDIRS))
+InstallSharedLibSubdirs($(LIBDIRS))
 
 INCLUDEDIRS= $(LIBDIRS) cfortran
 
diff -urNad cernlib-2005.05.09.dfsg~/src/code_motif/Imakefile cernlib-2005.05.09.dfsg/src/code_motif/Imakefile
--- cernlib-2005.05.09.dfsg~/src/code_motif/Imakefile	2005-12-01 15:19:24.062295137 +0000
+++ cernlib-2005.05.09.dfsg/src/code_motif/Imakefile	2005-12-01 15:19:31.186783665 +0000
@@ -31,3 +31,4 @@
 SubdirLibraryTarget(packlib-lesstif,NullParameter) 
 
 InstallLibrary(packlib-lesstif,$(CERN_LIBDIR))
+InstallSharedLibrary(packlib-lesstif,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
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-12-01 15:19:23.018516575 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/Imakefile	2005-12-01 15:19:31.186783665 +0000
@@ -26,6 +26,7 @@
 
 InstallLibrary(geant321,$(CERN_LIBDIR))
 InstallLibraryAlias(geant321,geant,$(CERN_LIBDIR))
+InstallSharedLibrary(geant321,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 /* Fluka removed from Debian source package for copyright reasons. */
 /*
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/gparal/Imakefile cernlib-2005.05.09.dfsg/src/geant321/gparal/Imakefile
--- cernlib-2005.05.09.dfsg~/src/geant321/gparal/Imakefile	1996-12-19 14:19:18.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/gparal/Imakefile	2005-12-01 15:19:31.186783665 +0000
@@ -10,6 +10,7 @@
 SubdirLibraryTarget(geant321_parallel,NullParameter)
 
 InstallLibrary(geant321_parallel,$(CERN_LIBDIR))
+InstallSharedLibrary(geant321_parallel,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 CopyFile(../gbase/grun.F,grun.F)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/graflib/Imakefile cernlib-2005.05.09.dfsg/src/graflib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/graflib/Imakefile	2001-12-11 15:06:28.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/graflib/Imakefile	2005-12-01 15:19:31.186783665 +0000
@@ -11,9 +11,12 @@
 
 SubdirLibraryTarget(graflib,$(LIBDIRS))
 
-InstallLibrary(graflib,$(CERN_LIBDIR))
-
 InstallLibSubdirs(higz)
+InstallSharedLibSubdirs(higz)
+
+/* these lines follow the above because graflib depends on grafX11 */
+InstallLibrary(graflib,$(CERN_LIBDIR))
+InstallSharedLibrary(graflib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(higz)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/graflib/higz/Imakefile cernlib-2005.05.09.dfsg/src/graflib/higz/Imakefile
--- cernlib-2005.05.09.dfsg~/src/graflib/higz/Imakefile	1997-09-02 13:34:47.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/graflib/higz/Imakefile	2005-12-01 15:19:31.186783665 +0000
@@ -13,6 +13,7 @@
 SubdirLibraryTarget(grafX11,$(LIBDIRS))
 
 InstallLibrary(grafX11,$(CERN_LIBDIR))
+InstallSharedLibrary(grafX11,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(examples)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/kernlib/Imakefile cernlib-2005.05.09.dfsg/src/kernlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/kernlib/Imakefile	2002-04-26 14:37:20.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/kernlib/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -14,6 +14,7 @@
 
 InstallLibrary(kernlib,$(CERN_LIBDIR))
 InstallLibraryAlias(kernlib,kernlib-shift,$(CERN_LIBDIR))
+InstallSharedLibrary(kernlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 test::	LibraryTargetName(kernlib)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/Imakefile cernlib-2005.05.09.dfsg/src/mathlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mathlib/Imakefile	2005-12-01 15:19:24.005307227 +0000
+++ cernlib-2005.05.09.dfsg/src/mathlib/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -19,6 +19,7 @@
 SubdirLibraryTarget(mathlib,$(LIBDIRS))
 
 InstallLibrary(mathlib,$(CERN_LIBDIR))
+InstallSharedLibrary(mathlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 InstallIncludeSubdirs($(LIBDIRS))
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/Imakefile	2005-12-01 15:19:22.512623901 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -13,6 +13,7 @@
 TestSubdirs($(LIBDIRS))
 
 InstallLibSubdirs($(LIBDIRS))
+InstallSharedLibSubdirs($(LIBDIRS))
 
 /* Again, purge Pythia, Jetset and dependents. */
 INCLUDEDIRS= cojets eurodec herwig isajet pdf
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/cojets/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/cojets/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/cojets/Imakefile	1996-05-06 20:06:50.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/cojets/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -12,6 +12,7 @@
 SubdirLibraryTarget(cojets,$(LIBDIRS))
 
 InstallLibrary(cojets,$(CERN_LIBDIR))
+InstallSharedLibrary(cojets,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 SubdirDataFile($(LIBRARY),cojets.dat,data)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/eurodec/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/eurodec/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/eurodec/Imakefile	1996-05-06 20:06:55.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/eurodec/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -12,6 +12,7 @@
 SubdirLibraryTarget(eurodec,$(LIBDIRS))
 
 InstallLibrary(eurodec,$(CERN_LIBDIR))
+InstallSharedLibrary(eurodec,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 SubdirDataFile($(LIBRARY),eurodec.dat,data)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/herwig/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/herwig/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/herwig/Imakefile	1997-01-06 17:06:41.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/herwig/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -10,6 +10,7 @@
 
 InstallLibrary(herwig59,$(CERN_LIBDIR))
 InstallLibraryAlias(herwig59,herwig,$(CERN_LIBDIR))
+InstallSharedLibrary(herwig59,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(test)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/isajet/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/isajet/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/isajet/Imakefile	2001-10-08 14:03:02.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/isajet/Imakefile	2005-12-01 15:19:31.187783453 +0000
@@ -12,6 +12,7 @@
 SubdirLibraryTarget(isajet758,$(LIBDIRS))
 
 InstallLibrary(isajet758,$(CERN_LIBDIR))
+InstallSharedLibrary(isajet758,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 SubdirDataFile($(LIBRARY),isajet.dat,data)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/pdf/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/pdf/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/pdf/Imakefile	2000-05-29 14:49:59.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/pdf/Imakefile	2005-12-01 15:19:31.188783241 +0000
@@ -15,6 +15,7 @@
 SubdirLibraryTarget(pdflib804,spdf npdf)
 
 InstallLibrary(pdflib804,$(CERN_LIBDIR))
+InstallSharedLibrary(pdflib804,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(tpdf)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/photos/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/photos/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/photos/Imakefile	1999-03-26 10:52:23.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/photos/Imakefile	2005-12-01 15:19:31.188783241 +0000
@@ -15,6 +15,7 @@
 SubdirLibraryTarget(photos202,code)
 
 InstallLibrary(photos202,$(CERN_LIBDIR))
+InstallSharedLibrary(photos202,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(test)
 
diff -urNad cernlib-2005.05.09.dfsg~/src/packlib/Imakefile cernlib-2005.05.09.dfsg/src/packlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/packlib/Imakefile	2005-12-01 15:19:23.885332680 +0000
+++ cernlib-2005.05.09.dfsg/src/packlib/Imakefile	2005-12-01 15:19:31.188783241 +0000
@@ -14,6 +14,7 @@
 
 InstallLibrary(packlib,$(CERN_LIBDIR))
 InstallLibraryAlias(packlib,packlib-shift,$(CERN_LIBDIR))
+InstallSharedLibrary(packlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs($(LIBDIRS))
 
diff -urNad cernlib-2005.05.09.dfsg~/src/paw_motif/Imakefile cernlib-2005.05.09.dfsg/src/paw_motif/Imakefile
--- cernlib-2005.05.09.dfsg~/src/paw_motif/Imakefile	2005-12-01 15:19:24.192267563 +0000
+++ cernlib-2005.05.09.dfsg/src/paw_motif/Imakefile	2005-12-01 15:19:31.188783241 +0000
@@ -30,4 +30,5 @@
 SubdirLibraryTarget(pawlib-lesstif,$(LIBDIRS))
 
 InstallLibrary(pawlib-lesstif,$(CERN_LIBDIR))
+InstallSharedLibrary(pawlib-lesstif,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/Imakefile cernlib-2005.05.09.dfsg/src/pawlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/pawlib/Imakefile	1996-10-01 14:12:23.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/pawlib/Imakefile	2005-12-01 15:19:31.188783241 +0000
@@ -11,6 +11,7 @@
 SubdirLibraryTarget(pawlib,$(LIBDIRS))
 
 InstallLibrary(pawlib,$(CERN_LIBDIR))
+InstallSharedLibrary(pawlib,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 InstallIncludeSubdirs($(LIBDIRS))
 
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/Imakefile cernlib-2005.05.09.dfsg/src/phtools/Imakefile
--- cernlib-2005.05.09.dfsg~/src/phtools/Imakefile	1996-11-14 16:44:33.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/Imakefile	2005-12-01 15:19:31.189783029 +0000
@@ -11,7 +11,7 @@
 SubdirLibraryTarget(phtools,$(LIBDIRS))
 
 InstallLibrary(phtools,$(CERN_LIBDIR))
-InstallSharedLibrary(phtools,$(CERN_LEVEL),$(CERN_SHLIBDIR))
+InstallSharedLibrary(phtools,$(LIB_SONAME).$(CERN_LEVEL),$(CERN_SHLIBDIR))
 
 TestSubdirs(wicoexam)
 


--- NEW FILE 803-link-binaries-dynamically.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 803-link-binaries-dynamically.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Link binaries dynamically against Cern libraries.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/config/fortran.rules /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/config/fortran.rules
--- cernlib-2005.05.09/src/config/fortran.rules	2005-06-13 15:26:19.991403858 -0400
+++ /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/config/fortran.rules	2005-06-13 15:26:23.699609849 -0400
@@ -189,13 +189,13 @@
  */
 #ifndef CernlibDependLibrary
 #define CernlibDependLibrary(cernlibs)\
-$(filter-out +%,$(filter-out -%,$(shell cernlib cernlibs)))
+$(filter-out +%,$(filter-out -%,$(shell cernlib -dy cernlibs)))
 #endif
 
 /* Helper to use cernlib command
  */
 #ifndef CernlibCmd
-#define CernlibCmd(libraries)cernlib libraries
+#define CernlibCmd(libraries)cernlib -dy libraries
 #endif
 /*
  * CernlibFortranProgramTarget - rule to link fortran program using
@@ -207,7 +207,7 @@
 ProgramTargetName(program): SetWin32ObjSuffix(objects) deplibs CernlibDependLibrary(cernlibs)	@@\
 	RemoveTargetProgram($@)						@@\
 	@echo "Linking with cern libraries"				@@\
-	@cernlib cernlibs						@@\
+	@cernlib -dy cernlibs						@@\
 	CernlibFortranLinkRule($@,$(FCLDOPTIONS),objects,locallibs $(LDLIBS),CernlibCmd(cernlibs)) @@\
 									@@\
 clean::									@@\
@@ -233,8 +233,8 @@
 ProgramTargetName(program): objects deplibs CernlibDependLibrary(cernlibs) @@\
 	RemoveTargetProgram($@)						@@\
 	@echo "Linking with cern libraries"				@@\
-	@cernlib cernlibs						@@\
-	CernlibLinkRule($@,$(LDOPTIONS),objects,locallibs $(LDLIBS),cernlib cernlibs) @@\
+	@cernlib -dy cernlibs						@@\
+	CernlibLinkRule($@,$(LDOPTIONS),objects,locallibs $(LDLIBS),cernlib -dy cernlibs) @@\
 									@@\
 clean::									@@\
 	RemoveFile(ProgramTargetName(program))				@@\
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,14 +13,14 @@
 DefinePackageLibrary(kxtlib)
 
 #if defined(CERNLIB_UNIX)
-CLIBS= -G Motif kernlib
+CLIBS= -G Motif Xm
 #endif
 
 #if defined(CERNLIB_VAXVMS)
-CLIBS= graflib/motif packlib kernlib
+CLIBS= -G Motif Xm
 #endif
 
 
-CernlibCcProgramTarget(kxterm,kxterm.o,libkxtlib.a,libkxtlib.a,$(CLIBS))
+CernlibFortranProgramTarget(kxterm,kxterm.o,libkxtlib.a,libkxtlib.a,$(CLIBS))
 
 InstallProgram(kxterm,$(CERN_BINDIR))
diff -urNad cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile
--- cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile	2005-06-13 15:26:19.418526524 -0400
+++ /tmp/dpep.E9pQlc/cernlib-2005.05.09/src/pawlib/paw/programs/Imakefile	2005-06-13 15:27:38.102678258 -0400
@@ -20,7 +20,7 @@
 InstallScript(paw,$(CERN_BINDIR))
 
 #if defined (CERNLIB_UNIX) && !defined(CERNLIB_WINNT)
-CernlibFortranProgramTarget(pawX11,0pamain.o,NullParameter,NullParameter,pawlib graflib/X11 packlib mathlib kernlib)
+CernlibFortranProgramTarget(pawX11,0pamain.o,NullParameter,NullParameter,-G X11 pawlib)
 
 InstallProgram(pawX11,$(CERN_BINDIR))
 
@@ -34,7 +34,7 @@
 /* This is a gmake ifeq, not a Imake/cpp #if... ! */
 ifeq ($(DO_PAW_PP),YES)
 
-CernlibFortranProgramTarget(paw++,0pamainm.o,NullParameter,NullParameter,pawlib graflib/Motif packlib mathlib kernlib)
+CernlibFortranProgramTarget(paw++,0pamainm.o,NullParameter,NullParameter,-G Motif pawlib)
 
 InstallProgram(paw++,$(CERN_BINDIR))
 


--- NEW FILE 804-workaround-for-comis-mdpool-struct-location.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 804-workaround-for-comis-mdpool-struct-location.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Hack to workaround Comis not liking it when code has a negative
## DP: offset from the mdpool struct (as is the case when using shared
## DP: libraries on some arches).

@DPATCH@
diff -urNad cernlib-2005.05.09/src/cfortran/Examples/pamain.c /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/cfortran/Examples/pamain.c
--- cernlib-2005.05.09/src/cfortran/Examples/pamain.c	2002-09-12 12:05:18.000000000 -0400
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/cfortran/Examples/pamain.c	2005-06-11 09:59:51.875449396 -0400
@@ -2,6 +2,7 @@
 #include <cfortran.h>
 #include <paw.h>
 #include <kuip.h>
+#include <comis/mdpool.h>
 
 #define PAWC_SIZE 9000000
 
diff -urNad cernlib-2005.05.09/src/pawlib/comis/comis/cspar.inc /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/cspar.inc
--- cernlib-2005.05.09/src/pawlib/comis/comis/cspar.inc	2000-05-30 09:53:58.000000000 -0400
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/cspar.inc	2005-06-11 09:59:51.876449180 -0400
@@ -15,7 +15,9 @@
 *
 * cspar.inc
 *
-        PARAMETER (LHP=50006, KON1=17694720, KON2=KON1
+#include "comis/mdsize.h"
+
+        PARAMETER (LHP=MDSIZE, KON1=17694720, KON2=KON1
      +, KON3=2**16, LRECU=8,NRECU=5,MLRECU=NRECU*LRECU
      +, MXRECU=MLRECU-LRECU
      1,      LASTK=2000,LSSTK=50,KLENID=32
diff -urNad cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.h /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.h
--- cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.h	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.h	2004-06-30 21:54:11.000000000 -0400
@@ -0,0 +1,33 @@
+#ifndef _MDPOOL_H
+#define _MDPOOL_H
+
+/* mdpool.h */
+
+/* #include <comis/mdpool.h> or <comis/mdpool.inc> in one source code file of
+ * your executable program dynamically linked against libpaw
+ * so that MDPOOL is defined in your executable.  This is
+ * necessary for proper functioning of the COMIS interpreter when
+ * dynamically linked.
+ */
+
+/* define MDSIZE: */
+#include <comis/mdsize.h>
+
+#include <cfortran.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+  int iq[MDSIZE];
+} mdpool_def;
+
+#define MDPOOL COMMON_BLOCK(MDPOOL, mdpool)
+COMMON_BLOCK_DEF(mdpool_def, MDPOOL);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* _MDPOOL_H */
diff -urNad cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.inc /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.inc
--- cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.inc	1996-02-26 12:16:34.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdpool.inc	2005-06-11 09:59:51.876449180 -0400
@@ -12,6 +12,8 @@
 *
 * mdpool.inc
 *
+#include "comis/cspar.inc"
+
       COMMON/MDPOOL/IQ(LHP)
       INTEGER ISEM(LHP),KD(LHP),IDA(LHP),KD1(99),KD2(99),KD3(99)
       EQUIVALENCE (IQ,ISEM),(IQ,KD),(IQ,IDA)
diff -urNad cernlib-2005.05.09/src/pawlib/comis/comis/mdsize.h /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdsize.h
--- cernlib-2005.05.09/src/pawlib/comis/comis/mdsize.h	1969-12-31 19:00:00.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/comis/mdsize.h	2004-06-30 21:54:11.000000000 -0400
@@ -0,0 +1,6 @@
+#ifndef _MDSIZE_H
+#define _MDSIZE_H
+
+#define MDSIZE 50006
+
+#endif
diff -urNad cernlib-2005.05.09/src/pawlib/comis/deccc/csallo.c /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/deccc/csallo.c
--- cernlib-2005.05.09/src/pawlib/comis/deccc/csallo.c	1999-11-15 08:36:24.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/comis/deccc/csallo.c	2005-06-11 09:59:51.875449396 -0400
@@ -39,21 +39,20 @@
 /*-- Author :*/
 
 #include <cfortran/cfortran.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "comis/mdsize.h"
 
 typedef struct {
-    int iq[6];
+    int iq[MDSIZE]; /* instead of int iq[6] */
 } mdpool_def;
 
 #define MDPOOL COMMON_BLOCK(MDPOOL,mdpool)
-COMMON_BLOCK_DEF(mdpool_def,MDPOOL);
+extern COMMON_BLOCK_DEF(mdpool_def,MDPOOL);
 
-unsigned long iqpntr = (unsigned long)MDPOOL.iq;
+unsigned long iqpntr = 0;
 
 
-#ifdef CERNLIB_WINNT
-# include <stdlib.h>
-#endif
-
 #if defined(CERNLIB_QX_SC)
 int type_of_call csallo_(lenb)
 #endif
@@ -65,11 +64,31 @@
 #endif
  int *lenb;
 {
-  long lpntr;
+  unsigned long lpntr;
   int pntr; 
 
+  if (! iqpntr)
+    iqpntr = (unsigned long)MDPOOL.iq;
   lpntr= (long)( malloc(*lenb) );
-  pntr=lpntr - iqpntr;
+  if (! lpntr) {
+    fprintf(stderr,
+	    "CSALLO: not enough dynamic memory to allocate %d bytes\n", *lenb);
+    exit(EXIT_FAILURE);
+  }
+
+  pntr = (long)lpntr - (long)iqpntr;
+  if (pntr < 0) {
+    fprintf(stderr, "CSALLO: heap below bss?!");
+#if defined (CERNLIB_DEBIAN)
+    fprintf(stderr, "\n"
+"See the file /usr/share/doc/libpawlib2-dev/README.Debian for more information.\n"
+"If it does not help to solve this problem, please file a bug report against\n"
+"the libpawlib2 package, including the source code of your executable.\n");
+#else
+    fprintf(stderr, "  Try linking against pawlib statically.\n");
+#endif
+    exit(EXIT_FAILURE);
+  }
   return pntr;
 }
 
diff -urNad cernlib-2005.05.09/src/pawlib/paw/paw/pawsiz.inc /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/paw/paw/pawsiz.inc
--- cernlib-2005.05.09/src/pawlib/paw/paw/pawsiz.inc	1996-03-01 11:50:06.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/pawlib/paw/paw/pawsiz.inc	2005-06-11 09:59:51.875449396 -0400
@@ -28,5 +28,9 @@
 #include "paw/pawsmall.inc"
 #endif
 
+C      Include this file so that MDPOOL/IQ is present in pawX11 and
+C      paw++ dynamically linked executables.
+C      -- Kevin McCarty, for Debian, 1 Nov 2003
+#include "comis/mdpool.inc"
 
 #endif
diff -urNad cernlib-2005.05.09/src/paw_motif/paw/pawsiz.inc /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/paw_motif/paw/pawsiz.inc
--- cernlib-2005.05.09/src/paw_motif/paw/pawsiz.inc	1996-03-01 11:50:06.000000000 -0500
+++ /tmp/dpep.nHIc6F/cernlib-2005.05.09/src/paw_motif/paw/pawsiz.inc	2005-06-11 09:59:51.875449396 -0400
@@ -28,5 +28,9 @@
 #include "paw/pawsmall.inc"
 #endif
 
+C      Include this file so that MDPOOL/IQ is present in pawX11 and
+C      paw++ dynamically linked executables.
+C      -- Kevin McCarty, for Debian, 1 Nov 2003
+#include "comis/mdpool.inc"
 
 #endif


--- NEW FILE 805-expunge-missing-mathlib-kernlib-symbols.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 805-expunge-missing-mathlib-kernlib-symbols.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Remove some unreferenced symbols from mathlib and kernlib.

@DPATCH@
diff -urNad cernlib-2005.05.09/src/kernlib/kerngen/ccgen/Imakefile /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/kernlib/kerngen/ccgen/Imakefile
--- cernlib-2005.05.09/src/kernlib/kerngen/ccgen/Imakefile	2002-09-19 12:44:52.000000000 -0400
+++ /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/kernlib/kerngen/ccgen/Imakefile	2005-06-13 11:20:33.838151240 -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/src/mathlib/gen/d/Imakefile /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	2005-06-13 11:12:24.894703741 -0400
+++ /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/mathlib/gen/d/Imakefile	2005-06-13 11:16:54.864966246 -0400
@@ -2,20 +2,22 @@
 #include "pilot.h"
 
 /* rgmlt*.F have been moved into packlib/hbook to remove circular dependencies.
+   Some other files have been removed from this list because they depend upon
+   non-existent functions.
    --Kevin McCarty, for Debian. */
-SRCS_F=	arithm.F c128.F c256.F c512.F c64.F cauchy64.F cft.F cfstft.F \ @@\
+SRCS_F=	         c128.F c256.F c512.F c64.F cauchy64.F cft.F cfstft.F \ @@\
 	rfstft.F cgauss.F d107d1.F d107r1.F d501l1.F d501l2.F d501n1.F \ @@\
         d501n2.F d501p1.F d501p2.F d501sf.F d700su.F d701bd.F \ @@\
         dadapt.F deqbs64.F deqmr64.F deriv64.F dfunft.F dgs56p.F \ @@\
         dmaxlk.F dsumsq.F elanal.F elpahy.F epdbps.F epdchk.F \ @@\
-        epdchn.F epdcj.F epde1.F epdecc.F epdfix.F epdin.F \ @@\
-        epditr.F epdje.F epdloc.F epdsrt.F epdtab.F errorf.F esolve.F \ @@\
-	fcn1.F fftrc.F fumili.F gauss.F i128.F i32.F i64.F linsq.F \ @@\
-	mconv.F mft.F minfc.F minsq.F monito.F newro.F old506.F radapt.F \ @@\
+                 epdcj.F                  epdfix.F epdin.F \ @@\
+        epditr.F epdje.F epdloc.F epdsrt.F epdtab.F          esolve.F \ @@\
+	       fftrc.F          gauss.F i128.F i32.F i64.F         \ @@\
+	mconv.F mft.F minfc.F         monito.F newro.F          radapt.F \ @@\
 	radmul.F rca.F rfrdh164.F rfrdh264.F rft.F           rgquad.F \ @@\
 	rgs56p.F rgset.F riwiad.F riwibd.F rknys64.F rknysd.F rkstp.F \ @@\
 	rpa.F rps.F rrkstp.F rsa.F rtriint.F s128.F s256.F s512.F \ @@\
-	s64.F scal.F sgz.F simps.F synt.F traper.F triint.F vd01a.F
+	s64.F scal.F       simps.F synt.F traper.F triint.F vd01a.F
 
 #if defined(CERNLIB_DOUBLE)
 SRCS_F:= $(SRCS_F) cgauss64.F dgquad.F dgset.F gauss64.F minfc64.F \ @@\
diff -urNad cernlib-2005.05.09/src/mathlib/gen/divon/Imakefile /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/mathlib/gen/divon/Imakefile
--- cernlib-2005.05.09/src/mathlib/gen/divon/Imakefile	1996-05-01 09:21:53.000000000 -0400
+++ /tmp/dpep.Thtt1b/cernlib-2005.05.09/src/mathlib/gen/divon/Imakefile	2005-06-13 11:19:42.456136998 -0400
@@ -1,9 +1,12 @@
-SRCS_F=	addbnd.F bfgs.F bndopt.F bndtst.F bounds.F bucmve.F \ @@\
-	bufopt.F delbnd.F delete.F delslv.F divon.F dvcopy.F dvdot.F \ @@\
-	dvnbkd.F dvnopt.F exmbuc.F feasmv.F feqn.F fun.F genpnt.F \ @@\
-	grdcmp.F intgrl.F ldlsol.F locsch.F modchl.F mulchk.F mxstep.F \ @@\
-	newptq.F nmdchl.F nocut.F nodaud.F orthvc.F partn.F quad.F \ @@\
-	quasi.F ranums.F recpar.F rlen.F settol.F shrnk.F split.F \ @@\
+/* Some files deleted from the below list since they depend upon the
+   lepto63 library, which cannot be included in Debian for licensing reasons. */
+
+SRCS_F=	addbnd.F bfgs.F          bndtst.F bounds.F bucmve.F \ @@\
+	         delbnd.F delete.F                  dvcopy.F dvdot.F \ @@\
+	dvnbkd.F dvnopt.F exmbuc.F feasmv.F feqn.F                \ @@\
+	                  ldlsol.F          modchl.F          mxstep.F \ @@\
+	newptq.F nmdchl.F         nodaud.F orthvc.F         quad.F \ @@\
+	quasi.F ranums.F          rlen.F settol.F shrnk.F         \ @@\
 	treaud.F tredmp.F tstext.F usrint.F usrtrm.F
 
 FORTRANSAVEOPTION = FortranSaveFlags


--- NEW FILE 806-bump-mathlib-and-dependents-sonames.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 806-bump-mathlib-and-dependents-sonames.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Bump so versions of mathlib and dependents since it is now compiled
## DP: against liblapack3 instead of liblapack2.

@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:49:19.722162373 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/Imakefile	2005-11-23 15:49:27.431512287 +0000
@@ -2,6 +2,8 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
+
 AllTarget(geant321)
 
 /* Fluka removed from Debian source package for copyright reasons. */
diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/Imakefile cernlib-2005.05.09.dfsg/src/mathlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mathlib/Imakefile	2005-11-23 15:49:19.723162159 +0000
+++ cernlib-2005.05.09.dfsg/src/mathlib/Imakefile	2005-11-23 15:49:27.431512287 +0000
@@ -2,6 +2,7 @@
 #define IHaveSubdirs
 #define PassCDebugFlags 
 
+export LIB_SONAME := 2
 
 LIBDIRS= gen bvsl hbook /* hdiff stuff moved from packlib */
 
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/cojets/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/cojets/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/cojets/Imakefile	2005-11-23 15:49:19.723162159 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/cojets/Imakefile	2005-11-23 15:49:27.431512287 +0000
@@ -2,6 +2,8 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
+
 AllTarget(cojets)
 
 LIBDIRS= code cojdata cojtapew
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/herwig/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/herwig/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/herwig/Imakefile	2005-11-23 15:49:19.724161945 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/herwig/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -2,6 +2,8 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
+
 SUBDIRS= code doc test herwig59
 
 TopOfPackage(herwig59)
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/isajet/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/isajet/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/isajet/Imakefile	2005-11-23 15:49:19.724161945 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/isajet/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -3,6 +3,8 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
+
 LIBDIRS= code isadata isasusy isarun isatape
 
 SUBDIRS= $(LIBDIRS) test data isajet
diff -urNad cernlib-2005.05.09.dfsg~/src/mclibs/pdf/Imakefile cernlib-2005.05.09.dfsg/src/mclibs/pdf/Imakefile
--- cernlib-2005.05.09.dfsg~/src/mclibs/pdf/Imakefile	2005-11-23 15:49:19.724161945 +0000
+++ cernlib-2005.05.09.dfsg/src/mclibs/pdf/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -6,6 +6,8 @@
 IMAKE_DEFINES=-DFortranDoesCpp=NO
 #endif
 
+export LIB_SONAME := 2
+
 AllTarget(pdflib804)
 
 SUBDIRS= spdf npdf tpdf pdf
diff -urNad cernlib-2005.05.09.dfsg~/src/paw_motif/Imakefile cernlib-2005.05.09.dfsg/src/paw_motif/Imakefile
--- cernlib-2005.05.09.dfsg~/src/paw_motif/Imakefile	2005-11-23 15:49:19.724161945 +0000
+++ cernlib-2005.05.09.dfsg/src/paw_motif/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -1,6 +1,8 @@
 DoIncludePackage(paw)
 #include "paw/pilot.h"
 
+export LIB_SONAME := 2
+
 #define IHaveSubdirs
 #define PassCDebugFlags
 
diff -urNad cernlib-2005.05.09.dfsg~/src/pawlib/Imakefile cernlib-2005.05.09.dfsg/src/pawlib/Imakefile
--- cernlib-2005.05.09.dfsg~/src/pawlib/Imakefile	2005-11-23 15:49:19.724161945 +0000
+++ cernlib-2005.05.09.dfsg/src/pawlib/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -2,6 +2,7 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
 
 LIBDIRS= comis paw sigma
 SUBDIRS= $(LIBDIRS)
diff -urNad cernlib-2005.05.09.dfsg~/src/phtools/Imakefile cernlib-2005.05.09.dfsg/src/phtools/Imakefile
--- cernlib-2005.05.09.dfsg~/src/phtools/Imakefile	2005-11-23 15:49:19.725161731 +0000
+++ cernlib-2005.05.09.dfsg/src/phtools/Imakefile	2005-11-23 15:49:27.432512073 +0000
@@ -2,6 +2,8 @@
 #define IHaveSubdirs
 #define PassCDebugFlags
 
+export LIB_SONAME := 2
+
 LIBDIRS= genbod fowl wico
 
 SUBDIRS= $(LIBDIRS) wicoexam

cernlib-enforce-FHS.diff:

--- NEW FILE cernlib-enforce-FHS.diff ---
diff -ur ../original-cernlib-source/src/geant321/miface/gmorin.F src/geant321/miface/gmorin.F
--- ../original-cernlib-source/src/geant321/miface/gmorin.F     Mon Sep 30 10:26:05 1996
+++ src/geant321/miface/gmorin.F     Tue Oct 22 07:27:55 2002
@@ -112,7 +112,7 @@
          OPEN(UNIT=MICROS,FILE=XSFILE, STATUS='OLD',READONLY)
 #endif
 #if defined(CERNLIB_UNIX)||defined(CERNLIB_CRAY)
-         XSFILE = 'xsneut95.dat'
+         XSFILE = 'DATADIR/xsneut95.dat'
          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

cernlib-hwhiga_use_dimag.diff:

--- NEW FILE cernlib-hwhiga_use_dimag.diff ---
--- src/mclibs/herwig/code/hwhiga.F.old	2005-06-24 09:45:07.000000000 +0200
+++ src/mclibs/herwig/code/hwhiga.F	2005-06-24 10:11:59.000000000 +0200
@@ -73,7 +73,7 @@
       TAMP(7)=HWHIG5(U,T,S,EMH2,EMQ2,3,0,6,0,0,0)
       DO 20 I=1,7
       TAMPI(I)= DBLE(TAMP(I))
-  20  TAMPR(I)=-IMAG(TAMP(I))
+  20  TAMPR(I)=-DIMAG(TAMP(I))
 C Square and add prefactors
       WTGG=0.03125*FLOAT(NCOLO*(NCOLO**2-1))
      &    *(TAMPR(1)**2+TAMPI(1)**2+TAMPR(2)**2+TAMPI(2)**2

cernlib-hwuli2_use_dimag.diff:

--- NEW FILE cernlib-hwuli2_use_dimag.diff ---
--- src/mclibs/herwig/code/hwuli2.F.old	2005-06-24 10:09:09.000000000 +0200
+++ src/mclibs/herwig/code/hwuli2.F	2005-06-24 10:11:52.000000000 +0200
@@ -19,7 +19,7 @@
       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=DBLE(X)
-      XI=IMAG(X)
+      XI=DIMAG(X)
       R2=XR*XR+XI*XI
       IF (R2.GT.ONE.AND.(XR/R2).GT.HALF) THEN
          Z=-LOG(ONE/X)

cernlib_2005.05.09.dfsg-2.diff:

***** Error reading new file: [Errno 2] No such file or directory: 'cernlib_2005.05.09.dfsg-2.diff'

Index: 001-fix-missing-fluka.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/001-fix-missing-fluka.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 001-fix-missing-fluka.dpatch	28 Nov 2005 10:43:24 -0000	1.1
+++ 001-fix-missing-fluka.dpatch	9 Dec 2005 16:09:19 -0000	1.2
@@ -1,23 +1,27 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
-## 001-fix-missing-fluka.dpatch by  <kmccarty at princeton.edu>
+## 001-fix-missing-fluka.dpatch by  <kmccarty at debian.org>
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Deal with FLUKA code having been purged from Debian's Cernlib source.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09/src/geant321/Imakefile /tmp/dpep.yPljcw/cernlib-2005.05.09/src/geant321/Imakefile
---- cernlib-2005.05.09/src/geant321/Imakefile	1998-03-05 06:20:07.000000000 -0500
-+++ /tmp/dpep.yPljcw/cernlib-2005.05.09/src/geant321/Imakefile	2005-06-08 15:32:20.735091925 -0400
-@@ -4,7 +4,8 @@
+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
+@@ -4,10 +4,11 @@
  
  AllTarget(geant321)
  
 -LIBDIRS= block cdf cgpack fiface fluka gbase gcons gdraw \ @@\
 +/* Fluka removed from Debian source package for copyright reasons. */
-+LIBDIRS= block cdf cgpack fiface       gbase gcons gdraw \ @@\
++LIBDIRS=       cdf cgpack              gbase gcons gdraw \ @@\
           geocad ggeom gheisha ghits ghrout ghutils giface \ @@\
  	 giopa gkine gphys gscan gstrag gtrak guser gxint \ @@\
- 	 miface miguti neutron peanut
+-	 miface miguti neutron peanut
++	 miface miguti neutron
+ 
+ 
+ SUBDIRS= $(LIBDIRS) data examples gxuser geant321
 @@ -25,9 +26,12 @@
  InstallLibrary(geant321,$(CERN_LIBDIR))
  InstallLibraryAlias(geant321,geant,$(CERN_LIBDIR))
@@ -31,3 +35,13 @@
  
  /* 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
+@@ -1,5 +1,5 @@
+ SRCS_F= \ @@\
+-	 gfmdis.F gfmfin.F gmicap.F gmiset.F gmorin.F gmplxs.F gmxsec.F
++	                   gmicap.F gmiset.F gmorin.F gmplxs.F gmxsec.F
+ 
+ #ifdef CERNLIB_QMVAOS
+  FORTRANSAVEOPTION=FortranSaveFlags


Index: 002-fix-missing-mclibs.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/002-fix-missing-mclibs.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 002-fix-missing-mclibs.dpatch	28 Nov 2005 10:43:24 -0000	1.1
+++ 002-fix-missing-mclibs.dpatch	9 Dec 2005 16:09:19 -0000	1.2
@@ -1,5 +1,5 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
-## 002-fix-missing-mclibs.dpatch by  <kmccarty at princeton.edu>
+## 002-fix-missing-mclibs.dpatch by  <kmccarty at debian.org>
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Deal with several of the MC libs having to be purged from source.


Index: 700-remove-kernlib-from-packlib-Imakefile.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/700-remove-kernlib-from-packlib-Imakefile.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 700-remove-kernlib-from-packlib-Imakefile.dpatch	28 Nov 2005 10:43:24 -0000	1.1
+++ 700-remove-kernlib-from-packlib-Imakefile.dpatch	9 Dec 2005 16:09:19 -0000	1.2
@@ -1,5 +1,5 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
-## 700-remove-kernlib-from-packlib-Imakefile.dpatch by  <kmccarty at princeton.edu>
+## 700-remove-kernlib-from-packlib-Imakefile.dpatch by  <kmccarty at debian.org>
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: No description.

cernlib-cernlib_kernlib.patch:

Index: cernlib-cernlib_kernlib.patch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/cernlib-cernlib_kernlib.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-cernlib_kernlib.patch	28 Nov 2005 10:43:24 -0000	1.1
+++ cernlib-cernlib_kernlib.patch	9 Dec 2005 16:09:19 -0000	1.2
@@ -1,5 +1,5 @@
---- src/scripts/cernlib-orig	2005-11-24 13:51:54.000000000 +0100
-+++ src/scripts/cernlib	2005-11-24 14:02:25.000000000 +0100
+--- src/scripts/cernlib-old	2005-11-30 20:15:23.000000000 +0100
++++ src/scripts/cernlib	2005-11-30 20:15:23.000000000 +0100
 @@ -16,12 +16,16 @@
    [ -z "$CERN_LEVEL" ] && gver="pro" || gver="$CERN_LEVEL"
   
@@ -27,7 +27,7 @@
        fi
 +      if [ $1 = "packlib" ]; then
 +         _p=1
-+         ln="packlib.a $dir/libkernlib"
++         ln="packlib-lesstif.a $dir/libpacklib.a $dir/libkernlib"
 +      fi
           [ $1 = "genlib"  ] && ln="mathlib.a $dir/libphtools"
           [ $1 = "bvsl"    ] && ln="mathlib"
@@ -35,11 +35,11 @@
 -         [ $1 = "lapack"  ] && ln="lapack3.a $dir/libblas"
 -	 [ $1 = "pawlib"  ] && ln="pawlib.a $dir/liblapack3.a $dir/libblas"
 +         if [ $_l -eq 0 ] ; then
-+           [ $1 = "pawlib"  ] && ln="pawlib.a $dir/liblapack3.a $dir/libblas"
++           [ $1 = "pawlib"  ] && ln="pawlib-lesstif.a $dir/libpawlib.a $dir/liblapack3.a $dir/libblas"
 +           [ $1 = "lapack"  ] && ln="lapack3.a $dir/libblas"
 +         else
 +           if [ $1 = "pawlib"  ] ; then 
-+              ln="pawlib"
++              ln="pawlib-lesstif.a $dir/libpawlib"
 +              dynlapack=1
 +           fi
 +           if [ $1 = "lapack"  ] ; then
@@ -58,12 +58,18 @@
 +      [ -n "$ln" ] && CERNLIB="$CERNLIB $dir/lib$ln.a"
    done
 -  [ $_p -eq 0 ] && CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib.a"
-+  [ $_p -eq 0 ] && CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib.a $CERN/$gver/lib/libkernlib.a"
++  [ $_p -eq 0 ] && CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib-lesstif.a $CERN/$gver/lib/libpacklib.a $CERN/$gver/lib/libkernlib.a"
  
  #  get system name
    [ -d /NextAdmin ] && Msys="NeXT" || Msys=`uname -s`
-@@ -113,7 +132,9 @@
-       Linux)   [ -d /usr/X386/lib ] && SYSGX11="-L/usr/X386/lib -lX11"
+@@ -110,10 +129,14 @@
+                SYSGGL="-lfgl -lgl_s -lm -lbsd" ;
+                SYSGMOTIF="-lXm -lXt -lX11 -lPW"
+ 	       ;;
+-      Linux)   [ -d /usr/X386/lib ] && SYSGX11="-L/usr/X386/lib -lX11"
++      Linux)   SYSGX11="-lX11"
++	       SYSGMOTIF="-lXm -lXt -lXp -lXext -lX11"
++	       [ -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/lib64 ] && SYSGX11="-L/usr/X11R6/lib64 -lX11"
@@ -72,7 +78,7 @@
  	       [ `uname -m` = ppc ] && SYSGMOTIF="$SYSGMOTIF -lSM -lICE -lXpm"
  	       ;;
        NeXT)    SYSGX11="/usr/lib/X11/libX11.r" ;
-@@ -208,6 +229,10 @@
+@@ -208,6 +231,10 @@
       fi
       if [ "$Msys" = "Linux" ] ; then
          CERNLIB="$CERNLIB -lnsl -lcrypt -ldl"


Index: cernlib-deadpool.txt
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/cernlib-deadpool.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-deadpool.txt	16 Nov 2005 23:34:07 -0000	1.1
+++ cernlib-deadpool.txt	9 Dec 2005 16:09:19 -0000	1.2
@@ -2,26 +2,86 @@
 # for copyright reasons.  Given is the file or directory to delete
 # relative to $CERN_ROOT/src/.
 
-# --Kevin McCarty, 19 Aug. 2003
+# --Kevin McCarty, 23 Nov 2005
 
-# Authors of FLUKA and Pythia/Jetset did NOT give permission to release
+# Authors of Pythia/Jetset did NOT give permission to release
 # their code under GPL.  CERN should have checked this more carefully!!!
-geant321/data/flukaaf.dat
-geant321/fluka/
-car/geanf321.car
-car/geanf.car
-
-mclibs/jetset/
 car/jetset74.car
+mclibs/jetset/
 mclibs/pythia/
 
-# removal of Pythia/Jetset also necessitates removal of Fritiof, Lepto, Ariadne
+# Removal of Pythia/Jetset also necessitates removal of Fritiof, Lepto, Ariadne
 mclibs/fritiof/
 mclibs/ariadne/
 mclibs/ariadne_407/
 mclibs/lepto63/
 
-# other problematic files (mostly on VMS or obsolete archs)
+# The same applies to GEANT-FLUKA; see for instance the comments at
+# the web site http://www.fluka.org/Faq.html
+car/geanf.car
+car/geanf321.car
+#cmz/geanf.cmz
+#cmz/geanf321.cmz
+geant321/data/flukaaf.dat
+geant321/block/
+geant321/fiface/
+geant321/fluka/
+geant321/miface/gfmfin.F
+geant321/miface/gfmdis.F
+geant321/peanut/
+geant321/geant321/aadat.inc
+geant321/geant321/auxpar.inc
+geant321/geant321/balanc.inc
+geant321/geant321/bamjcm.inc
+geant321/geant321/cmsres.inc
+geant321/geant321/comcon.inc
+geant321/geant321/corinc.inc
+geant321/geant321/dblprc.inc
+geant321/geant321/decayc.inc
+geant321/geant321/decayc2.inc
+geant321/geant321/depnuc.inc
+geant321/geant321/dimpar.inc
+geant321/geant321/eva0.inc
+geant321/geant321/eva1.inc
+geant321/geant321/fheavy.inc
+geant321/geant321/finlsp.inc
+geant321/geant321/finlsp2.inc
+geant321/geant321/finlsp3.inc
+geant321/geant321/finpar.inc
+geant321/geant321/finpar2.inc
+geant321/geant321/finuc.inc
+geant321/geant321/finuc2.inc
+geant321/geant321/finuct.inc
+geant321/geant321/hadflg.inc
+geant321/geant321/hadpar.inc
+geant321/geant321/higfis.inc
+geant321/geant321/inpdat.inc
+geant321/geant321/inpdat2.inc
+geant321/geant321/inpflg.inc
+geant321/geant321/iounit.inc
+geant321/geant321/isotop.inc
+geant321/geant321/labcos.inc
+geant321/geant321/mapa.inc
+geant321/geant321/metlsp.inc
+geant321/geant321/nucdat.inc
+geant321/geant321/nucgeo.inc
+geant321/geant321/nuclev.inc
+geant321/geant321/nucpar.inc
+geant321/geant321/nucstf.inc
+geant321/geant321/paprop.inc
+geant321/geant321/parevt.inc
+geant321/geant321/parnuc.inc
+geant321/geant321/part.inc
+geant321/geant321/part2.inc
+geant321/geant321/part3.inc
+geant321/geant321/qquark.inc
+geant321/geant321/reac.inc
+geant321/geant321/redver.inc
+geant321/geant321/resnuc.inc
+geant321/geant321/split.inc
+geant321/geant321/xsepar.inc
+
+# Other problematic files (mostly on VMS or obsolete archs)
 graflib/higz/igold/golini.F
 packlib/cspack/sysreq/pwd_vms.h
 packlib/cspack/sysreq/sgtty.h

cernlib-gxint-script.diff:

Index: cernlib-gxint-script.diff
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/cernlib-gxint-script.diff,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-gxint-script.diff	28 Nov 2005 10:43:24 -0000	1.1
+++ cernlib-gxint-script.diff	9 Dec 2005 16:09:19 -0000	1.2
@@ -1,21 +1,20 @@
---- src/scripts/gxint.orig	2005-06-12 14:12:21.183392960 +0200
-+++ src/scripts/gxint	2005-06-12 14:14:52.733353864 +0200
-@@ -78,7 +78,7 @@
-      fi
-   fi
+--- src/scripts/gxint-old	2005-11-23 23:11:08.000000000 +0100
++++ src/scripts/gxint	2005-11-29 11:42:30.000000000 +0100
+@@ -103,15 +103,8 @@
+    echo "gxint_Warning: no user program specified"
+ fi
   
--drv="/X11" ; ver="pro" ; OUT="${HOME}/GEANT$$"
-+drv="/X11" ; ver="==VERSION==" ; OUT="${HOME}/GEANT$$"
- gxint=""
+- 
+- 
+-if [ -z "$CERN" ] ; then
+-  if [ ! -d /cern ]; then
+-   echo "gxint_Error: shell variable CERN must be set or /cern must exist"
+-   exit 1
+-  fi
+-  CERN="/cern" ; export CERN
+-fi
++# not used after the sed one liner in the spec file 
++if [ -z "$CERN" ] ; then CERN="/usr"
   
- while [ $# -gt 0 ]
-@@ -142,7 +142,8 @@
-  
- CLIB="geant${gvs} pawlib graflib$drv packlib mathlib"
-  
--[ -z "$_m" ] && gxint="${CERN}/${ver}/lib/gxint${gvs}.$_o" 
-+#[ -z "$_m" ] && gxint="${CERN}/${ver}/lib/gxint${gvs}.$_o" 
-+[ -z "$_m" ] && gxint="==includedir==/cernlib/${ver}/gxint${gvs}.f" 
-  
- cat << EoD
- $line
+ if [ "$drv" = "/GKS" ] ; then
+   if [ -z "$GKSR" ] ; then


Index: cernlib.README
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/cernlib.README,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- cernlib.README	28 Nov 2005 10:43:24 -0000	1.2
+++ cernlib.README	9 Dec 2005 16:09:19 -0000	1.3
@@ -54,3 +54,7 @@
 kernlib has been moved outside of packlib. If you use the cernlib script
 for linking it should be taken into account, however if you link directly
 with packlib you could need to add the kernlib on your link command line.
+
+6) split of motif dependent libs from packlib and pawlib
+
+The motif dependent libs are in libpacklib-lesstif and libpawlib-lesstif.


Index: cernlib.spec
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/cernlib.spec,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- cernlib.spec	28 Nov 2005 10:43:24 -0000	1.10
+++ cernlib.spec	9 Dec 2005 16:09:19 -0000	1.11
@@ -1,24 +1,27 @@
 Name:          cernlib
 Version:       2005
-Release:       4%{?dist}.8
+Release:       8%{?dist}
 Summary:       General purpose CERN library and associated binaries
 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/BSD
+License:       GPL/LGPL
 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
+# fc 3
+#BuildRequires: xorg-x11-devel lapack blas openmotif-devel
+# fc 4
 BuildRequires: xorg-x11-devel lapack-devel blas-devel openmotif-devel 
+# fc devel
+#BuildRequires: imake lapack-devel blas-devel openmotif-devel 
 # there are missing f2c intrinsics in gfortran so gfortran cannot be used to
 # build the cernlib
 BuildRequires: /usr/bin/g77
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-# f771 segfaults on x86_64
-ExcludeArch:   x86_64
 
 # these sources are different from the upstream sources as files with 
 # GPL incompatible licences are removed. You can use cernlib-remove-deadpool
@@ -44,7 +47,7 @@
 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
-# A shell script that goes in /etc/profile.d
+# Shell scripts that go in /etc/profile.d
 Source100: cernlib.sh.in
 Source105: cernlib.csh.in
 # m4 macros for autoconf
@@ -55,75 +58,131 @@
 Source103: cernlib.README
 # mkdirhier is used to create directories. Taken from xorg-x11
 Source104: mkdirhier
-# list of include directories (includelist.txt from debian)
-Source105: cernlib-includelist.txt
 # Files that can be used in the SOURCE directory to remove files with
 # GPL incompatible licences from upstream sources
 Source200: cernlib-remove-deadpool
 Source201: cernlib-deadpool.txt
 
-# change the cernlib script such that -llapack -lblas is used instead of 
-# cernlib lapack
-# and also depend explicitely on libkernlib now that it is out of packlib
-Patch49: cernlib-cernlib_kernlib.patch
-
-# debian cernlib patch full of good things
-Patch0: cernlib_2004.11.04-3.diff
+# debian patchset
+Patch0: cernlib_2005.05.09.dfsg-2.diff
+# change file to directory to DATADIR
+Patch1100: cernlib-enforce-FHS.diff
 Patch1: 001-fix-missing-fluka.dpatch
 Patch2: 002-fix-missing-mclibs.dpatch
-# modified, to have only DATADIR
-Patch3: 003-enforce-FHS
-Patch4: 005-enable-shadow-passwd
-#Patch4: 007-delete-fluka-refs
-Patch5: 008-undef-PPC
-Patch6: 010-comis-allow-special-chars-in-path
-Patch7: 012-add-no-optimization-macro
-# not applied, requires debian imake rules
-Patch8: 013-fix-paw-imakefile-special-rules
-# not applied, requires debian imake rules
-Patch9: 014-fix-herwig-imakefile-special-rules
-Patch11: 015-fix-optimization
-Patch12: 700-remove-kernlib-from-packlib-Imakefile.dpatch
-Patch13: 022-no-assign-string-literals
+Patch3: 003-geant-dummy-functions.dpatch
+Patch100: 100-fix-isajet-manual-corruption.dpatch
+Patch101: 101-undefine-PPC.dpatch
+Patch102: 102-dont-optimize-some-code.dpatch
+Patch103: 103-ignore-overly-long-macro-in-gen.h.dpatch
+Patch104: 104-fix-undefined-insertchar-warning.dpatch
+Patch105: 105-fix-obsolete-xmfontlistcreate-warning.dpatch 
+Patch106: 106-fix-paw++-menus-in-lesstif.dpatch
+Patch107: 107-define-strdup-macro-safely.dpatch
+Patch108: 108-quote-protect-comis-script.dpatch
+# not used as xsneut.dat is at the right place
+#Patch109: 109-fix-broken-xsneut95.dat-link.dpatch
+Patch110: 110-ignore-included-lapack-rule.dpatch
+Patch111: 111-fix-kuesvr-install-location.dpatch
+Patch112: 112-remove-nonexistent-prototypes-from-gen.h.dpatch
+# a workaround for cups. Applied in doubt.
+Patch113: 113-cups-postscript-fix.dpatch
+Patch114: 114-install-scripts-properly.dpatch
+Patch200: 200-comis-allow-special-chars-in-path.dpatch
+Patch201: 201-update-kuip-helper-apps.dpatch
+Patch202: 202-fix-includes-in-minuit-example.dpatch
+Patch203: 203-compile-geant-with-ertrak.dpatch
+Patch204: 204-compile-isajet-with-isasrt.dpatch
+Patch205: 205-max-path-length-to-256.dpatch
+Patch206: 206-herwig-uses-DBLE-not-REAL.dpatch
+Patch207: 207-compile-temp-libs-with-fPIC.dpatch
+# without that patch the binaries are linked with something like
+# libzftplib.a /builddir/build/BUILD/cernlib-2005/2005/build/packlib/cspack/programs/zftp/libzftplib.a
+Patch208: 208-fix-redundant-packlib-dependencies.dpatch
+Patch209: 209-ignore-unneeded-headers-in-kmutil.c.dpatch
+Patch210: 210-improve-cfortran-header-files.dpatch
+# disabled in the debian patchset, enabled here
+Patch211: 211-fix-comis-on-64-bit-arches.dpatch
+Patch300: 300-skip-duplicate-lenocc.dpatch
+# Use another approach, see cernlib-enforce-FHS
+# Patch33: 301-datafiles-comply-with-FHS.dpatch
+# use cernlib-gxint-script.diff instead and sed for paw and dzedit.script
+# Patch34: 302-scripts-comply-with-FHS.dpatch
+Patch303: 303-shadow-passwords-supported.dpatch
+Patch304: 304-update-Imake-config-files.dpatch
+Patch305: 305-use-POWERPC-not-PPC-as-test.dpatch
+# the bug in /usr/include/assert.h seems to be present in FC-4. So a local
+# version is provided in that patch. Will have to look at newer glibc-headers
+# packages
+Patch306: 306-patch-assert.h-for-makedepend.dpatch
+Patch307: 307-use-canonical-cfortran.dpatch
+Patch308: 308-use-canonical-cfortran-location.dpatch
+Patch309: 309-define-dummy-herwig-routines.dpatch
+Patch310: 310-define-dummy-fowl-routines.dpatch
+# The zebra qnexte is a fake, removing it remove an unneeded dependency.
+# the other qnext don't seem to be the same code? They are duplicate symbols
+# anyway so one must be removed
+Patch311: 311-skip-duplicate-qnext.dpatch
+Patch312: 312-skip-duplicate-gamma.dpatch
+# It is a departure from upstream. Apply, but may revert if not agreed.  
+Patch313: 313-comis-preserves-filename-case.dpatch
+Patch314: 314-permit-using-regcomp-for-re_comp.dpatch
+Patch315: 315-fixes-for-MacOSX.dpatch
+Patch318: 318-additional-gcc-3.4-fixes.dpatch
+
+Patch700: 700-remove-kernlib-from-packlib-Imakefile.dpatch
+Patch701: 701-patch-hbook-comis-Imakefiles.dpatch
+Patch702: 702-patch-Imakefiles-for-packlib-mathlib.dpatch
+# I would have preferred not to move the motif code to toplevel...
+Patch703: 703-patch-code_motif-packlib-Imakefiles.dpatch
+Patch704: 704-patch-code_kuip-higzcc-Imakefiles.dpatch
+# I would have preferred not to move the motif code to toplevel...
+Patch705: 705-patch-paw_motif-paw-Imakefiles.dpatch
+
+Patch800: 800-implement-shared-library-rules-in-Imake.dpatch
+Patch801: 801-non-optimized-rule-uses-fPIC-g.dpatch
+Patch802: 802-create-shared-libraries.dpatch
+# in the original cernlib kxterm is built with the C compiler, which cause
+# a failure if compiled with de cernlib debian script as -lg2c isn't found. 
+# It is corrected by
+Patch803: 803-link-binaries-dynamically.dpatch
+# 803 depends on 
+# 208-fix-redundant-packlib-dependencies.dpatch
+
+# no idea about what this does
+Patch804: 804-workaround-for-comis-mdpool-struct-location.dpatch
+Patch805: 805-expunge-missing-mathlib-kernlib-symbols.dpatch 
+# not needed but keep sync with debian, that'll avoid bumping sonames
+Patch806: 806-bump-mathlib-and-dependents-sonames.dpatch
+
+# not applied in newer debian patchset
+Patch3006: 022-no-assign-string-literals
 # fixed upstream
-Patch14: 027-use-tmpfile-not-mktemp
-Patch15: 028-fix-isajet-docs
-Patch16: 030-filename-length-to-256
-Patch17: 031-fix-varargs-use
-Patch18: 033-fix-undefined-insertchar
-Patch19: 035-do-not-use-XmFontListCreate
-Patch20: 038-fix-strndup-macro-problem
-Patch21: 039-use-DBLE-not-REAL
-Patch22: 044-fix-strdup-redefinition
-Patch23: 045-compile-with-isasrt
-Patch24: 047-fix-paw++-menus
+Patch3007: 027-use-tmpfile-not-mktemp
+# not applied in the newer debian patchset
+Patch3008: 031-fix-varargs-use
 # fixed upstream 
-Patch25: 048-log-to-var-log-not-tmp
+Patch3009: 048-log-to-var-log-not-tmp
 # fixed upstream
-Patch26: 049-fix-kuesvr-security-hole
+Patch3010: 049-fix-kuesvr-security-hole
 # fixed upstream
-Patch27: 050-make-secure-comis-tmpdir
+Patch3011: 050-make-secure-comis-tmpdir
 # fixed upstream
-Patch28: 051-fix-miscellaneous-tmp-uses
-# extracted from 001-enable-shared-libs
-#Patch29: 001-delete-pythia-refs
-# prepare gxint for substitutions of path and version
-Patch30: cernlib-gxint-script.diff
-Patch31: cernlib-XmDrawShadow-no-prototype.patch
-Patch32: cernlib-install_scripts.patch
-Patch33: cernlib-static-tcpaw.diff
-Patch34: cernlib-hwuli2_use_aimag.diff 
-Patch35: cernlib-hwhiga_use_aimag.diff
-Patch36: cernlib-gfortran.diff 
-Patch42: cernlib-rsrtnt64_goto_outer_block.diff
-Patch43: cernlib-v107z0_X_before_string.diff
-Patch44: cernlib-bimsel-nodouble-save.diff
-Patch45: 029-fixes-for-MacOSX
-Patch46: cernlib-config_pmac.diff
-Patch47: 032-use-regcomp-not-re_comp
-# modified version of 013-fix-paw-imakefile-special-rules that doesn't
-# requires the debian imake rules
-Patch48: 013-fix-paw-imakefile-special-rules-modified
+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
+# the modified script is renamed cernlib-static later and the debian cernlib
+# script is used instead.
+Patch1200: cernlib-cernlib_kernlib.patch
+# don't stop if the CERN variable isn't defined
+Patch1201: cernlib-gxint-script.diff
+Patch1203: cernlib-hwuli2_use_dimag.diff 
+Patch1204: cernlib-hwhiga_use_dimag.diff
+Patch1205: cernlib-gfortran.diff 
+Patch1206: cernlib-rsrtnt64_goto_outer_block.diff
+Patch1207: cernlib-v107z0_X_before_string.diff
 
 %description
 CERN program library is a large collection of general purpose libraries
@@ -133,12 +192,15 @@
 detectors simulation, data-handling etc... applicable to a wide range 
 of problems.
 
-The devel packages are parallel installable, but not the helper
+The main and devel packages are parallel installable, but not the helper
 scripts from the utils subpackage.
 
 %package devel
 Summary:       General purpose CERN library static libraries and headers
-Requires:      xorg-x11-devel lapack-devel blas-devel openmotif-devel
+Requires:      lapack-devel blas-devel openmotif-devel
+# workaround #173530
+Requires:      libXau-devel
+Requires:      %{name} = %{version}-%{release}
 Group:         Development/Libraries
 
 %description devel
@@ -155,7 +217,7 @@
 %package utils
 Summary:   CERN library compilation and environment setting scripts
 Group:     Applications/System
-Requires:  cernlib-devel = %{version}
+Requires:  %{name}-devel = %{version}-%{release}
 
 %description utils
 CERN library compilation and environment setting scripts.
@@ -230,56 +292,185 @@
 
 %patch -p1
 cd %{version}
+%patch -P 1100 -p2
 %patch -P 1 -p1
 %patch -P 2 -p1
-%patch -P 3 -p2
-%patch -P 4 -p2
-%patch -P 5
-%patch -P 6
-%patch -P 7
-#%patch -P 8
-#%patch -P 9
-%patch -P 11
-%patch -P 12 -p1
-%patch -P 13
-#%patch -P 14
-%patch -P 15
-%patch -P 16
-%patch -P 17 
-%patch -P 18 
-%patch -P 19 
-%patch -P 20
-%patch -P 21 
-%patch -P 22 
-%patch -P 23 
-%patch -P 24 
-#%patch -P 25 
-#%patch -P 26 
-#%patch -P 27 
-#%patch -P 28 
-# not needed anymore
-#%patch -P 29
-%patch -P 30
-%patch -P 31
-%patch -P 32
-%patch -P 33
-%patch -P 34
-%patch -P 35
+%patch -P 3 -p1
+%patch -P 100 -p1
+%patch -P 101 -p1
+%patch -P 102 -p1
+%patch -P 103 -p1
+%patch -P 104 -p1
+%patch -P 105 -p1
+%patch -P 106 -p1
+%patch -P 107 -p1
+%patch -P 108 -p1
+#%patch -P 109 -p1
+%patch -P 110 -p1
+%patch -P 111 -p1
+%patch -P 112 -p1
+%patch -P 113 -p1
+%patch -P 114 -p1
+%patch -P 200 -p1
+%patch -P 201 -p1
+%patch -P 202 -p1
+%patch -P 203 -p1
+%patch -P 204 -p1
+%patch -P 205 -p1
+%patch -P 206 -p1
+%patch -P 207 -p1
+%patch -P 208 -p1
+%patch -P 209 -p1
+%patch -P 210 -p1
+%patch -P 211 -p1
+%patch -P 300 -p1
+#%patch -P 301 -p1
+#%patch -P 302 -p1
+%patch -P 303 -p1
+%patch -P 304 -p1
+%patch -P 305 -p1
+%patch -P 306 -p1
+%patch -P 307 -p1
+%patch -P 308 -p1
+%patch -P 309 -p1
+%patch -P 310 -p1
+%patch -P 311 -p1
+%patch -P 312 -p1
+%patch -P 313 -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/
+
+%patch -P 318 -p1
+
+# move kernlib out of packlib (debian 700-move-kernlib-to-top-level.sh.dpatch)
+mv src/packlib/kernlib src/kernlib
+
+%patch -P 700 -p1
+
+# move hkf1q.F and hkfill.F out of packlib/hbook and into
+# pawlib/comis where they obviously belong (it even says so in the files!)
+# (debian 701-move-packlib-hkfill-to-comis.sh.dpatch)
+pushd src
+                mv packlib/hbook/code/hkf1q.F  pawlib/comis/code/
+                mv packlib/hbook/code/hkfill.F pawlib/comis/code/
+                # these files also need some headers to go with them:
+                mkdir pawlib/comis/hbook
+                cp -p packlib/hbook/hbook/pilot.h    pawlib/comis/hbook/
+                cp -p packlib/hbook/hbook/hcbook.inc pawlib/comis/hbook/
+                cp -p packlib/hbook/hbook/hcbits.inc pawlib/comis/hbook/
+                cp -p packlib/hbook/hbook/hcfast.inc pawlib/comis/hbook/
+popd
+
+%patch -P 701 -p1
+
+# Must create dirs before applying following patch. 
+# Corresponds with 702-fix-packlib-mathlib-circular-mess.sh.dpatch
+
+pushd src
+                # Hdiff depends upon a bunch of mathlib files; move it into
+                # mathlib.
+                mkdir mathlib/hbook
+                mv packlib/hbook/hdiff mathlib/hbook/
+                cp -r packlib/hbook/hbook mathlib/hbook/
+
+                # Meanwhile, other packlib files depend upon these mathlib
+                # files which are easily moved:
+                mkdir packlib/hbook/d
+                mv mathlib/gen/d/rgmlt*.F packlib/hbook/d/
+                mv mathlib/gen/n          packlib/hbook/
+                cp -r mathlib/gen/gen     packlib/hbook/
+popd
+
+%patch -P 702 -p1
+
+# Script to move packlib/kuip/code_motif to top level, splitting it out
+# from packlib.  But keep kmutil.c in packlib, it's otherwise used.
+# debian 703-move-code_motif-to-top-level.sh.dpatch
+
+pushd src
+                mv packlib/kuip/code_motif/kmutil.c packlib/kuip/code_kuip/
+                mv packlib/kuip/code_motif          ./
+                cp -r packlib/kuip/kuip             code_motif/
+popd
+
+%patch -P 703 -p1
+
+# Script to move the file kuwhag.c from packlib/kuip/code_kuip/kuwhag.c
+# into graflib/higz/higzcc.  It appears to be the only file in code_kuip
+# that depends upon grafX11 and libX11, so it fits in better here.
+# debian 704-move-kuwhag.c-to-grafX11.sh.dpatch
+
+pushd src
+                mv packlib/kuip/code_kuip/kuwhag.c graflib/higz/higzcc/
+                cp -r packlib/kuip/kuip            graflib/higz/
+popd
+
+%patch -P 704 -p1
+
+# Script to move Lesstif-dependent Paw code into its own library.
+# debian 705-move-paw++-code-to-top-level.sh.dpatch
+
+pushd src
+                mkdir paw_motif
+                mv pawlib/paw/?motif pawlib/paw/fpanels? paw_motif/
+                mv pawlib/paw/tree pawlib/paw/uimx pawlib/paw/xbae* paw_motif/
+                cp -p pawlib/paw/Imakefile paw_motif/
+                
+                mkdir paw_motif/code
+                mv pawlib/paw/code/pawpp.F   paw_motif/code/
+                mv pawlib/paw/code/pawintm.F paw_motif/code/
+
+                mkdir paw_motif/cdf
+                mv pawlib/paw/cdf/pamcdf.cdf paw_motif/cdf/
+
+                cp -pr pawlib/paw/paw paw_motif/
+                cp -pr pawlib/paw/hpaw paw_motif/
+popd
+
+%patch -P 705 -p1
+
+%patch -P 800 -p1
+%patch -P 801 -p1
+%patch -P 802 -p1
+%patch -P 803 -p1
+
+# Shell script to link pawlib/comis/comis into the top-level include directory.
+# debian 804-link-to-comis-includes.sh.dpatch
+pushd src
+                ln -s ../pawlib/comis/comis include/comis
+popd
+
+%patch -P 804 -p1
+%patch -P 805 -p1
+%patch -P 806 -p1
+
+
+%patch -P 1200
+%patch -P 1201
+%patch -P 1203
+%patch -P 1204
 # use gfortran
-#%patch -P 36
+#%patch -P 1205
 # workaround gfortran bug
-%patch -P 42
-%patch -P 43
-%patch -P 44
-# try to build on ppc
-%patch -P 45
-%patch -P 46
-%patch -P 47
-%patch -P 48
-%patch -P 49
+%patch -P 1206
+%patch -P 1207
+
+# remove CVS directories
+find . -depth -type d -name CVS -exec rm -rf {} ';' 
 
+# unset executable bit on source files
+chmod a-x src/kernlib/kerngen/ccgencf/cfstati.c \
+  src/cfortran/cfortran.*
+
+# remove empty header file not needed anywhere to shut up rpmlint
+rm src/pawlib/paw/ntuple/dbmalloc.h
 
 %build
+
 CERN=$RPM_BUILD_DIR/cernlib-%{version}
 CERN_LEVEL=%{version}
 CERN_ROOT=$CERN/$CERN_LEVEL
@@ -292,7 +483,10 @@
 export CVSCOSRC
 export PATH
 
-# set the CERN and CERN_LEVEL environment variables in a shell script
+LIB_SONAME=1
+export LIB_SONAME
+
+# 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
@@ -300,6 +494,12 @@
 cp %{SOURCE101} .
 cp %{SOURCE102} .
 cp %{SOURCE103} .
+
+# Regenerate the copyright file (from debian/rules)
+grep -v DEADPOOL_LIST_GOES_HERE debian/copyright.in > copyright
+sed -e 's/#.*//g' -e '/^[[:space:]]*$$/d' %{SOURCE200} | \
+                sort | uniq >> 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
@@ -307,36 +507,43 @@
 
 cd $CERN_ROOT
 
-find . -type d -name CVS -depth -exec rm -rf {} ';' 
-
-# substitude the right defaults in the cernlib script
-sed -i -e 's:/cern:%{_libdir}/cernlib/:' -e 's:pro:%{version}:' src/scripts/cernlib
+# 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
 
 # substitute version in gxint with the right version
 # substitute includedir in gxint to conform to FHS
-sed -i -e 's/==VERSION==/%{version}/' -e 's:==includedir==:%{_includedir}:' src/scripts/gxint 
+sed -i -e 's/"pro"/%{version}/' -e 's:\${CERN}/\${ver}/lib:%{_includedir}/cernlib/\${ver}:' src/scripts/gxint 
 
 # substitute DATADIR in source files to conform to FHS
-for file in src/geant321/miface/gmorin.F src/mclibs/cojets/test/test.F src/mclibs/eurodec/eurodec/eufiles.inc src/mclibs/isajet/test/isajett.F; do
-  sed -i -e 's:DATADIR:%{_datadir}/cernlib/%{version}:' $file
-done
-
-# move kernlib out of packlib (debian 700-move-kernlib-to-top-level.sh.dpatch)
-mv src/packlib/kernlib src/kernlib
+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
 
 # Create the build directory structure
+mkdir -p build bin lib shlib
 
-mkdir -p build bin lib build/log
+# rename the cernlib script cernlib-static and 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
+sed -e 's:@PREFIX@:%{_prefix}:g' \
+  -e 's:@LIBPREFIX@:%{_libdir}/cernlib/%{version}:g' \
+  -e 's/-lg2c//' \
+  ../debian/add-ons/bin/cernlib.in > src/scripts/cernlib
+chmod 0755 src/scripts/cernlib
 
+# install mkdirhier which is needed to make directories
 cp %{SOURCE104} bin/
 chmod a+x bin/mkdirhier
 
 # Create the top level Makefile with imake
-# the RPM optflags are not used
 
 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
@@ -349,6 +556,8 @@
 cd $CERN_ROOT/build
 #  %{?_smp_mflags} breaks the build
 make
+make install.shlib
+chmod a+x ../shlib/*.so.*
 
 # Build paw
 cd $CERN_ROOT/build/pawlib
@@ -386,10 +595,12 @@
 %{__install} -m755 bin/* $RPM_BUILD_ROOT%{_bindir}/
 # 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 -)
 #(cd src/include && tar cf - *) | (cd $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version} && tar xf -)
- 
+
 rm -f $RPM_BUILD_ROOT%{_bindir}/mkdirhier
 
+# add links for cfortran header files in the top include directory
 pushd $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
 for file in *.h; do
 	%{__ln_s} $file cfortran/$file
@@ -398,38 +609,50 @@
 popd
 
 cd src
+# install include directories for the cernlib libraries
 base_include=$RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}
-for dir in `cat %{SOURCE105}`; do
+for dir in `cat ../../debian/add-ons/includelist.txt`; do
 	basedir=`basename $dir`
 	rm -rf $base_include/$basedir
 	cp -Rp $dir $base_include/
 done
 
 find $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version} -name Imakefile -exec rm -f \{\} \;
-#rm -rf $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}/cfortran/Examples/
+rm -f $RPM_BUILD_ROOT%{_includedir}/cernlib/%{version}/ntuple/*.c
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%dir %{_libdir}/cernlib/
+%dir %{_libdir}/cernlib/%{version}
+%dir %{_libdir}/cernlib/%{version}/lib
+%{_libdir}/cernlib/%{version}/lib/*.so.*
+%{_datadir}/cernlib/
+%doc cernlib.README copyright
+%doc debian/debhelper/geant321.README.debian 
+%doc debian/debhelper/libpdflib804-2-dev.README.debian
+%doc debian/debhelper/libmathlib2.README.debian 
+%doc 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}
-%{_datadir}/cernlib/%{version}
-%{_includedir}/cernlib/%{version}
+%{_libdir}/cernlib/%{version}/lib/*.a
+%{_libdir}/cernlib/%{version}/lib/*.so
+%{_includedir}/cernlib/
 %{_datadir}/aclocal/cernlib.m4
-# those file should be in a cernlib main package
-%doc cernlib.README debian/copyright
-%doc debian/libgeant1.README.debian debian/libpdflib804-dev.README.debian
-%doc debian/libmathlib1.README.debian debian/montecarlo-base.README.debian
-# devel specific files
 %doc cfortran 
 
 %files utils
 %defattr(-,root,root,-)
-%{_bindir}/cernlib
+%{_bindir}/cernlib*
 %{_sysconfdir}/profile.d/cernlib-%{version}.sh
 %{_sysconfdir}/profile.d/cernlib-%{version}.csh
 
@@ -465,9 +688,20 @@
 %{_bindir}/hepdb
 %{_bindir}/kxterm
 %{_bindir}/zftp
-%doc debian/zftp.README.debian
+%doc debian/debhelper/zftp.README.debian
 
 %changelog
+* Fri Dec  9 2005 Patrice Dumas <dumas at centre-cired.fr> - 2005-8
+- use new debian patchset
+- enable 64 bit fixes patch
+- remove the BSD in the licence because there is no library nor binary
+  under a BSD licence and someone could get the idea that there is 
+  some dual BSD/GPL licenced binaries or libraries. The LGPL is kept
+  because of cfortran
+- update with newer debian patchset for cernlib, fix licence issues
+- build shared libraries
+- simplify the scripts modifications
+
 * Fri Nov 25 2005 Patrice Dumas <dumas at centre-cired.fr> - 2005-4.8
 - use debian patches of the cernlib 2005 patchset for the files removal
 - move kernlib out of packlib


Index: paw.README
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/paw.README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- paw.README	16 Nov 2005 23:34:07 -0000	1.1
+++ paw.README	9 Dec 2005 16:09:19 -0000	1.2
@@ -5,18 +5,17 @@
 
 If you experience corruption of the graphics window when other windows are
 moved over top of it, turn on the BackingStore option of the X server.
-In the "Screen" section of your /etc/X11/XF86Config-4 file or 
-/etc/X11/xorg.conf, you should have
-something like:
+In the "Screen" section of your /etc/X11/XF86Config-4 or /etc/X11/xorg.conf
+file (whichever one exists), you should have something like:
 
 Section "Screen"
-        .
-        .
-        .
+	.
+	.
+	.
     Option "BackingStore"
-        .
-        .
-        .
+	.
+	.
+	.
 EndSection
 
 2) Remote data files
@@ -32,12 +31,22 @@
 If you compile a FORTRAN script within PAW, the path to the file cannot
 be excessively long (more than 256 characters).
 
-4) 64-bit issues
+4) Filename case issues
+
+The default behavior has been set so that PAW is case-sensitive in its 
+treatment of filenames.  If you have any old Paw scripts that do not
+treat filenames in a case-sensitive way, you may need to add the line
+
+        filecase convert
+
+to the beginning of them.
+
+5) 64-bit issues
 
 Note that this package is not yet fully functional on 64-bit machines, as the
 COMIS portion of Pawlib does not yet work correctly on those architectures.
 
--- Kevin McCarty <kmccarty at princeton.edu>, Mon, 29 Nov 2004
+-- Kevin McCarty <kmccarty at debian.org>, Tue, 22 Nov 2005
 
 Adapted to the rpm package by 
--- Dumas Patrice <dumas at centre-cired.fr>, Tue, 16 Jun 2005
+-- Dumas Patrice <dumas at centre-cired.fr>


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/cernlib/FC-4/sources,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- sources	28 Nov 2005 10:43:24 -0000	1.4
+++ sources	9 Dec 2005 16:09:19 -0000	1.5
@@ -1,15 +1,15 @@
-1f25e16563f89a69c1b15b8ed11af904  src_car.tar.gz
+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
-dcd46166a57a8a4ec45d872d79839f1a  src_pawlib.tar.gz
+bb4e224a7713ac4b8c13598e388c17f3  src_pawlib.tar.gz
 b72b89cb3a7f7c592d28b992c95b4eff  src_config.tar.gz
 0ec66e6d4920af79999b4c73fd3b065a  src_mathlib.tar.gz
 f215b9adba3cfb3be4bd74d624f00d32  src_phtools.tar.gz
-2cf91d533315b430f4e36c1c6e23841a  src_geant321.tar.gz
-ce6d941a50c3e1fdc8bdcc4ec2988116  src_mclibs.tar.gz
+24e2460fa61675df1cd74c7204a8d79e  src_geant321.tar.gz
+666d8a5c483c275463ebb1a3dd48c742  src_mclibs.tar.gz
 b30b121167ddf6508c22fc25a4272276  src_scripts.tar.gz
-f09d0f28e5c7ecc1a3932369f5a15dab  src_graflib.tar.gz
-d7d4628d136ed97f1e9ba164774a6878  src_packlib.tar.gz
+67228b011eac13b44499c50219e21545  src_graflib.tar.gz
+4fdcdc9f819ebbb9c6d3a04f339cdcf8  src_packlib.tar.gz
 eecb52159458ead0ee6b0d00b90aab66  xsneut95.dat


--- 003-enforce-FHS DELETED ---


--- 005-enable-shadow-passwd DELETED ---


--- 008-undef-PPC DELETED ---


--- 010-comis-allow-special-chars-in-path DELETED ---


--- 012-add-no-optimization-macro DELETED ---


--- 013-fix-paw-imakefile-special-rules DELETED ---


--- 013-fix-paw-imakefile-special-rules-modified DELETED ---


--- 014-fix-herwig-imakefile-special-rules DELETED ---


--- 015-fix-optimization DELETED ---


--- 028-fix-isajet-docs DELETED ---


--- 029-fixes-for-MacOSX DELETED ---


--- 030-filename-length-to-256 DELETED ---


--- 032-use-regcomp-not-re_comp DELETED ---


--- 033-fix-undefined-insertchar DELETED ---


--- 035-do-not-use-XmFontListCreate DELETED ---


--- 038-fix-strndup-macro-problem DELETED ---


--- 039-use-DBLE-not-REAL DELETED ---


--- 044-fix-strdup-redefinition DELETED ---


--- 045-compile-with-isasrt DELETED ---


--- 047-fix-paw++-menus DELETED ---


--- cernlib-XmDrawShadow-no-prototype.patch DELETED ---


--- cernlib-bimsel-nodouble-save.diff DELETED ---


--- cernlib-config_pmac.diff DELETED ---


--- cernlib-hwhiga_use_aimag.diff DELETED ---


--- cernlib-hwuli2_use_aimag.diff DELETED ---


--- cernlib-includelist.txt DELETED ---


--- cernlib-install_scripts.patch DELETED ---


--- cernlib-static-tcpaw.diff DELETED ---


--- cernlib_2004.11.04-3.diff DELETED ---




More information about the scm-commits mailing list