diff --git a/.mailmap b/.mailmap index c6ba0085..62fb8e30 100644 --- a/.mailmap +++ b/.mailmap @@ -12,7 +12,7 @@ Daenyth Blank Dave Reisner 甘露(Gan Lu) Giovanni Scafora -Jan Steffens +Jan Alexander Steffens (heftig) Jaroslaw Swierczynski Jonathan Conder Juan Pablo González Tognarelli diff --git a/NEWS b/NEWS index 3570340e..2908348d 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ VERSION DESCRIPTION ----------------------------------------------------------------------------- -7.0.0 - Add DownloadUser configuation option used to drop-privileges +7.0.0 - Add DownloadUser configuration option used to drop-privileges when downloading files. - Download files to a temporary directory owned by DownloadUser - On Linux systems, ensure the download process does not write @@ -649,7 +649,7 @@ VERSION DESCRIPTION file overwrites from malicious databases - makepkg: - restrict package name from starting with a dot - - fix BZR source revision support (FS#35281) + - fix Bazaar source revision support (FS#35281) - Use LOGDEST for log pipe - fix distcc disabling (FS#35741) - correct stat usage on BSD/Darwin (FS#35469) @@ -665,7 +665,7 @@ VERSION DESCRIPTION FS#34716, FS#35097) - makepkg: - improve SVN VCS PKGBUILD handling (FS#34675, FS#34636) - - allow "lp:" URLs for BZR sources (FS#34650) + - allow "lp:" URLs for Bazaar sources (FS#34650) - prevent pkgver() capturing stderr (FS#34974) - fix attempt to remove package twice on failure (FS#34672) - contrib: @@ -1338,7 +1338,7 @@ VERSION DESCRIPTION - add source package creation option - rankmirrors- allow reading from stdin (FS#8043) - and many other updates: 198 bugs/FRs closed since 3.0.0 release - - switch to GIT for source code management + - switch to Git for source code management 3.0.6 - config files updated to reflect current -> core change - fix symlink overwriting issue (FS#7484) - fix config parsing with tr_TR locale (FS#7235) @@ -1490,7 +1490,7 @@ VERSION DESCRIPTION - Cleanup db_loadpkgs(), add list_add_sorted() - Fixed a memory leak in db_find_conflicts() 2.8.3 - Fixed a little makepkg bug with bash 3.0 - - Fixed resolvedeps to always prefer literals over provisios + - Fixed resolvedeps to always prefer literals over providers - Added --config option to specify an alternate config file - Added "Include" directive to include repositories from config files (inspired by Michael Baehr's patch) diff --git a/README b/README index b77dba4a..11406244 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ Package Management) library. This document, while not exhaustive, also indicates some limitations (on purpose, or sometimes due to its poor design) of the library at the present time. -There is one special file,"alpm.h", which is the public interface that +There is one special file, "alpm.h", which is the public interface that should be distributed and installed on systems with the library. Only structures, data and functions declared within this file are made available to the frontend. Lots of structures are of an opaque type and their fields are @@ -239,7 +239,7 @@ API CHANGES BETWEEN 3.1 AND 3.2 - alpm_checkdbconflicts() - alpm_sync_newversion() - alpm_deptest() -- error codes : +- error codes: PM_ERR_DLT_INVALID, PM_ERR_LIBARCHIVE, PM_ERR_LIBDOWNLOAD and PM_ERR_EXTERNAL_DOWNLOAD - flags: @@ -352,7 +352,7 @@ API CHANGES BETWEEN 3.4 AND 3.5 - alpm_db_get_pkg() for normal targets - alpm_find_dbs_satisfier() for versioned provisions - alpm_find_grp_pkgs() for groups -- alpm_deptest() is replaced by the more flexibile alpm_find_satisfier() +- alpm_deptest() is replaced by the more flexible alpm_find_satisfier() - size_t used for alpm_list_t sizes - return type for alpm_list_count() - parameter type in alpm_list_msort() and alpm_list_nth() @@ -362,11 +362,11 @@ API CHANGES BETWEEN 3.4 AND 3.5 - alpm_find_grp_pkgs() - alpm_trans_get_flags() - error codes: - PM_ERR_DISK_SPACE, PM_ERR_WRITE -- flags - PM_TRANS_FLAG_NODEPVERSION, PM_TRANS_EVT_DISKSPACE_START, - PM_TRANS_EVT_DISKSPACE_DONE, PM_TRANS_CONV_SELECT_PROVIDER, - PM_TRANS_PROGRESS_DISKSPACE_START, PM_TRANS_PROGRESS_INTEGRITY_START + PM_ERR_DISK_SPACE, PM_ERR_WRITE +- flags: + PM_TRANS_FLAG_NODEPVERSION, PM_TRANS_EVT_DISKSPACE_START, + PM_TRANS_EVT_DISKSPACE_DONE, PM_TRANS_CONV_SELECT_PROVIDER, + PM_TRANS_PROGRESS_DISKSPACE_START, PM_TRANS_PROGRESS_INTEGRITY_START API CHANGES BETWEEN 3.5 AND 4.0 @@ -419,7 +419,7 @@ API CHANGES BETWEEN 3.5 AND 4.0 - alpm_release - alpm_remove_pkg - alpm_sync_sysupgrade -- several structs are no longer opaque +- several structs are no longer opaque: - alpm_conflict_t - alpm_delta_t - alpm_depend_t @@ -431,19 +431,33 @@ API CHANGES BETWEEN 3.5 AND 4.0 [ADDED] - option functions: - alpm_{get,set}_eventcb(), alpm_option_{get,set}_convcb(), - alpm_option_{get,set}_progresscb() + - alpm_{get,set}_eventcb() + - alpm_option_{get,set}_convcb() + - alpm_option_{get,set}_progresscb() - package signing functions: - alpm_option_get_default_siglevel(), alpm_option_set_default_siglevel(), - alpm_option_get_gpgdir(), alpm_option_set_gpgdir(), alpm_db_get_siglevel(), - alpm_siglist_cleanup(), alpm_db_check_pgp_signature(), alpm_pkg_check_pgp_signature(), - alpm_pkg_get_origin(), alpm_pkg_get_sha256sum(), alpm_pkg_get_base64_sig() + - alpm_option_get_default_siglevel() + - alpm_option_set_default_siglevel() + - alpm_option_get_gpgdir() + - alpm_option_set_gpgdir() + - alpm_db_get_siglevel() + - alpm_siglist_cleanup() + - alpm_db_check_pgp_signature() + - alpm_pkg_check_pgp_signature() + - alpm_pkg_get_origin() + - alpm_pkg_get_sha256sum() + - alpm_pkg_get_base64_sig() - list functions: - alpm_list_to_array(), alpm_list_previous() + - alpm_list_to_array() + - alpm_list_previous() - structs: - alpm_backup_t, alpm_file_t, alpm_filelist_t + - alpm_backup_t + - alpm_file_t + - alpm_filelist_t - enums: - alpm_siglevel_t, alpm_sigstatus_t, alpm_sigvalidity_t, alpm_pkgfrom_t + - alpm_siglevel_t + - alpm_sigstatus_t + - alpm_sigvalidity_t + - alpm_pkgfrom_t - error codes: ALPM_ERR_DB_INVALID, ALPM_ERR_DB_INVALID_SIG, ALPM_ERR_GPGME, ALPM_ERR_PKG_INVALID_CHECKSUM, ALPM_ERR_PKG_INVALID_SIG, ALPM_ERR_SIG_INVALID, @@ -470,10 +484,10 @@ API CHANGES BETWEEN 4.0 AND 4.1 - alpm_db_unregister_all -> alpm_unregister_all_syncdbs - alpm_db_readgroup -> alpm_db_get_group - alpm_db_set_pkgreason -> alpm_pkg_set_reason (handle parameter removed) -- alpm_time_t typedef used for all times +- alpm_time_t typedef used for all times: - members of alpm_pgpkey_t - return types of alpm_pkg_get_builddate and alpm_pkg_get_installdate -- delta options now use required ratio rather than on/off +- delta options now use required ratio rather than on/off: - alpm_option_get_usedelta -> alpm_option_get_deltaratio - alpm_option_set_usedelta -> alpm_option_set_deltaratio @@ -490,21 +504,21 @@ API CHANGES BETWEEN 4.0 AND 4.1 - alpm_db_usage_t - alpm_db_set_usage() - alpm_db_get_usage() -- wrapper functions for reading mtree files +- wrapper functions for reading mtree files: - alpm_pkg_mtree_open() - alpm_pkg_mtree_next() - alpm_pkg_mtree_close() -- utility functions +- utility functions: - alpm_pkg_find() - alpm_pkg_compute_optionalfor() - alpm_filelist_contains() -- types +- types: - alpm_time_t - alpm_errno_t -- flags - ALPM_EVENT_OPTDEP_REQUIRED, ALPM_EVENT_DATABASE_MISSING, - ALPM_EVENT_KEYRING_START, ALPM_EVENT_KEYRING_DONE, ALPM_EVENT_KEY_DOWNLOAD_START, - ALPM_EVENT_KEY_DOWNLOAD_DONE, ALPM_PROGRESS_KEYRING_START +- flags: + ALPM_EVENT_OPTDEP_REQUIRED, ALPM_EVENT_DATABASE_MISSING, + ALPM_EVENT_KEYRING_START, ALPM_EVENT_KEYRING_DONE, ALPM_EVENT_KEY_DOWNLOAD_START, + ALPM_EVENT_KEY_DOWNLOAD_DONE, ALPM_PROGRESS_KEYRING_START API CHANGES BETWEEN 4.1 AND 4.2 @@ -513,49 +527,49 @@ API CHANGES BETWEEN 4.1 AND 4.2 [CHANGED] - alpm_filelist_t - removed member resolved_path - alpm_filelist_contains - now returns alpm_file_t -- event callback - - alpm_event_t renamed to alpm_event_type_t - - alpm_event_t union added - - alpm_event_cb now takes only an alpm_event_t parameter - - alpm_event_any_t, alpm_package_operation_t, alpm_event_package_operation_t, - alpm_event_optdep_removal_t, alpm_event_delta_patch_t, alpm_event_scriptlet_info_t, - alpm_event_database_missing_t, alpm_event_pkgdownload_t, alpm_event_pacnew_created_t, - alpm_event_pacsave_created_t, alpm_event_pacorig_created_t added - - ALPM_EVENT_*_START -> ALPM_EVENT_PACKAGE_OPERATION_START - - ALPM_EVENT_*_DONE -> ALPM_EVENT_PACKAGE_OPERATION_DONE -- question callback - - alpm_question_t renamed to alpm_question_type_t - - alpm_question_t union added - - alpm_cb_question now takes only an alpm_question_t parameter - - alpm_question_any_t, alpm_question_install_ignorepkg_t, alpm_question_replace_t - alpm_question_conflict_t, alpm_question_corrupted_t, alpm_question_remove_pkgs_t, - alpm_question_select_provider_t, alpm_question_import_key_t added +- event callback: + - alpm_event_t renamed to alpm_event_type_t + - alpm_event_t union added + - alpm_event_cb now takes only an alpm_event_t parameter + - alpm_event_any_t, alpm_package_operation_t, alpm_event_package_operation_t, + alpm_event_optdep_removal_t, alpm_event_delta_patch_t, alpm_event_scriptlet_info_t, + alpm_event_database_missing_t, alpm_event_pkgdownload_t, alpm_event_pacnew_created_t, + alpm_event_pacsave_created_t, alpm_event_pacorig_created_t added + - ALPM_EVENT_*_START -> ALPM_EVENT_PACKAGE_OPERATION_START + - ALPM_EVENT_*_DONE -> ALPM_EVENT_PACKAGE_OPERATION_DONE +- question callback: + - alpm_question_t renamed to alpm_question_type_t + - alpm_question_t union added + - alpm_cb_question now takes only an alpm_question_t parameter + - alpm_question_any_t, alpm_question_install_ignorepkg_t, alpm_question_replace_t + alpm_question_conflict_t, alpm_question_corrupted_t, alpm_question_remove_pkgs_t, + alpm_question_select_provider_t, alpm_question_import_key_t added [ADDED] -- memory management +- memory management: - alpm_fileconflict_free() - alpm_depmissing_free() - alpm_conflict_free() - alpm_dep_free() -- database usage +- database usage: - alpm_db_usage_t - alpm_db_set_usage() - alpm_db_get_usage() -- assume installed +- assume installed: - alpm_option_get_assumeinstalled() - alpm_option_add_assumeinstalled() - alpm_option_set_assumeinstalled() - alpm_option_remove_assumeinstalled() -- using noupgrade/noextract +- using noupgrade/noextract: - alpm_option_match_noupgrade() - alpm_option_match_noextract() -- utility functions +- utility functions: - alpm_dep_from_string() - alpm_pkg_should_ignore() - alpm_decode_signature() - alpm_extract_keyid() -- flags - - ALPM_EVENT_RETRIEVE_DONE, ALPM_EVENT_RETRIEVE_FAILED, ALPM_EVENT_PKGDOWNLOAD_START, +- flags: + ALPM_EVENT_RETRIEVE_DONE, ALPM_EVENT_RETRIEVE_FAILED, ALPM_EVENT_PKGDOWNLOAD_START, ALPM_EVENT_PKGDOWNLOAD_DONE, ALPM_EVENT_PKGDOWNLOAD_FAILED, ALPM_EVENT_OPTDEP_REMOVAL, ALPM_EVENT_PACNEW_CREATED, ALPM_EVENT_PACSVAE_CREATED, ALPM_EVENT_PACORIG_CREATED @@ -565,13 +579,13 @@ API CHANGES BETWEEN 4.2 AND 5.0 [REMOVED] - alpm_siglevel_t - removed members ALPM_SIG_PACKAGE_SET, ALPM_SIG_PACKAGE_TRUST_SET -- removed .pacorig generation +- removed .pacorig generation: - ALPM_EVENT_PACORIG_CREATED - alpm_event_pacorig_created_t - alpm_event_t.pacorig_created [ADDED] -- hook support +- hook support: - alpm_option_get_hookdirs() - alpm_option_set_hookdirs() - alpm_option_add_hookdir() @@ -581,14 +595,14 @@ API CHANGES BETWEEN 4.2 AND 5.0 - ALPM_EVENT_HOOK_START, ALPM_EVENT_HOOK_DONE - ALPM_EVENT_HOOK_RUN_START, ALPM_EVENT_HOOK_RUN_DONE - ALPM_ERR_TRANS_HOOK_FAILED -- different database extension support +- different database extension support: - alpm_option_get_dbext() - alpm_option_set_dbext() -- pkgbase accessor +- pkgbase accessor: - alpm_pkg_get_base() -- transaction events +- transaction events: - ALPM_EVENT_TRANSACTION_START, ALPM_EVENT_TRANSACTION_DONE -- database unlocking +- database unlocking: - alpm_unlock() @@ -598,7 +612,7 @@ API CHANGES BETWEEN 5.0 AND 5.1 [CHANGED] - alpm_errno_t - added member ALPM_ERR_OK - alpm_siglevel_t - value of ALPM_SIG_USE_DEFAULT changed -- functions using bitfields return/pass an int instead of an enum +- functions using bitfields return/pass an int instead of an enum: - alpm_option_get_default_siglevel() - alpm_option_set_default_siglevel() - alpm_option_get_remote_file_siglevel() @@ -615,19 +629,19 @@ API CHANGES BETWEEN 5.0 AND 5.1 - alpm_option_set_local_file_siglevel() [ADDED] -- overwrite support +- overwrite support: - alpm_option_get_overwrite_files() - alpm_option_set_overwrite_files() - alpm_option_add_overwrite_file() - alpm_option_remove_overwrite_file() -- download timeout control +- download timeout control: - alpm_option_set_disable_dl_timeout() -- access make/checkdepends info +- access make/checkdepends info: - alpm_pkg_get_checkdepends() - alpm_pkg_get_makedepends() -- check pacman capabilities +- check pacman capabilities: - alpm_capabilities() -- duplicate and add to list +- duplicate and add to list: - alpm_list_append_strdup() @@ -635,7 +649,7 @@ API CHANGES BETWEEN 5.1 AND 5.2 =============================== [REMOVED] -- package delta support +- package delta support: - alpm_delta_t - alpm_event_delta_patch_t - alpm_event_t union - removed alpm_event_delta_patch_t @@ -662,10 +676,10 @@ API CHANGES BETWEEN 5.2 AND 6.0 [REMOVED] - ALPM_EVENT_PKGDOWNLOAD_START, ALPM_EVENT_PKGDOWNLOAD_DONE, ALPM_EVENT_PKGDOWNLOAD_FAILED - ALPM_ERR_PKG_REPO_NOT_FOUND -- old TotalDownload implementation - - alpm_cb_totaldl - - alpm_option_get_totaldlcb() - - alpm_option_set_totaldlcb() +- old TotalDownload implementation: + - alpm_cb_totaldl + - alpm_option_get_totaldlcb() + - alpm_option_set_totaldlcb() [CHANGED] - alpm_db_update() now accepts a list of databases rather than a single database. @@ -673,29 +687,29 @@ API CHANGES BETWEEN 5.2 AND 6.0 - alpm_db_search() now has an additional parameter and returns success status - ALPM_EVENT_RETRIEVE_* -> ALPM_EVENT_DB_RETRIEVE_* and ALPM_EVENT_PKG_RETRIEVE_* - alpm_cb_download pass event and data -- multi architecture support - - alpm_option_get_arch() -> alpm_option_get_architectures() - - alpm_option_set_arch() -> alpm_option_set_architectures() +- multi architecture support: + - alpm_option_get_arch() -> alpm_option_get_architectures() + - alpm_option_set_arch() -> alpm_option_set_architectures() - alpm_db_get_servers() copies parameter data [ADDED] -- parallel download support - - alpm_option_set_parallel_downloads() - - alpm_option_get_parallel_downloads() -- file download events - - alpm_download_event_type_t - - alpm_download_event_init_t - - alpm_download_event_progress_t - - alpm_download_event_completed_t -- download misc - - ALPM_DOWNLOAD_RETRY - - alpm_download_event_retry_t - - alpm_event_pkg_retrieve_t -- multiarchitecture support - - alpm_option_add_architecture() - - alpm_option_remove_architecture() -- misc - - alpm_pkg_get_sig() +- parallel download support: + - alpm_option_set_parallel_downloads() + - alpm_option_get_parallel_downloads() +- file download events: + - alpm_download_event_type_t + - alpm_download_event_init_t + - alpm_download_event_progress_t + - alpm_download_event_completed_t +- download misc: + - ALPM_DOWNLOAD_RETRY + - alpm_download_event_retry_t + - alpm_event_pkg_retrieve_t +- multiarchitecture support: + - alpm_option_add_architecture() + - alpm_option_remove_architecture() +- misc: + - alpm_pkg_get_sig() - callbacks add front-end provided context @@ -713,23 +727,32 @@ API CHANGES BETWEEN 6.0 AND 6.1 - alpm_transflag_t - added ALPM_TRANS_FLAG_NOHOOKS [ADDED] -- extensible package data type - - alpm_pkg_xdata_t - - alpm_pkg_get_xdata() -- accessor functions - - alpm_db_get_handle() - - alpm_pkg_get_handle() -- cache server support - - alpm_db_get_cache_servers() - - alpm_db_set_cache_servers() - - alpm_db_add_cache_server() +- extensible package data type: + - alpm_pkg_xdata_t + - alpm_pkg_get_xdata() +- accessor functions: + - alpm_db_get_handle() + - alpm_pkg_get_handle() +- cache server support: + - alpm_db_get_cache_servers() + - alpm_db_set_cache_servers() + - alpm_db_add_cache_server() + API CHANGES BETWEEN 6.1 AND 7.0 =============================== [ADDED] -- sandbox functions - - alpm_option_get_sandboxuser() - - alpm_option_set_sandboxuser() - - alpm_option_set_disable_sandbox() - - alpm_sandbox_setup_child() +- sandbox functions: + - alpm_option_get_sandboxuser() + - alpm_option_set_sandboxuser() + - alpm_option_set_disable_sandbox() + - alpm_sandbox_setup_child() + + +API CHANGES BETWEEN 7.0 AND 7.1 +=============================== + +[CHANGED] +- error codes: + PM_ERR_TRANS_COMMITING renamed to PM_ERR_TRANS_COMMITTING diff --git a/TRANSLATORS b/TRANSLATORS index 4648263a..9b930f64 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -3,7 +3,7 @@ currently. Our translations are currently maintained in Transifex; please read doc/translation-help.txt for more details. Below is a list of past translators before we switched to Transifex; more can -be found by looking in the GIT history. +be found by looking in the Git history. If your language is not already in the various po/ subdirectories and you wish it was, set up a team in Transifex for your language and we will be happy to diff --git a/doc/PKGBUILD.5.asciidoc b/doc/PKGBUILD.5.asciidoc index 9e2c36fa..1cd31f73 100644 --- a/doc/PKGBUILD.5.asciidoc +++ b/doc/PKGBUILD.5.asciidoc @@ -313,6 +313,15 @@ underscore and the architecture name e.g., 'replaces_x86_64=()'. Enable building packages using link time optimization. Adds '-flto' to both CFLAGS and CXXFLAGS. +*xdata (array)*:: + This array allows you to add additional metadata to the package. + This data is neither used by pacman nor by makepkg; + It has purely informational purpose, or may be interpreted by third-party tools. ++ +All entries in that array must have the form 'key=value', where +'key' is an arbitrary non-empty string and 'value' must not contain an equal sign. +Furthermore, the key ``pkgtype'' is reserved for the makepkg program. + Packaging Functions ------------------- diff --git a/doc/asciidoc.conf b/doc/asciidoc.conf index 830cc908..27f996d3 100644 --- a/doc/asciidoc.conf +++ b/doc/asciidoc.conf @@ -1,5 +1,5 @@ ## linkman: macro -# Inspired by/borrowed from the GIT source tree at Documentation/asciidoc.conf +# Inspired by/borrowed from the Git source tree at Documentation/asciidoc.conf # # Usage: linkman:command[manpage-section] # diff --git a/doc/index.asciidoc b/doc/index.asciidoc index ffc10b2b..ddd32cfe 100644 --- a/doc/index.asciidoc +++ b/doc/index.asciidoc @@ -252,7 +252,7 @@ the package database if it helps. Copyright --------- -pacman is Copyright (C) 2006-2024 Pacman Development Team +pacman is Copyright (C) 2006-2025 Pacman Development Team and Copyright (C) 2002-2006 Judd Vinet and is licensed through the GNU General Public License, version 2 or later. diff --git a/doc/makepkg.8.asciidoc b/doc/makepkg.8.asciidoc index 89ac5109..69a5fd64 100644 --- a/doc/makepkg.8.asciidoc +++ b/doc/makepkg.8.asciidoc @@ -247,6 +247,11 @@ Environment Variables Use an alternate config file instead of the +{sysconfdir}/makepkg.conf+ default. +**MAKEPKG_GIT_CONFIG=**"/path/to/file":: + Use an alternate config file for Git instead of the + +{sysconfdir}/makepkg.d/gitconfig+ default. makepkg always prevents Git + from loading any other config files. + **PKGDEST=**"/path/to/directory":: Directory where the resulting packages will be stored. Overrides the corresponding value defined in linkman:makepkg.conf[5]. diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index e0c3b73d..dea237cb 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -151,7 +151,8 @@ Options +{localstatedir}/cache/pacman/pkg+). Multiple cache directories can be specified, and they are tried in the order they are passed to pacman. *NOTE*: This is an absolute path, and the root path is not automatically - prepended. + prepended. If DownloadUser is set in linkman:pacman.conf[5], then the + specified user must have permission to access the cache directory. *\--color* :: Specify when to enable coloring. Valid options are 'always', 'never', or diff --git a/doc/repo-add.8.asciidoc b/doc/repo-add.8.asciidoc index a6f77cd4..352a4e5f 100644 --- a/doc/repo-add.8.asciidoc +++ b/doc/repo-add.8.asciidoc @@ -29,9 +29,10 @@ specified on the command line. Multiple packages to remove can be specified on the command line. A package database is a tar file, optionally compressed. Valid extensions are -``.db'' followed by an archive extension of ``.tar'', ``.tar.gz'', ``.tar.bz2'', -``.tar.xz'', or ``.tar.Z''. The file does not need to exist, but all parent -directories must exist. +``.db'' followed by an archive extension of ``.tar'', ``.tar.bz2'', +``.tar.gz'', ``.tar.lrz'', ``.tar.lz'', ``.tar.lz4'', ``.tar.lzo'', +``.tar.xz'', ``.tar.zst'' or ``.tar.Z''. The file does not need to exist, but +all parent directories must exist. Common Options @@ -59,6 +60,14 @@ Common Options *\--nocolor*:: Remove color from 'repo-add' and 'repo-remove' output. +*-R, \--remove*:: + Remove old package files from the disk when updating or removing their + entry in the database. + +*-w, \--wait-for-lock*:: + Wait for the lock file to be acquired. If unset, command will fail with + exit code 2 if acquiring the lock fails. If set, it will retry to acquire + lock until success. repo-add Options ---------------- @@ -66,10 +75,6 @@ repo-add Options Only add packages that are not already in the database. Warnings will be printed upon detection of existing packages, but they will not be re-added. -*-R, \--remove*:: - Remove old package files from the disk when updating their entry in the - database. - *\--include-sigs*:: Include package PGP signatures in the repository database (if available) diff --git a/doc/submitting-patches.asciidoc b/doc/submitting-patches.asciidoc index d042ca5f..aeb5a019 100644 --- a/doc/submitting-patches.asciidoc +++ b/doc/submitting-patches.asciidoc @@ -11,9 +11,9 @@ NOTE: Some of this is paraphrased from the kernel documentation's Getting the most recent source ------------------------------ -Patches need to be submitted in GIT format and are best if they are against the +Patches need to be submitted in Git format and are best if they are against the latest version of the code. There are several helpful tutorials for getting -started with GIT if you have not worked with it before. +started with Git if you have not worked with it before. * https://www.kernel.org/pub/software/scm/git/docs/gittutorial.html * https://wiki.archlinux.org/index.php/Super_Quick_Git_Guide diff --git a/doc/translation-help.asciidoc b/doc/translation-help.asciidoc index b0ad9b6d..4f33252b 100644 --- a/doc/translation-help.asciidoc +++ b/doc/translation-help.asciidoc @@ -4,10 +4,10 @@ Pacman - Translating This document is here to guide you in helping translate pacman messages, libalpm messages, and the manual pages for the entire pacman package. -We are currently using https://www.transifex.com/[Transifex] as the translation +We are currently using https://app.transifex.com/[Transifex] as the translation platform for pacman and libalpm. You will need to sign up for an account there and then register with a translation team on the -https://www.transifex.com/projects/p/archlinux-pacman/[pacman project page]. +https://explore.transifex.com/toofishes/archlinux-pacman/[pacman project page]. NOTE: This may be old information due to our switch to Transifex, but the gettext website is a very useful guide to read before embarking on translation @@ -31,7 +31,7 @@ either be hand-edited, or modified with a tool such as poedit, gtranslator or kbabel. Using a translation tool tends to make the job easier. Please read up on Transifex usage using the -https://docs.transifex.com/[Transifex Help] if you are not familiar. +https://help.transifex.com/[Transifex Help] if you are not familiar. Transifex provides a command-line client to help with translations. Here is an example set of commands if you have a source code checkout and are not @@ -56,19 +56,19 @@ Pre-release Updates A week or two before each release, the codebase will go into a string freeze and an email will be sent to the mailto:pacman-dev@lists.archlinux.org[pacman-dev] -mailing list asking for translations. This email will have a prefix of -*[translation]* for anyone looking to set up an email filter. +mailing list asking for translations. An announcement in Transifex is also made, +which reaches everyone that is member of the translation team. At this time, the latest `.po` language files will be made available at the -Transifex project page. Each language will have two files available (back-end -and front-end). Translators interested in helping are encouraged to use the +Transifex project page. Each language will have three files available (libalpm, +pacman and pacman-scripts). Translators interested in helping are encouraged to use the features of Transifex to let others know they are currently translating their language. -Once a translator has completed the translation (*OR* realizes they do not have +Once a translator has completed the translation offline (*OR* realizes they do not have time to finish), please upload your progress back to the Transifex site. -NOTE: Please upload your translations as soon as possible- this will give other +NOTE: Please upload your translations as soon as possible - this will give other speakers of your language time to review your translations and update them as necessary. @@ -80,21 +80,25 @@ repository. git clone https://gitlab.archlinux.org/pacman/pacman.git -Next, you will need to run `./autogen.sh` and `./configure` in the base -directory to generate the correct Makefiles. At this point, all necessary -make targets will be generated and we can begin updating the translation -files. +Next, you will need to configure the build environment. From the base directory, +run: -We need to first update the main message catalog file. Navigate into either the -`lib/libalpm/po` or `po` directory depending on which translation you wish to -work on first, and execute the following command. If you are working in the -`po/` tree, replace 'libalpm.pot' with 'pacman.pot': + meson setup . build - make libalpm.pot-update +If any required dependencies are missing, please install. After that, +update the template translation (.pot) files to the latest state of +the source code by running: + + meson compile -C build pacman-scripts-pot pacman-pot libalpm-pot + +We need to first update the main message catalog file. Navigate into either +the `lib/libalpm/po`, `scripts/po` or `src/pacman/po` directory depending +on which translation you wish to work on first, and execute the following +command to update your specific language's translation file +(replace `lang_code` with your language code e.g. 'pt_BR', and `pot_file` +with `libalpm.pot`, `pacman.pot` or `pacman-scripts.pot`): -Next, update your specific language's translation file: - - make -update + msgmerge --update --previous .po .pot At this point, you can do the translation. To submit your changes, either email the new `.po` file to the mailing-list with *[translation]* in the subject, or @@ -103,7 +107,7 @@ submit a Git-formatted patch (please do not include any `.pot` file changes). As a shortcut, all translation files (including `.pot` files) can be updated with the following command: - make update-po + ./build-aux/update-po Adding a New Language ~~~~~~~~~~~~~~~~~~~~~ @@ -112,10 +116,10 @@ Making a new language is not too hard, but be sure to follow all the steps. You will have to do the following steps in both the `lib/libalpm/po/` and `po/` directories, substituting where appropriate. First, edit the `LINGUAS` file and add your new language code at the bottom. Next, run the following command, -substituting 'libalpm.pot' or 'pacman.pot' for potfile depending on which +substituting `libalpm.pot` or `pacman.pot` for potfile depending on which directory you are currently working in: - msginit -l -o .po -i + msginit -l -o .po -i You can then also add your language code to the end of the `LINGUAS` file located in each po directory. @@ -137,11 +141,13 @@ following two translations are equivalent: msgstr "" "This is a test translation" -If you want to test the translation (for example, the front-end one): +If you want to test the translation (copy the .po file you want to test, +you may ignore the rest), replacing `` accordingly: - rm *.gmo stamp-po - make - cp .gmo /usr/share/locale//LC_MESSAGES/pacman.mo + meson compile -C build pacman-scripts-gmo pacman-gmo libalpm-gmo + cp ./build/lib/libalpm/po//LC_MESSAGES/libalpm.mo /usr/share/locale//LC_MESSAGES/libalpm.mo + cp ./build/scripts/po//LC_MESSAGES/pacman-scripts.mo /usr/share/locale//LC_MESSAGES/pacman-scripts.mo + cp ./build/src/pacman/po//LC_MESSAGES/pacman.mo /usr/share/locale//LC_MESSAGES/pacman.mo Translating Manpages diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index 6d245ba9..1e4aaf1e 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -1,7 +1,7 @@ /* * add.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/add.h b/lib/libalpm/add.h index 439c88bf..74659df6 100644 --- a/lib/libalpm/add.h +++ b/lib/libalpm/add.h @@ -1,7 +1,7 @@ /* * add.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c index 6753692f..60612fb2 100644 --- a/lib/libalpm/alpm.c +++ b/lib/libalpm/alpm.c @@ -1,7 +1,7 @@ /* * alpm.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar @@ -85,7 +85,7 @@ alpm_handle_t SYMEXPORT *alpm_initialize(const char *root, const char *dbpath, /* set default sandboxuser */ ASSERT((pw = getpwuid(0)) != NULL, myerr = errno; goto cleanup); STRDUP(myhandle->sandboxuser, pw->pw_name, goto nomem); - + #ifdef ENABLE_NLS bindtextdomain("libalpm", LOCALEDIR); #endif diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 41d4c029..d535f550 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -1,7 +1,7 @@ /* * alpm.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar diff --git a/lib/libalpm/alpm_list.c b/lib/libalpm/alpm_list.c index 16a9ad45..959af921 100644 --- a/lib/libalpm/alpm_list.c +++ b/lib/libalpm/alpm_list.c @@ -1,7 +1,7 @@ /* * alpm_list.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/alpm_list.h b/lib/libalpm/alpm_list.h index ba566759..062a0a6f 100644 --- a/lib/libalpm/alpm_list.h +++ b/lib/libalpm/alpm_list.h @@ -1,7 +1,7 @@ /* * alpm_list.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/backup.c b/lib/libalpm/backup.c index d2badc4a..d083fb2a 100644 --- a/lib/libalpm/backup.c +++ b/lib/libalpm/backup.c @@ -1,7 +1,7 @@ /* * backup.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2005 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar diff --git a/lib/libalpm/backup.h b/lib/libalpm/backup.h index 63c5db6e..cf3a2707 100644 --- a/lib/libalpm/backup.h +++ b/lib/libalpm/backup.h @@ -1,7 +1,7 @@ /* * backup.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c index c9929181..d5f97380 100644 --- a/lib/libalpm/be_local.c +++ b/lib/libalpm/be_local.c @@ -1,7 +1,7 @@ /* * be_local.c : backend for the local database * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index 4fbd4c78..0fecbcb5 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -1,7 +1,7 @@ /* * be_package.c : backend for packages * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 35bee7eb..648a8bd6 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -1,7 +1,7 @@ /* * be_sync.c : backend for sync databases * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify @@ -268,7 +268,6 @@ cleanup: alpm_list_free_inner(payloads, (alpm_list_fn_free)_alpm_dload_payload_reset); FREELIST(payloads); } - _alpm_remove_temporary_download_dir(temporary_syncpath); FREE(temporary_syncpath); FREE(syncpath); umask(oldmask); @@ -309,11 +308,11 @@ static int _sync_get_validation(alpm_pkg_t *pkg) static const struct pkg_operations *get_sync_pkg_ops(void) { static struct pkg_operations sync_pkg_ops; - static int sync_pkg_ops_initalized = 0; - if(!sync_pkg_ops_initalized) { + static int sync_pkg_ops_initialized = 0; + if(!sync_pkg_ops_initialized) { sync_pkg_ops = default_pkg_ops; sync_pkg_ops.get_validation = _sync_get_validation; - sync_pkg_ops_initalized = 1; + sync_pkg_ops_initialized = 1; } return &sync_pkg_ops; } diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index efa22501..6bd6adaf 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -1,7 +1,7 @@ /* * conflict.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2006 by David Kimpe diff --git a/lib/libalpm/conflict.h b/lib/libalpm/conflict.h index 7c128d98..34dceb12 100644 --- a/lib/libalpm/conflict.h +++ b/lib/libalpm/conflict.h @@ -1,7 +1,7 @@ /* * conflict.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index d949b645..92b22a6f 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -1,7 +1,7 @@ /* * db.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar diff --git a/lib/libalpm/db.h b/lib/libalpm/db.h index ae1f0f74..88369581 100644 --- a/lib/libalpm/db.h +++ b/lib/libalpm/db.h @@ -1,7 +1,7 @@ /* * db.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2006 by Miklos Vajna diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index e0327b9b..3346749c 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -1,7 +1,7 @@ /* * deps.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005, 2006 by Miklos Vajna diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h index b1daa457..720b2929 100644 --- a/lib/libalpm/deps.h +++ b/lib/libalpm/deps.h @@ -1,7 +1,7 @@ /* * deps.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2006 by Miklos Vajna diff --git a/lib/libalpm/diskspace.c b/lib/libalpm/diskspace.c index 45eb5f7f..80bf9981 100644 --- a/lib/libalpm/diskspace.c +++ b/lib/libalpm/diskspace.c @@ -1,7 +1,7 @@ /* * diskspace.c * - * Copyright (c) 2010-2024 Pacman Development Team + * Copyright (c) 2010-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/diskspace.h b/lib/libalpm/diskspace.h index 605578f2..73e4e833 100644 --- a/lib/libalpm/diskspace.h +++ b/lib/libalpm/diskspace.h @@ -1,7 +1,7 @@ /* * diskspace.h * - * Copyright (c) 2010-2024 Pacman Development Team + * Copyright (c) 2010-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index 03807fa0..c35faee1 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -1,7 +1,7 @@ /* * dload.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify @@ -698,9 +698,9 @@ cleanup: * only applies to FTP transfers. */ curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, (char *)NULL); - if(payload->localf != NULL) { fclose(payload->localf); + payload->localf = NULL; utimes_long(payload->tempfile_name, remote_time); } @@ -880,7 +880,6 @@ static int curl_download_internal(alpm_handle_t *handle, p = NULL; err = -1; } - while(true) { int msgs_left = 0; CURLMsg *msg = curl_multi_info_read(curlm, &msgs_left); @@ -904,7 +903,6 @@ static int curl_download_internal(alpm_handle_t *handle, } } } - int ret = err ? -1 : updated ? 0 : 1; _alpm_log(handle, ALPM_LOG_DEBUG, "curl_download_internal return code is %d\n", ret); alpm_list_free(payloads); @@ -918,7 +916,8 @@ static int curl_download_internal(alpm_handle_t *handle, */ static int curl_download_internal_sandboxed(alpm_handle_t *handle, alpm_list_t *payloads /* struct dload_payload */, - const char *localpath) + const char *localpath, + int *childsig) { int pid, err = 0, ret = -1, callbacks_fd[2]; sigset_t oldblock; @@ -1023,8 +1022,12 @@ static int curl_download_internal_sandboxed(alpm_handle_t *handle, int wret; while((wret = waitpid(pid, &ret, 0)) == -1 && errno == EINTR); if(wret > 0) { + if(WIFSIGNALED(ret)) { + *childsig = WTERMSIG(ret); + } if(!WIFEXITED(ret)) { /* the child did not terminate normally */ + handle->pm_errno = ALPM_ERR_RETRIEVE; ret = -1; } else { @@ -1103,30 +1106,45 @@ static int finalize_download_locations(alpm_list_t *payloads, const char *localp ASSERT(payloads != NULL, return -1); ASSERT(localpath != NULL, return -1); alpm_list_t *p; + struct stat st; int returnvalue = 0; for(p = payloads; p; p = p->next) { struct dload_payload *payload = p->data; - if(payload->tempfile_name) { - move_file(payload->tempfile_name, localpath); + const char *filename = NULL; + + if(payload->destfile_name && stat(payload->destfile_name, &st) == 0) { + filename = payload->destfile_name; + } else if(stat(payload->tempfile_name, &st) == 0) { + filename = payload->tempfile_name; } - if(payload->destfile_name) { - int ret = move_file(payload->destfile_name, localpath); + + if(filename) { + int ret = move_file(filename, localpath); if(ret == -1) { - /* ignore error if the file already existed - only signature file was downloaded */ if(payload->mtime_existing_file == 0) { + _alpm_log(payload->handle, ALPM_LOG_ERROR, _("could not move %s into %s (%s)\n"), + filename, localpath, strerror(errno)); returnvalue = -1; } } + } - if (payload->download_signature) { - const char sig_suffix[] = ".sig"; - char *sig_filename = NULL; - size_t sig_filename_len = strlen(payload->destfile_name) + sizeof(sig_suffix); - MALLOC(sig_filename, sig_filename_len, continue); - snprintf(sig_filename, sig_filename_len, "%s%s", payload->destfile_name, sig_suffix); + if (payload->download_signature) { + char *sig_filename; + int ret; + + filename = payload->destfile_name ? payload->destfile_name : payload->tempfile_name; + sig_filename = _alpm_get_fullpath("", filename, ".sig"); + ASSERT(sig_filename, RET_ERR(payload->handle, ALPM_ERR_MEMORY, -1)); + ret = move_file(sig_filename, localpath); + free(sig_filename); + + if(ret == -1) { + sig_filename = _alpm_get_fullpath("", filename, ".sig.part"); + ASSERT(sig_filename, RET_ERR(payload->handle, ALPM_ERR_MEMORY, -1)); move_file(sig_filename, localpath); - FREE(sig_filename); + free(sig_filename); } } } @@ -1185,12 +1203,14 @@ int _alpm_download(alpm_handle_t *handle, const char *temporary_localpath) { int ret; + int finalize_ret; + int childsig = 0; prepare_resumable_downloads(payloads, localpath, handle->sandboxuser); if(handle->fetchcb == NULL) { #ifdef HAVE_LIBCURL if(handle->sandboxuser) { - ret = curl_download_internal_sandboxed(handle, payloads, temporary_localpath); + ret = curl_download_internal_sandboxed(handle, payloads, temporary_localpath, &childsig); } else { ret = curl_download_internal(handle, payloads); } @@ -1265,13 +1285,21 @@ download_signature: ret = updated ? 0 : 1; } - if (finalize_download_locations(payloads, localpath) != 0 && ret == 0) { - return -1; + finalize_ret = finalize_download_locations(payloads, localpath); + _alpm_remove_temporary_download_dir(temporary_localpath); + + /* propagate after finalizing so .part files get copied over */ + if(childsig != 0) { + kill(getpid(), childsig); } + if(finalize_ret != 0 && ret == 0) { + RET_ERR(handle, ALPM_ERR_RETRIEVE, -1); + } + return ret; } -static char *filecache_find_url(alpm_handle_t *handle, const char *url) +static const char *url_basename(const char *url) { const char *filebase = strrchr(url, '/'); @@ -1284,7 +1312,7 @@ static char *filecache_find_url(alpm_handle_t *handle, const char *url) return NULL; } - return _alpm_filecache_find(handle, filebase); + return filebase; } int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, @@ -1306,9 +1334,26 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, for(i = urls; i; i = i->next) { char *url = i->data; + char *filepath = NULL; + const char *urlbase = url_basename(url); + + if(urlbase) { + /* attempt to find the file in our pkgcache */ + filepath = _alpm_filecache_find(handle, urlbase); + + if(filepath && (handle->siglevel & ALPM_SIG_PACKAGE)) { + char *sig_filename = _alpm_get_fullpath("", urlbase, ".sig"); + + /* if there's no .sig file then forget about the pkg file and go for download */ + if(!_alpm_filecache_exists(handle, sig_filename)) { + free(filepath); + filepath = NULL; + } + + free(sig_filename); + } + } - /* attempt to find the file in our pkgcache */ - char *filepath = filecache_find_url(handle, url); if(filepath) { /* the file is locally cached so add it to the output right away */ alpm_list_append(fetched, filepath); @@ -1357,12 +1402,12 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, if(payloads) { event.type = ALPM_EVENT_PKG_RETRIEVE_START; event.pkg_retrieve.num = alpm_list_count(payloads); + event.pkg_retrieve.total_size = 0; EVENT(handle, &event); if(_alpm_download(handle, payloads, cachedir, temporary_cachedir) == -1) { _alpm_log(handle, ALPM_LOG_WARNING, _("failed to retrieve some files\n")); event.type = ALPM_EVENT_PKG_RETRIEVE_FAILED; EVENT(handle, &event); - GOTO_ERR(handle, ALPM_ERR_RETRIEVE, err); } else { event.type = ALPM_EVENT_PKG_RETRIEVE_DONE; @@ -1377,7 +1422,8 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, const char *filename = mbasename(payload->destfile_name); filepath = _alpm_filecache_find(handle, filename); } else { - STRDUP(filepath, payload->tempfile_name, GOTO_ERR(handle, ALPM_ERR_MEMORY, err)); + const char *filename = mbasename(payload->tempfile_name); + filepath = _alpm_filecache_find(handle, filename); } if(filepath) { alpm_list_append(fetched, filepath); @@ -1391,13 +1437,11 @@ int SYMEXPORT alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls, FREELIST(payloads); } - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); return 0; err: alpm_list_free_inner(payloads, (alpm_list_fn_free)_alpm_dload_payload_reset); - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); FREELIST(payloads); FREELIST(*fetched); @@ -1409,6 +1453,11 @@ void _alpm_dload_payload_reset(struct dload_payload *payload) { ASSERT(payload, return); + if(payload->localf != NULL) { + fclose(payload->localf); + payload->localf = NULL; + } + FREE(payload->remote_name); FREE(payload->tempfile_name); FREE(payload->destfile_name); diff --git a/lib/libalpm/dload.h b/lib/libalpm/dload.h index a4a7d27c..dd504e88 100644 --- a/lib/libalpm/dload.h +++ b/lib/libalpm/dload.h @@ -1,7 +1,7 @@ /* * dload.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index b77c0643..58842eac 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -1,7 +1,7 @@ /* * error.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify @@ -137,9 +137,7 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err) return _("conflicting dependencies"); case ALPM_ERR_FILE_CONFLICTS: return _("conflicting files"); - case ALPM_ERR_REMOVING_OPTDEPENDS_DEPS: - return _("removing optdepends of another package"); - /* Miscellaenous */ + /* Miscellaneous */ case ALPM_ERR_RETRIEVE: return _("failed to retrieve some files"); case ALPM_ERR_INVALID_REGEX: diff --git a/lib/libalpm/filelist.c b/lib/libalpm/filelist.c index 5d781235..72b88fd8 100644 --- a/lib/libalpm/filelist.c +++ b/lib/libalpm/filelist.c @@ -1,7 +1,7 @@ /* * filelist.c * - * Copyright (c) 2012-2024 Pacman Development Team + * Copyright (c) 2012-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/filelist.h b/lib/libalpm/filelist.h index 313b135a..dccbae33 100644 --- a/lib/libalpm/filelist.h +++ b/lib/libalpm/filelist.h @@ -1,7 +1,7 @@ /* * filelist.h * - * Copyright (c) 2012-2024 Pacman Development Team + * Copyright (c) 2012-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/graph.c b/lib/libalpm/graph.c index 4b0d17a2..0e1dee6d 100644 --- a/lib/libalpm/graph.c +++ b/lib/libalpm/graph.c @@ -1,7 +1,7 @@ /* * graph.c - helpful graph structure and setup/teardown methods * - * Copyright (c) 2007-2024 Pacman Development Team + * Copyright (c) 2007-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/graph.h b/lib/libalpm/graph.h index eda59b7f..0244a7a7 100644 --- a/lib/libalpm/graph.h +++ b/lib/libalpm/graph.h @@ -1,7 +1,7 @@ /* * graph.h - helpful graph structure and setup/teardown methods * - * Copyright (c) 2007-2024 Pacman Development Team + * Copyright (c) 2007-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/group.c b/lib/libalpm/group.c index 6f32ec1e..dee06d87 100644 --- a/lib/libalpm/group.c +++ b/lib/libalpm/group.c @@ -1,7 +1,7 @@ /* * group.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/group.h b/lib/libalpm/group.h index 927192d4..faa95ab8 100644 --- a/lib/libalpm/group.h +++ b/lib/libalpm/group.h @@ -1,7 +1,7 @@ /* * group.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 36afd0a5..6633f2f5 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -1,7 +1,7 @@ /* * handle.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005, 2006 by Miklos Vajna diff --git a/lib/libalpm/handle.h b/lib/libalpm/handle.h index 37724344..2637a92f 100644 --- a/lib/libalpm/handle.h +++ b/lib/libalpm/handle.h @@ -1,7 +1,7 @@ /* * handle.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/hook.c b/lib/libalpm/hook.c index aa25d5f3..9386959c 100644 --- a/lib/libalpm/hook.c +++ b/lib/libalpm/hook.c @@ -1,7 +1,7 @@ /* * hook.c * - * Copyright (c) 2015-2024 Pacman Development Team + * Copyright (c) 2015-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/hook.h b/lib/libalpm/hook.h index c12c75bf..5c4785c4 100644 --- a/lib/libalpm/hook.h +++ b/lib/libalpm/hook.h @@ -1,7 +1,7 @@ /* * hook.h * - * Copyright (c) 2015-2024 Pacman Development Team + * Copyright (c) 2015-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/libarchive-compat.h b/lib/libalpm/libarchive-compat.h index 19eb5bfc..f258ae99 100644 --- a/lib/libalpm/libarchive-compat.h +++ b/lib/libalpm/libarchive-compat.h @@ -4,7 +4,7 @@ /* * libarchive-compat.h * - * Copyright (c) 2013-2024 Pacman Development Team + * Copyright (c) 2013-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/log.c b/lib/libalpm/log.c index 7668ed37..594dad38 100644 --- a/lib/libalpm/log.c +++ b/lib/libalpm/log.c @@ -1,7 +1,7 @@ /* * log.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/log.h b/lib/libalpm/log.h index f24a251e..8e55e3e9 100644 --- a/lib/libalpm/log.h +++ b/lib/libalpm/log.h @@ -1,7 +1,7 @@ /* * log.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index a294d636..a7bccde3 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -1,7 +1,7 @@ /* * package.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005, 2006 by Christian Hamar diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h index c210ce19..0f8f9aa3 100644 --- a/lib/libalpm/package.h +++ b/lib/libalpm/package.h @@ -1,7 +1,7 @@ /* * package.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2006 by David Kimpe diff --git a/lib/libalpm/pkghash.c b/lib/libalpm/pkghash.c index 6ef9f08d..ac027c2b 100644 --- a/lib/libalpm/pkghash.c +++ b/lib/libalpm/pkghash.c @@ -1,7 +1,7 @@ /* * pkghash.c * - * Copyright (c) 2011-2024 Pacman Development Team + * Copyright (c) 2011-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/pkghash.h b/lib/libalpm/pkghash.h index 9c778ba5..7d3794ed 100644 --- a/lib/libalpm/pkghash.h +++ b/lib/libalpm/pkghash.h @@ -1,7 +1,7 @@ /* * pkghash.h * - * Copyright (c) 2011-2024 Pacman Development Team + * Copyright (c) 2011-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 11e3e0f6..1177f8b6 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -1,7 +1,7 @@ /* * remove.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar diff --git a/lib/libalpm/remove.h b/lib/libalpm/remove.h index 66ebc4eb..b481e791 100644 --- a/lib/libalpm/remove.h +++ b/lib/libalpm/remove.h @@ -1,7 +1,7 @@ /* * remove.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/lib/libalpm/sandbox.c b/lib/libalpm/sandbox.c index cdc01dc7..acf9ce5a 100644 --- a/lib/libalpm/sandbox.c +++ b/lib/libalpm/sandbox.c @@ -1,7 +1,7 @@ /* * sandbox.c * - * Copyright (c) 2021-2024 Pacman Development Team + * Copyright (c) 2021-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/sandbox_fs.c b/lib/libalpm/sandbox_fs.c index 94bbb104..04a006f0 100644 --- a/lib/libalpm/sandbox_fs.c +++ b/lib/libalpm/sandbox_fs.c @@ -1,7 +1,7 @@ /* * sandbox_fs.c * - * Copyright (c) 2021-2024 Pacman Development Team + * Copyright (c) 2021-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/sandbox_fs.h b/lib/libalpm/sandbox_fs.h index 70bfa157..2b60a0ea 100644 --- a/lib/libalpm/sandbox_fs.h +++ b/lib/libalpm/sandbox_fs.h @@ -1,7 +1,7 @@ /* * sandbox_fs.h * - * Copyright (c) 2021-2024 Pacman Development Team + * Copyright (c) 2021-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c index 53907339..e5ddd2d0 100644 --- a/lib/libalpm/signing.c +++ b/lib/libalpm/signing.c @@ -1,7 +1,7 @@ /* * signing.c * - * Copyright (c) 2008-2024 Pacman Development Team + * Copyright (c) 2008-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/signing.h b/lib/libalpm/signing.h index c478f1c3..94c2b7f4 100644 --- a/lib/libalpm/signing.h +++ b/lib/libalpm/signing.h @@ -1,7 +1,7 @@ /* * signing.h * - * Copyright (c) 2008-2024 Pacman Development Team + * Copyright (c) 2008-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 821e75a3..087c48de 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -1,7 +1,7 @@ /* * sync.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar @@ -817,6 +817,8 @@ static int download_files(alpm_handle_t *handle) } event.type = ALPM_EVENT_PKG_RETRIEVE_START; + event.pkg_retrieve.total_size = 0; + event.pkg_retrieve.num = 0; /* sum up the number of packages to download and its total size */ for(i = files; i; i = i->next) { @@ -880,7 +882,6 @@ finish: pkg->infolevel &= ~INFRQ_DSIZE; pkg->download_size = 0; } - _alpm_remove_temporary_download_dir(temporary_cachedir); FREE(temporary_cachedir); return ret; diff --git a/lib/libalpm/sync.h b/lib/libalpm/sync.h index 88f01db9..0a293fc4 100644 --- a/lib/libalpm/sync.h +++ b/lib/libalpm/sync.h @@ -1,7 +1,7 @@ /* * sync.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005, 2006 by Miklos Vajna diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index ef77e792..a545a032 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -1,7 +1,7 @@ /* * trans.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar @@ -203,7 +203,7 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) RET_ERR(handle, ALPM_ERR_TRANS_HOOK_FAILED, -1); } - trans->state = STATE_COMMITING; + trans->state = STATE_COMMITTING; alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction started\n"); event.type = ALPM_EVENT_TRANSACTION_START; @@ -239,7 +239,7 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) } } - trans->state = STATE_COMMITED; + trans->state = STATE_COMMITTED; return 0; } @@ -253,7 +253,7 @@ int SYMEXPORT alpm_trans_interrupt(alpm_handle_t *handle) trans = handle->trans; ASSERT(trans != NULL, RET_ERR_ASYNC_SAFE(handle, ALPM_ERR_TRANS_NULL, -1)); - ASSERT(trans->state == STATE_COMMITING || trans->state == STATE_INTERRUPTED, + ASSERT(trans->state == STATE_COMMITTING || trans->state == STATE_INTERRUPTED, RET_ERR_ASYNC_SAFE(handle, ALPM_ERR_TRANS_TYPE, -1)); trans->state = STATE_INTERRUPTED; diff --git a/lib/libalpm/trans.h b/lib/libalpm/trans.h index 9ee7015e..5f110907 100644 --- a/lib/libalpm/trans.h +++ b/lib/libalpm/trans.h @@ -1,7 +1,7 @@ /* * trans.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar @@ -30,8 +30,8 @@ typedef enum _alpm_transstate_t { STATE_INITIALIZED, STATE_PREPARED, STATE_DOWNLOADING, - STATE_COMMITING, - STATE_COMMITED, + STATE_COMMITTING, + STATE_COMMITTED, STATE_INTERRUPTED } alpm_transstate_t; diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index feb38284..7877b17a 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -1,7 +1,7 @@ /* * util.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar @@ -967,8 +967,7 @@ char *_alpm_temporary_download_dir_setup(const char *dir, const char *user) char *newdir = NULL; MALLOC(newdir, newdirlen, return NULL); snprintf(newdir, newdirlen - 1, "%s%s", dir, template); - newdir = mkdtemp(newdir); - if(newdir == NULL) { + if(mkdtemp(newdir) == NULL) { free(newdir); return NULL; } diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 1af4a57c..5090c545 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -1,7 +1,7 @@ /* * util.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * Copyright (c) 2005 by Aurelien Foret * Copyright (c) 2005 by Christian Hamar diff --git a/lib/libalpm/version.c b/lib/libalpm/version.c index 3f0de8d5..12dcf70d 100644 --- a/lib/libalpm/version.c +++ b/lib/libalpm/version.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/meson.build b/meson.build index e8f502b7..c045b3bf 100644 --- a/meson.build +++ b/meson.build @@ -433,6 +433,8 @@ configure_file( configuration : substs, install_dir : join_paths(SYSCONFDIR, 'makepkg.conf.d/')) +install_emptydir(join_paths(SYSCONFDIR, 'makepkg.d/')) + configure_file( input : 'etc/pacman.conf.in', output : 'pacman.conf', diff --git a/proto/PKGBUILD-vcs.proto b/proto/PKGBUILD-vcs.proto index 49c6759f..250e032f 100644 --- a/proto/PKGBUILD-vcs.proto +++ b/proto/PKGBUILD-vcs.proto @@ -3,7 +3,7 @@ # NOTE: Please fill out the license field for your package! If it is unknown, # then please put 'unknown'. -# The following guidelines are specific to BZR, GIT, HG and SVN packages. +# Guidelines specific to Bazaar, Git, Mercurial and Subversion packages. # Other VCS sources are not natively supported by makepkg yet. # Maintainer: Your Name diff --git a/scripts/libmakepkg/autodep.sh.in b/scripts/libmakepkg/autodep.sh.in index 0d9d662c..8fae24ac 100644 --- a/scripts/libmakepkg/autodep.sh.in +++ b/scripts/libmakepkg/autodep.sh.in @@ -2,7 +2,7 @@ # # autodep.sh - functions for automatically adding depends/provides # -# Copyright (c) 2021-2024 Pacman Development Team +# Copyright (c) 2021-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/autodep/library_depends.sh.in b/scripts/libmakepkg/autodep/library_depends.sh.in index 596a9821..b8fb7017 100644 --- a/scripts/libmakepkg/autodep/library_depends.sh.in +++ b/scripts/libmakepkg/autodep/library_depends.sh.in @@ -2,7 +2,7 @@ # # library_depends.sh - Automatically add library requirements to depends # -# Copyright (c) 2021-2024 Pacman Development Team +# Copyright (c) 2021-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/autodep/library_provides.sh.in b/scripts/libmakepkg/autodep/library_provides.sh.in index c92877ad..82595b46 100644 --- a/scripts/libmakepkg/autodep/library_provides.sh.in +++ b/scripts/libmakepkg/autodep/library_provides.sh.in @@ -2,7 +2,7 @@ # # library_provides.sh - Automatically add a packages libraries to provides # -# Copyright (c) 2021-2024 Pacman Development Team +# Copyright (c) 2021-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv.sh.in b/scripts/libmakepkg/buildenv.sh.in index 50006b59..0fd7c773 100644 --- a/scripts/libmakepkg/buildenv.sh.in +++ b/scripts/libmakepkg/buildenv.sh.in @@ -3,7 +3,7 @@ # buildenv.sh - functions for altering the build environment before # compilation # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/buildflags.sh.in b/scripts/libmakepkg/buildenv/buildflags.sh.in index f132d379..d073c4d9 100644 --- a/scripts/libmakepkg/buildenv/buildflags.sh.in +++ b/scripts/libmakepkg/buildenv/buildflags.sh.in @@ -2,7 +2,7 @@ # # buildflags.sh - Clear user-specified buildflags if requested # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/compiler.sh.in b/scripts/libmakepkg/buildenv/compiler.sh.in index 782eaf3f..6e7d1fcb 100644 --- a/scripts/libmakepkg/buildenv/compiler.sh.in +++ b/scripts/libmakepkg/buildenv/compiler.sh.in @@ -4,7 +4,7 @@ # ccache - Cache compilations and reuse them to save time on repetitions # distcc - Distribute compilation of C and C++ across machines # -# Copyright (c) 2007-2024 Pacman Development Team +# Copyright (c) 2007-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/debugflags.sh.in b/scripts/libmakepkg/buildenv/debugflags.sh.in index 3eada6e7..2f625343 100644 --- a/scripts/libmakepkg/buildenv/debugflags.sh.in +++ b/scripts/libmakepkg/buildenv/debugflags.sh.in @@ -3,7 +3,7 @@ # debugflags.sh - Specify flags for building a package with debugging # symbols # -# Copyright (c) 2012-2024 Pacman Development Team +# Copyright (c) 2012-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/fortran.sh.in b/scripts/libmakepkg/buildenv/fortran.sh.in index 3dc6f216..02db5383 100644 --- a/scripts/libmakepkg/buildenv/fortran.sh.in +++ b/scripts/libmakepkg/buildenv/fortran.sh.in @@ -2,7 +2,7 @@ # # fortran.sh - Specify flags for building a package with Fortran # -# Copyright (c) 2024 Pacman Development Team +# Copyright (c) 2024-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/lto.sh.in b/scripts/libmakepkg/buildenv/lto.sh.in index 7fc12a51..15a2718d 100644 --- a/scripts/libmakepkg/buildenv/lto.sh.in +++ b/scripts/libmakepkg/buildenv/lto.sh.in @@ -3,7 +3,7 @@ # lto.sh - Specify flags for building a package with link-time # optimisation # -# Copyright (c) 2021-2024 Pacman Development Team +# Copyright (c) 2021-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/makeflags.sh.in b/scripts/libmakepkg/buildenv/makeflags.sh.in index 9542a6bc..67160ef5 100644 --- a/scripts/libmakepkg/buildenv/makeflags.sh.in +++ b/scripts/libmakepkg/buildenv/makeflags.sh.in @@ -2,7 +2,7 @@ # # makeflags.sh - Clear user-specified makeflags if requested # -# Copyright (c) 2007-2024 Pacman Development Team +# Copyright (c) 2007-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/buildenv/rust.sh.in b/scripts/libmakepkg/buildenv/rust.sh.in index 48ed06c6..1f90d1fa 100644 --- a/scripts/libmakepkg/buildenv/rust.sh.in +++ b/scripts/libmakepkg/buildenv/rust.sh.in @@ -2,7 +2,7 @@ # # rust.sh - Specify flags for building a package with rust # -# Copyright (c) 2022-2024 Pacman Development Team +# Copyright (c) 2022-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable.sh.in b/scripts/libmakepkg/executable.sh.in index e003c045..184c8203 100644 --- a/scripts/libmakepkg/executable.sh.in +++ b/scripts/libmakepkg/executable.sh.in @@ -2,7 +2,7 @@ # # executable.sh - confirm presence of dependent executables # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/ccache.sh.in b/scripts/libmakepkg/executable/ccache.sh.in index dd85816e..43314836 100644 --- a/scripts/libmakepkg/executable/ccache.sh.in +++ b/scripts/libmakepkg/executable/ccache.sh.in @@ -2,7 +2,7 @@ # # ccache.sh - Confirm presence of ccache binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/checksum.sh.in b/scripts/libmakepkg/executable/checksum.sh.in index 1157e7d7..e4eb095a 100644 --- a/scripts/libmakepkg/executable/checksum.sh.in +++ b/scripts/libmakepkg/executable/checksum.sh.in @@ -2,7 +2,7 @@ # # checksum.sh - Confirm presence of binaries for checksum operations # -# Copyright (c) 2016-2024 Pacman Development Team +# Copyright (c) 2016-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/debugedit.sh.in b/scripts/libmakepkg/executable/debugedit.sh.in index c62595c4..b54a67b2 100644 --- a/scripts/libmakepkg/executable/debugedit.sh.in +++ b/scripts/libmakepkg/executable/debugedit.sh.in @@ -2,7 +2,7 @@ # # debugedit.sh - Confirm presence of debugedit binary # -# Copyright (c) 2022-2024 Pacman Development Team +# Copyright (c) 2022-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/distcc.sh.in b/scripts/libmakepkg/executable/distcc.sh.in index 8e5f4356..355cd33f 100644 --- a/scripts/libmakepkg/executable/distcc.sh.in +++ b/scripts/libmakepkg/executable/distcc.sh.in @@ -2,7 +2,7 @@ # # distcc.sh - Confirm presence of distcc binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/fakeroot.sh.in b/scripts/libmakepkg/executable/fakeroot.sh.in index 4159ba41..469ac03a 100644 --- a/scripts/libmakepkg/executable/fakeroot.sh.in +++ b/scripts/libmakepkg/executable/fakeroot.sh.in @@ -2,7 +2,7 @@ # # fakeroot.sh - Confirm presence of fakeroot binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/gpg.sh.in b/scripts/libmakepkg/executable/gpg.sh.in index c4ca94a9..c1b71a17 100644 --- a/scripts/libmakepkg/executable/gpg.sh.in +++ b/scripts/libmakepkg/executable/gpg.sh.in @@ -2,7 +2,7 @@ # # gpg.sh - Confirm presence of gpg binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/gzip.sh.in b/scripts/libmakepkg/executable/gzip.sh.in index 81c9c40f..785811c5 100644 --- a/scripts/libmakepkg/executable/gzip.sh.in +++ b/scripts/libmakepkg/executable/gzip.sh.in @@ -2,7 +2,7 @@ # # gzip.sh - Confirm presence of gzip binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/pacman.sh.in b/scripts/libmakepkg/executable/pacman.sh.in index 4d25b078..89644409 100644 --- a/scripts/libmakepkg/executable/pacman.sh.in +++ b/scripts/libmakepkg/executable/pacman.sh.in @@ -2,7 +2,7 @@ # # pacman.sh - Confirm presence of pacman binary # -# Copyright (c) 2012-2024 Pacman Development Team +# Copyright (c) 2012-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/strip.sh.in b/scripts/libmakepkg/executable/strip.sh.in index 922cb53f..70aadffc 100644 --- a/scripts/libmakepkg/executable/strip.sh.in +++ b/scripts/libmakepkg/executable/strip.sh.in @@ -2,7 +2,7 @@ # # strip.sh - Confirm presence of strip binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/sudo.sh.in b/scripts/libmakepkg/executable/sudo.sh.in index 05de231e..995532d9 100644 --- a/scripts/libmakepkg/executable/sudo.sh.in +++ b/scripts/libmakepkg/executable/sudo.sh.in @@ -2,7 +2,7 @@ # # sudo.sh - Confirm presence of sudo binary # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/executable/vcs.sh.in b/scripts/libmakepkg/executable/vcs.sh.in index fd54bfe3..7896d05d 100644 --- a/scripts/libmakepkg/executable/vcs.sh.in +++ b/scripts/libmakepkg/executable/vcs.sh.in @@ -2,7 +2,7 @@ # # vcs.sh - Confirm presence of binaries for VCS operations # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/integrity.sh.in b/scripts/libmakepkg/integrity.sh.in index 9a540a6e..a3cf5a99 100644 --- a/scripts/libmakepkg/integrity.sh.in +++ b/scripts/libmakepkg/integrity.sh.in @@ -2,7 +2,7 @@ # # integrity.sh - functions relating to source integrity checking # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/integrity/generate_checksum.sh.in b/scripts/libmakepkg/integrity/generate_checksum.sh.in index 9919d1a3..dee81399 100644 --- a/scripts/libmakepkg/integrity/generate_checksum.sh.in +++ b/scripts/libmakepkg/integrity/generate_checksum.sh.in @@ -2,7 +2,7 @@ # # generate_checksum.sh - functions for generating source checksums # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/integrity/generate_signature.sh.in b/scripts/libmakepkg/integrity/generate_signature.sh.in index f0dd7421..5c615c82 100644 --- a/scripts/libmakepkg/integrity/generate_signature.sh.in +++ b/scripts/libmakepkg/integrity/generate_signature.sh.in @@ -2,7 +2,7 @@ # # generate_signature.sh - functions for generating PGP signatures # -# Copyright (c) 2008-2024 Pacman Development Team +# Copyright (c) 2008-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/integrity/verify_checksum.sh.in b/scripts/libmakepkg/integrity/verify_checksum.sh.in index 03f7a5c4..b7afc2c7 100644 --- a/scripts/libmakepkg/integrity/verify_checksum.sh.in +++ b/scripts/libmakepkg/integrity/verify_checksum.sh.in @@ -2,7 +2,7 @@ # # verify_checksum.sh - functions for checking source checksums # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/integrity/verify_signature.sh.in b/scripts/libmakepkg/integrity/verify_signature.sh.in index 00b2c977..858ac605 100644 --- a/scripts/libmakepkg/integrity/verify_signature.sh.in +++ b/scripts/libmakepkg/integrity/verify_signature.sh.in @@ -2,7 +2,7 @@ # # verify_signature.sh - functions for checking PGP signatures # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_config.sh.in b/scripts/libmakepkg/lint_config.sh.in index f23018ff..90971873 100644 --- a/scripts/libmakepkg/lint_config.sh.in +++ b/scripts/libmakepkg/lint_config.sh.in @@ -2,7 +2,7 @@ # # lint_config.sh - functions for checking for makepkg.conf errors # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_config/ext.sh.in b/scripts/libmakepkg/lint_config/ext.sh.in index db6eb43b..cc413467 100644 --- a/scripts/libmakepkg/lint_config/ext.sh.in +++ b/scripts/libmakepkg/lint_config/ext.sh.in @@ -2,7 +2,7 @@ # # ext.sh - Check that source/package extensions have valid prefixes # -# Copyright (c) 2019-2024 Pacman Development Team +# Copyright (c) 2019-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_config/paths.sh.in b/scripts/libmakepkg/lint_config/paths.sh.in index b7125e28..612e6175 100644 --- a/scripts/libmakepkg/lint_config/paths.sh.in +++ b/scripts/libmakepkg/lint_config/paths.sh.in @@ -2,7 +2,7 @@ # # paths.sh - Check that pathname components do not contain odd characters # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_config/source_date_epoch.sh.in b/scripts/libmakepkg/lint_config/source_date_epoch.sh.in index 10d62373..7e1f5525 100644 --- a/scripts/libmakepkg/lint_config/source_date_epoch.sh.in +++ b/scripts/libmakepkg/lint_config/source_date_epoch.sh.in @@ -2,7 +2,7 @@ # # source_date_epoch.sh - Check that reproducible builds timestamp is valid # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_config/variable.sh.in b/scripts/libmakepkg/lint_config/variable.sh.in index 0a99ef81..f4823f07 100644 --- a/scripts/libmakepkg/lint_config/variable.sh.in +++ b/scripts/libmakepkg/lint_config/variable.sh.in @@ -2,7 +2,7 @@ # # variable.sh - Check that variables are or are not arrays as appropriate # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_package.sh.in b/scripts/libmakepkg/lint_package.sh.in index eba38b45..7d07b730 100644 --- a/scripts/libmakepkg/lint_package.sh.in +++ b/scripts/libmakepkg/lint_package.sh.in @@ -2,7 +2,7 @@ # # lint_package.sh - functions for checking for packaging errors # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_package/build_references.sh.in b/scripts/libmakepkg/lint_package/build_references.sh.in index 5aea78ff..1c14ed85 100644 --- a/scripts/libmakepkg/lint_package/build_references.sh.in +++ b/scripts/libmakepkg/lint_package/build_references.sh.in @@ -2,7 +2,7 @@ # # build_references.sh - Warn about files containing references to build directories # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_package/dotfiles.sh.in b/scripts/libmakepkg/lint_package/dotfiles.sh.in index 168f159d..da0890c9 100644 --- a/scripts/libmakepkg/lint_package/dotfiles.sh.in +++ b/scripts/libmakepkg/lint_package/dotfiles.sh.in @@ -2,7 +2,7 @@ # # dotfiles.sh - check for dotfiles in the package root # -# Copyright (c) 2016-2024 Pacman Development Team +# Copyright (c) 2016-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_package/file_names.sh.in b/scripts/libmakepkg/lint_package/file_names.sh.in index 97d6c021..f7cc732d 100644 --- a/scripts/libmakepkg/lint_package/file_names.sh.in +++ b/scripts/libmakepkg/lint_package/file_names.sh.in @@ -2,7 +2,7 @@ # # file_names.sh - check package file names # -# Copyright (c) 2016-2024 Pacman Development Team +# Copyright (c) 2016-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_package/missing_backup.sh.in b/scripts/libmakepkg/lint_package/missing_backup.sh.in index cfabbd67..66a842c4 100644 --- a/scripts/libmakepkg/lint_package/missing_backup.sh.in +++ b/scripts/libmakepkg/lint_package/missing_backup.sh.in @@ -2,7 +2,7 @@ # # missing_backup.sh - Warn about missing files in the backup array # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild.sh.in b/scripts/libmakepkg/lint_pkgbuild.sh.in index 0a5e8049..2cec97bf 100644 --- a/scripts/libmakepkg/lint_pkgbuild.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild.sh.in @@ -2,7 +2,7 @@ # # lint_pkgbuild.sh - functions for detecting PKGBUILD errors # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in index 8d4afee0..76284e28 100644 --- a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in @@ -2,7 +2,7 @@ # # arch.sh - Check the 'arch' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/arch_specific.sh.in b/scripts/libmakepkg/lint_pkgbuild/arch_specific.sh.in index bce68dde..9f7b36d7 100644 --- a/scripts/libmakepkg/lint_pkgbuild/arch_specific.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/arch_specific.sh.in @@ -2,7 +2,7 @@ # # arch_specific.sh - Check that arch specific variables can be arch specific. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/backup.sh.in b/scripts/libmakepkg/lint_pkgbuild/backup.sh.in index f993cdf6..271ffe54 100644 --- a/scripts/libmakepkg/lint_pkgbuild/backup.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/backup.sh.in @@ -2,7 +2,7 @@ # # backup.sh - Check the 'backup' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/changelog.sh.in b/scripts/libmakepkg/lint_pkgbuild/changelog.sh.in index fa2280b2..390d61ac 100644 --- a/scripts/libmakepkg/lint_pkgbuild/changelog.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/changelog.sh.in @@ -2,7 +2,7 @@ # # changelog.sh - Check the files in the 'changelog' array exist. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in index 9136fd8e..9d43c311 100644 --- a/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/checkdepends.sh.in @@ -2,7 +2,7 @@ # # checkdepends.sh - Check the 'checkdepends' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in b/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in index fee15edf..4a8082fe 100644 --- a/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/conflicts.sh.in @@ -2,7 +2,7 @@ # # conflicts.sh - Check the 'conflicts' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/depends.sh.in b/scripts/libmakepkg/lint_pkgbuild/depends.sh.in index 80670fff..4d3e651b 100644 --- a/scripts/libmakepkg/lint_pkgbuild/depends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/depends.sh.in @@ -2,7 +2,7 @@ # # depends.sh - Check the 'depends' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/epoch.sh.in b/scripts/libmakepkg/lint_pkgbuild/epoch.sh.in index dbb13933..957c1248 100644 --- a/scripts/libmakepkg/lint_pkgbuild/epoch.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/epoch.sh.in @@ -2,7 +2,7 @@ # # epoch.sh - Check the 'epoch' variable conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/fullpkgver.sh.in b/scripts/libmakepkg/lint_pkgbuild/fullpkgver.sh.in index c0894ef1..4da5952b 100644 --- a/scripts/libmakepkg/lint_pkgbuild/fullpkgver.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/fullpkgver.sh.in @@ -2,7 +2,7 @@ # # fullpkgver.sh - Check whether a full version conforms to requirements. # -# Copyright (c) 2018-2024 Pacman Development Team +# Copyright (c) 2018-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/install.sh.in b/scripts/libmakepkg/lint_pkgbuild/install.sh.in index a35537e0..bd0585ab 100644 --- a/scripts/libmakepkg/lint_pkgbuild/install.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/install.sh.in @@ -2,7 +2,7 @@ # # install.sh - Check the files in the 'install' array exist. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in index 3a0fc0d9..ec7b60bf 100644 --- a/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/makedepends.sh.in @@ -2,7 +2,7 @@ # # makedepends.sh - Check the 'makedepends' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/meson.build b/scripts/libmakepkg/lint_pkgbuild/meson.build index 6050df2f..a0bc2f31 100644 --- a/scripts/libmakepkg/lint_pkgbuild/meson.build +++ b/scripts/libmakepkg/lint_pkgbuild/meson.build @@ -25,6 +25,7 @@ sources = [ 'source.sh.in', 'util.sh.in', 'variable.sh.in', + 'xdata.sh.in', ] foreach src : sources diff --git a/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in b/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in index a21a8c46..db82d734 100644 --- a/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/optdepends.sh.in @@ -2,7 +2,7 @@ # # optdepends.sh - Check the 'optdepends' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/options.sh.in b/scripts/libmakepkg/lint_pkgbuild/options.sh.in index d8857427..6f941e4f 100644 --- a/scripts/libmakepkg/lint_pkgbuild/options.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/options.sh.in @@ -2,7 +2,7 @@ # # options.sh - Check the 'options' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in b/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in index 335cc72f..afcc65a2 100644 --- a/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/package_function.sh.in @@ -2,7 +2,7 @@ # # package_function.sh - Check that required package functions exist. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/package_function_variable.sh.in b/scripts/libmakepkg/lint_pkgbuild/package_function_variable.sh.in index b0bd40ef..fcab96de 100644 --- a/scripts/libmakepkg/lint_pkgbuild/package_function_variable.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/package_function_variable.sh.in @@ -2,7 +2,7 @@ # # package_function_variable.sh - Check variables inside the package function. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in index 5e731103..1432696c 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkgbase.sh.in @@ -2,7 +2,7 @@ # # pkgbase.sh - Check the 'pkgbase' variable conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/pkglist.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkglist.sh.in index f042018e..8273681d 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkglist.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkglist.sh.in @@ -2,7 +2,7 @@ # # pkglist.sh - Check the packages selected to build exist. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in index a5d39790..3228e6fc 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in @@ -2,7 +2,7 @@ # # pkgname.sh - Check the 'pkgname' variable conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in index cf9d3a00..2fd6e99d 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkgrel.sh.in @@ -2,7 +2,7 @@ # # pkgrel.sh - Check the 'pkgrel' variable conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgver.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgver.sh.in index 60240165..21811f3c 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkgver.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkgver.sh.in @@ -2,7 +2,7 @@ # # pkgver.sh - Check the 'pkgver' variable conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/provides.sh.in b/scripts/libmakepkg/lint_pkgbuild/provides.sh.in index d5c47492..8337702f 100644 --- a/scripts/libmakepkg/lint_pkgbuild/provides.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/provides.sh.in @@ -2,7 +2,7 @@ # # provides.sh - Check the 'provides' array conforms to requirements. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/source.sh.in b/scripts/libmakepkg/lint_pkgbuild/source.sh.in index 723b27b4..0ad313e1 100644 --- a/scripts/libmakepkg/lint_pkgbuild/source.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/source.sh.in @@ -2,7 +2,7 @@ # # source.sh - Check the 'source' array is not sparse. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/util.sh.in b/scripts/libmakepkg/lint_pkgbuild/util.sh.in index 58c0fa70..63fa473a 100644 --- a/scripts/libmakepkg/lint_pkgbuild/util.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/util.sh.in @@ -2,7 +2,7 @@ # # util.sh - utility functions for pkgbuild linting. # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in index d7ad5342..03fb6634 100644 --- a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in @@ -2,7 +2,7 @@ # # variable.sh - Check that variables are or are not arrays as appropriate # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/lint_pkgbuild/xdata.sh.in b/scripts/libmakepkg/lint_pkgbuild/xdata.sh.in new file mode 100644 index 00000000..1ab77ad7 --- /dev/null +++ b/scripts/libmakepkg/lint_pkgbuild/xdata.sh.in @@ -0,0 +1,58 @@ +#!/bin/bash +# +# xdata.sh - Check the 'xdata' array conforms to requirements. +# +# Copyright (c) 2014-2025 Pacman Development Team +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_XDATA_SH" ]] && return +LIBMAKEPKG_LINT_PKGBUILD_XDATA_SH=1 + +MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'} + +source "$MAKEPKG_LIBRARY/util/message.sh" +source "$MAKEPKG_LIBRARY/util/pkgbuild.sh" + + +lint_pkgbuild_functions+=('lint_xdata') + + +lint_xdata() { + local xdata_list entry key value ret=0 + + get_pkgbuild_all_split_attributes xdata xdata_list + + for entry in "${xdata_list[@]}"; do + key="${entry%%=*}" + value="${entry##*=}" + + if [[ "${entry}" == "${key}=${value}" ]]; then + # Entries must contain exactly one equal sign. + error "$(gettext "%s array: Entries must contain exactly one equal sign, e.g. key=value.")" "xdata" + ret=1 + elif [[ "${key}" == '' ]]; then + # Do not allow keys without values. + error "$(gettext "%s array: The key part of an entry must not be empty.")" "xdata" + ret=1 + elif [[ "${key}" == "pkgtype" ]]; then + # The key "pkgtype" is reserved for makepkg. + error "$(gettext "%s array: The key 'pkgtype' is reserved for makepkg.")" "xdata" + ret=1 + fi + done + + return $ret +} diff --git a/scripts/libmakepkg/reproducible.sh.in b/scripts/libmakepkg/reproducible.sh.in index df0a996c..33e3627a 100644 --- a/scripts/libmakepkg/reproducible.sh.in +++ b/scripts/libmakepkg/reproducible.sh.in @@ -2,7 +2,7 @@ # # reproducible.sh - utilities for improving package reproducibility # -# Copyright (c) 2021-2024 Pacman Development Team +# Copyright (c) 2021-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/reproducible/source_date_epoch.sh.in b/scripts/libmakepkg/reproducible/source_date_epoch.sh.in index 190e6011..66bedb7d 100644 --- a/scripts/libmakepkg/reproducible/source_date_epoch.sh.in +++ b/scripts/libmakepkg/reproducible/source_date_epoch.sh.in @@ -2,7 +2,7 @@ # # source_date_epoch.sh - handle SOURCE_DATE_EPOCH variable for reproducibility # -# Copyright (c) 2017-2024 Pacman Development Team +# Copyright (c) 2017-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source.sh.in b/scripts/libmakepkg/source.sh.in index 1fb7e4ef..7edb7d44 100644 --- a/scripts/libmakepkg/source.sh.in +++ b/scripts/libmakepkg/source.sh.in @@ -2,7 +2,7 @@ # # source.sh - functions for downloading and extracting sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/bzr.sh.in b/scripts/libmakepkg/source/bzr.sh.in index cacb47c3..740de24a 100644 --- a/scripts/libmakepkg/source/bzr.sh.in +++ b/scripts/libmakepkg/source/bzr.sh.in @@ -2,7 +2,7 @@ # # bzr.sh - function for handling the download and "extraction" of Bazaar sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/file.sh.in b/scripts/libmakepkg/source/file.sh.in index 69076c47..556ad1b8 100644 --- a/scripts/libmakepkg/source/file.sh.in +++ b/scripts/libmakepkg/source/file.sh.in @@ -2,7 +2,7 @@ # # file.sh - function for handling the download and extraction of source files # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/fossil.sh.in b/scripts/libmakepkg/source/fossil.sh.in index bf2fa53e..fce15f53 100644 --- a/scripts/libmakepkg/source/fossil.sh.in +++ b/scripts/libmakepkg/source/fossil.sh.in @@ -2,7 +2,7 @@ # # fossil.sh - function for handling the download and extraction of Fossil sources # -# Copyright (c) 2020-2024 Pacman Development Team +# Copyright (c) 2020-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/git.sh.in b/scripts/libmakepkg/source/git.sh.in index d9c2416e..59b75f7b 100644 --- a/scripts/libmakepkg/source/git.sh.in +++ b/scripts/libmakepkg/source/git.sh.in @@ -2,7 +2,7 @@ # # git.sh - function for handling the download and "extraction" of Git sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,6 +28,8 @@ source "$MAKEPKG_LIBRARY/util/error.sh" source "$MAKEPKG_LIBRARY/util/message.sh" source "$MAKEPKG_LIBRARY/util/pkgbuild.sh" +export GIT_CONFIG_GLOBAL=/dev/null +export GIT_CONFIG_SYSTEM=${MAKEPKG_GIT_CONFIG:-'@sysconfdir@/makepkg.d/gitconfig'} download_git() { # abort early if parent says not to fetch @@ -161,7 +163,7 @@ calc_checksum_git() { case ${fragment%%=*} in tag|commit) fragval=${fragment##*=} - sum=$(GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null git -c core.abbrev=no -C "$dir" archive --format tar "$fragval" | "${integ}sum" 2>&1) || ret=1 + sum=$(git -c core.abbrev=no -C "$dir" archive --format tar "$fragval" | "${integ}sum" 2>&1) || ret=1 sum="${sum%% *}" ;; *) diff --git a/scripts/libmakepkg/source/hg.sh.in b/scripts/libmakepkg/source/hg.sh.in index 5cac4e5a..06f05610 100644 --- a/scripts/libmakepkg/source/hg.sh.in +++ b/scripts/libmakepkg/source/hg.sh.in @@ -2,7 +2,7 @@ # # hg.sh - function for handling the download and "extraction" of Mercurial sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/local.sh.in b/scripts/libmakepkg/source/local.sh.in index 1e6e00a8..d79ddd65 100644 --- a/scripts/libmakepkg/source/local.sh.in +++ b/scripts/libmakepkg/source/local.sh.in @@ -2,7 +2,7 @@ # # local.sh - function for handling the "download" of local sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/source/svn.sh.in b/scripts/libmakepkg/source/svn.sh.in index 0ef34596..13325806 100644 --- a/scripts/libmakepkg/source/svn.sh.in +++ b/scripts/libmakepkg/source/svn.sh.in @@ -2,7 +2,7 @@ # # svn.sh - function for handling the download and "extraction" of Subversion sources # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/srcinfo.sh.in b/scripts/libmakepkg/srcinfo.sh.in index c43d4cee..2c0ab6d1 100644 --- a/scripts/libmakepkg/srcinfo.sh.in +++ b/scripts/libmakepkg/srcinfo.sh.in @@ -2,7 +2,7 @@ # # srcinfo.sh - functions for writing .SRCINFO files # -# Copyright (c) 2014-2024 Pacman Development Team +# Copyright (c) 2014-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -113,7 +113,7 @@ srcinfo_write_package() { write_srcinfo_header() { printf "# Generated by makepkg %s\n" "$makepkg_version" - printf "# %s\n" "$(LC_ALL=C date -u)" + printf "# %s\n" "$(LC_ALL=C date --date="@$SOURCE_DATE_EPOCH" -u)" } write_srcinfo_content() { diff --git a/scripts/libmakepkg/tidy.sh.in b/scripts/libmakepkg/tidy.sh.in index 4314ef1d..4a554d69 100644 --- a/scripts/libmakepkg/tidy.sh.in +++ b/scripts/libmakepkg/tidy.sh.in @@ -3,7 +3,7 @@ # tidy.sh - functions for modifying/removing installed files before # package creation # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/docs.sh.in b/scripts/libmakepkg/tidy/10-docs.sh.in similarity index 94% rename from scripts/libmakepkg/tidy/docs.sh.in rename to scripts/libmakepkg/tidy/10-docs.sh.in index 13b9aa37..c9519a61 100644 --- a/scripts/libmakepkg/tidy/docs.sh.in +++ b/scripts/libmakepkg/tidy/10-docs.sh.in @@ -2,7 +2,7 @@ # # docs.sh - Remove documentation files from the package # -# Copyright (c) 2008-2024 Pacman Development Team +# Copyright (c) 2008-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/libtool.sh.in b/scripts/libmakepkg/tidy/10-libtool.sh.in similarity index 94% rename from scripts/libmakepkg/tidy/libtool.sh.in rename to scripts/libmakepkg/tidy/10-libtool.sh.in index f20aa20d..b6219cac 100644 --- a/scripts/libmakepkg/tidy/libtool.sh.in +++ b/scripts/libmakepkg/tidy/10-libtool.sh.in @@ -2,7 +2,7 @@ # # libtool.sh - Remove libtool files from the package # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/staticlibs.sh.in b/scripts/libmakepkg/tidy/10-staticlibs.sh.in similarity index 95% rename from scripts/libmakepkg/tidy/staticlibs.sh.in rename to scripts/libmakepkg/tidy/10-staticlibs.sh.in index 0315f7f6..2d24b0a2 100644 --- a/scripts/libmakepkg/tidy/staticlibs.sh.in +++ b/scripts/libmakepkg/tidy/10-staticlibs.sh.in @@ -2,7 +2,7 @@ # # staticlibs.sh - Remove static library files from the package # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/purge.sh.in b/scripts/libmakepkg/tidy/50-purge.sh.in similarity index 95% rename from scripts/libmakepkg/tidy/purge.sh.in rename to scripts/libmakepkg/tidy/50-purge.sh.in index a0f1af4f..3429026f 100644 --- a/scripts/libmakepkg/tidy/purge.sh.in +++ b/scripts/libmakepkg/tidy/50-purge.sh.in @@ -2,7 +2,7 @@ # # purge.sh - Remove unwanted files from the package # -# Copyright (c) 2008-2024 Pacman Development Team +# Copyright (c) 2008-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/strip.sh.in b/scripts/libmakepkg/tidy/50-strip.sh.in similarity index 99% rename from scripts/libmakepkg/tidy/strip.sh.in rename to scripts/libmakepkg/tidy/50-strip.sh.in index 136fc527..926f0ebf 100644 --- a/scripts/libmakepkg/tidy/strip.sh.in +++ b/scripts/libmakepkg/tidy/50-strip.sh.in @@ -2,7 +2,7 @@ # # strip.sh - Strip debugging symbols from binary files # -# Copyright (c) 2007-2024 Pacman Development Team +# Copyright (c) 2007-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/zipman.sh.in b/scripts/libmakepkg/tidy/50-zipman.sh.in similarity index 96% rename from scripts/libmakepkg/tidy/zipman.sh.in rename to scripts/libmakepkg/tidy/50-zipman.sh.in index bf569dba..72a23cd2 100644 --- a/scripts/libmakepkg/tidy/zipman.sh.in +++ b/scripts/libmakepkg/tidy/50-zipman.sh.in @@ -2,7 +2,7 @@ # # zipman.sh - Compress man and info pages # -# Copyright (c) 2011-2024 Pacman Development Team +# Copyright (c) 2011-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/emptydirs.sh.in b/scripts/libmakepkg/tidy/90-emptydirs.sh.in similarity index 95% rename from scripts/libmakepkg/tidy/emptydirs.sh.in rename to scripts/libmakepkg/tidy/90-emptydirs.sh.in index 23a2aaf3..1cadb9ea 100644 --- a/scripts/libmakepkg/tidy/emptydirs.sh.in +++ b/scripts/libmakepkg/tidy/90-emptydirs.sh.in @@ -2,7 +2,7 @@ # # emptydirs.sh - Remove empty directories from the package # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/tidy/meson.build b/scripts/libmakepkg/tidy/meson.build index 052ac7a2..7421b02a 100644 --- a/scripts/libmakepkg/tidy/meson.build +++ b/scripts/libmakepkg/tidy/meson.build @@ -1,13 +1,13 @@ libmakepkg_module = 'tidy' sources = [ - 'docs.sh.in', - 'emptydirs.sh.in', - 'libtool.sh.in', - 'purge.sh.in', - 'staticlibs.sh.in', - 'strip.sh.in', - 'zipman.sh.in', + '10-docs.sh.in', + '10-libtool.sh.in', + '10-staticlibs.sh.in', + '50-purge.sh.in', + '50-strip.sh.in', + '50-zipman.sh.in', + '90-emptydirs.sh.in', ] foreach src : sources diff --git a/scripts/libmakepkg/util.sh.in b/scripts/libmakepkg/util.sh.in index 1ef4ba0b..f23690b1 100644 --- a/scripts/libmakepkg/util.sh.in +++ b/scripts/libmakepkg/util.sh.in @@ -2,7 +2,7 @@ # # util.sh - utility functions for makepkg # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/compress.sh.in b/scripts/libmakepkg/util/compress.sh.in index 3cd6174d..17508ae7 100644 --- a/scripts/libmakepkg/util/compress.sh.in +++ b/scripts/libmakepkg/util/compress.sh.in @@ -2,7 +2,7 @@ # # compress.sh - functions to compress archives in a uniform manner # -# Copyright (c) 2017-2024 Pacman Development Team +# Copyright (c) 2017-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/config.sh.in b/scripts/libmakepkg/util/config.sh.in index 63f16d66..5feafe8b 100644 --- a/scripts/libmakepkg/util/config.sh.in +++ b/scripts/libmakepkg/util/config.sh.in @@ -2,7 +2,7 @@ # # config.sh - functions for handling makepkg config files # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # Copyright (c) 2002-2006 by Judd Vinet # # This program is free software; you can redistribute it and/or modify @@ -37,7 +37,7 @@ source_makepkg_config() { # Source the config file; fail if it is not found if [[ -r $MAKEPKG_CONF ]]; then source_safe "$MAKEPKG_CONF" - if [[ -d "$MAKEPKG_CONF.d" ]]; then + if [[ -d "$MAKEPKG_CONF.d" ]] && compgen -G "$MAKEPKG_CONF.d"/'*.conf' > /dev/null; then for c in "$MAKEPKG_CONF.d"/*.conf; do source_safe $c done @@ -77,8 +77,8 @@ load_makepkg_config() { source_makepkg_config "$MAKEPKG_CONF" - # prevent PKGBUILDs altering this directly - readonly -a BUILDENV + # prevent altering these directly + readonly -a BUILDENV OPTIONS eval "$restore_envvars" } diff --git a/scripts/libmakepkg/util/dirsize.sh.in b/scripts/libmakepkg/util/dirsize.sh.in index b43a4ec1..33295408 100644 --- a/scripts/libmakepkg/util/dirsize.sh.in +++ b/scripts/libmakepkg/util/dirsize.sh.in @@ -2,7 +2,7 @@ # # dirsize.sh - calculate size of all files in a directory # -# Copyright (c) 2019-2024 Pacman Development Team +# Copyright (c) 2019-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/error.sh.in b/scripts/libmakepkg/util/error.sh.in index b3def432..838a81c6 100644 --- a/scripts/libmakepkg/util/error.sh.in +++ b/scripts/libmakepkg/util/error.sh.in @@ -2,7 +2,7 @@ # # error.sh.in - error variable definitions for makepkg # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # Copyright (c) 2002-2006 by Judd Vinet # # This program is free software; you can redistribute it and/or modify diff --git a/scripts/libmakepkg/util/message.sh.in b/scripts/libmakepkg/util/message.sh.in index bd5d09b3..1ad67823 100644 --- a/scripts/libmakepkg/util/message.sh.in +++ b/scripts/libmakepkg/util/message.sh.in @@ -2,7 +2,7 @@ # # message.sh - functions for outputting messages in makepkg # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # Copyright (c) 2002-2006 by Judd Vinet # # This program is free software; you can redistribute it and/or modify diff --git a/scripts/libmakepkg/util/option.sh.in b/scripts/libmakepkg/util/option.sh.in index a2210f28..51a9d461 100644 --- a/scripts/libmakepkg/util/option.sh.in +++ b/scripts/libmakepkg/util/option.sh.in @@ -2,7 +2,7 @@ # # option.sh - functions to test if build/packaging options are enabled # -# Copyright (c) 2009-2024 Pacman Development Team +# Copyright (c) 2009-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/parseopts.sh.in b/scripts/libmakepkg/util/parseopts.sh.in index 8e95fb34..31a36864 100644 --- a/scripts/libmakepkg/util/parseopts.sh.in +++ b/scripts/libmakepkg/util/parseopts.sh.in @@ -2,7 +2,7 @@ # # parseopts.sh - getopt_long-like parser # -# Copyright (c) 2012-2024 Pacman Development Team +# Copyright (c) 2012-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/pkgbuild.sh.in b/scripts/libmakepkg/util/pkgbuild.sh.in index 7f8c12f7..0dbd864b 100644 --- a/scripts/libmakepkg/util/pkgbuild.sh.in +++ b/scripts/libmakepkg/util/pkgbuild.sh.in @@ -2,7 +2,7 @@ # # pkgbuild.sh - functions to extract information from PKGBUILD files # -# Copyright (c) 2009-2024 Pacman Development Team +# Copyright (c) 2009-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/schema.sh.in b/scripts/libmakepkg/util/schema.sh.in index cfdf7ba2..6707af0e 100644 --- a/scripts/libmakepkg/util/schema.sh.in +++ b/scripts/libmakepkg/util/schema.sh.in @@ -2,7 +2,7 @@ # # schema.sh - declare specific groups of pkgbuild variables # -# Copyright (c) 2015-2024 Pacman Development Team +# Copyright (c) 2015-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ known_hash_algos=({ck,md5,sha{1,224,256,384,512},b2}) pkgbuild_schema_arrays=(arch backup checkdepends conflicts depends groups license makedepends noextract optdepends options - provides replaces source validpgpkeys + provides replaces source validpgpkeys xdata "${known_hash_algos[@]/%/sums}") pkgbuild_schema_strings=(changelog epoch install pkgbase pkgdesc pkgrel pkgver diff --git a/scripts/libmakepkg/util/source.sh.in b/scripts/libmakepkg/util/source.sh.in index 894dc25e..1a726384 100644 --- a/scripts/libmakepkg/util/source.sh.in +++ b/scripts/libmakepkg/util/source.sh.in @@ -2,7 +2,7 @@ # # source.sh - functions to extract information from source URLs # -# Copyright (c) 2010-2024 Pacman Development Team +# Copyright (c) 2010-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/libmakepkg/util/util.sh.in b/scripts/libmakepkg/util/util.sh.in index 7784de19..798f3741 100644 --- a/scripts/libmakepkg/util/util.sh.in +++ b/scripts/libmakepkg/util/util.sh.in @@ -2,7 +2,7 @@ # # util.sh - general utility functions # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # Copyright (c) 2002-2006 by Judd Vinet # # This program is free software; you can redistribute it and/or modify diff --git a/scripts/makepkg-template.pl.in b/scripts/makepkg-template.pl.in index 53b89a9d..9c8aa9a6 100755 --- a/scripts/makepkg-template.pl.in +++ b/scripts/makepkg-template.pl.in @@ -1,7 +1,7 @@ #!/usr/bin/perl # makepkg-template - template system for makepkg # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -190,7 +190,7 @@ sub version { my ($exitstatus) = @_; printf "makepkg-template (pacman) %s\n", '@PACKAGE_VERSION@'; print gettext( - 'Copyright (c) 2013-2024 Pacman Development Team .'."\n". + 'Copyright (c) 2013-2025 Pacman Development Team .'."\n". 'This is free software; see the source for copying conditions.'."\n". 'There is NO WARRANTY, to the extent permitted by law.'."\n"); exit($exitstatus); diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 591b010e..820d068f 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2,7 +2,7 @@ # # makepkg - make packages compatible for use with pacman # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # Copyright (c) 2002-2006 by Judd Vinet # Copyright (c) 2005 by Aurelien Foret # Copyright (c) 2006 by Miklos Vajna @@ -493,7 +493,7 @@ write_pkginfo() { write_kv_pair "pkgname" "$pkgname" write_kv_pair "pkgbase" "$pkgbase" - write_kv_pair "xdata" "pkgtype=$pkgtype" + write_kv_pair "xdata" "pkgtype=$pkgtype" "${xdata[@]}" local fullver=$(get_full_version) write_kv_pair "pkgver" "$fullver" @@ -730,7 +730,8 @@ create_srcpackage() { # TODO: Maybe this can be set globally for robustness shopt -s -o pipefail - LANG=C bsdtar --no-fflags @BSDTAR_NO_READ_SPARSE@ -cLf - ${pkgbase} | compress_as "$SRCEXT" > "${pkg_file}" || ret=$? + list_package_files | LANG=C bsdtar --no-fflags @BSDTAR_NO_READ_SPARSE@ -cnLf - --null --files-from - | + compress_as "$SRCEXT" > "${pkg_file}" || ret=$? shopt -u -o pipefail @@ -923,7 +924,7 @@ usage() { version() { printf "makepkg (pacman) %s\n" "$makepkg_version" - printf -- "Copyright (c) 2006-2024 Pacman Development Team .\n" + printf -- "Copyright (c) 2006-2025 Pacman Development Team .\n" printf -- "Copyright (C) 2002-2006 Judd Vinet .\n" printf '\n' printf -- "$(gettext "\ @@ -1318,11 +1319,13 @@ else original_pkglist=($(run_pacman -Qq)) # required by remove_dep fi - msg "$(gettext "Checking buildtime dependencies...")" - if (( CHECKFUNC )); then - resolve_deps "${makedepends[@]}" "${checkdepends[@]}" || deperr=1 - else - resolve_deps "${makedepends[@]}" || deperr=1 + if (( ! deperr )); then + msg "$(gettext "Checking buildtime dependencies...")" + if (( CHECKFUNC )); then + resolve_deps "${makedepends[@]}" "${checkdepends[@]}" || deperr=1 + else + resolve_deps "${makedepends[@]}" || deperr=1 + fi fi if (( RMDEPS )); then diff --git a/scripts/pacman-db-upgrade.sh.in b/scripts/pacman-db-upgrade.sh.in index 6942cede..16d17a58 100644 --- a/scripts/pacman-db-upgrade.sh.in +++ b/scripts/pacman-db-upgrade.sh.in @@ -2,7 +2,7 @@ # # pacman-db-upgrade - upgrade the local pacman db to a newer format # -# Copyright (c) 2010-2024 Pacman Development Team +# Copyright (c) 2010-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -52,7 +52,7 @@ usage() { version() { printf "pacman-db-upgrade (pacman) %s\n" "$myver" - printf -- "Copyright (c) 2010-2024 Pacman Development Team .\n" + printf -- "Copyright (c) 2010-2025 Pacman Development Team .\n" printf '\n' printf -- "$(gettext "\ This is free software; see the source for copying conditions.\n\ diff --git a/scripts/pacman-key.sh.in b/scripts/pacman-key.sh.in index 601163a3..23f0c479 100644 --- a/scripts/pacman-key.sh.in +++ b/scripts/pacman-key.sh.in @@ -3,7 +3,7 @@ # pacman-key - manages pacman's keyring # Based on apt-key, from Debian # -# Copyright (c) 2010-2024 Pacman Development Team +# Copyright (c) 2010-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -94,7 +94,7 @@ usage() { version() { printf "pacman-key (pacman) %s\n" "${myver}" - printf -- "Copyright (c) 2010-2024 Pacman Development Team .\n" + printf -- "Copyright (c) 2010-2025 Pacman Development Team .\n" printf '\n' printf -- "$(gettext "\ This is free software; see the source for copying conditions.\n\ diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 61080848..c1832fe3 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -3,7 +3,7 @@ # repo-add - add a package to a given repo database file # repo-remove - remove a package entry from a given repo database file # -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,6 +44,7 @@ USE_COLOR='y' PREVENT_DOWNGRADE=0 INCLUDE_SIGS=0 DB_MODIFIED=0 +WAIT_LOCK=0 # Import libmakepkg source "$MAKEPKG_LIBRARY"/util/compress.sh @@ -66,7 +67,6 @@ Multiple packages to add can be specified on the command line.\n")" printf -- "\n" printf -- "$(gettext "Options:\n")" printf -- "$(gettext " -n, --new only add packages that are not already in the database\n")" - printf -- "$(gettext " -R, --remove remove old package file from disk after updating database\n")" printf -- "$(gettext " -p, --prevent-downgrade do not add package to database if a newer version is already present\n")" elif [[ $cmd == "repo-remove" ]] ; then printf -- "$(gettext "Usage: repo-remove [options] ...\n")" @@ -86,6 +86,8 @@ packages to remove can be specified on the command line.\n")" printf -- "$(gettext " -s, --sign sign database with GnuPG after update\n")" printf -- "$(gettext " -k, --key use the specified key to sign the database\n")" printf -- "$(gettext " -v, --verify verify database's signature before update\n")" + printf -- "$(gettext " -R, --remove remove old package file from disk after updating database\n")" + printf -- "$(gettext " -w, --wait-for-lock retry to acquire lock file until success\n")" printf -- "$(gettext "\n\ See %s(8) for more details and descriptions of the available options.\n")" $cmd printf "\n" @@ -99,7 +101,7 @@ See %s(8) for more details and descriptions of the available options.\n")" $cmd version() { cmd=${0##*/} printf "%s (pacman) %s\n\n" "$cmd" "$myver" - printf -- "Copyright (c) 2006-2024 Pacman Development Team .\n" + printf -- "Copyright (c) 2006-2025 Pacman Development Team .\n" printf '\n' printf -- "$(gettext "\ This is free software; see the source for copying conditions.\n\ @@ -353,11 +355,21 @@ db_remove_entry() { local pkgname=$1 local notfound=1 local pkgentry=$(find_pkgentry "$pkgname") + local repodir=${LOCKFILE%/*}/ while [[ -n $pkgentry ]]; do notfound=0 msg2 "$(gettext "Removing existing entry '%s'...")" \ "${pkgentry##*/}" + + if (( RMEXISTING )); then + local oldfilename="$(sed -n '/^%FILENAME%$/ {n;p;q;}' "$pkgentry/desc")" + local oldfile="$repodir/$oldfilename" + + msg2 "$(gettext "Removing old package file '%s'")" "$oldfilename" + rm -f ${oldfile} ${oldfile}.sig + fi + rm -rf "$pkgentry" # remove entries in "files" database @@ -397,13 +409,25 @@ prepare_repo_db() { exit 1 fi + try_lock_file() { + (set -o noclobber; echo "$$" > "$LOCKFILE") 2> /dev/null + } + # check lock file - if ( set -o noclobber; echo "$$" > "$LOCKFILE") 2> /dev/null; then + if (( WAIT_LOCK )); then + while ! try_lock_file; do + warning "$(gettext "Failed to acquire lockfile: %s. Retrying in 3 seconds.")" "$LOCKFILE" + sleep 3s + done CLEAN_LOCK=1 else - error "$(gettext "Failed to acquire lockfile: %s.")" "$LOCKFILE" - [[ -f $LOCKFILE ]] && error "$(gettext "Held by process %s")" "$(cat "$LOCKFILE")" - exit 1 + if try_lock_file; then + CLEAN_LOCK=1 + else + error "$(gettext "Failed to acquire lockfile: %s.")" "$LOCKFILE" + [[ -f $LOCKFILE ]] && error "$(gettext "Held by process %s")" "$(cat "$LOCKFILE")" + exit 2 + fi fi for repo in "db" "files"; do @@ -530,7 +554,7 @@ create_db() { pushd "$tmpdir/$repo" >/dev/null local files=(*) if [[ ${files[*]} = '*' ]]; then - # we have no packages remaining? zip up some emptyness + # we have no packages remaining? zip up some emptiness warning "$(gettext "No packages remain, creating empty database.")" files=(-T /dev/null) fi @@ -605,9 +629,9 @@ trap 'trap_exit "$(gettext "Aborted by user! Exiting...")"' INT trap 'trap_exit "$(gettext "An unknown error has occurred. Exiting...")"' ERR -OPT_SHORT="k:npqRsv" +OPT_SHORT="k:npqRsvw" OPT_LONG=('include-sigs' 'key:' 'new' 'nocolor' 'quiet' 'prevent-downgrade' 'remove' - 'sign' 'verify') + 'sign' 'verify' 'wait-for-lock') if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then exit 1 # E_INVALID_OPTION fi @@ -639,6 +663,9 @@ while true; do --include-sigs) INCLUDE_SIGS=1 ;; + -w|--wait-for-lock) + WAIT_LOCK=1 + ;; --) shift break diff --git a/scripts/wrapper.sh.in b/scripts/wrapper.sh.in index 31b18d15..7bb10c13 100644 --- a/scripts/wrapper.sh.in +++ b/scripts/wrapper.sh.in @@ -2,7 +2,7 @@ # # @PROGNAME@ - a wrapper for running the real @PROGNAME@ in the source tree # -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/src/common/ini.c b/src/common/ini.c index f6b8331b..0f4586e3 100644 --- a/src/common/ini.c +++ b/src/common/ini.c @@ -1,7 +1,7 @@ /* * ini.c * - * Copyright (c) 2013-2024 Pacman Development Team + * Copyright (c) 2013-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/ini.h b/src/common/ini.h index acbaf99f..68bfaa93 100644 --- a/src/common/ini.h +++ b/src/common/ini.h @@ -1,7 +1,7 @@ /* * ini.h * - * Copyright (c) 2013-2024 Pacman Development Team + * Copyright (c) 2013-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/util-common.c b/src/common/util-common.c index dfda40df..826dcfcb 100644 --- a/src/common/util-common.c +++ b/src/common/util-common.c @@ -1,7 +1,7 @@ /* * util-common.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/common/util-common.h b/src/common/util-common.h index 39f72032..d462d8d2 100644 --- a/src/common/util-common.h +++ b/src/common/util-common.h @@ -1,7 +1,7 @@ /* * util-common.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/callback.c b/src/pacman/callback.c index 2823d510..77874760 100644 --- a/src/pacman/callback.c +++ b/src/pacman/callback.c @@ -1,7 +1,7 @@ /* * callback.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/callback.h b/src/pacman/callback.h index 39f7c47d..30755791 100644 --- a/src/pacman/callback.h +++ b/src/pacman/callback.h @@ -1,7 +1,7 @@ /* * callback.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/check.c b/src/pacman/check.c index 01dfdb05..8d987140 100644 --- a/src/pacman/check.c +++ b/src/pacman/check.c @@ -1,7 +1,7 @@ /* * check.c * - * Copyright (c) 2012-2024 Pacman Development Team + * Copyright (c) 2012-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/check.h b/src/pacman/check.h index 3e2f19e3..b11a9396 100644 --- a/src/pacman/check.h +++ b/src/pacman/check.h @@ -1,7 +1,7 @@ /* * check.h * - * Copyright (c) 2012-2024 Pacman Development Team + * Copyright (c) 2012-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/conf.c b/src/pacman/conf.c index 6bb50326..a0e0e96a 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -1,7 +1,7 @@ /* * conf.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify @@ -938,7 +938,11 @@ static int setup_libalpm(void) alpm_option_set_architectures(handle, config->architectures); alpm_option_set_checkspace(handle, config->checkspace); alpm_option_set_usesyslog(handle, config->usesyslog); - alpm_option_set_sandboxuser(handle, config->sandboxuser); + + if(config->sandboxuser) { + alpm_option_set_sandboxuser(handle, config->sandboxuser); + } + alpm_option_set_disable_sandbox(handle, config->disable_sandbox); alpm_option_set_ignorepkgs(handle, config->ignorepkg); diff --git a/src/pacman/conf.h b/src/pacman/conf.h index 5bffd187..2c4fddf0 100644 --- a/src/pacman/conf.h +++ b/src/pacman/conf.h @@ -1,7 +1,7 @@ /* * conf.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/database.c b/src/pacman/database.c index 9d46fbff..b8f7a7fd 100644 --- a/src/pacman/database.c +++ b/src/pacman/database.c @@ -1,7 +1,7 @@ /* * database.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c index 455a6a46..014f9222 100644 --- a/src/pacman/deptest.c +++ b/src/pacman/deptest.c @@ -1,7 +1,7 @@ /* * deptest.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/files.c b/src/pacman/files.c index 8ffcdc52..539a0ff5 100644 --- a/src/pacman/files.c +++ b/src/pacman/files.c @@ -1,7 +1,7 @@ /* * files.c * - * Copyright (c) 2015-2024 Pacman Development Team + * Copyright (c) 2015-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/package.c b/src/pacman/package.c index ead623a8..6ac6c04e 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -1,7 +1,7 @@ /* * package.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/package.h b/src/pacman/package.h index c02d561b..6b18d5a1 100644 --- a/src/pacman/package.h +++ b/src/pacman/package.h @@ -1,7 +1,7 @@ /* * package.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/pacman-conf.c b/src/pacman/pacman-conf.c index 92e68003..8a0dfed8 100644 --- a/src/pacman/pacman-conf.c +++ b/src/pacman/pacman-conf.c @@ -1,7 +1,7 @@ /* * pacman-conf.c - parse pacman configuration files * - * Copyright (c) 2013-2024 Pacman Development Team + * Copyright (c) 2013-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 8f5fb6de..2866fc98 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -1,7 +1,7 @@ /* * pacman.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -/* special handling of package version for GIT */ +/* special handling of package version for Git */ #if defined(GIT_VERSION) #undef PACKAGE_VERSION #define PACKAGE_VERSION GIT_VERSION @@ -243,7 +243,7 @@ static void version(void) { printf("\n"); printf(" .--. Pacman v%s - libalpm v%s\n", PACKAGE_VERSION, alpm_version()); - printf("/ _.-' .-. .-. .-. Copyright (C) 2006-2024 Pacman Development Team\n"); + printf("/ _.-' .-. .-. .-. Copyright (C) 2006-2025 Pacman Development Team\n"); printf("\\ '-. '-' '-' '-' Copyright (C) 2002-2006 Judd Vinet\n"); printf(" '--'\n"); printf(_(" This program may be freely redistributed under\n" diff --git a/src/pacman/pacman.h b/src/pacman/pacman.h index 081f8da8..b8d9e77b 100644 --- a/src/pacman/pacman.h +++ b/src/pacman/pacman.h @@ -1,7 +1,7 @@ /* * pacman.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/query.c b/src/pacman/query.c index 1a504038..f71afddb 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -1,7 +1,7 @@ /* * query.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/remove.c b/src/pacman/remove.c index 98f85dee..1b3ce763 100644 --- a/src/pacman/remove.c +++ b/src/pacman/remove.c @@ -1,7 +1,7 @@ /* * remove.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/sighandler.c b/src/pacman/sighandler.c index 32b96b2e..c4140fc5 100644 --- a/src/pacman/sighandler.c +++ b/src/pacman/sighandler.c @@ -1,7 +1,7 @@ /* * sighandler.c * - * Copyright (c) 2015-2024 Pacman Development Team + * Copyright (c) 2015-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/sighandler.h b/src/pacman/sighandler.h index e6df6143..15356fc7 100644 --- a/src/pacman/sighandler.h +++ b/src/pacman/sighandler.h @@ -1,7 +1,7 @@ /* * sighandler.h * - * Copyright (c) 2015-2024 Pacman Development Team + * Copyright (c) 2015-2025 Pacman Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 95340db1..a3797e85 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -1,7 +1,7 @@ /* * sync.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c index 2950cdda..83ec7d32 100644 --- a/src/pacman/upgrade.c +++ b/src/pacman/upgrade.c @@ -1,7 +1,7 @@ /* * upgrade.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/util.c b/src/pacman/util.c index 0736b8d6..3b96568d 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1,7 +1,7 @@ /* * util.c * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/pacman/util.h b/src/pacman/util.h index 9112633f..cca816a5 100644 --- a/src/pacman/util.h +++ b/src/pacman/util.h @@ -1,7 +1,7 @@ /* * util.h * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2006 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/src/util/testpkg.c b/src/util/testpkg.c index 8b7055b0..00dca9cd 100644 --- a/src/util/testpkg.c +++ b/src/util/testpkg.c @@ -1,7 +1,7 @@ /* * testpkg.c : Test a pacman package for validity * - * Copyright (c) 2007-2024 Pacman Development Team + * Copyright (c) 2007-2025 Pacman Development Team * Copyright (c) 2007 by Aaron Griffin * * This program is free software; you can redistribute it and/or modify diff --git a/src/util/vercmp.c b/src/util/vercmp.c index 6e076e2d..2d33b118 100644 --- a/src/util/vercmp.c +++ b/src/util/vercmp.c @@ -2,7 +2,7 @@ * vercmp.c - Compare package version numbers using pacman's version * comparison logic * - * Copyright (c) 2006-2024 Pacman Development Team + * Copyright (c) 2006-2025 Pacman Development Team * Copyright (c) 2002-2005 by Judd Vinet * * This program is free software; you can redistribute it and/or modify diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py index c6add233..d775fe10 100755 --- a/test/pacman/pactest.py +++ b/test/pacman/pactest.py @@ -3,7 +3,7 @@ # pactest : run automated testing on the pacman binary # # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmdb.py b/test/pacman/pmdb.py index 433c22e2..e0005ded 100644 --- a/test/pacman/pmdb.py +++ b/test/pacman/pmdb.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmenv.py b/test/pacman/pmenv.py index bde6d99b..65f162b2 100644 --- a/test/pacman/pmenv.py +++ b/test/pacman/pmenv.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmfile.py b/test/pacman/pmfile.py index 212459c5..daec7ba4 100644 --- a/test/pacman/pmfile.py +++ b/test/pacman/pmfile.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmpkg.py b/test/pacman/pmpkg.py index f6f1d76e..2be87908 100644 --- a/test/pacman/pmpkg.py +++ b/test/pacman/pmpkg.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmrule.py b/test/pacman/pmrule.py index ca342138..2dada027 100644 --- a/test/pacman/pmrule.py +++ b/test/pacman/pmrule.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmserve.py b/test/pacman/pmserve.py index d3778393..18b0680a 100644 --- a/test/pacman/pmserve.py +++ b/test/pacman/pmserve.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2024 Pacman Development Team +# Copyright (c) 2020-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py index f5f033fa..75912654 100644 --- a/test/pacman/pmtest.py +++ b/test/pacman/pmtest.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/tap.py b/test/pacman/tap.py index 39126f03..5e567ac8 100644 --- a/test/pacman/tap.py +++ b/test/pacman/tap.py @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2024 Pacman Development Team +# Copyright (c) 2013-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/pacman/tests/sync1105.py b/test/pacman/tests/sync1105.py index cc43c8ca..e25de1cb 100644 --- a/test/pacman/tests/sync1105.py +++ b/test/pacman/tests/sync1105.py @@ -1,4 +1,4 @@ -self.description = "Upgrade with a replacement in a repo with lower prioriy" +self.description = "Upgrade with a replacement in a repo with lower priority" sp1 = pmpkg("pkg2") self.addpkg2db("sync1", sp1) diff --git a/test/pacman/util.py b/test/pacman/util.py index ee844812..cabdf46c 100644 --- a/test/pacman/util.py +++ b/test/pacman/util.py @@ -1,5 +1,5 @@ # Copyright (c) 2006 by Aurelien Foret -# Copyright (c) 2006-2024 Pacman Development Team +# Copyright (c) 2006-2025 Pacman Development Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/test/util/vercmptest.sh b/test/util/vercmptest.sh index 5c6467e7..703260cd 100755 --- a/test/util/vercmptest.sh +++ b/test/util/vercmptest.sh @@ -2,7 +2,7 @@ # # vercmptest - a test suite for the vercmp/libalpm program # -# Copyright (c) 2009-2024 by Pacman Development Team +# Copyright (c) 2009-2025 by Pacman Development Team # Copyright (c) 2008 by Dan McGee # # This program is free software; you can redistribute it and/or modify