From 678ffaca3c410cb5d754e7744b81aa88b7470282 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Wed, 2 Jul 2025 23:17:19 +0800 Subject: [PATCH 1/2] magic-vlsi: 8.3.529 -> 8.3.530, fix technology missing Signed-off-by: Qiming Chu --- pkgs/by-name/ma/magic-vlsi/package.nix | 39 ++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ma/magic-vlsi/package.nix b/pkgs/by-name/ma/magic-vlsi/package.nix index fd1d5a6909c0..14a63b1c83f2 100644 --- a/pkgs/by-name/ma/magic-vlsi/package.nix +++ b/pkgs/by-name/ma/magic-vlsi/package.nix @@ -1,7 +1,8 @@ { lib, stdenv, - fetchurl, + fetchFromGitHub, + git, python3, m4, cairo, @@ -15,14 +16,21 @@ stdenv.mkDerivation rec { pname = "magic-vlsi"; - version = "8.3.529"; + version = "8.3.530"; - src = fetchurl { - url = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz"; - sha256 = "sha256-O5NauR2TYRS2bzEVQlhCqkshlojIGqM1Y3KLN00YP40="; + src = fetchFromGitHub { + owner = "RTimothyEdwards"; + repo = "magic"; + tag = "${version}"; + sha256 = "sha256-OQPOEDcU0BuGdI7+saOTntosa8+mQcGbZuwzIlvRBSk="; + leaveDotGit = true; }; - nativeBuildInputs = [ python3 ]; + nativeBuildInputs = [ + python3 + git + ]; + buildInputs = [ cairo libX11 @@ -46,6 +54,25 @@ stdenv.mkDerivation rec { patchShebangs scripts/* ''; + postInstall = '' + # Fix necessary files missing in sys directory + mkdir -p $out/lib/magic/sys + + shopt -s nullglob + + for techfile in scmos/*.tech; do + install -Dm644 "$techfile" $out/lib/magic/sys/$(basename "$techfile") + done + + for dstylefile in scmos/*.dstyle; do + install -Dm644 "$dstylefile" $out/lib/magic/sys/$(basename "$dstylefile") + done + + for cmapfile in scmos/*.cmap; do + install -Dm644 "$cmapfile" $out/lib/magic/sys/$(basename "$cmapfile") + done + ''; + env.NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; meta = with lib; { From fdb85c6dd4be7515e92081731c0848407e3c2b3c Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Wed, 2 Jul 2025 23:32:55 +0800 Subject: [PATCH 2/2] magic-vlsi: fix darwin Signed-off-by: Qiming Chu --- pkgs/by-name/ma/magic-vlsi/package.nix | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ma/magic-vlsi/package.nix b/pkgs/by-name/ma/magic-vlsi/package.nix index 14a63b1c83f2..21c4f4e93a03 100644 --- a/pkgs/by-name/ma/magic-vlsi/package.nix +++ b/pkgs/by-name/ma/magic-vlsi/package.nix @@ -7,11 +7,13 @@ m4, cairo, libX11, + mesa, mesa_glu, ncurses, tcl, tcsh, tk, + fixDarwinDylibNames, }: stdenv.mkDerivation rec { @@ -26,15 +28,20 @@ stdenv.mkDerivation rec { leaveDotGit = true; }; - nativeBuildInputs = [ - python3 - git - ]; + nativeBuildInputs = + [ + python3 + git + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + fixDarwinDylibNames + ]; buildInputs = [ cairo libX11 m4 + mesa mesa_glu ncurses tcl @@ -73,7 +80,16 @@ stdenv.mkDerivation rec { done ''; + postFixup = lib.optionalString stdenv.hostPlatform.isDarwin '' + # Fix dylib paths on macOS + install_name_tool -add_rpath ${mesa.out}/lib $out/lib/magic/tcl/tclmagic.dylib + install_name_tool -add_rpath ${mesa_glu.out}/lib $out/lib/magic/tcl/tclmagic.dylib + install_name_tool -add_rpath ${mesa.out}/lib $out/lib/magic/tcl/magicexec + install_name_tool -add_rpath ${mesa_glu.out}/lib $out/lib/magic/tcl/magicexec + ''; + env.NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; + env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-headerpad_max_install_names"; meta = with lib; { description = "VLSI layout tool written in Tcl";