games-util/pyfa: update live ebuild
authorAlexandre Rostovtsev <tetromino@gentoo.org>
Wed, 7 Oct 2015 02:38:40 +0000 (22:38 -0400)
committerAlexandre Rostovtsev <tetromino@gentoo.org>
Wed, 7 Oct 2015 02:42:49 +0000 (22:42 -0400)
Update patches for upstream code changes, update dependencies, install
images in a compressed zip since upstream code now allows it, and switch
to git-r3.eclass.

Gentoo-Bug: 562080
Reported-by: Captain Crutches
Package-Manager: portage-2.2.22

games-util/pyfa/files/configforced-1.15.1.py [new file with mode: 0644]
games-util/pyfa/files/pyfa-1.15.1-import-pyfa.patch [new file with mode: 0644]
games-util/pyfa/files/pyfa-1.15.1-staticdata.patch [new file with mode: 0644]
games-util/pyfa/pyfa-9999.ebuild

diff --git a/games-util/pyfa/files/configforced-1.15.1.py b/games-util/pyfa/files/configforced-1.15.1.py
new file mode 100644 (file)
index 0000000..51fcb95
--- /dev/null
@@ -0,0 +1,4 @@
+# Gentoo-specific settings
+pyfaPath = u'%%SITEDIR%%/pyfa'
+gameDB = u'%%EPREFIX%%/usr/share/pyfa/eve.db'
+imgsZIP = u'%%EPREFIX%%/usr/share/pyfa/imgs.zip'
diff --git a/games-util/pyfa/files/pyfa-1.15.1-import-pyfa.patch b/games-util/pyfa/files/pyfa-1.15.1-import-pyfa.patch
new file mode 100644 (file)
index 0000000..f29b75d
--- /dev/null
@@ -0,0 +1,27 @@
+From 6c7b6ab7d1aae47d3a3f72a7951c7de294be2917 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 6 Oct 2015 22:16:38 -0400
+Subject: [PATCH] Append $(python_get_sitedir)/pyfa to import path
+
+Ensures that pyfa's import statements continue to work for systemwide
+installation.
+---
+ pyfa.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/pyfa.py b/pyfa.py
+index 8189918..7b81f10 100755
+--- a/pyfa.py
++++ b/pyfa.py
+@@ -20,6 +20,8 @@
+ import sys
+ import re
++import os
++sys.path.append(os.path.join("%%SITEDIR%%", "pyfa"))
+ import config
+-- 
+2.6.0
+
diff --git a/games-util/pyfa/files/pyfa-1.15.1-staticdata.patch b/games-util/pyfa/files/pyfa-1.15.1-staticdata.patch
new file mode 100644 (file)
index 0000000..8b8fa91
--- /dev/null
@@ -0,0 +1,61 @@
+From c7bb5210ce9feebb753734b5c581acca9f5c9d06 Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gentoo.org>
+Date: Tue, 6 Oct 2015 21:37:44 -0400
+Subject: [PATCH] make gameDB and imgs.zip paths settable from configforced
+
+---
+ config.py           | 10 +++++++++-
+ gui/bitmapLoader.py |  2 +-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/config.py b/config.py
+index 4072236..a9e71ee 100644
+--- a/config.py
++++ b/config.py
+@@ -28,6 +28,7 @@ pyfaPath = None
+ savePath = None
+ saveDB = None
+ gameDB = None
++imgsZIP = None
+ class StreamToLogger(object):
+@@ -66,6 +67,7 @@ def defPaths():
+     global savePath
+     global saveDB
+     global gameDB
++    global imgsZIP
+     global saveInRoot
+     if debug:
+@@ -117,7 +119,13 @@ def defPaths():
+     # The database where the static EVE data from the datadump is kept.
+     # This is not the standard sqlite datadump but a modified version created by eos
+     # maintenance script
+-    gameDB = os.path.join(pyfaPath, "eve.db")
++    gameDB = getattr(configforced, "gameDB", None)
++    if gameDB is None:
++        gameDB = os.path.join(pyfaPath, "eve.db")
++
++    imgsZIP = getattr(configforced, "imgsZIP", None)
++    if imgsZIP is None:
++        imgsZIP = os.path.join(pyfaPath, "imgs.zip")
+     ## DON'T MODIFY ANYTHING BELOW ##
+     import eos.config
+diff --git a/gui/bitmapLoader.py b/gui/bitmapLoader.py
+index 45026be..02985c1 100644
+--- a/gui/bitmapLoader.py
++++ b/gui/bitmapLoader.py
+@@ -31,7 +31,7 @@ except ImportError:
+ class BitmapLoader():
+     try:
+-        archive = zipfile.ZipFile(os.path.join(config.pyfaPath, 'imgs.zip'), 'r')
++        archive = zipfile.ZipFile(config.imgsZIP, 'r')
+     except IOError:
+         archive = None
+-- 
+2.6.0
+
index 76dac888c18940301d4fbe00b39935d24cfdc8c7..5e11d005abf56091300ecd623fb90a248bca75ed 100644 (file)
@@ -15,7 +15,7 @@ LICENSE="GPL-3+ LGPL-2.1+ CC-BY-2.5 free-noncomm"
 SLOT="0"
 if [[ ${PV} = 9999 ]]; then
        EGIT_REPO_URI="https://github.com/DarkFenX/Pyfa.git"
