From 8a82bcf29e79685eb2656f2ece6e57fb49477b7cbfee7e2364848275bccaf73c Mon Sep 17 00:00:00 2001 From: sisungo Date: Fri, 11 Sep 2026 07:26:14 +0000 Subject: [PATCH] feat: add few multimedia format libraries Signed-off-by: sisungo --- packages/libogg/pkgbuild.py | 33 ++++++++++++++ packages/libvorbis/pkgbuild.py | 35 +++++++++++++++ packages/libwebp/pkgbuild.py | 79 ++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 packages/libogg/pkgbuild.py create mode 100644 packages/libvorbis/pkgbuild.py create mode 100644 packages/libwebp/pkgbuild.py diff --git a/packages/libogg/pkgbuild.py b/packages/libogg/pkgbuild.py new file mode 100644 index 0000000..2142e0d --- /dev/null +++ b/packages/libogg/pkgbuild.py @@ -0,0 +1,33 @@ +from lib import cpp +from lib.make import * + +version("1.3.6") +description("Ogg container format libraries") +maintainer("sisungo ") +source_url("https://downloads.xiph.org/releases/ogg/libogg-1.3.6.tar.xz") + +builddep("shortcut/c") +builddep("shortcut/autotools") + + +def build(): + cpp.configure( + [ + "--prefix=/", + f"--libdir={get_prefix('libogg')}/lib", + f"--includedir={get_prefix('libogg-dev')}/include", + ] + ) + cpp.make() + cpp.make_install() + + +on_build(build) + +package("libogg") +dep("semi-libc @same-arch") +cpp.use_auto_pack(["lib"]) + +package("libogg-dev") +dep("libogg (same)") +cpp.use_auto_pack(["dev"]) diff --git a/packages/libvorbis/pkgbuild.py b/packages/libvorbis/pkgbuild.py new file mode 100644 index 0000000..f857f96 --- /dev/null +++ b/packages/libvorbis/pkgbuild.py @@ -0,0 +1,35 @@ +from lib import cpp +from lib.make import * + +version("1.3.7") +description("Reference implementation of the Ogg Vorbis audio format.") +maintainer("sisungo ") +source_url("https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.gz") + +builddep("shortcut/c") +builddep("shortcut/autotools") +builddep("libogg-dev @target") + + +def build(): + cpp.configure( + [ + "--prefix=/", + f"--libdir={get_prefix('libvorbis')}/lib", + f"--includedir={get_prefix('libvorbis-dev')}/include", + "--disable-oggtest", + ] + ) + cpp.make() + cpp.make_install() + + +on_build(build) + +package("libvorbis") +dep("semi-libc @same-arch") +cpp.use_auto_pack(["lib"]) + +package("libvorbis-dev") +dep("libvorbis (same)") +cpp.use_auto_pack(["dev"]) diff --git a/packages/libwebp/pkgbuild.py b/packages/libwebp/pkgbuild.py new file mode 100644 index 0000000..ef65388 --- /dev/null +++ b/packages/libwebp/pkgbuild.py @@ -0,0 +1,79 @@ +import os +import shutil + +from lib.make import * +from lib import cpp + + +version("1.6.0") +description("a library to encode and decode images in WebP format") +maintainer("sisungo ") +source_url("https://github.com/webmproject/libwebp/archive/refs/tags/v1.6.0.tar.gz") + +builddep("shortcut/c") +builddep("shortcut/cmake") + + +def split_libsharpyuv(): + os.makedirs("sharpyuv/libdev/pkgconfig") + os.makedirs("sharpyuv/lib") + os.makedirs("sharpyuv/include") + os.rename("lib/pkgconfig/libsharpyuv.pc", "sharpyuv/libdev/pkgconfig/libsharpyuv.pc") + os.system("mv lib/libsharpyuv* sharpyuv/lib/") + os.rename("include/webp/sharpyuv", "sharpyuv/include/sharpyuv") + with open("sharpyuv/libdev/pkgconfig/libsharpyuv.pc", "r") as pcf: + pc = pcf.read() + pc = pc.replace(get_prefix("libwebp"), get_prefix("libsharpyuv")) + pc = pc.replace(f"{get_prefix('libwebp-dev')}/include/webp", f"{get_prefix('libsharpyuv-dev')}/include") + with open("sharpyuv/libdev/pkgconfig/libsharpyuv.pc", "wt+") as pcf: + pcf.write(pc) + + +def build(): + cpp.cmake([ + "-DBUILD_SHARED_LIBS=1", + f"-DCMAKE_INSTALL_LIBDIR={get_prefix('libwebp')}/lib", + f"-DCMAKE_INSTALL_BINDIR={get_prefix('libwebp-tools')}/bin", + f"-DCMAKE_INSTALL_INCLUDEDIR={get_prefix('libwebp-dev')}/include", + ]) + cpp.ninja() + if os.path.exists("../cpp_install"): + shutil.rmtree("../cpp_install") + cpp.ninja_install() + split_libsharpyuv() + +on_build(build) + + +def pack_libsharpyuv(composer): + composer.add_dir("sharpyuv/lib", "lib") + +def pack_libsharpyuv_dev(composer): + composer.add_dir("sharpyuv/libdev", "lib") + composer.add_dir("sharpyuv/include", "include") + +package("libsharpyuv") +description("Library for sharp RGB to YUV conversion") +dep("semi-libc @same-arch") +on_pack(pack_libsharpyuv) + +package("libsharpyuv-dev") +description("Library for sharp RGB to YUV conversion") +dep("libsharpyuv (same)") +dep("semi-libc-dev @same-arch") +on_pack(pack_libsharpyuv_dev) + +package("libwebp") +dep("semi-libc @same-arch") +dep("libsharpyuv (same)") +cpp.use_auto_pack(["lib"]) + +package("libwebp-tools") +dep("libwebp (same)") +cpp.use_auto_pack(["bin"]) + +package("libwebp-dev") +dep("libwebp (same)") +dep("libsharpyuv-dev (same)") +dep("semi-libc-dev @same-arch") +cpp.use_auto_pack(["dev"]) -- 2.55.0