diff options
Diffstat (limited to 'makfa')
| -rw-r--r-- | makfa/Makefile | 75 | ||||
| -rw-r--r-- | makfa/patches/00-pickle.patch | 63 | ||||
| -rw-r--r-- | makfa/patches/01-path.patch | 22 | ||||
| -rw-r--r-- | makfa/patches/02-pyexpat.patch | 18 |
4 files changed, 178 insertions, 0 deletions
diff --git a/makfa/Makefile b/makfa/Makefile new file mode 100644 index 0000000..506e3b5 --- /dev/null +++ b/makfa/Makefile @@ -0,0 +1,75 @@ +# +# Copyright (C) 2010 Alan Post <alanpost@sunflowerriver.org> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=makfa +PKG_VERSION:=20091212 +PKG_REV:=e6c80dc33aa94358e767d34cbb5c1e003485db62 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=git://github.com/lojban/makfa-cli +PKG_SOURCE_PROTO:=git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=$(PKG_REV) + +include $(INCLUDE_DIR)/package.mk + +define Package/makfa + TITLE:=Lojban Dictionary + URL:=http://gittub.com/lojban/makfa-cli + MAINTAINER:=".alyn.post" <alyn.post@lodockikumazvati.org> + CATEGORY:=Languages + SUBMENU:=Lojban + SECTION:=lang + DEPENDS:=+python +endef + +define Package/jbofihe/description + A Lojban dictionary. +endef + +define Build/Configure +endef + +# Since the Ben NanoNote does not have internet access, build the dictionary +# on the host machine and copy it into the package. +# +define Build/Compile + python $(PKG_BUILD_DIR)/makfa update en $(PKG_BUILD_DIR)/makfa.dump +endef + +define Package/makfa/install + $(INSTALL_DIR) \ + $(1)/usr/share/$(PKG_NAME) \ + $(1)/usr/bin + + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/makfa \ + $(1)/usr/bin/ + + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/makfa.dump \ + $(1)/usr/share/$(PKG_NAME)/ +endef + +$(eval $(call RequireCommand,python, \ + Please install Python 2.x \ +)) + +$(eval $(call BuildPackage,makfa)) diff --git a/makfa/patches/00-pickle.patch b/makfa/patches/00-pickle.patch new file mode 100644 index 0000000..a9b0eb5 --- /dev/null +++ b/makfa/patches/00-pickle.patch @@ -0,0 +1,63 @@ +diff --git a/makfa b/makfa +index af7a8b7..488007e 100755 +--- a/makfa ++++ b/makfa +@@ -296,19 +296,16 @@ class Update(object): + """Update dictionary.""" + + def __init__(self): +- self.parser = OptionParser(usage='makfa update [language]', ++ self.parser = OptionParser(usage='makfa update [language] [filename]', + description=self.__class__.__doc__) + + def parse(self, argv): + options, args = self.parser.parse_args(argv) + print 'Updating dictionary...' +- if args: +- try: +- Updater(args[0]) +- except SyntaxError: +- print 'Invalid language code.' +- else: +- Updater() ++ try: ++ Updater(*args) ++ except SyntaxError: ++ print 'Invalid language code.' + + + class Find(object): +@@ -488,7 +485,7 @@ class Type(Command): + + class Updater(object): + +- def __init__(self, lang='en'): ++ def __init__(self, lang='en', filename=os.path.expanduser('~/makfa.dump')): + self.db = {'order': [], 'entries': {}} + url = 'http://jbovlaste.lojban.org/export/xml-export.html?lang=%s' + tree = etree.parse(urllib.urlopen(url % lang)) +@@ -506,7 +503,7 @@ class Updater(object): + self.db['entries'][word]['places'][place] = [] + self.db['entries'][word]['places'][place]. \ + append((valsi.get('word'), sense)) +- pickle.dump(self.db, open(os.path.expanduser('~/.makfa.dump'), 'w'), -1) ++ pickle.dump(self.db, open(filename, 'w'), -1) + + def _save(self, valsi): + word = valsi.get('word') +@@ -618,12 +615,12 @@ class Filter(object): + + class Dictionary(object): + +- def __init__(self): ++ def __init__(self, filename=os.path.expanduser('~/makfa.dump')): + try: +- self._db = pickle.load(open(os.path.expanduser('~/.makfa.dump'))) ++ self._db = pickle.load(open(filename)) + except: + print >>sys.stderr, '(Fetching dictionary, this may take a minute.)' +- self._db = Updater().db ++ self._db = Updater(filename=filename).db + self._longest = max(map(len, self)) + + def definition(self, entry): diff --git a/makfa/patches/01-path.patch b/makfa/patches/01-path.patch new file mode 100644 index 0000000..2be15e8 --- /dev/null +++ b/makfa/patches/01-path.patch @@ -0,0 +1,22 @@ +diff --git a/makfa b/makfa +index 488007e..a19a5c8 100755 +--- a/makfa ++++ b/makfa +@@ -485,7 +485,7 @@ class Type(Command): + + class Updater(object): + +- def __init__(self, lang='en', filename=os.path.expanduser('~/makfa.dump')): ++ def __init__(self, lang='en', filename='/usr/share/makfa/makfa.dump'): + self.db = {'order': [], 'entries': {}} + url = 'http://jbovlaste.lojban.org/export/xml-export.html?lang=%s' + tree = etree.parse(urllib.urlopen(url % lang)) +@@ -615,7 +615,7 @@ class Filter(object): + + class Dictionary(object): + +- def __init__(self, filename=os.path.expanduser('~/makfa.dump')): ++ def __init__(self, filename='/usr/share/makfa/makfa.dump'): + try: + self._db = pickle.load(open(filename)) + except: diff --git a/makfa/patches/02-pyexpat.patch b/makfa/patches/02-pyexpat.patch new file mode 100644 index 0000000..47bf510 --- /dev/null +++ b/makfa/patches/02-pyexpat.patch @@ -0,0 +1,18 @@ +--- a/makfa 2010-09-14 20:40:00.000000000 -0600 ++++ b/makfa 2010-09-14 20:37:31.000000000 -0600 +@@ -8,7 +8,6 @@ + import sys + import textwrap + import urllib +-import xml.etree.cElementTree as etree + + + +@@ -486,6 +485,7 @@ + class Updater(object): + + def __init__(self, lang='en', filename='/usr/share/makfa/makfa.dump'): ++ import xml.etree.cElementTree as etree + self.db = {'order': [], 'entries': {}} + url = 'http://jbovlaste.lojban.org/export/xml-export.html?lang=%s' + tree = etree.parse(urllib.urlopen(url % lang)) |
