Compare commits

..
13 Commits
Author SHA1 Message Date
sisungo 0ed5e65337 Merge pull request 'feat: add support of zip source archives' (#168) from sisungo/semios-packages:zipsupport into master
Reviewed-on: semios/semios-packages#168
2026-08-18 13:35:59 +08:00
sisungo 0ada9d32fb feat: add support of zip source archives
Signed-off-by: sisungo <[email protected]>
2026-08-17 17:43:54 +08:00
sisungo 839b57e9bf Merge pull request 'feat: add package spirv-tools' (#147) from sisungo/semios-packages:spirvtools into master
Reviewed-on: semios/semios-packages#147
2026-08-17 10:10:23 +08:00
sisungo 3a1f472de2 fix: lib/cpp auto pack ignores hpp files
Signed-off-by: sisungo <[email protected]>
2026-08-16 23:36:00 +08:00
sisungo 452e767da4 feat: add package spirv-tools
Signed-off-by: sisungo <[email protected]>
2026-08-16 23:19:38 +08:00
sisungo 933e526f26 Merge pull request 'feat: add package SPIRV-LLVM-Translator' (#152) from sisungo/semios-packages:SPIRV-LLVM-Translator into master
Reviewed-on: semios/semios-packages#152
2026-08-16 11:16:19 +08:00
sisungo 8edccbc04e Merge pull request 'feat: add package Mako-py' (#163) from sisungo/semios-packages:Mako-py into master
Reviewed-on: semios/semios-packages#163
2026-08-16 11:00:05 +08:00
sisungo 402aedcfb7 Merge pull request 'feat: add package MarkupSafe-py' (#164) from sisungo/semios-packages:MarkupSafe-py into master
Reviewed-on: semios/semios-packages#164
2026-08-16 10:58:20 +08:00
sisungo 02dede7823 feat: add package Mako-py
Signed-off-by: sisungo <[email protected]>
2026-08-16 10:43:10 +08:00
sisungo e9e835a7cf Merge pull request 'feat: add package PyYAML' (#162) from sisungo/semios-packages:PyYAML into master
Reviewed-on: semios/semios-packages#162
2026-08-16 10:23:39 +08:00
sisungo a14d1e6ea0 feat: add package MarkupSafe-py
Signed-off-by: sisungo <[email protected]>
2026-08-16 10:19:55 +08:00
sisungo 9711728da6 feat: add package PyYAML
Signed-off-by: sisungo <[email protected]>
2026-08-16 09:38:46 +08:00
sisungo 9810303b71 feat: add package SPIRV-LLVM-Translator
Signed-off-by: sisungo <[email protected]>
2026-08-15 17:41:38 +08:00
10 changed files with 198 additions and 35 deletions
+1
View File
@@ -117,6 +117,7 @@ def _is_dev_file(ent) -> bool:
or ent.name.endswith(".la")
or ent.name.endswith(".pc")
or ent.name.endswith(".h")
or ent.name.endswith(".hpp")
or ent.name.endswith(".cmake")
or ent.name.endswith(".inc")
or ("Makefile" in ent.name)
+1 -1
View File
@@ -32,7 +32,7 @@ def _depcommon(s: str):
if ")" in s:
return s.replace(")", f", +python{PY3_VERSION})")
else:
return s.replace(".py", f" (+python{PY3_VERSION})")
return s.replace(".py", f".py (+python{PY3_VERSION})")
else:
return None
+42 -10
View File
@@ -4,6 +4,7 @@ import sys
import tarfile
import urllib.parse
import urllib.request
import zipfile
def filename(url):
@@ -128,6 +129,25 @@ def tar_common_root(tar: tarfile.TarFile) -> str | None:
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:
with open("./target/sources.tag") as file:
return file.read()
@@ -139,16 +159,28 @@ def source_url(url: str):
download_path = f"./target/{filename(url)}"
download(url, download_path)
with tarfile.open(download_path, "r") as tar:
common_root = tar_common_root(tar)
extract_dir = "./target"
sources_dir = f"./target/{common_root}"
if common_root in ["", ".", "None"]:
extract_dir = "./target/sources"
sources_dir = "./target/sources"
tar.extractall(extract_dir)
with open("./target/sources.tag", "wt+") as file:
file.write(sources_dir)
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:
common_root = tar_common_root(tar)
extract_dir = "./target"
sources_dir = f"./target/{common_root}"
if common_root in ["", ".", None]:
extract_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)
with open("./target/sources.tag", "wt+") as file:
file.write(sources_dir)
def _git_repo_name(url: str) -> str:
+29
View File
@@ -0,0 +1,29 @@
import os
from lib.make import *
from lib import python
python.version("1.4.1")
description("A super-fast templating language that borrows the best ideas from the existing templating languages.")
maintainer("sisungo <[email protected]>")
source_url("https://files.pythonhosted.org/packages/2a/12/b5fa2353e2754cd67fb9f83793fa48ff42c213a5da7e719869d2301f6ab8/mako-1.4.1.tar.gz")
python.builddep("$shortcut")
python.builddep("MarkupSafe.py")
def build():
python.build()
python.install()
os.chdir("lib")
while len(os.listdir(".")) == 1:
os.chdir(os.listdir(".")[0])
on_build(build)
package("Mako.py")
python.dep("python")
python.dep("MarkupSafe.py")
python.use_auto_pack()
+22
View File
@@ -0,0 +1,22 @@
from lib.make import *
from lib import python
python.version("3.0.3")
description("Safely add untrusted strings to HTML/XML markup.")
maintainer("sisungo <[email protected]>")
source_url("https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz")
python.builddep("$shortcut")
def build():
python.build()
python.install()
on_build(build)
package("MarkupSafe.py")
python.dep("python")
python.use_auto_pack()
+22
View File
@@ -0,0 +1,22 @@
from lib.make import *
from lib import python
python.version("6.0.3")
description("YAML parser and emitter for Python")
maintainer("sisungo <[email protected]>")
source_url("https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz")
python.builddep("$shortcut")
def build():
python.build()
python.install()
on_build(build)
package("PyYAML.py")
python.dep("python")
python.use_auto_pack()
@@ -0,0 +1,37 @@
from lib.make import *
from lib import cpp, arch
version("22.1.5")
description("A tool and a library for bi-directional translation between SPIR-V and LLVM IR")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v22.1.5.tar.gz")
builddep("shortcut/cmake")
builddep("shortcut/c++")
builddep(f"libllvm-dev (~22.1.0) @{arch.get_target()}")
builddep(f"libllvm-static (~22.1.0) @{arch.get_target()}")
builddep("pkgconf")
builddep("spirv-headers")
def build():
cpp.cmake([
"-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=ON",
f"-DLLVM_DIR=/lib/{arch.get_target()}/cmake/llvm",
f"-DSPIRV-Headers_SOURCE_DIR=/lib/{arch.get_target()}",
f"-DCMAKE_INSTALL_PREFIX={get_prefix('libllvmspirv-dev')}",
])
cpp.ninja()
cpp.ninja_install()
on_build(build)
package("libllvmspirv-dev")
cpp.use_auto_pack(["dev"])
package("llvm-spirv")
dep("libllvm (~22.1.0) @same-arch")
dep("libcxx @same-arch")
cpp.use_auto_pack(["bin"])
-24
View File
@@ -1,24 +0,0 @@
from lib import arch, cpp
from lib.make import *
version("3.3")
description("GNU perfect hash function generator")
maintainer("sisungo <[email protected]>")
source_url("https://ftp.gnu.org/pub/gnu/gperf/gperf-3.3.tar.gz")
builddep("shortcut/c++")
builddep("shortcut/autotools")
def build():
cpp.configure()
cpp.make()
cpp.make_install()
on_build(build)
package("gperf")
dep("libcxx @same-arch")
cpp.use_auto_pack(["bin"])
+43
View File
@@ -0,0 +1,43 @@
import os
import shutil
from lib.make import *
from lib import cpp, arch
sdk_version = "1.4.357.0"
version(sdk_version)
description("an API and commands for processing SPIR-V modules")
maintainer("sisungo <[email protected]>")
source_url("https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz")
builddep("shortcut/cmake")
builddep("shortcut/c++")
builddep(f"spirv-headers (={sdk_version}) @{arch.get_target()}")
def build():
cpp.cmake([
f"-DSPIRV-Headers_SOURCE_DIR=/lib/{arch.get_target()}",
"-DCMAKE_CXX_FLAGS=-Wno-error=switch",
f"-DCMAKE_INSTALL_PREFIX={get_prefix('spirv-tools-dev')}",
])
cpp.ninja()
cpp.ninja_install()
try:
os.rename("lib64", "lib")
os.rename("lib32", "lib")
except:
pass
on_build(build)
package("spirv-tools")
dep("libcxx @same-arch")
cpp.use_auto_pack(["bin"])
package("spirv-tools-dev")
dep("spirv-tools (same)")
cpp.use_auto_pack(["lib", "dev"])
+1
View File
@@ -119,6 +119,7 @@ def cmd_build_package(package: str):
"version": pkgver,
"arch": pkgarch,
"description": pkginfo[lib.make._key_description],
"maintainers": pkginfo[lib.make._key_maintainers],
"dependencies": pkginfo[lib.make._key_dependencies],
"provides": pkginfo[lib.make._key_provides],
"recommendations": pkginfo[lib.make._key_recommendations],