Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{vis}[GCCcore/4.9.3] X.Org v2016-08-31 #3463

Closed
34 changes: 34 additions & 0 deletions easybuild/easyconfigs/c/cURL/cURL-7.50.1-GCCcore-4.9.3.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
easyblock = 'ConfigureMake'

name = 'cURL'
version = '7.50.1'

homepage = 'http://curl.haxx.se'
description = """libcurl is a free and easy-to-use client-side URL transfer library,
supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,
POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports
SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload,
proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate,
Kerberos), file transfer resume, http proxy tunneling and more."""

toolchain = {'version': '4.9.3', 'name': 'GCCcore'}

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://%(namelower)s.haxx.se/download/']

#dependencies = [('OpenSSL', '1.0.1p')]
builddependencies = [
('binutils', '2.25'),
]

osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')]

# configopts = "--with-ssl=$EBROOTOPENSSL"
modextravars = {'CURL_INCLUDES': '%(installdir)s/include'}

sanity_check_paths = {
'files': ['bin/%(namelower)s', 'lib/libcurl.a', 'lib/libcurl.so'],
'dirs': ['lib/pkgconfig'],
}

moduleclass = 'tools'
51 changes: 51 additions & 0 deletions easybuild/easyconfigs/g/git/git-2.9.3-GCCcore-4.9.3.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
##
# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
# Authors:: Fotis Georgatos <[email protected]>
# Authors:: Dmitri Gribenko <[email protected]>
# License:: MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-90.html
##

easyblock = 'ConfigureMake'

name = 'git'
version = '2.9.3'

homepage = 'http://git-scm.com/'
description = """Git is a free and open source distributed version control system designed
to handle everything from small to very large projects with speed and efficiency."""

toolchain = {'name': 'GCCcore', 'version': '4.9.3'}

sources = ['v%(version)s.tar.gz']
source_urls = ['https://github.com/git/git/archive']

builddependencies = [('binutils', '2.25')]

dependencies = [
('cURL', '7.50.1'),
('expat', '2.2.0'),
('gettext', '0.19.8'),
('Perl', '5.24.0'),
]



preconfigopts = 'make configure && '

# Work around git build system bug. If LIBS contains -lpthread, then configure
# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS.
#configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'"
configopts = "--with-perl=/usr/bin/perl --enable-pthreads='-lpthread'"

sanity_check_paths = {
'files': ['bin/git'],
'dirs': [],
}

moduleclass = 'tools'
28 changes: 28 additions & 0 deletions easybuild/easyconfigs/l/libxslt/libxslt-1.1.29-GCCcore-4.9.3.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
easyblock = 'ConfigureMake'

name = 'libxslt'
version = '1.1.29'

homepage = 'http://xmlsoft.org/'
description = """Libxslt is the XSLT C library developed for the GNOME project
(but usable outside of the Gnome platform)."""

toolchain = {'name': 'GCCcore', 'version': '4.9.3'}

source_urls = [
'http://xmlsoft.org/sources/',
'http://xmlsoft.org/sources/old/'
]

sources = [SOURCELOWER_TAR_GZ]

builddependencies = [
('binutils', '2.25'),
]

dependencies = [
('zlib', '1.2.8'),
('libxml2', '2.9.4'),
]

moduleclass = 'lib'
41 changes: 41 additions & 0 deletions easybuild/easyconfigs/p/Python/Python-2.7.12-GCCcore-4.9.3-Xorg.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name = 'Python'
version = '2.7.12'
# This version is purely to allow us to build completely X.Org and should be used as a build-dep of that package
versionsuffix = '-Xorg'

homepage = 'http://python.org/'
description = "Python is a programming language that lets you work more quickly and integrate your systems more effectively."

toolchain = {'name': 'GCCcore', 'version': '4.9.3'}
toolchainopts = {'pic': True, 'opt': True, 'optarch': True}

source_urls = ['http://www.python.org/ftp/%(namelower)s/%(version)s/']
sources = [SOURCE_TGZ]

dependencies = [
('zlib', '1.2.8'),
('libreadline', '6.3'),
('ncurses', '6.0'),
('SQLite', '3.14.1'),
# ('OpenSSL', '1.0.1k'), # OS dependency should be preferred if the os version is more recent then this version, it's
# nice to have an up to date openssl for security reasons
('libxml2', '2.9.4'), # for lxml
('libxslt', '1.1.29'), # for lxml
]

