- Instead of excluding the specific packages added to DISTFILES (but only for FreeBSD 9+), exclude all files with a '.nupkg' extension. - Move the nuget-extract command to be before post-extract, to allow the port's post-extract command to move packages around audio/libgpod-sharp: add port for mono bindings for libgpod - audio/libgpod: [2] - USE_GNOME: add missing dependency - Remove mono files from pkg-plist (now in audio/libgpod-sharp) - Allow relevant variables to be overridden - Fix MONO options - Patch source to allow building with modern mono - Avoid post-install target for slave ports. devel/monodevelop: update to 4.6.2.7 - Update nuget package Fantomas to 2.4.0 (latest at time of monodevelop's release). - Downgrade nuget package FSharp.Compiler.CodeDom (per paket's specification) - LICENSE: Add license of LGPL21 - LICENSE_FILE: Add license file from source - PORTSCOUT: Avoid checking alpha releases (aka x.y.0.z releases) games/openra: simplify post-extract [3] - USES=mono:nuget allow overridding of NUGET_PACKAGEDIR - Set NUGET_PACKAGEDIR to correct location, fix patching accordingly lang/fsharp: update to 4.6.2.7 ChangeLog: - Fix #639: Problems with F# scripts on Mono - Fix FSharp.Compiler.Tools targets for .NET Core usage - Fix FSharp.Compiler.Tools package dependencies lang/mono: update to 4.6.2.7 Mono 4.6.2 is the 1st service release to the 4.6 series. Changes: - LICENSE: Add license of MIT - LICENSE_FILE: Add license file from source - PORTSCOUT: Avoid checking alpha releases (aka x.y.0.z releases) Bug fixes: - #44708 - "TrustFailure (The authentication or decryption has failed.) ... Invalid certificate received from server." with "Error code: 0x5" or "Error code: 0xffffffff800b010f" when attempting to access HTTPS servers on ports other than 443 - #39832 - SIGSEGV when running roslyn multimedia/banshee: bump port revision. - Update missing port dependencies - Convert to use option helpers - OPTIONS: Add APPLEDEV (missing dependency added) - LICENSE: Add MIT license - LICENSE_FILE: Add license file from source - PORTSCOUT: Skip alpha release (2.9.1) x11-toolkits/gnome-sharp20: fix port dependencies - Add missing dependencies - Convert post-patch to shebangfix - LICENSE: add LGPL21 license - LICENSE_FILE: use license file from source - MKAE_JOBS_UNSAFE: remove, does appear to work x11-toolkits/gtk-sharp20: update to 2.12.42. PR: 214680 [2] PR: 214681 Suggested by: jbeich [1] Submitted by: jbeich [3] Approved by: avilla (maintainer; timeout) [2]
98 lines
2.8 KiB
Makefile
98 lines
2.8 KiB
Makefile
# $FreeBSD$
|
|
#
|
|
# mono (c#) support
|
|
#
|
|
# Feature: mono
|
|
# Usage: USES=mono:ARGS
|
|
# Valid ARGS: nuget
|
|
#
|
|
# MAINTAINER= mono@FreeBSD.org
|
|
#
|
|
# Arguments:
|
|
#
|
|
# nuget Specifies that the port uses nuget packages. The
|
|
# variables NUGET_DEPENDS needs to be set with the names,
|
|
# versions and optionally the port origin of the nuget
|
|
# packages in the format:
|
|
# ${name}=${version}(:${PKGORIGIN})
|
|
#
|
|
# EXTRACT_ONLY is conditionally overridden to exclude all
|
|
# files with a '.nupkg' extension.
|
|
#
|
|
# Targets:
|
|
#
|
|
# makenuget This target will output the NUGET_DEPENDS based on the
|
|
# port's packages.config file.
|
|
#
|
|
# Variables overrideable by the port:
|
|
#
|
|
# NUGET_PACKAGEDIR The directory in which the port expects the
|
|
# nuget packages to be available
|
|
# default: ${WRKSRC}/packages
|
|
|
|
.if !defined(_INCLUDE_USES_MONO_MK)
|
|
_INCLUDE_USES_MONO_MK= yes
|
|
|
|
.if !empty(mono_ARGS:Nnuget)
|
|
IGNORE= USES=mono only supports an optional nuget argument
|
|
.endif
|
|
|
|
# Set the location of the .wapi directory so we write to a location we
|
|
# can always assume to be writable.
|
|
MONO_SHARED_DIR= ${WRKDIR}
|
|
CONFIGURE_ENV+= MONO_SHARED_DIR="${MONO_SHARED_DIR}"
|
|
MAKE_ENV+= MONO_SHARED_DIR="${MONO_SHARED_DIR}" TZ=UTC
|
|
BUILD_DEPENDS+= mono:lang/mono
|
|
RUN_DEPENDS+= mono:lang/mono
|
|
|
|
# Set the location that webaps served by XSP should use.
|
|
XSP_DOCROOT= ${PREFIX}/www/xsp
|
|
|
|
# gac utilities
|
|
GACUTIL=${LOCALBASE}/bin/gacutil /root ${PREFIX}/lib/ /gacdir ${PREFIX}/lib
|
|
GACUTIL_INSTALL=${GACUTIL} /i
|
|
GACUTIL_INSTALL_PACKAGE=${GACUTIL} /i /package 1.0 /package 2.0
|
|
|
|
.if ${mono_ARGS:Mnuget}
|
|
NUGET_PACKAGEDIR?= ${WRKSRC}/packages
|
|
|
|
. for depend in ${NUGET_DEPENDS}
|
|
id= ${depend:C/=.*$//}
|
|
version= ${depend:C/^.*=//}
|
|
group= nuget_${id:S/.//g:S/-//g}
|
|
nupkg= ${id:tl}.${version}.nupkg
|
|
DISTFILES_${group}:= ${nupkg}:${group}
|
|
MASTER_SITES_${group}:= https://www.nuget.org/api/v2/package/${id}/${version}?dummy=/:${group}
|
|
NUGET_NUPKGS_${group}:= ${nupkg}:${depend}
|
|
|
|
DISTFILES+= ${DISTFILES_nuget_${depend:C/=.*$//:S/.//g:S/-//g}}
|
|
MASTER_SITES+= ${MASTER_SITES_nuget_${depend:C/=.*$//:S/.//g:S/-//g}}
|
|
NUGET_NUPKGS+= ${NUGET_NUPKGS_nuget_${depend:C/=.*$//:S/.//g:S/-//g}}
|
|
. endfor
|
|
|
|
EXTRACT_ONLY?= ${_DISTFILES:N*.nupkg}
|
|
|
|
_USES_extract+= 600:nuget-extract
|
|
nuget-extract:
|
|
. for nupkg in ${NUGET_NUPKGS}
|
|
@${MKDIR} ${NUGET_PACKAGEDIR}/${nupkg:C/^.*://:S/=/./}
|
|
@${LN} -s ${NUGET_PACKAGEDIR}/${nupkg:C/^.*://:S/=/./} ${NUGET_PACKAGEDIR}/${nupkg:C/^.*://:C/=.*//}
|
|
@tar -xf ${DISTDIR}/${nupkg:C/:.*$//} -C ${NUGET_PACKAGEDIR}/${nupkg:C/^.*://:S/=/./} \
|
|
-s/%2B/\+/g -s/%2B/\+/g -s/%2B/\+/g \
|
|
--exclude '\[Content_Types\].xml' \
|
|
--exclude package/ \
|
|
--exclude _rels/
|
|
. endfor
|
|
.endif
|
|
|
|
makenuget: patch
|
|
@${FIND} ${WRKSRC} -name packages.config | \
|
|
${XARGS} ${SED} -nE 's|.*<package id="([^"]+)" version="([^"]+)"[^/]*/>.*|\1-\2|gp' | \
|
|
${SORT} -u | \
|
|
${SED} \
|
|
-e '1s|^|NUGET_DEPENDS= |' \
|
|
-e '2,$$s|^| |g' \
|
|
-e '$$!s|$$| \\|g'
|
|
|
|
.endif
|
|
|