Merge pull request #145411 from SuperSandro2000/libs

This commit is contained in:
Sandro 2021-11-13 13:21:16 +01:00 committed by GitHub
commit 6416f7aa6d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 70 additions and 75 deletions

View file

@ -3,7 +3,7 @@
, lib , lib
, gfortran , gfortran
, perl , perl
, llvmPackages ? null , llvmPackages
, precision ? "double" , precision ? "double"
, enableAvx ? stdenv.hostPlatform.avxSupport , enableAvx ? stdenv.hostPlatform.avxSupport
, enableAvx2 ? stdenv.hostPlatform.avx2Support , enableAvx2 ? stdenv.hostPlatform.avx2Support
@ -11,56 +11,50 @@
, enableFma ? stdenv.hostPlatform.fmaSupport , enableFma ? stdenv.hostPlatform.fmaSupport
, enableMpi ? false , enableMpi ? false
, mpi , mpi
, withDoc ? stdenv.cc.isGNU
}: }:
with lib;
assert stdenv.cc.isClang -> llvmPackages != null; assert lib.elem precision [ "single" "double" "long-double" "quad-precision" ];
assert elem precision [ "single" "double" "long-double" "quad-precision" ];
let stdenv.mkDerivation rec {
pname = "fftw-${precision}";
version = "3.3.9"; version = "3.3.9";
withDoc = stdenv.cc.isGNU;
in
stdenv.mkDerivation {
name = "fftw-${precision}-${version}";
src = fetchurl { src = fetchurl {
urls = [ urls = [
"http://fftw.org/fftw-${version}.tar.gz" "https://fftw.org/fftw-${version}.tar.gz"
"ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz" "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz"
]; ];
sha256 = "sha256-vyx85AsEroEa9xTetRJRDMLBe5q51t3PSf5Eh+6nrz0="; sha256 = "sha256-vyx85AsEroEa9xTetRJRDMLBe5q51t3PSf5Eh+6nrz0=";
}; };
outputs = [ "out" "dev" "man" ] outputs = [ "out" "dev" "man" ]
++ optional withDoc "info"; # it's dev-doc only ++ lib.optional withDoc "info"; # it's dev-doc only
outputBin = "dev"; # fftw-wisdom outputBin = "dev"; # fftw-wisdom
nativeBuildInputs = [ gfortran ]; nativeBuildInputs = [ gfortran ];
buildInputs = optionals stdenv.cc.isClang [ buildInputs = lib.optionals stdenv.cc.isClang [
# TODO: This may mismatch the LLVM version sin the stdenv, see #79818. # TODO: This may mismatch the LLVM version sin the stdenv, see #79818.
llvmPackages.openmp llvmPackages.openmp
] ++ optional enableMpi mpi; ] ++ lib.optional enableMpi mpi;
configureFlags = configureFlags = [
[ "--enable-shared" "--enable-shared"
"--enable-threads" "--enable-threads"
] "--enable-openmp"
++ optional (precision != "double") "--enable-${precision}" ] ++ lib.optional (precision != "double") "--enable-${precision}"
# all x86_64 have sse2 # all x86_64 have sse2
# however, not all float sizes fit # however, not all float sizes fit
++ optional (stdenv.isx86_64 && (precision == "single" || precision == "double") ) "--enable-sse2" ++ lib.optional (stdenv.isx86_64 && (precision == "single" || precision == "double") ) "--enable-sse2"
++ optional enableAvx "--enable-avx" ++ lib.optional enableAvx "--enable-avx"
++ optional enableAvx2 "--enable-avx2" ++ lib.optional enableAvx2 "--enable-avx2"
++ optional enableAvx512 "--enable-avx512" ++ lib.optional enableAvx512 "--enable-avx512"
++ optional enableFma "--enable-fma" ++ lib.optional enableFma "--enable-fma"
++ [ "--enable-openmp" ] ++ lib.optional enableMpi "--enable-mpi"
++ optional enableMpi "--enable-mpi"
# doc generation causes Fortran wrapper generation which hard-codes gcc # doc generation causes Fortran wrapper generation which hard-codes gcc
++ optional (!withDoc) "--disable-doc"; ++ lib.optional (!withDoc) "--disable-doc";
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -10,13 +10,11 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses libiconv ]; buildInputs = [ ncurses libiconv ];
buildPhase = '' preBuild = ''
sed -i s/gcc/cc/g Makefile sed -i s/gcc/cc/g Makefile
sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h
'' + ( lib.optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
sed -i s/-soname/-install_name/ Makefile sed -i s/-soname/-install_name/ Makefile
'' ) + ''
make
''; '';
installPhase = '' installPhase = ''
@ -26,11 +24,11 @@ stdenv.mkDerivation rec {
ln -s $out/lib/libstfl.so.0.24 $out/lib/libstfl.so.0 ln -s $out/lib/libstfl.so.0.24 $out/lib/libstfl.so.0
''; '';
meta = { meta = with lib; {
homepage = "http://www.clifford.at/stfl/"; homepage = "http://www.clifford.at/stfl/";
description = "A library which implements a curses-based widget set for text terminals"; description = "A library which implements a curses-based widget set for text terminals";
maintainers = with lib.maintainers; [ lovek323 ]; maintainers = with maintainers; [ lovek323 ];
license = lib.licenses.lgpl3; license = licenses.lgpl3;
platforms = lib.platforms.unix; platforms = platforms.unix;
}; };
} }

