forked from mirrors/pacman
Compare commits
1 Commits
morganamil
...
andrew/pfo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dc2266c2f |
@@ -16,10 +16,6 @@ default:
|
||||
python
|
||||
fakeroot fakechroot
|
||||
meson
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- build/meson-logs/meson-log.txt
|
||||
|
||||
arch:
|
||||
extends: .arch-test
|
||||
@@ -50,14 +46,14 @@ arch-clang:
|
||||
- ninja -C build
|
||||
- fakechroot meson test -C build
|
||||
|
||||
#arch-valgrind:
|
||||
# extends: .arch-test
|
||||
# script:
|
||||
# - pacman -Syu --needed --noconfirm valgrind
|
||||
# - pacman -U --noconfirm https://geo.mirror.pkgbuild.com/core-debug/os/x86_64/glibc-debug-$(pacman -S --print-format %v glibc)-x86_64.pkg.tar.zst
|
||||
# - meson setup build
|
||||
# - ninja -C build
|
||||
# - PACTEST_VALGRIND=1 fakechroot meson test -C build
|
||||
arch-valgrind:
|
||||
extends: .arch-test
|
||||
script:
|
||||
- pacman -Syu --needed --noconfirm valgrind
|
||||
- pacman -U --noconfirm https://geo.mirror.pkgbuild.com/core-debug/os/x86_64/glibc-debug-$(pacman -S --print-format %v glibc)-x86_64.pkg.tar.zst
|
||||
- meson setup build
|
||||
- ninja -C build
|
||||
- PACTEST_VALGRIND=1 fakechroot meson test -C build
|
||||
|
||||
arch-nettle:
|
||||
extends: .arch-test
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# This script serves as a trampoline for running scripts which depend on
|
||||
# libmakepkg with the libmakepkg within the build tree.
|
||||
|
||||
MAKEPKG_LIBRARY=@BUILDDIR@/libmakepkg exec @BASH@ -$- @REAL_PROGPATH@ "$@"
|
||||
LIBRARY=@BUILDDIR@/libmakepkg exec @BASH@ -$- @REAL_PROGPATH@ "$@"
|
||||
|
||||
@@ -12,8 +12,8 @@ depends=('glibc')
|
||||
makedepends=('ed')
|
||||
optdepends=('ed: for "patch -e" functionality')
|
||||
source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig})
|
||||
sha256sums=('9124ba46db0abd873d0995c2ca880e81252676bb6c03e0a37dfc5f608a9b0ceb'
|
||||
'SKIP')
|
||||
md5sums=('e9ae5393426d3ad783a300a338c09b72'
|
||||
'SKIP')
|
||||
|
||||
build() {
|
||||
cd "$srcdir/$pkgname-$pkgver"
|
||||
|
||||
@@ -336,13 +336,6 @@ function.
|
||||
the optional functions listed below. The packaging stage is run using
|
||||
fakeroot to ensure correct file permissions in the resulting package.
|
||||
All other functions will be run as the user calling makepkg.
|
||||
This function is run inside `$srcdir`.
|
||||
|
||||
*verify() Function*::
|
||||
An optional `verify()` function can be specified to implement arbitrary
|
||||
source authentication. The function should return a non-zero exit code when
|
||||
verification fails. This function is run before sources are extracted.
|
||||
This function is run inside `$startdir`.
|
||||
|
||||
*prepare() Function*::
|
||||
An optional `prepare()` function can be specified in which operations to
|
||||
@@ -350,19 +343,16 @@ function.
|
||||
function is run after the source extraction and before the `build()`
|
||||
function. The `prepare()` function is skipped when source extraction
|
||||
is skipped.
|
||||
This function is run inside `$srcdir`.
|
||||
|
||||
*build() Function*::
|
||||
The optional `build()` function is used to compile and/or adjust the source
|
||||
files in preparation to be installed by the `package()` function.
|
||||
This function is run inside `$srcdir`.
|
||||
|
||||
*check() Function*::
|
||||
An optional `check()` function can be specified in which a package's
|
||||
test-suite may be run. This function is run between the `build()` and
|
||||
`package()` functions. Be sure any exotic commands used are covered by the
|
||||
`checkdepends` array.
|
||||
This function is run inside `$srcdir`.
|
||||
|
||||
All of the above variables such as `$pkgname` and `$pkgver` are available for
|
||||
use in the packaging functions. In addition, makepkg defines the following
|
||||
@@ -372,6 +362,7 @@ variables:
|
||||
This contains the directory where makepkg extracts, or copies, all source
|
||||
files.
|
||||
+
|
||||
All of the packaging functions defined above are run starting inside `$srcdir`
|
||||
|
||||
*pkgdir*::
|
||||
This contains the directory where makepkg bundles the installed package.
|
||||
@@ -473,9 +464,6 @@ Currently makepkg supports the Bazaar, Git, Subversion, Fossil and Mercurial
|
||||
version control systems. For other version control systems, manual cloning of
|
||||
upstream repositories must be done in the `prepare()` function.
|
||||
|
||||
Some <<VCS,VCS Sources>> like Git support pinning the checkout by a checksum of
|
||||
its content using deterministic export functionality like ``git archive''.
|
||||
|
||||
The source URL is divided into four components:
|
||||
|
||||
*directory*::
|
||||
|
||||
@@ -85,7 +85,7 @@ Example PKGBUILD
|
||||
license=('PerlArtistic' 'GPL')
|
||||
depends=('perl')
|
||||
source=("http://search.cpan.org/CPAN/authors/id/S/SH/SHERZODR/Config-Simple-${pkgver}.tar.gz")
|
||||
sha256sums=('dd9995706f0f9384a15ccffe116c3b6e22f42ba2e58d8f24ed03c4a0e386edb4')
|
||||
md5sums=('f014aec54f0a1e2e880d317180fce502')
|
||||
_distname="Config-Simple"
|
||||
|
||||
# template start; name=perl-module; version=1.0;
|
||||
|
||||
@@ -146,9 +146,6 @@ Options
|
||||
*-C, \--cleanbuild*::
|
||||
Remove the $srcdir before building the package.
|
||||
|
||||
*-D* <dir>, *\--dir* <dir> ::
|
||||
Change to directory <dir> before reading the PKGBUILD or doing anything else.
|
||||
|
||||
*\--allsource*::
|
||||
Do not actually build the package, but build a source-only tarball that
|
||||
includes all sources, including those that are normally downloaded via
|
||||
@@ -171,9 +168,6 @@ Options
|
||||
*\--noprepare*::
|
||||
Do not run the prepare() function in the PKGBUILD.
|
||||
|
||||
*\--noverify*::
|
||||
Do not run the verify() function in the PKGBUILD.
|
||||
|
||||
*\--sign*::
|
||||
Sign the resulting package with gpg, overriding the setting in
|
||||
linkman:makepkg.conf[5].
|
||||
@@ -233,9 +227,6 @@ before building.
|
||||
|
||||
Environment Variables
|
||||
---------------------
|
||||
**MAKEPKG_LIBRARY**="/path/to/directory"::
|
||||
Use an alternative libmakepkg path instead of the {libmakepkgdir} default.
|
||||
|
||||
**PACMAN**::
|
||||
The command that will be used to check for missing dependencies and to
|
||||
install and remove packages. Pacman's '-Qq', '-Rns', '-S', '-T', and '-U'
|
||||
|
||||
@@ -199,7 +199,7 @@ Options
|
||||
flags specified in LTOFLAGS to CFLAGS, CXXFLAGS and LDFLAGS (or
|
||||
``-flto'' if LTOFLAGS is empty).
|
||||
|
||||
*autodeps*;;
|
||||
*autodep*;;
|
||||
Enable the automatic addition of libraries to the depends and
|
||||
provides arrays. Search library directories are controlled by
|
||||
the LIB_DIRS variable defined below.
|
||||
@@ -236,7 +236,7 @@ Options
|
||||
|
||||
**LIB_DIRS=(**lib:usr/lib ...**)**::
|
||||
If `autodeps` is specified in the `OPTIONS` array, this variable will
|
||||
instruct makepkg where to look to find libraries to add to the `provides`
|
||||
instruct makepkg where to look to find librarys to add to the `provides`
|
||||
array. The format is "prefix:path", where provides will be added for
|
||||
libraries found in "path" with the specified prefix added.
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@ asciidoc_opts = [
|
||||
'-a', 'sysconfdir=@0@'.format(SYSCONFDIR),
|
||||
'-a', 'datarootdir=@0@'.format(DATAROOTDIR),
|
||||
'-a', 'rootdir=@0@'.format(ROOTDIR),
|
||||
'-a', 'libmakepkgdir=@0@'.format(LIBMAKEPKGDIR),
|
||||
]
|
||||
|
||||
html_targets = []
|
||||
|
||||
@@ -237,12 +237,10 @@ Transaction Options (apply to '-S', '-R' and '-U')
|
||||
Specify a printf-like format to control the output of the '\--print'
|
||||
operation. The possible attributes are: "%a" for arch, "%b" for
|
||||
builddate, "%d" for description, "%e" for pkgbase, "%f" for filename,
|
||||
"%g" for base64 encoded PGP signature, "%h" for sha256sum, "%m" for
|
||||
md5sum, "%n" for pkgname, "%p" for packager, "%v" for pkgver, "%l" for
|
||||
location, "%r" for repository, "%s" for size, "%C" for checkdepends,
|
||||
"%D" for depends, "%G" for groups, "%H" for conflicts, "%L" for
|
||||
licenses, "%M" for makedepends, "%O" for optional depends, "%P" for
|
||||
provides and "%R" for replaces.
|
||||
"%g" for base64 encoded PGP signature, "%h" for sha256sum, "%n" for
|
||||
pkgname, "%p" for packager, "%v" for pkgver, "%l" for location, "%r"
|
||||
for repository, "%s" for size, "%C" for checkdepends, "%D" for depends
|
||||
and "%M" for makedepends.
|
||||
Implies '\--print'.
|
||||
|
||||
|
||||
@@ -456,11 +454,11 @@ Additional targets can also be specified manually, so that '-Su foo' will do a
|
||||
system upgrade and install/upgrade the "foo" package in the same operation.
|
||||
|
||||
*-y, \--refresh*::
|
||||
Download a fresh copy of the master package databases '(repo.db)' from the
|
||||
server(s) defined in linkman:pacman.conf[5]. This should typically be used
|
||||
each time you use '\--sysupgrade' or '-u'. Passing two '\--refresh' or '-y'
|
||||
flags will force a refresh of all package databases, even if they appear to
|
||||
be up-to-date.
|
||||
Download a fresh copy of the master package database from the server(s)
|
||||
defined in linkman:pacman.conf[5]. This should typically be used each time
|
||||
you use '\--sysupgrade' or '-u'. Passing two '\--refresh' or '-y' flags
|
||||
will force a refresh of all package databases, even if they appear to be
|
||||
up-to-date.
|
||||
|
||||
|
||||
Database Options (apply to '-D')[[QO]]
|
||||
@@ -489,8 +487,8 @@ Database Options (apply to '-D')[[QO]]
|
||||
File Options (apply to '-F')[[FO]]
|
||||
----------------------------------
|
||||
*-y, --refresh*::
|
||||
Download fresh package file databases '(repo.files)' from the server.
|
||||
Use twice to force a refresh even if databases are up to date.
|
||||
Download fresh package databases from the server. Use twice to force a
|
||||
refresh even if databases are up to date.
|
||||
|
||||
*-l, \--list*::
|
||||
List the files owned by the queried package.
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/hint/bash
|
||||
#
|
||||
# @sysconfdir@/makepkg.conf.d/rust.conf
|
||||
#
|
||||
|
||||
#########################################################################
|
||||
# RUST LANGUAGE SUPPORT
|
||||
#########################################################################
|
||||
#
|
||||
#RUSTFLAGS="-C opt-level=2"
|
||||
#DEBUG_RUSTFLAGS="-C debuginfo=2"
|
||||
@@ -23,7 +23,7 @@ DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
|
||||
|
||||
#-- The package required by makepkg to download VCS sources
|
||||
# Format: 'protocol::package'
|
||||
VCSCLIENTS=('bzr::breezy'
|
||||
VCSCLIENTS=('bzr::bzr'
|
||||
'fossil::fossil'
|
||||
'git::git'
|
||||
'hg::mercurial'
|
||||
@@ -42,11 +42,13 @@ CHOST="@CHOST@"
|
||||
#CXXFLAGS="-O2 -pipe"
|
||||
#LDFLAGS=""
|
||||
#LTOFLAGS="-flto"
|
||||
#RUSTFLAGS="-C opt-level=2"
|
||||
#-- Make Flags: change this for DistCC/SMP systems
|
||||
#MAKEFLAGS="-j2"
|
||||
#-- Debugging flags
|
||||
#DEBUG_CFLAGS="-g"
|
||||
#DEBUG_CXXFLAGS="-g"
|
||||
#DEBUG_RUSTFLAGS="-C debuginfo=2"
|
||||
|
||||
#########################################################################
|
||||
# BUILD ENVIRONMENT
|
||||
@@ -109,7 +111,7 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
|
||||
#-- Directory to store source code in for debug packages
|
||||
DBGSRCDIR="/usr/src/debug"
|
||||
#-- Prefix and directories for library autodeps
|
||||
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
|
||||
LIB_DIRS=('lib:/usr/lib' 'lib32:/usr/lib32')
|
||||
|
||||
#########################################################################
|
||||
# PACKAGE OUTPUT
|
||||
|
||||
@@ -415,7 +415,7 @@ static int extract_single_file(alpm_handle_t *handle, struct archive *archive,
|
||||
static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
|
||||
size_t pkg_current, size_t pkg_count)
|
||||
{
|
||||
int ret = 0, errors = 0;
|
||||
int i, ret = 0, errors = 0;
|
||||
int is_upgrade = 0;
|
||||
alpm_pkg_t *oldpkg = NULL;
|
||||
alpm_db_t *db = handle->db_local;
|
||||
@@ -469,7 +469,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
|
||||
!(trans->flags & ALPM_TRANS_FLAG_NOSCRIPTLET)) {
|
||||
const char *scriptlet_name = is_upgrade ? "pre_upgrade" : "pre_install";
|
||||
|
||||
_alpm_runscriptlet(handle, newpkg->name, pkgfile, scriptlet_name,
|
||||
_alpm_runscriptlet(handle, pkgfile, scriptlet_name,
|
||||
newpkg->version, oldpkg ? oldpkg->version : NULL, 1);
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
|
||||
/* call PROGRESS once with 0 percent, as we sort-of skip that here */
|
||||
PROGRESS(handle, progress, newpkg->name, 0, pkg_count, pkg_current);
|
||||
|
||||
while(archive_read_next_header(archive, &entry) == ARCHIVE_OK) {
|
||||
for(i = 0; archive_read_next_header(archive, &entry) == ARCHIVE_OK; i++) {
|
||||
int percent;
|
||||
|
||||
if(newpkg->size != 0) {
|
||||
@@ -641,7 +641,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
|
||||
char *scriptlet = _alpm_local_db_pkgpath(db, newpkg, "install");
|
||||
const char *scriptlet_name = is_upgrade ? "post_upgrade" : "post_install";
|
||||
|
||||
_alpm_runscriptlet(handle, newpkg->name, scriptlet, scriptlet_name,
|
||||
_alpm_runscriptlet(handle, scriptlet, scriptlet_name,
|
||||
newpkg->version, oldpkg ? oldpkg->version : NULL, 0);
|
||||
free(scriptlet);
|
||||
}
|
||||
|
||||
@@ -600,10 +600,16 @@ typedef struct _alpm_depmissing_t {
|
||||
|
||||
/** A conflict that has occurred between two packages. */
|
||||
typedef struct _alpm_conflict_t {
|
||||
/** The first package */
|
||||
alpm_pkg_t *package1;
|
||||
/** The second package */
|
||||
alpm_pkg_t *package2;
|
||||
/** Hash of the first package name
|
||||
* (used internally to speed up conflict checks) */
|
||||
unsigned long package1_hash;
|
||||
/** Hash of the second package name
|
||||
* (used internally to speed up conflict checks) */
|
||||
unsigned long package2_hash;
|
||||
/** Name of the first package */
|
||||
char *package1;
|
||||
/** Name of the second package */
|
||||
char *package2;
|
||||
/** The conflict */
|
||||
alpm_depend_t *reason;
|
||||
} alpm_conflict_t;
|
||||
@@ -750,10 +756,6 @@ typedef enum _alpm_event_type_t {
|
||||
ALPM_EVENT_LOAD_START,
|
||||
/** Target package is finished loading. */
|
||||
ALPM_EVENT_LOAD_DONE,
|
||||
/** An install file is about to be ran */
|
||||
ALPM_EVENT_INSTALL_RUN_START,
|
||||
/** An install file has finished running */
|
||||
ALPM_EVENT_INSTALL_RUN_DONE,
|
||||
/** Scriptlet has printed information; See alpm_event_scriptlet_info_t for
|
||||
* arguments. */
|
||||
ALPM_EVENT_SCRIPTLET_INFO,
|
||||
@@ -844,32 +846,10 @@ typedef struct _alpm_event_optdep_removal_t {
|
||||
alpm_depend_t *optdep;
|
||||
} alpm_event_optdep_removal_t;
|
||||
|
||||
/** Enum of the kinds of scriptlets */
|
||||
typedef enum _alpm_scriptlet_kind_t {
|
||||
/** We are running an install file */
|
||||
ALPM_SCRIPTLET_KIND_INSTALL_FILE,
|
||||
/** We are running a hook */
|
||||
ALPM_SCRIPTLET_KIND_HOOK,
|
||||
/** We are running a command */
|
||||
ALPM_SCRIPTLET_KIND_COMMAND,
|
||||
} alpm_scriptlet_kind_t;
|
||||
|
||||
/** We are running an install file. */
|
||||
typedef struct _alpm_event_install_run_t {
|
||||
/** Type of event */
|
||||
alpm_event_type_t type;
|
||||
/** The name of the package */
|
||||
const char *pkgname;
|
||||
} alpm_event_install_run_t;
|
||||
|
||||
/** A scriptlet was ran. */
|
||||
typedef struct _alpm_event_scriptlet_info_t {
|
||||
/** Type of event */
|
||||
alpm_event_type_t type;
|
||||
/** The kind of scriptlet being ran */
|
||||
alpm_scriptlet_kind_t kind;
|
||||
/** The name of the scriptlet **/
|
||||
const char *name;
|
||||
/** Line of scriptlet output */
|
||||
const char *line;
|
||||
} alpm_event_scriptlet_info_t;
|
||||
@@ -972,8 +952,6 @@ typedef union _alpm_event_t {
|
||||
alpm_event_package_operation_t package_operation;
|
||||
/** An optdept was remove */
|
||||
alpm_event_optdep_removal_t optdep_removal;
|
||||
/** An install file is about to be run */
|
||||
alpm_event_install_run_t install_run;
|
||||
/** A scriptlet was ran */
|
||||
alpm_event_scriptlet_info_t scriptlet_info;
|
||||
/** A database is missing */
|
||||
@@ -2935,6 +2913,9 @@ int alpm_capabilities(void);
|
||||
/* End of libalpm_api */
|
||||
/** @} */
|
||||
|
||||
size_t alpm_info_print_pkg(const char *format, alpm_pkg_t *pkg);
|
||||
size_t alpm_info_print_pkgs(const char *format, alpm_list_t *pkgs);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -50,8 +50,10 @@ static alpm_conflict_t *conflict_new(alpm_pkg_t *pkg1, alpm_pkg_t *pkg2,
|
||||
|
||||
CALLOC(conflict, 1, sizeof(alpm_conflict_t), return NULL);
|
||||
|
||||
ASSERT(_alpm_pkg_dup(pkg1, &conflict->package1) == 0, goto error);
|
||||
ASSERT(_alpm_pkg_dup(pkg2, &conflict->package2) == 0, goto error);
|
||||
conflict->package1_hash = pkg1->name_hash;
|
||||
conflict->package2_hash = pkg2->name_hash;
|
||||
STRDUP(conflict->package1, pkg1->name, goto error);
|
||||
STRDUP(conflict->package2, pkg2->name, goto error);
|
||||
conflict->reason = reason;
|
||||
|
||||
return conflict;
|
||||
@@ -64,9 +66,8 @@ error:
|
||||
void SYMEXPORT alpm_conflict_free(alpm_conflict_t *conflict)
|
||||
{
|
||||
ASSERT(conflict != NULL, return);
|
||||
_alpm_pkg_free(conflict->package1);
|
||||
_alpm_pkg_free(conflict->package2);
|
||||
|
||||
FREE(conflict->package2);
|
||||
FREE(conflict->package1);
|
||||
FREE(conflict);
|
||||
}
|
||||
|
||||
@@ -78,8 +79,10 @@ alpm_conflict_t *_alpm_conflict_dup(const alpm_conflict_t *conflict)
|
||||
alpm_conflict_t *newconflict;
|
||||
CALLOC(newconflict, 1, sizeof(alpm_conflict_t), return NULL);
|
||||
|
||||
ASSERT(_alpm_pkg_dup(conflict->package1, &newconflict->package1) == 0, goto error);
|
||||
ASSERT(_alpm_pkg_dup(conflict->package2, &newconflict->package2) == 0, goto error);
|
||||
newconflict->package1_hash = conflict->package1_hash;
|
||||
newconflict->package2_hash = conflict->package2_hash;
|
||||
STRDUP(newconflict->package1, conflict->package1, goto error);
|
||||
STRDUP(newconflict->package2, conflict->package2, goto error);
|
||||
newconflict->reason = conflict->reason;
|
||||
|
||||
return newconflict;
|
||||
@@ -102,10 +105,10 @@ static int conflict_isin(alpm_conflict_t *needle, alpm_list_t *haystack)
|
||||
alpm_list_t *i;
|
||||
for(i = haystack; i; i = i->next) {
|
||||
alpm_conflict_t *conflict = i->data;
|
||||
if(needle->package1->name_hash == conflict->package1->name_hash
|
||||
&& needle->package2->name_hash == conflict->package2->name_hash
|
||||
&& strcmp(needle->package1->name, conflict->package1->name) == 0
|
||||
&& strcmp(needle->package2->name, conflict->package2->name) == 0) {
|
||||
if(needle->package1_hash == conflict->package1_hash
|
||||
&& needle->package2_hash == conflict->package2_hash
|
||||
&& strcmp(needle->package1, conflict->package1) == 0
|
||||
&& strcmp(needle->package2, conflict->package2) == 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,10 +522,10 @@ static int _alpm_hook_run_hook(alpm_handle_t *handle, struct _alpm_hook_t *hook)
|
||||
alpm_list_count(hook->matches), (alpm_list_fn_cmp)strcmp);
|
||||
/* hooks with multiple triggers could have duplicate matches */
|
||||
ctx = hook->matches = _alpm_strlist_dedup(hook->matches);
|
||||
return _alpm_run_chroot(handle, hook->name, ALPM_SCRIPTLET_KIND_HOOK, hook->cmd[0], hook->cmd,
|
||||
return _alpm_run_chroot(handle, hook->cmd[0], hook->cmd,
|
||||
(_alpm_cb_io) _alpm_hook_feed_targets, &ctx);
|
||||
} else {
|
||||
return _alpm_run_chroot(handle, hook->name, ALPM_SCRIPTLET_KIND_HOOK, hook->cmd[0], hook->cmd, NULL, NULL);
|
||||
return _alpm_run_chroot(handle, hook->cmd[0], hook->cmd, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
226
lib/libalpm/info.c
Normal file
226
lib/libalpm/info.c
Normal file
@@ -0,0 +1,226 @@
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "alpm.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "mfmt.h"
|
||||
|
||||
typedef enum field_t {
|
||||
FILENAME,
|
||||
NAME,
|
||||
BASE,
|
||||
DESCRIPTION,
|
||||
VERSION,
|
||||
ORIGIN,
|
||||
REASON,
|
||||
LICENSE,
|
||||
GROUP,
|
||||
|
||||
DEPENDS,
|
||||
OPTDEPENDS,
|
||||
CONFLICTS,
|
||||
PROVIDES,
|
||||
REPLACES,
|
||||
REQUIREDBY,
|
||||
|
||||
DELTAS,
|
||||
FILES,
|
||||
BACKUP,
|
||||
DB,
|
||||
VALIDATION,
|
||||
URL,
|
||||
BUILDDATE,
|
||||
INSTALLDATE,
|
||||
PACKAGER,
|
||||
MD5SUM,
|
||||
SHA256SUM,
|
||||
ARCH,
|
||||
SIZE,
|
||||
ISIZE,
|
||||
BASE64SIG,
|
||||
|
||||
UNKNOWN,
|
||||
} field_t;
|
||||
|
||||
static struct field_map_t {
|
||||
const char *input;
|
||||
field_t field;
|
||||
} field_map[] = {
|
||||
{"filename", FILENAME},
|
||||
{"name", NAME},
|
||||
{"base", BASE},
|
||||
{"description", DESCRIPTION},
|
||||
{"version", VERSION},
|
||||
|
||||
{"license", LICENSE},
|
||||
{"group", GROUP},
|
||||
{"groups", GROUP},
|
||||
|
||||
{"depends", DEPENDS},
|
||||
{"optdepends", OPTDEPENDS},
|
||||
{"conflicts", CONFLICTS},
|
||||
{"provides", PROVIDES},
|
||||
{"replaces", REPLACES},
|
||||
{"requiredby", REQUIREDBY},
|
||||
|
||||
{"url", URL},
|
||||
{"builddate", BUILDDATE},
|
||||
{"installdate", INSTALLDATE},
|
||||
{"packager", PACKAGER},
|
||||
{"md5sum", MD5SUM},
|
||||
{"sha256sum", SHA256SUM},
|
||||
{"arch", ARCH},
|
||||
{"size", SIZE},
|
||||
{"isize", ISIZE},
|
||||
{"base64sig", BASE64SIG},
|
||||
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
static char *_alpm_hr_size(off_t bytes, char *dest)
|
||||
{
|
||||
static const char *suff[] = {"B", "K", "M", "G", "T", "P", "E", NULL};
|
||||
float hrsize;
|
||||
int s = 0;
|
||||
while((bytes >= 1000000 || bytes <= -1000000) && suff[s + 1]) {
|
||||
bytes /= 1024;
|
||||
++s;
|
||||
}
|
||||
hrsize = bytes;
|
||||
if((hrsize >= 1000 || hrsize <= -1000) && suff[s + 1]) {
|
||||
hrsize /= 1024;
|
||||
++s;
|
||||
}
|
||||
sprintf(dest, "%.2f %s", hrsize, suff[s]);
|
||||
return dest;
|
||||
}
|
||||
|
||||
static field_t _alpm_info_lookup_field(const char *name) {
|
||||
struct field_map_t *m;
|
||||
for(m = field_map; m->input; m++) {
|
||||
if(strcmp(name, m->input) == 0) { return m->field; }
|
||||
}
|
||||
return UNKNOWN;
|
||||
}
|
||||
|
||||
static size_t _alpm_info_print_str(mfmt_token_callback_t *t, const char *str, FILE *f) {
|
||||
return mfmt_render_str(t, str ? str : "NULL", f);
|
||||
}
|
||||
|
||||
static size_t _alpm_info_print_size(mfmt_token_callback_t *t, const off_t s, FILE *f) {
|
||||
if(s) {
|
||||
char hrsize[50];
|
||||
if(t->conversion == 'd') {
|
||||
snprintf(hrsize, 50, "%lld", (long long)s);
|
||||
} else {
|
||||
_alpm_hr_size(s, hrsize);
|
||||
}
|
||||
return mfmt_render_str(t, hrsize, f);
|
||||
} else {
|
||||
return mfmt_render_str(t, "NULL", f);
|
||||
}
|
||||
}
|
||||
|
||||
static size_t _alpm_info_print_strlist(mfmt_token_callback_t *t, alpm_list_t *l, FILE *f) {
|
||||
if(l) {
|
||||
size_t len = 0;
|
||||
while(l) {
|
||||
len += mfmt_render_str(t, l->data, f) + 1;
|
||||
fputc('\n', f);
|
||||
l = l->next;
|
||||
}
|
||||
return len;
|
||||
} else {
|
||||
return mfmt_render_str(t, "NULL", f);
|
||||
}
|
||||
}
|
||||
|
||||
static size_t _alpm_info_print_deplist(mfmt_token_callback_t *t, alpm_list_t *l, FILE *f) {
|
||||
if(l) {
|
||||
size_t len = 0;
|
||||
while(l) {
|
||||
char *s = alpm_dep_compute_string(l->data);
|
||||
len += mfmt_render_str(t, s, f) + 1;
|
||||
fputc('\n', f);
|
||||
l = l->next;
|
||||
free(s);
|
||||
}
|
||||
return len;
|
||||
} else {
|
||||
return mfmt_render_str(t, "NULL", f);
|
||||
}
|
||||
}
|
||||
|
||||
static size_t _alpm_info_print_timestamp(mfmt_token_callback_t *t, const alpm_time_t s, FILE *f) {
|
||||
if(s) {
|
||||
char datestr[50] = "";
|
||||
if(strftime(datestr, 50, " %c", localtime(&s)) == 0) { return 0; }
|
||||
return mfmt_render_str(t, datestr + 1, f);
|
||||
} else {
|
||||
return mfmt_render_str(t, "NULL", f);
|
||||
}
|
||||
}
|
||||
|
||||
static size_t _alpm_info_process_token(FILE *f, mfmt_token_callback_t *t, void *ctx, void *arg) {
|
||||
alpm_pkg_t *p = arg;
|
||||
(void)ctx;
|
||||
switch(_alpm_info_lookup_field(t->name)) {
|
||||
case NAME: return _alpm_info_print_str(t, alpm_pkg_get_name(p), f);
|
||||
case DESCRIPTION: return _alpm_info_print_str(t, alpm_pkg_get_desc(p), f);
|
||||
case PACKAGER: return _alpm_info_print_str(t, alpm_pkg_get_packager(p), f);
|
||||
case MD5SUM: return _alpm_info_print_str(t, alpm_pkg_get_md5sum(p), f);
|
||||
case FILENAME: return _alpm_info_print_str(t, alpm_pkg_get_filename(p), f);
|
||||
case BASE: return _alpm_info_print_str(t, alpm_pkg_get_base(p), f);
|
||||
case VERSION: return _alpm_info_print_str(t, alpm_pkg_get_version(p), f);
|
||||
case URL: return _alpm_info_print_str(t, alpm_pkg_get_url(p), f);
|
||||
case SHA256SUM: return _alpm_info_print_str(t, alpm_pkg_get_sha256sum(p), f);
|
||||
case ARCH: return _alpm_info_print_str(t, alpm_pkg_get_arch(p), f);
|
||||
case BASE64SIG: return _alpm_info_print_str(t, alpm_pkg_get_base64_sig(p), f);
|
||||
|
||||
case SIZE: return _alpm_info_print_size(t, alpm_pkg_get_size(p), f);
|
||||
case ISIZE: return _alpm_info_print_size(t, alpm_pkg_get_isize(p), f);
|
||||
|
||||
case BUILDDATE: return _alpm_info_print_timestamp(t, alpm_pkg_get_builddate(p), f);
|
||||
case INSTALLDATE: return _alpm_info_print_timestamp(t, alpm_pkg_get_installdate(p), f);
|
||||
|
||||
case DEPENDS: return _alpm_info_print_deplist(t, alpm_pkg_get_depends(p), f);
|
||||
case OPTDEPENDS: return _alpm_info_print_deplist(t, alpm_pkg_get_optdepends(p), f);
|
||||
case CONFLICTS: return _alpm_info_print_deplist(t, alpm_pkg_get_conflicts(p), f);
|
||||
case PROVIDES: return _alpm_info_print_deplist(t, alpm_pkg_get_provides(p), f);
|
||||
case REPLACES: return _alpm_info_print_deplist(t, alpm_pkg_get_replaces(p), f);
|
||||
case REQUIREDBY: {
|
||||
alpm_list_t *rb = alpm_pkg_compute_requiredby(p);
|
||||
size_t len = _alpm_info_print_strlist(t, rb, f);
|
||||
FREELIST(rb);
|
||||
return len;
|
||||
}
|
||||
|
||||
default: errno = EINVAL; return 0;
|
||||
}
|
||||
}
|
||||
|
||||
size_t SYMEXPORT alpm_info_print_pkg(const char *format, alpm_pkg_t *pkg) {
|
||||
alpm_list_t l = {
|
||||
.data = pkg,
|
||||
.next = NULL,
|
||||
};
|
||||
l.prev = &l;
|
||||
return alpm_info_print_pkgs(format, &l);
|
||||
}
|
||||
|
||||
size_t SYMEXPORT alpm_info_print_pkgs(const char *format, alpm_list_t *pkgs) {
|
||||
mfmt_t *mfmt = mfmt_parse(format, _alpm_info_process_token, NULL);
|
||||
size_t len = 0;
|
||||
if(mfmt == NULL) {
|
||||
return 0;
|
||||
}
|
||||
for(alpm_list_t *i = pkgs; i; i = i->next) {
|
||||
size_t plen = mfmt_printf(mfmt, i->data, stdout);
|
||||
if(plen == 0) { return 0; }
|
||||
len += plen;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
/* vim: set ts=2 sw=2 et: */
|
||||
@@ -28,5 +28,7 @@ libalpm_sources = files('''
|
||||
sync.h sync.c
|
||||
trans.h trans.c
|
||||
util.h util.c
|
||||
info.c
|
||||
mfmt.c mfmt.h
|
||||
version.c
|
||||
'''.split())
|
||||
|
||||
193
lib/libalpm/mfmt.c
Normal file
193
lib/libalpm/mfmt.c
Normal file
@@ -0,0 +1,193 @@
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "mfmt.h"
|
||||
|
||||
char *_mfmt_find_unescaped_char(char *haystack, char needle) {
|
||||
while(1) {
|
||||
haystack = strchrnul(haystack, needle);
|
||||
if(*haystack && *(haystack + 1) == needle) { haystack += 2; continue; }
|
||||
else { break; }
|
||||
}
|
||||
return haystack;
|
||||
}
|
||||
|
||||
void _mfmt_brace_dedup(char *str) {
|
||||
char *c = str, *end = str + strlen(str);
|
||||
while((c = strchr(c, '{'))) {
|
||||
memmove(c, c + 1, end - c);
|
||||
c++;
|
||||
}
|
||||
|
||||
c = str;
|
||||
while((c = strchr(c, '}'))) {
|
||||
memmove(c, c + 1, end - c);
|
||||
c++;
|
||||
}
|
||||
}
|
||||
|
||||
mfmt_t *mfmt_parse(const char *tmpl, mfmt_callback_t *cb, void *ctx) {
|
||||
mfmt_t *mfmt;
|
||||
char *c;
|
||||
|
||||
mfmt = calloc(sizeof(mfmt_t), 1);
|
||||
if(mfmt == NULL) { return NULL; }
|
||||
|
||||
mfmt->cb = cb;
|
||||
mfmt->ctx = ctx;
|
||||
|
||||
for(c = (char*) tmpl; c && *c; ) {
|
||||
mfmt->token_count++;
|
||||
if(*c == '{' && *(c + 1) != '{') {
|
||||
/* replacement */
|
||||
if(!*(c = _mfmt_find_unescaped_char(c + 1, '}'))) {
|
||||
errno = EINVAL;
|
||||
free(mfmt);
|
||||
return NULL;
|
||||
} else {
|
||||
c++;
|
||||
}
|
||||
} else {
|
||||
/* literal */
|
||||
c = _mfmt_find_unescaped_char(c, '{');
|
||||
}
|
||||
}
|
||||
|
||||
if((mfmt->tokens = calloc(sizeof(mfmt_token_t), mfmt->token_count)) == NULL) {
|
||||
free(mfmt);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size_t i;
|
||||
for(c = (char*) tmpl, i = 0; c && *c; i++) {
|
||||
if(*c == '{' && *(c + 1) != '{') {
|
||||
/* replacement */
|
||||
mfmt_token_callback_t *t = &mfmt->tokens[i].callback;
|
||||
char *end = _mfmt_find_unescaped_char(c + 1, '}');
|
||||
t->type = MFMT_TOKEN_CALLBACK;
|
||||
t->name = strndup(c + 1, end - c - 1);
|
||||
c = end + 1;
|
||||
} else {
|
||||
/* literal */
|
||||
char *end = _mfmt_find_unescaped_char(c, '{');
|
||||
mfmt_token_literal_t *t = &mfmt->tokens[i].literal;
|
||||
t->type = MFMT_TOKEN_LITERAL;
|
||||
t->string = strndup(c, end - c);
|
||||
_mfmt_brace_dedup(t->string);
|
||||
c = end;
|
||||
}
|
||||
}
|
||||
|
||||
return mfmt;
|
||||
}
|
||||
|
||||
size_t mfmt_printf(mfmt_t *mfmt, void *args, FILE *f) {
|
||||
size_t len = 0;
|
||||
size_t i;
|
||||
for(i = 0; i < mfmt->token_count; i++) {
|
||||
mfmt_token_t *t = &mfmt->tokens[i];
|
||||
switch(t->base.type) {
|
||||
case MFMT_TOKEN_LITERAL:
|
||||
len += fputs(t->literal.string, f);
|
||||
break;
|
||||
case MFMT_TOKEN_CALLBACK:
|
||||
len += mfmt->cb(f, &t->callback, mfmt->ctx, args);
|
||||
break;
|
||||
default:
|
||||
errno = EINVAL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
static size_t _mfmt_printf_close(mfmt_t *mfmt, void *args, FILE *f) {
|
||||
if(f) {
|
||||
size_t len = mfmt_printf(mfmt, args, f);
|
||||
fclose(f);
|
||||
return len;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
size_t mfmt_printd(mfmt_t *mfmt, void *args, int fd) {
|
||||
return _mfmt_printf_close(mfmt, args, fdopen(fd, "w"));
|
||||
}
|
||||
|
||||
size_t mfmt_printb(mfmt_t *mfmt, void *args, char *buf, size_t buflen) {
|
||||
return _mfmt_printf_close(mfmt, args, fmemopen(buf, buflen, "w"));
|
||||
}
|
||||
|
||||
size_t mfmt_prints(mfmt_t *mfmt, void *args, char **buf, size_t *buflen) {
|
||||
return _mfmt_printf_close(mfmt, args, open_memstream(buf, buflen));
|
||||
}
|
||||
|
||||
size_t mfmt_fmt(const char *tmpl, mfmt_val_t *args, FILE *f) {
|
||||
mfmt_t *mfmt = mfmt_parse(tmpl, NULL, NULL);
|
||||
size_t len;
|
||||
for(size_t i = 0; i < mfmt->token_count; i++) {
|
||||
mfmt_token_t *t = &mfmt->tokens[i];
|
||||
switch(t->base.type) {
|
||||
case MFMT_TOKEN_LITERAL:
|
||||
len += fputs(t->literal.string, f);
|
||||
break;
|
||||
case MFMT_TOKEN_CALLBACK:
|
||||
/* fprintf(stderr, "token: %s\n", t->callback.name); */
|
||||
if(t->callback.name[0]) {
|
||||
for(mfmt_val_t *v = args; v; v++) {
|
||||
/* fprintf(stderr, "val: %s\n", v->name); */
|
||||
if(strcmp(v->name, t->callback.name) == 0) {
|
||||
len += fputs(v->string, f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
len += fputs(args->string, f);
|
||||
args++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
size_t mfmt_mfmt(mfmt_t *mfmt, mfmt_val_t *args, FILE *f) {
|
||||
size_t len;
|
||||
for(size_t i = 0; i < mfmt->token_count; i++) {
|
||||
mfmt_token_t *t = &mfmt->tokens[i];
|
||||
switch(t->base.type) {
|
||||
case MFMT_TOKEN_LITERAL:
|
||||
len += fputs(t->literal.string, f);
|
||||
break;
|
||||
case MFMT_TOKEN_CALLBACK:
|
||||
/* fprintf(stderr, "token: %s\n", t->callback.name); */
|
||||
if(t->callback.name[0]) {
|
||||
for(mfmt_val_t *v = args; v; v++) {
|
||||
/* fprintf(stderr, "val: %s\n", v->name); */
|
||||
if(strcmp(v->name, t->callback.name) == 0) {
|
||||
len += fputs(v->string, f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
len += fputs(args->string, f);
|
||||
args++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
size_t mfmt_render_int(mfmt_token_callback_t *t, const intmax_t i, FILE *f) {
|
||||
(void)t;
|
||||
return fprintf(f, "%jd", i);
|
||||
}
|
||||
|
||||
size_t mfmt_render_str(mfmt_token_callback_t *t, const char *str, FILE *f) {
|
||||
(void)t;
|
||||
return fputs(str, f);
|
||||
}
|
||||
66
lib/libalpm/mfmt.h
Normal file
66
lib/libalpm/mfmt.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
typedef enum mfmt_token_type_t {
|
||||
MFMT_TOKEN_LITERAL,
|
||||
MFMT_TOKEN_CALLBACK,
|
||||
} mfmt_token_type_t;
|
||||
|
||||
typedef struct mfmt_token_literal_t {
|
||||
mfmt_token_type_t type;
|
||||
char *string;
|
||||
} mfmt_token_literal_t;
|
||||
|
||||
typedef struct mfmt_token_base_t {
|
||||
mfmt_token_type_t type;
|
||||
} mfmt_token_base_t;
|
||||
|
||||
typedef struct mfmt_token_callback_t {
|
||||
mfmt_token_type_t type;
|
||||
|
||||
size_t position;
|
||||
char *name;
|
||||
size_t width;
|
||||
size_t precision;
|
||||
char align;
|
||||
char fill;
|
||||
char conversion;
|
||||
int sign;
|
||||
} mfmt_token_callback_t;
|
||||
|
||||
typedef union mfmt_token_t {
|
||||
mfmt_token_base_t base;
|
||||
mfmt_token_literal_t literal;
|
||||
mfmt_token_callback_t callback;
|
||||
} mfmt_token_t;
|
||||
|
||||
typedef size_t (mfmt_callback_t)(FILE *f, mfmt_token_callback_t *token, void *ctx, void *args);
|
||||
|
||||
typedef struct mfmt_t {
|
||||
mfmt_callback_t *cb;
|
||||
void *ctx;
|
||||
size_t token_count;
|
||||
mfmt_token_t *tokens;
|
||||
} mfmt_t;
|
||||
|
||||
typedef struct mfmt_val_t {
|
||||
const char *name;
|
||||
const char *string;
|
||||
} mfmt_val_t;
|
||||
|
||||
mfmt_t *mfmt_parse(const char *tmpl, mfmt_callback_t *cb, void *ctx);
|
||||
size_t mfmt_printf(mfmt_t *mfmt, void *args, FILE *f);
|
||||
size_t mfmt_printd(mfmt_t *mfmt, void *args, int fd);
|
||||
size_t mfmt_printb(mfmt_t *mfmt, void *args, char *buf, size_t buflen);
|
||||
size_t mfmt_prints(mfmt_t *mfmt, void *args, char **buf, size_t *buflen);
|
||||
void mfmt_free(mfmt_t *mfmt);
|
||||
|
||||
size_t mfmt_render_int(mfmt_token_callback_t *token, intmax_t i, FILE *f);
|
||||
size_t mfmt_render_uint(mfmt_token_callback_t *token, uintmax_t i, FILE *f);
|
||||
size_t mfmt_render_str(mfmt_token_callback_t *token, const char *str, FILE *f);
|
||||
|
||||
size_t mfmt_formatf(const char *tmpl, mfmt_callback_t *cb, void *ctx, FILE *f);
|
||||
size_t mfmt_formatd(const char *tmpl, mfmt_callback_t *cb, void *ctx, int fd);
|
||||
size_t mfmt_formatb(const char *tmpl, mfmt_callback_t *cb, void *ctx, char *buf, size_t buflen);
|
||||
size_t mfmt_formats(const char *tmpl, mfmt_callback_t *cb, void *ctx, char **buf);
|
||||
@@ -692,7 +692,7 @@ int _alpm_remove_single_package(alpm_handle_t *handle,
|
||||
!(handle->trans->flags & ALPM_TRANS_FLAG_NOSCRIPTLET)) {
|
||||
char *scriptlet = _alpm_local_db_pkgpath(handle->db_local,
|
||||
oldpkg, "install");
|
||||
_alpm_runscriptlet(handle, oldpkg->name, scriptlet, "pre_remove", pkgver, NULL, 0);
|
||||
_alpm_runscriptlet(handle, scriptlet, "pre_remove", pkgver, NULL, 0);
|
||||
free(scriptlet);
|
||||
}
|
||||
}
|
||||
@@ -712,7 +712,7 @@ int _alpm_remove_single_package(alpm_handle_t *handle,
|
||||
!(handle->trans->flags & ALPM_TRANS_FLAG_NOSCRIPTLET)) {
|
||||
char *scriptlet = _alpm_local_db_pkgpath(handle->db_local,
|
||||
oldpkg, "install");
|
||||
_alpm_runscriptlet(handle, oldpkg->name, scriptlet, "post_remove", pkgver, NULL, 0);
|
||||
_alpm_runscriptlet(handle, scriptlet, "post_remove", pkgver, NULL, 0);
|
||||
free(scriptlet);
|
||||
}
|
||||
|
||||
|
||||
@@ -517,23 +517,21 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
|
||||
|
||||
for(i = deps; i; i = i->next) {
|
||||
alpm_conflict_t *conflict = i->data;
|
||||
const char *name1 = conflict->package1->name;
|
||||
const char *name2 = conflict->package2->name;
|
||||
alpm_pkg_t *rsync, *sync, *sync1, *sync2;
|
||||
|
||||
/* have we already removed one of the conflicting targets? */
|
||||
sync1 = alpm_pkg_find(trans->add, name1);
|
||||
sync2 = alpm_pkg_find(trans->add, name2);
|
||||
sync1 = alpm_pkg_find(trans->add, conflict->package1);
|
||||
sync2 = alpm_pkg_find(trans->add, conflict->package2);
|
||||
if(!sync1 || !sync2) {
|
||||
continue;
|
||||
}
|
||||
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "conflicting packages in the sync list: '%s' <-> '%s'\n",
|
||||
name1, name2);
|
||||
conflict->package1, conflict->package2);
|
||||
|
||||
/* if sync1 provides sync2, we remove sync2 from the targets, and vice versa */
|
||||
alpm_depend_t *dep1 = alpm_dep_from_string(name1);
|
||||
alpm_depend_t *dep2 = alpm_dep_from_string(name2);
|
||||
alpm_depend_t *dep1 = alpm_dep_from_string(conflict->package1);
|
||||
alpm_depend_t *dep2 = alpm_dep_from_string(conflict->package2);
|
||||
if(_alpm_depcmp(sync1, dep2)) {
|
||||
rsync = sync2;
|
||||
sync = sync1;
|
||||
@@ -561,8 +559,8 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
|
||||
|
||||
/* Prints warning */
|
||||
_alpm_log(handle, ALPM_LOG_WARNING,
|
||||
_("removing '%s-%s' from target list because it conflicts with '%s-%s'\n"),
|
||||
rsync->name, rsync->version, sync->name, sync->version);
|
||||
_("removing '%s' from target list because it conflicts with '%s'\n"),
|
||||
rsync->name, sync->name);
|
||||
trans->add = alpm_list_remove(trans->add, rsync, _alpm_pkg_cmp, NULL);
|
||||
/* rsync is not a transaction target anymore */
|
||||
trans->unresolvable = alpm_list_add(trans->unresolvable, rsync);
|
||||
@@ -583,18 +581,16 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
|
||||
.conflict = i->data
|
||||
};
|
||||
alpm_conflict_t *conflict = i->data;
|
||||
const char *name1 = conflict->package1->name;
|
||||
const char *name2 = conflict->package2->name;
|
||||
int found = 0;
|
||||
|
||||
/* if name2 (the local package) is not elected for removal,
|
||||
/* if conflict->package2 (the local package) is not elected for removal,
|
||||
we ask the user */
|
||||
if(alpm_pkg_find(trans->remove, name2)) {
|
||||
if(alpm_pkg_find(trans->remove, conflict->package2)) {
|
||||
found = 1;
|
||||
}
|
||||
for(j = trans->add; j && !found; j = j->next) {
|
||||
alpm_pkg_t *spkg = j->data;
|
||||
if(alpm_pkg_find(spkg->removes, name2)) {
|
||||
if(alpm_pkg_find(spkg->removes, conflict->package2)) {
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
@@ -602,15 +598,15 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
|
||||
continue;
|
||||
}
|
||||
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "package '%s-%s' conflicts with '%s-%s'\n",
|
||||
name1, conflict->package1->version, name2,conflict->package2->version);
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "package '%s' conflicts with '%s'\n",
|
||||
conflict->package1, conflict->package2);
|
||||
|
||||
QUESTION(handle, &question);
|
||||
if(question.remove) {
|
||||
/* append to the removes list */
|
||||
alpm_pkg_t *sync = alpm_pkg_find(trans->add, name1);
|
||||
alpm_pkg_t *local = _alpm_db_get_pkgfromcache(handle->db_local, name2);
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "electing '%s' for removal\n", name2);
|
||||
alpm_pkg_t *sync = alpm_pkg_find(trans->add, conflict->package1);
|
||||
alpm_pkg_t *local = _alpm_db_get_pkgfromcache(handle->db_local, conflict->package2);
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "electing '%s' for removal\n", conflict->package2);
|
||||
sync->removes = alpm_list_add(sync->removes, local);
|
||||
} else { /* abort */
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("unresolvable package conflicts detected\n"));
|
||||
@@ -995,13 +991,6 @@ static int check_validity(alpm_handle_t *handle,
|
||||
|
||||
current_bytes += v.pkg->size;
|
||||
v.path = _alpm_filecache_find(handle, v.pkg->filename);
|
||||
|
||||
if(!v.path) {
|
||||
_alpm_log(handle, ALPM_LOG_ERROR,
|
||||
_("%s: could not find package in cache\n"), v.pkg->name);
|
||||
RET_ERR(handle, ALPM_ERR_PKG_NOT_FOUND, -1);
|
||||
}
|
||||
|
||||
v.siglevel = alpm_db_get_siglevel(alpm_pkg_get_db(v.pkg));
|
||||
|
||||
if(_alpm_pkg_validate_internal(handle, v.path, v.pkg,
|
||||
@@ -1093,12 +1082,6 @@ static int load_packages(alpm_handle_t *handle, alpm_list_t **data,
|
||||
current_bytes += spkg->size;
|
||||
filepath = _alpm_filecache_find(handle, spkg->filename);
|
||||
|
||||
if(!filepath) {
|
||||
_alpm_log(handle, ALPM_LOG_ERROR,
|
||||
_("%s: could not find package in cache\n"), spkg->name);
|
||||
RET_ERR(handle, ALPM_ERR_PKG_NOT_FOUND, -1);
|
||||
}
|
||||
|
||||
/* load the package file and replace pkgcache entry with it in the target list */
|
||||
/* TODO: alpm_pkg_get_db() will not work on this target anymore */
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG,
|
||||
|
||||
@@ -334,7 +334,7 @@ static int grep(const char *fn, const char *needle)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _alpm_runscriptlet(alpm_handle_t *handle, const char *pkgname, const char *filepath,
|
||||
int _alpm_runscriptlet(alpm_handle_t *handle, const char *filepath,
|
||||
const char *script, const char *ver, const char *oldver, int is_archive)
|
||||
{
|
||||
char arg0[64], arg1[3], cmdline[PATH_MAX];
|
||||
@@ -407,16 +407,7 @@ int _alpm_runscriptlet(alpm_handle_t *handle, const char *pkgname, const char *f
|
||||
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "executing \"%s\"\n", cmdline);
|
||||
|
||||
alpm_event_install_run_t event = {
|
||||
.type = ALPM_EVENT_INSTALL_RUN_START,
|
||||
.pkgname = pkgname,
|
||||
};
|
||||
EVENT(handle, &event);
|
||||
|
||||
retval = _alpm_run_chroot(handle, pkgname, ALPM_SCRIPTLET_KIND_INSTALL_FILE, SCRIPTLET_SHELL, argv, NULL, NULL);
|
||||
|
||||
event.type = ALPM_EVENT_INSTALL_RUN_DONE;
|
||||
EVENT(handle, &event);
|
||||
retval = _alpm_run_chroot(handle, SCRIPTLET_SHELL, argv, NULL, NULL);
|
||||
|
||||
cleanup:
|
||||
if(scriptfn && unlink(scriptfn)) {
|
||||
|
||||
@@ -49,7 +49,7 @@ typedef struct _alpm_trans_t {
|
||||
void _alpm_trans_free(alpm_trans_t *trans);
|
||||
/* flags is a bitfield of alpm_transflag_t flags */
|
||||
int _alpm_trans_init(alpm_trans_t *trans, int flags);
|
||||
int _alpm_runscriptlet(alpm_handle_t *handle, const char *name, const char *filepath,
|
||||
int _alpm_runscriptlet(alpm_handle_t *handle, const char *filepath,
|
||||
const char *script, const char *ver, const char *oldver, int is_archive);
|
||||
|
||||
#endif /* ALPM_TRANS_H */
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <limits.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <fnmatch.h>
|
||||
#include <poll.h>
|
||||
#include <signal.h>
|
||||
@@ -497,21 +496,18 @@ static int _alpm_chroot_write_to_child(alpm_handle_t *handle, int fd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void _alpm_chroot_process_output(alpm_handle_t *handle, const char *name,
|
||||
alpm_scriptlet_kind_t kind, const char *line)
|
||||
static void _alpm_chroot_process_output(alpm_handle_t *handle, const char *line)
|
||||
{
|
||||
alpm_event_scriptlet_info_t event = {
|
||||
.type = ALPM_EVENT_SCRIPTLET_INFO,
|
||||
.kind = kind,
|
||||
.name = name,
|
||||
.line = line
|
||||
};
|
||||
alpm_logaction(handle, "ALPM-SCRIPTLET", "%s", line);
|
||||
EVENT(handle, &event);
|
||||
}
|
||||
|
||||
static int _alpm_chroot_read_from_child(alpm_handle_t *handle, int fd, const char *name,
|
||||
alpm_scriptlet_kind_t kind, char *buf, ssize_t *buf_size, ssize_t buf_limit)
|
||||
static int _alpm_chroot_read_from_child(alpm_handle_t *handle, int fd,
|
||||
char *buf, ssize_t *buf_size, ssize_t buf_limit)
|
||||
{
|
||||
ssize_t space = buf_limit - *buf_size - 2; /* reserve 2 for "\n\0" */
|
||||
ssize_t nread = read(fd, buf + *buf_size, space);
|
||||
@@ -523,7 +519,7 @@ static int _alpm_chroot_read_from_child(alpm_handle_t *handle, int fd, const cha
|
||||
size_t linelen = newline - buf + 1;
|
||||
char old = buf[linelen];
|
||||
buf[linelen] = '\0';
|
||||
_alpm_chroot_process_output(handle, name, kind, buf);
|
||||
_alpm_chroot_process_output(handle, buf);
|
||||
buf[linelen] = old;
|
||||
|
||||
*buf_size -= linelen;
|
||||
@@ -533,14 +529,14 @@ static int _alpm_chroot_read_from_child(alpm_handle_t *handle, int fd, const cha
|
||||
} else if(nread == space) {
|
||||
/* we didn't read a full line, but we're out of space */
|
||||
strcpy(buf + *buf_size, "\n");
|
||||
_alpm_chroot_process_output(handle, name, kind, buf);
|
||||
_alpm_chroot_process_output(handle, buf);
|
||||
*buf_size = 0;
|
||||
}
|
||||
} else if(nread == 0) {
|
||||
/* end-of-file */
|
||||
if(*buf_size) {
|
||||
strcpy(buf + *buf_size, "\n");
|
||||
_alpm_chroot_process_output(handle, name, kind, buf);
|
||||
_alpm_chroot_process_output(handle, buf);
|
||||
}
|
||||
return -1;
|
||||
} else if(should_retry(errno)) {
|
||||
@@ -549,7 +545,7 @@ static int _alpm_chroot_read_from_child(alpm_handle_t *handle, int fd, const cha
|
||||
/* read error */
|
||||
if(*buf_size) {
|
||||
strcpy(buf + *buf_size, "\n");
|
||||
_alpm_chroot_process_output(handle, name, kind, buf);
|
||||
_alpm_chroot_process_output(handle, buf);
|
||||
}
|
||||
_alpm_log(handle, ALPM_LOG_ERROR,
|
||||
_("unable to read from pipe (%s)\n"), strerror(errno));
|
||||
@@ -585,16 +581,14 @@ static void _alpm_reset_signals(void)
|
||||
|
||||
/** Execute a command with arguments in a chroot.
|
||||
* @param handle the context handle
|
||||
* @param name a human readable name to describe the command
|
||||
* @param kind what kind of scriptlet is running
|
||||
* @param cmd command to execute
|
||||
* @param argv arguments to pass to cmd
|
||||
* @param stdin_cb callback to provide input to the chroot on stdin
|
||||
* @param stdin_ctx context to be passed to @a stdin_cb
|
||||
* @return 0 on success, 1 on error
|
||||
*/
|
||||
int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kind_t kind,
|
||||
const char *cmd, char *const argv[], _alpm_cb_io stdin_cb, void *stdin_ctx)
|
||||
int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[],
|
||||
_alpm_cb_io stdin_cb, void *stdin_ctx)
|
||||
{
|
||||
pid_t pid;
|
||||
int child2parent_pipefd[2], parent2child_pipefd[2];
|
||||
@@ -655,15 +649,12 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
close(parent2child_pipefd[HEAD]);
|
||||
close(child2parent_pipefd[TAIL]);
|
||||
close(child2parent_pipefd[HEAD]);
|
||||
|
||||
if(cwdfd >= 0) {
|
||||
close(cwdfd);
|
||||
}
|
||||
|
||||
/* use fprintf instead of _alpm_log to send output through the parent */
|
||||
/* don't chroot() to "/": this allows running with less caps when the
|
||||
* caller puts us in the right root */
|
||||
if(strcmp(handle->root, "/") != 0 && chroot(handle->root) != 0) {
|
||||
if(chroot(handle->root) != 0) {
|
||||
fprintf(stderr, _("could not change the root directory (%s)\n"), strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
@@ -683,38 +674,24 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
_alpm_reset_signals();
|
||||
execv(cmd, argv);
|
||||
/* execv only returns if there was an error */
|
||||
fprintf(stderr, _("%s: failed to execv '%s' (%s)\n"), name, cmd, strerror(errno));
|
||||
fprintf(stderr, _("call to execv failed (%s)\n"), strerror(errno));
|
||||
exit(1);
|
||||
} else {
|
||||
/* this code runs for the parent only (wait on the child) */
|
||||
int status;
|
||||
char obuf[PIPE_BUF]; /* writes <= PIPE_BUF are guaranteed atomic */
|
||||
char ibuf[LINE_MAX];
|
||||
char sciptlet_name[32];
|
||||
ssize_t olen = 0, ilen = 0;
|
||||
nfds_t nfds = 2;
|
||||
struct pollfd fds[2], *child2parent = &(fds[0]), *parent2child = &(fds[1]);
|
||||
int poll_ret;
|
||||
|
||||
switch(kind) {
|
||||
case ALPM_SCRIPTLET_KIND_HOOK:
|
||||
snprintf(sciptlet_name, 32, "hook '%s'", name);
|
||||
break;
|
||||
case ALPM_SCRIPTLET_KIND_INSTALL_FILE:
|
||||
snprintf(sciptlet_name, 32, "'%s.install'", name);
|
||||
break;
|
||||
case ALPM_SCRIPTLET_KIND_COMMAND:
|
||||
strncpy(sciptlet_name, "ldconfig", 32);
|
||||
break;
|
||||
}
|
||||
|
||||
child2parent->fd = child2parent_pipefd[TAIL];
|
||||
child2parent->events = POLLIN;
|
||||
fcntl(child2parent->fd, F_SETFL, O_NONBLOCK);
|
||||
close(child2parent_pipefd[HEAD]);
|
||||
close(parent2child_pipefd[TAIL]);
|
||||
|
||||
|
||||
if(stdin_cb) {
|
||||
parent2child->fd = parent2child_pipefd[HEAD];
|
||||
parent2child->events = POLLOUT;
|
||||
@@ -737,7 +714,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
}
|
||||
}
|
||||
if(child2parent->revents & POLLIN) {
|
||||
if(_alpm_chroot_read_from_child(handle, child2parent->fd, name, kind,
|
||||
if(_alpm_chroot_read_from_child(handle, child2parent->fd,
|
||||
ibuf, &ilen, sizeof(ibuf)) != 0) {
|
||||
/* we encountered end-of-file or an error */
|
||||
STOP_POLLING(child2parent);
|
||||
@@ -760,7 +737,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
if(ilen) {
|
||||
/* buffer would have already been flushed if it had a newline */
|
||||
strcpy(ibuf + ilen, "\n");
|
||||
_alpm_chroot_process_output(handle, name, kind, ibuf);
|
||||
_alpm_chroot_process_output(handle, ibuf);
|
||||
}
|
||||
|
||||
#undef STOP_POLLING
|
||||
@@ -776,7 +753,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
|
||||
while(waitpid(pid, &status, 0) == -1) {
|
||||
if(errno != EINTR) {
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("failed to run %s: call to waitpid failed (%s)\n"), sciptlet_name, strerror(errno));
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("call to waitpid failed (%s)\n"), strerror(errno));
|
||||
retval = 1;
|
||||
goto cleanup;
|
||||
}
|
||||
@@ -786,8 +763,7 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
if(WIFEXITED(status)) {
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "call to waitpid succeeded\n");
|
||||
if(WEXITSTATUS(status) != 0) {
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("%s did not complete sucessfully (%s exited %d)\n"),
|
||||
sciptlet_name, cmd, WEXITSTATUS(status));
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("command failed to execute correctly\n"));
|
||||
retval = 1;
|
||||
}
|
||||
} else if(WIFSIGNALED(status) != 0) {
|
||||
@@ -796,8 +772,8 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kin
|
||||
if(signal_description == NULL) {
|
||||
signal_description = _("Unknown signal");
|
||||
}
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("%s terminated by signal %d: %s\n"),
|
||||
sciptlet_name, WTERMSIG(status), signal_description);
|
||||
_alpm_log(handle, ALPM_LOG_ERROR, _("command terminated by signal %d: %s\n"),
|
||||
WTERMSIG(status), signal_description);
|
||||
retval = 1;
|
||||
}
|
||||
}
|
||||
@@ -828,9 +804,10 @@ int _alpm_ldconfig(alpm_handle_t *handle)
|
||||
if(access(line, F_OK) == 0) {
|
||||
snprintf(line, PATH_MAX, "%s%s", handle->root, LDCONFIG);
|
||||
if(access(line, X_OK) == 0) {
|
||||
char *arg0 = strdup(LDCONFIG);
|
||||
char arg0[32];
|
||||
char *argv[] = { arg0, NULL };
|
||||
return _alpm_run_chroot(handle, "ldconfig", ALPM_SCRIPTLET_KIND_COMMAND, LDCONFIG, argv, NULL, NULL);
|
||||
strcpy(arg0, "ldconfig");
|
||||
return _alpm_run_chroot(handle, LDCONFIG, argv, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -865,17 +842,10 @@ char *_alpm_filecache_find(alpm_handle_t *handle, const char *filename)
|
||||
for(i = handle->cachedirs; i; i = i->next) {
|
||||
snprintf(path, PATH_MAX, "%s%s", (char *)i->data,
|
||||
filename);
|
||||
if(stat(path, &buf) == 0) {
|
||||
if(S_ISREG(buf.st_mode)) {
|
||||
retpath = strdup(path);
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "found cached pkg: %s\n", retpath);
|
||||
return retpath;
|
||||
} else {
|
||||
_alpm_log(handle, ALPM_LOG_WARNING,
|
||||
"cached pkg '%s' is not a regular file: mode=%i\n", path, buf.st_mode);
|
||||
}
|
||||
} else if(errno != ENOENT) {
|
||||
_alpm_log(handle, ALPM_LOG_WARNING, "could not open '%s'\n: %s", path, strerror(errno));
|
||||
if(stat(path, &buf) == 0 && S_ISREG(buf.st_mode)) {
|
||||
retpath = strdup(path);
|
||||
_alpm_log(handle, ALPM_LOG_DEBUG, "found cached pkg: %s\n", retpath);
|
||||
return retpath;
|
||||
}
|
||||
}
|
||||
/* package wasn't found in any cachedir */
|
||||
@@ -1382,11 +1352,6 @@ int _alpm_access(alpm_handle_t *handle, const char *dir, const char *file, int a
|
||||
size_t len = 0;
|
||||
int ret = 0;
|
||||
|
||||
int flag = 0;
|
||||
#ifdef AT_SYMLINK_NOFOLLOW
|
||||
flag |= AT_SYMLINK_NOFOLLOW;
|
||||
#endif
|
||||
|
||||
if(dir) {
|
||||
char *check_path;
|
||||
|
||||
@@ -1394,11 +1359,11 @@ int _alpm_access(alpm_handle_t *handle, const char *dir, const char *file, int a
|
||||
CALLOC(check_path, len, sizeof(char), RET_ERR(handle, ALPM_ERR_MEMORY, -1));
|
||||
snprintf(check_path, len, "%s%s", dir, file);
|
||||
|
||||
ret = faccessat(AT_FDCWD, check_path, amode, flag);
|
||||
ret = access(check_path, amode);
|
||||
free(check_path);
|
||||
} else {
|
||||
dir = "";
|
||||
ret = faccessat(AT_FDCWD, file, amode, flag);
|
||||
ret = access(file, amode);
|
||||
}
|
||||
|
||||
if(ret != 0) {
|
||||
|
||||
@@ -129,8 +129,8 @@ ssize_t _alpm_files_in_directory(alpm_handle_t *handle, const char *path, int fu
|
||||
|
||||
typedef ssize_t (*_alpm_cb_io)(void *buf, ssize_t len, void *ctx);
|
||||
|
||||
int _alpm_run_chroot(alpm_handle_t *handle, const char *name, alpm_scriptlet_kind_t kind,
|
||||
const char *cmd, char *const argv[], _alpm_cb_io in_cb, void *in_ctx);
|
||||
int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[],
|
||||
_alpm_cb_io in_cb, void *in_ctx);
|
||||
int _alpm_ldconfig(alpm_handle_t *handle);
|
||||
int _alpm_str_cmp(const void *s1, const void *s2);
|
||||
char *_alpm_filecache_find(alpm_handle_t *handle, const char *filename);
|
||||
|
||||
24
meson.build
24
meson.build
@@ -182,22 +182,7 @@ foreach type : [
|
||||
endif
|
||||
endforeach
|
||||
|
||||
|
||||
if conf.has('HAVE_GETMNTINFO')
|
||||
if cc.compiles('''
|
||||
#include <sys/types.h>
|
||||
#include <sys/statvfs.h>
|
||||
|
||||
void func() {
|
||||
struct statvfs *buf;
|
||||
getmntinfo(&buf, 0);
|
||||
}
|
||||
''')
|
||||
conf.set('FSSTATSTYPE', 'struct statvfs')
|
||||
else
|
||||
conf.set('FSSTATSTYPE', 'struct statfs')
|
||||
endif
|
||||
elif conf.has('HAVE_STRUCT_STATVFS_F_FLAG')
|
||||
if conf.has('HAVE_STRUCT_STATVFS_F_FLAG')
|
||||
conf.set('FSSTATSTYPE', 'struct statvfs')
|
||||
elif conf.has('HAVE_STRUCT_STATFS_F_FLAGS')
|
||||
conf.set('FSSTATSTYPE', 'struct statfs')
|
||||
@@ -205,7 +190,6 @@ endif
|
||||
|
||||
if get_option('debug')
|
||||
extra_cflags = [
|
||||
'-pedantic',
|
||||
'-Wcast-align',
|
||||
'-Wclobbered',
|
||||
'-Wempty-body',
|
||||
@@ -417,12 +401,6 @@ configure_file(
|
||||
configuration : substs,
|
||||
install_dir : SYSCONFDIR)
|
||||
|
||||
configure_file(
|
||||
input : 'etc/makepkg.conf.d/rust.conf.in',
|
||||
output : 'rust.conf',
|
||||
configuration : substs,
|
||||
install_dir : join_paths(SYSCONFDIR, 'makepkg.conf.d/'))
|
||||
|
||||
configure_file(
|
||||
input : 'etc/pacman.conf.in',
|
||||
output : 'pacman.conf',
|
||||
|
||||
@@ -28,7 +28,7 @@ changelog=
|
||||
source=("$pkgbase-$pkgver.tar.gz"
|
||||
"$pkgname-$pkgver.patch")
|
||||
noextract=()
|
||||
sha256sums=()
|
||||
md5sums=()
|
||||
validpgpkeys=()
|
||||
|
||||
prepare() {
|
||||
|
||||
@@ -25,7 +25,7 @@ options=()
|
||||
install=
|
||||
source=('FOLDER::VCS+URL#FRAGMENT')
|
||||
noextract=()
|
||||
sha256sums=('SKIP')
|
||||
md5sums=('SKIP')
|
||||
|
||||
# Please refer to the 'USING VCS SOURCES' section of the PKGBUILD man page for
|
||||
# a description of each element in the source array.
|
||||
|
||||
@@ -27,7 +27,7 @@ changelog=
|
||||
source=("$pkgname-$pkgver.tar.gz"
|
||||
"$pkgname-$pkgver.patch")
|
||||
noextract=()
|
||||
sha256sums=()
|
||||
md5sums=()
|
||||
validpgpkeys=()
|
||||
|
||||
prepare() {
|
||||
|
||||
@@ -553,7 +553,7 @@ _pacman_conf_directive() {
|
||||
|
||||
_pacman_conf_commands=(
|
||||
{-l,--repo-list}'[List configured repositories]:*: :->repo_list'
|
||||
{-h,--help}'[Output syntax and command line options]:*: :->complete'
|
||||
{-h,--help}'[Output systax and command line options]:*: :->complete'
|
||||
{-V,--version}'[Display version and exit]:*: :->complete'
|
||||
)
|
||||
|
||||
@@ -564,7 +564,7 @@ _pacman_conf_options=(
|
||||
|
||||
_pacman_conf_options_common=(
|
||||
'*'{-c,--config=}'[Specify an alternate configuration file]: :_files'
|
||||
'*'{-R,--rootdir=}'[Specify an alternate installation root]: :_files'
|
||||
'*'{-R,--rootdir=}'[Specify an alternate insallation root]: :_files'
|
||||
)
|
||||
|
||||
_pacman_conf() {
|
||||
@@ -586,38 +586,38 @@ _pacman_conf() {
|
||||
esac
|
||||
}
|
||||
|
||||
_pacman_key_shortopts=(
|
||||
_key_shortopts=(
|
||||
'-h[show help]'
|
||||
'-a[Add the specified keys (empty for stdin)]: :_files'
|
||||
'-d[Remove the Specified keyids]:*: :_pacman_key_list'
|
||||
'-e[Export the specified or all keyids]:*: :_pacman_key_list'
|
||||
'-f[List fingerprint for specified or all keyids]:*: :_pacman_key_list'
|
||||
'-l[List the specified or all keys]:*: :_pacman_key_list'
|
||||
'-r[Fetch the specified keyids]:*: :_pacman_key_list'
|
||||
'-d[Remove the Specified keyids]:*: :_keys'
|
||||
'-e[Export the specified or all keyids]:*: :_keys'
|
||||
'-f[List fingerprint for specified or all keyids]:*: :_keys'
|
||||
'-l[List the specified or all keys]:*: :_keys'
|
||||
'-r[Fetch the specified keyids]:*: :_keys'
|
||||
'-u[Update the trustdb of pacman]'
|
||||
'-v[Verify the file specified by the signature]: :_files -g "*.sig"'
|
||||
'-V[Show program version]'
|
||||
)
|
||||
|
||||
_pacman_key_longopts=(
|
||||
_key_longopts=(
|
||||
'--help[show help]'
|
||||
'--add[Add the specified keys (empty for stdin)]: :_files'
|
||||
'--delete[Remove the Specified keyids]:*: :_pacman_key_list'
|
||||
'--export[Export the specified or all keyids]:*: :_pacman_key_list'
|
||||
'--finger[List fingerprint for specified or all keyids]:*: :_pacman_key_list'
|
||||
'--list-keys[List the specified or all keys]:*: :_pacman_key_list'
|
||||
'--recv-keys[Fetch the specified keyids]:*: :_pacman_key_list'
|
||||
'--delete[Remove the Specified keyids]:*: :_keys'
|
||||
'--export[Export the specified or all keyids]:*: :_keys'
|
||||
'--finger[List fingerprint for specified or all keyids]:*: :_keys'
|
||||
'--list-keys[List the specified or all keys]:*: :_keys'
|
||||
'--recv-keys[Fetch the specified keyids]:*: :_keys'
|
||||
'--updatedb[Update the trustdb of pacman]'
|
||||
'--verify[Verify the file specified by the signature]: :_files -g "*.sig"'
|
||||
'--version[Show program version]'
|
||||
'--edit-key[Present a menu for key management task on keyids]:*: :_pacman_key_list'
|
||||
'--edit-key[Present a menu for key management task on keyids]:*: :_keys'
|
||||
'--import[Imports pubring.gpg from dir(s)]: :_files -g "*.gpg"'
|
||||
'--import-tb[Imports ownertrust values from trustdb.gpg in dir(s)]: :_files -g "*.gpg"'
|
||||
'--init[Ensure the keyring is properly initialized]'
|
||||
'--list-sigs[List keys and their signatures]:*: :_pacman_key_list'
|
||||
'--lsign-key[Locally sign the specified keyid]:*: :_pacman_key_list'
|
||||
'--list-sigs[List keys and their signatures]:*: :_keys'
|
||||
'--lsign-key[Locally sign the specified keyid]:*: :_keys'
|
||||
'--populate[Reload the default keys from the (given) keyrings in '@keyringdir@']: :_path_files -W @keyringdir@'
|
||||
'--refresh-keys[Update specified or all keys from a keyserver]:*: :_pacman_key_list'
|
||||
'--refresh-keys[Update specified or all keys from a keyserver]:*: :_keys'
|
||||
)
|
||||
|
||||
_pacman_key_options=(
|
||||
@@ -631,13 +631,13 @@ _pacman_key() {
|
||||
--*)
|
||||
_arguments -s : \
|
||||
"$_pacman_key_options[@]" \
|
||||
"$_pacman_key_longopts[@]"
|
||||
"$_key_longopts[@]"
|
||||
;;
|
||||
-*)
|
||||
_arguments -s : \
|
||||
"$_pacman_key_options[@]" \
|
||||
"$_pacman_key_shortopts[@]" \
|
||||
"$_pacman_key_longopts[@]"
|
||||
"$_key_shortopts[@]" \
|
||||
"$_key_longopts[@]"
|
||||
;;
|
||||
*)
|
||||
i=$#
|
||||
@@ -648,13 +648,13 @@ _pacman_key() {
|
||||
--*)
|
||||
_arguments -s : \
|
||||
"$_pacman_key_options[@]" \
|
||||
"$_pacman_key_longopts[@]"
|
||||
"$_key_longopts[@]"
|
||||
;;
|
||||
-*)
|
||||
_arguments -s : \
|
||||
"$_pacman_key_options[@]" \
|
||||
"$_pacman_key_shortopts[@]" \
|
||||
"$_pacman_key_longopts[@]"
|
||||
"$_key_shortopts[@]" \
|
||||
"$_key_longopts[@]"
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
@@ -664,7 +664,7 @@ _pacman_key() {
|
||||
esac
|
||||
}
|
||||
|
||||
_pacman_key_list() {
|
||||
_keys() {
|
||||
local keylist keys
|
||||
keylist=$(pacman-key --list-keys 2>/dev/null | awk '
|
||||
$1 == "pub" {
|
||||
@@ -733,7 +733,7 @@ _makepkg_longopts=(
|
||||
'--check[Run check() function in the PKGBUILD]'
|
||||
'--config[Use an alternate config file instead of '@sysconfdir@/makepkg.conf']: :_files'
|
||||
'--holdver[Do not update VCS sources]'
|
||||
'--key[Specify key to use for gpg signing instead of the default]: :_pacman_key_list'
|
||||
'--key[Specify key to use for gpg signing instead of the default]: :_keys'
|
||||
'--noarchive[Do not create package archive]'
|
||||
'--nocheck[Do not run the check() function in the PKGBUILD]'
|
||||
'--noprepare[Do not run the prepare() function in the PKGBUILD]'
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_AUTODEP_SH" ]] && return
|
||||
LIBMAKEPKG_AUTODEP_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
declare -a autodep_functions
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/autodep/"*.sh; do
|
||||
for lib in "$LIBRARY/autodep/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
[[ -n "$LIBMAKEPKG_AUTODEP_LIBRARY_DEPENDS_SH" ]] && return
|
||||
LIBMAKEPKG_AUTODEP_LIBRARY_DEPENDS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
autodep_functions+=('library_depends')
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
[[ -n "$LIBMAKEPKG_AUTODEP_LIBRARY_PROVIDES_SH" ]] && return
|
||||
LIBMAKEPKG_AUTODEP_LIBRARY_PROVIDES_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
autodep_functions+=('library_provides')
|
||||
|
||||
@@ -35,7 +35,7 @@ library_provides() {
|
||||
continue;
|
||||
fi
|
||||
|
||||
mapfile -t filenames < <(find "$pkgdir/$dir" -maxdepth 1 -type f | LC_ALL=C sort)
|
||||
mapfile -t filenames < <(find "$pkgdir/$dir" -type f | LC_ALL=C sort)
|
||||
|
||||
for fn in "${filenames[@]}"; do
|
||||
# check we have a shared library
|
||||
@@ -44,7 +44,7 @@ library_provides() {
|
||||
local sofile=$(LC_ALL=C readelf -d "$fn" 2>/dev/null | sed -n 's/.*Library soname: \[\(.*\)\].*/\1/p')
|
||||
|
||||
if [[ -z "$sofile" ]]; then
|
||||
# the library has no soname
|
||||
# the library is not versioned
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
@@ -22,25 +22,21 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
declare -a buildenv_functions build_options
|
||||
buildenv_vars=('CPPFLAGS' 'CFLAGS' 'CXXFLAGS' 'LDFLAGS' 'MAKEFLAGS' 'CHOST')
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/buildenv/"*.sh; do
|
||||
for lib in "$LIBRARY/buildenv/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
readonly -a buildenv_functions buildenv_vars build_options
|
||||
readonly -a buildenv_functions build_options
|
||||
|
||||
prepare_buildenv() {
|
||||
# ensure this function runs first
|
||||
buildenv_buildflags
|
||||
|
||||
for func in ${buildenv_functions[@]}; do
|
||||
$func
|
||||
done
|
||||
|
||||
# ensure all necessary build variables are exported
|
||||
export ${buildenv_vars[@]}
|
||||
export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS RUSTFLAGS MAKEFLAGS CHOST
|
||||
}
|
||||
|
||||
@@ -21,14 +21,15 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_BUILDFLAGS_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_BUILDFLAGS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
build_options+=('buildflags')
|
||||
buildenv_functions+=('buildenv_buildflags')
|
||||
|
||||
buildenv_buildflags() {
|
||||
if check_option "buildflags" "n"; then
|
||||
unset ${buildenv_vars[@]}
|
||||
unset CPPFLAGS CFLAGS DEBUG_CFLAGS CXXFLAGS DEBUG_CXXFLAGS LDFLAGS LTOFLAGS RUSTFLAGS DEBUG_RUSTFLAGS
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_COMPILER_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_COMPILER_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
build_options+=('ccache' 'distcc')
|
||||
buildenv_functions+=('buildenv_ccache' 'buildenv_distcc')
|
||||
|
||||
@@ -22,18 +22,19 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_DEBUGFLAGS_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_DEBUGFLAGS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
buildenv_functions+=('buildenv_debugflags')
|
||||
|
||||
buildenv_debugflags() {
|
||||
if check_option "debug" "y" && ! check_option "buildflags" "n"; then
|
||||
append_once DEBUG_CFLAGS "-ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
append_once DEBUG_CXXFLAGS "-ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
append_once CFLAGS "$DEBUG_CFLAGS"
|
||||
append_once CXXFLAGS "$DEBUG_CXXFLAGS"
|
||||
DEBUG_CFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
DEBUG_CXXFLAGS+=" -ffile-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
DEBUG_RUSTFLAGS+=" --remap-path-prefix=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
CFLAGS+=" $DEBUG_CFLAGS"
|
||||
CXXFLAGS+=" $DEBUG_CXXFLAGS"
|
||||
RUSTFLAGS+=" $DEBUG_RUSTFLAGS"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -22,18 +22,17 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_LTO_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_LTO_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
build_options+=('lto')
|
||||
buildenv_functions+=('buildenv_lto')
|
||||
|
||||
buildenv_lto() {
|
||||
if check_option "lto" "y" && ! check_option "buildflags" "n"; then
|
||||
append_once CFLAGS "${LTOFLAGS:--flto}"
|
||||
append_once CXXFLAGS "${LTOFLAGS:--flto}"
|
||||
append_once LDFLAGS "${LTOFLAGS:--flto}"
|
||||
CFLAGS+=" ${LTOFLAGS:--flto}"
|
||||
CXXFLAGS+=" ${LTOFLAGS:--flto}"
|
||||
LDFLAGS+=" ${LTOFLAGS:--flto}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_MAKEFLAGS_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_MAKEFLAGS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
build_options+=('makeflags')
|
||||
buildenv_functions+=('buildenv_makeflags')
|
||||
|
||||
@@ -6,7 +6,6 @@ sources = [
|
||||
'debugflags.sh.in',
|
||||
'lto.sh.in',
|
||||
'makeflags.sh.in',
|
||||
'rust.sh.in',
|
||||
]
|
||||
|
||||
foreach src : sources
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
#
|
||||
# rust.sh - Specify flags for building a package with rust
|
||||
#
|
||||
# Copyright (c) 2022 Pacman Development Team <pacman-dev@lists.archlinux.org>
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
[[ -n "$LIBMAKEPKG_BUILDENV_RUST_SH" ]] && return
|
||||
LIBMAKEPKG_BUILDENV_RUST_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
|
||||
buildenv_var+=('RUSTFLAGS' 'DEBUG_RUSTFLAGS')
|
||||
buildenv_functions+=('buildenv_rust')
|
||||
|
||||
buildenv_rust() {
|
||||
if check_option "debug" "y" && ! check_option "buildflags" "n"; then
|
||||
append_once DEBUG_RUSTFLAGS "--remap-path-prefix=$srcdir=${DBGSRCDIR:-/usr/src/debug}/${pkgbase}"
|
||||
append_once RUSTFLAGS "$DEBUG_RUSTFLAGS"
|
||||
fi
|
||||
}
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
declare -a executable_functions
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/executable/"*.sh; do
|
||||
for lib in "$LIBRARY/executable/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_CCACHE_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_CCACHE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_ccache')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_CHECKSUM_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_CHECKSUM_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
executable_functions+=('executable_checksum')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_DEBUGEDIT_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_DEBUGEDIT_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_debugedit')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_DISTCC_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_DISTCC_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_distcc')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_FAKEROOT_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_FAKEROOT_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
executable_functions+=('executable_fakeroot')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_GPG_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_GPG_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_gpg')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_GZIP_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_GZIP_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_gzip')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_PACMAN_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_PACMAN_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
executable_functions+=('executable_pacman')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_STRIP_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_STRIP_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/option.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/option.sh"
|
||||
|
||||
executable_functions+=('executable_strip')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_SUDO_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_SUDO_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
executable_functions+=('executable_sudo')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_EXECUTABLE_VCS_SH" ]] && return
|
||||
LIBMAKEPKG_EXECUTABLE_VCS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/error.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/error.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
executable_functions+=('executable_vcs')
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_INTEGRITY_SH" ]] && return
|
||||
LIBMAKEPKG_INTEGRITY_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/integrity/"*.sh; do
|
||||
for lib in "$LIBRARY/integrity/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
@@ -42,7 +42,4 @@ check_source_integrity() {
|
||||
check_checksums "$@"
|
||||
check_pgpsigs "$@"
|
||||
fi
|
||||
if (( VERIFYFUNC )); then
|
||||
run_verify
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_INTEGRITY_GENERATE_CHECKSUM_SH" ]] && return
|
||||
LIBMAKEPKG_INTEGRITY_GENERATE_CHECKSUM_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/schema.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/schema.sh"
|
||||
|
||||
generate_one_checksum() {
|
||||
local integ=$1 arch=$2 sources numsrc indentsz idx
|
||||
@@ -54,17 +54,7 @@ generate_one_checksum() {
|
||||
|
||||
case $proto in
|
||||
bzr|git|hg|svn)
|
||||
if declare -f "calc_checksum_$proto" > /dev/null; then
|
||||
if ! sum=$("calc_checksum_$proto" "$netfile" "$integ"); then
|
||||
local name
|
||||
name=$(get_filename "$netfile")
|
||||
error "$(gettext "Failure while calculating %s %s checksum")" "${name}" "${proto}"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
sum="SKIP"
|
||||
fi
|
||||
sum="SKIP"
|
||||
;;
|
||||
*)
|
||||
if [[ ${netfile%%::*} != *.@(sig?(n)|asc) ]]; then
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_INTEGRITY_GENERATE_SIGNATURE_SH" ]] && return
|
||||
LIBMAKEPKG_INTEGRITY_GENERATE_SIGNATURE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
create_signature() {
|
||||
local ret=0
|
||||
|
||||
@@ -21,12 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_INTEGRITY_VERIFY_CHECKSUM_SH" ]] && return
|
||||
LIBMAKEPKG_INTEGRITY_CHECKSUM_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/schema.sh"
|
||||
source "$MAKEPKG_LIBRARY/source.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/schema.sh"
|
||||
|
||||
check_checksums() {
|
||||
local integ a
|
||||
@@ -69,9 +68,9 @@ check_checksums() {
|
||||
}
|
||||
|
||||
verify_integrity_one() {
|
||||
local source_name=$1 integ=$2 expectedsum=$3 file proto realsum
|
||||
local source_name=$1 integ=$2 expectedsum=$3
|
||||
|
||||
file="$(get_filename "$source_name")"
|
||||
local file="$(get_filename "$source_name")"
|
||||
printf ' %s ... ' "$file" >&2
|
||||
|
||||
if [[ $expectedsum = 'SKIP' ]]; then
|
||||
@@ -79,18 +78,20 @@ verify_integrity_one() {
|
||||
return
|
||||
fi
|
||||
|
||||
proto="$(get_protocol "$source_name")"
|
||||
if declare -f "calc_checksum_${proto}" > /dev/null; then
|
||||
realsum=$("calc_checksum_${proto}" "$source_name" "$integ") || return 1
|
||||
else
|
||||
realsum=$(calc_checksum_file "$source_name" "$integ") || return 1
|
||||
if ! file="$(get_filepath "$file")"; then
|
||||
printf '%s\n' "$(gettext "NOT FOUND")" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ${expectedsum,,} != "$realsum" ]]; then
|
||||
local realsum="$("${integ}sum" "$file")"
|
||||
realsum="${realsum%% *}"
|
||||
if [[ ${expectedsum,,} = "$realsum" ]]; then
|
||||
printf '%s\n' "$(gettext "Passed")" >&2
|
||||
else
|
||||
printf '%s\n' "$(gettext "FAILED")" >&2
|
||||
return 1
|
||||
fi
|
||||
printf '%s\n' "$(gettext "Passed")" >&2
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_INTEGRITY_VERIFY_SIGNATURE_SH" ]] && return
|
||||
LIBMAKEPKG_INTEGRITY_VERIFY_SIGNATURE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
check_pgpsigs() {
|
||||
(( SKIPPGPCHECK )) && return 0
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_CONFIG_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_CONFIG_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'/usr/share/makepkg'}
|
||||
LIBRARY=${LIBRARY:-'/usr/share/makepkg'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/util.sh"
|
||||
|
||||
|
||||
declare -a lint_config_functions
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/lint_config/"*.sh; do
|
||||
for lib in "$LIBRARY/lint_config/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_CONFIG_EXT_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_CONFIG_EXT_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_config_functions+=('lint_ext')
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_CONFIG_PATHS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_CONFIG_PATHS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
lint_config_functions+=('lint_paths')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n $LIBMAKEPKG_LINT_CONFIG_SOURCE_DATE_EPOCH_SH ]] && return
|
||||
LIBMAKEPKG_LINT_CONFIG_SOURCE_DATE_EPOCH_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_config_functions+=('lint_source_date_epoch')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_CONFIG_VARIABLE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_CONFIG_VARIABLE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_config_functions+=('lint_config_variables')
|
||||
|
||||
@@ -32,10 +32,10 @@ lint_config_variables() {
|
||||
local array=(DLAGENTS VCSCLIENTS BUILDENV OPTIONS INTEGRITY_CHECK MAN_DIRS
|
||||
DOC_DIRS PURGE_TARGETS COMPRESSGZ COMPRESSBZ2 COMPRESSXZ
|
||||
COMPRESSLRZ COMPRESSLZO COMPRESSZ)
|
||||
local string=(CARCH CHOST CPPFLAGS CFLAGS CXXFLAGS LDFLAGS LTOFLAGS DEBUG_CFLAGS
|
||||
DEBUG_CXXFLAGS DISTCC_HOSTS BUILDDIR STRIP_BINARIES STRIP_SHARED
|
||||
STRIP_STATIC PKGDEST SRCDEST SRCPKGDEST LOGDEST PACKAGER GPGKEY
|
||||
PKGEXT SRCEXT)
|
||||
local string=(CARCH CHOST CPPFLAGS CFLAGS CXXFLAGS RUSTFLAGS LDFLAGS LTOFLAGS
|
||||
DEBUG_CFLAGS DEBUG_CXXFLAGS DEBUG_RUSTFLAGS DISTCC_HOSTS BUILDDIR
|
||||
STRIP_BINARIES STRIP_SHARED STRIP_STATIC PKGDEST SRCDEST SRCPKGDEST
|
||||
LOGDEST PACKAGER GPGKEY PKGEXT SRCEXT)
|
||||
|
||||
local i keys ret=0
|
||||
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PACKAGE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PACKAGE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/util.sh"
|
||||
|
||||
|
||||
declare -a lint_package_functions
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/lint_package/"*.sh; do
|
||||
for lib in "$LIBRARY/lint_package/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PACKAGE_BUILD_REFERENCES_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PACKAGE_BUILD_REFERENCES_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_package_functions+=('warn_build_references')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PACKAGE_DOTFILES_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PACKAGE_DOTFILES_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_package_functions+=('check_dotfiles')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PACKAGE_FILE_NAMES_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PACKAGE_FILE_NAMES_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
lint_package_functions+=('lint_file_names')
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PACKAGE_MISSING_BACKUP_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PACKAGE_MISSING_BACKUP_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_package_functions+=('warn_missing_backup')
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
declare -a lint_pkgbuild_functions
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/lint_pkgbuild/"*.sh; do
|
||||
for lib in "$LIBRARY/lint_pkgbuild/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_ARCH_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_ARCH_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_arch')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_ARCH_SPECIFIC_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_ARCH_SPECIFIC_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/schema.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/schema.sh"
|
||||
source "$LIBRARY/util/util.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_arch_specific')
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_BACKUP_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_BACKUP_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_backup')
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_CHANGELOG_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_CHANGELOG_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/util.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_changelog')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_CHECKDEPENDS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_CHECKDEPENDS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_checkdepends')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_CONFLICTS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_CONFLICTS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_conflicts')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_DEPENDS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_DEPENDS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_depends')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_EPOCH_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_EPOCH_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_epoch')
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_FULLPKGVER_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_FULLPKGVER_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/epoch.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgrel.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/epoch.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgrel.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgver.sh"
|
||||
|
||||
|
||||
check_fullpkgver() {
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_INSTALL_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_INSTALL_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/util.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_install')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_MAKEDEPENDS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_MAKEDEPENDS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_makedepends')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_OPTDEPENDS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_OPTDEPENDS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_optdepends')
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_OPTIONS_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_OPTIONS_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_options')
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PACKAGE_FUNCTION_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PACKAGE_FUNCTION_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_package_function')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PACKAGE_FUNCTION_VARIABLE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PACKAGE_FUNCTION_VARIABLE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/schema.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/schema.sh"
|
||||
source "$LIBRARY/util/util.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_package_function_variable')
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PKGBASE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PKGBASE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_pkgbase')
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PKGLIST_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PKGLIST_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/util.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/util.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_pkglist')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PKGNAME_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PKGNAME_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_pkgname')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PKGREL_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PKGREL_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_pkgrel')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PKGVER_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PKGVER_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_pkgver')
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_PROVIDES_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_PROVIDES_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$MAKEPKG_LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/fullpkgver.sh"
|
||||
source "$LIBRARY/lint_pkgbuild/pkgname.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_provides')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_SOURCE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_SOURCE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
lint_pkgbuild_functions+=('lint_source')
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_UTIL_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_UTIL_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
|
||||
|
||||
check_files_exist() {
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
[[ -n "$LIBMAKEPKG_LINT_PKGBUILD_VARIABLE_SH" ]] && return
|
||||
LIBMAKEPKG_LINT_PKGBUILD_VARIABLE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/schema.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/schema.sh"
|
||||
|
||||
lint_pkgbuild_functions+=('lint_variable')
|
||||
lint_pkgbuild_functions+=('lint_array')
|
||||
|
||||
|
||||
lint_variable() {
|
||||
local i a pkg out bad ret=0
|
||||
@@ -95,21 +95,3 @@ lint_variable() {
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
lint_array() {
|
||||
local i var ret=0
|
||||
|
||||
for i in ${pkgbuild_schema_arrays[@]}; do
|
||||
local l=()
|
||||
get_pkgbuild_all_split_attributes $i l
|
||||
|
||||
for var in "${l[@]}"; do
|
||||
if [[ -z $var ]]; then
|
||||
error "$(gettext "%s does not allow empty values.")" "$i"
|
||||
ret=1
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
[[ -n "$LIBMAKEPKG_REPRODUCIBLE_SH" ]] && return
|
||||
LIBMAKEPKG_REPRODUCIBLE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/reproducible/"*.sh; do
|
||||
for lib in "$LIBRARY/reproducible/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
LIBMAKEPKG_REPRODUCIBLE_PYTHON_SH=1
|
||||
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
|
||||
# disable hash randomization when creating .pyc files
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
[[ -n "$LIBMAKEPKG_SOURCE_SH" ]] && return
|
||||
LIBMAKEPKG_SOURCE_SH=1
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/source.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/source.sh"
|
||||
|
||||
|
||||
for lib in "$MAKEPKG_LIBRARY/source/"*.sh; do
|
||||
for lib in "$LIBRARY/source/"*.sh; do
|
||||
source "$lib"
|
||||
done
|
||||
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
LIBMAKEPKG_SOURCE_BZR_SH=1
|
||||
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
download_bzr() {
|
||||
@@ -109,29 +109,3 @@ extract_bzr() {
|
||||
|
||||
popd &>/dev/null
|
||||
}
|
||||
|
||||
calc_checksum_bzr() {
|
||||
local netfile=$1 integ=$2 ret=0 shellopts dir url fragment fragval sum
|
||||
|
||||
# this function requires pipefail - save current status to restore later
|
||||
shellopts=$(shopt -p -o pipefail)
|
||||
shopt -s -o pipefail
|
||||
|
||||
dir=$(get_filepath "$netfile")
|
||||
url=$(get_url "$netfile")
|
||||
fragment=$(get_uri_fragment "$url")
|
||||
|
||||
case ${fragment%%=*} in
|
||||
revision)
|
||||
fragval=${fragment##*=}
|
||||
sum=$(bzr export --directory "$dir" --format tar --revision "$fragval" - | "${integ}sum" 2>&1) || ret=1
|
||||
sum="${sum%% *}"
|
||||
;;
|
||||
*)
|
||||
sum="SKIP"
|
||||
esac
|
||||
|
||||
eval "$shellopts"
|
||||
printf '%s' "$sum"
|
||||
return $ret
|
||||
}
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
LIBMAKEPKG_SOURCE_FILE_SH=1
|
||||
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
download_file() {
|
||||
@@ -151,18 +151,3 @@ extract_file() {
|
||||
chown -R 0:0 "$srcdir"
|
||||
fi
|
||||
}
|
||||
|
||||
calc_checksum_file() {
|
||||
local netfile=$1 integ=$2 ret=0 file sum
|
||||
|
||||
if ! file="$(get_filepath "$netfile")"; then
|
||||
printf '%s\n' "$(gettext "NOT FOUND")" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
sum="$("${integ}sum" "$file")" || ret=1
|
||||
sum="${sum%% *}"
|
||||
|
||||
printf '%s' "$sum"
|
||||
return $ret
|
||||
}
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
LIBMAKEPKG_SOURCE_FOSSIL_SH=1
|
||||
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
download_fossil() {
|
||||
# abort early if parent says not to fetch
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
LIBMAKEPKG_SOURCE_GIT_SH=1
|
||||
|
||||
|
||||
MAKEPKG_LIBRARY=${MAKEPKG_LIBRARY:-'@libmakepkgdir@'}
|
||||
LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
|
||||
|
||||
source "$MAKEPKG_LIBRARY/util/message.sh"
|
||||
source "$MAKEPKG_LIBRARY/util/pkgbuild.sh"
|
||||
source "$LIBRARY/util/message.sh"
|
||||
source "$LIBRARY/util/pkgbuild.sh"
|
||||
|
||||
|
||||
download_git() {
|
||||
@@ -48,7 +48,7 @@ download_git() {
|
||||
|
||||
if [[ ! -d "$dir" ]] || dir_is_empty "$dir" ; then
|
||||
msg2 "$(gettext "Cloning %s %s repo...")" "${repo}" "git"
|
||||
if ! git clone --origin=origin ${GITFLAGS:---mirror} "$url" "$dir"; then
|
||||
if ! git clone ${GITFLAGS:---mirror} "$url" "$dir"; then
|
||||
error "$(gettext "Failure while downloading %s %s repo")" "${repo}" "git"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
@@ -56,8 +56,7 @@ download_git() {
|
||||
elif (( ! HOLDVER )); then
|
||||
cd_safe "$dir"
|
||||
# Make sure we are fetching the right repo
|
||||
local remote_url="$(git config --get remote.origin.url)"
|
||||
if [[ "${url%%.git}" != "${remote_url%%.git}" ]] ; then
|
||||
if [[ "$url" != "$(git config --get remote.origin.url)" ]] ; then
|
||||
error "$(gettext "%s is not a clone of %s")" "$dir" "$url"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
@@ -92,7 +91,7 @@ extract_git() {
|
||||
exit 1
|
||||
fi
|
||||
cd_safe "$srcdir"
|
||||
elif ! git clone --origin=origin -s "$dir" "${dir##*/}"; then
|
||||
elif ! git clone -s "$dir" "${dir##*/}"; then
|
||||
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
@@ -135,30 +134,3 @@ extract_git() {
|
||||
|
||||
popd &>/dev/null
|
||||
}
|
||||
|
||||
calc_checksum_git() {
|
||||
local netfile=$1 integ=$2 ret=0 shellopts dir url fragment sum
|
||||
|
||||
# this function requires pipefail - save current status to restore later
|
||||
shellopts=$(shopt -p -o pipefail)
|
||||
shopt -s -o pipefail
|
||||
|
||||
dir=$(get_filepath "$netfile")
|
||||
url=$(get_url "$netfile")
|
||||
fragment=$(get_uri_fragment "$url")
|
||||
|
||||
case ${fragment%%=*} in
|
||||
tag|commit)
|
||||
fragval=${fragment##*=}
|
||||
sum=$(git -c core.abbrev=no -C "$dir" archive --format tar "$fragval" | "${integ}sum" 2>&1) || ret=1
|
||||
sum="${sum%% *}"
|
||||
;;
|
||||
*)
|
||||
sum="SKIP"
|
||||
;;
|
||||
esac
|
||||
|
||||
eval "$shellopts"
|
||||
printf '%s' "$sum"
|
||||
return $ret
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user