osdependencies = [('openssl-devel', 'libssl-dev')]

# We hide this by default since users should not use it in production, high-performance Python should be delivered at
# compiler level with a default extension set
#hidden = True

# bare installation to be used as a build dep: only known module deps for X.Org included
exts_list = [
('setuptools', '26.0.0', {'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/']}),
('six', '1.10.0', {'source_urls': ['https://pypi.python.org/packages/source/s/six']}),
('Mako', '1.0.4', {'source_urls': ['https://pypi.python.org/packages/source/m/Mako']}),
('lxml', '3.6.4', {'source_urls': ['https://pypi.python.org/packages/source/l/lxml']}),
]


moduleclass = 'lang'
64 changes: 64 additions & 0 deletions easybuild/easyconfigs/x/X.Org/X.Org-2016-08-31-GCCcore-4.9.3.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
easyblock = 'Binary'

name = 'X.Org'
version = '2016-08-31'

homepage = 'https://www.x.org/wiki'
description = """The X.Org project provides an open source implementation of the X Window System.
The development work is being done in conjunction with the freedesktop.org
community."""

toolchain = {'name': 'GCCcore', 'version': '4.9.3'}

sources = ['xorg.modules', 'jhbuildrc']

source_urls = ['https://cgit.freedesktop.org/xorg/util/modular/plain/']

patches = ['xorg_moduleset-2016-08-23.patch', 'xorg_jhbuild-2016-08-23.patch']

builddependencies = [
('jhbuild', '3.15.92'),
# jhbuild is python so it has a python dependency, we use a Python that includes the required Python modules for this build
('Python', '2.7.12', '-Xorg'),
('git', '2.9.3'),
('gperf', '3.0.4'),
('intltool', '0.51.0', '-Perl-5.24.0'),
('Perl', '5.24.0'),
('XML-Parser', '2.44_01', '-Perl-5.24.0'),
]

dependencies = [
('eudev', '3.2'),
('LLVM', '3.8.1'),
('freetype', '2.6.5'),
('zlib', '1.2.8'),
]

# Make sure it is using our Python2
preinstallopts = 'echo "addpath(\'PYTHONPATH\', \'$PYTHONPATH\')" >> jhbuildrc && '
preinstallopts += 'echo "os.environ[\'PYTHON\'] = \'$EBROOTPYTHON/bin/python2\'" >> jhbuildrc && '
# The following environment variables are used by the patched jhbuildrc to point to our EasyBuild paths
preinstallopts += 'EBBUILDDIR=%(builddir)s EBINSTALLDIR=%(installdir)s XORG_VERSION_DATE=%(version)s '
# The packages below are the ones to be excluded from build
xorg_skip = "libAppleWM mtdev xf86-input-joystick xf86-video-ati xf86-video-geode xf86-video-modesetting "
xorg_skip += "xf86-video-sisusb xf86-video-v4l xf86-video-vmware xf86-video-wsfb xf86-input-evdev "
preinstallopts += 'XORG_SKIP_SET="%s" ' % (xorg_skip)
install_cmd = 'jhbuild -f jhbuildrc'


sanity_check_paths = {
'files': [
'lib/libGL.%s' % SHLIB_EXT, 'lib/libOSMesa.%s' % SHLIB_EXT, 'lib/libGLESv1_CM.%s' % SHLIB_EXT,
'lib/libGLESv2.%s' % SHLIB_EXT, 'include/GL/glext.h', 'include/GL/gl_mangle.h', 'include/GL/glx.h',
'include/GL/osmesa.h', 'include/GL/wglext.h', 'include/GL/gl.h', 'include/GL/glxext.h',
'include/GL/glx_mangle.h', 'include/GLES/gl.h', 'include/GLES2/gl2.h', 'include/GLES3/gl3.h',
] +
[
'include/X11/%s' % x for x in [
'cursorfont.h', 'ImUtil.h', 'Xcms.h', 'XKBlib.h', 'XlibConf.h', 'Xlib.h', 'Xlibint.h',
'Xlib-xcb.h', 'Xlocale.h', 'Xregion.h', 'Xresource.h', 'Xutil.h']
],
'dirs': ['bin', 'lib'],
}

