diff options
author | Alexis Ballier <aballier@gentoo.org> | 2007-12-17 18:00:58 +0000 |
---|---|---|
committer | Alexis Ballier <aballier@gentoo.org> | 2007-12-17 18:00:58 +0000 |
commit | f381fd45bd95093495a228e25e16ec860cb60f41 (patch) | |
tree | efae8c957731d1a932fcb69d01d078acbc1f03cb /dev-ml/ocamlnet | |
parent | whitespace (diff) | |
download | historical-f381fd45bd95093495a228e25e16ec860cb60f41.tar.gz historical-f381fd45bd95093495a228e25e16ec860cb60f41.tar.bz2 historical-f381fd45bd95093495a228e25e16ec860cb60f41.zip |
Import a patch from Stefano Zacchiroli (debian) to force building with camlp5 now that is has findlib support, this fixes the build with ocaml 3.10
Package-Manager: portage-2.1.4_rc10
Diffstat (limited to 'dev-ml/ocamlnet')
-rw-r--r-- | dev-ml/ocamlnet/ChangeLog | 9 | ||||
-rw-r--r-- | dev-ml/ocamlnet/Manifest | 29 | ||||
-rw-r--r-- | dev-ml/ocamlnet/files/build_w_camlp5.dpatch | 188 | ||||
-rw-r--r-- | dev-ml/ocamlnet/files/digest-ocamlnet-2.2.9-r1 | 3 | ||||
-rw-r--r-- | dev-ml/ocamlnet/ocamlnet-2.2.9-r1.ebuild | 73 |
5 files changed, 297 insertions, 5 deletions
diff --git a/dev-ml/ocamlnet/ChangeLog b/dev-ml/ocamlnet/ChangeLog index 2700486192c4..f26ec80602cb 100644 --- a/dev-ml/ocamlnet/ChangeLog +++ b/dev-ml/ocamlnet/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-ml/ocamlnet # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-ml/ocamlnet/ChangeLog,v 1.23 2007/11/16 15:11:58 beandog Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-ml/ocamlnet/ChangeLog,v 1.24 2007/12/17 18:00:58 aballier Exp $ + +*ocamlnet-2.2.9-r1 (17 Dec 2007) + + 17 Dec 2007; Alexis Ballier <aballier@gentoo.org> + +files/build_w_camlp5.dpatch, +ocamlnet-2.2.9-r1.ebuild: + Import a patch from Stefano Zacchiroli (debian) to force building with + camlp5 now that is has findlib support, this fixes the build with ocaml 3.10 16 Nov 2007; Steve Dibb <beandog@gentoo.org> ocamlnet-2.2.8.1.ebuild: amd64 stable, bug 195535 diff --git a/dev-ml/ocamlnet/Manifest b/dev-ml/ocamlnet/Manifest index 88ff4e5714bc..baf8222f0ec6 100644 --- a/dev-ml/ocamlnet/Manifest +++ b/dev-ml/ocamlnet/Manifest @@ -1,3 +1,10 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +AUX build_w_camlp5.dpatch 7584 RMD160 53e5def4617442a232ef146884c25c35067c9ef8 SHA1 b9f65b5f6ee45dc4144960e6729e4a29c0d94ff2 SHA256 146865f95679b484b69336facb710e2c3e8960606598a20e6af04d416159f958 +MD5 65a773e282b4d069fc286bf7842839cd files/build_w_camlp5.dpatch 7584 +RMD160 53e5def4617442a232ef146884c25c35067c9ef8 files/build_w_camlp5.dpatch 7584 +SHA256 146865f95679b484b69336facb710e2c3e8960606598a20e6af04d416159f958 files/build_w_camlp5.dpatch 7584 DIST ocamlnet-0.98.tar.gz 639820 RMD160 69609ef04ff5f954d3429613ac251d613da36fa7 SHA1 6c5165563ecc6dbbd5cd55c436ba428f3697decd SHA256 8abf1894dfa1d085cddc61546fd750bf73335b3467fc823ddde524db61ddef16 DIST ocamlnet-2.2.8.1.tar.gz 1877285 RMD160 988bffbbb34d74d4a6fffb645094dff1a4ab4b70 SHA1 ccefc39821e69a24787f9fa940d24f1300777813 SHA256 3d88a365c4d01d88ebc9b683fda3179da4d1b7675500907e9fc37fc81a63b8e2 DIST ocamlnet-2.2.9.tar.gz 1877257 RMD160 1299e1316e0547171089b0caaa9deb13c4c67c31 SHA1 ca073c60f86fede60d4c479e5589127010482804 SHA256 134530a4357879e095bdbbb5f21f78634a16ef4d787eb151676b7fee7e4c0dc9 @@ -9,14 +16,18 @@ EBUILD ocamlnet-2.2.8.1.ebuild 1484 RMD160 738f08381b7a49dcd7d1e82d405eb05afaea5 MD5 04c7be7a896121f4d2d3172883472491 ocamlnet-2.2.8.1.ebuild 1484 RMD160 738f08381b7a49dcd7d1e82d405eb05afaea5496 ocamlnet-2.2.8.1.ebuild 1484 SHA256 04cf2fd6fdd2e18d81b3f2379dd4734ade9cabb41ec263d091bcbdf77a672cf0 ocamlnet-2.2.8.1.ebuild 1484 +EBUILD ocamlnet-2.2.9-r1.ebuild 1618 RMD160 dfec48e1260f59e154f9f4f046205cf1ba38c92b SHA1 80cffe11fe4ab62cf3f77159708de8dfa5a9ebc3 SHA256 051339badddb391a46497a317e8ed3e9b29ed95eb319209a422c5dd84583a00f +MD5 ba92fcb50441af4f2797335dac71ea5e ocamlnet-2.2.9-r1.ebuild 1618 +RMD160 dfec48e1260f59e154f9f4f046205cf1ba38c92b ocamlnet-2.2.9-r1.ebuild 1618 +SHA256 051339badddb391a46497a317e8ed3e9b29ed95eb319209a422c5dd84583a00f ocamlnet-2.2.9-r1.ebuild 1618 EBUILD ocamlnet-2.2.9.ebuild 1485 RMD160 229403388c461b62d08fbe0c78b9111a3c221ddb SHA1 ee2276dcb9cbedd7de00ab99d650d37710700878 SHA256 4b3112b3a438abcedb98b79c233fb2d3c334fc4f2f0e9f17369262e9cac3c281 MD5 e892e885f12c9daa9e0b1665bf7e9314 ocamlnet-2.2.9.ebuild 1485 RMD160 229403388c461b62d08fbe0c78b9111a3c221ddb ocamlnet-2.2.9.ebuild 1485 SHA256 4b3112b3a438abcedb98b79c233fb2d3c334fc4f2f0e9f17369262e9cac3c281 ocamlnet-2.2.9.ebuild 1485 -MISC ChangeLog 2946 RMD160 247d9595a3f7f9c2becc6bebb78be0262ca73024 SHA1 b76da1477c5f89c71162b1db8ab1d7997258d1a8 SHA256 f39d7a8c8c05ac74c17d0057464677746c824f529c2ff88e6f359ee5262c693d -MD5 91ae6603667ae5f32e73dff2f1f83225 ChangeLog 2946 -RMD160 247d9595a3f7f9c2becc6bebb78be0262ca73024 ChangeLog 2946 -SHA256 f39d7a8c8c05ac74c17d0057464677746c824f529c2ff88e6f359ee5262c693d ChangeLog 2946 +MISC ChangeLog 3245 RMD160 a53eedbf06b19fa68bf063f37c67af21598cdbb0 SHA1 bb8411bb761df2744e60d9dc1e46d9e2c28dc4af SHA256 dd619865960b4afd7ddf0ec7b078526cf790b50889546c38eb0a2f527db0462a +MD5 406f4d0a3799a27cde2ae9ed9a46a071 ChangeLog 3245 +RMD160 a53eedbf06b19fa68bf063f37c67af21598cdbb0 ChangeLog 3245 +SHA256 dd619865960b4afd7ddf0ec7b078526cf790b50889546c38eb0a2f527db0462a ChangeLog 3245 MISC metadata.xml 156 RMD160 b85f5bc80861e3fb890d0c87457a549d5bdaa191 SHA1 3be740773dec616d1c3969afaf1571348e455fef SHA256 40d721e2107cc8aac043b574fdae94c9e31ae133bc8e275fbc0a56329b3f5cee MD5 59ea40b8187e7995ddaf227a834ceb5f metadata.xml 156 RMD160 b85f5bc80861e3fb890d0c87457a549d5bdaa191 metadata.xml 156 @@ -30,3 +41,13 @@ SHA256 0f433343a1cef954fc5afdad5f7233b315a396b7f3074711fb37099721790c31 files/di MD5 8d32af8d1806e074ed6e0be353d6742b files/digest-ocamlnet-2.2.9 247 RMD160 847d0c25cfb4dfc1efb52614ef451a795c324a69 files/digest-ocamlnet-2.2.9 247 SHA256 b0ee68d86f633bd8d77d0fbf3c4bb4fde5a445c0d4ed44b546a11fb439bec269 files/digest-ocamlnet-2.2.9 247 +MD5 8d32af8d1806e074ed6e0be353d6742b files/digest-ocamlnet-2.2.9-r1 247 +RMD160 847d0c25cfb4dfc1efb52614ef451a795c324a69 files/digest-ocamlnet-2.2.9-r1 247 +SHA256 b0ee68d86f633bd8d77d0fbf3c4bb4fde5a445c0d4ed44b546a11fb439bec269 files/digest-ocamlnet-2.2.9-r1 247 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.7 (GNU/Linux) + +iD8DBQFHZrl1vFcC4BYPU0oRAlaRAJ4iJq34R6B9nFGmimv/QhhHxlNq/ACgmJI4 +kmm0YqTNaQ8HLj0N5j1+Hn8= +=DPQY +-----END PGP SIGNATURE----- diff --git a/dev-ml/ocamlnet/files/build_w_camlp5.dpatch b/dev-ml/ocamlnet/files/build_w_camlp5.dpatch new file mode 100644 index 000000000000..885933479a73 --- /dev/null +++ b/dev-ml/ocamlnet/files/build_w_camlp5.dpatch @@ -0,0 +1,188 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## build_w_camlp5.dpatch by Stefano Zacchiroli <zack@debian.org> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Enable building against camlp5 (the "classical" version of camlp4) + +@DPATCH@ +diff -urNad trunk~/Makefile.rules trunk/Makefile.rules +--- trunk~/Makefile.rules 2007-07-31 18:20:57.000000000 +0200 ++++ trunk/Makefile.rules 2007-09-08 12:42:33.000000000 +0200 +@@ -13,7 +13,7 @@ + OCAMLFIND = ocamlfind + OCAMLYACC = ocamlyacc + OCAMLLEX = ocamllex +-CAMLP4 = camlp4 ++CAMLP4 = camlp5 + OCAMLMKLIB = ocamlmklib + OCAMLDOC = $(OCAMLFIND) ocamldoc + +diff -urNad trunk~/src/equeue-gtk1/Makefile trunk/src/equeue-gtk1/Makefile +--- trunk~/src/equeue-gtk1/Makefile 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/equeue-gtk1/Makefile 2007-09-08 12:42:33.000000000 +0200 +@@ -9,7 +9,7 @@ + + INCLUDES += $(INC_EQUEUE) + +-PP_OPTIONS = -syntax camlp4o -package camlp4.macro $(GTK_DEFINES) ++PP_OPTIONS = -syntax camlp5o -package camlp5.macro $(GTK_DEFINES) + + include $(TOP_DIR)/Makefile.rules + +diff -urNad trunk~/src/equeue-gtk1/Makefile.pre trunk/src/equeue-gtk1/Makefile.pre +--- trunk~/src/equeue-gtk1/Makefile.pre 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/equeue-gtk1/Makefile.pre 2007-09-08 12:42:33.000000000 +0200 +@@ -6,6 +6,6 @@ + + include ./Makefile.gtk + +-PP_OPTIONS = -syntax camlp4o -package camlp4.macro $(GTK_DEFINES) ++PP_OPTIONS = -syntax camlp5o -package camlp5.macro $(GTK_DEFINES) + + include $(TOP_DIR)/Makefile.rules +diff -urNad trunk~/src/equeue-gtk2/Makefile.pre trunk/src/equeue-gtk2/Makefile.pre +--- trunk~/src/equeue-gtk2/Makefile.pre 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/equeue-gtk2/Makefile.pre 2007-09-08 12:42:33.000000000 +0200 +@@ -6,7 +6,7 @@ + + include ./Makefile.gtk + +-PP_OPTIONS = -syntax camlp4o -package camlp4.macro $(GTK_DEFINES) ++PP_OPTIONS = -syntax camlp5o -package camlp5.macro $(GTK_DEFINES) + + include $(TOP_DIR)/Makefile.rules + +diff -urNad trunk~/src/nethttpd-for-netcgi1/Makefile trunk/src/nethttpd-for-netcgi1/Makefile +--- trunk~/src/nethttpd-for-netcgi1/Makefile 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/nethttpd-for-netcgi1/Makefile 2007-09-08 12:42:33.000000000 +0200 +@@ -8,7 +8,7 @@ + nethttpd_engine.mli nethttpd_services.mli nethttpd_plex.mli + + INCLUDES += $(INC_EQUEUE) $(INC_NETSTRING) $(INC_NETCGI1) $(INC_NETPLEX) +-PP_OPTIONS = -package "camlp4, camlp4.macro" -syntax "camlp4o" ++PP_OPTIONS = -package "camlp5, camlp5.macro" -syntax "camlp5o" + + #PP_OPTIONS_FINDLIB += -ppopt "-DTesting" + # do this to enable test coverage calculations +diff -urNad trunk~/src/nethttpd-for-netcgi1/Makefile.pre trunk/src/nethttpd-for-netcgi1/Makefile.pre +--- trunk~/src/nethttpd-for-netcgi1/Makefile.pre 2007-09-08 12:42:32.000000000 +0200 ++++ trunk/src/nethttpd-for-netcgi1/Makefile.pre 2007-09-08 12:42:33.000000000 +0200 +@@ -6,6 +6,6 @@ + + INSTALL_EXTRA += + +-PP_OPTIONS = -package "camlp4, camlp4.macro" -syntax "camlp4o" ++PP_OPTIONS = -package "camlp5, camlp5.macro" -syntax "camlp5o" + + include $(TOP_DIR)/Makefile.rules +diff -urNad trunk~/src/nethttpd-for-netcgi1/nethttpd_types.mli trunk/src/nethttpd-for-netcgi1/nethttpd_types.mli +--- trunk~/src/nethttpd-for-netcgi1/nethttpd_types.mli 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/nethttpd-for-netcgi1/nethttpd_types.mli 2007-09-08 12:43:01.000000000 +0200 +@@ -117,10 +117,10 @@ + *) + + class redirected_environment : +- ?in_state : Netcgi1_compat.Netcgi_env.input_state -> +- ?in_header : http_header -> +- ?properties : (string * string) list -> +- ?in_channel : Netchannels.in_obj_channel -> ++ ?in_state: Netcgi1_compat.Netcgi_env.input_state -> ++ ?in_header: http_header -> ++ ?properties: (string * string) list -> ++ ?in_channel: Netchannels.in_obj_channel -> + extended_environment -> + extended_environment + (** This class overlays the input-side containers of an existing environment. +diff -urNad trunk~/src/nethttpd-for-netcgi2/Makefile trunk/src/nethttpd-for-netcgi2/Makefile +--- trunk~/src/nethttpd-for-netcgi2/Makefile 2007-07-31 18:20:59.000000000 +0200 ++++ trunk/src/nethttpd-for-netcgi2/Makefile 2007-09-08 12:42:33.000000000 +0200 +@@ -9,7 +9,7 @@ + nethttpd_intro.txt + + INCLUDES += $(INC_EQUEUE) $(INC_NETSTRING) $(INC_NETCGI2) $(INC_NETPLEX) +-PP_OPTIONS = -package "camlp4, camlp4.macro" -syntax "camlp4o" ++PP_OPTIONS = -package "camlp5, camlp5.macro" -syntax "camlp5o" + + #PP_OPTIONS_FINDLIB += -ppopt "-DTesting" + # do this to enable test coverage calculations +diff -urNad trunk~/src/nethttpd-for-netcgi2/Makefile.pre trunk/src/nethttpd-for-netcgi2/Makefile.pre +--- trunk~/src/nethttpd-for-netcgi2/Makefile.pre 2007-09-08 12:42:32.000000000 +0200 ++++ trunk/src/nethttpd-for-netcgi2/Makefile.pre 2007-09-08 12:42:33.000000000 +0200 +@@ -15,7 +15,7 @@ + + INSTALL_EXTRA += + +-PP_OPTIONS = -package "camlp4, camlp4.macro" -syntax "camlp4o" ++PP_OPTIONS = -package "camlp5, camlp5.macro" -syntax "camlp5o" + + include $(TOP_DIR)/Makefile.rules + +diff -urNad trunk~/src/netplex/Makefile trunk/src/netplex/Makefile +--- trunk~/src/netplex/Makefile 2007-07-31 18:21:00.000000000 +0200 ++++ trunk/src/netplex/Makefile 2007-09-08 12:42:33.000000000 +0200 +@@ -19,7 +19,7 @@ + ALLMT_EXTRA = netplex_mt.cmo + OPTMT_EXTRA = netplex_mt.cmx + +-PP_OPTIONS = -syntax camlp4o -package camlp4 ++PP_OPTIONS = -syntax camlp5o -package camlp5 + + OCAMLC_OPTIONS_FOR_netplex_mt.ml = $(THREAD) + OCAMLOPT_OPTIONS_FOR_netplex_mt.ml = $(THREAD) +diff -urNad trunk~/src/netplex/Makefile.pre trunk/src/netplex/Makefile.pre +--- trunk~/src/netplex/Makefile.pre 2007-07-31 18:21:00.000000000 +0200 ++++ trunk/src/netplex/Makefile.pre 2007-09-08 12:42:33.000000000 +0200 +@@ -9,7 +9,7 @@ + INSTALL_EXTRA = netplex-packlist netplex_mt.cmo netplex_mt.cmx netplex_mt.o + INSTOTHER = install-netplex-admin + +-PP_OPTIONS = -syntax camlp4o -package camlp4 ++PP_OPTIONS = -syntax camlp5o -package camlp5 + + include $(TOP_DIR)/Makefile.rules + +diff -urNad trunk~/src/netplex/netplex_config.ml trunk/src/netplex/netplex_config.ml +--- trunk~/src/netplex/netplex_config.ml 2007-07-31 18:21:00.000000000 +0200 ++++ trunk/src/netplex/netplex_config.ml 2007-09-08 12:42:33.000000000 +0200 +@@ -29,7 +29,7 @@ + and semi_parse_tree_list = + parser + | [< 'Kwd ";"; +- tl = parse_tree_list; ++ tl = parse_tree_list + >] -> tl + | [< >] -> [] + +@@ -47,7 +47,7 @@ + and parse_rhs = + parser + | [< 'Kwd "="; +- v = parse_param_value; ++ v = parse_param_value + >] -> + `Parameter v + | [< 'Kwd "{"; +diff -urNad trunk~/src/netstring/Makefile.def trunk/src/netstring/Makefile.def +--- trunk~/src/netstring/Makefile.def 2007-07-31 18:20:58.000000000 +0200 ++++ trunk/src/netstring/Makefile.def 2007-09-08 12:42:33.000000000 +0200 +@@ -46,7 +46,7 @@ + netchannels_tut.txt netmime_tut.txt netsendmail_tut.txt \ + netulex_tut.txt neturl_tut.txt + +-PP_OPTIONS = -package camlp4 -syntax camlp4o ++PP_OPTIONS = -package camlp5 -syntax camlp5o + + OCAMLC_OPTIONS_FOR_netstring_mt.ml = $(THREAD) + OCAMLOPT_OPTIONS_FOR_netstring_mt.ml = $(THREAD) +diff -urNad trunk~/src/netstring/netmime.ml trunk/src/netstring/netmime.ml +--- trunk~/src/netstring/netmime.ml 2007-07-31 18:20:58.000000000 +0200 ++++ trunk/src/netstring/netmime.ml 2007-09-08 12:42:33.000000000 +0200 +@@ -579,7 +579,7 @@ + ;; + + +-let storage ?ro ?fin : store -> (mime_body * out_obj_channel) = function ++let storage ?ro ?fin = function + `Memory -> + let body = new memory_mime_body_int ~ro_first:false ?ro "" in + let body_ch = body#open_value_wr() in diff --git a/dev-ml/ocamlnet/files/digest-ocamlnet-2.2.9-r1 b/dev-ml/ocamlnet/files/digest-ocamlnet-2.2.9-r1 new file mode 100644 index 000000000000..9ae1f22a612c --- /dev/null +++ b/dev-ml/ocamlnet/files/digest-ocamlnet-2.2.9-r1 @@ -0,0 +1,3 @@ +MD5 3655e3be3bb2806e0a1f48bb7ce16fb3 ocamlnet-2.2.9.tar.gz 1877257 +RMD160 1299e1316e0547171089b0caaa9deb13c4c67c31 ocamlnet-2.2.9.tar.gz 1877257 +SHA256 134530a4357879e095bdbbb5f21f78634a16ef4d787eb151676b7fee7e4c0dc9 ocamlnet-2.2.9.tar.gz 1877257 diff --git a/dev-ml/ocamlnet/ocamlnet-2.2.9-r1.ebuild b/dev-ml/ocamlnet/ocamlnet-2.2.9-r1.ebuild new file mode 100644 index 000000000000..8899ae4518fe --- /dev/null +++ b/dev-ml/ocamlnet/ocamlnet-2.2.9-r1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-ml/ocamlnet/ocamlnet-2.2.9-r1.ebuild,v 1.1 2007/12/17 18:00:58 aballier Exp $ + +inherit eutils findlib + +DESCRIPTION="Modules for OCaml application-level Internet protocols" +HOMEPAGE="http://ocamlnet.sourceforge.net" +SRC_URI="mirror://sourceforge/ocamlnet/${P}.tar.gz" + +LICENSE="as-is GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="gtk ssl tk httpd" + +# the auth-dh compile flag has been disabled as well, since it depends on +# ocaml-cryptgps, which is not available. + +DEPEND="!dev-ml/equeue + !dev-ml/rpc + !dev-ml/netclient + >=dev-ml/findlib-1.0 + >=dev-ml/pcre-ocaml-5 + >=dev-ml/camlp5-5.05 + gtk? ( >=dev-ml/lablgtk-2 ) + ssl? ( dev-ml/ocaml-ssl )" +RDEPEND="${DEPEND}" + +pkg_setup() { + if use tk && ! built_with_use 'dev-lang/ocaml' tk ; + then die "If you want to enable tcl/tk, you need to rebuild dev-lang/ocaml with the 'tk' USE flag"; + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/build_w_camlp5.dpatch" +} + +ocamlnet_use_with() { + if use $1; then + echo "-with-$2" + else + echo "-without-$2" + fi +} + +ocamlnet_use_enable() { + if use $1; then + echo "-enable-$2" + else + echo "-disable-$2" + fi +} + +src_compile() { + ./configure \ + -bindir /usr/bin \ + -datadir /usr/share/${PN} \ + $(ocamlnet_use_enable gtk gtk2) \ + $(ocamlnet_use_enable ssl ssl) \ + $(ocamlnet_use_enable tk tcl) \ + $(ocamlnet_use_with httpd nethttpd) \ + || die "Error : econf failed!" + + emake -j1 all opt || die "make failed" +} + +src_install() { + findlib_src_install +} |