Qt4 builds successfully with proper RPATHs.

This commit is contained in:
Todd Gamblin 2014-12-25 16:09:42 -08:00
parent 20388ece86
commit d98e475361
17 changed files with 300 additions and 5 deletions

View file

@ -0,0 +1,18 @@
from spack import *
class Atk(Package):
"""ATK provides the set of accessibility interfaces that are
implemented by other toolkits and applications. Using the ATK
interfaces, accessibility tools have full access to view and
control running applications."""
homepage = "https://developer.gnome.org/atk/"
url = "http://ftp.gnome.org/pub/gnome/sources/atk/2.14/atk-2.14.0.tar.xz"
version('2.14.0', 'ecb7ca8469a5650581b1227d78051b8b')
depends_on("glib")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,19 @@
from spack import *
class Cairo(Package):
"""Cairo is a 2D graphics library with support for multiple output devices."""
homepage = "http://cairographics.org"
url = "http://cairographics.org/releases/cairo-1.14.0.tar.xz"
version('1.14.0', 'fc3a5edeba703f906f2241b394f0cced')
depends_on("libpng")
depends_on("glib")
depends_on("pixman")
depends_on("fontconfig@2.10.91:") # Require newer version of fontconfig.
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--enable-tee")
make()
make("install")

View file

@ -0,0 +1,22 @@
from spack import *
class GdkPixbuf(Package):
"""The Gdk Pixbuf is a toolkit for image loading and pixel buffer
manipulation. It is used by GTK+ 2 and GTK+ 3 to load and
manipulate images. In the past it was distributed as part of
GTK+ 2 but it was split off into a separate package in
preparation for the change to GTK+ 3."""
homepage = "https://developer.gnome.org/gdk-pixbuf/"
url = "http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.31/gdk-pixbuf-2.31.1.tar.xz"
version('2.31.2', '6be6bbc4f356d4b79ab4226860ab8523')
depends_on("glib")
depends_on("jpeg")
depends_on("libpng")
depends_on("libtiff")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,18 @@
from spack import *
class Glib(Package):
"""The GLib package contains a low-level libraries useful for
providing data structure handling for C, portability wrappers
and interfaces for such runtime functionality as an event loop,
threads, dynamic loading and an object system."""
homepage = "https://developer.gnome.org/glib/"
url = "http://ftp.gnome.org/pub/gnome/sources/glib/2.42/glib-2.42.1.tar.xz"
version('2.42.1', '89c4119e50e767d3532158605ee9121a')
depends_on("libffi")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,22 @@
from spack import *
class Gtkplus(Package):
"""The GTK+ 2 package contains libraries used for creating graphical user interfaces for applications."""
homepage = "http://www.gtk.org"
version('2.24.25', '612350704dd3aacb95355a4981930c6f',
url="http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.25.tar.xz")
depends_on("atk")
depends_on("gdk-pixbuf")
depends_on("pango")
def patch(self):
# remove disable deprecated flag.
filter_file(r'CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"',
'', 'configure', string=True)
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,20 @@
from spack import *
class Harfbuzz(Package):
"""The Harfbuzz package contains an OpenType text shaping engine."""
homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz/"
url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2"
version('0.9.37', 'bfe733250e34629a188d82e3b971bc1e')
depends_on("glib")
depends_on("icu")
depends_on("freetype")
def patch(self):
change_sed_delimiter('@', ';', 'src/Makefile.in')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,25 @@
from spack import *
class Icu(Package):
"""The International Components for Unicode (ICU) package is a
mature, widely used set of C/C++ libraries providing Unicode and
Globalization support for software applications. ICU is widely
portable and gives applications the same results on all
platforms."""
# FIXME: add a proper url for your package's homepage here.
homepage = "http://www.example.com"
url = "http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz"
version('54.1', 'e844caed8f2ca24c088505b0d6271bc0')
def url_for_version(self, version):
return "http://download.icu-project.org/files/icu4c/%s/icu4c-%s-src.tgz" % (
version, str(version).replace('.', '_'))
def install(self, spec, prefix):
with working_dir("source"):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,20 @@
from spack import *
class LibjpegTurbo(Package):
"""libjpeg-turbo is a fork of the original IJG libjpeg which uses
SIMD to accelerate baseline JPEG compression and
decompression. libjpeg is a library that implements JPEG image
encoding, decoding and transcoding."""
homepage = "http://libjpeg-turbo.virtualgl.org"
url = "http://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-1.3.1.tar.gz"
version('1.3.1', '2c3a68129dac443a72815ff5bb374b05')
# Can use either of these.
depends_on("yasm")
depends_on("nasm")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -13,6 +13,10 @@ class Libmng(Package):
depends_on("zlib")
depends_on("lcms")
def patch(self):
# jpeg requires stdio to beincluded before its headrs.
filter_file(r'^(\#include \<jpeglib\.h\>)', '#include<stdio.h>\n\\1', 'libmng_types.h')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()

