New comment by noraj on void-packages repository https://github.com/void-linux/void-packages/pull/37804#issuecomment-1173146895 Comment: https://github.com/void-linux/void-packages/runs/7163511132?check_suite_focus=true > Error: 533152dd: subject does not follow CONTRIBUTING.md guildelines The cause is not very detailed by I guess it's the commit description that is wrong. By the way I was trying to change the package name to the tool name and thought this would have been enough: ```shell # Template file for 'haiti' pkgname=haiti _gemname=haiti-hash version=1.3.0 revision=1 build_style=gem depends="ruby-docopt ruby-paint" short_desc="Hash type identifier (CLI & lib)" maintainer="Orphaned " license="MIT" homepage="https://noraj.github.io/haiti/" changelog="https://github.com/noraj/haiti/blob/master/docs/CHANGELOG.md" distfiles="https://rubygems.org/downloads/${_gemname}-${version}.gem>${pkgname}-${version}.gem" checksum=d2a2808cc1626bc5bb24c34a211645c2b3749af6f7d595a9a2d65d1be0d72a9f post_install() { vlicense LICENSE.txt } ``` But I have a hard time doing that since https://github.com/void-linux/void-packages/blob/master/common/build-style/gem.sh assume that `${pkgname}` or `${pkgname#ruby-}` = gem file name = the gem name, and https://github.com/void-linux/void-packages/blob/master/common/build-style/gemspec.sh assumes `${pkgname}` or `${pkgname#ruby-}` = gem file name = the gem name = gemspec file name. But since I have `pkgname = haiti`, gemname = haiti-hash, and gamespec = haiti. I can easily rename `haiti-hash-1.3.0.gem` to `haiti-1.3.0.gem` but `/host/sources/by_sha256` will still use `_haiti-hash-1.3.0.gem`. But some variables in the helper such as `_INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${pkgname#ruby-}-${version}` are using pkgname. If feels like there should be a `gemname` variable available that would be equal by default to `${pkgname#ruby-}` but that could be overwritten to overcome those issues. So in order to manage that I have to re-define the whole `do_install()` just to make `_INSTDIR` and the last `sed` use `${_gemname}` instead of `${pkgname#ruby-}`. ```shell # Template file for 'haiti' pkgname=haiti _gemname=haiti-hash version=1.3.0 revision=1 build_style=gem depends="ruby-docopt ruby-paint" short_desc="Hash type identifier (CLI & lib)" maintainer="Orphaned " license="MIT" homepage="https://noraj.github.io/haiti/" changelog="https://github.com/noraj/haiti/blob/master/docs/CHANGELOG.md" distfiles="https://rubygems.org/downloads/${_gemname}-${version}.gem>${pkgname}-${version}.gem" checksum=d2a2808cc1626bc5bb24c34a211645c2b3749af6f7d595a9a2d65d1be0d72a9f do_install() { : ${gem_cmd:=gem} local _GEMDIR _INSTDIR _GEMDIR=$($gem_cmd env gemdir) _INSTDIR=${DESTDIR}/${_GEMDIR}/gems/${_gemname}-${version} $gem_cmd install \ --local \ --install-dir ${DESTDIR}/${_GEMDIR} \ --bindir ${DESTDIR}/usr/bin \ --ignore-dependencies \ --no-document \ --verbose \ ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${pkgname#ruby-}-${version}.gem # Remove cache rm -rf ${DESTDIR}/${_GEMDIR}/cache # Remove ext directory. they are only source code and configuration # The actual extensions are guarded in an arch path rm -rf ${_INSTDIR}/ext # Remove installed tests and benchmarks rm -rf ${_INSTDIR}/{test,tests,autotest,benchmark,benchmarks,script,examples,demo} # Remove files shipped on the root of the gem, most of the time they are useless find ${_INSTDIR} -maxdepth 1 -type f -delete # Remove unnecessary files find ${DESTDIR}/${_GEMDIR}/extensions \( -name mkmf.log -o -name gem_make.out \) -delete # Place manpages in usr/share/man/man[0-9] if [ -d ${_INSTDIR}/man ]; then find ${_INSTDIR}/man -type f -name '*.[0-8n]' | while read -r m; do vman ${m} done fi rm -rf "${_INSTDIR}/man" # Place executables in /usr/bin if [ -d "${_INSTDIR}/bin" ]; then for f in "${_INSTDIR}"/bin/*; do vbin "${f}" done fi rm -rf ${_INSTDIR}/bin # Place conf files in their places if [ -d ${_INSTDIR}/etc ]; then find ${_INSTDIR}/etc -type f | while read -r c; do vmkdir ${c%/*}/ mv ${c} "${DESTDIR}/${c##*${_INSTDIR}/etc/}/" done fi rm -rf ${_INSTDIR}/etc # Ignore the ~> operator, replace it with >= sed 's|~>|>=|g' \ -i ${DESTDIR}/${_GEMDIR}/specifications/${_gemname}-${version}.gemspec } post_install() { vlicense LICENSE.txt } ``` Bit this seems hardly maintainable. So the 3 options are : - Add a optional `gemname` variable in templates - Use `do_install()` override but it's hard to maintain since each template using this method would have to be changed when `common/build-style/gem.sh` changes - Keep `ruby-` for pkgname which is less end-user friendly (`goatcounter` is `goatcounter` not `go-goatcounter` or `you-get` pkgname is `you-get` and not `python-you-get`) I wonder if there is an easy alternative I'm missing.