* 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     
 |