summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorTavis Ormandy <taviso@gentoo.org>2004-03-19 18:44:23 +0000
committerTavis Ormandy <taviso@gentoo.org>2004-03-19 18:44:23 +0000
commit36f0f304d32de9a3d8b76b27dcf80ac83cac7f69 (patch)
tree1c9bb0447a95cc5d0585cbfef0608d120115fec8 /x11-wm
parentput double quotes around $@ (diff)
downloadhistorical-36f0f304d32de9a3d8b76b27dcf80ac83cac7f69.tar.gz
historical-36f0f304d32de9a3d8b76b27dcf80ac83cac7f69.tar.bz2
historical-36f0f304d32de9a3d8b76b27dcf80ac83cac7f69.zip
new releases, minor security fixes.
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/fvwm/ChangeLog11
-rw-r--r--x11-wm/fvwm/Manifest6
-rw-r--r--x11-wm/fvwm/files/digest-fvwm-2.4.181
-rw-r--r--x11-wm/fvwm/files/digest-fvwm-2.5.102
-rw-r--r--x11-wm/fvwm/fvwm-2.4.18.ebuild135
-rw-r--r--x11-wm/fvwm/fvwm-2.5.10.ebuild297
6 files changed, 450 insertions, 2 deletions
diff --git a/x11-wm/fvwm/ChangeLog b/x11-wm/fvwm/ChangeLog
index 8652fffa3cc1..36b4cc6b3b74 100644
--- a/x11-wm/fvwm/ChangeLog
+++ b/x11-wm/fvwm/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for x11-wm/fvwm
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/fvwm/ChangeLog,v 1.62 2004/03/16 20:20:36 taviso Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fvwm/ChangeLog,v 1.63 2004/03/19 18:44:23 taviso Exp $
+
+*fvwm-2.5.10 (19 Mar 2004)
+
+ 19 Mar 2004; Tavis Ormandy <taviso@gentoo.org> fvwm-2.5.10.ebuild,
+ fvwm-2.4.18.ebuild:
+ new releases from both development branches.
+
+ minor security related problems have been fixed in these
+ release, (predicatble (pid based) temp files used in fvwm-bug)
16 Mar 2004; Tavis Ormandy <taviso@gentoo.org> fvwm-2.5.9.ebuild:
ensure FvwmGtk gets a man page.
diff --git a/x11-wm/fvwm/Manifest b/x11-wm/fvwm/Manifest
index 164eed49d27a..d6bded60313b 100644
--- a/x11-wm/fvwm/Manifest
+++ b/x11-wm/fvwm/Manifest
@@ -3,13 +3,17 @@ MD5 76fde55c6ffece27a13fd976d5fb51b6 fvwm-2.5.8-r4.ebuild 10169
MD5 babbec50812f1dd2af1b76b9afa837af fvwm-2.4.17.ebuild 3961
MD5 175ef9160684ed93b20ffcfc478b058b fvwm-2.5.8-r5.ebuild 10414
MD5 60dad7fdef9011540156e68d2ed1f8c4 fvwm-2.5.9.ebuild 9409
-MD5 f91c96915ce3f1d9b19100e24a93fcf6 ChangeLog 11614
+MD5 4700ea234837e6f33ba463c1e7017811 ChangeLog 11906
MD5 4833e4d0685ef48988c0c5c4f9c6b377 metadata.xml 527
+MD5 f1910d8c73bccd43deedc409f7588677 fvwm-2.5.10.ebuild 9410
+MD5 c515838ed1efd6d1f9a60db5b2ff0a5c fvwm-2.4.18.ebuild 3964
MD5 e2ceb5d855c5406a09d82442196efad8 files/README.transluceny.gz 5788
MD5 7e00938e8f20ffaa22e1c5672666c027 files/fvwm-2.5.8-iconfile.diff 791
MD5 e5701841190ad529d5577c8da69d5006 files/fvwmtabs-insecure-tmp-handling.diff 2350
MD5 98b1cd33f30ee47c88a2c3da2b2ddc68 files/fvwm-iconman.diff 2383
MD5 b2af3c1c8fe4f142e2b8debbb5c59a94 files/digest-fvwm-2.4.17 65
+MD5 7d84c8175928d331e6d7b253679f5654 files/digest-fvwm-2.4.18 65
+MD5 5b5cfad2dc34a86304eeeeff9583bbc0 files/digest-fvwm-2.5.10 128
MD5 38cb0131791d07053b5d90bf21d1993f files/fvwm-translucent-menus.diff.gz 3582
MD5 91ad7db238311a86a2e0d27c9186264c files/fvwm-2.5.8-FvwmScript-Quit-reboot.diff 307
MD5 8ebd7b398d3c580ca5067c78f8642ae1 files/fvwm-2.5.8-taskbar-margins.diff 1384
diff --git a/x11-wm/fvwm/files/digest-fvwm-2.4.18 b/x11-wm/fvwm/files/digest-fvwm-2.4.18
new file mode 100644
index 000000000000..f9cb8dfda154
--- /dev/null
+++ b/x11-wm/fvwm/files/digest-fvwm-2.4.18
@@ -0,0 +1 @@
+MD5 6614960df1aa83296e9c005629365428 fvwm-2.4.18.tar.bz2 1378801
diff --git a/x11-wm/fvwm/files/digest-fvwm-2.5.10 b/x11-wm/fvwm/files/digest-fvwm-2.5.10
new file mode 100644
index 000000000000..1c23f20689b5
--- /dev/null
+++ b/x11-wm/fvwm/files/digest-fvwm-2.5.10
@@ -0,0 +1,2 @@
+MD5 b3c86e2af2a4eabe692c9c849ff4b243 fvwm-2.5.10.tar.bz2 1788873
+MD5 959aca155709dfe8ade565efa2bd1c5c FvwmTabs-2.8.tar.gz 24906
diff --git a/x11-wm/fvwm/fvwm-2.4.18.ebuild b/x11-wm/fvwm/fvwm-2.4.18.ebuild
new file mode 100644
index 000000000000..5cd95fdc03e7
--- /dev/null
+++ b/x11-wm/fvwm/fvwm-2.4.18.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fvwm/fvwm-2.4.18.ebuild,v 1.1 2004/03/19 18:44:23 taviso Exp $
+
+inherit gnuconfig
+
+IUSE="readline ncurses gtk stroke gnome rplay xinerama cjk imlib"
+
+S=${WORKDIR}/${P}
+DESCRIPTION="an extremely powerful ICCCM-compliant multiple virtual desktop window manager"
+SRC_URI="ftp://ftp.fvwm.org/pub/fvwm/version-2/${P}.tar.bz2"
+HOMEPAGE="http://www.fvwm.org/"
+
+SLOT="0"
+KEYWORDS="~x86 ~alpha ~ppc ~sparc"
+LICENSE="GPL-2 FVWM"
+
+RDEPEND="readline? ( >=sys-libs/readline-4.1
+ ncurses? ( >=sys-libs/ncurses-5.3-r1 )
+ !ncurses? ( >=sys-libs/libtermcap-compat-1.2.3 ) )
+ gtk? ( =x11-libs/gtk+-1.2*
+ imlib? ( >=media-libs/gdk-pixbuf-0.21.0
+ >=media-libs/imlib-1.9.14-r1 ) )
+ gnome? ( >=gnome-base/gnome-libs-1.4.1.2-r1 )
+ rplay? ( >=media-sound/rplay-3.3.2 )
+ stroke? ( >=dev-libs/libstroke-0.4 )
+ >=dev-lang/perl-5.8.0
+ virtual/x11"
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4"
+
+src_unpack() {
+ unpack ${A}
+ use alpha && gnuconfig_update
+
+ # CFLAGS containing comma will break this, so change it for !
+ sed -i 's#\x27s,xCFLAGSx,$(CFLAGS),\x27#\x27s!xCFLAGSx!$(CFLAGS)!\x27#' ${S}/utils/Makefile.am
+}
+
+src_compile() {
+ local myconf="--libexecdir=/usr/lib"
+
+ # use readline in FvwmConsole.
+ if ! use readline; then
+ myconf="${myconf} --without-readline-library"
+ else
+ myconf="${myconf} --with-readline-library"
+
+ # choose ncurses or termcap.
+ if use ncurses; then
+ myconf="${myconf} --without-termcap-library"
+ else
+ myconf="${myconf} --without-ncurses-library"
+ fi
+ fi
+
+ # fvwm configure doesnt provide a way to disable gtk support if the
+ # required libraries are found, this hides them from the script.
+ if ! use gtk; then
+ myconf="${myconf} --with-gtk-prefix=${T} --with-imlib-prefix=${T}"
+ else
+ if ! use imlib; then
+ myconf="${myconf} --with-imlib-prefix=${T}"
+ fi
+ fi
+
+ # link with the gnome libraries, for better integration with the gnome desktop.
+ if use gnome; then
+ myconf="${myconf} --with-gnome"
+ else
+ myconf="${myconf} --without-gnome"
+ fi
+
+ # rplay is a cool, but little used way of playing sounds over a network
+ # Fvwm support is pretty good.
+ if ! use rplay; then
+ myconf="${myconf} --without-rplay-library"
+ fi
+
+ # xinerama support for those who have multi-headed machines.
+ if use xinerama; then
+ myconf="${myconf} --enable-xinerama"
+ else
+ myconf="${myconf} --disable-xinerama"
+ fi
+
+ # multibyte character support, chinese/japanese/korean/etc.
+ if use cjk; then
+ myconf="${myconf} --enable-multibyte"
+ else
+ myconf="${myconf} --disable-multibyte"
+ fi
+
+ # support for mouse gestures using libstroke (very very cool)
+ if ! use stroke; then
+ myconf="${myconf} --without-stroke-library"
+ fi
+
+ econf ${myconf} || die
+ emake || die
+}
+
+src_install() {
+ make DESTDIR=${D} install || die
+
+ echo "#!/bin/bash" > fvwm2
+ echo "exec /usr/bin/fvwm2" >> fvwm2
+
+ exeinto /etc/X11/Sessions
+ doexe fvwm2
+
+ dodoc AUTHORS ChangeLog COPYING README NEWS docs/ANNOUNCE docs/BUGS \
+ docs/DEVELOPERS docs/FAQ docs/error_codes docs/color_combos docs/TODO \
+ docs/fvwm.lsm
+}
+
+pkg_postinst() {
+ ewarn
+ ewarn "The following features that you did not request are now"
+ ewarn "controlled via USE flags:"
+ use readline || ewarn " Readline support in FvwmConsole [readline]"
+ use ncurses || ewarn " Ncurses support in FvwmConsole [ncurses]"
+ use stroke || ewarn " Mouse Gestures [stroke]"
+ use xinerama || ewarn " Xinerama Support [xinerama]"
+ use cjk || ewarn " Multibyte Character Support [cjk]"
+ use rplay || ewarn " RPlay Support in FvwmEvent [rplay]"
+ use gtk || ewarn " FvwmGTK (gtk+ support) [gtk]"
+ use imlib || ewarn " FvwmGTK (GDK image support) [imlib]"
+ ewarn
+ ewarn "If you require any of the features listed above, you should remerge"
+ ewarn "FVWM with the appropriate USE flags. Use this command to see the flags"
+ ewarn "available:"
+ ewarn " $ emerge -pv fvwm"
+ ewarn
+}
diff --git a/x11-wm/fvwm/fvwm-2.5.10.ebuild b/x11-wm/fvwm/fvwm-2.5.10.ebuild
new file mode 100644
index 000000000000..6dfff228e7a3
--- /dev/null
+++ b/x11-wm/fvwm/fvwm-2.5.10.ebuild
@@ -0,0 +1,297 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fvwm/fvwm-2.5.10.ebuild,v 1.1 2004/03/19 18:44:23 taviso Exp $
+
+inherit eutils flag-o-matic
+
+IUSE="readline truetype ncurses gtk stroke gnome rplay xinerama perl nls png bidi imlib tcltk debug gtk2"
+
+DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager"
+SRC_URI="ftp://ftp.fvwm.org/pub/fvwm/version-2/${P}.tar.bz2
+ perl? ( mirror://gentoo/FvwmTabs-2.8.tar.gz )"
+HOMEPAGE="http://www.fvwm.org/"
+
+SLOT="0"
+KEYWORDS="~x86 ~alpha ~sparc"
+LICENSE="GPL-2 FVWM"
+
+RDEPEND="readline? ( >=sys-libs/readline-4.1
+ ncurses? ( >=sys-libs/ncurses-5.3-r1 )
+ !ncurses? ( >=sys-libs/libtermcap-compat-1.2.3 ) )
+ gtk? ( =x11-libs/gtk+-1.2*
+ imlib? ( >=media-libs/gdk-pixbuf-0.21.0
+ >=media-libs/imlib-1.9.14-r1 )
+ gnome? ( >=gnome-base/gnome-libs-1.4.1.2-r1 ) )
+ rplay? ( >=media-sound/rplay-3.3.2 )
+ bidi? ( >=dev-libs/fribidi-0.10.4 )
+ png? ( >=media-libs/libpng-1.0.12-r2 )
+ stroke? ( >=dev-libs/libstroke-0.4 )
+ perl? ( tcltk? ( >=dev-lang/tk-8.3.4
+ >=dev-perl/perl-tk-800.024-r2
+ >=dev-perl/X11-Protocol-0.52 ) )
+ truetype? ( virtual/xft
+ >=media-libs/fontconfig-2.1-r1
+ >=dev-libs/expat-1.95.6-r1 )
+ >=dev-lang/perl-5.6.1-r10
+ >=sys-libs/zlib-1.1.4-r1
+ virtual/x11"
+# XXX: gtk2 perl bindings require dev-perl/gtk2-perl, worth a dependency?
+# XXX: gtk perl bindings require dev-perl/gtk-perl, worth a dependency?
+# XXX: netpbm is used by FvwmScript-ScreenDump, worth a dependency?
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4
+ dev-util/pkgconfig"
+
+S=${WORKDIR}/${P}
+
+src_unpack() {
+ unpack ${A}
+
+ # this patch enables fast translucent menus in fvwm..yummy! this is a
+ # minor tweak of a patch posted to fvwm-user mailing list by Olivier
+ # Chapuis in <20030827135125.GA6370@snoopy.folie>.
+ cd ${S}; epatch ${FILESDIR}/fvwm-2.5.9-translucent-menus.diff.gz
+
+ # according to a post to fvwm-workers mailing list, Mikhael Goikhman
+ # planned on disabling these debug statements before the release, but
+ # never got around to it.
+ cd ${S}; epatch ${FILESDIR}/disable-debug-statements.diff
+
+ # FvwmTabs uses /tmp/.fvwmtabs.state for storing state files by default,
+ # this probably isnt a good idea security wise, allowing someone to do
+ # damage with symlinks. It will also break if multiple users try using
+ # the same location simultaneously...probably should use File::Temp, but
+ # moving it into ~/.fvwmtabs.state will do for now.
+ if use perl; then
+ cd ${WORKDIR}; epatch ${FILESDIR}/fvwmtabs-2.8-insecure-tmp-handling.diff
+
+ # I'll supply a default icon for FvwmTabs, this removes the need for
+ # installing an iconset, this one comes from the fvwm_icons package.
+ ebegin " Setting default icon for FvwmTabs"
+ sed -i 's#/usr/share/icons/mini/mini-happy.xpm#/usr/share/fvwm/mini-happy.xpm#g' \
+ FvwmTabs FvwmTabs.1 fvwmtabrc
+ eend $?
+ fi
+
+ # this patch adds an 'ShowOnlyIcons Never' option to FvwmIconMan.
+ cd ${S}; epatch ${FILESDIR}/fvwm-iconman.diff
+
+ # build fails on alpha with certain options without this.
+ use alpha && append-flags -fPIC
+}
+
+src_compile() {
+ local myconf="--libexecdir=/usr/lib --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm --enable-package-subdirs"
+
+ # ImagePath should include /usr/share/icons/fvwm (x11-themes/fvwm_icons)
+ #
+ # Another iconset for fvwm, wm-icons, includes configurations and user
+ # configuration utilities to make them easy to use with fvwm, no need
+ # to put them in the default ImagePath.
+
+ # use readline in FvwmConsole.
+ if ! use readline; then
+ myconf="${myconf} --without-readline-library"
+ else
+ myconf="${myconf} --with-readline-library"
+
+ # choose ncurses or termcap.
+ if use ncurses; then
+ myconf="${myconf} --without-termcap-library"
+ else
+ myconf="${myconf} --without-ncurses-library"
+ fi
+ fi
+
+ # since fvwm-2.5.8 GTK support can be diabled with --disable-gtk, previously
+ # we had to hide the includes/libs during configure. this is still the case
+ # for GDK image suport _with_ gtk, unfortunately.
+ # FvwmGtk can be built as a gnome application, or a Gtk+ application.
+ if ! use gtk; then
+ myconf="${myconf} --disable-gtk --without-gnome"
+ else
+ if ! use imlib; then
+ einfo "ATTN: You can safely ignore any imlib related configure errors."
+ myconf="${myconf} --with-imlib-prefix=${T}"
+ fi
+ if ! use gnome; then
+ myconf="${myconf} --without-gnome"
+ else
+ myconf="${myconf} --with-gnome"
+ fi
+ fi
+
+ # rplay is a cool, but little used way of playing sounds over a network
+ # Fvwm support is pretty good.
+ if ! use rplay; then
+ myconf="${myconf} --without-rplay-library"
+ fi
+
+ # Install perl bindings.
+ if use perl; then
+ myconf="${myconf} --enable-perllib"
+ else
+ myconf="${myconf} --disable-perllib"
+ fi
+
+ # xinerama support for those who have multi-headed machines.
+ if use xinerama; then
+ myconf="${myconf} --enable-xinerama"
+ else
+ myconf="${myconf} --disable-xinerama"
+ fi
+
+ # bidirectional writing support, eg hebrew
+ if use bidi; then
+ myconf="${myconf} --enable-bidi"
+ else
+ myconf="${myconf} --disable-bidi"
+ fi
+
+ # png image support (very nice in fvwm)
+ if ! use png; then
+ myconf="${myconf} --without-png-library"
+ fi
+
+ # native language support
+ if use nls; then
+ myconf="${myconf} --enable-nls --enable-iconv"
+ else
+ myconf="${myconf} --disable-nls --disable-iconv"
+ fi
+
+ # support for mouse gestures using libstroke (very very cool)
+ if ! use stroke; then
+ myconf="${myconf} --without-stroke-library"
+ fi
+
+ # more verbosity for module developers/hackers/etc.
+ if use debug; then
+ myconf="${myconf} --enable-debug-msgs --enable-command-log"
+ append-flags -DCR_DETECT_MOTION_METHOD_DEBUG
+ fi
+
+ # Xft Anti Aliased text support (yummy eye candy)
+ if use truetype; then
+ myconf="${myconf} --enable-xft"
+ else
+ myconf="${myconf} --disable-xft"
+ fi
+
+ # disable xsm protocol (session management) support?
+ if use nosm; then
+ myconf="${myconf} --disable-sm"
+ else
+ myconf="${myconf} --enable-sm"
+ fi
+
+ # disable xpm support? (maybe you only use png in your themes, or just solid colour?)
+ if use noxpm; then
+ myconf="${myconf} --without-xpm-library"
+ fi
+
+ # set the local maintainer for fvwm-bug.
+ export FVWM_BUGADDR="taviso@gentoo.org"
+
+ econf ${myconf} || die
+ emake || die
+}
+
+src_install() {
+
+ make DESTDIR=${D} install || die
+
+ if use perl; then
+
+ local toolkits="gtk2 gtk tcltk"
+
+ if use tcltk; then
+ # Install the very cool FvwmTabs module
+ # http://users.tpg.com.au/users/scottie7/FvwmTabs
+ einfo "Installing FvwmTabs module..."
+
+ exeinto /usr/lib/fvwm/${PV}/
+ doexe ${WORKDIR}/FvwmTabs
+ dodoc ${WORKDIR}/fvwmtabrc ${WORKDIR}/README.fvwmtabs
+ doman ${WORKDIR}/FvwmTabs.1
+
+ # install default drag and drop icon.
+ insinto /usr/share/fvwm
+ newins ${FILESDIR}/mini.happy.xpm mini-happy.xpm
+ else
+ # Remove the Tk bindings (requires perl-tk)
+ rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Tk.pm
+ toolkits=${toolkits/tcltk/}
+ fi
+ if ! use gtk; then
+ # Remove gtk bindings (requires gtk-perl/gtk2-perl)
+ rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk.pm \
+ ${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk2.pm
+ toolkits=${toolkits/gtk2/}
+ toolkits=${toolkits/gtk/}
+ else
+ if ! use gtk2; then
+ # Just remove the gtk2 bindings (requires gtk2-perl)
+ rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk2.pm
+ toolkits=${toolkits/gtk2/}
+ fi
+ fi
+ toolkits=${toolkits// /}
+ if ! test "${toolkits}"; then
+ # No perl toolkit bindings wanted, remove the unneeded files
+ # and empty directories.
+ rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Toolkit.pm
+ find ${D}/usr/share/fvwm/perllib -depth -type d -exec rmdir {} \; 2>/dev/null
+ fi
+ else
+ # Remove useless script if perllib isnt required.
+ rm -rf ${D}/usr/bin/fvwm-perllib ${D}/usr/share/man/man1/fvwm-perllib.1
+ fi
+
+ # neat utility for testing fvwm behaviour on applications setting various
+ # hints, creates a simple black window with configurable hints set.
+ if use debug; then
+ dobin ${S}/tests/hints/hints_test
+ newdoc ${S}/tests/hints/README README.hints
+ fi
+
+ # fvwm-convert-2.6 is just a stub, contains no code - remove it for now.
+ # fvwm-convert-2.2 has a man page, but the script is no longer distributed.
+ rm -f ${D}/usr/bin/fvwm-convert-2.6 ${D}/usr/share/man/man1/fvwm-convert-2.6.1
+ rm -f ${D}/usr/share/man/man1/fvwm-convert-2.2.1
+
+ # ive included `exec` to save a few bytes of memory.
+ echo "#!/bin/bash" > fvwm2
+ echo "exec /usr/bin/fvwm2" >> fvwm2
+
+ exeinto /etc/X11/Sessions
+ doexe fvwm2
+
+ dodoc AUTHORS ChangeLog COPYING README NEWS docs/ANNOUNCE docs/BUGS \
+ docs/COMMANDS docs/DEVELOPERS docs/FAQ docs/error_codes docs/TODO \
+ docs/fvwm.lsm
+
+ dodoc utils/fvwm_make_directory_menu.sh utils/fvwm_make_browse_menu.sh \
+ utils/quantize_pixmaps utils/xselection.c
+
+ dodoc ${FILESDIR}/README.transluceny.gz
+
+ # make sure FvwmGtk man page is installed
+ use gtk && doman ${S}/modules/FvwmGtk/FvwmGtk.1
+
+ # fix a couple of symlinks.
+ prepallman
+}
+
+pkg_postinst() {
+ if use perl; then
+ if use tcltk; then
+ einfo "By setting the perl and tcltk USE flags, you have elected to"
+ einfo "install the FvwmTabs module, a configurable tabbing system"
+ einfo "for FVWM. You can read more about FvwmTabs here:"
+ einfo
+ einfo " http://users.tpg.com.au/users/scottie7/fvwmtabs.html"
+ einfo
+ fi
+ fi
+}