libaio: fixed a condition that checks whether we are running on OS X (#12976)

* libaio: fixed a condition that checks whether we are running on OS X

* libaio: simplified package by adding an explicit conflict for darwin

* libaio: added information to the docstring

* fio: added version 3.16, added conflict when using libaio, docstring

* lvm2: conflict due to libaio dep, improved docstring, simpler install

* mariadb: conflict due to libaio dep, improved docstring, version 10.4.7

* mariadb: the dependency on libaio is now conditional, removed conflict

* mariadb: fixed a typo in previous commit

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

* libaio: turned into a MakefilePackage
This commit is contained in:
Massimiliano Culpo 2019-10-01 22:35:51 +02:00 committed by Adam J. Stewart
parent 76178f31ca
commit 245c1bb208
4 changed files with 52 additions and 37 deletions

View File

@ -3,15 +3,20 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Fio(AutotoolsPackage):
"""Flexible I/O Tester."""
"""Flexible I/O Tester.
Fio spawns a number of threads or processes doing a particular type of I/O
action as specified by the user. fio takes a number of global parameters,
each inherited by the thread unless otherwise parameters given to them
overriding that setting is given.
"""
homepage = "https://github.com/axboe/fio"
url = "https://github.com/axboe/fio/archive/fio-2.19.tar.gz"
version('3.16', sha256='c7731a9e831581bab7104da9ea60c9f44e594438dbe95dff26726ca0285e7b93')
version('2.19', '67125b60210a4daa689a4626fc66c612')
variant('gui', default=False, description='Enable building of gtk gfio')
@ -24,6 +29,9 @@ class Fio(AutotoolsPackage):
depends_on('py-sphinx', type='build', when='+doc')
conflicts('+libaio', when='platform=darwin',
msg='libaio does not support Darwin')
def configure_args(self):
config_args = []

View File

@ -3,22 +3,24 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Libaio(MakefilePackage):
"""Linux native Asynchronous I/O interface library.
class Libaio(Package):
"""This is the linux native Asynchronous I/O interface library."""
AIO enables even a single application thread to overlap I/O operations
with other processing, by providing an interface for submitting one or
more I/O requests in one system call (io_submit()) without waiting for
completion, and a separate interface (io_getevents()) to reap completed
I/O operations associated with a given completion group.
"""
homepage = "http://lse.sourceforge.net/io/aio.html"
url = "https://debian.inf.tu-dresden.de/debian/pool/main/liba/libaio/libaio_0.3.110.orig.tar.gz"
version('0.3.110', '2a35602e43778383e2f4907a4ca39ab8')
def install(self, spec, prefix):
# libaio is not supported on OS X
if spec.satisfies('arch=darwin-x86_64'):
# create a dummy directory
mkdir(prefix.lib)
return
conflicts('platform=darwin', msg="libaio is a linux specific library")
make('prefix={0}'.format(prefix), 'install')
@property
def install_targets(self):
return ['prefix={0}'.format(self.spec.prefix), 'install']

View File

@ -3,17 +3,19 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Lvm2(AutotoolsPackage):
"""LVM2 is the userspace toolset that provides logical volume
management facilities on linux. To use it you need 3 things:
device-mapper in your kernel, the userspace device-mapper support
library (libdevmapper) and the userspace LVM2 tools (dmsetup). These
userspace components, and associated header files, are provided by this
package. See http://sources.redhat.com/dm/ for additional information
about the device-mapper kernel and userspace components."""
management facilities on linux.
To use it you need 3 things: device-mapper in your kernel, the userspace
device-mapper support library (libdevmapper) and the userspace LVM2 tools
(dmsetup). These userspace components, and associated header files, are
provided by this package.
See http://sources.redhat.com/dm/ for additional information
about the device-mapper kernel and userspace components.
"""
homepage = "https://www.sourceware.org/lvm2"
url = "https://sourceware.org/pub/lvm2/releases/LVM2.2.03.05.tgz"
@ -35,13 +37,11 @@ def url_for_version(self, version):
depends_on('libaio')
depends_on('pkgconfig', type='build', when='+pkgconfig')
conflicts('platform=darwin',
msg='lvm2 depends on libaio which does not support Darwin')
def configure_args(self):
args = ['--with-confdir={0}'.
format(self.prefix.etc),
'--with-default-system-dir={0}'.
format(self.prefix.etc.lvm)]
if self.spec.satisfies('+pkgconfig'):
args.append('--enable-pkgconfig')
else:
args.append('--disable-pkgconfig')
return args
return [
'--with-confdir={0}'.format(self.prefix.etc),
'--with-default-system-dir={0}'.format(self.prefix.etc.lvm)
] + self.enable_or_disable('pkgconfig')

View File

@ -7,15 +7,20 @@
class Mariadb(CMakePackage):
"""MariaDB turns data into structured information in a wide array of
"""MariaDB Server is one of the most popular database servers
in the world.
MariaDB turns data into structured information in a wide array of
applications, ranging from banking to websites. It is an enhanced, drop-in
replacement for MySQL. MariaDB is used because it is fast, scalable and
robust, with a rich ecosystem of storage engines, plugins and many other
tools make it very versatile for a wide variety of use cases."""
tools make it very versatile for a wide variety of use cases.
"""
homepage = "https://mariadb.org/about/"
url = "http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-10.2.8/source/mariadb-10.2.8.tar.gz"
version('10.4.7', sha256='c8e6a6d0bb4f22c416ed675d24682a3ecfa383c5283efee70c8edf131374d817')
version('10.2.8', 'f93cbd5bfde3c0d082994764ff7db580')
version('10.1.23', '1a7392cc05c7c249acd4495022719ca8')
version('5.5.56', '8bc7772fea3e11b0bc1a09d2278e2e32')
@ -32,7 +37,7 @@ class Mariadb(CMakePackage):
depends_on('pkgconfig', type='build')
depends_on('bison', type='build')
depends_on('jemalloc')
depends_on('libaio')
depends_on('libaio', when='platform=linux')
depends_on('libedit')
depends_on('libevent', when='+nonblocking')
depends_on('ncurses')