about summary refs log tree commit diff
path: root/pkgs/development/compilers/mono/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/mono/generic.nix')
-rw-r--r--pkgs/development/compilers/mono/generic.nix113
1 files changed, 0 insertions, 113 deletions
diff --git a/pkgs/development/compilers/mono/generic.nix b/pkgs/development/compilers/mono/generic.nix
deleted file mode 100644
index a3705de4ccb5..000000000000
--- a/pkgs/development/compilers/mono/generic.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-{ lib, stdenv, fetchurl, bison, pkg-config, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, bash
-, withLLVM ? false, cacert, Foundation, libobjc, python3, version, sha256, autoconf, libtool, automake, cmake, which
-, gnumake42
-, enableParallelBuilding ? true
-, srcArchiveSuffix ? "tar.bz2"
-, extraPatches ? []
-}:
-
-let
-  llvm = callPackage ./llvm.nix { };
-in
-stdenv.mkDerivation rec {
-  pname = "mono";
-  inherit version;
-
-  src = fetchurl {
-    inherit sha256;
-    url = "https://download.mono-project.com/sources/mono/${pname}-${version}.${srcArchiveSuffix}";
-  };
-
-  strictDeps = true;
-  nativeBuildInputs = [
-    autoconf
-    automake
-    bison
-    cmake
-    libtool
-    perl
-    pkg-config
-    python3
-    which
-    gnumake42
-  ];
-  buildInputs = [
-    glib
-    gettext
-    libgdiplus
-    libX11
-    ncurses
-    zlib
-    bash
-  ] ++ lib.optionals stdenv.isDarwin [ Foundation libobjc ];
-
-  configureFlags = [
-    "--x-includes=${libX11.dev}/include"
-    "--x-libraries=${libX11.out}/lib"
-    "--with-libgdiplus=${libgdiplus}/lib/libgdiplus.so"
-  ] ++ lib.optionals withLLVM [
-    "--enable-llvm"
-    "--with-llvm=${llvm}"
-  ];
-
-  configurePhase = ''
-    patchShebangs autogen.sh mcs/build/start-compiler-server.sh
-    ./autogen.sh --prefix $out $configureFlags
-  '';
-
-  # We want pkg-config to take priority over the dlls in the Mono framework and the GAC
-  # because we control pkg-config
-  patches = [ ./pkgconfig-before-gac.patch ] ++ extraPatches;
-
-  # Patch all the necessary scripts. Also, if we're using LLVM, we fix the default
-  # LLVM path to point into the Mono LLVM build, since it's private anyway.
-  preBuild = ''
-    makeFlagsArray=(INSTALL=`type -tp install`)
-    substituteInPlace mcs/class/corlib/System/Environment.cs --replace /usr/share "$out/share"
-  '' + lib.optionalString withLLVM ''
-    substituteInPlace mono/mini/aot-compiler.c --replace "llvm_path = g_strdup (\"\")" "llvm_path = g_strdup (\"${llvm}/bin/\")"
-  '';
-
-  # Fix mono DLLMap so it can find libX11 to run winforms apps
-  # libgdiplus is correctly handled by the --with-libgdiplus configure flag
-  # Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive
-  # https://www.mono-project.com/Config_DllMap
-  postBuild = ''
-    find . -name 'config' -type f | xargs \
-    sed -i -e "s@libX11.so.6@${libX11.out}/lib/libX11.so.6@g"
-  '';
-
-  # Without this, any Mono application attempting to open an SSL connection will throw with
-  # The authentication or decryption has failed.
-  # ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server.
-  postInstall = ''
-    echo "Updating Mono key store"
-    $out/bin/cert-sync ${cacert}/etc/ssl/certs/ca-bundle.crt
-  ''
-  # According to [1], gmcs is just mcs
-  # [1] https://github.com/mono/mono/blob/master/scripts/gmcs.in
-  + ''
-    ln -s $out/bin/mcs $out/bin/gmcs
-  '';
-
-  inherit enableParallelBuilding;
-
-  meta = with lib; {
-    # Per nixpkgs#151720 the build failures for aarch64-darwin are fixed since 6.12.0.129
-    broken = stdenv.isDarwin && stdenv.isAarch64 && lib.versionOlder version "6.12.0.129";
-    homepage = "https://mono-project.com/";
-    description = "Cross platform, open source .NET development framework";
-    platforms = with platforms; darwin ++ linux;
-    maintainers = with maintainers; [ thoughtpolice obadz vrthra ];
-    license = with licenses; [
-      /* runtime, compilers, tools and most class libraries licensed */ mit
-      /* runtime includes some code licensed */ bsd3
-      /* mcs/class/I18N/mklist.sh marked GPLv2 and others just GPL */ gpl2Only
-      /* RabbitMQ.Client class libraries dual licensed */ mpl20 asl20
-      /* mcs/class/System.Core/System/TimeZoneInfo.Android.cs */ asl20
-      /* some documentation */ mspl
-      # https://www.mono-project.com/docs/faq/licensing/
-      # https://github.com/mono/mono/blob/main/LICENSE
-    ];
-  };
-}