Update emacs: current release, use our x11 bits (#2052)
* Update emacs: current release, use our x11 bits Add checksum for 25.1 release. Rework the X support: - use Spack's X11 bits - add ability to specify an X toolkit (gtk or athena, default is gtk). - change toolkit names to align with Emacs' configure usage. * PEP8 cleanups. * glib dependency should not be type=build I'd like to blame that on a typo, but it's a few too many characters for that to be viable. I'm not sure what I was thinking. * Pass X variant down: emacs->pango->cairo * X variants default to False, warn on bad toolkit Change the X variants for emacs, pango and cairo to default to False. Check that the toolkit is a valid choice and give a reasonable error if not. * Fix flake8 issue, reword warning text * gtkplus needs to use +X variant for pango to work In order for a useful variant of pango to be built into the spec I needed to make the dependency on gtkplus explicitly specify it's X variant. The X variant is the default, but that wasn't enough to make it happy. Since it's happiness is the most imporant thing in the world, this change! :)
This commit is contained in:
parent
ed8060abe0
commit
65df417444
4 changed files with 21 additions and 12 deletions
|
@ -23,7 +23,6 @@
|
|||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
from spack import *
|
||||
import llnl.util.tty as tty
|
||||
|
||||
|
||||
class Emacs(Package):
|
||||
|
@ -35,32 +34,32 @@ class Emacs(Package):
|
|||
version('25.1', '95c12e6a9afdf0dcbdd7d2efa26ca42c')
|
||||
version('24.5', 'd74b597503a68105e61b5b9f6d065b44')
|
||||
|
||||
variant('X', default=True, description="Enable a X toolkit (GTK+)")
|
||||
variant('gtkplus', default=False,
|
||||
description="Enable a GTK+ as X toolkit (ignored if ~X)")
|
||||
variant('X', default=False, description="Enable an X toolkit")
|
||||
variant('toolkit', default='gtk',
|
||||
description="Select an X toolkit (gtk, athena)")
|
||||
|
||||
depends_on('ncurses')
|
||||
depends_on('libtiff', when='+X')
|
||||
depends_on('libpng', when='+X')
|
||||
depends_on('libxpm', when='+X')
|
||||
depends_on('giflib', when='+X')
|
||||
depends_on('gtkplus', when='+X+gtkplus')
|
||||
depends_on('libx11', when='+X')
|
||||
depends_on('libxaw', when='+X toolkit=athena')
|
||||
depends_on('gtkplus+X', when='+X toolkit=gtk')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
args = []
|
||||
toolkit = spec.variants['toolkit'].value
|
||||
if '+X' in spec:
|
||||
if '+gtkplus' in spec:
|
||||
toolkit = 'gtk{0}'.format(spec['gtkplus'].version.up_to(1))
|
||||
else:
|
||||
toolkit = 'no'
|
||||
if toolkit not in ('gtk', 'athena'):
|
||||
raise InstallError("toolkit must be in (gtk, athena), not %s" %
|
||||
toolkit)
|
||||
args = [
|
||||
'--with-x',
|
||||
'--with-x-toolkit={0}'.format(toolkit)
|
||||
]
|
||||
else:
|
||||
args = ['--without-x']
|
||||
if '+gtkplus' in spec:
|
||||
tty.warn('The variant +gtkplus is ignored if ~X is selected.')
|
||||
|
||||
configure('--prefix={0}'.format(prefix), *args)
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@ class GdkPixbuf(Package):
|
|||
|
||||
version('2.31.2', '6be6bbc4f356d4b79ab4226860ab8523')
|
||||
|
||||
depends_on("pkg-config", type="build")
|
||||
depends_on("gettext")
|
||||
depends_on("glib")
|
||||
depends_on("jpeg")
|
||||
depends_on("libpng")
|
||||
|
|
|
@ -34,10 +34,14 @@ class Gtkplus(Package):
|
|||
'2.24.25', '612350704dd3aacb95355a4981930c6f',
|
||||
url="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.25.tar.xz")
|
||||
|
||||
variant('X', default=True, description="Enable an X toolkit")
|
||||
|
||||
depends_on("atk")
|
||||
depends_on("gdk-pixbuf")
|
||||
depends_on("pango")
|
||||
depends_on("glib")
|
||||
depends_on("pango")
|
||||
depends_on("pango~X", when='~X')
|
||||
depends_on("pango+X", when='+X')
|
||||
|
||||
def patch(self):
|
||||
# remove disable deprecated flag.
|
||||
|
|
|
@ -38,9 +38,13 @@ class Pango(Package):
|
|||
version('1.36.8', '217a9a753006275215fa9fa127760ece')
|
||||
version('1.40.1', '6fc88c6529890d6c8e03074d57a3eceb')
|
||||
|
||||
variant('X', default=False, description="Enable an X toolkit")
|
||||
|
||||
depends_on("pkg-config", type="build")
|
||||
depends_on("harfbuzz")
|
||||
depends_on("cairo")
|
||||
depends_on("cairo~X", when='~X')
|
||||
depends_on("cairo+X", when='+X')
|
||||
depends_on("glib")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
|
Loading…
Reference in a new issue