From 81b1905c864b3feb61b3ea042c726d313919cd6b Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Thu, 22 Apr 2021 07:47:20 +0200 Subject: radare2: 5.2.0 -> 5.2.1 Also get rid of update script: Since we no longer bundle capstone it just adds a bunch of metadata. Now we can easier auto-update radare2. --- .../development/tools/analysis/radare2/default.nix | 39 ++------ pkgs/development/tools/analysis/radare2/update.py | 107 --------------------- 2 files changed, 9 insertions(+), 137 deletions(-) delete mode 100755 pkgs/development/tools/analysis/radare2/update.py (limited to 'pkgs') diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix index cdade7c273c..e59c48f91d3 100644 --- a/pkgs/development/tools/analysis/radare2/default.nix +++ b/pkgs/development/tools/analysis/radare2/default.nix @@ -1,5 +1,4 @@ { lib -, fetchpatch , stdenv , fetchFromGitHub , buildPackages @@ -27,44 +26,24 @@ , luaBindings ? false }: -let - inherit (lib) optional; - - # - # DO NOT EDIT! Automatically generated by ./update.py - gittap = "5.2.0"; - gittip = "cf3db945083fb4dab951874e5ec1283128deab11"; - rev = "5.2.0"; - version = "5.2.0"; - sha256 = "08azxfk6mw2vr0x4zbz0612rk7pj4mfz8shrzc9ima77wb52b8sm"; - # -in -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "radare2"; - inherit version; + version = "5.2.1"; src = fetchFromGitHub { owner = "radare"; repo = "radare2"; - inherit rev sha256; + rev = version; + sha256 = "0n3k190qjhdlj10fjqijx6ismz0g7fk28i83j0480cxdqgmmlbxc"; }; - patches = [ - # fix build against openssl, included in next release - (fetchpatch { - url = "https://github.com/radareorg/radare2/commit/e5e7469b6450c374e0884d35d44824e1a4eb46b4.patch"; - sha256 = "sha256-xTmMHvUdW7d2QG7d4hlvMgEcegND7pGU745TWGqzY44="; - }) - ]; - postInstall = '' install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm ''; WITHOUT_PULL = "1"; makeFlags = [ - "GITTAP=${gittap}" - "GITTIP=${gittip}" + "GITTAP=${version}" "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib" ]; configureFlags = [ @@ -89,10 +68,10 @@ stdenv.mkDerivation { zlib openssl libuv - ] ++ optional useX11 [ gtkdialog vte gtk2 ] - ++ optional rubyBindings [ ruby ] - ++ optional pythonBindings [ python3 ] - ++ optional luaBindings [ lua ]; + ] ++ lib.optional useX11 [ gtkdialog vte gtk2 ] + ++ lib.optional rubyBindings [ ruby ] + ++ lib.optional pythonBindings [ python3 ] + ++ lib.optional luaBindings [ lua ]; propagatedBuildInputs = [ # radare2 exposes r_lib which depends on these libraries diff --git a/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py deleted file mode 100755 index e1dfc071cd3..00000000000 --- a/pkgs/development/tools/analysis/radare2/update.py +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p nix -p python3 -p git -i python -# USAGE - just run the script: ./update.py -# When editing this file, make also sure it passes the mypy typecheck -# and is formatted with black. -import fileinput -import json -import xml.etree.ElementTree as ET -from urllib.parse import urlparse -import re -import subprocess -import tempfile -import urllib.request -from datetime import datetime -from pathlib import Path -from typing import Dict - -SCRIPT_DIR = Path(__file__).parent.resolve() - - -def sh(*args: str) -> str: - out = subprocess.check_output(list(args)) - return out.strip().decode("utf-8") - - -def prefetch_github(owner: str, repo: str, ref: str) -> str: - return sh( - "nix-prefetch-url", - "--unpack", - f"https://github.com/{owner}/{repo}/archive/{ref}.tar.gz", - ) - - -def get_radare2_rev() -> str: - feed_url = "https://github.com/radareorg/radare2/releases.atom" - with urllib.request.urlopen(feed_url) as resp: - tree = ET.fromstring(resp.read()) - releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry") - for release in releases: - link = release.find("{http://www.w3.org/2005/Atom}link") - assert link is not None - url = urlparse(link.attrib["href"]) - tag = url.path.split("/")[-1] - if re.match(r"[0-9.]+", tag): - return tag - else: - print(f"ignore {tag}") - raise RuntimeError(f"No release found at {feed_url}") - - -def git(dirname: str, *args: str) -> str: - return sh("git", "-C", dirname, *args) - - -def get_repo_info(dirname: str, rev: str) -> Dict[str, str]: - sha256 = prefetch_github("radare", "radare2", rev) - - return dict( - rev=rev, - sha256=sha256, - version_commit=git(dirname, "rev-list", "--all", "--count"), - gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"), - gittip=git(dirname, "rev-parse", "HEAD"), - ) - - -def main() -> None: - version = get_radare2_rev() - - with tempfile.TemporaryDirectory() as dirname: - git( - dirname, - "clone", - "--branch", - version, - "https://github.com/radare/radare2", - ".", - ) - nix_file = str(SCRIPT_DIR.joinpath("default.nix")) - - info = get_repo_info(dirname, version) - - timestamp = git(dirname, "log", "-n1", "--format=%at") - - in_block = False - with fileinput.FileInput(nix_file, inplace=True) as f: - for l in f: - if "#" in l: - in_block = True - print( - f""" # - # DO NOT EDIT! Automatically generated by ./update.py - gittap = "{info["gittap"]}"; - gittip = "{info["gittip"]}"; - rev = "{info["rev"]}"; - version = "{version}"; - sha256 = "{info["sha256"]}"; - #""" - ) - elif "#" in l: - in_block = False - elif not in_block: - print(l, end="") - - -if __name__ == "__main__": - main() -- cgit 1.4.1