beegfs: init at 6.17

package, kernel module, nixos module, and nixos test

authored by Markus Kowalewski and committed by Orivej Desh b7fdefc8 e0a4d1b1

+629
+1
nixos/modules/module-list.nix
··· 404 404 ./services/monitoring/vnstat.nix 405 405 ./services/monitoring/zabbix-agent.nix 406 406 ./services/monitoring/zabbix-server.nix 407 + ./services/network-filesystems/beegfs.nix 407 408 ./services/network-filesystems/cachefilesd.nix 408 409 ./services/network-filesystems/davfs2.nix 409 410 ./services/network-filesystems/drbd.nix
+343
nixos/modules/services/network-filesystems/beegfs.nix
··· 1 + { config, lib, pkgs, ...} : 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.beegfs; 7 + 8 + # functions for the generations of config files 9 + 10 + configMgmtd = name: cfg: pkgs.writeText "mgmt-${name}.conf" '' 11 + storeMgmtdDirectory = ${cfg.mgmtd.storeDir} 12 + storeAllowFirstRunInit = false 13 + connAuthFile = ${cfg.connAuthFile} 14 + connPortShift = ${toString cfg.connPortShift} 15 + 16 + ${cfg.mgmtd.extraConfig} 17 + ''; 18 + 19 + configAdmon = name: cfg: pkgs.writeText "admon-${name}.conf" '' 20 + sysMgmtdHost = ${cfg.mgmtdHost} 21 + connAuthFile = ${cfg.connAuthFile} 22 + connPortShift = ${toString cfg.connPortShift} 23 + 24 + ${cfg.admon.extraConfig} 25 + ''; 26 + 27 + configMeta = name: cfg: pkgs.writeText "meta-${name}.conf" '' 28 + storeMetaDirectory = ${cfg.meta.storeDir} 29 + sysMgmtdHost = ${cfg.mgmtdHost} 30 + connAuthFile = ${cfg.connAuthFile} 31 + connPortShift = ${toString cfg.connPortShift} 32 + storeAllowFirstRunInit = false 33 + 34 + ${cfg.mgmtd.extraConfig} 35 + ''; 36 + 37 + configStorage = name: cfg: pkgs.writeText "storage-${name}.conf" '' 38 + storeStorageDirectory = ${cfg.storage.storeDir} 39 + sysMgmtdHost = ${cfg.mgmtdHost} 40 + connAuthFile = ${cfg.connAuthFile} 41 + connPortShift = ${toString cfg.connPortShift} 42 + storeAllowFirstRunInit = false 43 + 44 + ${cfg.storage.extraConfig} 45 + ''; 46 + 47 + configHelperd = name: cfg: pkgs.writeText "helperd-${name}.conf" '' 48 + connAuthFile = ${cfg.connAuthFile} 49 + ${cfg.helperd.extraConfig} 50 + ''; 51 + 52 + configClientFilename = name : "/etc/beegfs/client-${name}.conf"; 53 + 54 + configClient = name: cfg: '' 55 + sysMgmtdHost = ${cfg.mgmtdHost} 56 + connAuthFile = ${cfg.connAuthFile} 57 + connPortShift = ${toString cfg.connPortShift} 58 + 59 + ${cfg.client.extraConfig} 60 + ''; 61 + 62 + serviceList = [ 63 + { service = "admon"; cfgFile = configAdmon; } 64 + { service = "meta"; cfgFile = configMeta; } 65 + { service = "mgmtd"; cfgFile = configMgmtd; } 66 + { service = "storage"; cfgFile = configStorage; } 67 + ]; 68 + 69 + # functions to generate systemd.service entries 70 + 71 + systemdEntry = service: cfgFile: (mapAttrs' ( name: cfg: 72 + (nameValuePair "beegfs-${service}-${name}" (mkIf cfg."${service}".enable { 73 + wantedBy = [ "multi-user.target" ]; 74 + requires = [ "network-online.target" ]; 75 + after = [ "network-online.target" ]; 76 + serviceConfig = rec { 77 + ExecStart = '' 78 + ${pkgs.beegfs}/bin/beegfs-${service} \ 79 + cfgFile=${cfgFile name cfg} \ 80 + pidFile=${PIDFile} 81 + ''; 82 + PIDFile = "/run/beegfs-${service}-${name}.pid"; 83 + TimeoutStopSec = "300"; 84 + }; 85 + }))) cfg); 86 + 87 + systemdHelperd = mapAttrs' ( name: cfg: 88 + (nameValuePair "beegfs-helperd-${name}" (mkIf cfg.client.enable { 89 + wantedBy = [ "multi-user.target" ]; 90 + requires = [ "network-online.target" ]; 91 + after = [ "network-online.target" ]; 92 + serviceConfig = rec { 93 + ExecStart = '' 94 + ${pkgs.beegfs}/bin/beegfs-helperd \ 95 + cfgFile=${configHelperd name cfg} \ 96 + pidFile=${PIDFile} 97 + ''; 98 + PIDFile = "/run/beegfs-helperd-${name}.pid"; 99 + TimeoutStopSec = "300"; 100 + }; 101 + }))) cfg; 102 + 103 + # wrappers to beegfs tools. Avoid typing path of config files 104 + utilWrappers = mapAttrsToList ( name: cfg: 105 + ( pkgs.runCommand "beegfs-utils-${name}" { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' 106 + mkdir -p $out/bin 107 + 108 + makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \ 109 + $out/bin/beegfs-check-servers-${name} \ 110 + --add-flags "-c ${configClientFilename name}" \ 111 + --prefix PATH : ${lib.makeBinPath [ pkgs.beegfs ]} 112 + 113 + makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \ 114 + $out/bin/beegfs-ctl-${name} \ 115 + --add-flags "--cfgFile=${configClientFilename name}" 116 + 117 + makeWrapper ${pkgs.beegfs}/bin/beegfs-ctl \ 118 + $out/bin/beegfs-df-${name} \ 119 + --add-flags "--cfgFile=${configClientFilename name}" \ 120 + --add-flags --listtargets \ 121 + --add-flags --hidenodeid \ 122 + --add-flags --pools \ 123 + --add-flags --spaceinfo 124 + 125 + makeWrapper ${pkgs.beegfs}/bin/beegfs-fsck \ 126 + $out/bin/beegfs-fsck-${name} \ 127 + --add-flags "--cfgFile=${configClientFilename name}" 128 + '' 129 + )) cfg; 130 + in 131 + { 132 + ###### interface 133 + 134 + options = { 135 + services.beegfsEnable = mkEnableOption "BeeGFS"; 136 + 137 + services.beegfs = mkOption { 138 + default = {}; 139 + description = '' 140 + BeeGFS configurations. Every mount point requires a separate configuration. 141 + ''; 142 + type = with types; attrsOf (submodule ({ config, ... } : { 143 + options = { 144 + mgmtdHost = mkOption { 145 + type = types.str; 146 + default = null; 147 + example = "master"; 148 + description = ''Hostname of managament host.''; 149 + }; 150 + 151 + connAuthFile = mkOption { 152 + type = types.str; 153 + default = ""; 154 + example = "/etc/my.key"; 155 + description = "File containing shared secret authentication."; 156 + }; 157 + 158 + connPortShift = mkOption { 159 + type = types.int; 160 + default = 0; 161 + example = 5; 162 + description = '' 163 + For each additional beegfs configuration shift all 164 + service TCP/UDP ports by at least 5. 165 + ''; 166 + }; 167 + 168 + client = { 169 + enable = mkEnableOption "BeeGFS client"; 170 + 171 + mount = mkOption { 172 + type = types.bool; 173 + default = true; 174 + description = "Create fstab entry automatically"; 175 + }; 176 + 177 + mountPoint = mkOption { 178 + type = types.str; 179 + default = "/run/beegfs"; 180 + description = '' 181 + Mount point under which the beegfs filesytem should be mounted. 182 + If mounted manually the mount option specifing the config file is needed: 183 + cfgFile=/etc/beegfs/beegfs-client-<name>.conf 184 + ''; 185 + }; 186 + 187 + extraConfig = mkOption { 188 + type = types.lines; 189 + default = ""; 190 + description = '' 191 + Additional lines for beegfs-client.conf. 192 + See documentation for further details. 193 + ''; 194 + }; 195 + }; 196 + 197 + helperd = { 198 + extraConfig = mkOption { 199 + type = types.lines; 200 + default = ""; 201 + description = '' 202 + Additional lines for beegfs-helperd.conf. See documentation 203 + for further details. 204 + ''; 205 + }; 206 + }; 207 + 208 + mgmtd = { 209 + enable = mkEnableOption "BeeGFS mgmtd daemon"; 210 + 211 + storeDir = mkOption { 212 + type = types.path; 213 + default = null; 214 + example = "/data/beegfs-mgmtd"; 215 + description = '' 216 + Data directory for mgmtd. 217 + Must not be shared with other beegfs daemons. 218 + This directory must exist and it must be initialized 219 + with beegfs-setup-mgmtd, e.g. "beegfs-setup-mgmtd -C -p <storeDir>" 220 + ''; 221 + }; 222 + 223 + extraConfig = mkOption { 224 + type = types.lines; 225 + default = ""; 226 + description = '' 227 + Additional lines for beegfs-mgmtd.conf. See documentation 228 + for further details. 229 + ''; 230 + }; 231 + }; 232 + 233 + admon = { 234 + enable = mkEnableOption "BeeGFS admon daemon"; 235 + 236 + extraConfig = mkOption { 237 + type = types.lines; 238 + default = ""; 239 + description = '' 240 + Additional lines for beegfs-admon.conf. See documentation 241 + for further details. 242 + ''; 243 + }; 244 + }; 245 + 246 + meta = { 247 + enable = mkEnableOption "BeeGFS meta data daemon"; 248 + 249 + storeDir = mkOption { 250 + type = types.path; 251 + default = null; 252 + example = "/data/beegfs-meta"; 253 + description = '' 254 + Data directory for meta data service. 255 + Must not be shared with other beegfs daemons. 256 + The underlying filesystem must be mounted with xattr turned on. 257 + This directory must exist and it must be initialized 258 + with beegfs-setup-meta, e.g. 259 + "beegfs-setup-meta -C -s <serviceID> -p <storeDir>" 260 + ''; 261 + }; 262 + 263 + extraConfig = mkOption { 264 + type = types.str; 265 + default = ""; 266 + description = '' 267 + Additional lines for beegfs-meta.conf. See documentation 268 + for further details. 269 + ''; 270 + }; 271 + }; 272 + 273 + storage = { 274 + enable = mkEnableOption "BeeGFS storage daemon"; 275 + 276 + storeDir = mkOption { 277 + type = types.path; 278 + default = null; 279 + example = "/data/beegfs-storage"; 280 + description = '' 281 + Data directories for storage service. 282 + Must not be shared with other beegfs daemons. 283 + The underlying filesystem must be mounted with xattr turned on. 284 + This directory must exist and it must be initialized 285 + with beegfs-setup-storage, e.g. 286 + "beegfs-setup-storage -C -s <serviceID> -i <storageTargetID> -p <storeDir>" 287 + ''; 288 + }; 289 + 290 + extraConfig = mkOption { 291 + type = types.str; 292 + default = ""; 293 + description = '' 294 + Addional lines for beegfs-storage.conf. See documentation 295 + for further details. 296 + ''; 297 + }; 298 + }; 299 + }; 300 + })); 301 + }; 302 + }; 303 + 304 + ###### implementation 305 + 306 + config = 307 + mkIf config.services.beegfsEnable { 308 + 309 + environment.systemPackages = utilWrappers; 310 + 311 + # Put the client.conf files in /etc since they are needed 312 + # by the commandline tools 313 + environment.etc = mapAttrs' ( name: cfg: 314 + (nameValuePair "beegfs/client-${name}.conf" (mkIf (cfg.client.enable) 315 + { 316 + enable = true; 317 + text = configClient name cfg; 318 + }))) cfg; 319 + 320 + # Kernel module, we need it only once per host. 321 + boot = mkIf ( 322 + foldr (a: b: a || b) false 323 + (map (x: x.client.enable) (collect (x: x ? client) cfg))) 324 + { 325 + kernelModules = [ "beegfs" ]; 326 + extraModulePackages = [ pkgs.linuxPackages.beegfs-module ]; 327 + }; 328 + 329 + # generate fstab entries 330 + fileSystems = mapAttrs' (name: cfg: 331 + (nameValuePair cfg.client.mountPoint (optionalAttrs cfg.client.mount (mkIf cfg.client.enable { 332 + device = "beegfs_nodev"; 333 + fsType = "beegfs"; 334 + mountPoint = cfg.client.mountPoint; 335 + options = [ "cfgFile=${configClientFilename name}" "_netdev" ]; 336 + })))) cfg; 337 + 338 + # generate systemd services 339 + systemd.services = systemdHelperd // 340 + foldr (a: b: a // b) {} 341 + (map (x: systemdEntry x.service x.cfgFile) serviceList); 342 + }; 343 + }
+1
nixos/release.nix
··· 232 232 tests.atd = callTest tests/atd.nix {}; 233 233 tests.acme = callTest tests/acme.nix {}; 234 234 tests.avahi = callTest tests/avahi.nix {}; 235 + tests.beegfs = callTest tests/beegfs.nix {}; 235 236 tests.bittorrent = callTest tests/bittorrent.nix {}; 236 237 tests.blivet = callTest tests/blivet.nix {}; 237 238 tests.boot = callSubTests tests/boot.nix {};
+115
nixos/tests/beegfs.nix
··· 1 + import ./make-test.nix ({ pkgs, ... } : 2 + 3 + let 4 + connAuthFile="beegfs/auth-def.key"; 5 + 6 + client = { config, pkgs, lib, ... } : { 7 + networking.firewall.enable = false; 8 + services.beegfsEnable = true; 9 + services.beegfs.default = { 10 + mgmtdHost = "mgmt"; 11 + connAuthFile = "/etc/${connAuthFile}"; 12 + client = { 13 + mount = false; 14 + enable = true; 15 + }; 16 + }; 17 + 18 + fileSystems = pkgs.lib.mkVMOverride # FIXME: this should be creatd by the module 19 + [ { mountPoint = "/beegfs"; 20 + device = "default"; 21 + fsType = "beegfs"; 22 + options = [ "cfgFile=/etc/beegfs/client-default.conf" "_netdev" ]; 23 + } 24 + ]; 25 + 26 + environment.etc."${connAuthFile}" = { 27 + enable = true; 28 + text = "ThisIsALousySecret"; 29 + mode = "0600"; 30 + }; 31 + }; 32 + 33 + 34 + server = service : { config, pkgs, lib, ... } : { 35 + networking.firewall.enable = false; 36 + boot.initrd.postDeviceCommands = '' 37 + ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb 38 + ''; 39 + 40 + virtualisation.emptyDiskImages = [ 4096 ]; 41 + 42 + fileSystems = pkgs.lib.mkVMOverride 43 + [ { mountPoint = "/data"; 44 + device = "/dev/disk/by-label/data"; 45 + fsType = "ext4"; 46 + } 47 + ]; 48 + 49 + environment.systemPackages = with pkgs; [ beegfs ]; 50 + environment.etc."${connAuthFile}" = { 51 + enable = true; 52 + text = "ThisIsALousySecret"; 53 + mode = "0600"; 54 + }; 55 + 56 + services.beegfsEnable = true; 57 + services.beegfs.default = { 58 + mgmtdHost = "mgmt"; 59 + connAuthFile = "/etc/${connAuthFile}"; 60 + "${service}" = { 61 + enable = true; 62 + storeDir = "/data"; 63 + }; 64 + }; 65 + }; 66 + 67 + in 68 + { 69 + name = "beegfs"; 70 + 71 + nodes = { 72 + meta = server "meta"; 73 + mgmt = server "mgmtd"; 74 + storage1 = server "storage"; 75 + storage2 = server "storage"; 76 + client1 = client; 77 + client2 = client; 78 + }; 79 + 80 + testScript = '' 81 + # Initalize the data directories 82 + $mgmt->waitForUnit("default.target"); 83 + $mgmt->succeed("beegfs-setup-mgmtd -C -f -p /data"); 84 + $mgmt->succeed("systemctl start beegfs-mgmtd-default"); 85 + 86 + $meta->waitForUnit("default.target"); 87 + $meta->succeed("beegfs-setup-meta -C -f -s 1 -p /data"); 88 + $meta->succeed("systemctl start beegfs-meta-default"); 89 + 90 + $storage1->waitForUnit("default.target"); 91 + $storage1->succeed("beegfs-setup-storage -C -f -s 1 -i 1 -p /data"); 92 + $storage1->succeed("systemctl start beegfs-storage-default"); 93 + 94 + $storage2->waitForUnit("default.target"); 95 + $storage2->succeed("beegfs-setup-storage -C -f -s 2 -i 2 -p /data"); 96 + $storage2->succeed("systemctl start beegfs-storage-default"); 97 + 98 + # 99 + 100 + # Basic test 101 + $client1->waitForUnit("beegfs.mount"); 102 + $client1->succeed("beegfs-check-servers-default"); 103 + $client1->succeed("echo test > /beegfs/test"); 104 + $client2->waitForUnit("beegfs.mount"); 105 + $client2->succeed("test -e /beegfs/test"); 106 + $client2->succeed("cat /beegfs/test | grep test"); 107 + 108 + # test raid0/stripping 109 + $client1->succeed("dd if=/dev/urandom bs=1M count=10 of=/beegfs/striped"); 110 + $client2->succeed("cat /beegfs/striped > /dev/null"); 111 + 112 + # check if fs is still healthy 113 + $client1->succeed("beegfs-fsck-default --checkfs"); 114 + ''; 115 + })
+122
pkgs/os-specific/linux/beegfs/default.nix
··· 1 + { stdenv, fetchurl, pkgconfig, unzip, which 2 + , libuuid, attr, xfsprogs, cppunit 3 + , zlib, openssl, sqlite, jre, openjdk, ant 4 + } : 5 + 6 + let 7 + version = "6.17"; 8 + 9 + subdirs = [ 10 + "beegfs_thirdparty/build" 11 + "beegfs_opentk_lib/build" 12 + "beegfs_common/build" 13 + "beegfs_admon/build" 14 + "beegfs_java_lib/build" 15 + "beegfs_ctl/build" 16 + "beegfs_fsck/build" 17 + "beegfs_helperd/build" 18 + "beegfs_meta/build" 19 + "beegfs_mgmtd/build" 20 + "beegfs_online_cfg/build" 21 + "beegfs_storage/build" 22 + "beegfs_utils/build" 23 + ]; 24 + 25 + in stdenv.mkDerivation rec { 26 + name = "beegfs-${version}"; 27 + 28 + src = fetchurl { 29 + url = "https://git.beegfs.com/pub/v6/repository/archive.tar.bz2?ref=${version}"; 30 + sha256 = "10xs7gzdmlg23k6zn1b7jij3lljn7rr1j6h476hq4lbg981qk3n3"; 31 + }; 32 + 33 + nativeBuildInputs = [ which unzip pkgconfig cppunit openjdk ant]; 34 + buildInputs = [ libuuid attr xfsprogs zlib openssl sqlite jre ]; 35 + 36 + postPatch = '' 37 + patchShebangs ./ 38 + find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \; 39 + find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \; 40 + find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \; 41 + ''; 42 + 43 + buildPhase = '' 44 + for i in ${toString subdirs}; do 45 + make -C $i 46 + done 47 + make -C beegfs_admon/build admon_gui 48 + ''; 49 + 50 + installPhase = '' 51 + binDir=$out/bin 52 + docDir=$out/share/doc/beegfs 53 + includeDir=$out/include/beegfs 54 + libDir=$out/lib 55 + libDirPkg=$out/lib/beegfs 56 + 57 + mkdir -p $binDir $libDir $libDirPkg $docDir $includeDir 58 + 59 + cp beegfs_admon/build/beegfs-admon $binDir 60 + cp beegfs_admon/build/dist/usr/bin/beegfs-admon-gui $binDir 61 + cp beegfs_admon_gui/dist/beegfs-admon-gui.jar $libDirPkg 62 + cp beegfs_admon/build/dist/etc/beegfs-admon.conf $docDir 63 + 64 + cp beegfs_java_lib/build/jbeegfs.jar $libDirPkg 65 + cp beegfs_java_lib/build/libjbeegfs.so $libDir 66 + 67 + cp beegfs_ctl/build/beegfs-ctl $binDir 68 + cp beegfs_fsck/build/beegfs-fsck $binDir 69 + 70 + cp beegfs_utils/scripts/beegfs-check-servers $binDir 71 + cp beegfs_utils/scripts/beegfs-df $binDir 72 + cp beegfs_utils/scripts/beegfs-net $binDir 73 + 74 + cp beegfs_helperd/build/beegfs-helperd $binDir 75 + cp beegfs_helperd/build/dist/etc/beegfs-helperd.conf $docDir 76 + 77 + cp beegfs_client_module/build/dist/sbin/beegfs-setup-client $binDir 78 + cp beegfs_client_module/build/dist/etc/beegfs-client.conf $docDir 79 + 80 + cp beegfs_meta/build/beegfs-meta $binDir 81 + cp beegfs_meta/build/dist/sbin/beegfs-setup-meta $binDir 82 + cp beegfs_meta/build/dist/etc/beegfs-meta.conf $docDir 83 + 84 + cp beegfs_mgmtd/build/beegfs-mgmtd $binDir 85 + cp beegfs_mgmtd/build/dist/sbin/beegfs-setup-mgmtd $binDir 86 + cp beegfs_mgmtd/build/dist/etc/beegfs-mgmtd.conf $docDir 87 + 88 + cp beegfs_storage/build/beegfs-storage $binDir 89 + cp beegfs_storage/build/dist/sbin/beegfs-setup-storage $binDir 90 + cp beegfs_storage/build/dist/etc/beegfs-storage.conf $docDir 91 + 92 + cp beegfs_opentk_lib/build/libbeegfs-opentk.so $libDir 93 + 94 + cp beegfs_client_devel/build/dist/usr/share/doc/beegfs-client-devel/examples/* $docDir 95 + cp -r beegfs_client_devel/include/* $includeDir 96 + ''; 97 + 98 + postFixup = '' 99 + substituteInPlace $out/bin/beegfs-admon-gui \ 100 + --replace " java " " ${jre}/bin/java " \ 101 + --replace "/opt/beegfs/beegfs-admon-gui/beegfs-admon-gui.jar" \ 102 + "$libDirPkg/beegfs-admon-gui.jar" 103 + ''; 104 + 105 + doCheck = true; 106 + 107 + checkPhase = '' 108 + beegfs_common/build/test-runner --text 109 + ''; 110 + 111 + meta = with stdenv.lib; { 112 + description = "High performance distributed filesystem with RDMA support"; 113 + homepage = "https://www.beegfs.io"; 114 + platforms = [ "i686-linux" "x86_64-linux" ]; 115 + license = { 116 + fullName = "BeeGFS_EULA"; 117 + url = "https://www.beegfs.io/docs/BeeGFS_EULA.txt"; 118 + free = false; 119 + }; 120 + maintainers = with maintainers; [ markuskowa ]; 121 + }; 122 + }
+43
pkgs/os-specific/linux/beegfs/kernel-module.nix
··· 1 + { stdenv, fetchurl, which 2 + , kmod, kernel 3 + } : 4 + 5 + let 6 + version = "6.17"; 7 + in stdenv.mkDerivation { 8 + name = "beegfs-module-${version}-${kernel.version}"; 9 + 10 + src = fetchurl { 11 + url = "https://git.beegfs.com/pub/v6/repository/archive.tar.bz2?ref=${version}"; 12 + sha256 = "10xs7gzdmlg23k6zn1b7jij3lljn7rr1j6h476hq4lbg981qk3n3"; 13 + }; 14 + 15 + hardeningDisable = [ "fortify" "pic" "stackprotector" ]; 16 + 17 + nativeBuildInputs = [ which kmod ]; 18 + 19 + makeFlags = [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/" ]; 20 + 21 + postPatch = '' 22 + patchShebangs ./ 23 + find -type f -name Makefile -exec sed -i "s:/bin/bash:${stdenv.shell}:" \{} \; 24 + find -type f -name Makefile -exec sed -i "s:/bin/true:true:" \{} \; 25 + find -type f -name "*.mk" -exec sed -i "s:/bin/true:true:" \{} \; 26 + ''; 27 + 28 + preBuild = "cd beegfs_client_module/build"; 29 + 30 + installPhase = '' 31 + instdir=$out/lib/modules/${kernel.modDirVersion}/extras/fs/beegfs 32 + mkdir -p $instdir 33 + cp beegfs.ko $instdir 34 + ''; 35 + 36 + meta = with stdenv.lib; { 37 + description = "High performance distributed filesystem with RDMA support"; 38 + homepage = "https://www.beegfs.io"; 39 + platforms = [ "i686-linux" "x86_64-linux" ]; 40 + license = licenses.gpl2; 41 + maintainers = with maintainers; [ markuskowa ]; 42 + }; 43 + }
+4
pkgs/top-level/all-packages.nix
··· 1338 1338 1339 1339 beanstalkd = callPackage ../servers/beanstalkd { }; 1340 1340 1341 + beegfs = callPackage ../os-specific/linux/beegfs { }; 1342 + 1341 1343 beets = callPackage ../tools/audio/beets { 1342 1344 pythonPackages = python2Packages; 1343 1345 }; ··· 12820 12822 bcc = callPackage ../os-specific/linux/bcc { }; 12821 12823 12822 12824 bbswitch = callPackage ../os-specific/linux/bbswitch {}; 12825 + 12826 + beegfs-module = callPackage ../os-specific/linux/beegfs/kernel-module.nix { }; 12823 12827 12824 12828 ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { }; 12825 12829