Merge pull request #245622 from nyanotech/nixpkgs-working

proxmark3: Replace with rfidresearchgroup fork
This commit is contained in:
Franz Pletz 2023-08-02 17:02:18 +02:00 committed by GitHub
commit d3b9717357
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 83 additions and 145 deletions

View file

@ -1,61 +1,86 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, ncurses, readline, pcsclite, qt5
, gcc-arm-embedded }:
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, gcc-arm-embedded
, readline
, bzip2
, openssl
, jansson
, whereami
, lua
, Foundation
, AppKit
, withGui ? true, wrapQtAppsHook, qtbase
, withPython ? true, python3
, withBlueshark ? false, bluez5
, withGeneric ? false
, withSmall ? false
, withoutFunctions ? []
, hardwarePlatform ? if withGeneric then "PM3GENERIC" else "PM3RDV4"
, hardwarePlatformExtras ? lib.optionalString withBlueshark "BTADDON"
, standalone ? "LF_SAMYRUN"
}:
assert withBlueshark -> stdenv.hostPlatform.isLinux;
stdenv.mkDerivation rec {
pname = "proxmark3";
version = "4.16717";
let
generic = { pname, version, rev, sha256 }:
stdenv.mkDerivation rec {
inherit pname version;
src = fetchFromGitHub {
owner = "Proxmark";
repo = "proxmark3";
inherit rev sha256;
};
nativeBuildInputs = [ pkg-config gcc-arm-embedded ];
buildInputs = [ ncurses readline pcsclite qt5.qtbase ];
dontWrapQtApps = true;
postPatch = ''
substituteInPlace client/Makefile --replace '-ltermcap' ' '
substituteInPlace liblua/Makefile --replace '-ltermcap' ' '
substituteInPlace client/flasher.c \
--replace 'armsrc/obj/fullimage.elf' \
'${placeholder "out"}/firmware/fullimage.elf'
'';
buildPhase = ''
make bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf client
'';
installPhase = ''
install -Dt $out/bin client/proxmark3
install -T client/flasher $out/bin/proxmark3-flasher
install -Dt $out/firmware bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
'';
meta = with lib; {
description = "Client for proxmark3, powerful general purpose RFID tool";
homepage = "http://www.proxmark.org";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ fpletz ];
};
};
in
{
proxmark3 = generic rec {
pname = "proxmark3";
version = "3.1.0";
src = fetchFromGitHub {
owner = "RfidResearchGroup";
repo = "proxmark3";
rev = "v${version}";
sha256 = "1qw28n1bhhl91ix77lv50qcr919fq3hjc8zhhqphwxal2svgx2jf";
sha256 = "sha256-rkfVgT+9fqlWvUXzLH28Nzd8HldJnU+IZz8conY8Mis=";
};
proxmark3-unstable = generic {
pname = "proxmark3-unstable";
version = "2019-12-28";
rev = "a4ff62be63ca2a81071e9aa2b882bd3ff57f13ad";
sha256 = "067lp28xqx61n3i2a2fy489r5frwxqrcfj8cpv3xdzi3gb3vk5c3";
patches = [
# Don't check for DISPLAY env variable on Darwin. pm3 uses this to test if
# XQuartz is installed, however it is not actually required for GUI features
./darwin-always-gui.patch
];
postPatch = ''
# Remove hardcoded paths on Darwin
substituteInPlace Makefile.defs \
--replace "/usr/bin/ar" "ar" \
--replace "/usr/bin/ranlib" "ranlib"
# Replace hardcoded path to libwhereami
substituteInPlace client/Makefile \
--replace "/usr/include/whereami.h" "${whereami}/include/whereami.h"
'';
nativeBuildInputs = [
pkg-config
gcc-arm-embedded
] ++ lib.optional withGui wrapQtAppsHook;
buildInputs = [
readline
bzip2
openssl
jansson
whereami
lua
] ++ lib.optional withGui qtbase
++ lib.optional withPython python3
++ lib.optional withBlueshark bluez5
++ lib.optionals stdenv.hostPlatform.isDarwin [ Foundation AppKit ];
makeFlags = [
"PREFIX=${placeholder "out"}"
"UDEV_PREFIX=${placeholder "out"}/etc/udev/rules.d"
"PLATFORM=${hardwarePlatform}"
"PLATFORM_EXTRAS=${hardwarePlatformExtras}"
"STANDALONE=${standalone}"
"USE_BREW=0"
] ++ lib.optional withSmall "PLATFORM_SIZE=256"
++ map (x: "SKIP_${x}=1") withoutFunctions;
enableParallelBuilding = true;
meta = with lib; {
description = "Client for proxmark3, powerful general purpose RFID tool";
homepage = "https://github.com/RfidResearchGroup/proxmark3";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ nyanotech emilytrau ];
platforms = platforms.unix;
};
}

View file

@ -1,86 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, gcc-arm-embedded
, readline
, bzip2
, openssl
, jansson
, whereami
, lua
, Foundation
, AppKit
, withGui ? true, wrapQtAppsHook, qtbase
, withPython ? true, python3
, withBlueshark ? false, bluez5
, withGeneric ? false
, withSmall ? false
, withoutFunctions ? []
, hardwarePlatform ? if withGeneric then "PM3GENERIC" else "PM3RDV4"
, hardwarePlatformExtras ? lib.optionalString withBlueshark "BTADDON"
, standalone ? "LF_SAMYRUN"
}:
assert withBlueshark -> stdenv.hostPlatform.isLinux;
stdenv.mkDerivation rec {
pname = "proxmark3-rrg";
version = "4.16717";
src = fetchFromGitHub {
owner = "RfidResearchGroup";
repo = "proxmark3";
rev = "v${version}";
sha256 = "sha256-rkfVgT+9fqlWvUXzLH28Nzd8HldJnU+IZz8conY8Mis=";
};
patches = [
# Don't check for DISPLAY env variable on Darwin. pm3 uses this to test if
# XQuartz is installed, however it is not actually required for GUI features
./darwin-always-gui.patch
];
postPatch = ''
# Remove hardcoded paths on Darwin
substituteInPlace Makefile.defs \
--replace "/usr/bin/ar" "ar" \
--replace "/usr/bin/ranlib" "ranlib"
# Replace hardcoded path to libwhereami
substituteInPlace client/Makefile \
--replace "/usr/include/whereami.h" "${whereami}/include/whereami.h"
'';
nativeBuildInputs = [
pkg-config
gcc-arm-embedded
] ++ lib.optional withGui wrapQtAppsHook;
buildInputs = [
readline
bzip2
openssl
jansson
whereami
lua
] ++ lib.optional withGui qtbase
++ lib.optional withPython python3
++ lib.optional withBlueshark bluez5
++ lib.optionals stdenv.hostPlatform.isDarwin [ Foundation AppKit ];
makeFlags = [
"PREFIX=${placeholder "out"}"
"UDEV_PREFIX=${placeholder "out"}/etc/udev/rules.d"
"PLATFORM=${hardwarePlatform}"
"PLATFORM_EXTRAS=${hardwarePlatformExtras}"
"STANDALONE=${standalone}"
"USE_BREW=0"
] ++ lib.optional withSmall "PLATFORM_SIZE=256"
++ map (x: "SKIP_${x}=1") withoutFunctions;
enableParallelBuilding = true;
meta = with lib; {
description = "Client for proxmark3, powerful general purpose RFID tool";
homepage = "https://github.com/RfidResearchGroup/proxmark3";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ nyanotech emilytrau ];
platforms = platforms.unix;
};
}

