Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] Disallow variables in version back
@ 2021-06-17 19:21 Chocimier
  2021-06-17 19:27 ` ericonr
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Chocimier @ 2021-06-17 19:21 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 349 bytes --]

There is a new pull request by Chocimier against master on the void-packages repository

https://github.com/Chocimier/void-packages-org variables-in-version
https://github.com/void-linux/void-packages/pull/31546

Disallow variables in version back
[ci-skip]

A patch file from https://github.com/void-linux/void-packages/pull/31546.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-variables-in-version-31546.patch --]
[-- Type: text/x-diff, Size: 24518 bytes --]

From a047d47c4e450715361665726eaab51e0955eb3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 1/2] Manual.md: disallow variables in version back

---
 Manual.md | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Manual.md b/Manual.md
index 238db04f04b3..2f10422e3a09 100644
--- a/Manual.md
+++ b/Manual.md
@@ -462,9 +462,7 @@ the generated `binary packages` have been modified.
 - `short_desc` A string with a brief description for this package. Max 72 chars.
 
 - `version` A string with the package version. Must not contain dashes or underscore
-and at least one digit is required. Using bash's pattern substitution and prefix and
-suffix matching isn't supported, since this field needs to be parsed by
-`xbps-checkvers(1)`. Using variables in this field should be avoided.
+and at least one digit is required. Shell's variable substition usage is not allowed.
 
 Neither `pkgname` or `version` should contain special characters which make it
 necessary to quote them, so they shouldn't be quoted in the template.

From 59aa844ada995708987bc198eb703a80adefe740 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 2/2] srcpkgs: remove variables from version

---
 srcpkgs/EmptyEpsilon/template             |  9 +++++----
 srcpkgs/cross-x86_64-w64-mingw32/template |  9 ++++-----
 srcpkgs/dmraid/template                   |  9 ++++-----
 srcpkgs/ftgl/template                     |  6 +++---
 srcpkgs/gcc-multilib/template             |  4 ++--
 srcpkgs/gcc/template                      | 18 +++++++++---------
 srcpkgs/gcc6/template                     |  6 +++---
 srcpkgs/google-chrome/template            |  9 ++++-----
 srcpkgs/hfsprogs/template                 |  4 +---
 srcpkgs/j/template                        | 10 +++++-----
 srcpkgs/libax25/template                  |  6 ++----
 srcpkgs/libedit/template                  |  9 ++++-----
 srcpkgs/libpurple-facebook/template       | 16 +++++++---------
 srcpkgs/libreadline8/template             |  6 +++---
 srcpkgs/libtcd/template                   |  7 +++----
 srcpkgs/lynx/template                     |  9 ++++-----
 srcpkgs/man-pages-posix/template          |  7 +++----
 srcpkgs/mcwm/template                     |  8 +++-----
 srcpkgs/openjdk10-bootstrap/template      |  5 ++---
 srcpkgs/openjdk11/template                | 11 ++++-------
 srcpkgs/openjdk7-bootstrap/template       |  5 +----
 srcpkgs/openjdk8/template                 | 12 ++++++------
 srcpkgs/openjdk9-bootstrap/template       |  5 ++---
 srcpkgs/pcc/template                      |  6 +++---
 srcpkgs/python3-apsw/template             |  8 +++-----
 srcpkgs/simutron/template                 |  6 ++----
 srcpkgs/tcc/template                      |  4 +---
 srcpkgs/x264/template                     |  8 +++-----
 28 files changed, 96 insertions(+), 126 deletions(-)

diff --git a/srcpkgs/EmptyEpsilon/template b/srcpkgs/EmptyEpsilon/template
index f191433eec50..3dd6c25a0a26 100644
--- a/srcpkgs/EmptyEpsilon/template
+++ b/srcpkgs/EmptyEpsilon/template
@@ -1,10 +1,11 @@
 # Template file for 'EmptyEpsilon'
 pkgname=EmptyEpsilon
-_ver_major=2021
-_ver_minor=03
-_ver_patch=31
-version="${_ver_major}.${_ver_minor}.${_ver_patch}"
+version=2021.03.31
 revision=1
+_ver_major="${version%%.*}"
+_ver_minor="${version%.*}"
+_ver_minor="${_ver_minor#*.}"
+_ver_patch="${version##*.}"
 wrksrc="EmptyEpsilon-EE-${version}"
 build_style=cmake
 configure_args="-DSERIOUS_PROTON_DIR=$XBPS_BUILDDIR/SeriousProton-EE-${version}
diff --git a/srcpkgs/cross-x86_64-w64-mingw32/template b/srcpkgs/cross-x86_64-w64-mingw32/template
index 3db21abb692f..bf128b41aad3 100644
--- a/srcpkgs/cross-x86_64-w64-mingw32/template
+++ b/srcpkgs/cross-x86_64-w64-mingw32/template
@@ -1,15 +1,14 @@
 # Template file for 'cross-x86_64-w64-mingw32'
+pkgname=cross-x86_64-w64-mingw32
+version=8.0.0
+revision=1
 _gcc_version=10.2.0
 _binutils_version=2.34
 _gmp_version=6.2.0
 _mpfr_version=4.1.0
 _mpc_version=1.1.0
 _isl_version=0.21
-_mingw_version=8.0.0
-
-pkgname=cross-x86_64-w64-mingw32
-version=$_mingw_version
-revision=1
+_mingw_version="${version}"
 create_wrksrc=yes
 hostmakedepends="tar flex perl texinfo"
 makedepends="zlib-devel"
diff --git a/srcpkgs/dmraid/template b/srcpkgs/dmraid/template
index 420749bc8aa6..35acc9ec1799 100644
--- a/srcpkgs/dmraid/template
+++ b/srcpkgs/dmraid/template
@@ -1,11 +1,10 @@
 # Template file for 'dmraid'
 pkgname=dmraid
-_distver=1.0.0.rc16
-_patchver=3
-version="${_distver}.${_patchver}"
+version=1.0.0.rc16.3
 revision=12
+_distver="${version%.*}-${version##*.}"
 wrksrc="${pkgname}"
-build_wrksrc="${_distver}-${_patchver}/${pkgname}"
+build_wrksrc="${_distver}/${pkgname}"
 build_style=gnu-configure
 configure_args="--enable-led --enable-intel_led --enable-shared_lib"
 makedepends="device-mapper-devel"
@@ -13,7 +12,7 @@ short_desc="Device mapper RAID interface"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="http://people.redhat.com/~heinzm/sw/dmraid/"
-distfiles="${homepage}/src/dmraid-${_distver}-${_patchver}.tar.bz2"
+distfiles="${homepage}/src/dmraid-${_distver}.tar.bz2"
 checksum=93421bd169d71ff5e7d2db95b62b030bfa205a12010b6468dcdef80337d6fbd8
 disable_parallel_build=yes
 lib32disabled=yes
diff --git a/srcpkgs/ftgl/template b/srcpkgs/ftgl/template
index fce960b76575..b26a0d8c1a60 100644
--- a/srcpkgs/ftgl/template
+++ b/srcpkgs/ftgl/template
@@ -1,9 +1,9 @@
 # Template file for 'ftgl'
 pkgname=ftgl
-_distver=2.1.3
-_distrcver=rc5
-version="${_distver}${_distrcver}"
+version=2.1.3rc5
 revision=8
+_distver="${version%rc*}"
+_distrcver="rc${version#*rc}"
 wrksrc="ftgl-${_distver}~${_distrcver}"
 build_style=gnu-configure
 configure_args="--disable-static FT2_CONFIG=${XBPS_CROSS_BASE}/usr/bin/freetype-config"
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index 07ceeccc93d4..fcd25755aa75 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc-multilib'
 archs="x86_64"
 _triplet="x86_64-unknown-linux-gnu"
-_majorver=10.2
 
 pkgname=gcc-multilib
-version=${_majorver}.1pre1
+version=10.2.1pre1
 revision=1
+_majorver="${version%.*}"
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection (multilib files)"
 maintainer="Orphaned <orphan@voidlinux.org>"
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ba7084934857..7a4f463b111f 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -1,21 +1,21 @@
 # Template file for 'gcc'
 # Revbump libtool when updating gcc, since it hardcodes some internal compiler paths
 # which use the version number.
-_majorver=10
-_minorver=${_majorver}.2
-_patchver=${_minorver}.1
-_gmp_version=6.2.0
-_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
 
 pkgname=gcc
 # we are using a 10-stable git snapshot alpine is using in order
 # to get regression fixes not yet incorporate into a stable release
 # it should be possible to switch back to stable with 10.3 or 11
-version=${_patchver}pre1
-wrksrc=gcc-${version/pre/_pre}
+version=10.2.1pre1
 revision=3
+_patchver="${version%pre*}"
+_minorver="${_patchver%.*}"
+_majorver="${_minorver%.*}"
+_gmp_version=6.2.0
+_mpfr_version=4.1.0
+_mpc_version=1.1.0
+_isl_version=0.21
+wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 homepage="http://gcc.gnu.org"
diff --git a/srcpkgs/gcc6/template b/srcpkgs/gcc6/template
index 352ae9bbff52..cc34fae52a8e 100644
--- a/srcpkgs/gcc6/template
+++ b/srcpkgs/gcc6/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc6'
-_majorver=6
-_minorver=${_majorver}.5
 # old isl is necessary
 _isl_version=0.16
 pkgname=gcc6
-version=${_minorver}.0
+version=6.5.0
 revision=1
+_majorver="${version%%.*}"
+_minorver="${version%.*}"
 wrksrc=gcc-${version}
 hostmakedepends="automake libtool perl flex texinfo zip unzip"
 makedepends="gmp-devel mpfr-devel libmpc-devel zlib-devel"
diff --git a/srcpkgs/google-chrome/template b/srcpkgs/google-chrome/template
index 2e6d4ccb43cd..3d736e047d9e 100644
--- a/srcpkgs/google-chrome/template
+++ b/srcpkgs/google-chrome/template
@@ -1,11 +1,10 @@
 # Template file for 'google-chrome'
-_chromeVersion=91.0.4472.106
-_chromeRevision=1
-_channel=stable
-
 pkgname=google-chrome
-version="${_chromeVersion}.${_chromeRevision}"
+version=91.0.4472.106.1
 revision=1
+_chromeVersion="${version%.*}"
+_chromeRevision="${version##*.}"
+_channel=stable
 maintainer="Michael Aldridge <maldridge@voidlinux.org>"
 homepage="https://www.google.com/chrome/"
 license="custom:chrome"
diff --git a/srcpkgs/hfsprogs/template b/srcpkgs/hfsprogs/template
index f1e0c690511d..050b442ec9fc 100644
--- a/srcpkgs/hfsprogs/template
+++ b/srcpkgs/hfsprogs/template
@@ -1,9 +1,7 @@
 # Template file for 'hfsprogs'
 pkgname=hfsprogs
-_distver=540.1
-_patchver=3
 _md5sum=0435afc389b919027b69616ad1b05709
-version="${_distver}.linux${_patchver}"
+version=540.1.linux3
 revision=8
 wrksrc="diskdev_cmds-${version}"
 hostmakedepends="clang"
diff --git a/srcpkgs/j/template b/srcpkgs/j/template
index c9b0c669497c..b6ce41a36077 100644
--- a/srcpkgs/j/template
+++ b/srcpkgs/j/template
@@ -1,10 +1,10 @@
 # Template file for 'j'
 pkgname=j
-_vmaj=901
-_vmin=f
-_vrel=${_vmaj}-release${_vmin:+-}${_vmin}
-version=${_vmaj}.${_vmin}
+version=901.f
 revision=1
+_vmaj="${version%.*}"
+_vmin="${version#${_vmaj}}"
+_vrel=${_vmaj}-release${_vmin:+-}${_vmin#.}
 archs="aarch64* armv[67]* i686* x86_64*"
 wrksrc="jsource-j${_vrel}"
 makedepends="libedit-devel libgomp-devel"
@@ -35,7 +35,7 @@ esac
 
 do_configure() {
 	cp jsrc/jversion-x.h jsrc/jversion.h
-	vsed -i "/jversion/s@${_vmaj}@&-${_vmin}@;
+	vsed -i "/jversion/s@${_vmaj}@&-${_vmin#.}@;
 	         /jplatform/s@unknown@${_jpl}@;
 	         /jtype/s@beta@${_jtype}@;
 	         /jbuilder/s@unknown@${_jbuilder}@" \
diff --git a/srcpkgs/libax25/template b/srcpkgs/libax25/template
index e4de77e6b59a..280cbeebf717 100644
--- a/srcpkgs/libax25/template
+++ b/srcpkgs/libax25/template
@@ -1,10 +1,8 @@
 # Template file for 'libax25'
 pkgname=libax25
-_distver=0.0.12
-_patchver=rc4
-version="${_distver}${_patchver}"
+version=0.0.12rc4
 revision=1
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="libax25-${version/rc/-rc}"
 build_style=gnu-configure
 makedepends="zlib-devel"
 short_desc="A set of functions making it easier to write hamradio programs"
diff --git a/srcpkgs/libedit/template b/srcpkgs/libedit/template
index 9627018583c3..6e2b7f1abc01 100644
--- a/srcpkgs/libedit/template
+++ b/srcpkgs/libedit/template
@@ -1,17 +1,16 @@
 # Template file for 'libedit'
 pkgname=libedit
-_datever=20210522
-_distver=3.1
-version="${_datever}.${_distver}"
+version=20210522.3.1
 revision=1
-wrksrc="${pkgname}-${_datever}-${_distver}"
+_distver="${version%%.*}-${version#*.}"
+wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 makedepends="ncurses-devel"
 short_desc="Port of the NetBSD Command Line Editor Library"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="http://www.thrysoee.dk/editline/"
-distfiles="http://www.thrysoee.dk/editline/libedit-${_datever}-${_distver}.tar.gz"
+distfiles="http://www.thrysoee.dk/editline/libedit-${_distver}.tar.gz"
 checksum=0220bc2047e927c0c1984ef5f7b4eb2a9469a5b7bf12ba573ca3b23ca02bbb6f
 
 post_install() {
diff --git a/srcpkgs/libpurple-facebook/template b/srcpkgs/libpurple-facebook/template
index f9049cc9a7d9..53e705e40861 100644
--- a/srcpkgs/libpurple-facebook/template
+++ b/srcpkgs/libpurple-facebook/template
@@ -1,18 +1,16 @@
 # Template file for 'libpurple-facebook'
-
-pkgname="libpurple-facebook"
-_version="0.9.5"
-_rev="9ff9acf9fa14"
+pkgname=libpurple-facebook
 reverts="20160409.66ee77378d82_1 20160125.92885e0456ed_1"
-version=${_version}.${_rev}
+version=0.9.5.9ff9acf9fa14
 revision=1
+_distver="${version%.*}-${version##*.}"
+wrksrc="purple-facebook-${_distver}"
 build_style=gnu-configure
-wrksrc=purple-facebook-${_version}-${_rev}
 hostmakedepends="pkg-config"
 makedepends="libpurple-devel json-glib-devel"
-short_desc="A Facebook plugin for libpurple"
+short_desc="Facebook plugin for libpurple"
 maintainer="John Regan <john@jrjrtech.com>"
-license="GPL-2"
+license="GPL-2.0-or-later"
 homepage="https://github.com/dequis/purple-facebook"
-distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_version}-${_rev}/purple-facebook-${_version}-${_rev}.tar.gz"
+distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_distver}/purple-facebook-${_distver}.tar.gz"
 checksum=7ab652dd0430166465f820e6e72bf6fffe09db936b535c212e571ec1742146dc
diff --git a/srcpkgs/libreadline8/template b/srcpkgs/libreadline8/template
index dbac03c6764b..66e7c5112e4d 100644
--- a/srcpkgs/libreadline8/template
+++ b/srcpkgs/libreadline8/template
@@ -1,9 +1,9 @@
 # Template file for 'libreadline8'
 pkgname=libreadline8
-_dist_ver=8.1
-_patch_ver=000
-version="${_dist_ver}.${_patch_ver}"
+version=8.1.000
 revision=1
+_dist_ver="${version%.*}"
+_patch_ver="${version##*.}"
 bootstrap=yes
 wrksrc="readline-${_dist_ver}"
 build_style=gnu-configure
diff --git a/srcpkgs/libtcd/template b/srcpkgs/libtcd/template
index 914365cce963..b4ce4fc4debc 100644
--- a/srcpkgs/libtcd/template
+++ b/srcpkgs/libtcd/template
@@ -1,10 +1,9 @@
 # Template file for 'libtcd'
-_distver=2.2.7
-_distrev=r2
-
 pkgname=libtcd
-version=${_distver}.${_distrev}
+version=2.2.7.r2
 revision=1
+_distver="${version%.*}"
+_distrev="${version##*.}"
 wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 short_desc="API for reading and writing Tide Constituent Database (TCD) files"
diff --git a/srcpkgs/lynx/template b/srcpkgs/lynx/template
index 73d88a394982..84244374086e 100644
--- a/srcpkgs/lynx/template
+++ b/srcpkgs/lynx/template
@@ -1,10 +1,9 @@
 # Template file for 'lynx'
 pkgname=lynx
-_distver=2.8.9
-_patchver=1
-version="${_distver}.${_patchver}"
+version=2.8.9.1
 revision=5
-wrksrc="lynx${_distver}rel.${_patchver}"
+_distver="${version%.*}rel.${version##*.}"
+wrksrc="lynx${_distver}"
 build_style=gnu-configure
 configure_args="--enable-widec --with-zlib --with-bzlib --with-ssl --enable-ipv6"
 makedepends="zlib-devel bzip2-devel ncurses-devel openssl-devel"
@@ -12,7 +11,7 @@ short_desc="A text browser for the World Wide Web"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://lynx.invisible-island.net/"
-distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}rel.${_patchver}.tar.gz"
+distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}.tar.gz"
 checksum=a46e4167b8f02c066d2fe2eafcc5603367be0e3fe2e59e9fc4eb016f306afc8e
 
 pre_configure() {
diff --git a/srcpkgs/man-pages-posix/template b/srcpkgs/man-pages-posix/template
index 58deb2f360e7..78caadd748bf 100644
--- a/srcpkgs/man-pages-posix/template
+++ b/srcpkgs/man-pages-posix/template
@@ -1,15 +1,14 @@
 # Template file for 'man-pages-posix'
 pkgname=man-pages-posix
-_distver=2017
-_revver=a
-version="${_distver}${_revver}"
+version=2017a
 revision=5
+_distver="${version%?}"
 wrksrc="${pkgname}-${_distver}"
 short_desc="Manual pages about POSIX systems"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:POSIX-COPYRIGHT"
 homepage="https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/"
-distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${_revver}.tar.xz"
+distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${version#${_distver}}.tar.xz"
 checksum=ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3
 
 do_install() {
diff --git a/srcpkgs/mcwm/template b/srcpkgs/mcwm/template
index 293b50da0b98..8d475929865d 100644
--- a/srcpkgs/mcwm/template
+++ b/srcpkgs/mcwm/template
@@ -1,17 +1,15 @@
 # Template file for 'mcwm'
 pkgname=mcwm
-_distver=20130209
-_patchver=2
-version="${_distver}.${_patchver}"
+version=20130209.2
 revision=7
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="${pkgname}-${version//./-}"
 build_style=gnu-makefile
 makedepends="libxcb-devel xcb-proto xcb-util-devel xcb-util-keysyms-devel xcb-util-wm-devel"
 short_desc="A minimalist stacking X window manager based on XCB"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="ISC"
 homepage="http://hack.org/mc/projects/mcwm/"
-distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${_distver}-${_patchver}.tar.bz2"
+distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${version//./-}.tar.bz2"
 checksum=2d2f9ced77bc6f90cb9fbdbf790eed97f3be28caefb0de496ac28813aed606be
 conflicts="2bwm>=0"
 
diff --git a/srcpkgs/openjdk10-bootstrap/template b/srcpkgs/openjdk10-bootstrap/template
index 9695f1f1f431..374e25f0ef38 100644
--- a/srcpkgs/openjdk10-bootstrap/template
+++ b/srcpkgs/openjdk10-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk10-bootstrap'
-_jdk_build=13
 _final_jdk_home="usr/lib/jvm/java-10-openjdk"
 pkgname=openjdk10-bootstrap
-version="10.0.2p${_jdk_build}"
+version=10.0.2p13
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk10u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-9-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5cbf8da5d13..87b309bfa014 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,12 +1,9 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
-_java_ver=11
-_java_min_ver=0
-_java_sec_ver=12
-_jdk_update=5
-_openjdk_version="openjdk-${_java_ver}"
-version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}+${_jdk_update}"
+version=11.0.12+5
 revision=1
+_java_ver="${version%%.*}"
+_openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
 build_style=gnu-configure
 configure_args="
@@ -22,7 +19,7 @@ configure_args="
  --with-native-debug-symbols=none
  --with-version-pre=
  --with-version-opt="void-r$revision"
- --with-version-build=${_jdk_update}
+ --with-version-build=${version#*+}
  --with-vendor-name="Void"
  --with-vendor-url="https://voidlinux.org/"
  --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
diff --git a/srcpkgs/openjdk7-bootstrap/template b/srcpkgs/openjdk7-bootstrap/template
index f273380c0ebb..1853081a2394 100644
--- a/srcpkgs/openjdk7-bootstrap/template
+++ b/srcpkgs/openjdk7-bootstrap/template
@@ -3,12 +3,9 @@
 pkgname=openjdk7-bootstrap
 # 2.6.19 fails to build: https://github.com/alpinelinux/aports/pull/9813
 _icedtea_ver=2.6.18
-_java_ver=7
-_jdk_update=221
-_jdk_build=02
 _bootstrap_jdk_home="/usr/lib/jvm/java-1.5-gcj"
 _final_jdk_home="/usr/lib/jvm/java-1.7-openjdk"
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=7u221b02
 revision=3
 wrksrc=icedtea-${_icedtea_ver}
 build_style=gnu-configure
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 478986b3ca6b..227d8b79cdf0 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -2,14 +2,14 @@
 # TODO: better places for bin and man?
 # TODO: make -headless versions
 # TODO: config files?
-_java_ver=8
-_jdk_update=272
-_jdk_build=02
-_main_ver=${_java_ver}u${_jdk_update}
-_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 pkgname=openjdk8
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=8u272b02
 revision=1
+_jdk_update=272
+_jdk_update="${version#*u}"
+_jdk_update="${_jdk_update%b*}"
+_jdk_build="${version#*b}"
+_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 # we're using aarch64 port repo to get aarch64 JIT; the repo is
 # otherwise the same as the normal one, just with aarch64 port added
 _repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index 7fc5dc69376f..6c585c3c305e 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk9-bootstrap'
-_jdk_build=12
 _final_jdk_home="usr/lib/jvm/java-9-openjdk"
 pkgname=openjdk9-bootstrap
-version="9.0.4p${_jdk_build}"
+version=9.0.4p12
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk9u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/pcc/template b/srcpkgs/pcc/template
index 84b020278d6d..8d6b4748b8d5 100644
--- a/srcpkgs/pcc/template
+++ b/srcpkgs/pcc/template
@@ -1,9 +1,9 @@
 # Template file for 'pcc'
 pkgname=pcc
-_snapshot=20190420
-_distver=1.1.0
-version=${_distver}.${_snapshot}
+version=1.1.0.20190420
 revision=3
+_distver="${version%.*}"
+_snapshot="${version##*.}"
 archs="i686* x86_64*"
 create_wrksrc=yes
 configure_args="--enable-tls --enable-native"
diff --git a/srcpkgs/python3-apsw/template b/srcpkgs/python3-apsw/template
index 61e77aff002a..f646420cde57 100644
--- a/srcpkgs/python3-apsw/template
+++ b/srcpkgs/python3-apsw/template
@@ -1,10 +1,8 @@
 # Template file for 'python3-apsw'
 pkgname=python3-apsw
-_distver=3.32.2
-_patchver=r1
-version=${_distver}${_patchver}
+version=3.32.2r1
 revision=3
-wrksrc="apsw-${_distver}-${_patchver}"
+wrksrc="apsw-${version/r/-r}"
 build_style=python3-module
 hostmakedepends="python3-devel"
 makedepends="python3-devel sqlite-devel"
@@ -13,7 +11,7 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="Zlib"
 homepage="https://github.com/rogerbinns/apsw"
 changelog="https://raw.githubusercontent.com/rogerbinns/apsw/master/doc/changes.rst"
-distfiles="${homepage}/archive/${_distver}-${_patchver}.tar.gz"
+distfiles="${homepage}/archive/${version/r/-r}.tar.gz"
 checksum=33f3ccfd8a7537dccef2caeb8cc06e26f300f1cf547c22c4e8ec8dcfecb72aa0
 
 pre_check() {
diff --git a/srcpkgs/simutron/template b/srcpkgs/simutron/template
index cdcf68c2a435..ce812edb2fc6 100644
--- a/srcpkgs/simutron/template
+++ b/srcpkgs/simutron/template
@@ -1,8 +1,6 @@
 # Template file for 'simutron'
 pkgname=simutron
-_version=1.0.1
-_rev=SR2
-version=1.0.1.${_rev}
+version=1.0.1.SR2
 revision=1
 build_wrksrc=build
 build_style=qmake
@@ -15,7 +13,7 @@ homepage="https://sourceforge.net/projects/simutron/"
 nostrip_files="LCD20x4Test.elf"
 
 do_fetch() {
-	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${_version}-${_rev}" "$wrksrc"
+	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${version/.SR/-SR}" "$wrksrc"
 }
 
 post_extract() {
diff --git a/srcpkgs/tcc/template b/srcpkgs/tcc/template
index 5d2da178af70..dcd31dabb677 100644
--- a/srcpkgs/tcc/template
+++ b/srcpkgs/tcc/template
@@ -1,8 +1,6 @@
 # Template file for 'tcc'
 pkgname=tcc
-_distver=0.9.27
-_voidver=20191027.1
-version=${_distver}.${_voidver}
+version=0.9.27.20191027.1
 revision=1
 _gitrev=a4997bf3d952f904bce824ee3e8f3e12e8524071
 wrksrc=tinycc-${_gitrev:0:7}
diff --git a/srcpkgs/x264/template b/srcpkgs/x264/template
index 739e5fa27d56..1ed803645ba6 100644
--- a/srcpkgs/x264/template
+++ b/srcpkgs/x264/template
@@ -1,10 +1,8 @@
 # Template file for 'x264'
 pkgname=x264
-_snap_date=20191217
-_snap_rev=2245
-version="${_snap_date}.${_snap_rev}"
+version=20191217.2245
 revision=1
-wrksrc="x264-snapshot-${_snap_date}-${_snap_rev}-stable"
+wrksrc="x264-snapshot-${version//./-}-stable"
 build_style=gnu-configure
 configure_args="--enable-static --enable-shared"
 hostmakedepends="nasm perl"
@@ -12,7 +10,7 @@ short_desc="Free library for encoding H264/AVC video streams"
 maintainer="DirectorX <void.directorx@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://www.videolan.org/developers/x264.html"
-distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${_snap_date}-${_snap_rev}-stable.tar.bz2"
+distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${version//./-}-stable.tar.bz2"
 checksum=b2495c8f2930167d470994b1ce02b0f4bfb24b3317ba36ba7f112e9809264160
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
@ 2021-06-17 19:27 ` ericonr
  2021-06-17 19:52 ` [PR PATCH] [Updated] " Chocimier
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ericonr @ 2021-06-17 19:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 314 bytes --]

New comment by ericonr on void-packages repository

https://github.com/void-linux/void-packages/pull/31546#issuecomment-863505906

Comment:
Can you explain the motivation in the commit message? Since our tooling already supports such variables, I think it's important to justify why we are not using them anymore.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Updated] Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
  2021-06-17 19:27 ` ericonr
