diff --git a/pkgs/by-name/li/libcpucycles/package.nix b/pkgs/by-name/li/libcpucycles/package.nix new file mode 100644 index 000000000000..18f7d1a4f002 --- /dev/null +++ b/pkgs/by-name/li/libcpucycles/package.nix @@ -0,0 +1,55 @@ +{ + lib, + stdenv, + fetchzip, + python3, + librandombytes, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libcpucycles"; + version = "20240318"; + + src = fetchzip { + url = "https://cpucycles.cr.yp.to/libcpucycles-${finalAttrs.version}.tar.gz"; + hash = "sha256-Fb73EOHGgEehZJwTCtCG12xwyiqtDXFs9eFDsHBQiDo="; + }; + + postPatch = '' + patchShebangs configure + patchShebangs scripts-build + ''; + + nativeBuildInputs = [ python3 ]; + + inherit (librandombytes) hardeningDisable configurePlatforms env; + + preFixup = lib.optionalString stdenv.isDarwin '' + install_name_tool -id "$out/lib/libcpucycles.1.dylib" "$out/lib/libcpucycles.1.dylib" + install_name_tool -change "libcpucycles.1.dylib" "$out/lib/libcpucycles.1.dylib" "$out/bin/cpucycles-info" + ''; + + meta = { + homepage = "https://cpucycles.cr.yp.to/"; + description = "Microlibrary for counting CPU cycles"; + changelog = "https://cpucycles.cr.yp.to/download.html"; + license = with lib.licenses; [ + # Upstream specifies the public domain licenses with the terms here https://cr.yp.to/spdx.html + publicDomain + cc0 + bsd0 + mit + mit0 + ]; + maintainers = with lib.maintainers; [ + kiike + imadnyc + jleightcap + ]; + # list of architectures it supports, but currentlly untested with nix https://cpucycles.cr.yp.to/libcpucycles-20240318/cpucycles/options.html + platforms = [ + "x86_64-linux" + "aarch64-linux" + ] ++ lib.platforms.darwin; + }; +}) diff --git a/pkgs/by-name/li/librandombytes/package.nix b/pkgs/by-name/li/librandombytes/package.nix index 1a4ae6885b0d..fa12ca954bdc 100644 --- a/pkgs/by-name/li/librandombytes/package.nix +++ b/pkgs/by-name/li/librandombytes/package.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs scripts-build ''; + __structuredAttrs = true; + # NOTE: librandombytes uses a custom Python `./configure`: it does not expect standard # autoconfig --build --host etc. arguments: disable configurePlatforms = [ ];