Flatpak fixes (ref. #111)

github/fork/yochananmarqos/patch-1
Ryan Gonzalez 2019-04-19 13:06:13 -05:00
parent cada4f6702
commit 32bb70a261
9 changed files with 107 additions and 138 deletions

5
.gitignore vendored
View File

@ -7,13 +7,12 @@ debian/uberwriter/opt
debian/uberwriter/usr
bin/
flatpak/*
!flatpak/fonts-download
!flatpak/pandoc-download
!flatpak/pip-download
!flatpak/uberwriter.json
!flatpak/de.wolfvollprecht.UberWriter.*
!flatpak/flatpak_texlive.json
!flatpak/texlive_install.sh
!flatpak/python3-enchant.json
!flatpak/python3-packages.json
*.py~
data/ui/shortcut_handlers
*.ui~

View File

@ -1,6 +1,9 @@
all:
python3 ./setup.py build
.PHONY: flatpak-user-install flatpak-generate-python-modules
install:
python3 ./setup.py install --prefix=/app --skip-build --optimize=1
flatpak-user-install:
cd flatpak; flatpak-builder --force-clean --install --user _build uberwriter.json
flatpak-generate-python-modules:
# gtkspellcheck's setup.py wants enchant to already be installed
flatpak-pip-generator --output flatpak/python3-enchant.json pyenchant
flatpak-pip-generator --output flatpak/python3-packages.json `grep -v enchant requirements.txt`

View File

@ -34,8 +34,7 @@ but you'll need to install and compile the schemas before:
It's also possible to build, run and debug a flatpak package. You'll need flatpak-builder for this:
- cd to the flatpak dir of the repo
- `flatpak-builder --install --force-clean some_folder_name uberwriter.json` (this installs and cleans the build folder)
- `make flatpak-user-install` (this installs the Flatpak)
- `flatpak run de.wolfvollprecht.UberWriter`
If you can't find Uberwriter after this, it's due to a Flatpak bug. Try to export it to a local repo before installing it:

View File

@ -1 +0,0 @@

1
configure vendored
View File

@ -1 +0,0 @@

View File

@ -1,27 +1,18 @@
{
"app-id": "de.wolfvollprecht.UberWriter",
"runtime": "org.gnome.Platform",
"runtime-version": "3.28",
"runtime-version": "3.30",
"sdk": "org.gnome.Sdk",
"command": "/app/usr/bin/uberwriter",
"command": "start-uberwriter",
"finish-args": [
"--socket=x11",
"--share=ipc",
"--filesystem=host",
"--env=IN_FLATPAK=1",
"--filesystem=xdg-run/dconf",
"--filesystem=~/.config/dconf:ro",
"--talk-name=ca.desrt.dconf",
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
"--env=XDG_DATA_DIRS=/app/usr/share",
"--env=PATH=/app/extensions/TexLive/bin:/app/extensions/TexLive/2018/bin/x86_64-linux:/app/usr/bin:/app/bin"
"--env=DCONF_USER_CONFIG_DIR=.config/dconf"
],
"build-options" : {
"env": {
"PYTHON": "python3",
"IN_FLATPAK": "1"
}
},
"add-extensions": {
"de.wolfvollprecht.UberWriter.Plugin": {
"directory": "extensions",
@ -32,75 +23,6 @@
}
},
"modules": [
{
"name": "uberwriter",
"sources": [
{
"type" : "git",
"url" : "../",
"branch" : "refactoring"
}
],
"build-commands": [
"install -Dm644 flatpak/de.wolfvollprecht.UberWriter.appdata.xml /app/share/appdata/de.wolfvollprecht.UberWriter.appdata.xml "
],
"post-install": [
"glib-compile-schemas /app/usr/share/glib-2.0/schemas",
"install -d /app/extensions"
]
},
{
"name": "pandoc",
"only-arches": [
"x86_64"
],
"buildsystem": "simple",
"build-commands": [
"cp bin/pandoc /app/usr/bin/pandoc",
"cp bin/pandoc-citeproc /app/usr/bin/pandoc-citeproc"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/jgm/pandoc/releases/download/2.2/pandoc-2.2-linux.tar.gz",
"sha256": "06ecd882e42ef9b7390b1c82e1e71b3ea48679181289b9b810a8797825bed8ed"
}
]
},
{
"name": "pipdeps",
"buildsystem": "simple",
"build-commands": [
"pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} pyenchant regex pypandoc"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/5d/c1/45947333669b31bc6b4933308dd07c2aa2fedcec0a95b14eedae993bd449/wheel-0.31.0.tar.gz",
"sha256": "1ae8153bed701cb062913b72429bcf854ba824f973735427681882a688cb55ce"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz",
"sha256": "f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/71/81/00184643e5a10a456b4118fc12c96780823adb8ed974eb2289f29703b29b/pypandoc-1.4.tar.gz",
"sha256": "e914e6d5f84a76764887e4d909b09d63308725f0cbb5293872c2c92f07c11a5b"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/a2/51/c39562cfed3272592c60cfd229e5464d715b78537e332eac2b695422dc49/regex-2018.02.21.tar.gz",
"sha256": "b44624a38d07d3c954c84ad302c29f7930f4bf01443beef5589e9157b14e2a29"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/9e/54/04d88a59efa33fefb88133ceb638cdf754319030c28aadc5a379d82140ed/pyenchant-2.0.0.tar.gz",
"sha256": "fc31cda72ace001da8fe5d42f11c26e514a91fa8c70468739216ddd8de64e2a0"
}
]
},
{
"name": "fonts",
"buildsystem": "simple",
@ -117,16 +39,70 @@
]
},
{
"name": "appdata",
"name": "pandoc",
"only-arches": [
"x86_64"
],
"buildsystem": "simple",
"build-commands": [
"mkdir -p /app/share/appdata",
"install -Dm644 de.wolfvollprecht.UberWriter.appdata.xml /app/share/appdata/de.wolfvollprecht.UberWriter.appdata.xml"
"install -Dm 755 bin/pandoc /app/bin/pandoc",
"install -Dm 755 bin/pandoc-citeproc /app/bin/pandoc-citeproc"
],
"sources": [
{
"type": "file",
"path": "de.wolfvollprecht.UberWriter.appdata.xml"
"type": "archive",
"url": "https://github.com/jgm/pandoc/releases/download/2.2/pandoc-2.2-linux.tar.gz",
"sha256": "06ecd882e42ef9b7390b1c82e1e71b3ea48679181289b9b810a8797825bed8ed"
}
]
},
{
"name": "enchant",
"config-opts": [
"--with-myspell-dir=/usr/share/myspell"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/AbiWord/enchant/releases/download/enchant-1-6-1/enchant-1.6.1.tar.gz",
"sha256": "bef0d9c0fef2e4e8746956b68e4d6c6641f6b85bd2908d91731efb68eba9e3f5"
}
]
},
"python3-enchant.json",
"python3-packages.json",
{
"name": "uberwriter",
"buildsystem": "simple",
"build-commands": [
"desktop-file-edit --set-key=Exec --set-value='uberwriter.in %U' data/de.wolfvollprecht.UberWriter.desktop",
"python3 -m pip install --prefix=/app --install-option=--optimize=1 ."
],
"sources": [
{
"type" : "dir",
"path" : "../"
}
],
"post-install": [
"install -d /app/extensions",
"glib-compile-schemas /app/share/glib-2.0/schemas"
]
},
{
"name": "scripts",
"buildsystem": "simple",
"build-commands": [
"install -Dm 755 start-uberwriter.sh /app/bin/start-uberwriter"
],
"sources": [
{
"type": "script",
"dest-filename": "start-uberwriter.sh",
"commands": [
"export PATH=/app/extensions/TexLive/bin:/app/extensions/TexLive/2018/bin/$(uname -a)-linux:$PATH",
"exec uberwriter.in \"$@\""
]
}
]
}

View File

@ -1,4 +1,4 @@
regex
enchant
python-gtkspellcheck
pandoc
pyenchant
pygtkspellcheck

View File

@ -22,24 +22,20 @@
from setuptools import setup
import os
def package_files(directory):
def data_files(basename):
data = os.path.join('.', 'data')
root = os.path.join(data, basename)
extra_files = []
for path, directories, filenames in os.walk(root):
paths = []
for (path, directories, filenames) in os.walk(directory):
for filename in filenames:
paths.append(os.path.join(path, filename))
return paths
extra_files.append(('share/uberwriter/data/{}'.format(os.path.relpath(path, data)), paths))
return extra_files
extra_files_ui = package_files('./data/ui')
extra_files_media = package_files('./data/media')
extra_files_scripts = package_files('./data/lua')
from pprint import pprint
pprint(extra_files_ui)
pprint(extra_files_media)
if os.path.isfile("/.flatpak-info"):
app_prefix = '/app/'
else:
app_prefix = '/usr/'
extra_files_ui = data_files('ui')
extra_files_media = data_files('media')
extra_files_scripts = data_files('lua')
setup(
name='uberwriter',
@ -75,12 +71,11 @@ setup(
'uberwriter.pylocales' : ['locales.db'],
},
data_files=[
(app_prefix + 'bin', ['bin/uberwriter']),
(app_prefix + 'share/glib-2.0/schemas', ['data/de.wolfvollprecht.UberWriter.gschema.xml']),
(app_prefix + 'share/icons/hicolor/scalable/apps', ['data/media/de.wolfvollprecht.UberWriter.svg']),
(app_prefix + 'share/applications', ['de.wolfvollprecht.UberWriter.desktop']),
(app_prefix + 'share/uberwriter/data/ui', extra_files_ui),
(app_prefix + 'share/uberwriter/data/media', extra_files_media),
(app_prefix + 'share/uberwriter/data/lua', extra_files_scripts)
('bin', ['uberwriter.in']),
('share/applications', ['data/de.wolfvollprecht.UberWriter.desktop']),
('share/metainfo', ['data/de.wolfvollprecht.UberWriter.appdata.xml']),
('share/icons/hicolor/scalable/apps', ['data/media/de.wolfvollprecht.UberWriter.svg']),
('share/glib-2.0/schemas', ['data/de.wolfvollprecht.UberWriter.gschema.xml']),
*(extra_files_ui + extra_files_media + extra_files_scripts)
]
)

View File

@ -53,7 +53,6 @@ def get_data_path():
"""
# Get pathname absolute or relative.
# TODO: Abstract this (the old env IN_FLATPAK)
if os.path.isfile("/.flatpak-info"):
return '/app/share/uberwriter/data/'