mono: format
This commit is contained in:
parent
8d5c3efd80
commit
17a8a6b7e4
@ -1,4 +1,10 @@
|
||||
{ callPackage, Foundation, libobjc, stdenv, lib }:
|
||||
{
|
||||
callPackage,
|
||||
Foundation,
|
||||
libobjc,
|
||||
stdenv,
|
||||
lib,
|
||||
}:
|
||||
|
||||
callPackage ./generic.nix ({
|
||||
inherit Foundation libobjc;
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ callPackage, Foundation, libobjc }:
|
||||
{
|
||||
callPackage,
|
||||
Foundation,
|
||||
libobjc,
|
||||
}:
|
||||
|
||||
callPackage ./generic.nix ({
|
||||
inherit Foundation libobjc;
|
||||
|
@ -1,4 +1,8 @@
|
||||
{ callPackage, Foundation, libobjc }:
|
||||
{
|
||||
callPackage,
|
||||
Foundation,
|
||||
libobjc,
|
||||
}:
|
||||
|
||||
callPackage ./generic.nix ({
|
||||
inherit Foundation libobjc;
|
||||
|
@ -1,9 +1,34 @@
|
||||
{ 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 ? []
|
||||
{
|
||||
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
|
||||
@ -31,24 +56,31 @@ stdenv.mkDerivation rec {
|
||||
which
|
||||
gnumake42
|
||||
];
|
||||
buildInputs = [
|
||||
glib
|
||||
gettext
|
||||
libgdiplus
|
||||
libX11
|
||||
ncurses
|
||||
zlib
|
||||
bash
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Foundation libobjc ];
|
||||
buildInputs =
|
||||
[
|
||||
glib
|
||||
gettext
|
||||
libgdiplus
|
||||
libX11
|
||||
ncurses
|
||||
zlib
|
||||
bash
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.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}"
|
||||
];
|
||||
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
|
||||
@ -61,12 +93,14 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# 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/\")"
|
||||
'';
|
||||
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
|
||||
@ -80,32 +114,46 @@ stdenv.mkDerivation rec {
|
||||
# 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
|
||||
'';
|
||||
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.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 && lib.versionOlder version "6.12.0.129";
|
||||
broken =
|
||||
stdenv.hostPlatform.isDarwin
|
||||
&& stdenv.hostPlatform.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 ];
|
||||
maintainers = with maintainers; [
|
||||
thoughtpolice
|
||||
obadz
|
||||
];
|
||||
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
|
||||
# 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
|
||||
];
|
||||
|
@ -1,16 +1,17 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, groff
|
||||
, cmake
|
||||
, python2
|
||||
, perl
|
||||
, libffi
|
||||
, libbfd
|
||||
, libxml2
|
||||
, valgrind
|
||||
, ncurses
|
||||
, zlib
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
groff,
|
||||
cmake,
|
||||
python2,
|
||||
perl,
|
||||
libffi,
|
||||
libbfd,
|
||||
libxml2,
|
||||
valgrind,
|
||||
ncurses,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -25,9 +26,18 @@ stdenv.mkDerivation {
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ perl groff libxml2 python2 libffi ] ++ lib.optional stdenv.hostPlatform.isLinux valgrind;
|
||||
buildInputs = [
|
||||
perl
|
||||
groff
|
||||
libxml2
|
||||
python2
|
||||
libffi
|
||||
] ++ lib.optional stdenv.hostPlatform.isLinux valgrind;
|
||||
|
||||
propagatedBuildInputs = [ ncurses zlib ];
|
||||
propagatedBuildInputs = [
|
||||
ncurses
|
||||
zlib
|
||||
];
|
||||
|
||||
# hacky fix: created binaries need to be run before installation
|
||||
preBuild = ''
|
||||
@ -36,16 +46,19 @@ stdenv.mkDerivation {
|
||||
'';
|
||||
postBuild = "rm -fR $out";
|
||||
|
||||
cmakeFlags = with stdenv; [
|
||||
"-DLLVM_ENABLE_FFI=ON"
|
||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||
] ++ lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
|
||||
cmakeFlags =
|
||||
with stdenv;
|
||||
[
|
||||
"-DLLVM_ENABLE_FFI=ON"
|
||||
"-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
|
||||
]
|
||||
++ lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
|
||||
|
||||
meta = {
|
||||
description = "Collection of modular and reusable compiler and toolchain technologies - Mono build";
|
||||
homepage = "http://llvm.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
homepage = "http://llvm.org/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ thoughtpolice ];
|
||||
platforms = lib.platforms.all;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user