diff --git a/recipes/glad.toml b/recipes/glad.toml new file mode 100644 index 00000000..a62ac244 --- /dev/null +++ b/recipes/glad.toml @@ -0,0 +1,39 @@ +# glad 2.0.8 (paquete PyPI `glad2`, módulo `glad`) — generador de loaders GL/GLES/EGL/Vulkan. +# Herramienta de BUILD de `libplacebo`: su `src/opengl/include/glad/meson.build` corre +# `python -m glad … --api=gl:core,gles2,egl --header-only --mx` y genera el `gl.h` que compila el +# backend de OpenGL. Sin glad, libplacebo sólo construye con `-Dopengl=disabled` y `mpv` se queda +# sin `vo=gpu-next`. +# +# POR QUÉ ES UNA RECETA Y NO UN SUBMÓDULO. libplacebo trae glad como submódulo git +# (`3rdparty/glad`), y el `[source]` de hammer NO clona submódulos: `Source` sólo entiende +# repo+commit o tarball+sha256. Alpine resuelve lo mismo con `py3-glad` como makedepend, así que +# acá va igual — y de paso el pin queda por sha256 de PyPI, que es más firme que un submódulo. +# El `python_env` de libplacebo hace `append` sobre el PYTHONPATH heredado, no lo reemplaza, así +# que apuntar `PYTHONPATH=/usr/lib/python3.12/site-packages` en la fase alcanza para que lo vea. +# +# Python PURO. El sdist trae los XML de Khronos ya adentro (`glad/files/{gl,egl,vk}.xml`) ⇒ el +# generador NO sale a la red, que es lo que lo hace utilizable en el sandbox hermético. +name = "glad" +version = "2.0.8" +license = "MIT" + +[source] +tarball = "https://files.pythonhosted.org/packages/6e/5a/d62b24fe1c7c2f34e15c2aa4418a5327a8550fdc272999a59e0dddebc3ee/glad2-2.0.8.tar.gz" +sha256 = "b84079b9fa404f37171b961bdd1d8da21370e6c818defb8481c5b3fe3d6436da" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +compile = "true" +install = ''' +set -e +SP=/out/usr/lib/python3.12/site-packages +mkdir -p "$SP" +cp -r glad "$SP/glad" +''' + +[deps] +build = ["python3", "jinja2", "markupsafe"] diff --git a/recipes/jinja2.toml b/recipes/jinja2.toml new file mode 100644 index 00000000..d468c697 --- /dev/null +++ b/recipes/jinja2.toml @@ -0,0 +1,32 @@ +# jinja2 3.1.6 — motor de plantillas; la dep de RUNTIME de `glad`, que es el generador del loader de +# OpenGL/EGL que usa `libplacebo`. Mismo rol que `mako` tiene para Mesa, y por eso mismo entra igual: +# Python PURO, se copia el paquete a site-packages, sin pip ni wheel (el sandbox es hermético y no +# hay red adentro). +# +# `jinja2/__init__.py` importa `markupsafe` a nivel de módulo ⇒ markupsafe es dep de runtime, y ya +# estaba en el corpus por Mako/Mesa. La copia de `incoming-gnome/py3-jinja2.toml` NO se reusa: esa +# vive en una cola hermana y una receta del corpus no la alcanza (sibling-first, después el padre). +name = "jinja2" +version = "3.1.6" +license = "BSD-3-Clause" + +[source] +tarball = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz" +sha256 = "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" + +[build.phases] +compile = "true" +install = ''' +set -e +SP=/out/usr/lib/python3.12/site-packages +mkdir -p "$SP" +cp -r src/jinja2 "$SP/jinja2" +''' + +[deps] +build = ["python3", "markupsafe"]