View file

@ -1,20 +1,19 @@
{ lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3Packages, dbus-glib, dbus { lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3, dbus-glib, dbus
, telepathy-farstream, telepathy-glib }: , telepathy-farstream, telepathy-glib }:
let stdenv.mkDerivation rec {
inherit (python3Packages) python dbus-python; pname = "telepathy-qt";
in stdenv.mkDerivation rec { version = "0.9.8";
name = "telepathy-qt-0.9.8";
src = fetchurl { src = fetchurl {
url = "https://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz"; url = "https://telepathy.freedesktop.org/releases/telepathy-qt/telepathy-qt-${version}.tar.gz";
sha256 = "bf8e2a09060addb80475a4938105b9b41d9e6837999b7a00e5351783857e18ad"; sha256 = "bf8e2a09060addb80475a4938105b9b41d9e6837999b7a00e5351783857e18ad";
}; };
nativeBuildInputs = [ cmake pkg-config python ]; nativeBuildInputs = [ cmake pkg-config python3 ];
propagatedBuildInputs = [ qtbase telepathy-farstream telepathy-glib ]; propagatedBuildInputs = [ qtbase telepathy-farstream telepathy-glib ];
buildInputs = [ dbus-glib ]; buildInputs = [ dbus-glib ];
checkInputs = [ dbus.daemon dbus-python ]; checkInputs = [ dbus.daemon python3.pkgs.dbus-python ];
# No point in building tests if they are not run # No point in building tests if they are not run
# On 0.9.7, they do not even build with QT4 # On 0.9.7, they do not even build with QT4
@ -29,5 +28,6 @@ in stdenv.mkDerivation rec {
homepage = "https://telepathy.freedesktop.org/components/telepathy-qt/"; homepage = "https://telepathy.freedesktop.org/components/telepathy-qt/";
license = licenses.lgpl21; license = licenses.lgpl21;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ ];
}; };
} }

View file

