Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ stdenv 2, lib 3, fetchzip 4, fetchpatch 5, installShellFiles 6}: 7 8stdenv.mkDerivation rec { 9 pname = "mac-fdisk"; 10 version = "0.1.16"; 11 12 src = fetchzip { 13 url = "https://deb.debian.org/debian/pool/main/m/mac-fdisk/mac-fdisk_0.1.orig.tar.gz"; 14 sha256 = "sha256-pYNyhPvRKdIje0Rpay0OzmrkGcl+/JOhMv7r+2LZk/Q="; 15 }; 16 17 patches = [ 18 # Debian's changeset, extracted into a patch 19 (fetchpatch { 20 url = "https://git.adelielinux.org/adelie/packages/-/raw/1b708c8a90e3548c4954c6367a9376f76f3746bd/user/mac-fdisk/mac-fdisk-0.1-debian.patch"; 21 sha256 = "sha256-a9pGF+UsFeZiXgracmT4anqgpmcGcS/W3jGtFzHZtt4="; 22 }) 23 # Include a lot more headers and remove a bunch of braindead __linux__ checks 24 (fetchpatch { 25 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-0.1-headers.patch"; 26 sha256 = "sha256-FIk9K+lP+3e1pgmNfymTdpdSoTpBDv29kmwYgqYwWQw="; 27 }) 28 # Add support for more architectures 29 (fetchpatch { 30 url = "https://git.adelielinux.org/adelie/packages/-/raw/1b708c8a90e3548c4954c6367a9376f76f3746bd/user/mac-fdisk/mac-fdisk-0.1-more-arches.patch"; 31 sha256 = "sha256-HNRmzETUmKfZQFrjg6Y/HPwUnLk0vO5DokfU4umdOm0="; 32 }) 33 # From p16 (source?), adjusts some types & fixes PPC64 support 34 (fetchpatch { 35 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-0.1_p16-ppc64.patch"; 36 sha256 = "sha256-GK0nfga59nOXotkbKI+2ejA9TtyZUwDIxuXWFGGbeFg="; 37 }) 38 # From p16 (source?), makes some inlines static 39 (fetchpatch { 40 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-0.1_p16-proper-inline.patch"; 41 sha256 = "sha256-wr2teKpm0FyqNudKYlTD49pTFDis33Fo+0LULNYIJko="; 42 }) 43 # Adds x86_64 support 44 (fetchpatch { 45 url = "https://git.adelielinux.org/adelie/packages/-/raw/1b708c8a90e3548c4954c6367a9376f76f3746bd/user/mac-fdisk/mac-fdisk-amd64.patch"; 46 sha256 = "sha256-iO4/sY5sGKQyymMmAOb/TlCc9id2qgEDw7E8pFZpsHI="; 47 }) 48 # Fix missing header in fdisk.c on musl 49 (fetchpatch { 50 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-fdisk-header-musl.patch"; 51 sha256 = "sha256-mKBVjvLKtxKPADeoPqp17YdJ1QWj2enAYhKKSqTnQ44="; 52 }) 53 # Support disks >550GB 54 (fetchpatch { 55 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-large-disk-support.patch"; 56 sha256 = "sha256-IXZZdozqZKyZEz87ZzB8Jof22GgvHf4GaXBqSKn8su8="; 57 }) 58 # Enable Large File Support (>2GiB) 59 (fetchpatch { 60 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-largerthan2gb.patch"; 61 sha256 = "sha256-ATK7QYXV7BOk8iIFeXY8g+ZHLuuhww9pcrqOMDn/oLM="; 62 }) 63 # Fix compilation on non-glibc 64 (fetchpatch { 65 url = "https://git.adelielinux.org/adelie/packages/-/raw/1fa4c88ee21866eeb0feae8f6b0bf609a04711cc/user/mac-fdisk/mac-fdisk-non-glibc-support.patch"; 66 sha256 = "sha256-CBZUKf7dPvvpuG5L+SI1FQ4W7/fDgeKXHUMFkJNu/MY="; 67 }) 68 # Flush stdout after printing prompt for better UX 69 (fetchpatch { 70 url = "https://git.adelielinux.org/adelie/packages/-/raw/656ae6bf9f8a64aee95c4797b20bfe713627f1f4/user/mac-fdisk/flush-stdout.patch"; 71 sha256 = "sha256-k7+UPiUf/oCQdDhxDcC+FRwkxS89WSsYzFw6fUB/10I="; 72 }) 73 ]; 74 75 nativeBuildInputs = [ 76 installShellFiles 77 ]; 78 79 enableParallelBuilding = true; 80 81 env.NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE"; 82 83 hardeningDisable = [ "format" ]; 84 85 installPhase = '' 86 runHook preInstall 87 88 install -Dm755 pdisk $out/sbin/mac-fdisk 89 install -Dm755 fdisk $out/sbin/pmac-fdisk 90 91 for manpage in {,p}mac-fdisk.8; do 92 mv "$manpage".in $manpage 93 installManPage $manpage 94 done 95 96 runHook postInstall 97 ''; 98 99 meta = with lib; { 100 description = "68K and PowerPC Mac disk partitioning utility, Adélie Linux version"; 101 # http://ftp.mklinux.apple.com:/pub/Other_Tools/ but that one's looong dead, link goes to the patch compilation we're using 102 homepage = "https://git.adelielinux.org/adelie/packages/-/tree/master/user/mac-fdisk"; 103 license = with licenses; [ 104 hpnd # original license statements seems to match this (in files that are shared with pdisk) 105 gpl1Plus # fdisk.c 106 ]; 107 maintainers = with maintainers; [ OPNA2608 ]; 108 # the toolchain that's being expected for Mac support (SCSI.h from Universal Headers 2.0, SIOUX.h from Metrowerks CoreWarrior) is ancient, unsure about BSDs 109 platforms = platforms.linux; 110 badPlatforms = platforms.aarch64; # missing some platform definitions 111 }; 112}