@ 2021-06-17 19:52 ` Chocimier
  2021-06-17 19:53 ` Chocimier
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-17 19:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 354 bytes --]

There is an updated pull request by Chocimier against master on the void-packages repository

https://github.com/Chocimier/void-packages-org variables-in-version
https://github.com/void-linux/void-packages/pull/31546

Disallow variables in version back
[ci-skip]

A patch file from https://github.com/void-linux/void-packages/pull/31546.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-variables-in-version-31546.patch --]
[-- Type: text/x-diff, Size: 24674 bytes --]

From 81a81b9984f482041be50df0652f604494c5c98b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 1/2] Manual.md: disallow variables in version back

- xbps-checkvers substitute whole parameters ignoring #, %, :N
varieties, that's captious
- templates can be updated mechanically with scripts like xupdate
---
 Manual.md | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Manual.md b/Manual.md
index 238db04f04b3..2f10422e3a09 100644
--- a/Manual.md
+++ b/Manual.md
@@ -462,9 +462,7 @@ the generated `binary packages` have been modified.
 - `short_desc` A string with a brief description for this package. Max 72 chars.
 
 - `version` A string with the package version. Must not contain dashes or underscore
-and at least one digit is required. Using bash's pattern substitution and prefix and
-suffix matching isn't supported, since this field needs to be parsed by
-`xbps-checkvers(1)`. Using variables in this field should be avoided.
+and at least one digit is required. Shell's variable substition usage is not allowed.
 
 Neither `pkgname` or `version` should contain special characters which make it
 necessary to quote them, so they shouldn't be quoted in the template.

