From 4d1e9972ebad4bc79198400e1bced24764fbf361 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Jun 27 2010 10:12:12 +0000 Subject: - Fix race conditions during make install - Build python modules for alternative python versions --- diff --git a/import.log b/import.log index 08e8fba..b371bb0 100644 --- a/import.log +++ b/import.log @@ -1,2 +1,3 @@ lcgdm-1_7_4_4-2_fc12:F-13:lcgdm-1.7.4.4-2.fc12.src.rpm:1270718546 lcgdm-1_7_4_7-1_fc12:F-13:lcgdm-1.7.4.7-1.fc12.src.rpm:1275863352 +lcgdm-1_7_4_7-2_fc12:F-13:lcgdm-1.7.4.7-2.fc12.src.rpm:1277633505 diff --git a/lcgdm-paths.patch b/lcgdm-paths.patch index c037f96..e26993d 100644 --- a/lcgdm-paths.patch +++ b/lcgdm-paths.patch @@ -21,7 +21,7 @@ diff -ur lcgdm-1.7.4.4.orig/config/site.def lcgdm-1.7.4.4/config/site.def #define InstallPythonDir \\cern.ch\dfs\Applications\CERN\LFC\lib\python #else -#define InstallPythonDir $(prefix)/$(_lib)/python -+#define InstallPythonDir $(shell python -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,'$(prefix)')") ++#define InstallPythonDir $(shell python -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,'$(prefix)'))") #endif #define LibManDir $(prefix)/share/man/man3 #define LibManSuffix 3 diff --git a/lcgdm-python-exception.patch b/lcgdm-python-exception.patch new file mode 100644 index 0000000..89d4459 --- /dev/null +++ b/lcgdm-python-exception.patch @@ -0,0 +1,12 @@ +diff -ur lcgdm-1.7.4.7.orig/ns/Cns-python_typemaps.i lcgdm-1.7.4.7/ns/Cns-python_typemaps.i +--- lcgdm-1.7.4.7.orig/ns/Cns-python_typemaps.i 2010-06-06 13:49:38.000000000 +0200 ++++ lcgdm-1.7.4.7/ns/Cns-python_typemaps.i 2010-06-25 15:31:32.171086114 +0200 +@@ -54,7 +54,7 @@ + break; + case EACCES: + case EPERM: +- exc = PyExc_StandardError; ++ exc = PyExc_Exception; + break; + case ENOENT: + case EEXIST: diff --git a/lcgdm-race.patch b/lcgdm-race.patch new file mode 100644 index 0000000..78ef938 --- /dev/null +++ b/lcgdm-race.patch @@ -0,0 +1,82 @@ +diff -ur lcgdm-1.7.4.7.orig/config/Imake.rules lcgdm-1.7.4.7/config/Imake.rules +--- lcgdm-1.7.4.7.orig/config/Imake.rules 2010-06-24 18:29:56.813553853 +0200 ++++ lcgdm-1.7.4.7/config/Imake.rules 2010-06-24 19:02:09.600554203 +0200 +@@ -11,19 +11,19 @@ + + #if UseNroff + #define IMANPAGE(name,dir,suffix) \ +-dir/name.suffix: name.man @@\ ++dir/name.suffix: dir name.man @@\ + nroff -man name.man > dir/name.suffix + + #define FILTERMANPAGE(new_command,command,dir,suffix) \ +-dir/new_command.suffix: command.man @@\ ++dir/new_command.suffix: dir command.man @@\ + ../scripts/filter-manpage.sh new_command command dir suffix + #else + #define IMANPAGE(name,dir,suffix) \ +-dir/name.suffix: name.man @@\ ++dir/name.suffix: dir name.man @@\ + cp name.man dir/name.suffix + + #define FILTERMANPAGE(new_command,command,dir,suffix) \ +-dir/new_command.suffix: command.man @@\ ++dir/new_command.suffix: dir command.man @@\ + ../scripts/filter-manpage-nroff.sh new_command command dir suffix + #endif + +@@ -126,9 +126,9 @@ + + #ifndef InstallTarget + #define InstallTarget(file,owner,group,mode,dest) @@\ +-dest/file: file @@\ +- -mv $@ dest/OLD$? @@\ +- cp $? $@ @@\ ++dest/file: dest file @@\ ++ -mv $@ dest/OLD/**/file @@\ ++ cp file $@ @@\ + if [ `$(IDCMD) -u` = 0 ]; then \ @@\ + chown owner $@ ; \ @@\ + chgrp group $@ ; \ @@\ +@@ -138,10 +138,10 @@ + + #ifndef InstallLibrary + #define InstallLibrary(libname,dest,owner,group,mode) @@\ +-dest/LibraryTargetName(libname): LibraryTargetName(libname) @@\ +- -mv $@ dest/OLD$? @@\ +- cp $? $@ @@\ +- @$(RANLIB) $(LIB)/$? @@\ ++dest/LibraryTargetName(libname): dest LibraryTargetName(libname) @@\ ++ -mv $@ dest/OLD/**/LibraryTargetName(libname) @@\ ++ cp LibraryTargetName(libname) $@ @@\ ++ @$(RANLIB) $@ @@\ + if [ `$(IDCMD) -u` = 0 ]; then \ @@\ + chown owner $@ ; \ @@\ + chgrp group $@ ; \ @@\ +@@ -157,19 +157,19 @@ + + #ifndef InstallSharedLibrary + #define InstallSharedLibrary(libname,rev,dest) @@\ +-dest/SharedLibraryTargetName(libname): SharedLibraryTargetName(libname) @@\ +- cp $? $@.rev @@\ ++dest/SharedLibraryTargetName(libname): dest SharedLibraryTargetName(libname) @@\ ++ cp SharedLibraryTargetName(libname) $@.rev @@\ + -rm $@ @@\ +- ln -s $?.rev $@ @@\ ++ ln -s SharedLibraryTargetName(libname).rev $@ @@\ + -rm $@.`echo rev|cut -f1 -d.` @@\ +- ln -s $?.rev $@.`echo rev|cut -f1 -d.` ++ ln -s SharedLibraryTargetName(libname).rev $@.`echo rev|cut -f1 -d.` + #endif + + #ifndef InstallPlugin + #define InstallPlugin(libname,rev,dest) @@\ +-dest/SharedLibraryTargetName(libname): SharedLibraryTargetName(libname) @@\ +- -mv $@ dest/OLD$? @@\ +- cp $? $@ ++dest/SharedLibraryTargetName(libname): dest SharedLibraryTargetName(libname) @@\ ++ -mv $@ dest/OLD/**/SharedLibraryTargetName(libname) @@\ ++ cp SharedLibraryTargetName(libname) $@ + #endif + + #ifndef MakeDir diff --git a/lcgdm-shliblink.patch b/lcgdm-shliblink.patch index 0b01572..799a440 100644 --- a/lcgdm-shliblink.patch +++ b/lcgdm-shliblink.patch @@ -1,6 +1,6 @@ -diff -ur lcgdm-1.7.4.4.orig/config/Imake.rules lcgdm-1.7.4.4/config/Imake.rules ---- lcgdm-1.7.4.4.orig/config/Imake.rules 2010-04-03 11:36:00.643794299 +0200 -+++ lcgdm-1.7.4.4/config/Imake.rules 2010-04-03 11:36:19.959544559 +0200 +diff -ur lcgdm-1.7.4.7.orig/config/Imake.rules lcgdm-1.7.4.7/config/Imake.rules +--- lcgdm-1.7.4.7.orig/config/Imake.rules 2010-06-25 18:35:08.685803663 +0200 ++++ lcgdm-1.7.4.7/config/Imake.rules 2010-06-25 18:36:34.765803696 +0200 @@ -95,7 +95,7 @@ #ifndef NormalProgramTarget #define NormalProgramTarget(program,objects,deplibs,libs) \ @@ -10,9 +10,9 @@ diff -ur lcgdm-1.7.4.4.orig/config/Imake.rules lcgdm-1.7.4.4/config/Imake.rules #endif #ifndef MakeSubdirs -diff -ur lcgdm-1.7.4.4.orig/dicomcopy/Imakefile lcgdm-1.7.4.4/dicomcopy/Imakefile ---- lcgdm-1.7.4.4.orig/dicomcopy/Imakefile 2010-04-03 11:35:57.283543277 +0200 -+++ lcgdm-1.7.4.4/dicomcopy/Imakefile 2010-04-03 17:13:13.445544982 +0200 +diff -ur lcgdm-1.7.4.7.orig/dicomcopy/Imakefile lcgdm-1.7.4.7/dicomcopy/Imakefile +--- lcgdm-1.7.4.7.orig/dicomcopy/Imakefile 2010-06-25 18:34:58.732553639 +0200 ++++ lcgdm-1.7.4.7/dicomcopy/Imakefile 2010-06-25 18:36:34.766803822 +0200 @@ -27,7 +27,7 @@ #if SOLARIS LIBS = -L../shlib -ldpm -llcgdm -lsocket -lnsl -ldl @@ -49,9 +49,9 @@ diff -ur lcgdm-1.7.4.4.orig/dicomcopy/Imakefile lcgdm-1.7.4.4/dicomcopy/Imakefil install: $(BIN) $(DPMSHAREDIR) $(SYSCONFDIR) $(IPROGS_D) $(SPOOL) -diff -ur lcgdm-1.7.4.4.orig/dli/Imakefile lcgdm-1.7.4.4/dli/Imakefile ---- lcgdm-1.7.4.4.orig/dli/Imakefile 2010-03-30 07:04:18.000000000 +0200 -+++ lcgdm-1.7.4.4/dli/Imakefile 2010-04-03 11:36:44.917544729 +0200 +diff -ur lcgdm-1.7.4.7.orig/dli/Imakefile lcgdm-1.7.4.7/dli/Imakefile +--- lcgdm-1.7.4.7.orig/dli/Imakefile 2010-06-06 13:49:40.000000000 +0200 ++++ lcgdm-1.7.4.7/dli/Imakefile 2010-06-25 18:36:34.766803822 +0200 @@ -20,9 +20,9 @@ SOAPFLG = -DWITH_IPV6 INCLUDES = FileName(..,h) @@ -73,21 +73,26 @@ diff -ur lcgdm-1.7.4.4.orig/dli/Imakefile lcgdm-1.7.4.4/dli/Imakefile rc.lfc-dli: lfc-dli.scripts $(CP) $? $@ lfc-dli.conf.templ: lfc-dli.sysconfig -diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile ---- lcgdm-1.7.4.4.orig/dpm/Imakefile 2010-04-03 11:35:57.283543277 +0200 -+++ lcgdm-1.7.4.4/dpm/Imakefile 2010-04-03 13:11:20.501544293 +0200 -@@ -10,8 +10,9 @@ - PYTHON_VERSION=$(shell python -c "import sys; print sys.version[:3]") - PYTHON_PREFIX=$(shell python -c "import os; import sys; print os.path.normpath(sys.prefix)") - INCLUDE_PYTHON=-I$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_inc(0,prefix='${PYTHON_PREFIX}')") +diff -ur lcgdm-1.7.4.7.orig/dpm/Imakefile lcgdm-1.7.4.7/dpm/Imakefile +--- lcgdm-1.7.4.7.orig/dpm/Imakefile 2010-06-25 18:34:58.733553835 +0200 ++++ lcgdm-1.7.4.7/dpm/Imakefile 2010-06-26 07:19:14.933553056 +0200 +@@ -7,11 +7,10 @@ + COMM Make Disk Pool Manager + + #if BuildInterfaces +-PYTHON_VERSION=$(shell python -c "import sys; print sys.version[:3]") +-PYTHON_PREFIX=$(shell python -c "import os; import sys; print os.path.normpath(sys.prefix)") +-INCLUDE_PYTHON=-I$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_inc(0,prefix='${PYTHON_PREFIX}')") -PYTHON_LIB=$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,1,prefix='${PYTHON_PREFIX}')") -+PYTHON_LIB=-L$(shell python -c "from distutils import sysconfig; print sysconfig.get_config_var('LIBDEST')")/config -lpython$(PYTHON_VERSION) $(shell python -c "from distutils import sysconfig; print sysconfig.get_config_var('LIBS'), sysconfig.get_config_var('SYSLIBS')") - INCLUDE_PERL=-I$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') -+PERL_LIB=-L$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') -lperl $(shell perl -MConfig -e 'print $$Config{perllibs};') +-INCLUDE_PERL=-I$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') ++INCLUDE_PYTHON=$(shell python -c "from distutils import sysconfig; print('-I' + sysconfig.get_python_inc(0))") ++PYTHON_LIB=$(shell python -c "from distutils import sysconfig; import sys; print('-L' + sysconfig.get_config_var('LIBDEST') + '/config -lpython' + sys.version[:3] + ' ' + sysconfig.get_config_var('LIBS') + ' ' + sysconfig.get_config_var('SYSLIBS'))") ++INCLUDE_PERL=$(shell perl -MConfig -e 'print "-I", $$Config{archlibexp}, "/CORE";') ++PERL_LIB=$(shell perl -MConfig -e 'print "-L", $$Config{archlibexp}, "/CORE -lperl ", $$Config{perllibs};') SWIG_LOCATION = SwigLocation SWIG = SWIG_LIB=SwigLib $(SWIG_LOCATION)/bin/swig #endif -@@ -28,7 +29,7 @@ +@@ -28,7 +27,7 @@ GLOBUS_FLAVOUR=GlobusFlavour/**/pthr #endif GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/lib -lglobus_gssapi_gsi_$(GLOBUS_FLAVOUR) -lglobus_gss_assist_$(GLOBUS_FLAVOUR) -lglobus_common_$(GLOBUS_FLAVOUR) @@ -96,7 +101,7 @@ diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile LIBCSEC += $(GLOBUS_LIBS) #endif LIBCSEC += -ldl -@@ -41,12 +42,12 @@ +@@ -41,12 +40,12 @@ #endif INCLUDES = FileName(..,h) #if SOLARIS @@ -111,7 +116,7 @@ diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile #endif #endif LIBUUID = -@@ -77,7 +78,7 @@ +@@ -77,7 +76,7 @@ MYSFLG = -DUSE_MYSQL MYSQL_LOCATION = MySQLLocation MYSINC = -I$(MYSQL_LOCATION)/include/mysql @@ -120,7 +125,7 @@ diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile DBCREAT = create_dpm_tables_mysql.sql #else #if UsePostgres -@@ -109,7 +110,7 @@ +@@ -109,7 +108,7 @@ COMM######################### DEPENDENCY LIBRARIES ############### @@ -129,7 +134,7 @@ diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile COMM######################### RULES ############################## -@@ -418,21 +419,21 @@ +@@ -420,21 +419,21 @@ RemoveFiles(dpm_perlwrap.o dpm_perlwrap.c) $(SWIG) -perl -I$(INCLUDES) -DNSTYPE_DPNS -o dpm_perlwrap.c dpm.i $(CC) -c $(MTCCFLAGS) -I$(INCLUDES) $(INCLUDE_PERL) -Dbool=char -D_GNU_SOURCE -DNSTYPE_DPNS dpm_perlwrap.c @@ -154,9 +159,9 @@ diff -ur lcgdm-1.7.4.4.orig/dpm/Imakefile lcgdm-1.7.4.4/dpm/Imakefile InstallTarget(dpm.so,root,root,0755,$(PERLDIR)) InstallTarget(dpm.pm,root,root,0644,$(PERLDIR)) -diff -ur lcgdm-1.7.4.4.orig/dpmcopy/Imakefile lcgdm-1.7.4.4/dpmcopy/Imakefile ---- lcgdm-1.7.4.4.orig/dpmcopy/Imakefile 2010-03-30 07:04:16.000000000 +0200 -+++ lcgdm-1.7.4.4/dpmcopy/Imakefile 2010-04-03 13:46:34.253544868 +0200 +diff -ur lcgdm-1.7.4.7.orig/dpmcopy/Imakefile lcgdm-1.7.4.7/dpmcopy/Imakefile +--- lcgdm-1.7.4.7.orig/dpmcopy/Imakefile 2010-06-06 13:49:34.000000000 +0200 ++++ lcgdm-1.7.4.7/dpmcopy/Imakefile 2010-06-25 18:36:34.767803529 +0200 @@ -23,7 +23,7 @@ GLOBUS_FLAVOUR=GlobusFlavour VOMS_FLAVOUR=GlobusFlavour @@ -196,9 +201,9 @@ diff -ur lcgdm-1.7.4.4.orig/dpmcopy/Imakefile lcgdm-1.7.4.4/dpmcopy/Imakefile COMM######################### RULES ############################## -diff -ur lcgdm-1.7.4.4.orig/lib/Imakefile lcgdm-1.7.4.4/lib/Imakefile ---- lcgdm-1.7.4.4.orig/lib/Imakefile 2010-03-30 07:04:16.000000000 +0200 -+++ lcgdm-1.7.4.4/lib/Imakefile 2010-04-03 11:36:19.961544880 +0200 +diff -ur lcgdm-1.7.4.7.orig/lib/Imakefile lcgdm-1.7.4.7/lib/Imakefile +--- lcgdm-1.7.4.7.orig/lib/Imakefile 2010-06-06 13:49:33.000000000 +0200 ++++ lcgdm-1.7.4.7/lib/Imakefile 2010-06-25 18:36:34.767803529 +0200 @@ -34,7 +34,9 @@ install: $(LIB) FileName($(LIB),LibraryTargetName(dpm)) @@ -229,9 +234,9 @@ diff -ur lcgdm-1.7.4.4.orig/lib/Imakefile lcgdm-1.7.4.4/lib/Imakefile liblcgdm.a: $(COMMONLIB) $(SECURITYLIB) -diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile lcgdm-1.7.4.4/ns/Imakefile ---- lcgdm-1.7.4.4.orig/ns/Imakefile 2010-03-30 07:04:17.000000000 +0200 -+++ lcgdm-1.7.4.4/ns/Imakefile 2010-04-03 12:00:26.054545073 +0200 +diff -ur lcgdm-1.7.4.7.orig/ns/Imakefile lcgdm-1.7.4.7/ns/Imakefile +--- lcgdm-1.7.4.7.orig/ns/Imakefile 2010-06-06 13:49:38.000000000 +0200 ++++ lcgdm-1.7.4.7/ns/Imakefile 2010-06-25 18:36:34.768802677 +0200 @@ -36,27 +36,27 @@ INCLUDES = FileName(..,h) TOPLIBRARYNAME = TopLibraryName @@ -285,9 +290,9 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile lcgdm-1.7.4.4/ns/Imakefile #else #if UsePostgres DBOBJS = Cns_libpq_ifce.Osuf -diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.dpns lcgdm-1.7.4.4/ns/Imakefile.dpns ---- lcgdm-1.7.4.4.orig/ns/Imakefile.dpns 2010-03-30 07:04:17.000000000 +0200 -+++ lcgdm-1.7.4.4/ns/Imakefile.dpns 2010-04-03 11:36:19.962544517 +0200 +diff -ur lcgdm-1.7.4.7.orig/ns/Imakefile.dpns lcgdm-1.7.4.7/ns/Imakefile.dpns +--- lcgdm-1.7.4.7.orig/ns/Imakefile.dpns 2010-06-06 13:49:38.000000000 +0200 ++++ lcgdm-1.7.4.7/ns/Imakefile.dpns 2010-06-25 18:36:34.768802677 +0200 @@ -22,7 +22,7 @@ COMM######################### DEPENDENCY LIBRARIES ############### @@ -309,18 +314,23 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.dpns lcgdm-1.7.4.4/ns/Imakefile.dpns #endif NormalProgramTarget(dpns-entergrpmap,nsentergrpmap.Osuf,LibraryTargetName(ns) $(DEPLIB),$(NSLIB) $(LIBS)) NormalProgramTarget(dpns-enterusrmap,nsenterusrmap.Osuf,LibraryTargetName(ns) $(DEPLIB),$(NSLIB) $(LIBS)) -diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc ---- lcgdm-1.7.4.4.orig/ns/Imakefile.lfc 2010-04-03 11:35:57.284544450 +0200 -+++ lcgdm-1.7.4.4/ns/Imakefile.lfc 2010-04-03 12:22:50.062545793 +0200 -@@ -24,15 +24,16 @@ - PYTHON_VERSION=$(shell python -c "import sys; print sys.version[:3]") - PYTHON_PREFIX=$(shell python -c "import os; import sys; print os.path.normpath(sys.prefix)") - INCLUDE_PYTHON=-I$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_inc(0,prefix='${PYTHON_PREFIX}')") +diff -ur lcgdm-1.7.4.7.orig/ns/Imakefile.lfc lcgdm-1.7.4.7/ns/Imakefile.lfc +--- lcgdm-1.7.4.7.orig/ns/Imakefile.lfc 2010-06-25 18:34:58.734552913 +0200 ++++ lcgdm-1.7.4.7/ns/Imakefile.lfc 2010-06-26 07:18:05.562553157 +0200 +@@ -21,18 +21,17 @@ + #endif + + #if BuildInterfaces +-PYTHON_VERSION=$(shell python -c "import sys; print sys.version[:3]") +-PYTHON_PREFIX=$(shell python -c "import os; import sys; print os.path.normpath(sys.prefix)") +-INCLUDE_PYTHON=-I$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_inc(0,prefix='${PYTHON_PREFIX}')") -PYTHON_LIB=$(shell python -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,1,prefix='${PYTHON_PREFIX}')") -+PYTHON_LIB=-L$(shell python -c "from distutils import sysconfig; print sysconfig.get_config_var('LIBDEST')")/config -lpython$(PYTHON_VERSION) $(shell python -c "from distutils import sysconfig; print sysconfig.get_config_var('LIBS'), sysconfig.get_config_var('SYSLIBS')") - INCLUDE_PERL=-I$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') +-INCLUDE_PERL=-I$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') ++INCLUDE_PYTHON=$(shell python -c "from distutils import sysconfig; print('-I' + sysconfig.get_python_inc(0))") ++PYTHON_LIB=$(shell python -c "from distutils import sysconfig; import sys; print('-L' + sysconfig.get_config_var('LIBDEST') + '/config -lpython' + sys.version[:3] + ' ' + sysconfig.get_config_var('LIBS') + ' ' + sysconfig.get_config_var('SYSLIBS'))") ++INCLUDE_PERL=$(shell perl -MConfig -e 'print "-I", $$Config{archlibexp}, "/CORE";') ++PERL_LIB=$(shell perl -MConfig -e 'print "-L", $$Config{archlibexp}, "/CORE -lperl ", $$Config{perllibs};') SWIG_LOCATION = SwigLocation -+PERL_LIB=-L$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";') -lperl $(shell perl -MConfig -e 'print $$Config{perllibs};') SWIG = SWIG_LIB=SwigLib $(SWIG_LOCATION)/bin/swig #endif @@ -331,7 +341,7 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc COMM######################### RULES ############################## -@@ -366,9 +367,9 @@ +@@ -368,9 +367,9 @@ NormalProgramTarget(lfc-chown,nschown.Osuf,LibraryTargetName(ns) $(DEPLIB),$(NSLIB) $(LIBS)) #if UseOracle && !defined(_WIN32) lfcdaemon: $(NSDAEMON_OBJS) $(DEPLIB) @@ -343,7 +353,7 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc #endif NormalProgramTarget(lfc-delcomment,nsdelcomment.Osuf,LibraryTargetName(ns) $(DEPLIB),$(NSLIB) $(LIBS)) NormalProgramTarget(lfc-entergrpmap,nsentergrpmap.Osuf,LibraryTargetName(ns) $(DEPLIB),$(NSLIB) $(LIBS)) -@@ -466,14 +467,14 @@ +@@ -470,14 +469,14 @@ RemoveFiles(lfc_perlwrap.o lfc_perlwrap.c) $(SWIG) -perl -I$(INCLUDES) -DNSTYPE_LFC -o lfc_perlwrap.c lfc.i $(CC) -c $(MTCCFLAGS) -I$(INCLUDES) -DNSTYPE_LFC $(INCLUDE_PERL) -Dbool=char -D_GNU_SOURCE lfc_perlwrap.c @@ -360,7 +370,7 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc InstallTarget(lfc.so,root,root,0755,$(PERLDIR)) InstallTarget(lfc.pm,root,root,0644,$(PERLDIR)) -@@ -485,7 +486,7 @@ +@@ -489,7 +488,7 @@ RemoveFiles(lfc2_wrap.o lfc2_wrap.c) $(SWIG) -python -I$(INCLUDES) -DNSTYPE_LFC lfc2.i $(CC) -c $(MTCCFLAGS) -I$(INCLUDES) -DNSTYPE_LFC $(INCLUDE_PYTHON) lfc2_wrap.c @@ -369,7 +379,7 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc InstallTarget(_lfc2.so,root,root,0755,$(PYTHONDIR)) InstallTarget(lfc2.py,root,root,0644,$(PYTHONDIR)) -@@ -495,7 +496,7 @@ +@@ -499,7 +498,7 @@ RemoveFiles(lfcthr_wrap.o lfcthr_wrap.c) $(SWIG) -python -I$(INCLUDES) -DNSTYPE_LFC lfcthr.i $(CC) -c $(MTCCFLAGS) -I$(INCLUDES) -DNSTYPE_LFC $(INCLUDE_PYTHON) lfcthr_wrap.c @@ -378,7 +388,7 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc InstallTarget(_lfcthr.so,root,root,0755,$(PYTHONDIR)) InstallTarget(lfcthr.py,root,root,0644,$(PYTHONDIR)) -@@ -505,7 +506,7 @@ +@@ -509,7 +508,7 @@ RemoveFiles(lfc2thr_wrap.o lfc2thr_wrap.c) $(SWIG) -python -I$(INCLUDES) -DNSTYPE_LFC lfc2thr.i $(CC) -c $(MTCCFLAGS) -I$(INCLUDES) -DNSTYPE_LFC $(INCLUDE_PYTHON) lfc2thr_wrap.c @@ -387,9 +397,9 @@ diff -ur lcgdm-1.7.4.4.orig/ns/Imakefile.lfc lcgdm-1.7.4.4/ns/Imakefile.lfc InstallTarget(_lfc2thr.so,root,root,0755,$(PYTHONDIR)) InstallTarget(lfc2thr.py,root,root,0644,$(PYTHONDIR)) -diff -ur lcgdm-1.7.4.4.orig/rfio/Imakefile lcgdm-1.7.4.4/rfio/Imakefile ---- lcgdm-1.7.4.4.orig/rfio/Imakefile 2010-03-30 07:04:16.000000000 +0200 -+++ lcgdm-1.7.4.4/rfio/Imakefile 2010-04-03 13:05:06.320544757 +0200 +diff -ur lcgdm-1.7.4.7.orig/rfio/Imakefile lcgdm-1.7.4.7/rfio/Imakefile +--- lcgdm-1.7.4.7.orig/rfio/Imakefile 2010-06-06 13:49:33.000000000 +0200 ++++ lcgdm-1.7.4.7/rfio/Imakefile 2010-06-25 18:36:34.769805876 +0200 @@ -94,24 +94,24 @@ #endif FFLAGS = $(FFOPTFLAGS) $(FPPUFL) @@ -430,9 +440,9 @@ diff -ur lcgdm-1.7.4.4.orig/rfio/Imakefile lcgdm-1.7.4.4/rfio/Imakefile #endif LIBS = $(OPTLIBS) -diff -ur lcgdm-1.7.4.4.orig/security/Imakefile lcgdm-1.7.4.4/security/Imakefile ---- lcgdm-1.7.4.4.orig/security/Imakefile 2010-04-03 11:36:00.644794634 +0200 -+++ lcgdm-1.7.4.4/security/Imakefile 2010-04-03 11:36:19.963544573 +0200 +diff -ur lcgdm-1.7.4.7.orig/security/Imakefile lcgdm-1.7.4.7/security/Imakefile +--- lcgdm-1.7.4.7.orig/security/Imakefile 2010-06-25 18:35:08.686803720 +0200 ++++ lcgdm-1.7.4.7/security/Imakefile 2010-06-25 18:36:34.770803557 +0200 @@ -49,9 +49,9 @@ #define GSIMech GSI #define SecAuthMechGSI -DGSI @@ -445,9 +455,9 @@ diff -ur lcgdm-1.7.4.4.orig/security/Imakefile lcgdm-1.7.4.4/security/Imakefile #else #define GSIMech #endif -diff -ur lcgdm-1.7.4.4.orig/shlib/Imakefile lcgdm-1.7.4.4/shlib/Imakefile ---- lcgdm-1.7.4.4.orig/shlib/Imakefile 2010-04-03 11:36:00.644794634 +0200 -+++ lcgdm-1.7.4.4/shlib/Imakefile 2010-04-03 11:36:19.964543441 +0200 +diff -ur lcgdm-1.7.4.7.orig/shlib/Imakefile lcgdm-1.7.4.7/shlib/Imakefile +--- lcgdm-1.7.4.7.orig/shlib/Imakefile 2010-06-25 18:35:08.686803720 +0200 ++++ lcgdm-1.7.4.7/shlib/Imakefile 2010-06-25 18:36:34.770803557 +0200 @@ -35,7 +35,6 @@ install: $(LIB) FileName($(LIB),SharedLibraryTargetName(dpm)) @@ -474,9 +484,9 @@ diff -ur lcgdm-1.7.4.4.orig/shlib/Imakefile lcgdm-1.7.4.4/shlib/Imakefile @-rm $@.`echo $(VERSION)|cut -f1 -d.` @-ln -s $@ $@.`echo $(VERSION)|cut -f1 -d.` @-rm -rf tmp -diff -ur lcgdm-1.7.4.4.orig/srmv1/Imakefile lcgdm-1.7.4.4/srmv1/Imakefile ---- lcgdm-1.7.4.4.orig/srmv1/Imakefile 2010-03-30 07:04:18.000000000 +0200 -+++ lcgdm-1.7.4.4/srmv1/Imakefile 2010-04-03 13:06:57.023545111 +0200 +diff -ur lcgdm-1.7.4.7.orig/srmv1/Imakefile lcgdm-1.7.4.7/srmv1/Imakefile +--- lcgdm-1.7.4.7.orig/srmv1/Imakefile 2010-06-06 13:49:41.000000000 +0200 ++++ lcgdm-1.7.4.7/srmv1/Imakefile 2010-06-25 18:36:34.770803557 +0200 @@ -41,9 +41,9 @@ SOAPFLG = -DWITH_IPV6 INCLUDES = FileName(..,h) @@ -507,9 +517,9 @@ diff -ur lcgdm-1.7.4.4.orig/srmv1/Imakefile lcgdm-1.7.4.4/srmv1/Imakefile COMM######################### RULES ############################## -diff -ur lcgdm-1.7.4.4.orig/srmv2/Imakefile lcgdm-1.7.4.4/srmv2/Imakefile ---- lcgdm-1.7.4.4.orig/srmv2/Imakefile 2010-03-30 07:04:18.000000000 +0200 -+++ lcgdm-1.7.4.4/srmv2/Imakefile 2010-04-03 13:07:20.482545044 +0200 +diff -ur lcgdm-1.7.4.7.orig/srmv2/Imakefile lcgdm-1.7.4.7/srmv2/Imakefile +--- lcgdm-1.7.4.7.orig/srmv2/Imakefile 2010-06-06 13:49:41.000000000 +0200 ++++ lcgdm-1.7.4.7/srmv2/Imakefile 2010-06-25 18:36:34.771803334 +0200 @@ -41,9 +41,9 @@ SOAPFLG = -DWITH_IPV6 INCLUDES = FileName(..,h) @@ -540,9 +550,9 @@ diff -ur lcgdm-1.7.4.4.orig/srmv2/Imakefile lcgdm-1.7.4.4/srmv2/Imakefile COMM######################### RULES ############################## -diff -ur lcgdm-1.7.4.4.orig/srmv2.2/Imakefile lcgdm-1.7.4.4/srmv2.2/Imakefile ---- lcgdm-1.7.4.4.orig/srmv2.2/Imakefile 2010-03-30 07:04:16.000000000 +0200 -+++ lcgdm-1.7.4.4/srmv2.2/Imakefile 2010-04-03 13:07:34.992543914 +0200 +diff -ur lcgdm-1.7.4.7.orig/srmv2.2/Imakefile lcgdm-1.7.4.7/srmv2.2/Imakefile +--- lcgdm-1.7.4.7.orig/srmv2.2/Imakefile 2010-06-06 13:49:34.000000000 +0200 ++++ lcgdm-1.7.4.7/srmv2.2/Imakefile 2010-06-25 18:36:34.771803334 +0200 @@ -42,9 +42,9 @@ INCLUDES = FileName(..,h) BACKEND_LIBS = DepLibraryTargetName(dpmcopy,dpmcopy) diff --git a/lcgdm.spec b/lcgdm.spec index 2cdc99c..77ef9c3 100644 --- a/lcgdm.spec +++ b/lcgdm.spec @@ -1,9 +1,25 @@ %{!?perl_vendorarch: %global perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)} -%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")} + +%if %{?rhel}%{!?rhel:0} == 5 +%global altpython python26 +%global __altpython %{_bindir}/python2.6 +# Disable the default python byte compilation +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%endif + +%if %{?fedora}%{!?fedora:0} >= 13 +%global altpython python3 +%global __altpython %{_bindir}/python3 +%endif + +%if %{?altpython:1}%{!?altpython:0} +%global altpython_sitearch %(%{__altpython} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))") +%endif Name: lcgdm Version: 1.7.4.7 -Release: 1%{?dist} +Release: 2%{?dist} Summary: LHC Computing Grid Data Management Group: System Environment/Libraries @@ -39,12 +55,18 @@ Patch5: %{name}-porting.patch # Remove bashisms in init scripts: # https://savannah.cern.ch/bugs/?68430 Patch6: %{name}-bashisms.patch +# Fix race conditions in Makefile install rules: +# https://savannah.cern.ch/bugs/?69233 +Patch7: %{name}-race.patch +# Remove deprecated python function: +# https://savannah.cern.ch/bugs/?69232 +Patch8: %{name}-python-exception.patch # Adapt upstream's hardcoded include and library paths for Fedora -Patch7: %{name}-usr.patch +Patch9: %{name}-usr.patch # Allow moving plugins out of default library search path -Patch8: %{name}-dlopen.patch +Patch10: %{name}-dlopen.patch # Use Fedora's imake instead of bundled version -Patch9: %{name}-imake.patch +Patch11: %{name}-imake.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %if %{?fedora}%{!?fedora:0} >= 5 || %{?rhel}%{!?rhel:0} >= 5 @@ -80,6 +102,9 @@ BuildRequires: perl-devel%{?_isa} BuildRequires: perl %endif BuildRequires: python-devel%{?_isa} +%if %{?altpython:1}%{!?altpython:0} +BuildRequires: %{altpython}-devel%{?_isa} +%endif %description The lcgdm package contains common libraries for the LCG Data Management @@ -146,6 +171,21 @@ The LCG File Catalog (LFC) keeps track of the locations of the physical replicas of the logical files in a distributed storage system. This package provides Python bindings for the LFC client library. +%if %{?altpython:1}%{!?altpython:0} +%package -n lfc-%{altpython} +Summary: LCG File Catalog (LFC) python bindings +Group: Applications/Internet +Requires: lfc%{?_isa} = %{version}-%{release} +%if %{?rhel}%{!?rhel:0} == 5 +Requires: python(abi) = 2.6 +%endif + +%description -n lfc-%{altpython} +The LCG File Catalog (LFC) keeps track of the locations of the physical +replicas of the logical files in a distributed storage system. +This package provides Python bindings for the LFC client library. +%endif + %package -n lfc-mysql Summary: LCG File Catalog (LFC) server with MySQL database backend Group: Applications/Internet @@ -255,6 +295,22 @@ of disks. It provides several interfaces for storing and retrieving data such as RFIO and SRM version 1, version 2 and version 2.2. This package provides Python bindings for the DPM client library. +%if %{?altpython:1}%{!?altpython:0} +%package -n dpm-%{altpython} +Summary: Disk Pool Manager (DPM) python bindings +Group: Applications/Internet +Requires: dpm%{?_isa} = %{version}-%{release} +%if %{?rhel}%{!?rhel:0} == 5 +Requires: python(abi) = 2.6 +%endif + +%description -n dpm-%{altpython} +The LCG Disk Pool Manager (DPM) creates a storage element from a set +of disks. It provides several interfaces for storing and retrieving +data such as RFIO and SRM version 1, version 2 and version 2.2. +This package provides Python bindings for the DPM client library. +%endif + %package -n dpm-mysql Summary: Disk Pool Manager (DPM) server with MySQL database backend Group: Applications/Internet @@ -488,6 +544,7 @@ This package provides a DPM SRM version 2.2 server that uses postgres as its database backend. %prep +%setup -T -q -c %setup -q -c -n %{name}-%{version}/lfc-mysql %setup -q -c -n %{name}-%{version}/lfc-postgres %setup -q -c -n %{name}-%{version}/dpm-mysql @@ -508,11 +565,13 @@ pushd $d/%{name}-%{version} %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 +%patch11 -p1 chmod 644 security/globus_gsi_gss_constants.h \ security/globus_i_gsi_credential.h \ security/gssapi_openssl.h -chmod 644 doc/lfc/INSTALL-* +#chmod 644 doc/lfc/INSTALL-* sed 's!@@LIBDIR@@!%{_libdir}!' -i security/Csec_api_loader.c @@ -642,6 +701,49 @@ make %{?_smp_mflags} prefix=%{_prefix} popd +%if %{?altpython:1}%{!?altpython:0} +mkdir %{altpython} +pushd %{altpython} + +INCLUDE_PYTHON=`%{__altpython} \ + -c "from distutils import sysconfig; \ + import sys; \ + sys.stdout.write('-I' + sysconfig.get_python_inc(0))"` +PYTHON_LIB=`%{__altpython} \ + -c "from distutils import sysconfig; \ + import sys; \ + sys.stdout.write('-L' + sysconfig.get_config_var('LIBDEST') + \ + '/config -lpython' + sys.version[:3] + ' ' + \ + sysconfig.get_config_var('LIBS') + ' ' + \ + sysconfig.get_config_var('SYSLIBS'))"` + +for module in lfc lfcthr lfc2 lfc2thr ; do + +gcc %{optflags} -fno-strict-aliasing -fPIC -D_LARGEFILE64_SOURCE -Dlinux \ + -c -pthread -DCTHREAD_LINUX -D_THREAD_SAFE -D_REENTRANT \ + -I../lfc-mysql/%{name}-%{version}/h -DNSTYPE_LFC \ + ${INCLUDE_PYTHON} ../lfc-mysql/%{name}-%{version}/ns/${module}_wrap.c +gcc %{optflags} -fno-strict-aliasing -fPIC -D_LARGEFILE64_SOURCE -Dlinux \ + -shared -o _${module}.so ${module}_wrap.o ${PYTHON_LIB} \ + -L../lfc-mysql/%{name}-%{version}/shlib -llfc -llcgdm + +done + +for module in dpm dpm2 ; do + +gcc %{optflags} -fno-strict-aliasing -fPIC -D_LARGEFILE64_SOURCE -Dlinux \ + -c -pthread -DCTHREAD_LINUX -D_THREAD_SAFE -D_REENTRANT \ + -I../dpm-mysql/%{name}-%{version}/h -DNSTYPE_DPNS \ + ${INCLUDE_PYTHON} ../dpm-mysql/%{name}-%{version}/dpm/${module}_wrap.c +gcc %{optflags} -fno-strict-aliasing -fPIC -D_LARGEFILE64_SOURCE -Dlinux \ + -shared -o _${module}.so ${module}_wrap.o ${PYTHON_LIB} \ + -L../dpm-mysql/%{name}-%{version}/shlib -ldpm -llcgdm + +done + +popd +%endif + %install rm -rf ${RPM_BUILD_ROOT} @@ -1334,11 +1436,21 @@ sed -e 's/\(chkconfig: \)\w*/\1-/' \ popd -%if %{?fedora}%{!?fedora:0} >= 5 || %{?rhel}%{!?rhel:0} >= 5 -# Byte compilation handled by rpm by default -%else -%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT"'", 10, "/", 1)' > /dev/null -%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT"'", 10, "/", 1)' > /dev/null +%if %{?altpython:1}%{!?altpython:0} +mkdir -p ${RPM_BUILD_ROOT}%{altpython_sitearch} +install -m 644 lfc-mysql/%{name}-%{version}/ns/*.py \ + dpm-mysql/%{name}-%{version}/dpm/*.py \ + ${RPM_BUILD_ROOT}%{altpython_sitearch} +install %{altpython}/*.so ${RPM_BUILD_ROOT}%{altpython_sitearch} +%endif + +%if %{?fedora}%{!?fedora:0} < 5 && %{?rhel}%{!?rhel:0} < 6 +%{__python} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT"'", 10, "%{python_sitearch}", 1)' > /dev/null +%{__python} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT"'", 10, "%{python_sitearch}", 1)' > /dev/null +%if %{?altpython:1}%{!?altpython:0} +%{__altpython} -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{altpython_sitearch}"'", 10, "%{altpython_sitearch}", 1)' > /dev/null +%{__altpython} -O -c 'import compileall; compileall.compile_dir("'"$RPM_BUILD_ROOT%{altpython_sitearch}"'", 10, "%{altpython_sitearch}", 1)' > /dev/null +%endif %endif %clean @@ -1944,6 +2056,19 @@ fi %doc %{_mandir}/man3/lfc_python.3* %doc %{_mandir}/man3/lfc2_python.3* +%if %{?altpython:1}%{!?altpython:0} +%files -n lfc-%{altpython} +%defattr(-,root,root,-) +%{altpython_sitearch}/_lfc.so +%{altpython_sitearch}/lfc.py* +%{altpython_sitearch}/_lfcthr.so +%{altpython_sitearch}/lfcthr.py* +%{altpython_sitearch}/_lfc2.so +%{altpython_sitearch}/lfc2.py* +%{altpython_sitearch}/_lfc2thr.so +%{altpython_sitearch}/lfc2thr.py* +%endif + %files -n lfc-mysql %defattr(-,root,root,-) %dir %{_libdir}/lfc-mysql @@ -2052,6 +2177,15 @@ fi %doc %{_mandir}/man3/dpm_python.3* %doc %{_mandir}/man3/dpm2_python.3* +%if %{?altpython:1}%{!?altpython:0} +%files -n dpm-%{altpython} +%defattr(-,root,root,-) +%{altpython_sitearch}/_dpm.so +%{altpython_sitearch}/dpm.py* +%{altpython_sitearch}/_dpm2.so +%{altpython_sitearch}/dpm2.py* +%endif + %files -n dpm-mysql %defattr(-,root,root,-) %dir %{_libdir}/dpm-mysql @@ -2262,6 +2396,10 @@ fi %attr(-,dpmmgr,dpmmgr) %{_localstatedir}/log/dpm-srmv2.2 %changelog +* Sun Jun 27 2010 Mattias Ellert - 1.7.4.7-2 +- Fix race conditions during make install +- Build python modules for alternative python versions + * Sun Jun 06 2010 Mattias Ellert - 1.7.4.7-1 - Update to version 1.7.4.7 - This version works with gsoap versions > 2.7.15