@ -11,31 +11,27 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ tokyocabinet ]; buildInputs = [ tokyocabinet ];
doCheck = false; # FIXME doCheck = false; # FIXME
meta = { meta = with lib; {
description = "Network interface of the Tokyo Cabinet DBM"; description = "Network interface of the Tokyo Cabinet DBM";
longDescription = ''
Tokyo Tyrant is a package of network interface to the DBM called
Tokyo Cabinet. Though the DBM has high performance, you might
bother in case that multiple processes share the same database, or
remote processes access the database. Thus, Tokyo Tyrant is
provided for concurrent and remote connections to Tokyo Cabinet. It
is composed of the server process managing a database and its access
library for client applications.
longDescription = Tokyo Tyrant is written in the C language, and provided as API of C,
'' Tokyo Tyrant is a package of network interface to the DBM called Perl, and Ruby. Tokyo Tyrant is available on platforms which have
Tokyo Cabinet. Though the DBM has high performance, you might API conforming to C99 and POSIX. Tokyo Tyrant is a free software
bother in case that multiple processes share the same database, or licensed under the GNU Lesser General Public License.
remote processes access the database. Thus, Tokyo Tyrant is '';
provided for concurrent and remote connections to Tokyo Cabinet. It
is composed of the server process managing a database and its access
library for client applications.
Tokyo Tyrant is written in the C language, and provided as API of C,
Perl, and Ruby. Tokyo Tyrant is available on platforms which have
API conforming to C99 and POSIX. Tokyo Tyrant is a free software
licensed under the GNU Lesser General Public License.
'';
homepage = "https://fallabs.com/tokyotyrant/"; homepage = "https://fallabs.com/tokyotyrant/";
license = licenses.lgpl21Plus;
license = lib.licenses.lgpl21Plus; platforms = platforms.linux;
maintainers = with maintainers; [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
maintainers = [ ];
}; };
} }

View file

@ -1,20 +1,24 @@
{ lib, stdenv, requireFile, unzip }: { lib, stdenv, requireFile, unzip }:
with lib;
stdenv.mkDerivation { stdenv.mkDerivation {
name = "iaca-3.0"; pname = "iaca";
version = "3.0";
src = requireFile { src = requireFile {
name = "iaca-version-v3.0-lin64.zip"; name = "iaca-version-v3.0-lin64.zip";
sha256 = "0qd81bxg269cwwvfmdp266kvhcl3sdvhrkfqdrbmanawk0w7lvp1"; sha256 = "0qd81bxg269cwwvfmdp266kvhcl3sdvhrkfqdrbmanawk0w7lvp1";
url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download"; url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download";
}; };
unpackCmd = ''${unzip}/bin/unzip "$src"''; unpackCmd = ''${unzip}/bin/unzip "$src"'';
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp iaca $out/bin cp iaca $out/bin
patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/iaca patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/iaca
''; '';
meta = {
meta = with lib; {
description = "Intel Architecture Code Analyzer"; description = "Intel Architecture Code Analyzer";
homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/"; homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
license = licenses.unfree; license = licenses.unfree;

View file

@ -1,10 +1,12 @@
{ lib, stdenv, fetchgit, opencflite, clang, libcxx }: { lib, stdenv, fetchFromGitHub, opencflite, clang, libcxx }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "maloader-0git"; pname = "maloader";
version = "unstable-2014-02-25";
src = fetchgit { src = fetchFromGitHub {
url = "git://github.com/shinh/maloader.git"; owner = "shinh";
repo = "maloader";
rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442"; rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442";
sha256 = "0dd1pn07x1y8pyn5wz8qcl1c1xwghyya4d060m3y9vx5dhv9xmzw"; sha256 = "0dd1pn07x1y8pyn5wz8qcl1c1xwghyya4d060m3y9vx5dhv9xmzw";
}; };
@ -28,11 +30,12 @@ stdenv.mkDerivation {
done done
''; '';
meta = { meta = with lib; {
description = "Mach-O loader for Linux"; description = "Mach-O loader for Linux";
homepage = "https://github.com/shinh/maloader"; homepage = "https://github.com/shinh/maloader";
license = lib.licenses.bsd2; license = licenses.bsd2;
platforms = lib.platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ ];
broken = true; # 2018-09-08, no succesful build since 2017-08-21 broken = true; # 2018-09-08, no succesful build since 2017-08-21
}; };
} }