--- /dev/null
+#
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id: $
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=joe
+PKG_VERSION:=3.5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/joe-editor
+PKG_MD5SUM:=9bdffecce7ef910feaa06452d48843de
+PKG_CAT:=zcat
+
+PKG_BUILD_DEPENDS:=libncurses
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/joe
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=JOE - Joes own editor
+ DESCRIPTION:=Joe is world-famous Wordstar like text editor.
+ URL:=http://sourceforge.net/projects/joe-editor/
+endef
+
+define Package/joe/install
+ $(STRIP) $(PKG_BUILD_DIR)/joe
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/joe $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,joe))
--- /dev/null
+--- joe-3.5/umath.c 2007-03-17 09:26:29.000000000 +0100
++++ joe-3.5/umath.c.new 2007-03-17 09:27:54.000000000 +0100
+@@ -378,7 +378,6 @@
+ double m_tan(double n) { return tan(n); }
+ double m_exp(double n) { return exp(n); }
+ double m_sqrt(double n) { return sqrt(n); }
+-double m_cbrt(double n) { return cbrt(n); }
+ double m_log(double n) { return log(n); }
+ double m_log10(double n) { return log10(n); }
+ double m_asin(double n) { return asin(n); }
+@@ -387,19 +386,10 @@
+ double m_sinh(double n) { return sinh(n); }
+ double m_cosh(double n) { return cosh(n); }
+ double m_tanh(double n) { return tanh(n); }
+-double m_asinh(double n) { return asinh(n); }
+-double m_acosh(double n) { return acosh(n); }
+-double m_atanh(double n) { return atanh(n); }
+ double m_int(double n) { return (int)(n); }
+ double m_floor(double n) { return floor(n); }
+ double m_ceil(double n) { return ceil(n); }
+ double m_fabs(double n) { return fabs(n); }
+-double m_erf(double n) { return erf(n); }
+-double m_erfc(double n) { return erfc(n); }
+-double m_j0(double n) { return j0(n); }
+-double m_j1(double n) { return j1(n); }
+-double m_y0(double n) { return y0(n); }
+-double m_y1(double n) { return y1(n); }
+
+ double calc(BW *bw, unsigned char *s)
+ {
+@@ -414,7 +404,6 @@
+ v = get(USTR "tan"); v->func = m_tan;
+ v = get(USTR "exp"); v->func = m_exp;
+ v = get(USTR "sqrt"); v->func = m_sqrt;
+- v = get(USTR "cbrt"); v->func = m_cbrt;
+ v = get(USTR "ln"); v->func = m_log;
+ v = get(USTR "log"); v->func = m_log10;
+ v = get(USTR "asin"); v->func = m_asin;
+@@ -425,19 +414,10 @@
+ v = get(USTR "sinh"); v->func = m_sinh;
+ v = get(USTR "cosh"); v->func = m_cosh;
+ v = get(USTR "tanh"); v->func = m_tanh;
+- v = get(USTR "asinh"); v->func = m_asinh;
+- v = get(USTR "acosh"); v->func = m_acosh;
+- v = get(USTR "atanh"); v->func = m_atanh;
+ v = get(USTR "int"); v->func = m_int;
+ v = get(USTR "floor"); v->func = m_floor;
+ v = get(USTR "ceil"); v->func = m_ceil;
+ v = get(USTR "abs"); v->func = m_fabs;
+- v = get(USTR "erf"); v->func = m_erf;
+- v = get(USTR "erfc"); v->func = m_erfc;
+- v = get(USTR "j0"); v->func = m_j0;
+- v = get(USTR "j1"); v->func = m_j1;
+- v = get(USTR "y0"); v->func = m_y0;
+- v = get(USTR "y1"); v->func = m_y1;
+ }
+
+ v = get(USTR "top");