View file

@ -8,6 +8,8 @@ class Libtiff(Package):
version('4.0.3', '051c1068e6a0627f461948c365290410')
depends_on('jpeg')
depends_on('zlib')
depends_on('xz')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)

View file

@ -0,0 +1,16 @@
from spack import *
class Libxml2(Package):
"""Libxml2 is the XML C parser and toolkit developed for the Gnome
project (but usable outside of the Gnome platform), it is free
software available under the MIT License."""
homepage = "http://xmlsoft.org"
url = "http://xmlsoft.org/sources/libxml2-2.9.2.tar.gz"
version('2.9.2', '9e6a9aca9d155737868b3dc5fd82f788')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--without-python")
make()
make("install")

View file

@ -0,0 +1,14 @@
from spack import *
class Nasm(Package):
"""NASM (Netwide Assembler) is an 80x86 assembler designed for
portability and modularity. It includes a disassembler as well."""
homepage = "http://www.nasm.us"
url = "http://www.nasm.us/pub/nasm/releasebuilds/2.11.06/nasm-2.11.06.tar.xz"
version('2.11.06', '2b958e9f5d200641e6fc9564977aecc5')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,19 @@
from spack import *
class Pango(Package):
"""Pango is a library for laying out and rendering of text, with
an emphasis on internationalization. It can be used anywhere
that text layout is needed, though most of the work on Pango so
far has been done in the context of the GTK+ widget toolkit."""
homepage = "http://www.pango.org"
url = "http://ftp.gnome.org/pub/gnome/sources/pango/1.36/pango-1.36.8.tar.xz"
version('1.36.8', '217a9a753006275215fa9fa127760ece')
depends_on("harfbuzz")
depends_on("cairo")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,18 @@
from spack import *
class Pixman(Package):
"""The Pixman package contains a library that provides low-level
pixel manipulation features such as image compositing and
trapezoid rasterization."""
homepage = "http://www.pixman.org"
url = "http://cairographics.org/releases/pixman-0.32.6.tar.gz"
version('0.32.6', '3a30859719a41bd0f5cccffbfefdd4c2')
depends_on("libpng")
def install(self, spec, prefix):
configure("--prefix=%s" % prefix,
"--disable-gtk")
make()
make("install")

View file

@ -7,12 +7,38 @@ class Qt(Package):
version('4.8.6', '2edbe4d6c2eff33ef91732602f3518eb',
url="http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz")
depends_on("lcms")
# Use system openssl for security.
#depends_on("openssl")
depends_on("glib")
depends_on("gtkplus")
depends_on("libxml2")
depends_on("zlib")
depends_on("dbus")
depends_on("libtiff")
depends_on("libpng")
depends_on("libmng")
depends_on("jpeg")
def patch(self):
# Fix qmake compilers in the default mkspec
qmake_conf = 'mkspecs/common/g++-base.conf'
filter_file(r'^QMAKE_CC *=.*$', 'QMAKE_CC = cc', qmake_conf)
filter_file(r'^QMAKE_CXX *=.*$', 'QMAKE_CXX = c++', qmake_conf)
def install(self, spec, prefix):
# FIXME: Modify the configure line to suit your build system here.
configure("--prefix=%s" % prefix)
# FIXME: Add logic to build and install here
configure('-v',
'-confirm-license',
'-opensource',
'-prefix', prefix,
'-openssl-linked',
'-dbus-linked',
'-fast',
'-optimized-qmake',
'-no-pch',
'-no-phonon',
'-no-phonon-backend',
'-no-openvg')
make()
make("install")

View file

@ -0,0 +1,16 @@
from spack import *
class Xz(Package):
"""XZ Utils is free general-purpose data compression software with
high compression ratio. XZ Utils were written for POSIX-like
systems, but also work on some not-so-POSIX systems. XZ Utils are
the successor to LZMA Utils."""
homepage = "http://tukaani.org/xz/"
url = "http://tukaani.org/xz/xz-5.2.0.tar.bz2"
version('5.2.0', '867cc8611760240ebf3440bd6e170bb9')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")

View file

@ -0,0 +1,16 @@
from spack import *
class Yasm(Package):
"""Yasm is a complete rewrite of the NASM-2.11.06 assembler. It
supports the x86 and AMD64 instruction sets, accepts NASM and
GAS assembler syntaxes and outputs binary, ELF32 and ELF64
object formats."""
homepage = "http://yasm.tortall.net"
url = "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz"
version('1.3.0', 'fc9e586751ff789b34b1f21d572d96af')
def install(self, spec, prefix):
configure("--prefix=%s" % prefix)
make()
make("install")