From 3878919cbaafa90d8bf376b63d82e49df24d93b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 2/2] srcpkgs: remove variables from version

---
 srcpkgs/EmptyEpsilon/template             |  9 +++++----
 srcpkgs/cross-x86_64-w64-mingw32/template |  9 ++++-----
 srcpkgs/dmraid/template                   |  9 ++++-----
 srcpkgs/ftgl/template                     |  6 +++---
 srcpkgs/gcc-multilib/template             |  4 ++--
 srcpkgs/gcc/template                      | 18 +++++++++---------
 srcpkgs/gcc6/template                     |  6 +++---
 srcpkgs/google-chrome/template            |  9 ++++-----
 srcpkgs/hfsprogs/template                 |  4 +---
 srcpkgs/j/template                        | 10 +++++-----
 srcpkgs/libax25/template                  |  6 ++----
 srcpkgs/libedit/template                  |  9 ++++-----
 srcpkgs/libpurple-facebook/template       | 16 +++++++---------
 srcpkgs/libreadline8/template             |  6 +++---
 srcpkgs/libtcd/template                   |  7 +++----
 srcpkgs/lynx/template                     |  9 ++++-----
 srcpkgs/man-pages-posix/template          |  7 +++----
 srcpkgs/mcwm/template                     |  8 +++-----
 srcpkgs/openjdk10-bootstrap/template      |  5 ++---
 srcpkgs/openjdk11/template                | 11 ++++-------
 srcpkgs/openjdk7-bootstrap/template       |  5 +----
 srcpkgs/openjdk8/template                 | 12 ++++++------
 srcpkgs/openjdk9-bootstrap/template       |  5 ++---
 srcpkgs/pcc/template                      |  6 +++---
 srcpkgs/python3-apsw/template             |  8 +++-----
 srcpkgs/simutron/template                 |  6 ++----
 srcpkgs/tcc/template                      |  4 +---
 srcpkgs/x264/template                     |  8 +++-----
 28 files changed, 96 insertions(+), 126 deletions(-)

diff --git a/srcpkgs/EmptyEpsilon/template b/srcpkgs/EmptyEpsilon/template
index f191433eec50..3dd6c25a0a26 100644
--- a/srcpkgs/EmptyEpsilon/template
+++ b/srcpkgs/EmptyEpsilon/template
@@ -1,10 +1,11 @@
 # Template file for 'EmptyEpsilon'
 pkgname=EmptyEpsilon
-_ver_major=2021
-_ver_minor=03
-_ver_patch=31
-version="${_ver_major}.${_ver_minor}.${_ver_patch}"
+version=2021.03.31
 revision=1
+_ver_major="${version%%.*}"
+_ver_minor="${version%.*}"
+_ver_minor="${_ver_minor#*.}"
+_ver_patch="${version##*.}"
 wrksrc="EmptyEpsilon-EE-${version}"
 build_style=cmake
 configure_args="-DSERIOUS_PROTON_DIR=$XBPS_BUILDDIR/SeriousProton-EE-${version}
diff --git a/srcpkgs/cross-x86_64-w64-mingw32/template b/srcpkgs/cross-x86_64-w64-mingw32/template
index 3db21abb692f..bf128b41aad3 100644
--- a/srcpkgs/cross-x86_64-w64-mingw32/template
+++ b/srcpkgs/cross-x86_64-w64-mingw32/template
@@ -1,15 +1,14 @@
 # Template file for 'cross-x86_64-w64-mingw32'
+pkgname=cross-x86_64-w64-mingw32
+version=8.0.0
+revision=1
 _gcc_version=10.2.0
 _binutils_version=2.34
 _gmp_version=6.2.0
 _mpfr_version=4.1.0
 _mpc_version=1.1.0
 _isl_version=0.21
-_mingw_version=8.0.0
-
-pkgname=cross-x86_64-w64-mingw32
-version=$_mingw_version
-revision=1
+_mingw_version="${version}"
 create_wrksrc=yes
 hostmakedepends="tar flex perl texinfo"
 makedepends="zlib-devel"
diff --git a/srcpkgs/dmraid/template b/srcpkgs/dmraid/template
index 420749bc8aa6..35acc9ec1799 100644
--- a/srcpkgs/dmraid/template
+++ b/srcpkgs/dmraid/template
@@ -1,11 +1,10 @@
 # Template file for 'dmraid'
 pkgname=dmraid
