diff options
author | Torsten Veller <tove@gentoo.org> | 2009-03-09 15:46:27 +0000 |
---|---|---|
committer | Torsten Veller <tove@gentoo.org> | 2009-03-09 15:46:27 +0000 |
commit | 7cb432e0e886b5a98d29a4252b95dd5d36a982c5 (patch) | |
tree | 089da2f66ad898dfb4ac93c1f64295e3ef2a728c /app-misc/muttprint | |
parent | Sparc stable, Bug #261673. (diff) | |
download | historical-7cb432e0e886b5a98d29a4252b95dd5d36a982c5.tar.gz historical-7cb432e0e886b5a98d29a4252b95dd5d36a982c5.tar.bz2 historical-7cb432e0e886b5a98d29a4252b95dd5d36a982c5.zip |
Fixes symlink attack (#250554), sets CC (#243660), CFLAGS (#240078) and installs english docs (#112592)
Package-Manager: portage-2.2_rc23/cvs/Linux i686
Diffstat (limited to 'app-misc/muttprint')
-rw-r--r-- | app-misc/muttprint/ChangeLog | 13 | ||||
-rw-r--r-- | app-misc/muttprint/Manifest | 14 | ||||
-rw-r--r-- | app-misc/muttprint/files/muttprint-CVE-2008-5368.patch | 80 | ||||
-rw-r--r-- | app-misc/muttprint/files/muttprint-ldflags.patch | 19 | ||||
-rw-r--r-- | app-misc/muttprint/files/muttprint-no_html_docs.patch | 148 | ||||
-rw-r--r-- | app-misc/muttprint/metadata.xml | 6 | ||||
-rw-r--r-- | app-misc/muttprint/muttprint-0.72d-r1.ebuild | 39 |
7 files changed, 307 insertions, 12 deletions
diff --git a/app-misc/muttprint/ChangeLog b/app-misc/muttprint/ChangeLog index 9dc145b03211..2f07d1c50c4d 100644 --- a/app-misc/muttprint/ChangeLog +++ b/app-misc/muttprint/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for app-misc/muttprint -# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-misc/muttprint/ChangeLog,v 1.32 2008/09/03 21:09:48 opfer Exp $ +# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-misc/muttprint/ChangeLog,v 1.33 2009/03/09 15:46:27 tove Exp $ + +*muttprint-0.72d-r1 (09 Mar 2009) + + 09 Mar 2009; Torsten Veller <tove@gentoo.org> + +files/muttprint-CVE-2008-5368.patch, +files/muttprint-ldflags.patch, + +files/muttprint-no_html_docs.patch, +muttprint-0.72d-r1.ebuild: + Fixes symlink attack (#250554), sets CC (#243660), CFLAGS (#240078) + and installs english docs (#112592). + Now maintainer-needed. 03 Sep 2008; Christian Faulhammer <opfer@gentoo.org> muttprint-0.72a.ebuild, muttprint-0.72b.ebuild, muttprint-0.72d.ebuild: diff --git a/app-misc/muttprint/Manifest b/app-misc/muttprint/Manifest index f4a6a5d673ce..554acd2b4e41 100644 --- a/app-misc/muttprint/Manifest +++ b/app-misc/muttprint/Manifest @@ -2,19 +2,23 @@ Hash: SHA1 AUX muttprint-0.72a-platex.patch 654 RMD160 da368f194b16b060253e421277034f248643a9ae SHA1 736086fba77c51b735494f9dda14171f853c9958 SHA256 74d73f3e9c35290ae7cb3bf723d3d96f33fedb28345a7ea054e70653397ffe22 +AUX muttprint-CVE-2008-5368.patch 2478 RMD160 9db11b32918187f577c48310e655ef0ad03d07f2 SHA1 bbfe05889008b0100e18e0aaa93851faebf8ec11 SHA256 daa859b5f898d24c20ce0b1fecbbf86cbc68595e3e3c40b98b9437d41785eb3a +AUX muttprint-ldflags.patch 674 RMD160 a6028551292a345026e6836a977337a01b27410c SHA1 8286dab31ded85b4ee61ea010c767a7c3281747a SHA256 eda270d6f2dfb2340543e230cfc1be024e1c65b1bdbbb58b2c237a143a660b61 +AUX muttprint-no_html_docs.patch 5568 RMD160 8d7ccc578c8530d9d8e19466dacff87284f19620 SHA1 5b0bf00ca5a3468b5275b732de12a4dd1e0cca03 SHA256 4757dfc26dada3db465c656f3bb63e138f0e6bbc8115943513dfa91ea6f2dae0 AUX muttprint-rem_sig.patch 839 RMD160 b2218bb84455e8d4203150d36bec4504f7570d58 SHA1 01b5270fceb5e04603e4cfe075294b92aa007236 SHA256 02c297a42648ca7f3fdc34249d47b0ae373d6fae2a0e52500b2bc2f161689579 DIST muttprint-0.72a.tar.gz 864054 RMD160 59a37bdf293839afaa2ba728b2c143efc513c6e5 SHA1 9667235638f235e147ce1683b06e4ac0ac5caf30 SHA256 e5c6964ef400c5ed734f5b3eb77df33deca2cfc1240f06b8d0dbd939ed285467 DIST muttprint-0.72b.tar.gz 861403 RMD160 444a227c0b7994e31ad1ebd2851012f55c5c682a SHA1 253d1a6a846b421c867ef367d3591cc5c27d4d6a SHA256 3e577e8945eab9cd0ab9e8d4d6abd4dd29a2ee5bf469e4e0c1e0aaaa617f8be7 DIST muttprint-0.72d.tar.gz 746660 RMD160 cb6f40c892de0142584969e7b0ca60b4f3fed140 SHA1 532a1c7ed019b0b50c78caf7eeb17f5cd34d3d1e SHA256 a2672950739c26c83777b6842e3500e145e8bcdd8552ec14e2d90ab4d43c2bc8 EBUILD muttprint-0.72a.ebuild 820 RMD160 5760cc92aa2c1d81f40ce070c5e07ba8402f187b SHA1 efc73e068bf7d23bf8ad4c796c580520d4181688 SHA256 039b4e0502576e846611f408d1bf77d0baf18591ed3b1b6d33b5a4a8f00aadc7 EBUILD muttprint-0.72b.ebuild 836 RMD160 73cac6f0fbe3241c87faf9f1dad269058d3d1173 SHA1 31e6ff1db1c79e9c655c9b9dcded2dda48d9688c SHA256 e8c459e985f2cc0239881a12a5727d500d88199e722828fd4148252c77b7fca9 +EBUILD muttprint-0.72d-r1.ebuild 957 RMD160 88d6167300a62e0521bee47fbafc9fc4d35dc162 SHA1 cb7b048e05668d20b496a995984e4b5c98120c40 SHA256 b2331ec4cd1ca02c560c0a2c070fc50a777380ca022fc7f17445d33c402f5d97 EBUILD muttprint-0.72d.ebuild 762 RMD160 3c7126ee5b1fe08a0b0107af55dfb1d2a4fbef99 SHA1 642fa29ec9f4b7af85d9d08a237101c85e70e0f8 SHA256 d484b8e5ecda9faa859fa67c1f8d47f800dfd78745fd8e0c56760d1110e88234 -MISC ChangeLog 4123 RMD160 65a8e3f20506f014ba40d26704675498dc46a187 SHA1 867c380d26ebb2055f9a3b48616197bd97986df2 SHA256 13c8630545eb89589ddde57c34ead11e3daf4157d21d668c9183ae1df6b03d02 -MISC metadata.xml 258 RMD160 09059381383349b2613d848d89f51996569595f3 SHA1 c500f770ae2300901055e89331f479823f3283fd SHA256 c3e7eb522c61b005199ff54966597e53b66824c7df5b9d29e5a9c7c3272c3bd1 +MISC ChangeLog 4479 RMD160 e9829627a1f0af8c369863089f5dd00021a80152 SHA1 5799442c7b8fc5133aa451eb028cef8aac656737 SHA256 835dd48a648f13ceb61c8478408cca626d36559a2d5d602f13897e7bc8a44443 +MISC metadata.xml 171 RMD160 5a419c3135013b4b321dac70f611a0a4fdce40ad SHA1 d92c626607f8d20d27bad77be1c591937c9a33ce SHA256 4a03010700e508691922d5ba63e8fe7db592e7e537ac4a79a2d0fdd13499c11e -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) -iEYEARECAAYFAki+/U8ACgkQNQqtfCuFneN0fQCgib5EQfKG/ouSK5kC1Mrrukfm -NCgAn27wGCBLVWM2L6DoaZDnJT2NExHV -=wqwG +iEYEARECAAYFAkm1OacACgkQV3J2n04Eauwr+QCgtQmeszvnnFK6zaLtTePOy4Kg +QugAoMxXlHpgK3pX7xfhFfX3hGSSmxa8 +=nteZ -----END PGP SIGNATURE----- diff --git a/app-misc/muttprint/files/muttprint-CVE-2008-5368.patch b/app-misc/muttprint/files/muttprint-CVE-2008-5368.patch new file mode 100644 index 000000000000..d80b12dfc91f --- /dev/null +++ b/app-misc/muttprint/files/muttprint-CVE-2008-5368.patch @@ -0,0 +1,80 @@ + +--- muttprint-0.72d/muttprint 2008/11/27 20:21:34 235 ++++ muttprint-0.72d/muttprint 2008/12/25 14:26:39 236 +@@ -38,6 +46,9 @@ + use POSIX; + use Text::Wrap; + use File::Temp qw(tempdir); ++use File::Temp qw(tempfile); ++use File::Spec qw(tmpdir); ++use File::stat qw(stat); + use utf8; + + # boolean type +@@ -1122,21 +1131,49 @@ + } + } + +-sub createTemp () { +- # +- # temp directory / temp files +- $Temp{dir} = tempdir("muttprint-XXXXXX", TMPDIR => 1, CLEANUP => 1); +- $Temp{content} = "$Temp{dir}/content"; +- $Temp{latex} = "$Temp{dir}/mail.tex"; +- $Temp{logf} = "/tmp/muttprint.log"; +- $Temp{dvi} = "$Temp{dir}/mail.dvi"; +- $Temp{ps} = "$Temp{dir}/mail.ps"; +- $Temp{psnew} = "$Temp{dir}/mail-new.ps"; +- $Temp{ps1} = "$Temp{dir}/mail1.ps"; +- $Temp{ps2} = "$Temp{dir}/mail2.ps"; +- $Temp{xf_raw} = "$Temp{dir}/xface.raw"; +- $Temp{xf_xbm} = "$Temp{dir}/xface.xbm"; +- $Temp{xf_eps} = "$Temp{dir}/xface.eps"; ++sub createTemp () ++{ ## set temporary directories and files ## ++ ++ my $logf = "/tmp/muttprint.log"; ++ ++ if (-e $logf) ++ { ## 2008-12-24 -- Lukas Ruf ++ # close CVE-2008-5368 -- muttprint vulnerable to symlink attack ++ # ensure "/tmp/muttprint.log" adheres to the following constraints ++ # - owner is current user ++ # - only real files are allowed ++ # if any of these fail, create a temporary file by use of tempfile() ++ ++ ## check ownership ## ++ my $stat = stat($logf) || die "ERROR: no $logf"; ++ my $is_owner = $stat->uid == $< || $stat->uid == $>; ++ my $is_regfile = (-f $logf); ++ ++ ## adjust the logfile if any of those checks fails ## ++ if (!$is_owner || !$is_regfile) ++ { ## create a temporary logfile ## ++ my $logfh = 0; ++ ($logfh, $logf) = tempfile("muttprint-XXXXXX", UNLINK => 0, SUFFIX => ".log"); ++ ++ my $logd = File::Spec->tmpdir(); ++ $logf = "$logd"."/"."$logf"; ++ close $logfh || die "ERROR: closing $logf"; ++ } ++ } ++ ++ $Temp{dir} = tempdir("muttprint-XXXXXX", TMPDIR => 1, CLEANUP => 1); ++ $Temp{content} = "$Temp{dir}/content"; ++ $Temp{latex} = "$Temp{dir}/mail.tex"; ++ $Temp{logf} = "$logf"; ++ $Temp{dvi} = "$Temp{dir}/mail.dvi"; ++ $Temp{ps} = "$Temp{dir}/mail.ps"; ++ $Temp{psnew} = "$Temp{dir}/mail-new.ps"; ++ $Temp{ps1} = "$Temp{dir}/mail1.ps"; ++ $Temp{ps2} = "$Temp{dir}/mail2.ps"; ++ $Temp{xf_raw} = "$Temp{dir}/xface.raw"; ++ $Temp{xf_xbm} = "$Temp{dir}/xface.xbm"; ++ $Temp{xf_eps} = "$Temp{dir}/xface.eps"; ++ + } + + ############################################################################## + + diff --git a/app-misc/muttprint/files/muttprint-ldflags.patch b/app-misc/muttprint/files/muttprint-ldflags.patch new file mode 100644 index 000000000000..abbd0cde4aa0 --- /dev/null +++ b/app-misc/muttprint/files/muttprint-ldflags.patch @@ -0,0 +1,19 @@ +--- muttprint-0.72d/langinfo/Makefile ++++ muttprint-0.72d/langinfo/Makefile +@@ -21,13 +21,13 @@ + all: muttprint-langinfo + + muttprint-langinfo: main.o muttprint-langinfo.o muttprint-langinfo.h +- $(CC) $(CCFLAGS) -o muttprint-langinfo muttprint-langinfo.o main.o ++ $(CC) $(LDFLAGS) -o muttprint-langinfo muttprint-langinfo.o main.o + + main.o: main.c muttprint-langinfo.h +- $(CC) $(CCFLAGS) -c -o main.o main.c ++ $(CC) $(CFLAGS) -c -o main.o main.c + + muttprint-langinfo.o: muttprint-langinfo.c +- $(CC) $(CCFLAGS) -c -o muttprint-langinfo.o muttprint-langinfo.c ++ $(CC) $(CFLAGS) -c -o muttprint-langinfo.o muttprint-langinfo.c + + install: + test -x muttprint-langinfo && \ diff --git a/app-misc/muttprint/files/muttprint-no_html_docs.patch b/app-misc/muttprint/files/muttprint-no_html_docs.patch new file mode 100644 index 000000000000..f5787102db2a --- /dev/null +++ b/app-misc/muttprint/files/muttprint-no_html_docs.patch @@ -0,0 +1,148 @@ +--- muttprint-0.72d/doc/manpages/de/muttprint.pod ++++ muttprint-0.72d/doc/manpages/de/muttprint.pod +@@ -22,7 +22,7 @@ + nur die wichtigen Header und nicht alle. + + Eine ausfürliche Benutzeranleitung finden Sie in +-F<##DOCDIR##/muttprint/> im PDF- und HTML-Format. ++F<##DOCDIR##/muttprint/> im PDF--Format. + + Wie auch immer, Sie müssen folgende Zeile in Ihre F<##SYSCONFDIR##/Muttrc> oder + F<~/.muttrc> eintragen: +--- muttprint-0.72d/doc/manpages/en/muttprint.pod ++++ muttprint-0.72d/doc/manpages/en/muttprint.pod +@@ -22,7 +22,7 @@ + whole plethora of them. + + For detailed information about Muttprint look read the User's guide in PDF +-and HTML format at F<##DOCDIR##/muttprint/>. ++format at F<##DOCDIR##/muttprint/>. + + Anyway, you have to put the following line in your F<##SYSCONFDIR##/Muttrc> or + F<~/.muttrc>: +--- muttprint-0.72d/doc/manual/de/Makefile ++++ muttprint-0.72d/doc/manual/de/Makefile +@@ -39,7 +39,7 @@ + + # + # we will not make 'all' but only the 'standard' by default +-default: pdf html sed-clean ++default: pdf sed-clean + all: ps dvi pdf html rtf sed-clean + ps: manual-$(lang).ps + pdf: manual-$(lang).pdf +@@ -88,10 +88,10 @@ + ##install: manual-$(lang).pdf manual-$(lang)/muttprint.html + install: + $(INSTALL) *.pdf $(docdir)/$(docdirname) +- mkdir -p $(docdir)/$(docdirname)/manual-$(lang) ++ #mkdir -p $(docdir)/$(docdirname)/manual-$(lang) + # ignore the stylesheet-images/ directory because the files are not needed +- $(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ +- $(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ + + gzip: + $(gzip) *.ps *.txt +--- muttprint-0.72d/doc/manual/en/Makefile ++++ muttprint-0.72d/doc/manual/en/Makefile +@@ -39,7 +39,7 @@ + + # + # we will not make 'all' but only the 'standard' by default +-default: pdf html sed-clean ++default: pdf sed-clean + all: ps dvi pdf html rtf sed-clean + ps: manual-$(lang).ps + pdf: manual-$(lang).pdf +@@ -88,10 +88,10 @@ + ##install: manual-$(lang).pdf manual-$(lang)/muttprint.html + install: + $(INSTALL) *.pdf $(docdir)/$(docdirname) +- mkdir -p $(docdir)/$(docdirname)/manual-$(lang) ++ #mkdir -p $(docdir)/$(docdirname)/manual-$(lang) + # ignore the stylesheet-images/ directory because the files are not needed +- $(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ +- $(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ + + gzip: + $(gzip) *.ps *.txt +--- muttprint-0.72d/doc/manual/es/Makefile ++++ muttprint-0.72d/doc/manual/es/Makefile +@@ -39,7 +39,7 @@ + + # + # we will not make 'all' but only the 'standard' by default +-default: pdf html sed-clean ++default: pdf sed-clean + all: ps dvi pdf html rtf sed-clean + ps: manual-$(lang).ps + pdf: manual-$(lang).pdf +@@ -88,10 +88,10 @@ + ##install: manual-$(lang).pdf manual-$(lang)/muttprint.html + install: + $(INSTALL) *.pdf $(docdir)/$(docdirname) +- mkdir -p $(docdir)/$(docdirname)/manual-$(lang) ++ #mkdir -p $(docdir)/$(docdirname)/manual-$(lang) + # ignore the stylesheet-images/ directory because the files are not needed +- $(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ +- $(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ + + gzip: + $(gzip) *.ps *.txt +--- muttprint-0.72d/doc/manual/it/Makefile ++++ muttprint-0.72d/doc/manual/it/Makefile +@@ -39,7 +39,7 @@ + + # + # we will not make 'all' but only the 'standard' by default +-default: pdf html sed-clean ++default: pdf sed-clean + all: ps dvi pdf html rtf sed-clean + ps: manual-$(lang).ps + pdf: manual-$(lang).pdf +@@ -88,10 +88,10 @@ + ##install: manual-$(lang).pdf manual-$(lang)/muttprint.html + install: + $(INSTALL) *.pdf $(docdir)/$(docdirname) +- mkdir -p $(docdir)/$(docdirname)/manual-$(lang) ++ #mkdir -p $(docdir)/$(docdirname)/manual-$(lang) + # ignore the stylesheet-images/ directory because the files are not needed +- $(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ +- $(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ + + gzip: + $(gzip) *.ps *.txt +--- muttprint-0.72d/doc/manual/sl/Makefile ++++ muttprint-0.72d/doc/manual/sl/Makefile +@@ -39,7 +39,7 @@ + + # + # we will not make 'all' but only the 'standard' by default +-default: pdf html sed-clean ++default: pdf sed-clean + all: ps dvi pdf html rtf sed-clean + ps: manual-$(lang).ps + pdf: manual-$(lang).pdf +@@ -88,10 +88,10 @@ + ##install: manual-$(lang).pdf manual-$(lang)/muttprint.html + install: + $(INSTALL) *.pdf $(docdir)/$(docdirname) +- mkdir -p $(docdir)/$(docdirname)/manual-$(lang) ++ #mkdir -p $(docdir)/$(docdirname)/manual-$(lang) + # ignore the stylesheet-images/ directory because the files are not needed +- $(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ +- $(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.html $(docdir)/$(docdirname)/manual-$(lang)/ ++ #$(INSTALL) manual-$(lang)/*.css $(docdir)/$(docdirname)/manual-$(lang)/ + + gzip: + $(gzip) *.ps *.txt + diff --git a/app-misc/muttprint/metadata.xml b/app-misc/muttprint/metadata.xml index 2b3b80d69d22..4f4797c619e0 100644 --- a/app-misc/muttprint/metadata.xml +++ b/app-misc/muttprint/metadata.xml @@ -1,9 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <herd>no-herd</herd> - <maintainer> - <email>ferdy@gentoo.org</email> - <name>Fernando J. Pereda</name> - </maintainer> + <herd>maintainer-needed</herd> </pkgmetadata> diff --git a/app-misc/muttprint/muttprint-0.72d-r1.ebuild b/app-misc/muttprint/muttprint-0.72d-r1.ebuild new file mode 100644 index 000000000000..e9e9178ec92e --- /dev/null +++ b/app-misc/muttprint/muttprint-0.72d-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-misc/muttprint/muttprint-0.72d-r1.ebuild,v 1.1 2009/03/09 15:46:27 tove Exp $ + +EAPI=2 + +inherit eutils toolchain-funcs + +DESCRIPTION="Script for pretty printing of your mails" +HOMEPAGE="http://muttprint.sf.net/" +SRC_URI="mirror://sourceforge/muttprint/${P}.tar.gz" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~x86" +IUSE="" + +RDEPEND="virtual/latex-base + dev-lang/perl + dev-perl/TimeDate + dev-perl/Text-Iconv + dev-perl/File-Which + app-text/psutils" + +src_prepare() { + epatch "${FILESDIR}/${PN}-rem_sig.patch" + epatch "${FILESDIR}/${PN}-ldflags.patch" + epatch "${FILESDIR}/${PN}-no_html_docs.patch" + epatch "${FILESDIR}/${PN}-CVE-2008-5368.patch" +} + +src_compile() { + tc-export CC + default +} + +src_install() { + make prefix="${D}"/usr docdir="${D}"/usr/share/doc docdirname=${P} install || die +} |