Compare commits

..

1 Commits

Author SHA1 Message Date
Sven-Hendrik Haase
287d2b4064 feat(commitpkg): Change warning to hard error when licensing information is absent
We originally had this as a warning to allow packagers some time for transitioning.
However, now the gloves come off and we will require all packages to have proper licensing
information.
2025-08-01 08:07:16 +02:00
7 changed files with 14 additions and 102 deletions

View File

@@ -150,7 +150,6 @@ _pkgctl_cmds=(
db db
diff diff
issue issue
license
release release
repo repo
search search
@@ -418,7 +417,6 @@ _pkgctl_version_setup_args__url_opts() { :; }
_pkgctl_version_upgrade_args=( _pkgctl_version_upgrade_args=(
--no-update-checksums --no-update-checksums
--noconfirm
-v --verbose -v --verbose
-h --help -h --help
) )

View File

@@ -456,7 +456,6 @@ _pkgctl_version_setup_args=(
_pkgctl_version_upgrade_args=( _pkgctl_version_upgrade_args=(
'--no-update-checksums[Disable computation and update of the checksums]' '--no-update-checksums[Disable computation and update of the checksums]'
'--noconfirm[Do not ask to confirm changes made to the PKGBUILD file]'
'(-v --verbose)'{-v,--verbose}'[Display results including up-to-date versions]' '(-v --verbose)'{-v,--verbose}'[Display results including up-to-date versions]'
'(-h --help)'{-h,--help}'[Display usage]' '(-h --help)'{-h,--help}'[Display usage]'
'*:git_dir:_files -/' '*:git_dir:_files -/'

View File

@@ -38,9 +38,6 @@ Options
*--no-update-checksums*:: *--no-update-checksums*::
Disable computation and update of the checksums Disable computation and update of the checksums
*--noconfirm*::
Do not ask to confirm changes made to the PKGBUILD file
*-v, --verbose*:: *-v, --verbose*::
Display results including up-to-date versions Display results including up-to-date versions

View File

@@ -123,10 +123,9 @@ fi
needsversioning=() needsversioning=()
if [[ ! -e REUSE.toml || ! -e LICENSE || ! -d LICENSES ]]; then if [[ ! -e REUSE.toml || ! -e LICENSE || ! -d LICENSES ]]; then
# TODO: Make this a hard failure in the future after packagers have had error "package doesn't have proper licensing information, set it up using:"
# some time to add licenses to all packages.
warning "package doesn't have proper licensing information, set it up using:"
msg2 'pkgctl license setup' msg2 'pkgctl license setup'
exit 1
else else
pkgctl license check pkgctl license check
needsversioning+=(REUSE.toml LICENSE LICENSES/*) needsversioning+=(REUSE.toml LICENSE LICENSES/*)
@@ -155,7 +154,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then if [[ ! -f "${file}" ]]; then
continue continue
fi fi
if ! git ls-files --error-unmatch "$file" >/dev/null; then if ! git ls-files --error-unmatch "$file"; then
die "%s is not under version control" "$file" die "%s is not under version control" "$file"
fi fi
done done

View File

@@ -191,9 +191,7 @@ path = [
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",
"*sysusers.conf",
"*.tmpfiles", "*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate", "*.logrotate",
"*.pam", "*.pam",
"*.service", "*.service",

View File

@@ -21,21 +21,15 @@ pkgbuild_set_pkgver() {
local new_pkgver=$1 local new_pkgver=$1
local pkgver=${pkgver} local pkgver=${pkgver}
if [[ -n $2 ]]; then
pkgbuild_file=$2
else
pkgbuild_file="PKGBUILD"
fi
if [[ $(type -t pkgver) == function ]]; then if [[ $(type -t pkgver) == function ]]; then
# TODO: check if die or warn, if we provide _commit _gitcommit setter maybe? # TODO: check if die or warn, if we provide _commit _gitcommit setter maybe?
warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function' warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function'
fi fi
if ! grep --extended-regexp --quiet --max-count=1 "^pkgver=${pkgver}$" "${pkgbuild_file}"; then if ! grep --extended-regexp --quiet --max-count=1 "^pkgver=${pkgver}$" PKGBUILD; then
die "Non-standard pkgver declaration" die "Non-standard pkgver declaration"
fi fi
sed --regexp-extended "s|^(pkgver=)${pkgver}$|\1${new_pkgver}|g" --in-place "${pkgbuild_file}" sed --regexp-extended "s|^(pkgver=)${pkgver}$|\1${new_pkgver}|g" --in-place PKGBUILD
} }
# set the pkgrel variable in a PKGBUILD # set the pkgrel variable in a PKGBUILD
@@ -44,16 +38,10 @@ pkgbuild_set_pkgrel() {
local new_pkgrel=$1 local new_pkgrel=$1
local pkgrel=${pkgrel} local pkgrel=${pkgrel}
if [[ -n $2 ]]; then if ! grep --extended-regexp --quiet --max-count=1 "^pkgrel=${pkgrel}$" PKGBUILD; then
pkgbuild_file=$2
else
pkgbuild_file="PKGBUILD"
fi
if ! grep --extended-regexp --quiet --max-count=1 "^pkgrel=${pkgrel}$" "${pkgbuild_file}"; then
die "Non-standard pkgrel declaration" die "Non-standard pkgrel declaration"
fi fi
sed --regexp-extended "s|^(pkgrel=)${pkgrel}$|\1${new_pkgrel}|g" --in-place "${pkgbuild_file}" sed --regexp-extended "s|^(pkgrel=)${pkgrel}$|\1${new_pkgrel}|g" --in-place PKGBUILD
} }
pkgbuild_update_checksums() { pkgbuild_update_checksums() {
@@ -65,14 +53,6 @@ pkgbuild_update_checksums() {
builddir=$(mktemp --tmpdir="${WORKDIR}" --directory update-checksums.XXXXXX) builddir=$(mktemp --tmpdir="${WORKDIR}" --directory update-checksums.XXXXXX)
newbuildfile="${builddir}/PKGBUILD" newbuildfile="${builddir}/PKGBUILD"
if [[ -n $2 ]]; then
pkgbuild_file=$2
cp PKGBUILD "${builddir}/PKGBUILD-tmp" && mv -f "${pkgbuild_file}" PKGBUILD && mv "${builddir}/PKGBUILD-tmp" "${pkgbuild_file}"
else
pkgbuild_file="PKGBUILD"
fi
# generate new integrity checksums # generate new integrity checksums
if ! newsums=$(BUILDDIR=${builddir} makepkg_generate_integrity 2>"${status_file}"); then if ! newsums=$(BUILDDIR=${builddir} makepkg_generate_integrity 2>"${status_file}"); then
printf 'Failed to generate new checksums' printf 'Failed to generate new checksums'
@@ -101,13 +81,9 @@ pkgbuild_update_checksums() {
return 1 return 1
fi fi
if [[ "${pkgbuild_file}" != "PKGBUILD" ]]; then
cp PKGBUILD "${builddir}/PKGBUILD-tmp" && mv -f "${pkgbuild_file}" PKGBUILD && mv "${builddir}/PKGBUILD-tmp" "${pkgbuild_file}"
fi
# overwrite the original PKGBUILD while preserving permissions # overwrite the original PKGBUILD while preserving permissions
if ! cat -- "${newbuildfile}" > "${pkgbuild_file}"; then if ! cat -- "${newbuildfile}" > PKGBUILD; then
printf "Failed to write to the ${pkgbuild_file} file" printf "Failed to write to the PKGBUILD file"
return 1 return 1
fi fi

View File

@@ -37,7 +37,6 @@ pkgctl_version_upgrade_usage() {
OPTIONS OPTIONS
--no-update-checksums Disable computation and update of the checksums --no-update-checksums Disable computation and update of the checksums
--noconfirm Do not ask to confirm changes made to the PKGBUILD file
-v, --verbose Display results including up-to-date versions -v, --verbose Display results including up-to-date versions
-h, --help Show this help text -h, --help Show this help text
@@ -53,8 +52,6 @@ pkgctl_version_upgrade() {
local exit_code=0 local exit_code=0
local current_item=0 local current_item=0
local update_checksums=1 local update_checksums=1
local noconfirm=0
local apply_changes=0
while (( $# )); do while (( $# )); do
case $1 in case $1 in
@@ -66,10 +63,6 @@ pkgctl_version_upgrade() {
update_checksums=0 update_checksums=0
shift shift
;; ;;
--noconfirm)
noconfirm=1
shift
;;
-v|--verbose) -v|--verbose)
verbose=1 verbose=1
shift shift
@@ -130,8 +123,7 @@ pkgctl_version_upgrade() {
# reset common PKGBUILD variables # reset common PKGBUILD variables
unset pkgbase pkgname arch source pkgver pkgrel validpgpkeys unset pkgbase pkgname arch source pkgver pkgrel validpgpkeys
# shellcheck source=contrib/makepkg/PKGBUILD.proto # shellcheck source=contrib/makepkg/PKGBUILD.proto
cp -f PKGBUILD PKGBUILD_version_upgrade.tmp . ./PKGBUILD
. ./PKGBUILD_version_upgrade.tmp
pkgbase=${pkgbase:-$pkgname} pkgbase=${pkgbase:-$pkgname}
# update the current terminal spinner status # update the current terminal spinner status
@@ -148,7 +140,6 @@ pkgctl_version_upgrade() {
if ! result=$(get_upstream_version); then if ! result=$(get_upstream_version); then
result="${BOLD}${pkgbase}${ALL_OFF}: ${result}" result="${BOLD}${pkgbase}${ALL_OFF}: ${result}"
failure+=("${result}") failure+=("${result}")
rm -f PKGBUILD_version_upgrade.tmp
popd >/dev/null popd >/dev/null
continue continue
fi fi
@@ -157,7 +148,6 @@ pkgctl_version_upgrade() {
if ! result=$(vercmp "${upstream_version}" "${pkgver}"); then if ! result=$(vercmp "${upstream_version}" "${pkgver}"); then
result="${BOLD}${pkgbase}${ALL_OFF}: failed to compare version ${upstream_version} against ${pkgver}" result="${BOLD}${pkgbase}${ALL_OFF}: failed to compare version ${upstream_version} against ${pkgver}"
failure+=("${result}") failure+=("${result}")
rm -f PKGBUILD_version_upgrade.tmp
popd >/dev/null popd >/dev/null
continue continue
fi fi
@@ -165,19 +155,16 @@ pkgctl_version_upgrade() {
if (( result == 0 )); then if (( result == 0 )); then
result="${BOLD}${pkgbase}${ALL_OFF}: current version ${PURPLE}${pkgver}${ALL_OFF} is latest" result="${BOLD}${pkgbase}${ALL_OFF}: current version ${PURPLE}${pkgver}${ALL_OFF} is latest"
up_to_date+=("${result}") up_to_date+=("${result}")
rm -f PKGBUILD_version_upgrade.tmp
elif (( result < 0 )); then elif (( result < 0 )); then
result="${BOLD}${pkgbase}${ALL_OFF}: current version ${PURPLE}${pkgver}${ALL_OFF} is newer than ${DARK_GREEN}${upstream_version}${ALL_OFF}" result="${BOLD}${pkgbase}${ALL_OFF}: current version ${PURPLE}${pkgver}${ALL_OFF} is newer than ${DARK_GREEN}${upstream_version}${ALL_OFF}"
up_to_date+=("${result}") up_to_date+=("${result}")
rm -f PKGBUILD_version_upgrade.tmp
elif (( result > 0 )); then elif (( result > 0 )); then
result="${BOLD}${pkgbase}${ALL_OFF}: upgraded from version ${PURPLE}${pkgver}${ALL_OFF} to ${DARK_GREEN}${upstream_version}${ALL_OFF}" result="${BOLD}${pkgbase}${ALL_OFF}: upgraded from version ${PURPLE}${pkgver}${ALL_OFF} to ${DARK_GREEN}${upstream_version}${ALL_OFF}"
out_of_date+=("${result}") out_of_date+=("${result}")
out_of_date_paths+=("${path}")
# make changes to the temporary PKGBUILD file # change the PKGBUILD
pkgbuild_set_pkgver "${upstream_version}" PKGBUILD_version_upgrade.tmp pkgbuild_set_pkgver "${upstream_version}"
pkgbuild_set_pkgrel 1 PKGBUILD_version_upgrade.tmp pkgbuild_set_pkgrel 1
# download sources and update the checksums # download sources and update the checksums
if (( update_checksums )); then if (( update_checksums )); then
@@ -191,10 +178,9 @@ pkgctl_version_upgrade() {
"${pkgbase}" \ "${pkgbase}" \
"updating checksums" "updating checksums"
if ! result=$(pkgbuild_update_checksums /dev/null PKGBUILD_version_upgrade.tmp); then if ! result=$(pkgbuild_update_checksums /dev/null); then
result="${BOLD}${pkgbase}${ALL_OFF}: failed to update checksums for version ${DARK_GREEN}${upstream_version}${ALL_OFF}" result="${BOLD}${pkgbase}${ALL_OFF}: failed to update checksums for version ${DARK_GREEN}${upstream_version}${ALL_OFF}"
failure+=("${result}") failure+=("${result}")
cp PKGBUILD "${status_dir}/PKGBUILD-tmp" && mv -f PKGBUILD_version_upgrade.tmp PKGBUILD && mv "${status_dir}/PKGBUILD-tmp" PKGBUILD_version_upgrade.tmp
fi fi
fi fi
fi fi
@@ -239,47 +225,6 @@ pkgctl_version_upgrade() {
"${#failure[@]}" "${#failure[@]}"
fi fi
# upgrade out of date packages
for ood_path in "${out_of_date_paths[@]}"; do
pushd "${ood_path}" >/dev/null
# print changes
echo
diff --unified --color PKGBUILD PKGBUILD_version_upgrade.tmp || true
# if --noconfirm is passed, directly apply changes without asking for confirmation
if (( noconfirm == 1 )); then
apply_changes=1
else
apply_changes=0
fi
# ask confirmation before making changes to the actual PKGBUILD
if (( apply_changes == 0 )); then
echo
if prompt "${GREEN}${BOLD}?${ALL_OFF} Apply changes to the PKGBUILD?"; then
apply_changes=1
fi
fi
# apply changes to the actual PKGBUILD
if (( apply_changes == 1 )); then
if ! (diff --unified PKGBUILD PKGBUILD_version_upgrade.tmp || true) | git apply; then
msg_error " Fail to apply changes" 2>&1
exit_code=1
else
echo
msg_success " Changes applied"
fi
fi
# delete temporary PKGBUILD file
rm -f PKGBUILD_version_upgrade.tmp
popd >/dev/null
done
# return status based on results # return status based on results
return "${exit_code}" return "${exit_code}"
} }