forked from semios/semios-packages
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4dfc2b731 |
+1
-33
@@ -4,7 +4,6 @@ import sys
|
|||||||
import tarfile
|
import tarfile
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
import zipfile
|
|
||||||
|
|
||||||
|
|
||||||
def filename(url):
|
def filename(url):
|
||||||
@@ -129,25 +128,6 @@ def tar_common_root(tar: tarfile.TarFile) -> str | None:
|
|||||||
return root
|
return root
|
||||||
|
|
||||||
|
|
||||||
def zip_common_root(zip_file: zipfile.ZipFile) -> str | None:
|
|
||||||
members = zip_file.infolist()
|
|
||||||
if not members:
|
|
||||||
return None
|
|
||||||
root = None
|
|
||||||
for member in members:
|
|
||||||
path = member.filename.replace('\\', '/').lstrip('./').lstrip('/')
|
|
||||||
if not path:
|
|
||||||
continue
|
|
||||||
this_root = path.split('/')[0]
|
|
||||||
if this_root in ('', '.', '..'):
|
|
||||||
continue
|
|
||||||
if root is None:
|
|
||||||
root = this_root
|
|
||||||
elif this_root != root:
|
|
||||||
return None
|
|
||||||
return root
|
|
||||||
|
|
||||||
|
|
||||||
def sources_dir_name() -> str:
|
def sources_dir_name() -> str:
|
||||||
with open("./target/sources.tag") as file:
|
with open("./target/sources.tag") as file:
|
||||||
return file.read()
|
return file.read()
|
||||||
@@ -159,26 +139,14 @@ def source_url(url: str):
|
|||||||
download_path = f"./target/{filename(url)}"
|
download_path = f"./target/{filename(url)}"
|
||||||
download(url, download_path)
|
download(url, download_path)
|
||||||
|
|
||||||
if download_path.endswith(".zip"):
|
|
||||||
with zipfile.ZipFile(download_path, "r") as zip:
|
|
||||||
common_root = zip_common_root(zip)
|
|
||||||
else:
|
|
||||||
with tarfile.open(download_path, "r") as tar:
|
with tarfile.open(download_path, "r") as tar:
|
||||||
common_root = tar_common_root(tar)
|
common_root = tar_common_root(tar)
|
||||||
|
|
||||||
extract_dir = "./target"
|
extract_dir = "./target"
|
||||||
sources_dir = f"./target/{common_root}"
|
sources_dir = f"./target/{common_root}"
|
||||||
if common_root in ["", ".", None]:
|
if common_root in ["", ".", "None"]:
|
||||||
extract_dir = "./target/sources"
|
extract_dir = "./target/sources"
|
||||||
sources_dir = "./target/sources"
|
sources_dir = "./target/sources"
|
||||||
|
|
||||||
if download_path.endswith(".zip"):
|
|
||||||
with zipfile.ZipFile(download_path, "r") as zip:
|
|
||||||
zip.extractall(extract_dir)
|
|
||||||
else:
|
|
||||||
with tarfile.open(download_path, "r") as tar:
|
|
||||||
tar.extractall(extract_dir)
|
tar.extractall(extract_dir)
|
||||||
|
|
||||||
with open("./target/sources.tag", "wt+") as file:
|
with open("./target/sources.tag", "wt+") as file:
|
||||||
file.write(sources_dir)
|
file.write(sources_dir)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
from lib.make import *
|
||||||
|
from lib import cpp
|
||||||
|
|
||||||
|
|
||||||
|
version("1.86.0")
|
||||||
|
description("to describe the APIs and collect them in a uniform, machine readable format")
|
||||||
|
maintainer("sisungo <[email protected]>")
|
||||||
|
source_url("https://download.gnome.org/sources/gobject-introspection/1.86/gobject-introspection-1.86.0.tar.xz")
|
||||||
|
|
||||||
|
builddep("shortcut/c")
|
||||||
|
builddep("shortcut/meson")
|
||||||
|
builddep("pkgconf")
|
||||||
|
builddep(f"glib-dev @{arch.get_target()}")
|
||||||
|
builddep(f"libffi-dev @{arch.get_target()}")
|
||||||
|
builddep(f"setuptools.py @{arch.get_target()}")
|
||||||
|
builddep(f"libpython-dev @{arch.get_target()}")
|
||||||
|
builddep("libexpat")
|
||||||
|
builddep("flex")
|
||||||
|
builddep("bison")
|
||||||
|
|
||||||
|
|
||||||
|
def build():
|
||||||
|
cpp.meson_setup([
|
||||||
|
f"--prefix={get_prefix('gobject-introspection')}",
|
||||||
|
f"-Dgir_dir_prefix=/lib/{arch.get_target()}/include/gir",
|
||||||
|
"--bindir=/bin",
|
||||||
|
])
|
||||||
|
cpp.meson_compile()
|
||||||
|
cpp.meson_install()
|
||||||
|
|
||||||
|
on_build(build)
|
||||||
|
|
||||||
|
|
||||||
|
def pack(composer):
|
||||||
|
composer.add_dir("bin", "bin")
|
||||||
|
composer.add_dir("lib", "lib")
|
||||||
|
composer.add_dir("include", "include")
|
||||||
|
composer.makedir("share")
|
||||||
|
composer.add_dir("share/gir-1.0", "share/gir-1.0")
|
||||||
|
composer.add_dir("share/gobject-introspection-1.0", "share/gobject-introspection-1.0")
|
||||||
|
|
||||||
|
def pack_docs(composer):
|
||||||
|
composer.makedir("share")
|
||||||
|
composer.add_dir("share/man", "share/man")
|
||||||
|
|
||||||
|
package("gobject-introspection")
|
||||||
|
dep("glib-dev @same-arch")
|
||||||
|
dep("libffi-dev @same-arch")
|
||||||
|
dep("semi-libc @same-arch")
|
||||||
|
on_pack(pack)
|
||||||
|
|
||||||
|
package("gobject-introspection-docs")
|
||||||
|
on_pack(pack_docs)
|
||||||
@@ -119,7 +119,6 @@ def cmd_build_package(package: str):
|
|||||||
"version": pkgver,
|
"version": pkgver,
|
||||||
"arch": pkgarch,
|
"arch": pkgarch,
|
||||||
"description": pkginfo[lib.make._key_description],
|
"description": pkginfo[lib.make._key_description],
|
||||||
"maintainers": pkginfo[lib.make._key_maintainers],
|
|
||||||
"dependencies": pkginfo[lib.make._key_dependencies],
|
"dependencies": pkginfo[lib.make._key_dependencies],
|
||||||
"provides": pkginfo[lib.make._key_provides],
|
"provides": pkginfo[lib.make._key_provides],
|
||||||
"recommendations": pkginfo[lib.make._key_recommendations],
|
"recommendations": pkginfo[lib.make._key_recommendations],
|
||||||
|
|||||||
Reference in New Issue
Block a user