diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..50ed6850d0a497990ee7ea3d71c66493c5a54cc0 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.9.0')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..767674d4124fdb9595585bd1e0af733c3dba0b34 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-gpsmpi-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.9.0')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb new file mode 100644 index 0000000000000000000000000000000000000000..28870b23937a14af7e469868fdcdd5b6aab999ce --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-ipsmpi-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'ipsmpi', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.9.0')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb b/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..7c11c301e433e143bdb7a2859251a737a9a33732 --- /dev/null +++ b/Golden_Repo/o/openvkl/openvkl-1.3.1-GCC-11.3.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'openvkl' +version = '1.3.1' + +homepage = 'http://www.openvkl.org/' +description = """ +IntelĀ® Open Volume Kernel Library (IntelĀ® Open VKL) is a collection +of high-performance volume computation kernels, developed at Intel. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openvkl/openvkl/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['c9cefb6c313f2b4c0331e9629931759a6bc204ec00deed6ec0becad1670a1933'] + +builddependencies = [ + ('ispc', '1.18.1', '', SYSTEM), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('tbb', '2021.5.0'), + ('Embree', '3.13.5'), + ('rkcommon', '1.10.0'), +] + +separate_build_dir = True + +start_dir = '%(name)s-%(version)s' + +configopts = '-DBUILD_BENCHMARKS:BOOL=OFF ' +configopts += '-DBUILD_EXAMPLES:BOOL=OFF ' +configopts += '-DBUILD_TESTING:BOOL=OFF ' + +sanity_check_paths = { + 'dirs': ['include/openvkl'], + 'files': ['lib/libopenvkl.so'], +} + +moduleclass = 'vis' diff --git a/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb b/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..e4abee3bc07b376ba3bfd45c84e7b6b453e684d4 --- /dev/null +++ b/Golden_Repo/s/SymEngine-python/SymEngine-python-0.9.2-GCC-11.3.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'SymEngine-python' +version = '0.9.2' + +homepage = 'https://github.com/symengine/symengine.py' +description = "Python wrappers to the C++ library SymEngine, a fast C++ symbolic manipulation library." + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/symengine/symengine.py/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +patches = ['py_modules.patch'] +checksums = [ + '9da048692d741bb001d9947a0e2bdf8909600cb4e6f3b9273d518cf93300955d', + '8ad1b29de924ab8589ee86658c6a7bb6921f867b26b03fdf1491a109c7df1e97', +] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('SymEngine', '0.9.0'), + ('Python', '3.10.4'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +options = {'modulename': 'symengine'} + +moduleclass = 'lib' diff --git a/Golden_Repo/s/SymEngine-python/py_modules.patch b/Golden_Repo/s/SymEngine-python/py_modules.patch new file mode 100644 index 0000000000000000000000000000000000000000..15a6235e12b25b9ef0ce2d1fd2e7b9753d47c41f --- /dev/null +++ b/Golden_Repo/s/SymEngine-python/py_modules.patch @@ -0,0 +1,11 @@ +diff -Naur symengine.py-0.9.2.orig/setup.py symengine.py-0.9.2/setup.py +--- symengine.py-0.9.2.orig/setup.py 2022-03-07 23:39:26.000000000 +0100 ++++ symengine.py-0.9.2/setup.py 2023-02-05 09:58:50.534749182 +0100 +@@ -238,5 +238,6 @@ + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', +- ] ++ ], ++ py_modules=[] + ) diff --git a/Golden_Repo/x/XServer/0002-Constant-DPI.patch b/Golden_Repo/x/XServer/0002-Constant-DPI.patch new file mode 100644 index 0000000000000000000000000000000000000000..f91e53d1e4934d615e16b7d975d2a6bb8ddc9238 --- /dev/null +++ b/Golden_Repo/x/XServer/0002-Constant-DPI.patch @@ -0,0 +1,96 @@ +--- a/src/dummy.h 2016-12-17 23:02:53.396287041 +0100 ++++ b/src/dummy.h 2016-12-17 23:03:30.319616550 +0100 +@@ -51,6 +51,7 @@ + /* options */ + OptionInfoPtr Options; + Bool swCursor; ++ Bool constantDPI; + /* proc pointer */ + CloseScreenProcPtr CloseScreen; + xf86CursorInfoPtr CursorInfo; +--- a/src/dummy_driver.c 2016-12-14 21:54:20.000000000 +0100 ++++ b/src/dummy_driver.c 2016-12-17 23:04:59.916416126 +0100 +@@ -17,6 +17,12 @@ + /* All drivers using the mi colormap manipulation need this */ + #include "micmap.h" + ++#ifdef RANDR ++#include "randrstr.h" ++#endif ++ ++#include "windowstr.h" ++ + /* identifying atom needed by magnifiers */ + #include <X11/Xatom.h> + #include "property.h" +@@ -115,11 +121,15 @@ + }; + + typedef enum { +- OPTION_SW_CURSOR ++ OPTION_SW_CURSOR, ++ OPTION_CONSTANT_DPI + } DUMMYOpts; + + static const OptionInfoRec DUMMYOptions[] = { + { OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE }, ++#ifdef RANDR ++ { OPTION_CONSTANT_DPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE }, ++#endif + { -1, NULL, OPTV_NONE, {0}, FALSE } + }; + +@@ -359,6 +369,7 @@ + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, dPtr->Options); + + xf86GetOptValBool(dPtr->Options, OPTION_SW_CURSOR,&dPtr->swCursor); ++ xf86GetOptValBool(dPtr->Options, OPTION_CONSTANT_DPI, &dPtr->constantDPI); + + if (device->videoRam != 0) { + pScrn->videoRam = device->videoRam; +@@ -639,10 +650,45 @@ + return TRUE; + } + ++const char *XDPY_PROPERTY = "dummy-constant-xdpi"; ++const char *YDPY_PROPERTY = "dummy-constant-ydpi"; ++static int get_dpi_value(WindowPtr root, const char *property_name, int default_dpi) ++{ ++ PropertyPtr prop; ++ Atom type_atom = MakeAtom("CARDINAL", 8, TRUE); ++ Atom prop_atom = MakeAtom(property_name, strlen(property_name), FALSE); ++ ++ for (prop = wUserProps(root); prop; prop = prop->next) { ++ if (prop->propertyName == prop_atom && prop->type == type_atom && prop->data) { ++ int v = (int) (*((CARD32 *) prop->data)); ++ if ((v>0) && (v<4096)) { ++ xf86DrvMsg(0, X_INFO, "get_constant_dpi_value() found property \"%s\" with value=%i\n", property_name, (int) v); ++ return (int) v; ++ } ++ break; ++ } ++ } ++ return default_dpi; ++} ++ + /* Mandatory */ + Bool + DUMMYSwitchMode(SWITCH_MODE_ARGS_DECL) + { ++ SCRN_INFO_PTR(arg); ++#ifdef RANDR ++ DUMMYPtr dPtr = DUMMYPTR(pScrn); ++ if (dPtr->constantDPI) { ++ int xDpi = get_dpi_value(pScrn->pScreen->root, XDPY_PROPERTY, pScrn->xDpi); ++ int yDpi = get_dpi_value(pScrn->pScreen->root, YDPY_PROPERTY, pScrn->yDpi); ++ //25.4 mm per inch: (254/10) ++ pScrn->pScreen->mmWidth = mode->HDisplay * 254 / xDpi / 10; ++ pScrn->pScreen->mmHeight = mode->VDisplay * 254 / yDpi / 10; ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "mm(dpi %ix%i)=%ix%i\n", xDpi, yDpi, pScrn->pScreen->mmWidth, pScrn->pScreen->mmHeight); ++ RRScreenSizeNotify(pScrn->pScreen); ++ RRTellChanged(pScrn->pScreen); ++ } ++#endif + return TRUE; + } + diff --git a/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch b/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch new file mode 100644 index 0000000000000000000000000000000000000000..3dbb6fd179ffde507036c62700c004914acc5cfb --- /dev/null +++ b/Golden_Repo/x/XServer/0003-fix-pointer-limits.patch @@ -0,0 +1,39 @@ +--- xf86-video-dummy-0.3.6/src/dummy_driver.c 2014-11-05 19:24:02.668656601 +0700 ++++ xf86-video-dummy-0.3.6.new/src/dummy_driver.c 2014-11-05 19:37:53.076061853 +0700 +@@ -55,6 +55,9 @@ + #include <X11/extensions/xf86dgaproto.h> + #endif + ++/* Needed for fixing pointer limits on resize */ ++#include "inputstr.h" ++ + /* Mandatory functions */ + static const OptionInfoRec * DUMMYAvailableOptions(int chipid, int busid); + static void DUMMYIdentify(int flags); +@@ -713,6 +716,26 @@ + RRTellChanged(pScrn->pScreen); + } + #endif ++ //ensure the screen dimensions are also updated: ++ pScrn->pScreen->width = mode->HDisplay; ++ pScrn->pScreen->height = mode->VDisplay; ++ pScrn->virtualX = mode->HDisplay; ++ pScrn->virtualY = mode->VDisplay; ++ pScrn->frameX1 = mode->HDisplay; ++ pScrn->frameY1 = mode->VDisplay; ++ ++ //ensure the pointer uses the new limits too: ++ DeviceIntPtr pDev; ++ SpritePtr pSprite; ++ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { ++ if (pDev->spriteInfo!=NULL && pDev->spriteInfo->sprite!=NULL) { ++ pSprite = pDev->spriteInfo->sprite; ++ pSprite->hotLimits.x2 = mode->HDisplay; ++ pSprite->hotLimits.y2 = mode->VDisplay; ++ pSprite->physLimits.x2 = mode->HDisplay; ++ pSprite->physLimits.y2 = mode->VDisplay; ++ } ++ } + return TRUE; + } + diff --git a/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb b/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..52e47fdb3bf7a8ca3c704a8690f534ae3070d847 --- /dev/null +++ b/Golden_Repo/x/XServer/XServer-21.1.6-GCCcore-11.3.0.eb @@ -0,0 +1,280 @@ +easyblock = 'Bundle' + +name = 'XServer' +version = '21.1.6' + +homepage = 'https://www.x.org' + +description = """ +XServer: X Window System display server. + +This module provides a stripped-down installation with minimal driver support. +""" + + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [ + 'https://www.x.org/archive/individual/xserver/', + 'https://www.x.org/archive/individual/driver/' +] + +# OS dependency should be preferred for security reasons +osdependencies = [ + ('openssl-devel', 'libssl-dev', 'libopenssl-devel'), +] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), + ('Bison', '3.8.2'), + ('Meson', '0.62.1'), + ('Ninja', '1.10.2'), + ('flex', '2.6.4'), + ('Bison', '3.8.2'), +] + +dependencies = [ + ('libdrm', '2.4.110'), + ('OpenGL', '2022a'), + ('pixman', '0.40.0'), + ('X11', '20220504'), + ('freetype', '2.12.1'), + ('fontconfig', '2.14.0'), + ('ncurses', '6.3'), + ('libepoxy', '1.5.10'), + ('eudev', '3.2.11'), + ('libtirpc', '1.3.2'), +] + +local_font_preconfigopts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && " +local_font_preconfigopts += "export PATH=%(installdir)s/bin:$PATH && " +local_font_preconfigopts += "export FONTCONFIG_FILE=%(installdir)s/config/fontconfig/fonts.conf && " + +# https://github.com/freedesktop/xorg-xserver/blob/master/meson_options.txt +local_xorg_configopts = "-D default_font_path=%(installdir)s/share/fonts/X11 " +local_xorg_configopts += "-D xorg=true " +local_xorg_configopts += "-D xvfb=true " +local_xorg_configopts += "-D xnest=true " +local_xorg_configopts += "-D xephyr=true " +local_xorg_configopts += "-D udev=true " +local_xorg_configopts += "-D glamor=true " +local_xorg_configopts += "-D systemd_logind=false " +# local_xorg_configopts += "-D suid_wrapper=true " +local_xorg_configopts += "-D xkb_dir=%(installdir)s/share/X11/xkb " +# local_xorg_configopts += "-D xkb_output_dir=/var/lib/xkb " + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + ('fontconfig-config', '1.0.0', { + 'easyblock': 'Binary', + 'source_urls': ['https://gitlab.version.fz-juelich.de/goebbert1/fontconfig-config/-/archive/v%(version)s/'], + 'sources': ['%(name)s-v%(version)s.tar.gz'], + 'start_dir': '%(name)s-v%(version)s', + 'extract_sources': True, + 'install_cmd': ( + 'cp -a %(builddir)s/%(name)s-v%(version)s/* %(installdir)s/ && ' + 'sed -i \'s@$EBROOTXSERVER@\'"%(installdir)s"\'@g\' %(installdir)s/share/X11/xorg.conf.d/99-fonts.conf' + ), + 'checksums': [('sha256', '68544c183d153f34105fa08573174650bfe643a6d750bd9da4accac399d375db')], + # to activate this fontconfig you need to export FONTCONFIG_FILE=${EBROOTXSERVER}/config/fontconfig/fonts.conf + }), + ('mkfontscale', '1.2.2', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['4a5af55e670713024639a7f7d10826d905d86faf574cd77e0f5aef2d00e70168'], + }), + ('mkfontdir', '1.0.7', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['bccc5fb7af1b614eabe4a22766758c87bfc36d66191d08c19d2fa97674b7b5b7'], + }), + ('bdftopcf', '1.1', { + 'source_urls': ['https://www.x.org/archive/individual/app/'], + 'checksums': ['699d1a62012035b1461c7f8e3f05a51c8bd6f28f348983249fb89bbff7309b47'], + }), + ('font-util', '1.3.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '2094dd4a1ca63a61deb101d2dc618682d6e287cdbe09679502223ac445d277dc')], + }), + ('encodings', '1.0.6', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'c89c0636cda8f34eb28304263fc9a5441635ac3cb9da23efefe8f584174cba29')], + }), + ('font-alias', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '49525fa6f2c3f3b54f461b2e0649b0ac61af50c36bf40069355a25ced8ce2028')], + }), + ('dejavu', '2.37', { + 'easyblock': 'Binary', + 'source_urls': [SOURCEFORGE_SOURCE], + 'sources': ['%(name)s-fonts-ttf-%(version)s.tar.bz2'], + 'extract_sources': True, + 'start_dir': 'dejavu-fonts-ttf-2.37', + 'install_cmd': ('install -v -d -m755 %(installdir)s/share/fonts/dejavu && ' + 'install -v -m644 ttf/*.ttf %(installdir)s/share/fonts/dejavu'), + 'checksums': [('sha256', 'fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-75dpi', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '61eb1fcfec89f7435cb92cd68712fbe4ba412ca562b1f5feec1f6daa1b8544f6')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-100dpi', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '97d9c1e706938838e4134d74f0836ae9d9ca6705ecb405c9a0ac8fdcbd9c2159')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-cursor-misc', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'a0b146139363dd0a704c7265ff9cd9150d4ae7c0d248091a9a42093e1618c427')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-adobe-utopia-type1', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'd9e86a8805b0fb78222409169d839a8531a1f5c7284ee117ff2a0af2e5016c3f')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-misc-misc', '1.1.2', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '46142c876e176036c61c0c24c0a689079704d5ca5b510d48c025861ee2dbf829')], + 'preconfigopts': local_font_preconfigopts, + }), + # Fails because it tries to create a directory outside of %(installdir)s + # => test -z "<PKG_CONFIG-Fontconfig>/etc/fonts/conf.avail" || + # /usr/bin/mkdir -p "<PKG_CONFIG-Fontconfig>/etc/fonts/conf.avail" + # ('font-bh-ttf', '1.0.3', { + # 'source_urls': ['https://www.x.org/pub/individual/font/'], + # 'sources': ['%(name)s-%(version)s.tar.gz'], + # 'checksums': [('sha256', 'c583b4b968ffae6ea30d5b74041afeac83126682c490a9624b770d60d0e63d59')], + # 'preconfigopts': local_font_preconfigopts, + # }), + ('font-bh-type1', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'd5602f1d749ccd31d3bc1bb6f0c5d77400de0e5e3ac5abebd2a867aa2a4081a4')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-ibm-type1', '1.0.3', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '4509703e9e581061309cf4823bffd4a93f10f48fe192a1d8be1f183fd6ab9711')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-misc-ethiopic', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', 'f7901250fb746815065cfe13a814d92260348fede28d61dcab0d05c5d8eafd54')], + 'preconfigopts': local_font_preconfigopts, + }), + ('font-xfree86-type1', '1.0.4', { + 'source_urls': ['https://www.x.org/pub/individual/font/'], + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': [('sha256', '02b3839ae79ba6a7750525bb3b0c281305664b95bf63b4a0baa230a277b4f928')], + 'preconfigopts': local_font_preconfigopts, + }), + ('xkbcomp', '1.4.6', { + 'source_urls': ['https://www.x.org/archive//individual/app/'], + 'checksums': ['b216a2c8c0eab83f3dc4a3d5ee2bdf7827b30e49c8907035d0f222138eca0987'], + }), + ('xkeyboard-config', '2.38', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive//individual/data/xkeyboard-config/'], + 'sources': ['%(name)s-%(version)s.tar.xz'], + 'checksums': ['0690a91bab86b18868f3eee6d41e9ec4ce6894f655443d490a2184bfac56c872'], + # https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/master/meson_options.txt + 'configopts': '-Dxorg-rules-symlinks=true', + }), + ('xauth', '1.1', { + 'source_urls': ['https://www.x.org/releases/individual/app/'], + 'checksums': ['e9fce796c8c5c9368594b9e8bbba237fb54b6615f5fd60e8d0a5b3c52a92c5ef'], + }), + ('libxcvt', '0.1.2', { + 'easyblock': 'MesonNinja', + 'source_urls': ['https://www.x.org/archive/individual/lib/'], + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['0561690544796e25cfbd71806ba1b0d797ffe464e9796411123e79450f71db38'], + }), + ('xorg-server', version, { + 'easyblock': 'MesonNinja', + 'patches': [('xvfb-run', '.')], + 'checksums': [ + ('sha256', '6f9c73ccc50e2731adac17671c8e33687738c8cd556b49ecb9f410ce7217be11'), + ('sha256', 'fd6d13182b77871d4f65fccdaebb8a72387a726426066d3f8e6aa26b010ea0e8'), + ], + 'configopts': local_xorg_configopts, + }), + ('xf86-video-dummy', '0.4.0', { + 'preconfigopts': 'PKG_CONFIG_PATH=$PKG_CONFIG_PATH:%(installdir)s/lib/pkgconfig', + 'sources': ['%(name)s-%(version)s.tar.xz'], + 'checksums': [ + # xf86-video-dummy-0.4.0.tar.gz + ('sha256', 'e78ceae5c8c0588c7cb658f2afc3a9fac9ef665b52a75b01f8e9c5449a4e1e5a'), + # 0002-Constant-DPI.patch + ('sha256', '3add13392168d271822e694aba21327dc3219f61f2091a12ef7009d3f090c662'), + # 0003-fix-pointer-limits.patch + ('sha256', '8af95b0b0e7f4d7de3bd1654260c3677d76ef91b8d6a66cb57b9c3af1e024fa2'), + ], + 'patches': [ + '0002-Constant-DPI.patch', + '0003-fix-pointer-limits.patch', + ], + }), + ('xterm', '378', { + 'source_urls': ['http://invisible-mirror.net/archives/xterm/'], + 'sources': ['%(name)s-%(version)s.tgz'], + 'checksums': [ + # xterm-369.tgz + ('sha256', '649dfbfd5edd0ed9e47cf8e4d953b4b0d3c30bc280166dfc4ffd14973fec3e92'), + # xterm-cursesloc.patch + ('sha256', 'ff15331ba1a2c67f68e3da3595ffc457d7aea5392a75d8cdfe40e2126ece99a2'), + ], + 'patches': ['xterm-cursesloc.patch'], + 'configopts': " --with-app-defaults=%(installdir)s/app-defaults ", + }), +] + +# we need to set the permissions our self to ensure no-one messes in this directory +# FIXME: easybuild does not support this in 4.3.0 -> hence you have to do it manually +skipsteps = ['permissions'] +postinstallcmds = [ + 'chmod -R ugo-w %(installdir)s/config', + 'chmod -R ugo-w %(installdir)s/share', + 'install -m 0755 %(builddir)s/xorg-server-%(version)s/xvfb-run %(installdir)s/bin/', +] + +modextrapaths = { + 'XDG_CONFIG_DIRS': 'config', + 'XUSERFILESEARCHPATH': 'app-defaults/%N-%C', +} + +# FONTCONFIG_FILE is used to override the default configuration file +modextravars = { + 'FONTCONFIG_FILE': '%(installdir)s/config/fontconfig/fonts.conf'} + +sanity_check_paths = { + 'files': ['bin/Xorg', 'bin/Xvfb', 'bin/xvfb-run', + 'lib/xorg/modules/drivers/dummy_drv.la', 'lib/xorg/modules/drivers/dummy_drv.so', + 'bin/xterm'], + 'dirs': [], +} + +sanity_check_commands = [ + "xvfb-run --help", + "xvfb-run --error-file %(builddir)s/xvfb-run-test.err echo hello", +] + +moduleclass = 'vis' diff --git a/Golden_Repo/x/XServer/xterm-cursesloc.patch b/Golden_Repo/x/XServer/xterm-cursesloc.patch new file mode 100644 index 0000000000000000000000000000000000000000..033c2776b7838ae1907a69f31d75d7ce7d28175f --- /dev/null +++ b/Golden_Repo/x/XServer/xterm-cursesloc.patch @@ -0,0 +1,12 @@ +diff -Naur xterm-362.orig/xtermcap.h xterm-362/xtermcap.h +--- xterm-362.orig/xtermcap.h 2013-06-23 17:34:37.000000000 +0200 ++++ xterm-362/xtermcap.h 2021-02-16 14:00:48.976219215 +0100 +@@ -59,7 +59,7 @@ + #undef ERR /* workaround for glibc 2.1.3 */ + + #ifdef HAVE_NCURSES_CURSES_H +-#include <ncurses/curses.h> ++#include <curses.h> + #else + #include <curses.h> + #endif diff --git a/Golden_Repo/x/XServer/xvfb-run b/Golden_Repo/x/XServer/xvfb-run new file mode 100644 index 0000000000000000000000000000000000000000..237e0dfc5938430d50fe8d30fde1b6defa9c6e42 --- /dev/null +++ b/Golden_Repo/x/XServer/xvfb-run @@ -0,0 +1,194 @@ +#!/bin/sh + +# extracted from Debian package for xorg-server, +# via http://deb.debian.org/debian/pool/main/x/xorg-server/xorg-server_1.20.4-1.diff.gz + +# This script starts an instance of Xvfb, the "fake" X server, runs a command +# with that server available, and kills the X server when done. The return +# value of the command becomes the return value of this script. +# +# If anyone is using this to build a Debian package, make sure the package +# Build-Depends on xvfb and xauth. + +set -e + +PROGNAME=xvfb-run +SERVERNUM=99 +AUTHFILE= +ERRORFILE=/dev/null +XVFBARGS="-screen 0 1280x1024x24" +LISTENTCP="-nolisten tcp" +XAUTHPROTO=. + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the event +# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the +# script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true +case "$DEFCOLUMNS" in + *[!0-9]*|'') DEFCOLUMNS=80 ;; +esac + +# Display a message, wrapping lines at the terminal width. +message () { + echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} +} + +# Display an error message. +error () { + message "error: $*" >&2 +} + +# Display a usage message. +usage () { + if [ -n "$*" ]; then + message "usage error: $*" + fi + cat <<EOF +Usage: $PROGNAME [OPTION ...] COMMAND +Run COMMAND (usually an X client) in a virtual X server environment. +Options: +-a --auto-servernum try to get a free server number, starting at + --server-num +-e FILE --error-file=FILE file used to store xauth errors and Xvfb + output (default: $ERRORFILE) +-f FILE --auth-file=FILE file used to store auth cookie + (default: ./.Xauthority) +-h --help display this usage message and exit +-n NUM --server-num=NUM server number to use (default: $SERVERNUM) +-l --listen-tcp enable TCP port listening in the X server +-p PROTO --xauth-protocol=PROTO X authority protocol name to use + (default: xauth command's default) +-s ARGS --server-args=ARGS arguments (other than server number and + "-nolisten tcp") to pass to the Xvfb server + (default: "$XVFBARGS") +EOF +} + +# Find a free server number by looking at .X*-lock files in /tmp. +find_free_servernum() { + # Sadly, the "local" keyword is not POSIX. Leave the next line commented in + # the hope Debian Policy eventually changes to allow it in /bin/sh scripts + # anyway. + #local i + + i=$SERVERNUM + while [ -f /tmp/.X$i-lock ]; do + i=$(($i + 1)) + done + echo $i +} + +# Clean up files +clean_up() { + if [ -e "$AUTHFILE" ]; then + XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1 + fi + if [ -n "$XVFB_RUN_TMPDIR" ]; then + if ! rm -r "$XVFB_RUN_TMPDIR"; then + error "problem while cleaning up temporary directory" + exit 5 + fi + fi + if [ -n "$XVFBPID" ]; then + kill "$XVFBPID" >>"$ERRORFILE" 2>&1 + fi +} + +# Parse the command line. +ARGS=$(getopt --options +ae:f:hn:lp:s:w: \ + --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \ + --name "$PROGNAME" -- "$@") +GETOPT_STATUS=$? + +if [ $GETOPT_STATUS -ne 0 ]; then + error "internal error; getopt exited with status $GETOPT_STATUS" + exit 6 +fi + +eval set -- "$ARGS" + +while :; do + case "$1" in + -a|--auto-servernum) SERVERNUM=$(find_free_servernum); AUTONUM="yes" ;; + -e|--error-file) ERRORFILE="$2"; shift ;; + -f|--auth-file) AUTHFILE="$2"; shift ;; + -h|--help) SHOWHELP="yes" ;; + -n|--server-num) SERVERNUM="$2"; shift ;; + -l|--listen-tcp) LISTENTCP="" ;; + -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;; + -s|--server-args) XVFBARGS="$2"; shift ;; + -w|--wait) shift ;; + --) shift; break ;; + *) error "internal error; getopt permitted \"$1\" unexpectedly" + exit 6 + ;; + esac + shift +done + +if [ "$SHOWHELP" ]; then + usage + exit 0 +fi + +if [ -z "$*" ]; then + usage "need a command to run" >&2 + exit 2 +fi + +if ! command -v xauth >/dev/null; then + error "xauth command not found" + exit 3 +fi + +# tidy up after ourselves +trap clean_up EXIT + +# If the user did not specify an X authorization file to use, set up a temporary +# directory to house one. +if [ -z "$AUTHFILE" ]; then + XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)" + AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority" + # Create empty file to avoid xauth warning + touch "$AUTHFILE" +fi + +# Start Xvfb. +MCOOKIE=$(mcookie) +tries=10 +while [ $tries -gt 0 ]; do + tries=$(( $tries - 1 )) + XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1 +add :$SERVERNUM $XAUTHPROTO $MCOOKIE +EOF + # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept + # connections + trap : USR1 + (trap '' USR1; exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP -auth $AUTHFILE >>"$ERRORFILE" 2>&1) & + XVFBPID=$! + + wait || : + if kill -0 $XVFBPID 2>/dev/null; then + break + elif [ -n "$AUTONUM" ]; then + # The display is in use so try another one (if '-a' was specified). + SERVERNUM=$((SERVERNUM + 1)) + SERVERNUM=$(find_free_servernum) + continue + fi + error "Xvfb failed to start" >&2 + XVFBPID= + exit 1 +done + +# Start the command and save its exit status. +set +e +DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" +RETVAL=$? +set -e + +# Return the executed command's exit status. +exit $RETVAL + +# vim:set ai et sts=4 sw=4 tw=80: diff --git a/acls.yml b/acls.yml index bbeabbf0d3013f741809620ca09846d4cbb68ffd..6a0c33925638b3aef07e2e0a17012c1f1d1e3cd4 100644 --- a/acls.yml +++ b/acls.yml @@ -103,7 +103,7 @@ software: base: True - name: 'Embree' owner: 'goebbert1' - base: True + compiler: True - name: 'freeglut' owner: 'goebbert1' base: True