commit:     ecb0dc0854f860d87e7ebd237d3c83ef8f815444
Author:     Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 30 13:48:47 2014 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Thu Oct 30 13:48:47 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=ecb0dc08

sci-chemistry/pymol: Make it really multi py ABI ready; use internal apbs plugin

Package-Manager: portage-2.2.14

---
 sci-chemistry/pymol/ChangeLog                    |   4 +
 sci-chemistry/pymol/files/pymol-9999-tk8.6.patch | 163 +++++++++++++++++++++++
 sci-chemistry/pymol/pymol-9999.ebuild            |  21 ++-
 3 files changed, 183 insertions(+), 5 deletions(-)

diff --git a/sci-chemistry/pymol/ChangeLog b/sci-chemistry/pymol/ChangeLog
index 67954f0..15af521 100644
--- a/sci-chemistry/pymol/ChangeLog
+++ b/sci-chemistry/pymol/ChangeLog
@@ -2,6 +2,10 @@
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  30 Oct 2014; Justin Lecher <[email protected]> pymol-9999.ebuild,
+  +files/pymol-9999-tk8.6.patch:
+  Make it really multi py ABI ready; use internal apbs plugin
+
   27 Oct 2014; Justin Lecher <[email protected]> pymol-9999.ebuild:
   Add missing PYTHON_USEDEP
 