-       inherit git-2
+       inherit git-r3
        KEYWORDS=""
 else
        SRC_URI="https://github.com/DarkFenX/Pyfa/archive/v${PV}.tar.gz -> pyfa-${PV}.tar.gz"
@@ -25,34 +25,34 @@ IUSE="+graph"
 
 RDEPEND="dev-python/python-dateutil[${PYTHON_USEDEP}]
        dev-python/sqlalchemy[${PYTHON_USEDEP}]
-       dev-python/wxpython:2.8[${PYTHON_USEDEP}]
+       dev-python/wxpython:3.0[${PYTHON_USEDEP}]
        graph? (
                dev-python/matplotlib[wxwidgets,${PYTHON_USEDEP}]
                dev-python/numpy[${PYTHON_USEDEP}] )
        ${PYTHON_DEPS}"
-DEPEND="app-arch/unzip"
+DEPEND="app-arch/zip"
 
-S=${WORKDIR}/Pyfa-${PV}
+[[ ${PV} = 9999 ]] || S=${WORKDIR}/Pyfa-${PV}
 
 src_prepare() {
        # get rid of CRLF line endings introduced in 1.1.10 so patches work
        edos2unix config.py pyfa.py service/settings.py
 
-       # make staticPath settable from configforced again
-       epatch "${FILESDIR}/${PN}-1.1.20-staticPath.patch"
+       # load gameDB and images from separate staticdata directory
+       epatch "${FILESDIR}/${PN}-1.15.1-staticdata.patch"
 
        # do not try to save exported html to python sitedir
        epatch "${FILESDIR}/${PN}-1.1.8-html-export-path.patch"
 
        # fix import path in the main script for systemwide installation
-       epatch "${FILESDIR}/${PN}-1.1.11-import-pyfa.patch"
+       epatch "${FILESDIR}/${PN}-1.15.1-import-pyfa.patch"
        touch __init__.py
 
        pyfa_make_configforced() {
                mkdir -p "${BUILD_DIR}" || die
                sed -e "s:%%SITEDIR%%:$(python_get_sitedir):" \
                        -e "s:%%EPREFIX%%:${EPREFIX}:" \
-                       "${FILESDIR}/configforced.py" > "${BUILD_DIR}/configforced.py"
+                       "${FILESDIR}/configforced-1.15.1.py" > "${BUILD_DIR}/configforced.py"
                sed -e "s:%%SITEDIR%%:$(python_get_sitedir):" \
                        pyfa.py > "${BUILD_DIR}/pyfa"
        }
@@ -63,7 +63,7 @@ src_install() {
        pyfa_py_install() {
                local packagedir=$(python_get_sitedir)/${PN}
                insinto "${packagedir}"
-               doins -r eos gui icons service utils config*.py __init__.py gpl.txt
+               doins -r eos gui service utils config*.py __init__.py
                [[ -e info.py ]] && doins info.py # only in zip releases
                doins "${BUILD_DIR}/configforced.py"
                python_doscript "${BUILD_DIR}/pyfa"
@@ -72,12 +72,19 @@ src_install() {
        python_foreach_impl pyfa_py_install
 
        insinto /usr/share/${PN}
-       doins -r staticdata
+       doins eve.db
+
+       einfo "Compressing images ..."
+       pushd imgs > /dev/null || die
+       zip -r imgs.zip * || die "zip failed"
+       doins imgs.zip
+       popd > /dev/null || die
+
        dodoc README.md
        insinto /usr/share/icons/hicolor/32x32/apps
-       doins icons/pyfa.png
+       doins imgs/gui/pyfa.png
        insinto /usr/share/icons/hicolor/64x64/apps
-       newins icons/pyfa64.png pyfa.png
+       newins imgs/gui/pyfa64.png pyfa.png
        domenu "${FILESDIR}/${PN}.desktop"
 }