Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vlang for openSUSE:Factory checked in at 2026-07-12 17:09:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vlang (Old) and /work/SRC/openSUSE:Factory/.vlang.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vlang" Sun Jul 12 17:09:55 2026 rev:6 rq:1364987 version:0.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/vlang/vlang.changes 2026-01-22 15:17:57.571680473 +0100 +++ /work/SRC/openSUSE:Factory/.vlang.new.1991/vlang.changes 2026-07-12 17:10:05.099123800 +0200 @@ -1,0 +2,51 @@ +Sat Jul 11 11:53:55 UTC 2026 - Eyad Issa <[email protected]> + +- Require mbedtls-3-devel explicitly to fix compilation. +- Drop 0006-Use-private-mbedtls-headers.patch: this patch was + originally added to attempt mbedtls 4.x compatibility but is + incorrect and unnecessary since mbedtls 3.x uses the standard + header paths (e.g. mbedtls/entropy.h). + +------------------------------------------------------------------- +Thu Jun 26 12:00:00 UTC 2026 - Eyad Issa <[email protected]> + +- Use private mbedtls headers for compatibility with mbedtls 4.x + via 0006-Use-private-mbedtls-headers.patch. +- Refresh all patches. + +------------------------------------------------------------------- +Sat May 30 10:00:00 UTC 2026 - Eyad Issa <[email protected]> + +- Improve packaging: + * Unbundle cJSON and zstd via 0003-Unbundle-cJSON-and-zstd.patch. + * Fix undefined reference to cJSON_GetErrorPos when using system + libcjson via 0004-Fix-cJSON_GetErrorPos-undefined-reference.patch. + * Force use of system libgc on Linux via + 0005-Force-system-libgc-on-Linux.patch. + * Enable vdoc by adding vlang/markdown as a dependency. + * Improve wrapper script to respect existing VFLAGS. + * Build intermediate stages without LTO to speed up bootstrapping. + +------------------------------------------------------------------- +Tue Apr 14 23:04:28 UTC 2026 - Eyad Issa <[email protected]> + +- Remove stage2/3 diff check +- Update to version 0.5.1: + * New clean and fast v2 backends: cleanc (similar to the old C + backend), ssa/arm64, ssa/amd64 + * Add a new generic solver stage (gated behind + -new-generic-solver) + * Refactor $var to ${var} across entire repository, make vfmt + always output the newer form ${expr} + * Fix support for match exprs with nested if exprs + * Add OS-specific headers support for #include directives + * Multiple checker improvements and fixes + * Multiple parser improvements + * Improvements to standard library + * vfmt: Fix parser failing on duplicate methods in $if/$else + blocks + * Add support for v missdoc @vlib + * Add support for v quest + * Add support for v install --local gui + +------------------------------------------------------------------- Old: ---- vlang-0.5.tar.gz New: ---- 0003-Unbundle-cJSON-and-zstd.patch 0004-Fix-cJSON_GetErrorPos-undefined-reference.patch 0005-Force-system-libgc-on-Linux.patch markdown.tar.gz vlang-0.5.1.tar.gz ----------(New B)---------- New:- Improve packaging: * Unbundle cJSON and zstd via 0003-Unbundle-cJSON-and-zstd.patch. * Fix undefined reference to cJSON_GetErrorPos when using system New: * Fix undefined reference to cJSON_GetErrorPos when using system libcjson via 0004-Fix-cJSON_GetErrorPos-undefined-reference.patch. * Force use of system libgc on Linux via New: * Force use of system libgc on Linux via 0005-Force-system-libgc-on-Linux.patch. * Enable vdoc by adding vlang/markdown as a dependency. ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vlang.spec ++++++ --- /var/tmp/diff_new_pack.EeLWBr/_old 2026-07-12 17:10:06.511171145 +0200 +++ /var/tmp/diff_new_pack.EeLWBr/_new 2026-07-12 17:10:06.511171145 +0200 @@ -2,7 +2,7 @@ # spec file for package vlang # # Copyright (c) 2024, 2025 Boian Berberov -# Copyright (c) 2025 Eyad Issa +# Copyright (c) 2025, 2026 Eyad Issa # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ # # git revision -%global vc_gitrev 294bff4ef87427743d0b35c0f7eb1b34a6dd061b +%global vc_gitrev f461dfebcdfac3c75fdf28fec80c07f0a7a9a53d # custom paths and variables %global vflags -cc gcc -d dynamic_boehm @@ -25,16 +25,22 @@ %global vexe %{vexe_root}/%{name} Name: vlang -Version: 0.5 +Version: 0.5.1 Release: 0 Summary: The V Programming Language License: MIT AND BSD-2-Clause URL: https://vlang.io/ Source0: https://github.com/%{name}/v/archive/%{version}/%{name}-%{version}.tar.gz Source1: https://github.com/%{name}/vc/raw/%{vc_gitrev}/v.c +# Vdoc requires markdown module +Source2: https://github.com/vlang/markdown/archive/refs/heads/master.tar.gz#/markdown.tar.gz Source99: vlang-rpmlintrc Patch1: 0001-Link-to-distro-provided-mbedtls.patch Patch2: 0002-Disable-vdoc-testing.patch +Patch3: 0003-Unbundle-cJSON-and-zstd.patch +Patch4: 0004-Fix-cJSON_GetErrorPos-undefined-reference.patch +Patch5: 0005-Force-system-libgc-on-Linux.patch + BuildRequires: (c_compiler or gcc) BuildRequires: diffutils BuildRequires: fdupes @@ -42,18 +48,15 @@ BuildRequires: pkgconfig # For VFLAGS="-d dynamic_boehm" BuildRequires: pkgconfig(bdw-gc) -BuildRequires: pkgconfig(mbedcrypto) -BuildRequires: pkgconfig(mbedtls) -BuildRequires: pkgconfig(mbedx509) +BuildRequires: pkgconfig(libcjson) +BuildRequires: pkgconfig(libzstd) +BuildRequires: mbedtls-3-devel # For vshare tool BuildRequires: pkgconfig(x11) -# For VFLAGS="-d dynamic_boehm" -# Required by compiler at runtime Requires: pkgconfig(bdw-gc) -# For the net.mbedtls module -Requires: pkgconfig(mbedcrypto) -Requires: pkgconfig(mbedtls) -Requires: pkgconfig(mbedx509) +Requires: pkgconfig(libcjson) +Requires: pkgconfig(libzstd) +Requires: mbedtls-3-devel %description V is a statically typed compiled programming language inspired @@ -70,7 +73,12 @@ This package contains examples for the V Programming Language. %prep -%autosetup -n v-%{version} -p1 +%setup -q -n v-%{version} +%autopatch -p1 + +# Install markdown module for vdoc +mkdir -p vlib/markdown +tar -xf %{SOURCE2} --strip-components=1 -C vlib/markdown %build export CC=cc @@ -95,30 +103,22 @@ %endif # stage 0: build the V compiler from the transpiled C code -${CC} ${CFLAGS} ${LDFLAGS} ${STAGE0_FLAGS} -o %{name}-stage0 %{SOURCE1} +# Build intermediate stages without LTO to speed up bootstrapping +${CC} ${CFLAGS/-flto=auto/} ${LDFLAGS/-flto=auto/} ${STAGE0_FLAGS} -o %{name}-stage0 %{SOURCE1} # stage 1: build without parallelism ./%{name}-stage0 ${VFLAGS} ${STAGE1_FLAGS} -o %{name}-stage1 cmd/v # stage 2: build with parallelism and -prod ./%{name}-stage1 ${VFLAGS} ${STAGE2_FLAGS} -o %{name}-stage2 cmd/v -# stage 3: rebuild and check diff +# stage 3: rebuild with full flags (including LTO) ./%{name}-stage2 ${VFLAGS} ${STAGE2_FLAGS} -o %{name} cmd/v -diff --strip-trailing-cr -u %{name}-stage2 %{name} -if [ $? -eq 0 ]; then - echo "Stage 3 build differs from the final build, please check the output above." -fi - # Replace some tools with dummy scripts echo "println('\"%{name} up\" is disabled for the packaged versions of V')" > cmd/tools/vup.v echo "println('Use your package manager to update V')" >> cmd/tools/vup.v echo "println('\"%{name} self\" is disabled for the packaged versions of V')" > cmd/tools/vself.v echo "println('Use your package manager to update V')" >> cmd/tools/vself.v -# TODO: Skipping building vdoc until https://github.com/vlang/markdown is embedded in build -sed -i -e "/^const tools_in_subfolders/s/ 'vdoc',//" cmd/tools/vbuild-tools.v -rm -rf cmd/tools/vdoc - # Set to not-empty to skip build-time V module cloning with `git` export VTEST_SANDBOXED_PACKAGING='yes' @@ -131,7 +131,6 @@ ./%{name} doctor # Build V tools -./%{name} test-self ./%{name} -v build-tools # Do not attempt to rebuild after installation @@ -168,7 +167,7 @@ find . -type f -name '.gitignore' -print -delete # Replace hardcoded path to v in examples -sed -i -e '1s:%{_prefix}/local/bin/v:%{_bindir}/%{name}:' examples/v_script.vsh +sed -i -e '1s:%{_prefix}/local/bin/v:%{_bindir}/v:' examples/v_script.vsh # Copy files install -D -m 0755 %{name} %{buildroot}%{vexe} @@ -181,19 +180,19 @@ %{nil} # Run-time configuration wrapper -# TODO: Add a proper VTMP install -d %{buildroot}%{_bindir} -echo '#! %{_bindir}/sh +cat << 'EOF' > %{buildroot}%{_bindir}/%{name} +#!/bin/sh export VEXE="%{vexe}" export VCACHE="${HOME}/.cache/%{name}" -export VFLAGS="%{vflags}" +export VFLAGS="${VFLAGS:-%{vflags}}" -exec ${VEXE} $@ -' > %{buildroot}%{_bindir}/%{name} +exec "${VEXE}" "$@" +EOF chmod 755 %{buildroot}%{_bindir}/%{name} -# symlink /usr/bin/vlang to /usr/bin/v -ln -rs %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/v +# Create symlink v -> vlang +ln -s %{name} %{buildroot}%{_bindir}/v # Remove executable bits from examples find examples -type f -exec chmod 0644 {} \; @@ -218,7 +217,6 @@ %fdupes %{buildroot}%{_libexecdir}/%{name}/ %fdupes %{buildroot}%{_datadir}/doc/%{name}/examples - %files %license LICENSE %doc CHANGELOG.md README.md ++++++ 0001-Link-to-distro-provided-mbedtls.patch ++++++ --- /var/tmp/diff_new_pack.EeLWBr/_old 2026-07-12 17:10:06.535171950 +0200 +++ /var/tmp/diff_new_pack.EeLWBr/_new 2026-07-12 17:10:06.539172084 +0200 @@ -7,10 +7,10 @@ vlib/net/mbedtls/mbedtls.c.v | 125 +---------------------------------- 1 file changed, 2 insertions(+), 123 deletions(-) -diff --git a/vlib/net/mbedtls/mbedtls.c.v b/vlib/net/mbedtls/mbedtls.c.v -index d18689e8c..61fc82b9b 100644 ---- a/vlib/net/mbedtls/mbedtls.c.v -+++ b/vlib/net/mbedtls/mbedtls.c.v +Index: v-0.5.1/vlib/net/mbedtls/mbedtls.c.v +=================================================================== +--- v-0.5.1.orig/vlib/net/mbedtls/mbedtls.c.v ++++ v-0.5.1/vlib/net/mbedtls/mbedtls.c.v @@ -1,128 +1,7 @@ module mbedtls @@ -142,7 +142,4 @@ #include <mbedtls/net_sockets.h> #include <mbedtls/ssl.h> --- -2.52.0 - ++++++ 0002-Disable-vdoc-testing.patch ++++++ --- /var/tmp/diff_new_pack.EeLWBr/_old 2026-07-12 17:10:06.555172620 +0200 +++ /var/tmp/diff_new_pack.EeLWBr/_new 2026-07-12 17:10:06.559172754 +0200 @@ -7,11 +7,11 @@ cmd/tools/vtest-self.v | 1 - 1 file changed, 1 deletion(-) -diff --git a/cmd/tools/vtest-self.v b/cmd/tools/vtest-self.v -index 9b4d73fef..472534d5d 100644 ---- a/cmd/tools/vtest-self.v -+++ b/cmd/tools/vtest-self.v -@@ -25,7 +25,6 @@ const vroot = os.dir(os.real_path(os.getenv_opt('VEXE') or { @VEXE })) +Index: v-0.5.1/cmd/tools/vtest-self.v +=================================================================== +--- v-0.5.1.orig/cmd/tools/vtest-self.v ++++ v-0.5.1/cmd/tools/vtest-self.v +@@ -25,7 +25,6 @@ const vroot = os.dir(os.real_path(os.get const essential_list = [ 'cmd/tools/vvet/vet_test.v', @@ -19,7 +19,4 @@ 'vlib/arrays/arrays_test.v', 'vlib/bitfield/bitfield_test.v', // --- -2.52.0 - ++++++ 0003-Unbundle-cJSON-and-zstd.patch ++++++ Index: v-0.5.1/vlib/json/json_primitives.c.v =================================================================== --- v-0.5.1.orig/vlib/json/json_primitives.c.v +++ v-0.5.1/vlib/json/json_primitives.c.v @@ -3,8 +3,7 @@ // that can be found in the LICENSE file. module json -#flag -I @VEXEROOT/thirdparty/cJSON -#flag @VEXEROOT/thirdparty/cJSON/cJSON.o +#pkgconfig libcjson #include "cJSON.h" #define js_get(object, key) cJSON_GetObjectItemCaseSensitive((object), (key)) Index: v-0.5.1/vlib/json/cjson/cjson_wrapper.c.v =================================================================== --- v-0.5.1.orig/vlib/json/cjson/cjson_wrapper.c.v +++ v-0.5.1/vlib/json/cjson/cjson_wrapper.c.v @@ -8,8 +8,7 @@ module cjson // that has NULL leaves for example, which is currently not convenient/easy to do with just the // high level `json.encode(value)` API that V has. -#flag -I @VEXEROOT/thirdparty/cJSON -#flag @VEXEROOT/thirdparty/cJSON/cJSON.o +#pkgconfig libcjson #include "cJSON.h" // As cJSON use `libm`, we need to link it. Index: v-0.5.1/vlib/compress/zstd/zstd.c.v =================================================================== --- v-0.5.1.orig/vlib/compress/zstd/zstd.c.v +++ v-0.5.1/vlib/compress/zstd/zstd.c.v @@ -5,8 +5,8 @@ module zstd import os import encoding.binary -#flag -I @VMODROOT/thirdparty/zstd -#include "zstd.c" // msvc can't compile multiple source files, so included +#pkgconfig libzstd +#include <zstd.h> const frame_header_size_max = 18 const content_size_unknown = u64(-1) ++++++ 0004-Fix-cJSON_GetErrorPos-undefined-reference.patch ++++++ From: Eyad Issa <[email protected]> Date: Sat, 30 May 2026 10:00:00 +0200 Subject: [PATCH] Fix undefined reference to cJSON_GetErrorPos The system-provided libcjson on openSUSE (v1.7.19) does not export cJSON_GetErrorPos, which causes a linker error when unbundling cJSON. This patch replaces the call to cJSON_GetErrorPos() with manual pointer arithmetic: (error_ptr - (const char*)root). This is functionally equivalent as error_ptr points into the root string. --- vlib/v/gen/c/json.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: v-0.5.1/vlib/v/gen/c/json.v =================================================================== --- v-0.5.1.orig/vlib/v/gen/c/json.v +++ v-0.5.1/vlib/v/gen/c/json.v @@ -87,7 +87,7 @@ ${dec_fn_dec} { if (!root) { const char *error_ptr = cJSON_GetErrorPtr(); if (error_ptr != NULL) { - const ${ast.int_type_name} error_pos = (${ast.int_type_name})cJSON_GetErrorPos(); + const ${ast.int_type_name} error_pos = (${ast.int_type_name})(error_ptr - (const char*)root); ${ast.int_type_name} maxcontext_chars = 30; byte *buf = builtin__vcalloc_noscan(maxcontext_chars + 10); if (error_pos > 0) { ++++++ 0005-Force-system-libgc-on-Linux.patch ++++++ From: Eyad Issa <[email protected]> Date: Sat, 30 May 2026 11:00:00 +0200 Subject: [PATCH] Force system libgc on Linux V normally expects a static libgc.a inside thirdparty/tcc/lib/ when compiling on Linux without the dynamic_boehm flag. In a distro package, we don't want to use bundled static libraries. This patch replaces the hardcoded path to the bundled libgc.a with a generic -lgc flag, allowing the linker to find the system-provided shared library. --- vlib/builtin/builtin_d_gcboehm.c.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: v-0.5.1/vlib/builtin/builtin_d_gcboehm.c.v =================================================================== --- v-0.5.1.orig/vlib/builtin/builtin_d_gcboehm.c.v +++ v-0.5.1/vlib/builtin/builtin_d_gcboehm.c.v @@ -61,7 +61,7 @@ $if dynamic_boehm ? { #flag -Xlinker -rpath -Xlinker "@VEXEROOT/thirdparty/tcc/lib" } } $else { - #flag @VEXEROOT/thirdparty/tcc/lib/libgc.a + #flag -lgc } } } @@ -107,7 +107,7 @@ $if dynamic_boehm ? { #flag -DGC_BUILTIN_ATOMIC=1 #flag -I @VEXEROOT/thirdparty/libgc/include $if !use_bundled_libgc ? { - #flag @VEXEROOT/thirdparty/tcc/lib/libgc.a + #flag -lgc } } $else $if msvc { // Build libatomic_ops ++++++ v.c ++++++ ++++ 50772 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/vlang/v.c ++++ and /work/SRC/openSUSE:Factory/.vlang.new.1991/v.c ++++++ vlang-0.5.tar.gz -> vlang-0.5.1.tar.gz ++++++ /work/SRC/openSUSE:Factory/vlang/vlang-0.5.tar.gz /work/SRC/openSUSE:Factory/.vlang.new.1991/vlang-0.5.1.tar.gz differ: char 15, line 1