diff --git a/sci-chemistry/pymol/files/pymol-9999-tk8.6.patch 
b/sci-chemistry/pymol/files/pymol-9999-tk8.6.patch
new file mode 100644
index 0000000..c4fa209
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-9999-tk8.6.patch
@@ -0,0 +1,163 @@
+ pymol/modules/pmg_tk/startup/apbs_tools.py | 36 +++++++++++++++---------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/pymol/modules/pmg_tk/startup/apbs_tools.py 
b/pymol/modules/pmg_tk/startup/apbs_tools.py
+index 9b76070..ad82df3 100644
+--- a/pymol/modules/pmg_tk/startup/apbs_tools.py
++++ b/pymol/modules/pmg_tk/startup/apbs_tools.py
+@@ -612,7 +612,7 @@ class APBSTools2:
+         # Set up the Main page
+         page = self.notebook.add('Main')
+         group = Pmw.Group(page,tag_text='Main options')
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+         self.selection = Pmw.EntryField(group.interior(),
+                                         labelpos='w',
+                                         label_text='Selection to use: ',
+@@ -658,7 +658,7 @@ class APBSTools2:
+         page = self.notebook.add('Configuration')
+ 
+         group = Pmw.Group(page,tag_text='Dielectric Constants')
+-        group.pack(fill = 'both', expand = 1, padx = 4, pady = 5)
++        group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+         group.grid(column=0, row=0)
+         self.interior_dielectric = 
Pmw.EntryField(group.interior(),labelpos='w',
+                                    label_text = 'Protein Dielectric:',
+@@ -677,7 +677,7 @@ class APBSTools2:
+             #entry.pack(side='left',fill='both',expand=1,padx=4) # 
side-by-side
+             entry.pack(fill='x',expand=1,padx=4,pady=1) # vertical
+         group = Pmw.Group(page,tag_text='Other')
+-        group.pack(fill='both',expand=1, padx=4, pady=5)
++        group.grid(padx=4, pady=5, sticky=(N, S, E, W))
+         group.grid(column=1, row=1,columnspan=4)
+         self.max_mem_allowed = Pmw.EntryField(group.interior(),labelpos='w',
+                                               label_text = 'Maximum Memory 
Allowed (MB):',
+@@ -735,7 +735,7 @@ class APBSTools2:
+ 
+ 
+         group = Pmw.Group(page,tag_text='Ions')
+-        group.pack(fill='both',expand=1, padx=4, pady=5)
++        group.grid(padx=4, pady=5, sticky=(N, S, E, W))
+         group.grid(column=0, row=1, )
+         self.ion_plus_one_conc = Pmw.EntryField(group.interior(),
+                                                 labelpos='w',
+@@ -794,7 +794,7 @@ class APBSTools2:
+             entry.pack(fill='x',expand=1,padx=4)
+ 
+         group = Pmw.Group(page,tag_text = 'Coarse Mesh Length')
+-        group.pack(fill = 'both', expand = 1, padx = 4, pady = 5)
++        group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+         group.grid(column = 1, row = 0)
+         for coord in 'x y z'.split():
+             
setattr(self,'grid_coarse_%s'%coord,Pmw.EntryField(group.interior(),
+@@ -809,7 +809,7 @@ class APBSTools2:
+ 
+ 
+         group = Pmw.Group(page,tag_text = 'Fine Mesh Length')
+-        group.pack(fill = 'both', expand = 1, padx = 4, pady = 5)
++        group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+         group.grid(column = 2, row = 0)
+         for coord in 'x y z'.split():
+             setattr(self,'grid_fine_%s'%coord,Pmw.EntryField(group.interior(),
+@@ -824,7 +824,7 @@ class APBSTools2:
+ 
+ 
+         group = Pmw.Group(page,tag_text = 'Grid Center')
+-        group.pack(fill = 'both', expand = 1, padx = 4, pady = 5)
++        group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+         group.grid(column = 3, row = 0)
+         for coord in 'x y z'.split():
+             
setattr(self,'grid_center_%s'%coord,Pmw.EntryField(group.interior(),
+@@ -838,7 +838,7 @@ class APBSTools2:
+             getattr(self,'grid_center_%s'%coord).pack(fill='x', expand=1, 
padx=4, pady=1)
+ 
+         group = Pmw.Group(page,tag_text = 'Grid Points')
+-        group.pack(fill = 'both', expand = 1, padx = 4, pady = 5)
++        group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+         group.grid(column = 4, row = 0)
+         for coord in 'x y z'.split():
+             
setattr(self,'grid_points_%s'%coord,Pmw.EntryField(group.interior(),
+@@ -856,7 +856,7 @@ class APBSTools2:
+         page.grid_columnconfigure(5,weight=1)
+         page = self.notebook.add('Program Locations')
+         group = Pmw.Group(page,tag_text='Locations')
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+         def quickFileValidation(s):
+             if s == '': return Pmw.PARTIAL
+             elif os.path.isfile(s): return Pmw.OK
+@@ -955,7 +955,7 @@ protein residues and AMBER charges.  If wish that 
behavior, simply delete the "p
+         
+         page = self.notebook.add('Temp File Locations')
+         group = Pmw.Group(page,tag_text='Locations')
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+         self.pymol_generated_pqr_filename = Pmw.EntryField(group.interior(),
+                                                            labelpos = 'w',
+                                                            label_pyclass = 
FileDialogButtonClassFactory.get(self.setPymolGeneratedPqrFilename),
+@@ -1003,17 +1003,17 @@ by setting the environment variable TEMP.
+         page = self.notebook.add('Visualization (1)')
+         group = 
VisualizationGroup(page,tag_text='Visualization',visgroup_num=1)
+         self.visualization_group_1 = group
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+ 
+         page = self.notebook.add('Visualization (2)')
+         group = 
VisualizationGroup(page,tag_text='Visualization',visgroup_num=2)
+         self.visualization_group_2 = group
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+ 
+         # Create a couple of other empty pages
+         page = self.notebook.add('About')
+         group = Pmw.Group(page, tag_text='About PyMOL APBS Tools')
+-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 5)
++        group.grid(padx = 10, pady = 5, sticky=(N, S, E, W))
+         text = """This plugin integrates PyMOL (http://PyMOL.org/) with APBS 
(http://www.poissonboltzmann.org/apbs/).
+ 
+ Documentation may be found at
+@@ -2271,7 +2271,7 @@ class VisualizationGroup(Pmw.Group):
+             self.update_buttonbox = Pmw.ButtonBox(self.mm_group.interior(), 
padx=0)
+             self.update_buttonbox.pack(side=LEFT)
+             self.update_buttonbox.add('Update',command=self.refresh)
+-            self.mm_group.pack(fill = 'both', expand = 1, padx = 4, pady = 5, 
side=TOP)
++            self.mm_group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+ 
+             self.ms_group = Pmw.Group(self.interior(),tag_text='Molecular 
Surface')
+             self.ms_buttonbox = Pmw.ButtonBox(self.ms_group.interior(), 
padx=0)
+@@ -2322,7 +2322,7 @@ class VisualizationGroup(Pmw.Group):
+             bars = (self.mol_surf_low,self.mol_surf_middle,self.mol_surf_high)
+             Pmw.alignlabels(bars)
+             for bar in bars: bar.pack(side=LEFT)
+-            self.ms_group.pack(fill = 'both', expand = 1, padx = 4, pady = 5, 
side=LEFT)
++            self.ms_group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+ 
+             self.fl_group = Pmw.Group(self.interior(),tag_text='Field Lines')
+             self.fl_buttonbox = Pmw.ButtonBox(self.fl_group.interior(), 
padx=0)
+@@ -2337,7 +2337,7 @@ class VisualizationGroup(Pmw.Group):
+                                   text = """Follows same coloring as 
surface.""",
+                                   )
+             label.pack()
+-            self.fl_group.pack(fill = 'both', expand = 1, padx = 4, pady = 5, 
side=TOP)
++            self.fl_group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+ 
+             self.pi_group = Pmw.Group(self.interior(),tag_text='Positive 
Isosurface')
+             self.pi_buttonbox = Pmw.ButtonBox(self.pi_group.interior(), 
padx=0)
+@@ -2356,7 +2356,7 @@ class VisualizationGroup(Pmw.Group):
+                                             entryfield_validate = 
{'validator' : 'real', 'min':0}
+                                             )
+             self.pos_surf_val.pack(side=LEFT)
+-            self.pi_group.pack(fill = 'both', expand = 1, padx = 4, pady = 5, 
side=LEFT)
++            self.pi_group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+ 
+             self.ni_group = Pmw.Group(self.interior(),tag_text='Negative 
Isosurface')
+             self.ni_buttonbox = Pmw.ButtonBox(self.ni_group.interior(), 
padx=0)
+@@ -2375,7 +2375,7 @@ class VisualizationGroup(Pmw.Group):
+                                             entryfield_validate = 
{'validator' : 'real', 'max':0}
+                                             )
+             self.neg_surf_val.pack(side=LEFT)
+-            self.ni_group.pack(fill = 'both', expand = 1, padx = 4, pady = 5, 
side=LEFT)
++            self.ni_group.grid(padx = 4, pady = 5, sticky=(N, S, E, W))
+ 
+ 
+ 

diff --git a/sci-chemistry/pymol/pymol-9999.ebuild 
b/sci-chemistry/pymol/pymol-9999.ebuild
index cd57153..957afd0 100644
--- a/sci-chemistry/pymol/pymol-9999.ebuild
+++ b/sci-chemistry/pymol/pymol-9999.ebuild
@@ -32,11 +32,13 @@ DEPEND="
        apbs? (
                sci-chemistry/apbs[${PYTHON_USEDEP}]
                sci-chemistry/pdb2pqr[${PYTHON_USEDEP}]
-               sci-chemistry/pymol-apbs-plugin[${PYTHON_USEDEP}]
+               !sci-chemistry/pymol-apbs-plugin[${PYTHON_USEDEP}]
        )
        web? ( !dev-python/webpy[${PYTHON_USEDEP}] )"
 RDEPEND="${DEPEND}"
 
+PATCHES=( "${FILESDIR}"/${P}-tk8.6.patch )
+
 src_unpack() {
        unpack ${A}
        subversion_src_unpack
@@ -49,8 +51,6 @@ python_prepare_all() {
                -e "/import/s:argparse:argparseX:g" \
                -i setup.py || die
 
-       rm ./modules/pmg_tk/startup/apbs_tools.py || die
-
        sed \
                -e "s:/opt/local:${EPREFIX}/usr:g" \
                -e '/ext_comp_args/s:\[.*\]:[]:g' \
@@ -66,17 +66,28 @@ src_prepare() {
 
 python_install() {
        distutils-r1_python_install --pymol-path="${EPREFIX}/usr/share/pymol"
+
+       sed \
+               -e '1d' \
+               -e "/APBS_BINARY_LOCATION/s:None:\"${EPREFIX}/usr/bin/apbs\":g" 
\
+               -e 
"/APBS_PSIZE_LOCATION/s:None:\"$(python_get_sitedir)/pdb2pqr/src/\":g" \
+               -e 
"/APBS_PDB2PQR_LOCATION/s:None:\"$(python_get_sitedir)/pdb2pqr/\":g" \
+               -i "${D}/$(python_get_sitedir)"/pmg_tk/startup/apbs_tools.py || 
die
 }
 
 python_install_all() {
        distutils-r1_python_install_all
 
-       python_export python2_7 EPYTHON
+       sed \
+               -e '1i#!/usr/bin/env python' \
+               "${D}/$(python_get_sitedir)"/pymol/__init__.py > "${T}"/${PN} 
|| die
+
+       python_foreach_impl python_doscript "${T}"/${PN}
 
        # These environment variables should not go in the wrapper script, or 
else
        # it will be impossible to use the PyMOL libraries from Python.
        cat >> "${T}"/20pymol <<- EOF
-               PYMOL_PATH="$(python_get_sitedir)/${PN}"
+               PYMOL_PATH="${EPREFIX}/usr/share/pymol"
                PYMOL_DATA="${EPREFIX}/usr/share/pymol/data"
                PYMOL_SCRIPTS="${EPREFIX}/usr/share/pymol/scripts"
        EOF

Reply via email to