* gnu/packages/bioinformatics.scm (crossmap): New variable. * gnu/packages/patches/crossmap-allow-system-pysam.patch: New file. * gnu-system.am (dist_patch_DATA): Add it.
		
			
				
	
	
		
			121 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
This patch modifies the build process such that the bundled copy of pysam does
 | 
						|
not need to be built if CROSSMAP_USE_SYSTEM_PYSAM is set and the pysam module
 | 
						|
can be imported.
 | 
						|
 | 
						|
Upstream has agreed to apply the patch in the next maintenance release of
 | 
						|
crossmap.  The patch has already been uploaded to
 | 
						|
http://sourceforge.net/projects/crossmap/files/patch/.
 | 
						|
 | 
						|
diff --git a/setup.py b/setup.py
 | 
						|
--- a/setup.py	2015-02-26 15:28:49.771189185 +0100
 | 
						|
+++ b/setup.py	2015-02-26 15:55:03.440327752 +0100
 | 
						|
@@ -19,6 +19,15 @@
 | 
						|
 except:
 | 
						|
 	have_numpy = False
 | 
						|
 
 | 
						|
+try:
 | 
						|
+	import pysam
 | 
						|
+	if os.environ['CROSSMAP_USE_SYSTEM_PYSAM']:
 | 
						|
+		have_pysam = True
 | 
						|
+	else:
 | 
						|
+		have_pysam = False
 | 
						|
+except ImportError:
 | 
						|
+	have_pysam = False
 | 
						|
+
 | 
						|
 if platform.system()=='Windows':
 | 
						|
 	print >> sys.stderr, "Sorry, Windows platform is not supported!"
 | 
						|
 	sys.exit()
 | 
						|
@@ -165,49 +174,50 @@
 | 
						|
 	
 | 
						|
 	
 | 
						|
 	#================= pysam samtools ====================
 | 
						|
-	extensions.append(Extension(
 | 
						|
-    	"pysam.csamtools",              
 | 
						|
-		csamtools_sources + [ "lib/pysam/%s" % x for x in ("pysam_util.c", )] +\
 | 
						|
-		glob.glob( os.path.join( "lib/samtools", "*.pysam.c" )) +\
 | 
						|
-		os_c_files + \
 | 
						|
-		glob.glob( os.path.join( "lib/samtools", "*", "*.pysam.c" ) ),
 | 
						|
-		library_dirs=[],
 | 
						|
-		include_dirs=[ "lib/samtools", "lib/pysam" ] + include_os,
 | 
						|
-		libraries=[ "z", ],
 | 
						|
-		language="c",
 | 
						|
-		define_macros = [('_FILE_OFFSET_BITS','64'),('_USE_KNETFILE','')], 
 | 
						|
-    ))
 | 
						|
-
 | 
						|
-	extensions.append(Extension(
 | 
						|
-		"pysam.ctabix",                   
 | 
						|
-		tabix_sources + [ "lib/pysam/%s" % x for x in ( "tabix_util.c", )] +\
 | 
						|
-		os_c_files + \
 | 
						|
-		glob.glob( os.path.join( "lib/tabix", "*.pysam.c" ) ),
 | 
						|
-		library_dirs=[],
 | 
						|
-		include_dirs=[ "lib/tabix", "lib/pysam" ] + include_os,
 | 
						|
-		libraries=[ "z", ],
 | 
						|
-		language="c",
 | 
						|
-		define_macros = [('_FILE_OFFSET_BITS','64'),
 | 
						|
-                     ('_USE_KNETFILE','')], 
 | 
						|
-    ))
 | 
						|
-
 | 
						|
-	extensions.append(Extension(
 | 
						|
-		"pysam.TabProxies",               
 | 
						|
-		tabproxies_sources + os_c_files,
 | 
						|
-		library_dirs=[],
 | 
						|
-		include_dirs= include_os,
 | 
						|
-		libraries=[ "z", ],
 | 
						|
-		language="c",
 | 
						|
-    ))
 | 
						|
-
 | 
						|
-	extensions.append(Extension(
 | 
						|
-		"pysam.cvcf",                   
 | 
						|
-		cvcf_sources + os_c_files,
 | 
						|
-		library_dirs=[],
 | 
						|
-		include_dirs= ["lib/tabix",] + include_os,
 | 
						|
-		libraries=[ "z", ],
 | 
						|
-		language="c",
 | 
						|
-    ))
 | 
						|
+        if not have_pysam:
 | 
						|
+                extensions.append(Extension(
 | 
						|
+                        "pysam.csamtools",              
 | 
						|
+                        csamtools_sources + [ "lib/pysam/%s" % x for x in ("pysam_util.c", )] +\
 | 
						|
+                        glob.glob( os.path.join( "lib/samtools", "*.pysam.c" )) +\
 | 
						|
+                        os_c_files + \
 | 
						|
+                        glob.glob( os.path.join( "lib/samtools", "*", "*.pysam.c" ) ),
 | 
						|
+                        library_dirs=[],
 | 
						|
+                        include_dirs=[ "lib/samtools", "lib/pysam" ] + include_os,
 | 
						|
+                        libraries=[ "z", ],
 | 
						|
+                        language="c",
 | 
						|
+                        define_macros = [('_FILE_OFFSET_BITS','64'),('_USE_KNETFILE','')], 
 | 
						|
+                ))
 | 
						|
+
 | 
						|
+                extensions.append(Extension(
 | 
						|
+                        "pysam.ctabix",                   
 | 
						|
+                        tabix_sources + [ "lib/pysam/%s" % x for x in ( "tabix_util.c", )] +\
 | 
						|
+                        os_c_files + \
 | 
						|
+                        glob.glob( os.path.join( "lib/tabix", "*.pysam.c" ) ),
 | 
						|
+                        library_dirs=[],
 | 
						|
+                        include_dirs=[ "lib/tabix", "lib/pysam" ] + include_os,
 | 
						|
+                        libraries=[ "z", ],
 | 
						|
+                        language="c",
 | 
						|
+                        define_macros = [('_FILE_OFFSET_BITS','64'),
 | 
						|
+                                         ('_USE_KNETFILE','')], 
 | 
						|
+                ))
 | 
						|
+
 | 
						|
+                extensions.append(Extension(
 | 
						|
+                        "pysam.TabProxies",               
 | 
						|
+                        tabproxies_sources + os_c_files,
 | 
						|
+                        library_dirs=[],
 | 
						|
+                        include_dirs= include_os,
 | 
						|
+                        libraries=[ "z", ],
 | 
						|
+                        language="c",
 | 
						|
+                ))
 | 
						|
+
 | 
						|
+                extensions.append(Extension(
 | 
						|
+                        "pysam.cvcf",                   
 | 
						|
+                        cvcf_sources + os_c_files,
 | 
						|
+                        library_dirs=[],
 | 
						|
+                        include_dirs= ["lib/tabix",] + include_os,
 | 
						|
+                        libraries=[ "z", ],
 | 
						|
+                        language="c",
 | 
						|
+                ))
 | 
						|
 
 | 
						|
 
 | 
						|
 	return extensions     
 |