mirror of
https://github.com/chatmail/core.git
synced 2026-05-02 12:56:30 +03:00
build: make source package for deltachat-rpc-server install fixed version
This commit is contained in:
@@ -16,57 +16,6 @@ Summary: Delta Chat JSON-RPC server
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
SETUP_PY = """
|
|
||||||
import sys
|
|
||||||
from setuptools import setup, find_packages
|
|
||||||
from distutils.cmd import Command
|
|
||||||
from setuptools.command.install import install
|
|
||||||
from setuptools.command.build import build
|
|
||||||
import subprocess
|
|
||||||
import platform
|
|
||||||
import tempfile
|
|
||||||
from zipfile import ZipFile
|
|
||||||
from pathlib import Path
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
|
|
||||||
class BuildCommand(build):
|
|
||||||
def run(self):
|
|
||||||
tmpdir = tempfile.mkdtemp()
|
|
||||||
subprocess.run(
|
|
||||||
[
|
|
||||||
sys.executable,
|
|
||||||
"-m",
|
|
||||||
"pip",
|
|
||||||
"download",
|
|
||||||
"--no-input",
|
|
||||||
"--timeout",
|
|
||||||
"1000",
|
|
||||||
"--platform",
|
|
||||||
"musllinux_1_1_" + platform.machine(),
|
|
||||||
"--only-binary=:all:",
|
|
||||||
"deltachat-rpc-server",
|
|
||||||
],
|
|
||||||
cwd=tmpdir,
|
|
||||||
)
|
|
||||||
|
|
||||||
wheel_path = next(Path(tmpdir).glob("*.whl"))
|
|
||||||
with ZipFile(wheel_path, "r") as wheel:
|
|
||||||
exe_path = wheel.extract("deltachat_rpc_server/deltachat-rpc-server", "src")
|
|
||||||
Path(exe_path).chmod(0o700)
|
|
||||||
wheel.extract("deltachat_rpc_server/__init__.py", "src")
|
|
||||||
|
|
||||||
shutil.rmtree(tmpdir)
|
|
||||||
return super().run()
|
|
||||||
|
|
||||||
|
|
||||||
setup(
|
|
||||||
cmdclass={"build": BuildCommand},
|
|
||||||
package_data={"deltachat_rpc_server": ["deltachat-rpc-server"]},
|
|
||||||
)
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def build_source_package(version):
|
def build_source_package(version):
|
||||||
filename = f"dist/deltachat-rpc-server-{version}.tar.gz"
|
filename = f"dist/deltachat-rpc-server-{version}.tar.gz"
|
||||||
|
|
||||||
@@ -94,7 +43,58 @@ version = "{version}"
|
|||||||
deltachat-rpc-server = "deltachat_rpc_server:main"
|
deltachat-rpc-server = "deltachat_rpc_server:main"
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
pack("setup.py", SETUP_PY)
|
pack(
|
||||||
|
"setup.py",
|
||||||
|
f"""
|
||||||
|
import sys
|
||||||
|
from setuptools import setup, find_packages
|
||||||
|
from distutils.cmd import Command
|
||||||
|
from setuptools.command.install import install
|
||||||
|
from setuptools.command.build import build
|
||||||
|
import subprocess
|
||||||
|
import platform
|
||||||
|
import tempfile
|
||||||
|
from zipfile import ZipFile
|
||||||
|
from pathlib import Path
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
|
class BuildCommand(build):
|
||||||
|
def run(self):
|
||||||
|
tmpdir = tempfile.mkdtemp()
|
||||||
|
subprocess.run(
|
||||||
|
[
|
||||||
|
sys.executable,
|
||||||
|
"-m",
|
||||||
|
"pip",
|
||||||
|
"download",
|
||||||
|
"--no-input",
|
||||||
|
"--timeout",
|
||||||
|
"1000",
|
||||||
|
"--platform",
|
||||||
|
"musllinux_1_1_" + platform.machine(),
|
||||||
|
"--only-binary=:all:",
|
||||||
|
"deltachat-rpc-server=={version}",
|
||||||
|
],
|
||||||
|
cwd=tmpdir,
|
||||||
|
)
|
||||||
|
|
||||||
|
wheel_path = next(Path(tmpdir).glob("*.whl"))
|
||||||
|
with ZipFile(wheel_path, "r") as wheel:
|
||||||
|
exe_path = wheel.extract("deltachat_rpc_server/deltachat-rpc-server", "src")
|
||||||
|
Path(exe_path).chmod(0o700)
|
||||||
|
wheel.extract("deltachat_rpc_server/__init__.py", "src")
|
||||||
|
|
||||||
|
shutil.rmtree(tmpdir)
|
||||||
|
return super().run()
|
||||||
|
|
||||||
|
|
||||||
|
setup(
|
||||||
|
cmdclass={{"build": BuildCommand}},
|
||||||
|
package_data={{"deltachat_rpc_server": ["deltachat-rpc-server"]}},
|
||||||
|
)
|
||||||
|
""",
|
||||||
|
)
|
||||||
pack("src/deltachat_rpc_server/__init__.py", "")
|
pack("src/deltachat_rpc_server/__init__.py", "")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user