Loading pkgs/development/compilers/djgpp/default.nix 0 → 100644 +94 −0 Original line number Diff line number Diff line { bison , buildPackages , curl , fetchFromGitHub , fetchurl , file , flex , targetArchitecture ? "i586" , lib , makeWrapper , perl , stdenv , texinfo , unzip , which }: let s = import ./sources.nix { inherit fetchurl fetchFromGitHub; }; in assert lib.elem targetArchitecture [ "i586" "i686" ]; stdenv.mkDerivation rec { pname = "djgpp"; version = s.gccVersion; src = s.src; patchPhase = '' runHook prePatch for f in "build-djgpp.sh" "script/${version}" "setenv/copyfile.sh"; do substituteInPlace "$f" --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' done '' # i686 patches from https://github.com/andrewwutw/build-djgpp/issues/45#issuecomment-1484010755 # The build script unpacks some files so we can't patch ahead of time, instead patch the script # to patch after it extracts + lib.optionalString (targetArchitecture == "i686") '' sed -i 's/i586/i686/g' setenv/setenv script/${version} sed -i '/Building DXE tools./a sed -i "s/i586/i686/g" src/makefile.def src/dxe/makefile.dxe' script/${version} '' + '' runHook postPatch ''; buildInputs = [ bison curl file flex makeWrapper perl texinfo unzip which ]; hardeningDisable = [ "format" ]; buildPhase = '' runHook preBuild mkdir download; pushd download ln -s "${s.autoconf}" "${s.autoconf.name}" ln -s "${s.automake}" "${s.automake.name}" ln -s "${s.binutils}" "${s.binutils.name}" ln -s "${s.djcrossgcc}" "${s.djcrossgcc.name}" ln -s "${s.djcrx}" "${s.djcrx.name}" ln -s "${s.djdev}" "${s.djdev.name}" ln -s "${s.djlsr}" "${s.djlsr.name}" ln -s "${s.gcc}" "${s.gcc.name}" ln -s "${s.gmp}" "${s.gmp.name}" ln -s "${s.mpc}" "${s.mpc.name}" ln -s "${s.mpfr}" "${s.mpfr.name}" popd DJGPP_PREFIX=$out ./build-djgpp.sh ${version} runHook postBuild ''; postInstall = '' for f in dxegen dxe3gen dxe3res exe2coff stubify; do cp -v "$out/${targetArchitecture}-pc-msdosdjgpp/bin/$f" "$out/bin" done for f in dxegen dxe3gen; do wrapProgram $out/bin/$f --set DJDIR $out done ''; meta = { description = "A complete 32-bit GNU-based development system for Intel x86 PCs running DOS"; homepage = "https://www.delorie.com/djgpp/"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ hughobrien ]; platforms = lib.platforms.linux; }; } pkgs/development/compilers/djgpp/sources.nix 0 → 100644 +81 −0 Original line number Diff line number Diff line let # adapted from https://github.com/andrewwutw/build-djgpp/blob/master/script/12.1.0 gccVersion = "12.2.0"; binutilsVersion = "230"; djcrxVersion = "205"; djlsrVersion = "205"; djdevVersion = "205"; gmpVersion = "6.2.1"; mpfrVersion = "4.1.0"; mpcVersion = "1.2.1"; autoconfVersion = "2.69"; automakeVersion = "1.15.1"; djgppFtpMirror = "https://www.mirrorservice.org/sites/ftp.delorie.com/pub"; gnuFtpMirror = "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu"; in { fetchFromGitHub, fetchurl }: { inherit gccVersion; src = fetchFromGitHub { owner = "andrewwutw"; repo = "build-djgpp"; rev = "0dc28365825f853c3cc6ad0d8f10f8570bed5828"; hash = "sha256-L7ROTbnd/Ry/E9cP0N+l0y0cUzkkbC5B2aU9/r3rLQg="; }; autoconf = fetchurl { url = "${gnuFtpMirror}/autoconf/autoconf-${autoconfVersion}.tar.xz"; hash = "sha256-ZOvOyfisWySHElqGp3YNJZGsnh09vVlIljP53mKldoQ="; }; automake = fetchurl { url = "${gnuFtpMirror}/Automake/automake-${automakeVersion}.tar.xz"; hash = "sha256-r2ujkUIiBofFAPebSqLxgdmyTk+NjsSXzqS6JsZL7a8="; }; binutils = fetchurl { url = "${djgppFtpMirror}/djgpp/deleted/v2gnu/bnu${binutilsVersion}s.zip"; hash = "sha256-DSFQyFvswmP5/qYXbesFmUJ9tqEFJpILb0mGclfpXX0="; }; djcrossgcc = fetchurl { url = "${djgppFtpMirror}/djgpp/rpms/djcross-gcc-${gccVersion}/djcross-gcc-${gccVersion}.tar.bz2"; hash = "sha256-UL+wkeNv3LCQog0JigShIyBM7qJRqvN58Zitmti/BZM="; }; djcrx = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djcrx${djcrxVersion}.zip"; hash = "sha256-IidO2NXuV898zxYfXhaE/RwBkgaHJKfTThveFoBBymA="; }; djdev = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djdev${djdevVersion}.zip"; hash = "sha256-RVfftsFh0yZoCuX6cfAJisSUJaGxG5CgILgxYutwXdo="; }; djlsr = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djlsr${djlsrVersion}.zip"; hash = "sha256-gGkLbkT/i8bGCB/KH0+uuhWRxEkLdu8OyLNYR7ql3uo="; }; gcc = fetchurl { url = "${gnuFtpMirror}/gcc/gcc-${gccVersion}/gcc-${gccVersion}.tar.xz"; hash = "sha256-5UnPnPNZSgDie2WJ1DItcOByDN0hPzm+tBgeBpJiMP8="; }; gmp = fetchurl { url = "${gnuFtpMirror}/gmp/gmp-${gmpVersion}.tar.xz"; hash = "sha256-/UgpkSzd0S+EGBw0Ucx1K+IkZD6H+sSXtp7d2txJtPI="; }; mpc = fetchurl { url = "${gnuFtpMirror}/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-F1A9LDld/PEGtiLcFCaDwRmUMdCVNnxqrLpu7DA0BFk="; }; mpfr = fetchurl { url = "${gnuFtpMirror}/mpfr/mpfr-${mpfrVersion}.tar.xz"; hash = "sha256-DJij8XMv9spOppBVIHnanFl4ctMOluwoQU7iPJVVin8="; }; } pkgs/top-level/all-packages.nix +4 −0 Original line number Diff line number Diff line Loading @@ -535,6 +535,10 @@ with pkgs; dinghy = with python3Packages; toPythonApplication dinghy; djgpp = djgpp_i586; djgpp_i586 = callPackage ../development/compilers/djgpp { targetArchitecture = "i586"; }; djgpp_i686 = lowPrio (callPackage ../development/compilers/djgpp { targetArchitecture = "i686"; }); djhtml = python3Packages.callPackage ../development/tools/djhtml { }; deadcode = callPackage ../development/tools/deadcode { }; Loading
pkgs/development/compilers/djgpp/default.nix 0 → 100644 +94 −0 Original line number Diff line number Diff line { bison , buildPackages , curl , fetchFromGitHub , fetchurl , file , flex , targetArchitecture ? "i586" , lib , makeWrapper , perl , stdenv , texinfo , unzip , which }: let s = import ./sources.nix { inherit fetchurl fetchFromGitHub; }; in assert lib.elem targetArchitecture [ "i586" "i686" ]; stdenv.mkDerivation rec { pname = "djgpp"; version = s.gccVersion; src = s.src; patchPhase = '' runHook prePatch for f in "build-djgpp.sh" "script/${version}" "setenv/copyfile.sh"; do substituteInPlace "$f" --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' done '' # i686 patches from https://github.com/andrewwutw/build-djgpp/issues/45#issuecomment-1484010755 # The build script unpacks some files so we can't patch ahead of time, instead patch the script # to patch after it extracts + lib.optionalString (targetArchitecture == "i686") '' sed -i 's/i586/i686/g' setenv/setenv script/${version} sed -i '/Building DXE tools./a sed -i "s/i586/i686/g" src/makefile.def src/dxe/makefile.dxe' script/${version} '' + '' runHook postPatch ''; buildInputs = [ bison curl file flex makeWrapper perl texinfo unzip which ]; hardeningDisable = [ "format" ]; buildPhase = '' runHook preBuild mkdir download; pushd download ln -s "${s.autoconf}" "${s.autoconf.name}" ln -s "${s.automake}" "${s.automake.name}" ln -s "${s.binutils}" "${s.binutils.name}" ln -s "${s.djcrossgcc}" "${s.djcrossgcc.name}" ln -s "${s.djcrx}" "${s.djcrx.name}" ln -s "${s.djdev}" "${s.djdev.name}" ln -s "${s.djlsr}" "${s.djlsr.name}" ln -s "${s.gcc}" "${s.gcc.name}" ln -s "${s.gmp}" "${s.gmp.name}" ln -s "${s.mpc}" "${s.mpc.name}" ln -s "${s.mpfr}" "${s.mpfr.name}" popd DJGPP_PREFIX=$out ./build-djgpp.sh ${version} runHook postBuild ''; postInstall = '' for f in dxegen dxe3gen dxe3res exe2coff stubify; do cp -v "$out/${targetArchitecture}-pc-msdosdjgpp/bin/$f" "$out/bin" done for f in dxegen dxe3gen; do wrapProgram $out/bin/$f --set DJDIR $out done ''; meta = { description = "A complete 32-bit GNU-based development system for Intel x86 PCs running DOS"; homepage = "https://www.delorie.com/djgpp/"; license = lib.licenses.gpl2Plus; maintainers = with lib.maintainers; [ hughobrien ]; platforms = lib.platforms.linux; }; }
pkgs/development/compilers/djgpp/sources.nix 0 → 100644 +81 −0 Original line number Diff line number Diff line let # adapted from https://github.com/andrewwutw/build-djgpp/blob/master/script/12.1.0 gccVersion = "12.2.0"; binutilsVersion = "230"; djcrxVersion = "205"; djlsrVersion = "205"; djdevVersion = "205"; gmpVersion = "6.2.1"; mpfrVersion = "4.1.0"; mpcVersion = "1.2.1"; autoconfVersion = "2.69"; automakeVersion = "1.15.1"; djgppFtpMirror = "https://www.mirrorservice.org/sites/ftp.delorie.com/pub"; gnuFtpMirror = "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu"; in { fetchFromGitHub, fetchurl }: { inherit gccVersion; src = fetchFromGitHub { owner = "andrewwutw"; repo = "build-djgpp"; rev = "0dc28365825f853c3cc6ad0d8f10f8570bed5828"; hash = "sha256-L7ROTbnd/Ry/E9cP0N+l0y0cUzkkbC5B2aU9/r3rLQg="; }; autoconf = fetchurl { url = "${gnuFtpMirror}/autoconf/autoconf-${autoconfVersion}.tar.xz"; hash = "sha256-ZOvOyfisWySHElqGp3YNJZGsnh09vVlIljP53mKldoQ="; }; automake = fetchurl { url = "${gnuFtpMirror}/Automake/automake-${automakeVersion}.tar.xz"; hash = "sha256-r2ujkUIiBofFAPebSqLxgdmyTk+NjsSXzqS6JsZL7a8="; }; binutils = fetchurl { url = "${djgppFtpMirror}/djgpp/deleted/v2gnu/bnu${binutilsVersion}s.zip"; hash = "sha256-DSFQyFvswmP5/qYXbesFmUJ9tqEFJpILb0mGclfpXX0="; }; djcrossgcc = fetchurl { url = "${djgppFtpMirror}/djgpp/rpms/djcross-gcc-${gccVersion}/djcross-gcc-${gccVersion}.tar.bz2"; hash = "sha256-UL+wkeNv3LCQog0JigShIyBM7qJRqvN58Zitmti/BZM="; }; djcrx = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djcrx${djcrxVersion}.zip"; hash = "sha256-IidO2NXuV898zxYfXhaE/RwBkgaHJKfTThveFoBBymA="; }; djdev = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djdev${djdevVersion}.zip"; hash = "sha256-RVfftsFh0yZoCuX6cfAJisSUJaGxG5CgILgxYutwXdo="; }; djlsr = fetchurl { url = "${djgppFtpMirror}/djgpp/current/v2/djlsr${djlsrVersion}.zip"; hash = "sha256-gGkLbkT/i8bGCB/KH0+uuhWRxEkLdu8OyLNYR7ql3uo="; }; gcc = fetchurl { url = "${gnuFtpMirror}/gcc/gcc-${gccVersion}/gcc-${gccVersion}.tar.xz"; hash = "sha256-5UnPnPNZSgDie2WJ1DItcOByDN0hPzm+tBgeBpJiMP8="; }; gmp = fetchurl { url = "${gnuFtpMirror}/gmp/gmp-${gmpVersion}.tar.xz"; hash = "sha256-/UgpkSzd0S+EGBw0Ucx1K+IkZD6H+sSXtp7d2txJtPI="; }; mpc = fetchurl { url = "${gnuFtpMirror}/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-F1A9LDld/PEGtiLcFCaDwRmUMdCVNnxqrLpu7DA0BFk="; }; mpfr = fetchurl { url = "${gnuFtpMirror}/mpfr/mpfr-${mpfrVersion}.tar.xz"; hash = "sha256-DJij8XMv9spOppBVIHnanFl4ctMOluwoQU7iPJVVin8="; }; }
pkgs/top-level/all-packages.nix +4 −0 Original line number Diff line number Diff line Loading @@ -535,6 +535,10 @@ with pkgs; dinghy = with python3Packages; toPythonApplication dinghy; djgpp = djgpp_i586; djgpp_i586 = callPackage ../development/compilers/djgpp { targetArchitecture = "i586"; }; djgpp_i686 = lowPrio (callPackage ../development/compilers/djgpp { targetArchitecture = "i686"; }); djhtml = python3Packages.callPackage ../development/tools/djhtml { }; deadcode = callPackage ../development/tools/deadcode { };