Merge pull request #319608 from jleightcap/fern/libcpucycles

libcpucycles:  init at 20240318
This commit is contained in:
Weijia Wang 2024-07-16 09:47:09 +02:00 committed by GitHub
commit c2ed3fdd4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 57 additions and 0 deletions

View File

@ -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;
};
})

View File

@ -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 = [ ];