moduleclass = 'lib'
45 changes: 45 additions & 0 deletions easybuild/easyconfigs/x/X.Org/xorg_jhbuild-2016-08-23.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
--- jhbuildrc.orig 2016-08-23 16:54:45.000000000 +0200
+++ jhbuildrc 2016-08-23 17:55:13.669085000 +0200
@@ -14,7 +14,7 @@

# A string or list of strings specifying the name(s) of the module set(s) to use.
# It can be a full HTTP URL to an externally managed moduleset
-moduleset = os.path.join(os.environ['HOME'], 'xorg/util/modular/xorg.modules')
+moduleset = os.path.join(os.environ['EBBUILDDIR'], 'xorg.modules')

# A list of strings specifying the modules to build.
# The list of modules actually built will be recursively expanded to include all the dependencies
@@ -22,18 +22,22 @@ moduleset = os.path.join(os.environ['HOM
modules = [ 'The X Window System' ]

# A string specifying the directory to unpack source trees to.
-checkoutroot = os.path.join(os.environ['HOME'])
+checkoutroot = os.path.join(os.environ['EBBUILDDIR'], 'xorg_sources')

# A string specifying the prefix to install modules to.
# The prefix must be an absolute path. This directory must be writable
-prefix = os.path.join(os.environ['HOME'], 'xorg-build')
+prefix = os.path.join(os.environ['EBINSTALLDIR'])

# The following is required to make aclocal find our .m4 macros
os.environ['ACLOCAL'] = 'aclocal -I ' + os.path.join(prefix, 'share/aclocal')

# The following is required to make pkg-config find our .pc metadata files
os.environ['PKG_CONFIG_PATH'] = os.path.join(prefix, 'lib/pkgconfig') \
- + ':' + os.path.join(prefix, 'share/pkgconfig')
+ + ':' + os.path.join(prefix, 'share/pkgconfig') \
+ + ':' + os.path.join(os.environ['PKG_CONFIG_PATH'])
+
+# Need to make sure it finds any python modules we installed, this is appended
+# by the easyconfig at build time.

# A boolean value that specifies whether to install libraries to lib64 directories.
# Defaults to 1 on Debian but now obsolete, using multi-arch nomenclature
@@ -49,3 +53,7 @@ autogenargs=''
# A string listing additional arguments to be passed to make.
# Set makeargs to 'V=1' for verbose build output.
#makeargs = ''
+#
+sticky_date = os.environ['XORG_VERSION_DATE']
+skip = os.environ['XORG_SKIP_SET']
+
40 changes: 40 additions & 0 deletions easybuild/easyconfigs/x/X.Org/xorg_moduleset-2016-08-23.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
--- /work/zam/swmanage/EasyBuild/sources/x/X.Org/xorg.modules 2016-08-23 18:52:40.778356000 +0200
+++ xorg.modules 2016-08-24 16:50:06.376917135 +0200
@@ -427,6 +427,20 @@
</dependencies>
</autotools>

+ <repository type="tarball" name="github-tar" href="https://github.com/"/>
+ <autotools id="libepoxy">
+ <pkg-config>epoxy.pc</pkg-config>
+ <branch repo="github-tar"
+ module="anholt/libepoxy/archive/v${version}.tar.gz"
+ version="1.3.1"
+ checkoutdir="libepoxy-${version}"
+ size="284227"/>
+ <dependencies>
+ <dep package="libxtrans"/>
+ <dep package="mesa-mesa"/>
+ </dependencies>
+ </autotools>
+
<autotools id="fixesproto">
<branch module="xorg/proto/fixesproto"
checkoutdir="xorg/proto/fixesproto"/>
@@ -1903,6 +1917,7 @@
<dep package="libpixman"/>
<dep package="app-xkbcomp"/>
<dep package="libxshmfence"/> <!-- Linux only -->
+ <dep package="libepoxy"/>
</dependencies>
<suggests>
<dep package="compositeproto"/>
@@ -3334,7 +3349,7 @@
</autotools>

<!-- The Mesa 3D Graphics Library - Modules Definition -->
- <autotools id="mesa-mesa" autogenargs="--enable-xa">
+ <autotools id="mesa-mesa" autogenargs="--enable-xa --enable-gbm --enable-gallium-osmesa --enable-gallium-llvm --enable-glx --enable-texture-float --enable-llvm-shared-libs">
<branch module="mesa/mesa"
checkoutdir="mesa/mesa"/>
<dependencies>