diff --git a/.gitignore b/.gitignore index d66e7ed..b018763 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ docs/build __pycache__ .venv .idea +.flatpak-builder +repo diff --git a/poetry.lock b/poetry.lock index 10d3f0c..a6d4245 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1001,6 +1001,17 @@ files = [ {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, ] +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + [[package]] name = "pillow" version = "10.4.0" @@ -1470,6 +1481,21 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requirements-parser" +version = "0.11.0" +description = "This is a small Python module for parsing Pip requirement files." +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "requirements_parser-0.11.0-py3-none-any.whl", hash = "sha256:50379eb50311834386c2568263ae5225d7b9d0867fb55cf4ecc93959de2c2684"}, + {file = "requirements_parser-0.11.0.tar.gz", hash = "sha256:35f36dc969d14830bf459803da84f314dc3d17c802592e9e970f63d0359e5920"}, +] + +[package.dependencies] +packaging = ">=23.2" +types-setuptools = ">=69.1.0" + [[package]] name = "scikit-learn" version = "1.5.2" @@ -1629,6 +1655,17 @@ files = [ {file = "types_PyYAML-6.0.12.20240917-py3-none-any.whl", hash = "sha256:392b267f1c0fe6022952462bf5d6523f31e37f6cea49b14cee7ad634b6301570"}, ] +[[package]] +name = "types-setuptools" +version = "75.1.0.20240917" +description = "Typing stubs for setuptools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-setuptools-75.1.0.20240917.tar.gz", hash = "sha256:12f12a165e7ed383f31def705e5c0fa1c26215dd466b0af34bd042f7d5331f55"}, + {file = "types_setuptools-75.1.0.20240917-py3-none-any.whl", hash = "sha256:06f78307e68d1bbde6938072c57b81cf8a99bc84bd6dc7e4c5014730b097dc0c"}, +] + [[package]] name = "typing-extensions" version = "4.12.2" @@ -1909,4 +1946,4 @@ server = ["alt-profanity-check"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "25bc708d3c090477d145389305d215b5fc728f87e85fd26839d47a575fdf7d83" +content-hash = "3d1dab7d9a63a3784f3c6078a63ea5fa37b3e2fcadd0643e0d7e511d58182d3e" diff --git a/pyproject.toml b/pyproject.toml index 74d77c0..e4714eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ classifiers = [ "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.9", "Topic :: Multimedia :: Sound/Audio :: Players", - "Topic :: Multimedia :: Sound/Audio :: Players :: Karaoke", + "Topic :: Multimedia :: Video :: Display", "Typing :: Typed" ] @@ -43,6 +43,7 @@ types-pyyaml = "^6.0.12.12" types-pillow = "^10.1.0.2" mypy = "^1.10.0" pylint = "^3.2.7" +requirements-parser = "^0.11.0" [tool.poetry.extras] diff --git a/resources/flatpak/flatpak-pip-generator b/resources/flatpak/flatpak-pip-generator new file mode 100755 index 0000000..e93a9ec --- /dev/null +++ b/resources/flatpak/flatpak-pip-generator @@ -0,0 +1,494 @@ +#!/usr/bin/env python3 + +__license__ = 'MIT' + +import argparse +import json +import hashlib +import os +import re +import shutil +import subprocess +import sys +import tempfile +import urllib.request + +from collections import OrderedDict +from typing import Dict + +try: + import requirements +except ImportError: + exit('Requirements modules is not installed. Run "pip install requirements-parser"') + +parser = argparse.ArgumentParser() +parser.add_argument('packages', nargs='*') +parser.add_argument('--python2', action='store_true', + help='Look for a Python 2 package') +parser.add_argument('--cleanup', choices=['scripts', 'all'], + help='Select what to clean up after build') +parser.add_argument('--requirements-file', '-r', + help='Specify requirements.txt file') +parser.add_argument('--build-only', action='store_const', + dest='cleanup', const='all', + help='Clean up all files after build') +parser.add_argument('--build-isolation', action='store_true', + default=False, + help=( + 'Do not disable build isolation. ' + 'Mostly useful on pip that does\'t ' + 'support the feature.' + )) +parser.add_argument('--ignore-installed', + type=lambda s: s.split(','), + default='', + help='Comma-separated list of package names for which pip ' + 'should ignore already installed packages. Useful when ' + 'the package is installed in the SDK but not in the ' + 'runtime.') +parser.add_argument('--checker-data', action='store_true', + help='Include x-checker-data in output for the "Flatpak External Data Checker"') +parser.add_argument('--output', '-o', + help='Specify output file name') +parser.add_argument('--runtime', + help='Specify a flatpak to run pip inside of a sandbox, ensures python version compatibility') +parser.add_argument('--yaml', action='store_true', + help='Use YAML as output format instead of JSON') +parser.add_argument('--ignore-errors', action='store_true', + help='Ignore errors when downloading packages') +parser.add_argument('--ignore-pkg', nargs='*', + help='Ignore a package when generating the manifest. Can only be used with a requirements file') +opts = parser.parse_args() + +if opts.yaml: + try: + import yaml + except ImportError: + exit('PyYAML modules is not installed. Run "pip install PyYAML"') + + +def get_pypi_url(name: str, filename: str) -> str: + url = 'https://pypi.org/pypi/{}/json'.format(name) + print('Extracting download url for', name) + with urllib.request.urlopen(url) as response: + body = json.loads(response.read().decode('utf-8')) + for release in body['releases'].values(): + for source in release: + if source['filename'] == filename: + return source['url'] + raise Exception('Failed to extract url from {}'.format(url)) + + +def get_tar_package_url_pypi(name: str, version: str) -> str: + url = 'https://pypi.org/pypi/{}/{}/json'.format(name, version) + with urllib.request.urlopen(url) as response: + body = json.loads(response.read().decode('utf-8')) + for ext in ['bz2', 'gz', 'xz', 'zip']: + for source in body['urls']: + if source['url'].endswith(ext): + return source['url'] + err = 'Failed to get {}-{} source from {}'.format(name, version, url) + raise Exception(err) + + +def get_package_name(filename: str) -> str: + if filename.endswith(('bz2', 'gz', 'xz', 'zip')): + segments = filename.split('-') + if len(segments) == 2: + return segments[0] + return '-'.join(segments[:len(segments) - 1]) + elif filename.endswith('whl'): + segments = filename.split('-') + if len(segments) == 5: + return segments[0] + candidate = segments[:len(segments) - 4] + # Some packages list the version number twice + # e.g. PyQt5-5.15.0-5.15.0-cp35.cp36.cp37.cp38-abi3-manylinux2014_x86_64.whl + if candidate[-1] == segments[len(segments) - 4]: + return '-'.join(candidate[:-1]) + return '-'.join(candidate) + else: + raise Exception( + 'Downloaded filename: {} does not end with bz2, gz, xz, zip, or whl'.format(filename) + ) + + +def get_file_version(filename: str) -> str: + name = get_package_name(filename) + segments = filename.split(name + '-') + version = segments[1].split('-')[0] + for ext in ['tar.gz', 'whl', 'tar.xz', 'tar.gz', 'tar.bz2', 'zip']: + version = version.replace('.' + ext, '') + return version + + +def get_file_hash(filename: str) -> str: + sha = hashlib.sha256() + print('Generating hash for', filename.split('/')[-1]) + with open(filename, 'rb') as f: + while True: + data = f.read(1024 * 1024 * 32) + if not data: + break + sha.update(data) + return sha.hexdigest() + + +def download_tar_pypi(url: str, tempdir: str) -> None: + with urllib.request.urlopen(url) as response: + file_path = os.path.join(tempdir, url.split('/')[-1]) + with open(file_path, 'x+b') as tar_file: + shutil.copyfileobj(response, tar_file) + + +def parse_continuation_lines(fin): + for line in fin: + line = line.rstrip('\n') + while line.endswith('\\'): + try: + line = line[:-1] + next(fin).rstrip('\n') + except StopIteration: + exit('Requirements have a wrong number of line continuation characters "\\"') + yield line + + +def fprint(string: str) -> None: + separator = '=' * 72 # Same as `flatpak-builder` + print(separator) + print(string) + print(separator) + + +packages = [] +if opts.requirements_file: + requirements_file_input = os.path.expanduser(opts.requirements_file) + try: + with open(requirements_file_input, 'r') as req_file: + reqs = parse_continuation_lines(req_file) + reqs_as_str = '\n'.join([r.split('--hash')[0] for r in reqs]) + reqs_list_raw = reqs_as_str.splitlines() + py_version_regex = re.compile(r';.*python_version .+$') # Remove when pip-generator can handle python_version + reqs_list = [py_version_regex.sub('', p) for p in reqs_list_raw] + if opts.ignore_pkg: + reqs_new = '\n'.join(i for i in reqs_list if i not in opts.ignore_pkg) + else: + reqs_new = reqs_as_str + packages = list(requirements.parse(reqs_new)) + with tempfile.NamedTemporaryFile('w', delete=False, prefix='requirements.') as req_file: + req_file.write(reqs_new) + requirements_file_output = req_file.name + except FileNotFoundError as err: + print(err) + sys.exit(1) + +elif opts.packages: + packages = list(requirements.parse('\n'.join(opts.packages))) + with tempfile.NamedTemporaryFile('w', delete=False, prefix='requirements.') as req_file: + req_file.write('\n'.join(opts.packages)) + requirements_file_output = req_file.name +else: + if not len(sys.argv) > 1: + exit('Please specifiy either packages or requirements file argument') + else: + exit('This option can only be used with requirements file') + +for i in packages: + if i["name"].lower().startswith("pyqt"): + print("PyQt packages are not supported by flapak-pip-generator") + print("However, there is a BaseApp for PyQt available, that you should use") + print("Visit https://github.com/flathub/com.riverbankcomputing.PyQt.BaseApp for more information") + sys.exit(0) + +with open(requirements_file_output, 'r') as req_file: + use_hash = '--hash=' in req_file.read() + +python_version = '2' if opts.python2 else '3' +if opts.python2: + pip_executable = 'pip2' +else: + pip_executable = 'pip3' + +if opts.runtime: + flatpak_cmd = [ + 'flatpak', + '--devel', + '--share=network', + '--filesystem=/tmp', + '--command={}'.format(pip_executable), + 'run', + opts.runtime + ] + if opts.requirements_file: + if os.path.exists(requirements_file_output): + prefix = os.path.realpath(requirements_file_output) + flag = '--filesystem={}'.format(prefix) + flatpak_cmd.insert(1,flag) +else: + flatpak_cmd = [pip_executable] + +output_path = '' + +if opts.output: + output_path = os.path.dirname(opts.output) + output_package = os.path.basename(opts.output) +elif opts.requirements_file: + output_package = 'python{}-{}'.format( + python_version, + os.path.basename(opts.requirements_file).replace('.txt', ''), + ) +elif len(packages) == 1: + output_package = 'python{}-{}'.format( + python_version, packages[0].name, + ) +else: + output_package = 'python{}-modules'.format(python_version) +if opts.yaml: + output_filename = os.path.join(output_path, output_package) + '.yaml' +else: + output_filename = os.path.join(output_path, output_package) + '.json' + +modules = [] +vcs_modules = [] +sources = {} + +tempdir_prefix = 'pip-generator-{}'.format(output_package) +with tempfile.TemporaryDirectory(prefix=tempdir_prefix) as tempdir: + pip_download = flatpak_cmd + [ + 'download', + '--exists-action=i', + '--dest', + tempdir, + '-r', + requirements_file_output + ] + if use_hash: + pip_download.append('--require-hashes') + + fprint('Downloading sources') + cmd = ' '.join(pip_download) + print('Running: "{}"'.format(cmd)) + try: + subprocess.run(pip_download, check=True) + os.remove(requirements_file_output) + except subprocess.CalledProcessError: + os.remove(requirements_file_output) + print('Failed to download') + print('Please fix the module manually in the generated file') + if not opts.ignore_errors: + print('Ignore the error by passing --ignore-errors') + raise + + try: + os.remove(requirements_file_output) + except FileNotFoundError: + pass + + fprint('Downloading arch independent packages') + for filename in os.listdir(tempdir): + if not filename.endswith(('bz2', 'any.whl', 'gz', 'xz', 'zip')): + version = get_file_version(filename) + name = get_package_name(filename) + url = get_tar_package_url_pypi(name, version) + print('Deleting', filename) + try: + os.remove(os.path.join(tempdir, filename)) + except FileNotFoundError: + pass + print('Downloading {}'.format(url)) + download_tar_pypi(url, tempdir) + + files = {get_package_name(f): [] for f in os.listdir(tempdir)} + + for filename in os.listdir(tempdir): + name = get_package_name(filename) + files[name].append(filename) + + # Delete redundant sources, for vcs sources + for name in files: + if len(files[name]) > 1: + zip_source = False + for f in files[name]: + if f.endswith('.zip'): + zip_source = True + if zip_source: + for f in files[name]: + if not f.endswith('.zip'): + try: + os.remove(os.path.join(tempdir, f)) + except FileNotFoundError: + pass + + vcs_packages = { + x.name: {'vcs': x.vcs, 'revision': x.revision, 'uri': x.uri} + for x in packages + if x.vcs + } + + fprint('Obtaining hashes and urls') + for filename in os.listdir(tempdir): + name = get_package_name(filename) + sha256 = get_file_hash(os.path.join(tempdir, filename)) + + if name in vcs_packages: + uri = vcs_packages[name]['uri'] + revision = vcs_packages[name]['revision'] + vcs = vcs_packages[name]['vcs'] + url = 'https://' + uri.split('://', 1)[1] + s = 'commit' + if vcs == 'svn': + s = 'revision' + source = OrderedDict([ + ('type', vcs), + ('url', url), + (s, revision), + ]) + is_vcs = True + else: + url = get_pypi_url(name, filename) + source = OrderedDict([ + ('type', 'file'), + ('url', url), + ('sha256', sha256)]) + if opts.checker_data: + source['x-checker-data'] = { + 'type': 'pypi', + 'name': name} + if url.endswith(".whl"): + source['x-checker-data']['packagetype'] = 'bdist_wheel' + is_vcs = False + sources[name] = {'source': source, 'vcs': is_vcs} + +# Python3 packages that come as part of org.freedesktop.Sdk. +system_packages = ['cython', 'easy_install', 'mako', 'markdown', 'meson', 'pip', 'pygments', 'setuptools', 'six', 'wheel'] + +fprint('Generating dependencies') +for package in packages: + + if package.name is None: + print('Warning: skipping invalid requirement specification {} because it is missing a name'.format(package.line), file=sys.stderr) + print('Append #egg= to the end of the requirement line to fix', file=sys.stderr) + continue + elif package.name.casefold() in system_packages: + print(f"{package.name} is in system_packages. Skipping.") + continue + + if len(package.extras) > 0: + extras = '[' + ','.join(extra for extra in package.extras) + ']' + else: + extras = '' + + version_list = [x[0] + x[1] for x in package.specs] + version = ','.join(version_list) + + if package.vcs: + revision = '' + if package.revision: + revision = '@' + package.revision + pkg = package.uri + revision + '#egg=' + package.name + else: + pkg = package.name + extras + version + + dependencies = [] + # Downloads the package again to list dependencies + + tempdir_prefix = 'pip-generator-{}'.format(package.name) + with tempfile.TemporaryDirectory(prefix='{}-{}'.format(tempdir_prefix, package.name)) as tempdir: + pip_download = flatpak_cmd + [ + 'download', + '--exists-action=i', + '--dest', + tempdir, + ] + try: + print('Generating dependencies for {}'.format(package.name)) + subprocess.run(pip_download + [pkg], check=True, stdout=subprocess.DEVNULL) + for filename in sorted(os.listdir(tempdir)): + dep_name = get_package_name(filename) + if dep_name.casefold() in system_packages: + continue + dependencies.append(dep_name) + + except subprocess.CalledProcessError: + print('Failed to download {}'.format(package.name)) + + is_vcs = True if package.vcs else False + package_sources = [] + for dependency in dependencies: + if dependency in sources: + source = sources[dependency] + elif dependency.replace('_', '-') in sources: + source = sources[dependency.replace('_', '-')] + else: + continue + + if not (not source['vcs'] or is_vcs): + continue + + package_sources.append(source['source']) + + if package.vcs: + name_for_pip = '.' + else: + name_for_pip = pkg + + module_name = 'python{}-{}'.format(python_version, package.name) + + pip_command = [ + pip_executable, + 'install', + '--verbose', + '--exists-action=i', + '--no-index', + '--find-links="file://${PWD}"', + '--prefix=${FLATPAK_DEST}', + '"{}"'.format(name_for_pip) + ] + if package.name in opts.ignore_installed: + pip_command.append('--ignore-installed') + if not opts.build_isolation: + pip_command.append('--no-build-isolation') + + module = OrderedDict([ + ('name', module_name), + ('buildsystem', 'simple'), + ('build-commands', [' '.join(pip_command)]), + ('sources', package_sources), + ]) + if opts.cleanup == 'all': + module['cleanup'] = ['*'] + elif opts.cleanup == 'scripts': + module['cleanup'] = ['/bin', '/share/man/man1'] + + if package.vcs: + vcs_modules.append(module) + else: + modules.append(module) + +modules = vcs_modules + modules +if len(modules) == 1: + pypi_module = modules[0] +else: + pypi_module = { + 'name': output_package, + 'buildsystem': 'simple', + 'build-commands': [], + 'modules': modules, + } + +print() +with open(output_filename, 'w') as output: + if opts.yaml: + class OrderedDumper(yaml.Dumper): + def increase_indent(self, flow=False, indentless=False): + return super(OrderedDumper, self).increase_indent(flow, False) + + def dict_representer(dumper, data): + return dumper.represent_dict(data.items()) + + OrderedDumper.add_representer(OrderedDict, dict_representer) + + output.write("# Generated with flatpak-pip-generator " + " ".join(sys.argv[1:]) + "\n") + yaml.dump(pypi_module, output, Dumper=OrderedDumper) + else: + output.write(json.dumps(pypi_module, indent=4)) + print('Output saved to {}'.format(output_filename)) diff --git a/resources/flatpak/mpv.yaml b/resources/flatpak/mpv.yaml new file mode 100644 index 0000000..f4708fe --- /dev/null +++ b/resources/flatpak/mpv.yaml @@ -0,0 +1,651 @@ +name: mpv-files +build-commands: [] +buildsystem: simple +modules: + # MPV and MPV deps + # This is basically copied from the mpv flatpak + - name: lmdb + sources: + - sha256: f3927859882eb608868c8c31586bb7eb84562a40a6bf5cc3e13b6b564641ea28 + type: archive + url: https://github.com/LMDB/lmdb/archive/LMDB_0.9.22.tar.gz + make-install-args: + - prefix=/app + no-autogen: true + subdir: libraries/liblmdb + + - name: parse-yapp + buildsystem: simple + build-commands: + - perl Makefile.PL INSTALL_BASE=/app + - make + - make install + sources: + - type: archive + url: https://cpan.metacpan.org/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz + sha256: 3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5 + + - name: smbclient + config-opts: + - --without-json + - --without-ad-dc + - --without-ldap + - --without-ads + - --without-pam + - --disable-python + - --disable-cups + - --disable-iprint + - --without-systemd + - --bindir=. + - --sbindir=. + - --sysconfdir=. + cleanup: + - /lib/perl5 + build-options: + env: + PERL5LIB: /app/lib/perl5 + buildsystem: autotools + sources: + - type: archive + archive-type: tar + url: https://download.samba.org/pub/samba/stable/samba-4.20.2.tar.gz + sha256: f969ffed58ccf3e85cbbcc0e33a1726d025c2b40f42a653b1125b82b92d2e0e5 + x-checker-data: + type: html + url: https://download.samba.org/pub/samba/stable/?C=M;O=D + version-pattern: samba-(\d+\.\d+\.\d+).tar.gz + url-template: https://download.samba.org/pub/samba/stable/samba-$version.tar.gz + + - name: libXmu + buildsystem: autotools + sources: + - type: git + url: https://gitlab.freedesktop.org/xorg/lib/libxmu.git + tag: libXmu-1.2.1 + commit: 792f80402ee06ce69bca3a8f2a84295999c3a170 + x-checker-data: + type: git + tag-pattern: ^libXmu-([\d.]+)$ + + - name: xclip + buildsystem: autotools + sources: + - type: git + url: https://github.com/astrand/xclip.git + tag: '0.13' + commit: 9aa7090c3b8b437c6489edca32ae43d82e0c1281 + x-checker-data: + type: git + tag-pattern: ^(\d+\.\d+)$ + + - name: libXpresent + buildsystem: autotools + sources: + - type: git + url: https://gitlab.freedesktop.org/xorg/lib/libxpresent.git + tag: libXpresent-1.0.1 + commit: 37507b5f44332accfb1064ee69a4f6a833994747 + x-checker-data: + type: git + tag-pattern: ^libXpresent-([\d.]+)$ + + - name: luajit + no-autogen: true + cleanup: + - /bin + - /include + - /lib/pkgconfig + - /share/man + sources: + - type: git + url: https://github.com/LuaJIT/LuaJIT.git + mirror-urls: + - https://luajit.org/git/luajit.git + disable-shallow-clone: true + commit: 04dca7911ea255f37be799c18d74c305b921c1a6 + x-checker-data: + type: json + url: https://api.github.com/repos/LuaJIT/LuaJIT/commits + commit-query: first( .[].sha ) + version-query: first( .[].sha ) + timestamp-query: first( .[].commit.committer.date ) + - type: shell + commands: + - sed -i 's|/usr/local|/app|' ./Makefile + + - name: yt-dlp + no-autogen: true + no-make-install: true + make-args: + - yt-dlp + - PYTHON=/usr/bin/python3 + post-install: + - install yt-dlp /app/bin + sources: + - type: archive + url: https://github.com/yt-dlp/yt-dlp/releases/download/2024.07.07/yt-dlp.tar.gz + sha256: c44daee08ec77efd64f31361511fcef5136b35458b3fac474434cdd25df65d98 + x-checker-data: + type: json + url: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest + version-query: .tag_name + url-query: .assets[] | select(.name=="yt-dlp.tar.gz") | .browser_download_url + + - name: uchardet + buildsystem: cmake-ninja + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DBUILD_STATIC=0 + cleanup: + - /bin + - /include + - /lib/pkgconfig + - /share/man + sources: + - type: archive + url: https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.8.tar.xz + sha256: e97a60cfc00a1c147a674b097bb1422abd9fa78a2d9ce3f3fdcc2e78a34ac5f0 + x-checker-data: + type: html + url: https://www.freedesktop.org/software/uchardet/releases/ + version-pattern: uchardet-(\d\.\d+\.?\d*).tar.xz + url-template: https://www.freedesktop.org/software/uchardet/releases/uchardet-$version.tar.xz + + - name: libass + cleanup: + - /include + - /lib/pkgconfig + config-opts: + - --disable-static + sources: + - type: git + url: https://github.com/libass/libass.git + tag: 0.17.3 + commit: e46aedea0a0d17da4c4ef49d84b94a7994664ab5 + x-checker-data: + type: git + tag-pattern: ^(\d\.\d{1,3}\.\d{1,2})$ + + - name: libv4l2 + buildsystem: meson + cleanup: + - /include + - /lib/pkgconfig + - /share/man + config-opts: + - -Ddoxygen-html=false + - -Ddoxygen-doc=disabled + - -Dbpf=disabled + - -Dudevdir=/app/lib/udev + sources: + - type: git + url: https://git.linuxtv.org/v4l-utils.git + mirror-urls: + - https://github.com/gjasny/v4l-utils.git + tag: v4l-utils-1.26.1 + commit: 4aee01a027923cab1e40969f56f8ba58d3e6c0d1 + x-checker-data: + type: git + tag-pattern: ^v4l-utils-([\d.]+)$ + + - name: libcdio + config-opts: + - --disable-static + - --disable-example-progs + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + url: https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2 + mirror-urls: + - https://mirrors.kernel.org/gnu/libcdio/libcdio-2.1.0.tar.bz2 + - https://mirrors.ocf.berkeley.edu/gnu/libcdio/libcdio-2.1.0.tar.bz2 + - https://ftpmirror.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2 + sha256: 8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b + x-checker-data: + type: html + url: https://ftp.gnu.org/gnu/libcdio/ + version-pattern: libcdio-(\d\.\d+\.?\d*).tar.bz2 + url-template: https://ftp.gnu.org/gnu/libcdio/libcdio-$version.tar.bz2 + + - name: libcdio-paranoia + config-opts: + - --disable-static + - --disable-example-progs + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + url: https://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+2.0.1.tar.bz2 + mirror-urls: + - https://mirrors.kernel.org/gnu/libcdio/libcdio-paranoia-10.2+2.0.1.tar.bz2 + - https://mirrors.ocf.berkeley.edu/gnu/libcdio/libcdio-paranoia-10.2+2.0.1.tar.bz2 + - https://ftpmirror.gnu.org/gnu/libcdio/libcdio-paranoia-10.2+2.0.1.tar.bz2 + sha256: 33b1cf305ccfbfd03b43936975615000ce538b119989c4bec469577570b60e8a + x-checker-data: + type: html + url: https://ftp.gnu.org/gnu/libcdio/ + version-pattern: libcdio-paranoia-([\d\.\+-]+).tar.bz2 + url-template: https://ftp.gnu.org/gnu/libcdio/libcdio-paranoia-$version.tar.bz2 + + - name: libdvdread + config-opts: + - --disable-static + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + url: https://download.videolan.org/pub/videolan/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2 + mirror-urls: + - https://videolan.mirror.ba/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2 + - https://videolan.c3sl.ufpr.br/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2 + sha256: ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369 + x-checker-data: + type: html + url: https://www.videolan.org/developers/libdvdnav.html + version-pattern: The latest version of libdvdread is ([\d\-\.]+)< + url-template: https://download.videolan.org/pub/videolan/libdvdread/$version/libdvdread-$version.tar.bz2 + + - name: libdvdnav + config-opts: + - --disable-static + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + url: https://download.videolan.org/pub/videolan/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2 + mirror-urls: + - https://videolan.mirror.ba/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2 + - https://videolan.c3sl.ufpr.br/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2 + sha256: c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48 + x-checker-data: + type: html + url: https://www.videolan.org/developers/libdvdnav.html + version-pattern: The latest version of libdvdnav is ([\d\-\.]+)\. + url-template: https://download.videolan.org/pub/videolan/libdvdnav/$version/libdvdnav-$version.tar.bz2 + + - name: libaacs + config-opts: + - --disable-static + - --disable-bdjava-jar + cleanup: + - /include + - /lib/pkgconfig + sources: + - sha256: a88aa0ebe4c98a77f7aeffd92ab3ef64ac548c6b822e8248a8b926725bea0a39 + type: archive + url: https://download.videolan.org/pub/videolan/libaacs/0.11.1/libaacs-0.11.1.tar.bz2 + mirror-urls: + - https://videolan.mirror.ba/libaacs/0.11.1/libaacs-0.11.1.tar.bz2 + - https://videolan.c3sl.ufpr.br/libaacs/0.11.1/libaacs-0.11.1.tar.bz2 + x-checker-data: + type: html + url: https://www.videolan.org/developers/libaacs.html + version-pattern: Latest release is libaacs (\d\.\d+\.?\d*) + url-template: https://download.videolan.org/pub/videolan/libaacs/$version/libaacs-$version.tar.bz2 + + - name: libbluray + config-opts: + - --disable-static + - --disable-bdjava-jar + cleanup: + - /include + - /lib/pkgconfig + sources: + - sha256: 478ffd68a0f5dde8ef6ca989b7f035b5a0a22c599142e5cd3ff7b03bbebe5f2b + type: archive + url: https://download.videolan.org/pub/videolan/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 + mirror-urls: + - https://videolan.mirror.ba/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 + - https://videolan.c3sl.ufpr.br/libbluray/1.3.4/libbluray-1.3.4.tar.bz2 + x-checker-data: + type: html + url: https://www.videolan.org/developers/libbluray.html + version-pattern: Latest release is libbluray (\d\.\d+\.?\d*)\. + url-template: https://download.videolan.org/pub/videolan/libbluray/$version/libbluray-$version.tar.bz2 + + - name: zimg + config-opts: + - --disable-static + cleanup: + - /include + - /lib/pkgconfig + - /share/doc + sources: + - type: archive + archive-type: tar + url: https://api.github.com/repos/sekrit-twc/zimg/tarball/release-3.0.5 + sha256: 1b8998f03f4a49e4d730033143722b32bc28a5306ef809ccfb3b4bbb29e4b784 + x-checker-data: + type: json + url: https://api.github.com/repos/sekrit-twc/zimg/releases/latest + url-query: .tarball_url + version-query: .tag_name | sub("^release-"; "") + timestamp-query: .published_at + + - name: rubberband + buildsystem: meson + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: git + url: https://github.com/breakfastquay/rubberband.git + mirror-urls: + - https://hg.sr.ht/~breakfastquay/rubberband + tag: v3.3.0 + commit: 2be46b0dffb13273a67396c77bc9278736bb03d2 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + + - name: mujs + buildsystem: autotools + no-autogen: true + make-args: + - release + make-install-args: + - prefix=/app + - install-shared + cleanup: + - /bin + - /include + - /lib/pkgconfig + sources: + - type: git + url: https://github.com/ccxvii/mujs.git + mirror-urls: + - http://git.ghostscript.com/mujs.git + tag: 1.3.5 + commit: 0df0707f2f10187127e36acfbc3ba9b9ca5b5cf0 + x-checker-data: + type: git + url: https://api.github.com/repos/ccxvii/mujs/tags + tag-pattern: ^([\d.]+)$ + + - name: nv-codec-headers + cleanup: + - '*' + no-autogen: true + make-install-args: + - PREFIX=/app + sources: + - type: git + url: https://github.com/FFmpeg/nv-codec-headers.git + mirror-urls: + - https://git.videolan.org/git/ffmpeg/nv-codec-headers.git + tag: n12.2.72.0 + commit: c69278340ab1d5559c7d7bf0edf615dc33ddbba7 + x-checker-data: + type: git + tag-pattern: ^n([\d.]+)$ + + - name: x264 + cleanup: + - /include + - /lib/pkgconfig + - /share/man + config-opts: + - --disable-cli + - --enable-shared + sources: + - type: git + url: https://github.com/jpsdr/x264 + mirror-urls: + - https://code.videolan.org/videolan/x264.git + commit: 4613ac3c15fd75cebc4b9f65b7fb95e70a3acce1 + # Every commit to the master branch is considered a release + # https://code.videolan.org/videolan/x264/-/issues/35 + x-checker-data: + type: json + url: https://code.videolan.org/api/v4/projects/536/repository/commits + commit-query: first( .[].id ) + version-query: first( .[].id ) + timestamp-query: first( .[].committed_date ) + + - name: x265 + buildsystem: cmake + subdir: source + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DBUILD_STATIC=0 + cleanup: + - /include + - /lib/pkgconfig + - /share/man + sources: + - type: git + url: https://bitbucket.org/multicoreware/x265_git.git + tag: '3.6' + commit: aa7f602f7592eddb9d87749be7466da005b556ee + x-checker-data: + type: git + tag-pattern: ^([\d.]+)$ + + - name: libmysofa + buildsystem: cmake + config-opts: + - -DBUILD_TESTS=OFF + sources: + - type: git + commit: 33974839677da7044ef5a70be7ad5550735aae6e + tag: v1.3.2 + url: https://github.com/hoene/libmysofa.git + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + + - name: libbs2b + buildsystem: autotools + config-opts: + - --disable-static + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + archive-type: tar + url: https://downloads.sourceforge.net/sourceforge/bs2b/libbs2b-3.1.0.tar.gz + sha256: 6aaafd81aae3898ee40148dd1349aab348db9bfae9767d0e66e0b07ddd4b2528 + x-checker-data: + type: html + url: https://sourceforge.net/projects/bs2b/files/libbs2b/ + version-pattern: projects/bs2b/files/libbs2b/(\d+\.\d+\.\d+) + url-template: https://downloads.sourceforge.net/sourceforge/bs2b/libbs2b-$version.tar.gz + # https://src.fedoraproject.org/rpms/libbs2b/blob/rawhide/f/libbs2b.spec#_40 + - type: shell + commands: + - sed -i -e 's/lzma/xz/g' configure.ac + - autoreconf -vif + + - name: libjxl + buildsystem: cmake + config-opts: + - -DCMAKE_BUILD_TYPE=Release + - -DBUILD_TESTING=OFF + sources: + - type: git + url: https://github.com/libjxl/libjxl.git + tag: v0.10.3 + commit: 4a3b22d2600f92d8706fb72d85d52bfee2acbd54 + disable-shallow-clone: true + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + + - name: vulkan-headers + buildsystem: cmake-ninja + sources: + - type: archive + url: https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.3.286.tar.gz + sha256: a82a6982efe5e603e23505ca19b469e8f3d876fc677c46b7bfb6177f517bf8fe + + - name: ffmpeg + cleanup: + - /include + - /lib/pkgconfig + - /share/ffmpeg/examples + config-opts: + - --disable-debug + - --disable-doc + - --disable-static + - --enable-encoder=png + - --enable-gnutls + - --enable-gpl + - --enable-shared + - --enable-version3 + - --enable-libaom + - --enable-libass + - --enable-libbs2b + - --enable-libdav1d + - --enable-libfreetype + - --enable-libmp3lame + - --enable-libopus + - --enable-libjxl + - --enable-libmysofa + - --enable-libtheora + - --enable-libv4l2 + - --enable-libvorbis + - --enable-libvpx + - --enable-libx264 + - --enable-libx265 + - --enable-libwebp + - --enable-libsmbclient + - --enable-libxml2 + - --enable-vulkan + + sources: + - type: git + url: https://github.com/FFmpeg/FFmpeg.git + mirror-urls: + - https://git.ffmpeg.org/ffmpeg.git + commit: af25a4bfd2503caf3ee485b27b99b620302f5718 + tag: n7.0.1 + x-checker-data: + type: git + tag-pattern: ^n([\d.]{3,7})$ + + - name: libsixel + buildsystem: meson + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: archive + archive-type: tar + url: https://api.github.com/repos/libsixel/libsixel/tarball/refs/tags/v1.10.3 + sha256: 7be774befba882d53701e131b6657836118f6cdb15a7515f92345c7bb6e2bb5c + x-checker-data: + type: json + url: https://api.github.com/repos/libsixel/libsixel/tags + url-query: .[0].tarball_url + version-query: .[0].name + + - name: vapoursynth + config-opts: + - --disable-static + - --with-python_prefix=/app + sources: + - type: git + url: https://github.com/vapoursynth/vapoursynth.git + tag: R69 + commit: 2804ed7a4926863f4a12e879d95155c4b05ecdf3 + x-checker-data: + type: git + tag-pattern: ^R([\d.]+)$ + + - name: libplacebo + buildsystem: meson + config-opts: + - -Dvulkan=enabled + - -Dshaderc=enabled + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: git + url: https://github.com/haasn/libplacebo.git + mirror-urls: + - https://code.videolan.org/videolan/libplacebo.git + tag: v7.349.0 + commit: 1fd3c7bde7b943fe8985c893310b5269a09b46c5 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ + modules: + - name: shaderc + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DSHADERC_SKIP_COPYRIGHT_CHECK=ON + - -DSHADERC_SKIP_EXAMPLES=ON + - -DSHADERC_SKIP_TESTS=ON + - -DSPIRV_SKIP_EXECUTABLES=ON + - -DENABLE_GLSLANG_BINARIES=OFF + cleanup: + - /bin + - /include + - /lib/cmake + - /lib/pkgconfig + sources: + - type: git + url: https://github.com/google/shaderc.git + #tag: v2023.7 + commit: 40bced4e1e205ecf44630d2dfa357655b6dabd04 + #x-checker-data: + # type: git + # tag-pattern: ^v(\d{4}\.\d{1,2})$ + - type: git + url: https://github.com/KhronosGroup/SPIRV-Tools.git + tag: v2024.1 + commit: 04896c462d9f3f504c99a4698605b6524af813c1 + dest: third_party/spirv-tools + #x-checker-data: + # type: git + # tag-pattern: ^v(\d{4}\.\d{1})$ + - type: git + url: https://github.com/KhronosGroup/SPIRV-Headers.git + #tag: sdk-1.3.250.1 + commit: 4f7b471f1a66b6d06462cd4ba57628cc0cd087d7 + dest: third_party/spirv-headers + #x-checker-data: + # type: git + # tag-pattern: ^sdk-([\d.]+)$ + - type: git + url: https://github.com/KhronosGroup/glslang.git + tag: 14.3.0 + commit: fa9c3deb49e035a8abcabe366f26aac010f6cbfb + dest: third_party/glslang + x-checker-data: + type: git + tag-pattern: ^(\d{1,2}\.\d{1,2}\.\d{1,4})$ + + - name: mpv + buildsystem: meson + config-opts: + - -Dbuild-date=false + - -Dlibmpv=true + - -Dmanpage-build=disabled + - -Dcdda=enabled + - -Ddvbin=enabled + - -Ddvdnav=enabled + - -Dlibarchive=enabled + - -Dsdl2=enabled + #- -Dshaderc=enabled + - -Dvulkan=enabled + - -Dvulkan-interop=enabled + cleanup: + - /include + - /lib/pkgconfig + sources: + - type: git + url: https://github.com/mpv-player/mpv.git + tag: v0.38.0 + commit: 02254b92dd237f03aa0a151c2a68778c4ea848f9 + x-checker-data: + type: git + tag-pattern: ^v([\d.]+)$ diff --git a/resources/flatpak/python3-aiohttp.yaml b/resources/flatpak/python3-aiohttp.yaml new file mode 100644 index 0000000..723518b --- /dev/null +++ b/resources/flatpak/python3-aiohttp.yaml @@ -0,0 +1,31 @@ +# Generated with flatpak-pip-generator --yaml aiohttp==3.10.5 +name: python3-aiohttp +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "aiohttp==3.10.5" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/18/b6/58ea188899950d759a837f9a58b2aee1d1a380ea4d6211ce9b1823748851/aiohappyeyeballs-2.4.0-py3-none-any.whl + sha256: 7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd + - type: file + url: https://files.pythonhosted.org/packages/ca/28/ca549838018140b92a19001a8628578b0f2a3b38c16826212cc6f706e6d4/aiohttp-3.10.5.tar.gz + sha256: f071854b47d39591ce9a17981c46790acb30518e2f83dfca8db2dfa091178691 + - type: file + url: https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl + sha256: f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17 + - type: file + url: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + sha256: 81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2 + - type: file + url: https://files.pythonhosted.org/packages/cf/3d/2102257e7acad73efc4a0c306ad3953f68c504c16982bbdfee3ad75d8085/frozenlist-1.4.1.tar.gz + sha256: c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b + - type: file + url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl + sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + - type: file + url: https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz + sha256: 22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a + - type: file + url: https://files.pythonhosted.org/packages/e4/3d/4924f9ed49698bac5f112bc9b40aa007bbdcd702462c1df3d2e1383fb158/yarl-1.11.1.tar.gz + sha256: 1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53 diff --git a/resources/flatpak/python3-expandvars.json b/resources/flatpak/python3-expandvars.json new file mode 100644 index 0000000..6468c51 --- /dev/null +++ b/resources/flatpak/python3-expandvars.json @@ -0,0 +1,14 @@ +{ + "name": "python3-expandvars", + "buildsystem": "simple", + "build-commands": [ + "pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"expandvars\" --no-build-isolation" + ], + "sources": [ + { + "type": "file", + "url": "https://files.pythonhosted.org/packages/df/b3/072c28eace372ba7630ea187b7efd7f09cc8bcebf847a96b5e03e9cc0828/expandvars-0.12.0-py3-none-any.whl", + "sha256": "7432c1c2ae50c671a8146583177d60020dd210ada7d940e52af91f1f84f753b2" + } + ] +} \ No newline at end of file diff --git a/resources/flatpak/python3-multidict.yaml b/resources/flatpak/python3-multidict.yaml new file mode 100644 index 0000000..ba8e2f0 --- /dev/null +++ b/resources/flatpak/python3-multidict.yaml @@ -0,0 +1,10 @@ +# Generated with flatpak-pip-generator --yaml multidict==6.1.0 +name: python3-multidict +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "multidict==6.1.0" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz + sha256: 22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a diff --git a/resources/flatpak/python3-poetry-core.yaml b/resources/flatpak/python3-poetry-core.yaml new file mode 100644 index 0000000..a80d248 --- /dev/null +++ b/resources/flatpak/python3-poetry-core.yaml @@ -0,0 +1,10 @@ +# Generated with flatpak-pip-generator --yaml poetry-core==1.9.0 +name: python3-poetry-core +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "poetry-core==1.9.0" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/a1/8d/85fcf9bcbfefcc53a1402450f28e5acf39dcfde3aabb996a1d98481ac829/poetry_core-1.9.0-py3-none-any.whl + sha256: 4e0c9c6ad8cf89956f03b308736d84ea6ddb44089d16f2adc94050108ec1f5a1 diff --git a/resources/flatpak/python3-poetry.yaml b/resources/flatpak/python3-poetry.yaml new file mode 100644 index 0000000..5109084 --- /dev/null +++ b/resources/flatpak/python3-poetry.yaml @@ -0,0 +1,121 @@ +# Generated with flatpak-pip-generator --yaml poetry==1.7.1 +name: python3-poetry +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "poetry==1.7.1" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/54/24/b4293291fa1dd830f353d2cb163295742fa87f179fcc8a20a306a81978b7/SecretStorage-3.3.3-py3-none-any.whl + sha256: f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 + - type: file + url: https://files.pythonhosted.org/packages/91/fd/e4bda6228637ecae5732162b5ac2a5a822e2ba8e546eb4997cde51b231a3/build-1.2.2-py3-none-any.whl + sha256: 277ccc71619d98afdd841a0e96ac9fe1593b823af481d3b0cea748e8894e0613 + - type: file + url: https://files.pythonhosted.org/packages/1d/e3/a22348e6226dcd585d5a4b5f0175b3a16dabfd3912cbeb02f321d00e56c7/cachecontrol-0.13.1-py3-none-any.whl + sha256: 95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4 + - type: file + url: https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl + sha256: 922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 + - type: file + url: https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz + sha256: 1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 + - type: file + url: https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz + sha256: f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 + - type: file + url: https://files.pythonhosted.org/packages/2d/f5/6bbead8b880620e5a99e0e4bb9e22e67cca16ff48d54105302a3e7821096/cleo-2.1.0-py3-none-any.whl + sha256: 4a31bd4dd45695a64ee3c4758f583f134267c2bc518d8ae9a29cf237d009b07e + - type: file + url: https://files.pythonhosted.org/packages/b0/5c/3ba7d12e7a79566f97b8f954400926d7b6eb33bcdccc1315a857f200f1f1/crashtest-0.4.1-py3-none-any.whl + sha256: 8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5 + - type: file + url: https://files.pythonhosted.org/packages/de/ba/0664727028b37e249e73879348cc46d45c5c1a2a2e81e8166462953c5755/cryptography-43.0.1.tar.gz + sha256: 203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d + - type: file + url: https://files.pythonhosted.org/packages/8e/41/9307e4f5f9976bc8b7fea0b66367734e8faf3ec84bc0d412d8cfabbb66cd/distlib-0.3.8-py2.py3-none-any.whl + sha256: 034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784 + - type: file + url: https://files.pythonhosted.org/packages/2b/e2/788910715b4910d08725d480278f625e315c3c011eb74b093213363042e0/dulwich-0.21.7.tar.gz + sha256: a9e9c66833cea580c3ac12927e4b9711985d76afca98da971405d414de60e968 + - type: file + url: https://files.pythonhosted.org/packages/6d/ca/086311cdfc017ec964b2436fe0c98c1f4efcb7e4c328956a22456e497655/fastjsonschema-2.20.0-py3-none-any.whl + sha256: 5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a + - type: file + url: https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl + sha256: 2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0 + - type: file + url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl + sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + - type: file + url: https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl + sha256: 05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53 + - type: file + url: https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl + sha256: f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790 + - type: file + url: https://files.pythonhosted.org/packages/ae/72/2a1e2290f1ab1e06f71f3d0f1646c9e4634e70e1d37491535e19266e8dc9/jeepney-0.8.0-py3-none-any.whl + sha256: c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755 + - type: file + url: https://files.pythonhosted.org/packages/7c/23/d557507915181687e4a613e1c8a01583fd6d7cb7590e1f039e357fe3b304/keyring-24.3.1-py3-none-any.whl + sha256: df38a4d7419a6a60fea5cef1e45a948a3e8430dd12ad88b0f423c5c143906218 + - type: file + url: https://files.pythonhosted.org/packages/48/7e/3a64597054a70f7c86eb0a7d4fc315b8c1ab932f64883a297bdffeb5f967/more_itertools-10.5.0-py3-none-any.whl + sha256: 037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef + - type: file + url: https://files.pythonhosted.org/packages/cb/d0/7555686ae7ff5731205df1012ede15dd9d927f6227ea151e901c7406af4f/msgpack-1.1.0.tar.gz + sha256: dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e + - type: file + url: https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl + sha256: 5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124 + - type: file + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + - type: file + url: https://files.pythonhosted.org/packages/c0/38/d617739840a2f576e400f03fea0a75703f93cc274002635b4b998bbb9de4/pkginfo-1.11.1-py3-none-any.whl + sha256: bfa76a714fdfc18a045fcd684dbfc3816b603d9d075febef17cb6582bea29573 + - type: file + url: https://files.pythonhosted.org/packages/56/29/3ec311dc18804409ecf0d2b09caa976f3ae6215559306b5b530004e11156/platformdirs-3.11.0-py3-none-any.whl + sha256: e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e + - type: file + url: https://files.pythonhosted.org/packages/79/94/95c62fb8463d3f7dd86f1fc27369f63b4e028cbdbc7f62716183d4f51d16/poetry-1.7.1-py3-none-any.whl + sha256: 03d3807a0fb3bc1028cc3707dfd646aae629d58e476f7e7f062437680741c561 + - type: file + url: https://files.pythonhosted.org/packages/99/bc/058b8ff87871fce6615ad032d62c773272f243266b110f7b86d146cf78d8/poetry_core-1.8.1-py3-none-any.whl + sha256: 194832b24f3283e01c5402eae71a6aae850ecdfe53f50a979c76bf7aa5010ffa + - type: file + url: https://files.pythonhosted.org/packages/17/bb/78d7d920bb463e4bee64f44d8b0d4a286a80af7e76ff8326e5169103f44b/poetry_plugin_export-1.6.0-py3-none-any.whl + sha256: 2dce6204c9318f1f6509a11a03921fb3f461b201840b59f1c237b6ab454dabcf + - type: file + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + - type: file + url: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl + sha256: c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc + - type: file + url: https://files.pythonhosted.org/packages/ae/f3/431b9d5fe7d14af7a32340792ef43b8a714e7726f1d7b69cc4e8e7a3f1d7/pyproject_hooks-1.1.0-py3-none-any.whl + sha256: 7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2 + - type: file + url: https://files.pythonhosted.org/packages/17/ac/1f1bf726645d7740df2d1371380e35098bb8a460f482343cba1dd1668ab6/rapidfuzz-3.9.7.tar.gz + sha256: f1c7296534c1afb6f495aa95871f14ccdc197c6db42965854e483100df313030 + - type: file + url: https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl + sha256: 70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 + - type: file + url: https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl + sha256: cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06 + - type: file + url: https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl + sha256: 7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 + - type: file + url: https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl + sha256: 7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde + - type: file + url: https://files.pythonhosted.org/packages/b6/7a/e0edec9c8905e851d52076bbc41890603e2ba97cf64966bc1498f2244fd2/trove_classifiers-2024.9.12-py3-none-any.whl + sha256: f88a27a892891c87c5f8bbdf110710ae9e0a4725ea8e0fb45f1bcadf088a491f + - type: file + url: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + sha256: ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac + - type: file + url: https://files.pythonhosted.org/packages/c6/1d/e1a44fdd6d30829ba21fc58b5d98a67e7aae8f4165f11d091e53aec12560/virtualenv-20.26.5-py3-none-any.whl + sha256: 4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6 diff --git a/resources/flatpak/python3-pyyaml.yaml b/resources/flatpak/python3-pyyaml.yaml new file mode 100644 index 0000000..821685b --- /dev/null +++ b/resources/flatpak/python3-pyyaml.yaml @@ -0,0 +1,10 @@ +# Generated with flatpak-pip-generator --yaml pyyaml==6.0.2 +name: python3-pyyaml +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pyyaml==6.0.2" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz + sha256: d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e diff --git a/resources/flatpak/python3-requirements-client.yaml b/resources/flatpak/python3-requirements-client.yaml new file mode 100644 index 0000000..d72814d --- /dev/null +++ b/resources/flatpak/python3-requirements-client.yaml @@ -0,0 +1,405 @@ +# Generated with flatpak-pip-generator --yaml --requirements-file ../../requirements-client.txt +build-commands: [] +buildsystem: simple +modules: + - name: python3-aiohappyeyeballs + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "aiohappyeyeballs==2.4.0" --no-build-isolation + sources: + - &id001 + type: file + url: https://files.pythonhosted.org/packages/18/b6/58ea188899950d759a837f9a58b2aee1d1a380ea4d6211ce9b1823748851/aiohappyeyeballs-2.4.0-py3-none-any.whl + sha256: 7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd + - name: python3-aiosignal + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "aiosignal==1.3.1" --no-build-isolation + sources: + - &id002 + type: file + url: https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl + sha256: f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17 + - &id003 + type: file + url: https://files.pythonhosted.org/packages/cf/3d/2102257e7acad73efc4a0c306ad3953f68c504c16982bbdfee3ad75d8085/frozenlist-1.4.1.tar.gz + sha256: c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b + - name: python3-argon2-cffi-bindings + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "argon2-cffi-bindings==21.2.0" --no-build-isolation + sources: + - &id004 + type: file + url: https://files.pythonhosted.org/packages/b9/e9/184b8ccce6683b0aa2fbb7ba5683ea4b9c5763f1356347f1312c32e3c66e/argon2-cffi-bindings-21.2.0.tar.gz + sha256: bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3 + - &id005 + type: file + url: https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz + sha256: 1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 + - &id006 + type: file + url: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl + sha256: c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc + - name: python3-argon2-cffi + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "argon2-cffi==23.1.0" --no-build-isolation + sources: + - &id009 + type: file + url: https://files.pythonhosted.org/packages/a4/6a/e8a041599e78b6b3752da48000b14c8d1e8a04ded09c88c714ba047f34f5/argon2_cffi-23.1.0-py3-none-any.whl + sha256: c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea + - *id004 + - *id005 + - *id006 + - name: python3-attrs + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "attrs==24.2.0" --no-build-isolation + sources: + - &id007 + type: file + url: https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl + sha256: 81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2 + - name: python3-bidict + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "bidict==0.23.1" --no-build-isolation + sources: + - &id014 + type: file + url: https://files.pythonhosted.org/packages/99/37/e8730c3587a65eb5645d4aba2d27aae48e8003614d6aaf15dda67f702f1f/bidict-0.23.1-py3-none-any.whl + sha256: 5dae8d4d79b552a71cbabc7deb25dfe8ce710b17ff41711e13010ead2abfc3e5 + - name: python3-brotli + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "brotli==1.1.0" --no-build-isolation + sources: + - &id023 + type: file + url: https://files.pythonhosted.org/packages/2f/c2/f9e977608bdf958650638c3f1e28f85a1b075f075ebbe77db8555463787b/Brotli-1.1.0.tar.gz + sha256: 81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724 + # - name: python3-brotlicffi + # buildsystem: simple + # build-commands: + # - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + # --prefix=${FLATPAK_DEST} "brotlicffi==1.1.0.0" --no-build-isolation + # sources: + # - *id005 + # - *id006 + - name: python3-certifi + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "certifi==2024.8.30" --no-build-isolation + sources: + - &id010 + type: file + url: https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl + sha256: 922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 + - name: python3-cffi + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "cffi==1.17.1" --no-build-isolation + sources: + - *id005 + - *id006 + - name: python3-charset-normalizer + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "charset-normalizer==3.3.2" --no-build-isolation + sources: + - &id020 + type: file + url: https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz + sha256: f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 + # - name: python3-colorama + # buildsystem: simple + # build-commands: + # - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + # --prefix=${FLATPAK_DEST} "colorama==0.4.6" --no-build-isolation + # sources: [] + - name: python3-frozenlist + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "frozenlist==1.4.1" --no-build-isolation + sources: + - *id003 + - name: python3-h11 + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "h11==0.14.0" --no-build-isolation + sources: + - &id013 + type: file + url: https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl + sha256: e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 + - name: python3-idna + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "idna==3.10" --no-build-isolation + sources: + - &id008 + type: file + url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl + sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + url: https://files.pythonhosted.org/packages/e4/3d/4924f9ed49698bac5f112bc9b40aa007bbdcd702462c1df3d2e1383fb158/yarl-1.11.1.tar.gz + sha256: 1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53 + - name: python3-minio + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "minio==7.2.8" --no-build-isolation + sources: + - *id009 + - *id004 + - *id010 + - *id005 + - type: file + url: https://files.pythonhosted.org/packages/34/89/f4d5cfb0a5494e7dae1c11d6d1ab82811d93f6af8ca54e1393c046ff0e75/minio-7.2.8-py3-none-any.whl + sha256: aa3b485788b63b12406a5798465d12a57e4be2ac2a58a8380959b6b748e64ddd + - *id006 + - &id012 + type: file + url: https://files.pythonhosted.org/packages/b9/ed/19223a0a0186b8a91ebbdd2852865839237a21c74f1fbc4b8d5b62965239/pycryptodome-3.20.0.tar.gz + sha256: 09609209ed7de61c2b560cc5c8c4fbf892f8b15b1faf7e4cbffac97db1fffda7 + - &id019 + type: file + url: https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl + sha256: 04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d + - &id021 + type: file + url: https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl + sha256: ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac + - name: python3-multidict + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "multidict==6.1.0" --no-build-isolation + sources: + - &id011 + type: file + url: https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz + sha256: 22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a + - name: python3-mutagen + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "mutagen==1.47.0" --no-build-isolation + sources: + - &id024 + type: file + url: https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl + sha256: edd96f50c5907a9539d8e5bba7245f62c9f520aef333d13392a79a4f70aca719 + - name: python3-packaging + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "packaging==23.2" --no-build-isolation + sources: + - type: file + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + - name: python3-pillow + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pillow==10.4.0" --no-build-isolation + sources: + - type: file + url: https://files.pythonhosted.org/packages/cd/74/ad3d526f3bf7b6d3f408b73fde271ec69dfac8b81341a318ce825f2b3812/pillow-10.4.0.tar.gz + sha256: 166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06 + - name: python3-platformdirs + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "platformdirs==4.3.6" --no-build-isolation + sources: + - type: file + url: https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl + sha256: 73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb + - name: python3-pycparser + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pycparser==2.22" --no-build-isolation + sources: + - *id006 + - name: python3-pycryptodome + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pycryptodome==3.20.0" --no-build-isolation + sources: + - *id012 + - name: python3-pycryptodomex + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pycryptodomex==3.20.0" --no-build-isolation + sources: + - &id025 + type: file + url: https://files.pythonhosted.org/packages/31/a4/b03a16637574312c1b54c55aedeed8a4cb7d101d44058d46a0e5706c63e1/pycryptodomex-3.20.0.tar.gz + sha256: 7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e + - name: python3-pymediainfo + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pymediainfo==6.1.0" --no-build-isolation + sources: + - type: file + url: https://files.pythonhosted.org/packages/0f/ed/a02b18943f9162644f90354fe6445410e942c857dd21ded758f630ba41c0/pymediainfo-6.1.0.tar.gz + sha256: 186a0b41a94524f0984d085ca6b945c79a254465b7097f2560dc0c04e8d1d8a5 + - name: python3-pypng + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "pypng==0.20220715.0" --no-build-isolation + sources: + - &id018 + type: file + url: https://files.pythonhosted.org/packages/3e/b9/3766cc361d93edb2ce81e2e1f87dd98f314d7d513877a342d31b30741680/pypng-0.20220715.0-py3-none-any.whl + sha256: 4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c + - name: python3-python-engineio + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "python-engineio==4.9.1" --no-build-isolation + sources: + - *id013 + - &id015 + type: file + url: https://files.pythonhosted.org/packages/ad/38/4642c75241686c9cf05d23c50b9ffbd760507292f12fdfb04adc2ab5d34a/python_engineio-4.9.1-py3-none-any.whl + sha256: f995e702b21f6b9ebde4e2000cd2ad0112ba0e5116ec8d22fe3515e76ba9dddd + - &id016 + type: file + url: https://files.pythonhosted.org/packages/6d/ea/288a8ac1d9551354488ff60c0ac6a76acc3b6b60f0460ac1944c75e240da/simple_websocket-1.0.0-py3-none-any.whl + sha256: 1d5bf585e415eaa2083e2bcf02a3ecf91f9712e7b3e6b9fa0b461ad04e0837bc + - &id017 + type: file + url: https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl + sha256: b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736 + - name: python3-python-socketio + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "python-socketio==5.11.4" --no-build-isolation + sources: + - *id014 + - *id013 + - *id015 + - type: file + url: https://files.pythonhosted.org/packages/7e/9a/52b94c8c9516e07844d3da3d0da3e68649f172aeeace8d7a1becca9e6111/python_socketio-5.11.4-py3-none-any.whl + sha256: 42efaa3e3e0b166fc72a527488a13caaac2cefc76174252486503bd496284945 + - *id016 + - *id017 + - name: python3-qrcode + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "qrcode==7.4.2" --no-build-isolation + sources: + - *id018 + - type: file + url: https://files.pythonhosted.org/packages/24/79/aaf0c1c7214f2632badb2771d770b1500d3d7cbdf2590ae62e721ec50584/qrcode-7.4.2-py3-none-any.whl + sha256: 581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a + - *id019 + - name: python3-requests + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "requests==2.32.3" --no-build-isolation + sources: + - *id010 + - *id020 + - *id008 + - &id026 + type: file + url: https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl + sha256: 70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 + - *id021 + - name: python3-simple-websocket + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "simple-websocket==1.0.0" --no-build-isolation + sources: + - *id013 + - *id016 + - *id017 + - name: python3-typing-extensions + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "typing-extensions==4.12.2" --no-build-isolation + sources: + - *id019 + - name: python3-urllib3 + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "urllib3==2.2.3" --no-build-isolation + sources: + - *id021 + - name: python3-websockets + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "websockets==13.1" --no-build-isolation + sources: + - &id027 + type: file + url: https://files.pythonhosted.org/packages/e2/73/9223dbc7be3dcaf2a7bbf756c351ec8da04b1fa573edaf545b95f6b0c7fd/websockets-13.1.tar.gz + sha256: a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878 + - name: python3-wsproto + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "wsproto==1.2.0" --no-build-isolation + sources: + - *id013 + - *id017 + - name: python3-yarl + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "yarl==1.11.1" --no-build-isolation + sources: + - *id008 + - *id011 + - type: file + url: https://files.pythonhosted.org/packages/e4/3d/4924f9ed49698bac5f112bc9b40aa007bbdcd702462c1df3d2e1383fb158/yarl-1.11.1.tar.gz + sha256: 1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53 + - name: python3-yt-dlp + buildsystem: simple + build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "yt-dlp==2024.8.6" --no-build-isolation + sources: + - *id023 + - *id010 + - *id020 + - *id008 + - *id024 + - *id025 + - *id026 + - *id021 + - *id027 + - type: file + url: https://files.pythonhosted.org/packages/a5/9b/f58db6c36f899c4f9c88f63aa9bc6ab676ff3d0ccbbe3201a5d3a670cfe4/yt_dlp-2024.8.6-py3-none-any.whl + sha256: ab507ff600bd9269ad4d654e309646976778f0e243eaa2f6c3c3214278bb2922 +name: python3-requirements-client diff --git a/resources/flatpak/python3-yarl.yaml b/resources/flatpak/python3-yarl.yaml new file mode 100644 index 0000000..fa32f6b --- /dev/null +++ b/resources/flatpak/python3-yarl.yaml @@ -0,0 +1,16 @@ +# Generated with flatpak-pip-generator --yaml yarl==1.11.1 +name: python3-yarl +buildsystem: simple +build-commands: + - pip3 install --verbose --exists-action=i --no-index --find-links="file://${PWD}" + --prefix=${FLATPAK_DEST} "yarl==1.11.1" --no-build-isolation +sources: + - type: file + url: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl + sha256: 946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 + - type: file + url: https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz + sha256: 22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a + - type: file + url: https://files.pythonhosted.org/packages/e4/3d/4924f9ed49698bac5f112bc9b40aa007bbdcd702462c1df3d2e1383fb158/yarl-1.11.1.tar.gz + sha256: 1bb2d9e212fb7449b8fb73bc461b51eaa17cc8430b4a87d87be7b25052d92f53 diff --git a/resources/flatpak/rocks.syng.Syng.yml b/resources/flatpak/rocks.syng.Syng.yml new file mode 100644 index 0000000..99f5930 --- /dev/null +++ b/resources/flatpak/rocks.syng.Syng.yml @@ -0,0 +1,49 @@ +id: rocks.syng.Syng +runtime: org.kde.Platform +runtime-version: '6.7' +sdk: org.kde.Sdk +base: "com.riverbankcomputing.PyQt.BaseApp" +base-version: "6.7" +cleanup-commands: + - /app/cleanup-BaseApp.sh +build-options: + env: + - BASEAPP_REMOVE_WEBENGINE=1 +finish-args: + - --env=QTWEBENGINEPROCESS_PATH=/app/bin/QtWebEngineProcess - /app/cleanup-BaseApp.sh + # X11 + XShm access + - --socket=fallback-x11 + - --share=ipc + - --socket=wayland + # Acceleration + - --device=dri + # Sound + - --socket=pulseaudio + # Ability to edit/save files anywhere + - --filesystem=host + - --share=network +command: syng +modules: + - python3-pyyaml.yaml + - python3-expandvars.json + - python3-aiohttp.yaml + - python3-requirements-client.yaml + - python3-poetry-core.yaml + - name: syng + buildsystem: simple + build-commands: + - pip install --prefix=/app --no-deps . --no-build-isolation + - install -Dm644 resources/${FLATPAK_ID}.desktop -t /app/share/applications + - install -Dm644 resources/icons/hicolor/32x32/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/32x32/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/48x48/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/48x48/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/64x64/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/64x64/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/128x128/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/128x128/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/256x256/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/256x256/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/512x512/apps/${FLATPAK_ID}.png /app/share/icons/hicolor/512x512/apps/${FLATPAK_ID}.png + - install -Dm644 resources/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg /app/share/icons/hicolor/scalable/apps/${FLATPAK_ID}.svg + sources: + - type: git + url: https://github.com/christofsteel/syng.git + commit: ff17a6dc7f9214db3026080f7654f814d8332c65 + - mpv.yaml +