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
5 changed files with 3 additions and 162 deletions

View File

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

View File

@@ -901,61 +901,3 @@ gitlab_issue_state_color() {
fi
printf "%s" "${state_color}"
}
# Star a GitLab project
gitlab_api_star() {
local pkgbase=$1
local outfile project_path project_id
[[ -z ${WORKDIR:-} ]] && setup_workdir
outfile=$(mktemp --tmpdir="${WORKDIR}" pkgctl-gitlab-api.XXXXXXXXXX)
project_path=$(gitlab_project_name_to_path "${pkgbase}")
# Get project details first
if ! gitlab_api_call "${outfile}" GET "projects/archlinux%2fpackaging%2fpackages%2f${project_path}/"; then
return 1
fi
# Extract project ID
if ! project_id=$(jq --raw-output --exit-status '.id' < "${outfile}"); then
msg_error " failed to get project ID: $(cat "${outfile}")"
return 1
fi
# Star the project
if ! gitlab_api_call "${outfile}" POST "/projects/${project_id}/star"; then
return 1
fi
return 0
}
# Unstar a GitLab project
gitlab_api_unstar() {
local pkgbase=$1
local outfile project_path project_id
[[ -z ${WORKDIR:-} ]] && setup_workdir
outfile=$(mktemp --tmpdir="${WORKDIR}" pkgctl-gitlab-api.XXXXXXXXXX)
project_path=$(gitlab_project_name_to_path "${pkgbase}")
# Get project details first
if ! gitlab_api_call "${outfile}" GET "projects/archlinux%2fpackaging%2fpackages%2f${project_path}/"; then
return 1
fi
# Extract project ID
if ! project_id=$(jq --raw-output --exit-status '.id' < "${outfile}"); then
msg_error " failed to get project ID: $(cat "${outfile}")"
return 1
fi
# Unstar the project
if ! gitlab_api_call "${outfile}" POST "/projects/${project_id}/unstar"; then
return 1
fi
return 0
}

View File

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

View File

@@ -1,89 +0,0 @@
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
[[ -z ${DEVTOOLS_INCLUDE_STAR_SH:-} ]] || return 0
DEVTOOLS_INCLUDE_STAR_SH=1
_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}
# shellcheck source=src/lib/api/gitlab.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/api/gitlab.sh
set -e
pkgctl_star_usage() {
local -r COMMAND=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
cat <<- _EOF_
Usage: ${COMMAND} [OPTIONS] [PKGBASE...]
Star a package's GitLab project.
If no package is specified, the current directory's package will be used.
Multiple packages can be specified to star multiple projects at once.
Every usage of the star command must be authenticated. Consult the
'pkgctl auth' command to authenticate with GitLab or view the
authentication status.
OPTIONS
-h, --help Show this help text
-u, --unstar Remove star from the project instead
EXAMPLES
$ ${COMMAND} pacman
$ ${COMMAND} --unstar pacman
$ ${COMMAND} libfoo libbar
_EOF_
}
pkgctl_star() {
if (( $# == 0 )) && [[ ! -f PKGBUILD ]]; then
pkgctl_star_usage
exit 1
fi
# Check authentication
if [[ -z ${GITLAB_TOKEN} ]]; then
die "GitLab authentication required. Run 'pkgctl auth login' first"
fi
local unstar=0
local pkgbases=()
# option checking
while (( $# )); do
case $1 in
-h|--help)
pkgctl_star_usage
exit 0
;;
-u|--unstar)
unstar=1
shift
;;
-*)
die "invalid argument: %s" "$1"
;;
*)
pkgbases+=("$1")
shift
;;
esac
done
# Use current directory if no packages specified
if (( ${#pkgbases[@]} == 0 )); then
pkgbases=("$(basename "$PWD")")
fi
# Star/unstar each package
for pkgbase in "${pkgbases[@]}"; do
if (( unstar )); then
msg "Unstarring %s..." "${pkgbase}"
gitlab_api_unstar "${pkgbase}"
else
msg "Starring %s..." "${pkgbase}"
gitlab_api_star "${pkgbase}"
fi
done
}

View File

@@ -29,7 +29,6 @@ usage() {
release Release step to commit, tag and upload build artifacts
repo Manage Git packaging repositories and their configuration
search Search for an expression across the GitLab packaging group
star Star a package's GitLab project
version Check and manage package versions against upstream
OPTIONS
@@ -139,14 +138,6 @@ while (( $# )); do
pkgctl_search "$@"
exit 0
;;
star)
_DEVTOOLS_COMMAND+=" $1"
shift
# shellcheck source=src/lib/star.sh
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/star.sh
pkgctl_star "$@"
exit 0
;;
version)
_DEVTOOLS_COMMAND+=" $1"
shift