-_distver=1.0.0.rc16
-_patchver=3
-version="${_distver}.${_patchver}"
+version=1.0.0.rc16.3
 revision=12
+_distver="${version%.*}-${version##*.}"
 wrksrc="${pkgname}"
-build_wrksrc="${_distver}-${_patchver}/${pkgname}"
+build_wrksrc="${_distver}/${pkgname}"
 build_style=gnu-configure
 configure_args="--enable-led --enable-intel_led --enable-shared_lib"
 makedepends="device-mapper-devel"
@@ -13,7 +12,7 @@ short_desc="Device mapper RAID interface"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="http://people.redhat.com/~heinzm/sw/dmraid/"
-distfiles="${homepage}/src/dmraid-${_distver}-${_patchver}.tar.bz2"
+distfiles="${homepage}/src/dmraid-${_distver}.tar.bz2"
 checksum=93421bd169d71ff5e7d2db95b62b030bfa205a12010b6468dcdef80337d6fbd8
 disable_parallel_build=yes
 lib32disabled=yes
diff --git a/srcpkgs/ftgl/template b/srcpkgs/ftgl/template
index fce960b76575..b26a0d8c1a60 100644
--- a/srcpkgs/ftgl/template
+++ b/srcpkgs/ftgl/template
@@ -1,9 +1,9 @@
 # Template file for 'ftgl'
 pkgname=ftgl
-_distver=2.1.3
-_distrcver=rc5
-version="${_distver}${_distrcver}"
+version=2.1.3rc5
 revision=8
+_distver="${version%rc*}"
+_distrcver="rc${version#*rc}"
 wrksrc="ftgl-${_distver}~${_distrcver}"
 build_style=gnu-configure
 configure_args="--disable-static FT2_CONFIG=${XBPS_CROSS_BASE}/usr/bin/freetype-config"
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index 07ceeccc93d4..fcd25755aa75 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc-multilib'
 archs="x86_64"
 _triplet="x86_64-unknown-linux-gnu"
-_majorver=10.2
 
 pkgname=gcc-multilib
-version=${_majorver}.1pre1
+version=10.2.1pre1
 revision=1
+_majorver="${version%.*}"
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection (multilib files)"
 maintainer="Orphaned <orphan@voidlinux.org>"
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ba7084934857..7a4f463b111f 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -1,21 +1,21 @@
 # Template file for 'gcc'
 # Revbump libtool when updating gcc, since it hardcodes some internal compiler paths
 # which use the version number.
-_majorver=10
-_minorver=${_majorver}.2
-_patchver=${_minorver}.1
-_gmp_version=6.2.0
-_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
 
 pkgname=gcc
 # we are using a 10-stable git snapshot alpine is using in order
 # to get regression fixes not yet incorporate into a stable release
 # it should be possible to switch back to stable with 10.3 or 11
-version=${_patchver}pre1
-wrksrc=gcc-${version/pre/_pre}
+version=10.2.1pre1
 revision=3
+_patchver="${version%pre*}"
+_minorver="${_patchver%.*}"
+_majorver="${_minorver%.*}"
+_gmp_version=6.2.0
+_mpfr_version=4.1.0
+_mpc_version=1.1.0
+_isl_version=0.21
+wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 homepage="http://gcc.gnu.org"
diff --git a/srcpkgs/gcc6/template b/srcpkgs/gcc6/template
index 352ae9bbff52..cc34fae52a8e 100644
--- a/srcpkgs/gcc6/template
+++ b/srcpkgs/gcc6/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc6'
-_majorver=6
-_minorver=${_majorver}.5
 # old isl is necessary
 _isl_version=0.16
 pkgname=gcc6
-version=${_minorver}.0
+version=6.5.0
 revision=1
+_majorver="${version%%.*}"
+_minorver="${version%.*}"
 wrksrc=gcc-${version}
 hostmakedepends="automake libtool perl flex texinfo zip unzip"
 makedepends="gmp-devel mpfr-devel libmpc-devel zlib-devel"
diff --git a/srcpkgs/google-chrome/template b/srcpkgs/google-chrome/template
index 2e6d4ccb43cd..3d736e047d9e 100644
--- a/srcpkgs/google-chrome/template
+++ b/srcpkgs/google-chrome/template
@@ -1,11 +1,10 @@
 # Template file for 'google-chrome'
-_chromeVersion=91.0.4472.106
-_chromeRevision=1
-_channel=stable
-
 pkgname=google-chrome
-version="${_chromeVersion}.${_chromeRevision}"
+version=91.0.4472.106.1
 revision=1
+_chromeVersion="${version%.*}"
+_chromeRevision="${version##*.}"
+_channel=stable
 maintainer="Michael Aldridge <maldridge@voidlinux.org>"
 homepage="https://www.google.com/chrome/"
 license="custom:chrome"
diff --git a/srcpkgs/hfsprogs/template b/srcpkgs/hfsprogs/template
index f1e0c690511d..050b442ec9fc 100644
--- a/srcpkgs/hfsprogs/template
+++ b/srcpkgs/hfsprogs/template
@@ -1,9 +1,7 @@
 # Template file for 'hfsprogs'
 pkgname=hfsprogs
-_distver=540.1
-_patchver=3
 _md5sum=0435afc389b919027b69616ad1b05709
-version="${_distver}.linux${_patchver}"
+version=540.1.linux3
 revision=8
 wrksrc="diskdev_cmds-${version}"
 hostmakedepends="clang"
diff --git a/srcpkgs/j/template b/srcpkgs/j/template
index c9b0c669497c..b6ce41a36077 100644
--- a/srcpkgs/j/template
+++ b/srcpkgs/j/template
@@ -1,10 +1,10 @@
 # Template file for 'j'
 pkgname=j
-_vmaj=901
-_vmin=f
-_vrel=${_vmaj}-release${_vmin:+-}${_vmin}
-version=${_vmaj}.${_vmin}
+version=901.f
 revision=1
