diff options
author | ArsenShnurkov <Arsen.Shnurkov@gmail.com> | 2016-08-16 16:24:59 +0300 |
---|---|---|
committer | ArsenShnurkov <Arsen.Shnurkov@gmail.com> | 2016-08-16 16:24:59 +0300 |
commit | d67c029b5c92939a29fcc0f52ec69c4e8d3c51ec (patch) | |
tree | 355afbedced3b8881dd1e98937ffee98c816670e /eclass | |
parent | move icon for dryioc from FILESDIR to SRC_URI (diff) | |
download | dotnet-d67c029b5c92939a29fcc0f52ec69c4e8d3c51ec.tar.gz dotnet-d67c029b5c92939a29fcc0f52ec69c4e8d3c51ec.tar.bz2 dotnet-d67c029b5c92939a29fcc0f52ec69c4e8d3c51ec.zip |
fix null reference bug in mpt-machine
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/gac.eclass | 48 | ||||
-rw-r--r-- | eclass/machine.eclass | 22 |
2 files changed, 40 insertions, 30 deletions
diff --git a/eclass/gac.eclass b/eclass/gac.eclass index 48d648f..c5b7e85 100644 --- a/eclass/gac.eclass +++ b/eclass/gac.eclass @@ -15,10 +15,8 @@ esac IUSE+=" +gac" -DEPEND+=" dev-lang/mono - " -RDEPEND+=" dev-lang/mono - " +DEPEND+=" dev-lang/mono" +RDEPEND+=" dev-lang/mono" # SRC_URI+=" https://github.com/mono/mono/raw/master/mcs/class/mono.snk" # I was unable to setup it this ^^ way @@ -26,32 +24,38 @@ RDEPEND+=" dev-lang/mono # @FUNCTION: egacinstall # @DESCRIPTION: install package to GAC egacinstall() { - use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" - gacutil -i "${1}" \ - -root "${ED}"/usr/$(get_libdir) \ - -gacdir /usr/$(get_libdir) \ - -package ${2:-${GACPN:-${PN}}} \ - || die "installing ${1} into the Global Assembly Cache failed" + if use gac; then + use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" + gacutil -i "${1}" \ + -root "${ED}"/usr/$(get_libdir) \ + -gacdir /usr/$(get_libdir) \ + -package ${2:-${GACPN:-${PN}}} \ + || die "installing ${1} into the Global Assembly Cache failed" + fi } # @FUNCTION: egacadd # @DESCRIPTION: install package to GAC egacadd() { - use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" - gacutil -i "${1}" \ - -root "${ED}"/usr/$(get_libdir) \ - -gacdir /usr/$(get_libdir) \ - -package ${2:-${GACPN:-${PN}}} \ - || die "installing ${1} into the Global Assembly Cache failed" + if use gac; then + use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" + gacutil -i "${1}" \ + -root "${ED}"/usr/$(get_libdir) \ + -gacdir /usr/$(get_libdir) \ + -package ${2:-${GACPN:-${PN}}} \ + || die "installing ${1} into the Global Assembly Cache failed" + fi } # @FUNCTION: egacdel # @DESCRIPTION: remove package from GAC egacdel() { - use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" - gacutil -r "${1}" \ - -root "${ED}"/usr/$(get_libdir) \ - -gacdir /usr/$(get_libdir) \ - -package ${2:-${GACPN:-${PN}}} - # don't die + if use gac; then + use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}" + gacutil -u "${1}" \ + -root "${ED}"/usr/$(get_libdir) \ + -gacdir /usr/$(get_libdir) \ + -package ${2:-${GACPN:-${PN}}} + # don't die + fi } diff --git a/eclass/machine.eclass b/eclass/machine.eclass index 20c1c7c..c0f21ca 100644 --- a/eclass/machine.eclass +++ b/eclass/machine.eclass @@ -8,28 +8,34 @@ # @DESCRIPTION: # ADO .NET data providers should be able to be registred in machine.config +inherit gac + case ${EAPI:-0} in 0|1|2|3|4|5) die "this eclass doesn't support EAPI ${EAPI:-0}" ;; 6) ;; esac -DEPEND+=" dev-lang/mono - dev-util/mono-packaging-tools - " -RDEPEND+=" dev-lang/mono - dev-util/mono-packaging-tools - " +DEPEND+=" >=dev-util/mono-packaging-tools-0.1.2" +RDEPEND+=" >=dev-util/mono-packaging-tools-0.1.2" IUSE+=" +machine" # @FUNCTION: emachineadd # @DESCRIPTION: install a provider into machine.config emachineadd() { - einfo "Installing $1 into machine.config" + if use machine; then + if ! use gac; then die 'you should enable USE="+gac" if you want USE="machine"'; fi; + einfo "Installing $1 into machine.config" + einfo mpt-machine --in /etc/mono/4.5/machine.config --out /etc/mono/4.5/._cfg0000_machine.config --name "$2" --invariant "$1" --dll "$3" + mpt-machine --in /etc/mono/4.5/machine.config --out /etc/mono/4.5/._cfg0000_machine.config --name "$2" --invariant "$1" --dll "$3" || die + fi } # @FUNCTION: emachinedel # @DESCRIPTION: remove a provider from machine.config emachinedel() { - einfo "Removing $1 from machine.config" + if use machine; then + einfo "Removing $1 from machine.config" + mpt-machine --in=/etc/mono/4.5/machine.config --out=/etc/mono/4.5/._cfg0000_machine.config --name="$2" --invariant="$1" || die + fi } |