aboutsummaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorArsenShnurkov <Arsen.Shnurkov@gmail.com>2016-08-16 16:24:59 +0300
committerArsenShnurkov <Arsen.Shnurkov@gmail.com>2016-08-16 16:24:59 +0300
commitd67c029b5c92939a29fcc0f52ec69c4e8d3c51ec (patch)
tree355afbedced3b8881dd1e98937ffee98c816670e /eclass
parentmove icon for dryioc from FILESDIR to SRC_URI (diff)
downloaddotnet-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.eclass48
-rw-r--r--eclass/machine.eclass22
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
}