+_vmaj="${version%.*}"
+_vmin="${version#${_vmaj}}"
+_vrel=${_vmaj}-release${_vmin:+-}${_vmin#.}
 archs="aarch64* armv[67]* i686* x86_64*"
 wrksrc="jsource-j${_vrel}"
 makedepends="libedit-devel libgomp-devel"
@@ -35,7 +35,7 @@ esac
 
 do_configure() {
 	cp jsrc/jversion-x.h jsrc/jversion.h
-	vsed -i "/jversion/s@${_vmaj}@&-${_vmin}@;
+	vsed -i "/jversion/s@${_vmaj}@&-${_vmin#.}@;
 	         /jplatform/s@unknown@${_jpl}@;
 	         /jtype/s@beta@${_jtype}@;
 	         /jbuilder/s@unknown@${_jbuilder}@" \
diff --git a/srcpkgs/libax25/template b/srcpkgs/libax25/template
index e4de77e6b59a..280cbeebf717 100644
--- a/srcpkgs/libax25/template
+++ b/srcpkgs/libax25/template
@@ -1,10 +1,8 @@
 # Template file for 'libax25'
 pkgname=libax25
-_distver=0.0.12
-_patchver=rc4
-version="${_distver}${_patchver}"
+version=0.0.12rc4
 revision=1
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="libax25-${version/rc/-rc}"
 build_style=gnu-configure
 makedepends="zlib-devel"
 short_desc="A set of functions making it easier to write hamradio programs"
diff --git a/srcpkgs/libedit/template b/srcpkgs/libedit/template
index 9627018583c3..6e2b7f1abc01 100644
--- a/srcpkgs/libedit/template
+++ b/srcpkgs/libedit/template
@@ -1,17 +1,16 @@
 # Template file for 'libedit'
 pkgname=libedit
-_datever=20210522
-_distver=3.1
-version="${_datever}.${_distver}"
+version=20210522.3.1
 revision=1
-wrksrc="${pkgname}-${_datever}-${_distver}"
+_distver="${version%%.*}-${version#*.}"
+wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 makedepends="ncurses-devel"
 short_desc="Port of the NetBSD Command Line Editor Library"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="http://www.thrysoee.dk/editline/"
-distfiles="http://www.thrysoee.dk/editline/libedit-${_datever}-${_distver}.tar.gz"
+distfiles="http://www.thrysoee.dk/editline/libedit-${_distver}.tar.gz"
 checksum=0220bc2047e927c0c1984ef5f7b4eb2a9469a5b7bf12ba573ca3b23ca02bbb6f
 
 post_install() {
diff --git a/srcpkgs/libpurple-facebook/template b/srcpkgs/libpurple-facebook/template
index f9049cc9a7d9..53e705e40861 100644
--- a/srcpkgs/libpurple-facebook/template
+++ b/srcpkgs/libpurple-facebook/template
@@ -1,18 +1,16 @@
 # Template file for 'libpurple-facebook'
-
-pkgname="libpurple-facebook"
-_version="0.9.5"
-_rev="9ff9acf9fa14"
+pkgname=libpurple-facebook
 reverts="20160409.66ee77378d82_1 20160125.92885e0456ed_1"
-version=${_version}.${_rev}
+version=0.9.5.9ff9acf9fa14
 revision=1
+_distver="${version%.*}-${version##*.}"
+wrksrc="purple-facebook-${_distver}"
 build_style=gnu-configure
-wrksrc=purple-facebook-${_version}-${_rev}
 hostmakedepends="pkg-config"
 makedepends="libpurple-devel json-glib-devel"
-short_desc="A Facebook plugin for libpurple"
+short_desc="Facebook plugin for libpurple"
 maintainer="John Regan <john@jrjrtech.com>"
-license="GPL-2"
+license="GPL-2.0-or-later"
 homepage="https://github.com/dequis/purple-facebook"
-distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_version}-${_rev}/purple-facebook-${_version}-${_rev}.tar.gz"
+distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_distver}/purple-facebook-${_distver}.tar.gz"
 checksum=7ab652dd0430166465f820e6e72bf6fffe09db936b535c212e571ec1742146dc
diff --git a/srcpkgs/libreadline8/template b/srcpkgs/libreadline8/template
index dbac03c6764b..66e7c5112e4d 100644
--- a/srcpkgs/libreadline8/template
+++ b/srcpkgs/libreadline8/template
@@ -1,9 +1,9 @@
 # Template file for 'libreadline8'
 pkgname=libreadline8
-_dist_ver=8.1
-_patch_ver=000
-version="${_dist_ver}.${_patch_ver}"
+version=8.1.000
 revision=1
+_dist_ver="${version%.*}"
+_patch_ver="${version##*.}"
 bootstrap=yes
 wrksrc="readline-${_dist_ver}"
 build_style=gnu-configure
diff --git a/srcpkgs/libtcd/template b/srcpkgs/libtcd/template
index 914365cce963..b4ce4fc4debc 100644
--- a/srcpkgs/libtcd/template
+++ b/srcpkgs/libtcd/template
@@ -1,10 +1,9 @@
 # Template file for 'libtcd'
-_distver=2.2.7
-_distrev=r2
-
 pkgname=libtcd
-version=${_distver}.${_distrev}
+version=2.2.7.r2
 revision=1
+_distver="${version%.*}"
+_distrev="${version##*.}"
 wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 short_desc="API for reading and writing Tide Constituent Database (TCD) files"
diff --git a/srcpkgs/lynx/template b/srcpkgs/lynx/template
index 73d88a394982..84244374086e 100644
--- a/srcpkgs/lynx/template
+++ b/srcpkgs/lynx/template
@@ -1,10 +1,9 @@
 # Template file for 'lynx'
 pkgname=lynx
-_distver=2.8.9
-_patchver=1
-version="${_distver}.${_patchver}"
+version=2.8.9.1
 revision=5
-wrksrc="lynx${_distver}rel.${_patchver}"
+_distver="${version%.*}rel.${version##*.}"
+wrksrc="lynx${_distver}"
 build_style=gnu-configure
 configure_args="--enable-widec --with-zlib --with-bzlib --with-ssl --enable-ipv6"
 makedepends="zlib-devel bzip2-devel ncurses-devel openssl-devel"
@@ -12,7 +11,7 @@ short_desc="A text browser for the World Wide Web"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://lynx.invisible-island.net/"
-distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}rel.${_patchver}.tar.gz"
+distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}.tar.gz"
 checksum=a46e4167b8f02c066d2fe2eafcc5603367be0e3fe2e59e9fc4eb016f306afc8e
 
 pre_configure() {
diff --git a/srcpkgs/man-pages-posix/template b/srcpkgs/man-pages-posix/template
index 58deb2f360e7..78caadd748bf 100644
--- a/srcpkgs/man-pages-posix/template
+++ b/srcpkgs/man-pages-posix/template
@@ -1,15 +1,14 @@
 # Template file for 'man-pages-posix'
 pkgname=man-pages-posix
-_distver=2017
-_revver=a
-version="${_distver}${_revver}"
+version=2017a
 revision=5
+_distver="${version%?}"
 wrksrc="${pkgname}-${_distver}"
 short_desc="Manual pages about POSIX systems"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:POSIX-COPYRIGHT"
 homepage="https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/"
-distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${_revver}.tar.xz"
+distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${version#${_distver}}.tar.xz"
 checksum=ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3
 
 do_install() {
diff --git a/srcpkgs/mcwm/template b/srcpkgs/mcwm/template
index 293b50da0b98..8d475929865d 100644
--- a/srcpkgs/mcwm/template
+++ b/srcpkgs/mcwm/template
@@ -1,17 +1,15 @@
 # Template file for 'mcwm'
 pkgname=mcwm
-_distver=20130209
-_patchver=2
-version="${_distver}.${_patchver}"
+version=20130209.2
 revision=7
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="${pkgname}-${version//./-}"
 build_style=gnu-makefile
 makedepends="libxcb-devel xcb-proto xcb-util-devel xcb-util-keysyms-devel xcb-util-wm-devel"
 short_desc="A minimalist stacking X window manager based on XCB"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="ISC"
 homepage="http://hack.org/mc/projects/mcwm/"
-distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${_distver}-${_patchver}.tar.bz2"
+distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${version//./-}.tar.bz2"
 checksum=2d2f9ced77bc6f90cb9fbdbf790eed97f3be28caefb0de496ac28813aed606be
 conflicts="2bwm>=0"
 
diff --git a/srcpkgs/openjdk10-bootstrap/template b/srcpkgs/openjdk10-bootstrap/template
index 9695f1f1f431..374e25f0ef38 100644
--- a/srcpkgs/openjdk10-bootstrap/template
+++ b/srcpkgs/openjdk10-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk10-bootstrap'
-_jdk_build=13
 _final_jdk_home="usr/lib/jvm/java-10-openjdk"
 pkgname=openjdk10-bootstrap
-version="10.0.2p${_jdk_build}"
+version=10.0.2p13
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk10u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-9-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5cbf8da5d13..87b309bfa014 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,12 +1,9 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
-_java_ver=11
-_java_min_ver=0
-_java_sec_ver=12
-_jdk_update=5
-_openjdk_version="openjdk-${_java_ver}"
-version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}+${_jdk_update}"
+version=11.0.12+5
 revision=1
+_java_ver="${version%%.*}"
+_openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
 build_style=gnu-configure
 configure_args="
@@ -22,7 +19,7 @@ configure_args="
  --with-native-debug-symbols=none
  --with-version-pre=
  --with-version-opt="void-r$revision"
- --with-version-build=${_jdk_update}
+ --with-version-build=${version#*+}
  --with-vendor-name="Void"
  --with-vendor-url="https://voidlinux.org/"
  --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
diff --git a/srcpkgs/openjdk7-bootstrap/template b/srcpkgs/openjdk7-bootstrap/template
index f273380c0ebb..1853081a2394 100644
--- a/srcpkgs/openjdk7-bootstrap/template
+++ b/srcpkgs/openjdk7-bootstrap/template
@@ -3,12 +3,9 @@
 pkgname=openjdk7-bootstrap
 # 2.6.19 fails to build: https://github.com/alpinelinux/aports/pull/9813
 _icedtea_ver=2.6.18
-_java_ver=7
-_jdk_update=221
-_jdk_build=02
 _bootstrap_jdk_home="/usr/lib/jvm/java-1.5-gcj"
 _final_jdk_home="/usr/lib/jvm/java-1.7-openjdk"
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=7u221b02
 revision=3
 wrksrc=icedtea-${_icedtea_ver}
 build_style=gnu-configure
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 478986b3ca6b..227d8b79cdf0 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -2,14 +2,14 @@
 # TODO: better places for bin and man?
 # TODO: make -headless versions
 # TODO: config files?
-_java_ver=8
-_jdk_update=272
-_jdk_build=02
-_main_ver=${_java_ver}u${_jdk_update}
-_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 pkgname=openjdk8
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=8u272b02
 revision=1
+_jdk_update=272
+_jdk_update="${version#*u}"
+_jdk_update="${_jdk_update%b*}"
+_jdk_build="${version#*b}"
+_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 # we're using aarch64 port repo to get aarch64 JIT; the repo is
 # otherwise the same as the normal one, just with aarch64 port added
 _repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index 7fc5dc69376f..6c585c3c305e 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk9-bootstrap'
-_jdk_build=12
 _final_jdk_home="usr/lib/jvm/java-9-openjdk"
 pkgname=openjdk9-bootstrap
-version="9.0.4p${_jdk_build}"
+version=9.0.4p12
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk9u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/pcc/template b/srcpkgs/pcc/template
index 84b020278d6d..8d6b4748b8d5 100644
--- a/srcpkgs/pcc/template
+++ b/srcpkgs/pcc/template
@@ -1,9 +1,9 @@
 # Template file for 'pcc'
 pkgname=pcc
-_snapshot=20190420
-_distver=1.1.0
-version=${_distver}.${_snapshot}
+version=1.1.0.20190420
 revision=3
+_distver="${version%.*}"
+_snapshot="${version##*.}"
 archs="i686* x86_64*"
 create_wrksrc=yes
 configure_args="--enable-tls --enable-native"
diff --git a/srcpkgs/python3-apsw/template b/srcpkgs/python3-apsw/template
index 61e77aff002a..f646420cde57 100644
--- a/srcpkgs/python3-apsw/template
+++ b/srcpkgs/python3-apsw/template
@@ -1,10 +1,8 @@
 # Template file for 'python3-apsw'
 pkgname=python3-apsw
-_distver=3.32.2
-_patchver=r1
-version=${_distver}${_patchver}
+version=3.32.2r1
 revision=3
-wrksrc="apsw-${_distver}-${_patchver}"
+wrksrc="apsw-${version/r/-r}"
 build_style=python3-module
 hostmakedepends="python3-devel"
 makedepends="python3-devel sqlite-devel"
@@ -13,7 +11,7 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="Zlib"
 homepage="https://github.com/rogerbinns/apsw"
 changelog="https://raw.githubusercontent.com/rogerbinns/apsw/master/doc/changes.rst"
-distfiles="${homepage}/archive/${_distver}-${_patchver}.tar.gz"
+distfiles="${homepage}/archive/${version/r/-r}.tar.gz"
 checksum=33f3ccfd8a7537dccef2caeb8cc06e26f300f1cf547c22c4e8ec8dcfecb72aa0
 
 pre_check() {
diff --git a/srcpkgs/simutron/template b/srcpkgs/simutron/template
index cdcf68c2a435..ce812edb2fc6 100644
--- a/srcpkgs/simutron/template
+++ b/srcpkgs/simutron/template
@@ -1,8 +1,6 @@
 # Template file for 'simutron'
 pkgname=simutron
-_version=1.0.1
-_rev=SR2
-version=1.0.1.${_rev}
+version=1.0.1.SR2
 revision=1
 build_wrksrc=build
 build_style=qmake
@@ -15,7 +13,7 @@ homepage="https://sourceforge.net/projects/simutron/"
 nostrip_files="LCD20x4Test.elf"
 
 do_fetch() {
-	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${_version}-${_rev}" "$wrksrc"
+	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${version/.SR/-SR}" "$wrksrc"
 }
 
 post_extract() {
diff --git a/srcpkgs/tcc/template b/srcpkgs/tcc/template
index 5d2da178af70..dcd31dabb677 100644
--- a/srcpkgs/tcc/template
+++ b/srcpkgs/tcc/template
@@ -1,8 +1,6 @@
 # Template file for 'tcc'
 pkgname=tcc
-_distver=0.9.27
-_voidver=20191027.1
-version=${_distver}.${_voidver}
+version=0.9.27.20191027.1
 revision=1
 _gitrev=a4997bf3d952f904bce824ee3e8f3e12e8524071
 wrksrc=tinycc-${_gitrev:0:7}
diff --git a/srcpkgs/x264/template b/srcpkgs/x264/template
index 739e5fa27d56..1ed803645ba6 100644
--- a/srcpkgs/x264/template
+++ b/srcpkgs/x264/template
@@ -1,10 +1,8 @@
 # Template file for 'x264'
 pkgname=x264
-_snap_date=20191217
-_snap_rev=2245
-version="${_snap_date}.${_snap_rev}"
+version=20191217.2245
 revision=1
-wrksrc="x264-snapshot-${_snap_date}-${_snap_rev}-stable"
+wrksrc="x264-snapshot-${version//./-}-stable"
 build_style=gnu-configure
 configure_args="--enable-static --enable-shared"
 hostmakedepends="nasm perl"
@@ -12,7 +10,7 @@ short_desc="Free library for encoding H264/AVC video streams"
 maintainer="DirectorX <void.directorx@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://www.videolan.org/developers/x264.html"
-distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${_snap_date}-${_snap_rev}-stable.tar.bz2"
+distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${version//./-}-stable.tar.bz2"
 checksum=b2495c8f2930167d470994b1ce02b0f4bfb24b3317ba36ba7f112e9809264160
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
  2021-06-17 19:27 ` ericonr
  2021-06-17 19:52 ` [PR PATCH] [Updated] " Chocimier
@ 2021-06-17 19:53 ` Chocimier
  2021-06-17 19:57 ` [PR PATCH] [Updated] " Chocimier
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-17 19:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 300 bytes --]

New comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/31546#issuecomment-863520474

Comment:
- xbps-checkvers substitute whole parameters ignoring #, %, :N
varieties, that's captious
- templates can be updated mechanically with scripts like xupdate

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Updated] Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
                   ` (2 preceding siblings ...)
  2021-06-17 19:53 ` Chocimier
@ 2021-06-17 19:57 ` Chocimier
  2021-06-17 19:59 ` Chocimier
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-17 19:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 354 bytes --]

There is an updated pull request by Chocimier against master on the void-packages repository

https://github.com/Chocimier/void-packages-org variables-in-version
https://github.com/void-linux/void-packages/pull/31546

Disallow variables in version back
[ci-skip]

A patch file from https://github.com/void-linux/void-packages/pull/31546.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-variables-in-version-31546.patch --]
[-- Type: text/x-diff, Size: 24691 bytes --]

From 1bf3f42dbc9ff733e888d564b32244e26c4024a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 1/2] Manual.md: disallow variables in version back

- xbps-checkvers substitute whole parameters ignoring #, %, :N
varieties, that's captious
- templates can be updated mechanically with scripts like xupdate
- easier to lint
---
 Manual.md | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Manual.md b/Manual.md
index 238db04f04b3..2f10422e3a09 100644
--- a/Manual.md
+++ b/Manual.md
@@ -462,9 +462,7 @@ the generated `binary packages` have been modified.
 - `short_desc` A string with a brief description for this package. Max 72 chars.
 
 - `version` A string with the package version. Must not contain dashes or underscore
-and at least one digit is required. Using bash's pattern substitution and prefix and
-suffix matching isn't supported, since this field needs to be parsed by
-`xbps-checkvers(1)`. Using variables in this field should be avoided.
+and at least one digit is required. Shell's variable substition usage is not allowed.
 
 Neither `pkgname` or `version` should contain special characters which make it
 necessary to quote them, so they shouldn't be quoted in the template.

From 34d5ddebb4e5caf19562f49ef14039ed08b9bf17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Thu, 17 Jun 2021 21:19:35 +0200
Subject: [PATCH 2/2] srcpkgs: remove variables from version

---
 srcpkgs/EmptyEpsilon/template             |  9 +++++----
 srcpkgs/cross-x86_64-w64-mingw32/template |  9 ++++-----
 srcpkgs/dmraid/template                   |  9 ++++-----
 srcpkgs/ftgl/template                     |  6 +++---
 srcpkgs/gcc-multilib/template             |  4 ++--
 srcpkgs/gcc/template                      | 18 +++++++++---------
 srcpkgs/gcc6/template                     |  6 +++---
 srcpkgs/google-chrome/template            |  9 ++++-----
 srcpkgs/hfsprogs/template                 |  4 +---
 srcpkgs/j/template                        | 10 +++++-----
 srcpkgs/libax25/template                  |  6 ++----
 srcpkgs/libedit/template                  |  9 ++++-----
 srcpkgs/libpurple-facebook/template       | 16 +++++++---------
 srcpkgs/libreadline8/template             |  6 +++---
 srcpkgs/libtcd/template                   |  7 +++----
 srcpkgs/lynx/template                     |  9 ++++-----
 srcpkgs/man-pages-posix/template          |  7 +++----
 srcpkgs/mcwm/template                     |  8 +++-----
 srcpkgs/openjdk10-bootstrap/template      |  5 ++---
 srcpkgs/openjdk11/template                | 11 ++++-------
 srcpkgs/openjdk7-bootstrap/template       |  5 +----
 srcpkgs/openjdk8/template                 | 12 ++++++------
 srcpkgs/openjdk9-bootstrap/template       |  5 ++---
 srcpkgs/pcc/template                      |  6 +++---
 srcpkgs/python3-apsw/template             |  8 +++-----
 srcpkgs/simutron/template                 |  6 ++----
 srcpkgs/tcc/template                      |  4 +---
 srcpkgs/x264/template                     |  8 +++-----
 28 files changed, 96 insertions(+), 126 deletions(-)

diff --git a/srcpkgs/EmptyEpsilon/template b/srcpkgs/EmptyEpsilon/template
index f191433eec50..3dd6c25a0a26 100644
--- a/srcpkgs/EmptyEpsilon/template
+++ b/srcpkgs/EmptyEpsilon/template
@@ -1,10 +1,11 @@
 # Template file for 'EmptyEpsilon'
 pkgname=EmptyEpsilon
-_ver_major=2021
-_ver_minor=03
-_ver_patch=31
-version="${_ver_major}.${_ver_minor}.${_ver_patch}"
+version=2021.03.31
 revision=1
+_ver_major="${version%%.*}"
+_ver_minor="${version%.*}"
+_ver_minor="${_ver_minor#*.}"
+_ver_patch="${version##*.}"
 wrksrc="EmptyEpsilon-EE-${version}"
 build_style=cmake
 configure_args="-DSERIOUS_PROTON_DIR=$XBPS_BUILDDIR/SeriousProton-EE-${version}
diff --git a/srcpkgs/cross-x86_64-w64-mingw32/template b/srcpkgs/cross-x86_64-w64-mingw32/template
index 3db21abb692f..bf128b41aad3 100644
--- a/srcpkgs/cross-x86_64-w64-mingw32/template
+++ b/srcpkgs/cross-x86_64-w64-mingw32/template
@@ -1,15 +1,14 @@
 # Template file for 'cross-x86_64-w64-mingw32'
+pkgname=cross-x86_64-w64-mingw32
+version=8.0.0
+revision=1
 _gcc_version=10.2.0
 _binutils_version=2.34
 _gmp_version=6.2.0
 _mpfr_version=4.1.0
 _mpc_version=1.1.0
 _isl_version=0.21
-_mingw_version=8.0.0
-
-pkgname=cross-x86_64-w64-mingw32
-version=$_mingw_version
-revision=1
+_mingw_version="${version}"
 create_wrksrc=yes
 hostmakedepends="tar flex perl texinfo"
 makedepends="zlib-devel"
diff --git a/srcpkgs/dmraid/template b/srcpkgs/dmraid/template
index 420749bc8aa6..35acc9ec1799 100644
--- a/srcpkgs/dmraid/template
+++ b/srcpkgs/dmraid/template
@@ -1,11 +1,10 @@
 # Template file for 'dmraid'
 pkgname=dmraid
-_distver=1.0.0.rc16
-_patchver=3
-version="${_distver}.${_patchver}"
+version=1.0.0.rc16.3
 revision=12
+_distver="${version%.*}-${version##*.}"
 wrksrc="${pkgname}"
-build_wrksrc="${_distver}-${_patchver}/${pkgname}"
+build_wrksrc="${_distver}/${pkgname}"
 build_style=gnu-configure
 configure_args="--enable-led --enable-intel_led --enable-shared_lib"
 makedepends="device-mapper-devel"
@@ -13,7 +12,7 @@ short_desc="Device mapper RAID interface"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="http://people.redhat.com/~heinzm/sw/dmraid/"
-distfiles="${homepage}/src/dmraid-${_distver}-${_patchver}.tar.bz2"
+distfiles="${homepage}/src/dmraid-${_distver}.tar.bz2"
 checksum=93421bd169d71ff5e7d2db95b62b030bfa205a12010b6468dcdef80337d6fbd8
 disable_parallel_build=yes
 lib32disabled=yes
diff --git a/srcpkgs/ftgl/template b/srcpkgs/ftgl/template
index fce960b76575..b26a0d8c1a60 100644
--- a/srcpkgs/ftgl/template
+++ b/srcpkgs/ftgl/template
@@ -1,9 +1,9 @@
 # Template file for 'ftgl'
 pkgname=ftgl
-_distver=2.1.3
-_distrcver=rc5
-version="${_distver}${_distrcver}"
+version=2.1.3rc5
 revision=8
+_distver="${version%rc*}"
+_distrcver="rc${version#*rc}"
 wrksrc="ftgl-${_distver}~${_distrcver}"
 build_style=gnu-configure
 configure_args="--disable-static FT2_CONFIG=${XBPS_CROSS_BASE}/usr/bin/freetype-config"
diff --git a/srcpkgs/gcc-multilib/template b/srcpkgs/gcc-multilib/template
index 07ceeccc93d4..fcd25755aa75 100644
--- a/srcpkgs/gcc-multilib/template
+++ b/srcpkgs/gcc-multilib/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc-multilib'
 archs="x86_64"
 _triplet="x86_64-unknown-linux-gnu"
-_majorver=10.2
 
 pkgname=gcc-multilib
-version=${_majorver}.1pre1
+version=10.2.1pre1
 revision=1
+_majorver="${version%.*}"
 wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection (multilib files)"
 maintainer="Orphaned <orphan@voidlinux.org>"
diff --git a/srcpkgs/gcc/template b/srcpkgs/gcc/template
index ba7084934857..7a4f463b111f 100644
--- a/srcpkgs/gcc/template
+++ b/srcpkgs/gcc/template
@@ -1,21 +1,21 @@
 # Template file for 'gcc'
 # Revbump libtool when updating gcc, since it hardcodes some internal compiler paths
 # which use the version number.
-_majorver=10
-_minorver=${_majorver}.2
-_patchver=${_minorver}.1
-_gmp_version=6.2.0
-_mpfr_version=4.1.0
-_mpc_version=1.1.0
-_isl_version=0.21
 
 pkgname=gcc
 # we are using a 10-stable git snapshot alpine is using in order
 # to get regression fixes not yet incorporate into a stable release
 # it should be possible to switch back to stable with 10.3 or 11
-version=${_patchver}pre1
-wrksrc=gcc-${version/pre/_pre}
+version=10.2.1pre1
 revision=3
+_patchver="${version%pre*}"
+_minorver="${_patchver%.*}"
+_majorver="${_minorver%.*}"
+_gmp_version=6.2.0
+_mpfr_version=4.1.0
+_mpc_version=1.1.0
+_isl_version=0.21
+wrksrc=gcc-${version/pre/_pre}
 short_desc="GNU Compiler Collection"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 homepage="http://gcc.gnu.org"
diff --git a/srcpkgs/gcc6/template b/srcpkgs/gcc6/template
index 352ae9bbff52..cc34fae52a8e 100644
--- a/srcpkgs/gcc6/template
+++ b/srcpkgs/gcc6/template
@@ -1,11 +1,11 @@
 # Template file for 'gcc6'
-_majorver=6
-_minorver=${_majorver}.5
 # old isl is necessary
 _isl_version=0.16
 pkgname=gcc6
-version=${_minorver}.0
+version=6.5.0
 revision=1
+_majorver="${version%%.*}"
+_minorver="${version%.*}"
 wrksrc=gcc-${version}
 hostmakedepends="automake libtool perl flex texinfo zip unzip"
 makedepends="gmp-devel mpfr-devel libmpc-devel zlib-devel"
diff --git a/srcpkgs/google-chrome/template b/srcpkgs/google-chrome/template
index 2e6d4ccb43cd..3d736e047d9e 100644
--- a/srcpkgs/google-chrome/template
+++ b/srcpkgs/google-chrome/template
@@ -1,11 +1,10 @@
 # Template file for 'google-chrome'
-_chromeVersion=91.0.4472.106
-_chromeRevision=1
-_channel=stable
-
 pkgname=google-chrome
-version="${_chromeVersion}.${_chromeRevision}"
+version=91.0.4472.106.1
 revision=1
+_chromeVersion="${version%.*}"
+_chromeRevision="${version##*.}"
+_channel=stable
 maintainer="Michael Aldridge <maldridge@voidlinux.org>"
 homepage="https://www.google.com/chrome/"
 license="custom:chrome"
diff --git a/srcpkgs/hfsprogs/template b/srcpkgs/hfsprogs/template
index f1e0c690511d..050b442ec9fc 100644
--- a/srcpkgs/hfsprogs/template
+++ b/srcpkgs/hfsprogs/template
@@ -1,9 +1,7 @@
 # Template file for 'hfsprogs'
 pkgname=hfsprogs
-_distver=540.1
-_patchver=3
 _md5sum=0435afc389b919027b69616ad1b05709
-version="${_distver}.linux${_patchver}"
+version=540.1.linux3
 revision=8
 wrksrc="diskdev_cmds-${version}"
 hostmakedepends="clang"
diff --git a/srcpkgs/j/template b/srcpkgs/j/template
index c9b0c669497c..b6ce41a36077 100644
--- a/srcpkgs/j/template
+++ b/srcpkgs/j/template
@@ -1,10 +1,10 @@
 # Template file for 'j'
 pkgname=j
-_vmaj=901
-_vmin=f
-_vrel=${_vmaj}-release${_vmin:+-}${_vmin}
-version=${_vmaj}.${_vmin}
+version=901.f
 revision=1
+_vmaj="${version%.*}"
+_vmin="${version#${_vmaj}}"
+_vrel=${_vmaj}-release${_vmin:+-}${_vmin#.}
 archs="aarch64* armv[67]* i686* x86_64*"
 wrksrc="jsource-j${_vrel}"
 makedepends="libedit-devel libgomp-devel"
@@ -35,7 +35,7 @@ esac
 
 do_configure() {
 	cp jsrc/jversion-x.h jsrc/jversion.h
-	vsed -i "/jversion/s@${_vmaj}@&-${_vmin}@;
+	vsed -i "/jversion/s@${_vmaj}@&-${_vmin#.}@;
 	         /jplatform/s@unknown@${_jpl}@;
 	         /jtype/s@beta@${_jtype}@;
 	         /jbuilder/s@unknown@${_jbuilder}@" \
diff --git a/srcpkgs/libax25/template b/srcpkgs/libax25/template
index e4de77e6b59a..280cbeebf717 100644
--- a/srcpkgs/libax25/template
+++ b/srcpkgs/libax25/template
@@ -1,10 +1,8 @@
 # Template file for 'libax25'
 pkgname=libax25
-_distver=0.0.12
-_patchver=rc4
-version="${_distver}${_patchver}"
+version=0.0.12rc4
 revision=1
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="libax25-${version/rc/-rc}"
 build_style=gnu-configure
 makedepends="zlib-devel"
 short_desc="A set of functions making it easier to write hamradio programs"
diff --git a/srcpkgs/libedit/template b/srcpkgs/libedit/template
index 9627018583c3..6e2b7f1abc01 100644
--- a/srcpkgs/libedit/template
+++ b/srcpkgs/libedit/template
@@ -1,17 +1,16 @@
 # Template file for 'libedit'
 pkgname=libedit
-_datever=20210522
-_distver=3.1
-version="${_datever}.${_distver}"
+version=20210522.3.1
 revision=1
-wrksrc="${pkgname}-${_datever}-${_distver}"
+_distver="${version%%.*}-${version#*.}"
+wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 makedepends="ncurses-devel"
 short_desc="Port of the NetBSD Command Line Editor Library"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="http://www.thrysoee.dk/editline/"
-distfiles="http://www.thrysoee.dk/editline/libedit-${_datever}-${_distver}.tar.gz"
+distfiles="http://www.thrysoee.dk/editline/libedit-${_distver}.tar.gz"
 checksum=0220bc2047e927c0c1984ef5f7b4eb2a9469a5b7bf12ba573ca3b23ca02bbb6f
 
 post_install() {
diff --git a/srcpkgs/libpurple-facebook/template b/srcpkgs/libpurple-facebook/template
index f9049cc9a7d9..53e705e40861 100644
--- a/srcpkgs/libpurple-facebook/template
+++ b/srcpkgs/libpurple-facebook/template
@@ -1,18 +1,16 @@
 # Template file for 'libpurple-facebook'
-
-pkgname="libpurple-facebook"
-_version="0.9.5"
-_rev="9ff9acf9fa14"
+pkgname=libpurple-facebook
 reverts="20160409.66ee77378d82_1 20160125.92885e0456ed_1"
-version=${_version}.${_rev}
+version=0.9.5.9ff9acf9fa14
 revision=1
+_distver="${version%.*}-${version##*.}"
+wrksrc="purple-facebook-${_distver}"
 build_style=gnu-configure
-wrksrc=purple-facebook-${_version}-${_rev}
 hostmakedepends="pkg-config"
 makedepends="libpurple-devel json-glib-devel"
-short_desc="A Facebook plugin for libpurple"
+short_desc="Facebook plugin for libpurple"
 maintainer="John Regan <john@jrjrtech.com>"
-license="GPL-2"
+license="GPL-2.0-or-later"
 homepage="https://github.com/dequis/purple-facebook"
-distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_version}-${_rev}/purple-facebook-${_version}-${_rev}.tar.gz"
+distfiles="https://github.com/dequis/purple-facebook/releases/download/v${_distver}/purple-facebook-${_distver}.tar.gz"
 checksum=7ab652dd0430166465f820e6e72bf6fffe09db936b535c212e571ec1742146dc
diff --git a/srcpkgs/libreadline8/template b/srcpkgs/libreadline8/template
index dbac03c6764b..66e7c5112e4d 100644
--- a/srcpkgs/libreadline8/template
+++ b/srcpkgs/libreadline8/template
@@ -1,9 +1,9 @@
 # Template file for 'libreadline8'
 pkgname=libreadline8
-_dist_ver=8.1
-_patch_ver=000
-version="${_dist_ver}.${_patch_ver}"
+version=8.1.000
 revision=1
+_dist_ver="${version%.*}"
+_patch_ver="${version##*.}"
 bootstrap=yes
 wrksrc="readline-${_dist_ver}"
 build_style=gnu-configure
diff --git a/srcpkgs/libtcd/template b/srcpkgs/libtcd/template
index 914365cce963..b4ce4fc4debc 100644
--- a/srcpkgs/libtcd/template
+++ b/srcpkgs/libtcd/template
@@ -1,10 +1,9 @@
 # Template file for 'libtcd'
-_distver=2.2.7
-_distrev=r2
-
 pkgname=libtcd
-version=${_distver}.${_distrev}
+version=2.2.7.r2
 revision=1
+_distver="${version%.*}"
+_distrev="${version##*.}"
 wrksrc="${pkgname}-${_distver}"
 build_style=gnu-configure
 short_desc="API for reading and writing Tide Constituent Database (TCD) files"
diff --git a/srcpkgs/lynx/template b/srcpkgs/lynx/template
index 73d88a394982..84244374086e 100644
--- a/srcpkgs/lynx/template
+++ b/srcpkgs/lynx/template
@@ -1,10 +1,9 @@
 # Template file for 'lynx'
 pkgname=lynx
-_distver=2.8.9
-_patchver=1
-version="${_distver}.${_patchver}"
+version=2.8.9.1
 revision=5
-wrksrc="lynx${_distver}rel.${_patchver}"
+_distver="${version%.*}rel.${version##*.}"
+wrksrc="lynx${_distver}"
 build_style=gnu-configure
 configure_args="--enable-widec --with-zlib --with-bzlib --with-ssl --enable-ipv6"
 makedepends="zlib-devel bzip2-devel ncurses-devel openssl-devel"
@@ -12,7 +11,7 @@ short_desc="A text browser for the World Wide Web"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="http://lynx.invisible-island.net/"
-distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}rel.${_patchver}.tar.gz"
+distfiles="http://invisible-mirror.net/archives/lynx/tarballs/${pkgname}${_distver}.tar.gz"
 checksum=a46e4167b8f02c066d2fe2eafcc5603367be0e3fe2e59e9fc4eb016f306afc8e
 
 pre_configure() {
diff --git a/srcpkgs/man-pages-posix/template b/srcpkgs/man-pages-posix/template
index 58deb2f360e7..78caadd748bf 100644
--- a/srcpkgs/man-pages-posix/template
+++ b/srcpkgs/man-pages-posix/template
@@ -1,15 +1,14 @@
 # Template file for 'man-pages-posix'
 pkgname=man-pages-posix
-_distver=2017
-_revver=a
-version="${_distver}${_revver}"
+version=2017a
 revision=5
+_distver="${version%?}"
 wrksrc="${pkgname}-${_distver}"
 short_desc="Manual pages about POSIX systems"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="custom:POSIX-COPYRIGHT"
 homepage="https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/"
-distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${_revver}.tar.xz"
+distfiles="${KERNEL_SITE}/docs/man-pages/man-pages-posix/man-pages-posix-${_distver}-${version#${_distver}}.tar.xz"
 checksum=ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3
 
 do_install() {
diff --git a/srcpkgs/mcwm/template b/srcpkgs/mcwm/template
index 293b50da0b98..8d475929865d 100644
--- a/srcpkgs/mcwm/template
+++ b/srcpkgs/mcwm/template
@@ -1,17 +1,15 @@
 # Template file for 'mcwm'
 pkgname=mcwm
-_distver=20130209
-_patchver=2
-version="${_distver}.${_patchver}"
+version=20130209.2
 revision=7
-wrksrc="${pkgname}-${_distver}-${_patchver}"
+wrksrc="${pkgname}-${version//./-}"
 build_style=gnu-makefile
 makedepends="libxcb-devel xcb-proto xcb-util-devel xcb-util-keysyms-devel xcb-util-wm-devel"
 short_desc="A minimalist stacking X window manager based on XCB"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="ISC"
 homepage="http://hack.org/mc/projects/mcwm/"
-distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${_distver}-${_patchver}.tar.bz2"
+distfiles="http://hack.org/mc/hacks/${pkgname}/${pkgname}-${version//./-}.tar.bz2"
 checksum=2d2f9ced77bc6f90cb9fbdbf790eed97f3be28caefb0de496ac28813aed606be
 conflicts="2bwm>=0"
 
diff --git a/srcpkgs/openjdk10-bootstrap/template b/srcpkgs/openjdk10-bootstrap/template
index 9695f1f1f431..374e25f0ef38 100644
--- a/srcpkgs/openjdk10-bootstrap/template
+++ b/srcpkgs/openjdk10-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk10-bootstrap'
-_jdk_build=13
 _final_jdk_home="usr/lib/jvm/java-10-openjdk"
 pkgname=openjdk10-bootstrap
-version="10.0.2p${_jdk_build}"
+version=10.0.2p13
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk10u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-9-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/openjdk11/template b/srcpkgs/openjdk11/template
index b5cbf8da5d13..87b309bfa014 100644
--- a/srcpkgs/openjdk11/template
+++ b/srcpkgs/openjdk11/template
@@ -1,12 +1,9 @@
 # Template file for 'openjdk11'
 pkgname=openjdk11
-_java_ver=11
-_java_min_ver=0
-_java_sec_ver=12
-_jdk_update=5
-_openjdk_version="openjdk-${_java_ver}"
-version="${_java_ver}.${_java_min_ver}.${_java_sec_ver}+${_jdk_update}"
+version=11.0.12+5
 revision=1
+_java_ver="${version%%.*}"
+_openjdk_version="openjdk-${_java_ver}"
 wrksrc="jdk${_java_ver}u-jdk-${version}"
 build_style=gnu-configure
 configure_args="
@@ -22,7 +19,7 @@ configure_args="
  --with-native-debug-symbols=none
  --with-version-pre=
  --with-version-opt="void-r$revision"
- --with-version-build=${_jdk_update}
+ --with-version-build=${version#*+}
  --with-vendor-name="Void"
  --with-vendor-url="https://voidlinux.org/"
  --with-vendor-bug-url="https://github.com/void-linux/void-packages/issues"
diff --git a/srcpkgs/openjdk7-bootstrap/template b/srcpkgs/openjdk7-bootstrap/template
index f273380c0ebb..1853081a2394 100644
--- a/srcpkgs/openjdk7-bootstrap/template
+++ b/srcpkgs/openjdk7-bootstrap/template
@@ -3,12 +3,9 @@
 pkgname=openjdk7-bootstrap
 # 2.6.19 fails to build: https://github.com/alpinelinux/aports/pull/9813
 _icedtea_ver=2.6.18
-_java_ver=7
-_jdk_update=221
-_jdk_build=02
 _bootstrap_jdk_home="/usr/lib/jvm/java-1.5-gcj"
 _final_jdk_home="/usr/lib/jvm/java-1.7-openjdk"
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=7u221b02
 revision=3
 wrksrc=icedtea-${_icedtea_ver}
 build_style=gnu-configure
diff --git a/srcpkgs/openjdk8/template b/srcpkgs/openjdk8/template
index 478986b3ca6b..227d8b79cdf0 100644
--- a/srcpkgs/openjdk8/template
+++ b/srcpkgs/openjdk8/template
@@ -2,14 +2,14 @@
 # TODO: better places for bin and man?
 # TODO: make -headless versions
 # TODO: config files?
-_java_ver=8
-_jdk_update=272
-_jdk_build=02
-_main_ver=${_java_ver}u${_jdk_update}
-_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 pkgname=openjdk8
-version="${_java_ver}u${_jdk_update}b${_jdk_build}"
+version=8u272b02
 revision=1
+_jdk_update=272
+_jdk_update="${version#*u}"
+_jdk_update="${_jdk_update%b*}"
+_jdk_build="${version#*b}"
+_final_jdk_home="usr/lib/jvm/java-1.8-openjdk"
 # we're using aarch64 port repo to get aarch64 JIT; the repo is
 # otherwise the same as the normal one, just with aarch64 port added
 _repo_ver="aarch64-shenandoah-jdk${version/b/-b}"
diff --git a/srcpkgs/openjdk9-bootstrap/template b/srcpkgs/openjdk9-bootstrap/template
index 7fc5dc69376f..6c585c3c305e 100644
--- a/srcpkgs/openjdk9-bootstrap/template
+++ b/srcpkgs/openjdk9-bootstrap/template
@@ -1,8 +1,7 @@
 # Template file for 'openjdk9-bootstrap'
-_jdk_build=12
 _final_jdk_home="usr/lib/jvm/java-9-openjdk"
 pkgname=openjdk9-bootstrap
-version="9.0.4p${_jdk_build}"
+version=9.0.4p12
 revision=2
 _repo_ver=${version/p/+}
 wrksrc="jdk9u-jdk-${_repo_ver}"
@@ -20,7 +19,7 @@ configure_args="
  --enable-dtrace=no
  --with-debug-level=release
  --with-version-pre=
- --with-version-build=${_jdk_build}
+ --with-version-build=${version#*p}
  --with-boot-jdk=/usr/lib/jvm/java-1.8-openjdk"
 make_build_args="images"
 hostmakedepends="pkg-config automake autoconf cpio tar unzip zip ca-certificates
diff --git a/srcpkgs/pcc/template b/srcpkgs/pcc/template
index 84b020278d6d..8d6b4748b8d5 100644
--- a/srcpkgs/pcc/template
+++ b/srcpkgs/pcc/template
@@ -1,9 +1,9 @@
 # Template file for 'pcc'
 pkgname=pcc
-_snapshot=20190420
-_distver=1.1.0
-version=${_distver}.${_snapshot}
+version=1.1.0.20190420
 revision=3
+_distver="${version%.*}"
+_snapshot="${version##*.}"
 archs="i686* x86_64*"
 create_wrksrc=yes
 configure_args="--enable-tls --enable-native"
diff --git a/srcpkgs/python3-apsw/template b/srcpkgs/python3-apsw/template
index 61e77aff002a..f646420cde57 100644
--- a/srcpkgs/python3-apsw/template
+++ b/srcpkgs/python3-apsw/template
@@ -1,10 +1,8 @@
 # Template file for 'python3-apsw'
 pkgname=python3-apsw
-_distver=3.32.2
-_patchver=r1
-version=${_distver}${_patchver}
+version=3.32.2r1
 revision=3
-wrksrc="apsw-${_distver}-${_patchver}"
+wrksrc="apsw-${version/r/-r}"
 build_style=python3-module
 hostmakedepends="python3-devel"
 makedepends="python3-devel sqlite-devel"
@@ -13,7 +11,7 @@ maintainer="bra1nwave <bra1nwave@protonmail.com>"
 license="Zlib"
 homepage="https://github.com/rogerbinns/apsw"
 changelog="https://raw.githubusercontent.com/rogerbinns/apsw/master/doc/changes.rst"
-distfiles="${homepage}/archive/${_distver}-${_patchver}.tar.gz"
+distfiles="${homepage}/archive/${version/r/-r}.tar.gz"
 checksum=33f3ccfd8a7537dccef2caeb8cc06e26f300f1cf547c22c4e8ec8dcfecb72aa0
 
 pre_check() {
diff --git a/srcpkgs/simutron/template b/srcpkgs/simutron/template
index cdcf68c2a435..ce812edb2fc6 100644
--- a/srcpkgs/simutron/template
+++ b/srcpkgs/simutron/template
@@ -1,8 +1,6 @@
 # Template file for 'simutron'
 pkgname=simutron
-_version=1.0.1
-_rev=SR2
-version=1.0.1.${_rev}
+version=1.0.1.SR2
 revision=1
 build_wrksrc=build
 build_style=qmake
@@ -15,7 +13,7 @@ homepage="https://sourceforge.net/projects/simutron/"
 nostrip_files="LCD20x4Test.elf"
 
 do_fetch() {
-	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${_version}-${_rev}" "$wrksrc"
+	svn checkout "https://svn.code.sf.net/p/${pkgname}/code/branches/RB-${version/.SR/-SR}" "$wrksrc"
 }
 
 post_extract() {
diff --git a/srcpkgs/tcc/template b/srcpkgs/tcc/template
index 5d2da178af70..dcd31dabb677 100644
--- a/srcpkgs/tcc/template
+++ b/srcpkgs/tcc/template
@@ -1,8 +1,6 @@
 # Template file for 'tcc'
 pkgname=tcc
-_distver=0.9.27
-_voidver=20191027.1
-version=${_distver}.${_voidver}
+version=0.9.27.20191027.1
 revision=1
 _gitrev=a4997bf3d952f904bce824ee3e8f3e12e8524071
 wrksrc=tinycc-${_gitrev:0:7}
diff --git a/srcpkgs/x264/template b/srcpkgs/x264/template
index 739e5fa27d56..1ed803645ba6 100644
--- a/srcpkgs/x264/template
+++ b/srcpkgs/x264/template
@@ -1,10 +1,8 @@
 # Template file for 'x264'
 pkgname=x264
-_snap_date=20191217
-_snap_rev=2245
-version="${_snap_date}.${_snap_rev}"
+version=20191217.2245
 revision=1
-wrksrc="x264-snapshot-${_snap_date}-${_snap_rev}-stable"
+wrksrc="x264-snapshot-${version//./-}-stable"
 build_style=gnu-configure
 configure_args="--enable-static --enable-shared"
 hostmakedepends="nasm perl"
@@ -12,7 +10,7 @@ short_desc="Free library for encoding H264/AVC video streams"
 maintainer="DirectorX <void.directorx@protonmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://www.videolan.org/developers/x264.html"
-distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${_snap_date}-${_snap_rev}-stable.tar.bz2"
+distfiles="https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${version//./-}-stable.tar.bz2"
 checksum=b2495c8f2930167d470994b1ce02b0f4bfb24b3317ba36ba7f112e9809264160
 
 pre_configure() {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
                   ` (3 preceding siblings ...)
  2021-06-17 19:57 ` [PR PATCH] [Updated] " Chocimier
@ 2021-06-17 19:59 ` Chocimier
  2021-06-17 23:25 ` sgn
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-17 19:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 395 bytes --]

New comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/31546#issuecomment-863520474

Comment:
- xbps-checkvers substitute whole parameters ignoring #, %, :N
varieties, that's captious
- templates can be updated mechanically with scripts like xupdate
- easier to lint, there are checks that compare version between existing and updated template

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
                   ` (4 preceding siblings ...)
  2021-06-17 19:59 ` Chocimier
@ 2021-06-17 23:25 ` sgn
  2021-06-21 16:10 ` Chocimier
  2021-06-21 16:10 ` [PR PATCH] [Merged]: " Chocimier
  7 siblings, 0 replies; 9+ messages in thread
From: sgn @ 2021-06-17 23:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 380 bytes --]

New comment by sgn on void-packages repository

https://github.com/void-linux/void-packages/pull/31546#issuecomment-863623877

Comment:
+1, with this disallowing, we can move `update-check` out of `xbps-src`, to `common/scripts`.

As of it's now, we need to source the template or do some tricky steps to get current version. If the PR is merged, we can simply `grep ^version=`

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
                   ` (5 preceding siblings ...)
  2021-06-17 23:25 ` sgn
@ 2021-06-21 16:10 ` Chocimier
  2021-06-21 16:10 ` [PR PATCH] [Merged]: " Chocimier
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-21 16:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 603 bytes --]

New comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/31546#issuecomment-865163877

Comment:
> We should check only the first distfiles, no?

Yes, ignoring second and subsequent distfiles would likely increase quality of update-check, after patching few templates that don't put main tarball first.

> That thing could be grep-ed and substituted.

There are also packages that use custom variables in path, e.g. `grass`, so this is a tradeoff between accuracy and speed(?), for which `version` restriction is not crucial, let's discuss separately.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PR PATCH] [Merged]: Disallow variables in version back
  2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
                   ` (6 preceding siblings ...)
  2021-06-21 16:10 ` Chocimier
@ 2021-06-21 16:10 ` Chocimier
  7 siblings, 0 replies; 9+ messages in thread
From: Chocimier @ 2021-06-21 16:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 177 bytes --]

There's a merged pull request on the void-packages repository

Disallow variables in version back
https://github.com/void-linux/void-packages/pull/31546

Description:
[ci-skip]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-06-21 16:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-17 19:21 [PR PATCH] Disallow variables in version back Chocimier
2021-06-17 19:27 ` ericonr
2021-06-17 19:52 ` [PR PATCH] [Updated] " Chocimier
2021-06-17 19:53 ` Chocimier
2021-06-17 19:57 ` [PR PATCH] [Updated] " Chocimier
2021-06-17 19:59 ` Chocimier
2021-06-17 23:25 ` sgn
2021-06-21 16:10 ` Chocimier
2021-06-21 16:10 ` [PR PATCH] [Merged]: " Chocimier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).