nixpkgs/pkgs/tools/filesystems/supertag/default.nix
Andrew Childs 7869d16545 llvmPackages: Multuple outputs for everythting
Also begin to start work on cross compilation, though that will have to
be finished later.

The patches are based on the first version of
https://reviews.llvm.org/D99484. It's very annoying to do the
back-porting but the review has uncovered nothing super major so I'm
fine sticking with what I've got.

Beyond making the outputs work, I also strove to re-sync the packages,
as they have been drifting pointlessly apart for some time.

----

Other misc notes, highly incomplete

- lvm-config-native and llvm-config are put in `dev` because they are
  tools just for build time.

- Clang no longer has an lld dep. That was introduced in
  db29857eb3, but if clang needs help
  finding lld when it is used we should just pass it flags / put in the
  resource dir. Providing it at build time increases critical path
  length for no good reason.

----

A note on `nativeCC`:

`stdenv` takes tools from the previous stage, so:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.stdenv.cc`: `(?0, ?1, x)`

while:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.targetPackages`: `(x, x, ?2)`
3. `pkgsBuildBuild.targetPackages.stdenv.cc`: `(?1, x, x)`
2021-04-30 05:41:00 +00:00

42 lines
1.2 KiB
Nix

{ lib, rustPlatform, fetchFromGitHub
, clang, llvmPackages, pkg-config
, dbus, fuse, sqlite
}:
rustPlatform.buildRustPackage rec {
pname = "supertag";
version = "0.1.4";
src = fetchFromGitHub {
owner = "amoffat";
repo = pname;
rev = "v${version}";
sha256 = "0jzm7pn38hlr96n0z8gqfsfdbw48y0nnbsgjdq7hpgwmcgvgqdam";
};
cargoSha256 = "1mzmp1jcxgn2swp52r9y7k09fk0z67i1qafzkkzlfxxd10vfr70v";
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
nativeBuildInputs = [ clang pkg-config ];
buildInputs = [ dbus fuse sqlite ];
# The test are requiring extended permissions.
doCheck = false;
meta = with lib; {
description = "A tag-based filesystem";
longDescription = ''
Supertag is a tag-based filesystem, written in Rust, for Linux and MacOS.
It provides a tag-based view of your files by removing the hierarchy
constraints typically imposed on files and folders. In other words, it
allows you to think about your files not as objects stored in folders, but
as objects that can be filtered by folders.
'';
homepage = "https://github.com/amoffat/supertag";
license = licenses.agpl3Plus;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ oxzi ];
};
}