~ruther/guix-local

ref: bef02e9e1c405cd28c42cf7fec3385bfb3e2bb21 guix-local/gnu/packages/patches/crossmap-allow-system-pysam.patch -rw-r--r-- 4.4 KiB
bef02e9e — Leo Famulari gnu: python-dulwich: Update to 0.18.6 [fixes CVE-2017-16228]. 8 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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