diff options
author | Markus Kowalewski <markus.kowalewski@gmail.com> | 2017-12-28 17:51:42 -0800 |
---|---|---|
committer | Orivej Desh <orivej@gmx.fr> | 2017-12-31 07:07:02 +0000 |
commit | b7fdefc8a4182956ec114eeeaae029418a310c4d (patch) | |
tree | 086810992dda5fdc426194d266a6fd18b13e037a /pkgs | |
parent | e0a4d1b158dc096bc1bd78e756c70bdf136cc14e (diff) | |
download | nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar.gz nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar.bz2 nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar.lz nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar.xz nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.tar.zst nixlib-b7fdefc8a4182956ec114eeeaae029418a310c4d.zip |
beegfs: init at 6.17
package, kernel module, nixos module, and nixos test
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/os-specific/linux/beegfs/default.nix | 122 | ||||
-rw-r--r-- | pkgs/os-specific/linux/beegfs/kernel-module.nix | 43 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
3 files changed, 169 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/beegfs/default.nix b/pkgs/os-specific/linux/beegfs/default.nix new file mode 100644 index 000000000000..1bb5612ce92c --- /dev/null +++ b/pkgs/os-specific/linux/beegfs/default.nix @@ -0,0 +1,122 @@ +{ stdenv, fetchurl, pkgconfig, unzip, which +, libuuid, attr, xfsprogs, cppunit +, zlib, openssl, sqlite, jre, openjdk, ant +} : + +let + version = "6.17"; + + subdirs = [ + "beegfs_thirdparty/build" + "beegfs_opentk_lib/build" + "beegfs_common/build" + "beegfs_admon/build" + "beegfs_java_lib/build" + "beegfs_ctl/build" + "beegfs_fsck/build" + "beegfs_helperd/build" + "beegfs_meta/build" + "beegfs_mgmtd/build" + "beegfs_online_cfg/build" + "beegfs_storage/build" + "beegfs_utils/build" + ]; + +in stdenv.mkDerivation rec { + name = "beegfs-${version}"; + + src = fetchurl { + url = "https://git.beegfs.com/pub/v6/repository/archive.tar.bz2?ref=${version}"; + sha256 = "10xs7gzdmlg23k6zn1b7jij3lljn7rr1j6h476hq4lbg981qk3n3"; + }; + + nativeBuildInputs = [ which unzip pkgconfig cppunit openjdk ant]; + buildInputs = [ libuuid attr xfsprogs zlib openssl sqlite jre ]; + + postPatch = '' + patchShebangs ./ + find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \; + find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \; + find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \; + ''; + + buildPhase = '' + for i in ${toString subdirs}; do + make -C $i + done + make -C beegfs_admon/build admon_gui + ''; + + installPhase = '' + binDir=$out/bin + docDir=$out/share/doc/beegfs + includeDir=$out/include/beegfs + libDir=$out/lib + libDirPkg=$out/lib/beegfs + + mkdir -p $binDir $libDir $libDirPkg $docDir $includeDir + + cp beegfs_admon/build/beegfs-admon $binDir + cp beegfs_admon/build/dist/usr/bin/beegfs-admon-gui $binDir + cp beegfs_admon_gui/dist/beegfs-admon-gui.jar $libDirPkg + cp beegfs_admon/build/dist/etc/beegfs-admon.conf $docDir + + cp beegfs_java_lib/build/jbeegfs.jar $libDirPkg + cp beegfs_java_lib/build/libjbeegfs.so $libDir + + cp beegfs_ctl/build/beegfs-ctl $binDir + cp beegfs_fsck/build/beegfs-fsck $binDir + + cp beegfs_utils/scripts/beegfs-check-servers $binDir + cp beegfs_utils/scripts/beegfs-df $binDir + cp beegfs_utils/scripts/beegfs-net $binDir + + cp beegfs_helperd/build/beegfs-helperd $binDir + cp beegfs_helperd/build/dist/etc/beegfs-helperd.conf $docDir + + cp beegfs_client_module/build/dist/sbin/beegfs-setup-client $binDir + cp beegfs_client_module/build/dist/etc/beegfs-client.conf $docDir + + cp beegfs_meta/build/beegfs-meta $binDir + cp beegfs_meta/build/dist/sbin/beegfs-setup-meta $binDir + cp beegfs_meta/build/dist/etc/beegfs-meta.conf $docDir + + cp beegfs_mgmtd/build/beegfs-mgmtd $binDir + cp beegfs_mgmtd/build/dist/sbin/beegfs-setup-mgmtd $binDir + cp beegfs_mgmtd/build/dist/etc/beegfs-mgmtd.conf $docDir + + cp beegfs_storage/build/beegfs-storage $binDir + cp beegfs_storage/build/dist/sbin/beegfs-setup-storage $binDir + cp beegfs_storage/build/dist/etc/beegfs-storage.conf $docDir + + cp beegfs_opentk_lib/build/libbeegfs-opentk.so $libDir + + cp beegfs_client_devel/build/dist/usr/share/doc/beegfs-client-devel/examples/* $docDir + cp -r beegfs_client_devel/include/* $includeDir + ''; + + postFixup = '' + substituteInPlace $out/bin/beegfs-admon-gui \ + --replace " java " " ${jre}/bin/java " \ + --replace "/opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar" \ + "$libDirPkg/beegfs-admon-gui.jar" + ''; + + doCheck = true; + + checkPhase = '' + beegfs_common/build/test-runner --text + ''; + + meta = with stdenv.lib; { + description = "High performance distributed filesystem with RDMA support"; + homepage = "https://www.beegfs.io"; + platforms = [ "i686-linux" "x86_64-linux" ]; + license = { + fullName = "BeeGFS_EULA"; + url = "https://www.beegfs.io/docs/BeeGFS_EULA.txt"; + free = false; + }; + maintainers = with maintainers; [ markuskowa ]; + }; +} diff --git a/pkgs/os-specific/linux/beegfs/kernel-module.nix b/pkgs/os-specific/linux/beegfs/kernel-module.nix new file mode 100644 index 000000000000..e68a9eab3785 --- /dev/null +++ b/pkgs/os-specific/linux/beegfs/kernel-module.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchurl, which +, kmod, kernel +} : + +let + version = "6.17"; +in stdenv.mkDerivation { + name = "beegfs-module-${version}-${kernel.version}"; + + src = fetchurl { + url = "https://git.beegfs.com/pub/v6/repository/archive.tar.bz2?ref=${version}"; + sha256 = "10xs7gzdmlg23k6zn1b7jij3lljn7rr1j6h476hq4lbg981qk3n3"; + }; + + hardeningDisable = [ "fortify" "pic" "stackprotector" ]; + + nativeBuildInputs = [ which kmod ]; + + makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/" ]; + + postPatch = '' + patchShebangs ./ + find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \; + find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \; + find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \; + ''; + + preBuild = "cd beegfs_client_module/build"; + + installPhase = '' + instdir=$out/lib/modules/${kernel.modDirVersion}/extras/fs/beegfs + mkdir -p $instdir + cp beegfs.ko $instdir + ''; + + meta = with stdenv.lib; { + description = "High performance distributed filesystem with RDMA support"; + homepage = "https://www.beegfs.io"; + platforms = [ "i686-linux" "x86_64-linux" ]; + license = licenses.gpl2; + maintainers = with maintainers; [ markuskowa ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 63fe2f5a6d27..8f69c2e53a55 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1338,6 +1338,8 @@ with pkgs; beanstalkd = callPackage ../servers/beanstalkd { }; + beegfs = callPackage ../os-specific/linux/beegfs { }; + beets = callPackage ../tools/audio/beets { pythonPackages = python2Packages; }; @@ -12821,6 +12823,8 @@ with pkgs; bbswitch = callPackage ../os-specific/linux/bbswitch {}; + beegfs-module = callPackage ../os-specific/linux/beegfs/kernel-module.nix { }; + ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { }; blcr = callPackage ../os-specific/linux/blcr { }; |