View file

@ -1416,6 +1416,8 @@ mapAliases ({
protobuf3_11 = throw "protobuf3_11 does not receive updates anymore and has been removed"; # Added 2022-09-28
protobuf3_17 = throw "protobuf3_17 does not receive updates anymore and has been removed"; # Added 2023-05-21
protonup = protonup-ng; # Added 2022-11-06
proxmark3-rrg = proxmark3; # Added 2023-07-25
proxmark3-unstable = throw "removed in favor of rfidresearchgroup fork"; # Added 2023-07-25
proxytunnel = throw "proxytunnel has been removed from nixpkgs, because it has not been update upstream since it was added to nixpkgs in 2008 and has therefore bitrotted."; # added 2021-12-15
pulseaudio-hsphfpd = throw "pulseaudio-hsphfpd upstream has been abandoned"; # Added 2022-03-23
pulseaudio-modules-bt = throw "pulseaudio-modules-bt has been abandoned, and is superseded by pulseaudio's native bt functionality"; # Added 2022-04-01

View file

@ -11949,10 +11949,7 @@ with pkgs;
prototypejs = callPackage ../development/libraries/prototypejs { };
inherit (callPackages ../tools/security/proxmark3 { gcc-arm-embedded = gcc-arm-embedded-8; })
proxmark3 proxmark3-unstable;
proxmark3-rrg = libsForQt5.callPackage ../tools/security/proxmark3/proxmark3-rrg.nix {
proxmark3 = libsForQt5.callPackage ../tools/security/proxmark3/default.nix {
inherit (darwin.apple_sdk.frameworks) Foundation AppKit;
};