Compare commits

..

1 Commits

Author SHA1 Message Date
morganamilo
689223f40d alpm: don't download files from local servers
This causes file:// servers to be treated as if they were cache dirs
when checking if a package needs to be downloaded/read.
2021-10-04 20:11:24 +01:00
28 changed files with 61 additions and 310 deletions

View File

@@ -256,12 +256,6 @@ Upgrade Options (apply to '-S' and '-U')[[UO]]
as explicitly installed so it will not be removed by the '\--recursive'
remove operation.
*\--note*::
Add an install note to packages. This will only apply to targets explicitly
listed and not their dependencies. The note can be used to keep track of why
a package was installed or any other info of note. The note can later be
edited or removed with '\--D \--note' or '\--D \--rmnote' respectively.
*\--ignore* <package>::
Directs pacman to ignore upgrades of package even if there is one
available. Multiple packages can be specified by separating them
@@ -474,13 +468,6 @@ Database Options (apply to '-D')[[QO]]
package installed even when it was initially installed as a dependency
of another package.
*\--note*::
Add or edit a package's install note. The note can be used to keep track of why
a package was installed or any other info of note.
*\--rmnote*::
Remove a package's install note.
*-k, \--check*::
Check the local package database is internally consistent. This will
check all required files are present and that installed packages have

View File

@@ -431,22 +431,8 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
ASSERT(trans != NULL, return -1);
if(_alpm_db_get_pkgfromcache(db, newpkg->name)) {
oldpkg = newpkg->oldpkg;
}
/* set note on package only if it was explicitly added to transaction */
if(trans->note && newpkg->reason == ALPM_PKG_REASON_EXPLICIT) {
STRDUP(newpkg->note, trans->note,
RET_ERR(handle, ALPM_ERR_MEMORY, -1));
} else if(oldpkg && oldpkg->note) {
STRDUP(newpkg->note,oldpkg->note,
RET_ERR(handle, ALPM_ERR_MEMORY, -1));
}
if(oldpkg) {
/* see if this is an upgrade. if so, remove the old package first */
if(_alpm_db_get_pkgfromcache(db, newpkg->name) && (oldpkg = newpkg->oldpkg)) {
int cmp = _alpm_pkg_compare_versions(newpkg, oldpkg);
if(cmp < 0) {
log_msg = "downgrading";

View File

@@ -2429,12 +2429,6 @@ const char *alpm_pkg_get_desc(alpm_pkg_t *pkg);
*/
const char *alpm_pkg_get_url(alpm_pkg_t *pkg);
/** Returns the package note.
* @param pkg a pointer to package
* @return a reference to an internal string
*/
char *alpm_pkg_get_note(alpm_pkg_t *pkg);
/** Returns the build timestamp of the package.
* @param pkg a pointer to package
* @return the timestamp of the build time
@@ -2613,15 +2607,6 @@ off_t alpm_pkg_download_size(alpm_pkg_t *newpkg);
*/
int alpm_pkg_set_reason(alpm_pkg_t *pkg, alpm_pkgreason_t reason);
/** Set install note for a package in the local database.
* The provided package object must be from the local database or this method
* will fail. The write to the local database is performed immediately.
* @param pkg the package to edit
* @param note the new install note, null to remove a note
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int alpm_pkg_set_note(alpm_pkg_t *pkg, char *note);
/* End of libalpm_pkg_t accessors */
/** @} */
@@ -2771,16 +2756,6 @@ alpm_list_t *alpm_trans_get_add(alpm_handle_t *handle);
*/
alpm_list_t *alpm_trans_get_remove(alpm_handle_t *handle);
/** Sets the install note for a transaction
*
* All target packages will gain the note, dependencies will not.
*
* @param handle the context handle
* @note the the note, may not contain new lines
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int alpm_trans_set_note(alpm_handle_t *handle, char *note);
/** Initialize the transaction.
* @param handle the context handle
* @param flags flags of the transaction (like nodeps, etc; see alpm_transflag_t)

View File

@@ -81,12 +81,6 @@ static const char *_cache_get_url(alpm_pkg_t *pkg)
return pkg->url;
}
static char *_cache_get_note(alpm_pkg_t *pkg)
{
LAZY_LOAD(INFRQ_DESC);
return pkg->note;
}
static alpm_time_t _cache_get_builddate(alpm_pkg_t *pkg)
{
LAZY_LOAD(INFRQ_DESC);
@@ -336,7 +330,6 @@ static const struct pkg_operations local_pkg_ops = {
.get_base = _cache_get_base,
.get_desc = _cache_get_desc,
.get_url = _cache_get_url,
.get_note = _cache_get_note,
.get_builddate = _cache_get_builddate,
.get_installdate = _cache_get_installdate,
.get_packager = _cache_get_packager,
@@ -759,8 +752,6 @@ static int local_db_read(alpm_pkg_t *info, int inforeq)
READ_AND_STORE_ALL(info->groups);
} else if(strcmp(line, "%URL%") == 0) {
READ_AND_STORE(info->url);
} else if(strcmp(line, "%NOTE%") == 0) {
READ_AND_STORE(info->note);
} else if(strcmp(line, "%LICENSE%") == 0) {
READ_AND_STORE_ALL(info->licenses);
} else if(strcmp(line, "%ARCH%") == 0) {
@@ -1049,11 +1040,6 @@ int _alpm_local_db_write(alpm_db_t *db, alpm_pkg_t *info, int inforeq)
write_deps(fp, "%CONFLICTS%", info->conflicts);
write_deps(fp, "%PROVIDES%", info->provides);
if(info->note) {
fprintf(fp, "%%NOTE%%\n"
"%s\n\n", info->note);
}
fclose(fp);
fp = NULL;
}
@@ -1172,31 +1158,6 @@ int SYMEXPORT alpm_pkg_set_reason(alpm_pkg_t *pkg, alpm_pkgreason_t reason)
return 0;
}
int SYMEXPORT alpm_pkg_set_note(alpm_pkg_t *pkg, char *note)
{
ASSERT(pkg != NULL, return -1);
ASSERT(pkg->origin == ALPM_PKG_FROM_LOCALDB,
RET_ERR(pkg->handle, ALPM_ERR_WRONG_ARGS, -1));
ASSERT(pkg->origin_data.db == pkg->handle->db_local,
RET_ERR(pkg->handle, ALPM_ERR_WRONG_ARGS, -1));
_alpm_log(pkg->handle, ALPM_LOG_DEBUG,
"setting note for %s: %s\n", pkg->name, note);
LAZY_LOAD(INFRQ_DESC);
FREE(pkg->note);
if(note) {
ASSERT(!strchr(note, '\n'), RET_ERR(pkg->handle, ALPM_ERR_WRONG_ARGS, -1));
STRDUP(pkg->note, note,
RET_ERR(pkg->handle, ALPM_ERR_MEMORY, -1));
}
/* write DESC */
if(_alpm_local_db_write(pkg->handle->db_local, pkg, INFRQ_DESC)) {
RET_ERR(pkg->handle, ALPM_ERR_DB_WRITE, -1);
}
return 0;
}
static const struct db_operations local_db_ops = {
.validate = local_db_validate,
.populate = local_db_populate,

View File

@@ -405,7 +405,6 @@ int _alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
const char *matched = NULL;
const char *name = pkg->name;
const char *desc = alpm_pkg_get_desc(pkg);
const char *note = alpm_pkg_get_note(pkg);
/* check name as regex AND as plain text */
if(name && (regexec(&reg, name, 0, 0, 0) == 0 || strstr(name, targ))) {
@@ -415,11 +414,6 @@ int _alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
else if(desc && regexec(&reg, desc, 0, 0, 0) == 0) {
matched = desc;
}
/* check note */
else if(note && regexec(&reg, note, 0, 0, 0) == 0) {
matched = note;
}
/* TODO: should we be doing this, and should we print something
* differently when we do match it since it isn't currently printed? */
if(!matched) {

View File

@@ -57,7 +57,7 @@ int SYMEXPORT alpm_pkg_checkmd5sum(alpm_pkg_t *pkg)
ASSERT(pkg->origin == ALPM_PKG_FROM_SYNCDB,
RET_ERR(pkg->handle, ALPM_ERR_WRONG_ARGS, -1));
fpath = _alpm_filecache_find(pkg->handle, pkg->filename);
fpath = _alpm_cache_find_pkg(pkg, 0);
retval = _alpm_test_checksum(fpath, pkg->md5sum, ALPM_PKG_VALIDATION_MD5SUM);
@@ -78,7 +78,6 @@ int SYMEXPORT alpm_pkg_checkmd5sum(alpm_pkg_t *pkg)
static const char *_pkg_get_base(alpm_pkg_t *pkg) { return pkg->base; }
static const char *_pkg_get_desc(alpm_pkg_t *pkg) { return pkg->desc; }
static const char *_pkg_get_url(alpm_pkg_t *pkg) { return pkg->url; }
static char *_pkg_get_note(alpm_pkg_t *pkg) { return pkg->note; }
static alpm_time_t _pkg_get_builddate(alpm_pkg_t *pkg) { return pkg->builddate; }
static alpm_time_t _pkg_get_installdate(alpm_pkg_t *pkg) { return pkg->installdate; }
static const char *_pkg_get_packager(alpm_pkg_t *pkg) { return pkg->packager; }
@@ -143,7 +142,6 @@ const struct pkg_operations default_pkg_ops = {
.get_base = _pkg_get_base,
.get_desc = _pkg_get_desc,
.get_url = _pkg_get_url,
.get_note = _pkg_get_note,
.get_builddate = _pkg_get_builddate,
.get_installdate = _pkg_get_installdate,
.get_packager = _pkg_get_packager,
@@ -228,13 +226,6 @@ const char SYMEXPORT *alpm_pkg_get_url(alpm_pkg_t *pkg)
return pkg->ops->get_url(pkg);
}
char SYMEXPORT *alpm_pkg_get_note(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
pkg->handle->pm_errno = ALPM_ERR_OK;
return pkg->ops->get_note(pkg);
}
alpm_time_t SYMEXPORT alpm_pkg_get_builddate(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return -1);
@@ -292,7 +283,7 @@ int SYMEXPORT alpm_pkg_get_sig(alpm_pkg_t *pkg, unsigned char **sig, size_t *sig
alpm_errno_t err;
int ret = -1;
pkgpath = _alpm_filecache_find(pkg->handle, pkg->filename);
pkgpath = _alpm_cache_find_pkg(pkg, 0);
if(!pkgpath) {
GOTO_ERR(pkg->handle, ALPM_ERR_PKG_NOT_FOUND, cleanup);
}
@@ -619,7 +610,6 @@ int _alpm_pkg_dup(alpm_pkg_t *pkg, alpm_pkg_t **new_ptr)
STRDUP(newpkg->version, pkg->version, goto cleanup);
STRDUP(newpkg->desc, pkg->desc, goto cleanup);
STRDUP(newpkg->url, pkg->url, goto cleanup);
STRDUP(newpkg->note, pkg->note, goto cleanup);
newpkg->builddate = pkg->builddate;
newpkg->installdate = pkg->installdate;
STRDUP(newpkg->packager, pkg->packager, goto cleanup);
@@ -693,7 +683,6 @@ void _alpm_pkg_free(alpm_pkg_t *pkg)
FREE(pkg->version);
FREE(pkg->desc);
FREE(pkg->url);
FREE(pkg->note);
FREE(pkg->packager);
FREE(pkg->md5sum);
FREE(pkg->sha256sum);

View File

@@ -46,7 +46,6 @@ struct pkg_operations {
const char *(*get_base) (alpm_pkg_t *);
const char *(*get_desc) (alpm_pkg_t *);
const char *(*get_url) (alpm_pkg_t *);
char *(*get_note) (alpm_pkg_t *);
alpm_time_t (*get_builddate) (alpm_pkg_t *);
alpm_time_t (*get_installdate) (alpm_pkg_t *);
const char *(*get_packager) (alpm_pkg_t *);
@@ -94,7 +93,6 @@ struct _alpm_pkg_t {
char *version;
char *desc;
char *url;
char *note;
char *packager;
char *md5sum;
char *sha256sum;

View File

@@ -323,7 +323,7 @@ static int compute_download_size(alpm_pkg_t *newpkg)
ASSERT(newpkg->filename != NULL, RET_ERR(handle, ALPM_ERR_PKG_INVALID_NAME, -1));
fname = newpkg->filename;
fpath = _alpm_filecache_find(handle, fname);
fpath = _alpm_cache_find_pkg(newpkg, 0);
/* downloaded file exists, so there's nothing to grab */
if(fpath) {
@@ -333,7 +333,7 @@ static int compute_download_size(alpm_pkg_t *newpkg)
CALLOC(fnamepart, strlen(fname) + 6, sizeof(char), return -1);
sprintf(fnamepart, "%s.part", fname);
fpath = _alpm_filecache_find(handle, fnamepart);
fpath = _alpm_cache_find_pkg(newpkg, 1);
if(fpath) {
struct stat st;
if(stat(fpath, &st) == 0) {
@@ -737,21 +737,13 @@ static int find_dl_candidates(alpm_handle_t *handle, alpm_list_t **files)
ASSERT(spkg->filename != NULL, RET_ERR(handle, ALPM_ERR_PKG_INVALID_NAME, -1));
need_download = spkg->download_size != 0 || !_alpm_filecache_exists(handle, spkg->filename);
need_download = spkg->download_size != 0 || !_alpm_cache_pkg_exists(spkg, 0);
/* even if the package file in the cache we need to check for
* accompanion *.sig file as well.
* If *.sig is not cached then force download the package + its signature file.
*/
if(!need_download && (siglevel & ALPM_SIG_PACKAGE)) {
char *sig_filename = NULL;
int len = strlen(spkg->filename) + 5;
MALLOC(sig_filename, len, RET_ERR(handle, ALPM_ERR_MEMORY, -1));
snprintf(sig_filename, len, "%s.sig", spkg->filename);
need_download = !_alpm_filecache_exists(handle, sig_filename);
FREE(sig_filename);
need_download = !_alpm_cache_pkg_exists(spkg, 1);
}
if(need_download) {
@@ -990,7 +982,7 @@ static int check_validity(alpm_handle_t *handle,
}
current_bytes += v.pkg->size;
v.path = _alpm_filecache_find(handle, v.pkg->filename);
v.path = _alpm_cache_find_pkg(v.pkg, 0);
v.siglevel = alpm_db_get_siglevel(alpm_pkg_get_db(v.pkg));
if(_alpm_pkg_validate_internal(handle, v.path, v.pkg,
@@ -1080,7 +1072,8 @@ static int load_packages(alpm_handle_t *handle, alpm_list_t **data,
}
current_bytes += spkg->size;
filepath = _alpm_filecache_find(handle, spkg->filename);
filepath = _alpm_cache_find_pkg(spkg, 0);
/* 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 */

View File

@@ -298,7 +298,6 @@ void _alpm_trans_free(alpm_trans_t *trans)
alpm_list_free(trans->add);
alpm_list_free_inner(trans->remove, (alpm_list_fn_free)_alpm_pkg_free);
alpm_list_free(trans->remove);
FREE(trans->note);
FREELIST(trans->skip_remove);
@@ -451,19 +450,3 @@ alpm_list_t SYMEXPORT *alpm_trans_get_remove(alpm_handle_t *handle)
return handle->trans->remove;
}
int SYMEXPORT alpm_trans_set_note(alpm_handle_t *handle, char *note) {
CHECK_HANDLE(handle, return -1);
ASSERT(handle->trans != NULL, RET_ERR(handle, ALPM_ERR_TRANS_NULL, -1));
ASSERT(handle->trans->state == STATE_INITIALIZED, RET_ERR(handle, ALPM_ERR_TRANS_NOT_INITIALIZED, -1));
if(handle->trans->note) {
ASSERT(!strchr(handle->trans->note, '\n'), RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1));
free(handle->trans->note);
handle->trans->note = NULL;
}
STRDUP(handle->trans->note, note, RET_ERR(handle, ALPM_ERR_MEMORY, -1));
return 0;
}

View File

@@ -39,7 +39,6 @@ typedef enum _alpm_transstate_t {
typedef struct _alpm_trans_t {
/* bitfield of alpm_transflag_t flags */
int flags;
char *note;
alpm_transstate_t state;
alpm_list_t *unresolvable; /* list of (alpm_pkg_t *) */
alpm_list_t *add; /* list of (alpm_pkg_t *) */

View File

@@ -815,6 +815,37 @@ int _alpm_str_cmp(const void *s1, const void *s2)
return strcmp(s1, s2);
}
char *_alpm_cache_find_pkg(alpm_pkg_t *pkg, int sig) {
alpm_handle_t *handle = pkg->handle;
struct stat buf;
alpm_list_t *servers = pkg->origin_data.db->servers;
char *retpath;
char filepath[PATH_MAX];
for(alpm_list_t *j = servers; j; j = j->next) {
char *server = j->data;
if(strncmp("file://", server, strlen("file://")) == 0) {
int len = strlen(server) - strlen("file://") + 1 + strlen(pkg->filename) + 1;
if(sig) {
len += strlen(".sig");
snprintf(filepath, len, "%s/%s", server + strlen("file://"), pkg->filename);
} else {
snprintf(filepath, len, "%s/%s.sig", server + strlen("file://"), pkg->filename);
}
if(stat(filepath, &buf) == 0 && S_ISREG(buf.st_mode)) {
STRDUP(retpath, filepath, RET_ERR(handle, ALPM_ERR_MEMORY, NULL));
_alpm_log(handle, ALPM_LOG_DEBUG, "found pkg in repo cache: %s\n", retpath);
return retpath;
}
}
}
return _alpm_filecache_find(handle, pkg->filename);
}
/** Find a filename in a registered alpm cachedir.
* @param handle the context handle
* @param filename name of file to find
@@ -846,10 +877,10 @@ char *_alpm_filecache_find(alpm_handle_t *handle, const char *filename)
* @param filename name of file to find
* @return 0 if the filename was not found, 1 otherwise
*/
int _alpm_filecache_exists(alpm_handle_t *handle, const char *filename)
int _alpm_cache_pkg_exists(alpm_pkg_t *pkg, int sig)
{
int res;
char *fpath = _alpm_filecache_find(handle, filename);
char *fpath = _alpm_cache_find_pkg(pkg, sig);
res = (fpath != NULL);
FREE(fpath);
return res;

View File

@@ -133,9 +133,10 @@ 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_cache_find_pkg(alpm_pkg_t *pkg, int sig);
char *_alpm_filecache_find(alpm_handle_t *handle, const char *filename);
/* Checks whether a file exists in cache */
int _alpm_filecache_exists(alpm_handle_t *handle, const char *filename);
int _alpm_cache_pkg_exists(alpm_pkg_t *pkg, int sig);
const char *_alpm_filecache_setup(alpm_handle_t *handle);
/* Unlike many uses of alpm_pkgvalidation_t, _alpm_test_checksum expects
* an enum value rather than a bitfield. */

View File

@@ -155,7 +155,6 @@ int config_free(config_t *oldconfig)
free(oldconfig->dbpath);
free(oldconfig->logfile);
free(oldconfig->gpgdir);
free(oldconfig->note);
FREELIST(oldconfig->hookdirs);
FREELIST(oldconfig->cachedirs);
free(oldconfig->xfercommand);

View File

@@ -99,8 +99,6 @@ typedef struct __config_t {
unsigned int ask;
/* Bitfield of alpm_transflag_t */
int flags;
char *note;
int rmnote;
/* Bitfields of alpm_siglevel_t */
int siglevel;
int localfilesiglevel;
@@ -172,8 +170,6 @@ enum {
OP_IGNOREGROUP,
OP_NEEDED,
OP_ASEXPLICIT,
OP_NOTE,
OP_RMNOTE,
OP_ARCH,
OP_PRINTFORMAT,
OP_GPGDIR,

View File

@@ -38,12 +38,11 @@
*
* @return 0 on success, 1 on failure
*/
static int change_pkg(alpm_list_t *targets)
static int change_install_reason(alpm_list_t *targets)
{
alpm_list_t *i;
alpm_db_t *db_local;
int ret = 0;
int set_reason = 0;
alpm_pkgreason_t reason;
@@ -54,10 +53,11 @@ static int change_pkg(alpm_list_t *targets)
if(config->flags & ALPM_TRANS_FLAG_ALLDEPS) { /* --asdeps */
reason = ALPM_PKG_REASON_DEPEND;
set_reason = 1;
} else if(config->flags & ALPM_TRANS_FLAG_ALLEXPLICIT) { /* --asexplicit */
reason = ALPM_PKG_REASON_EXPLICIT;
set_reason = 1;
} else {
pm_printf(ALPM_LOG_ERROR, _("no install reason specified (use -h for help)\n"));
return 1;
}
/* Lock database */
@@ -69,46 +69,19 @@ static int change_pkg(alpm_list_t *targets)
for(i = targets; i; i = alpm_list_next(i)) {
char *pkgname = i->data;
alpm_pkg_t *pkg = alpm_db_get_pkg(db_local, pkgname);
if(!pkg) {
pm_printf(ALPM_LOG_ERROR, _("package '%s' was not found"), pkgname);
if(!pkg || alpm_pkg_set_reason(pkg, reason)) {
pm_printf(ALPM_LOG_ERROR, _("could not set install reason for package %s (%s)\n"),
pkgname, alpm_strerror(alpm_errno(config->handle)));
ret = 1;
continue;
}
if(set_reason) {
if(alpm_pkg_set_reason(pkg, reason)) {
pm_printf(ALPM_LOG_ERROR, _("could not set install reason for package %s (%s)\n"),
pkgname, alpm_strerror(alpm_errno(config->handle)));
ret = 1;
} else {
if(!config->quiet) {
if(reason == ALPM_PKG_REASON_DEPEND) {
printf(_("%s: install reason has been set to 'installed as dependency'\n"), pkgname);
} else {
printf(_("%s: install reason has been set to 'explicitly installed'\n"), pkgname);
}
} else {
if(!config->quiet) {
if(reason == ALPM_PKG_REASON_DEPEND) {
printf(_("%s: install reason has been set to 'installed as dependency'\n"), pkgname);
} else {
printf(_("%s: install reason has been set to 'explicitly installed'\n"), pkgname);
}
}
}
if(config->rmnote) {
if(alpm_pkg_set_note(pkg, NULL)) {
pm_printf(ALPM_LOG_ERROR, _("could not set install note for package %s (%s)\n"),
pkgname, alpm_strerror(alpm_errno(config->handle)));
ret = 1;
} else if(!config->quiet) {
printf(_("%s: note removed\n"), pkgname);
}
} else if(config->note) {
if(alpm_pkg_set_note(pkg, config->note)) {
pm_printf(ALPM_LOG_ERROR, _("could not set install note for package %s (%s)\n"),
pkgname, alpm_strerror(alpm_errno(config->handle)));
ret = 1;
} else if(!config->quiet) {
printf(_("%s: note set\n"), pkgname);
}
}
}
/* Unlock database */
@@ -323,9 +296,8 @@ int pacman_database(alpm_list_t *targets)
}
}
if(config->note || config->rmnote ||
(config->flags & (ALPM_TRANS_FLAG_ALLDEPS | ALPM_TRANS_FLAG_ALLEXPLICIT))) {
ret = change_pkg(targets);
if(config->flags & (ALPM_TRANS_FLAG_ALLDEPS | ALPM_TRANS_FLAG_ALLEXPLICIT)) {
ret = change_install_reason(targets);
}
return ret;

View File

@@ -70,7 +70,6 @@ enum {
T_URL,
T_VALIDATED_BY,
T_VERSION,
T_NOTE,
/* the following is a sentinel and should remain in last position */
_T_MAX
};
@@ -125,7 +124,6 @@ static void make_aligned_titles(void)
buf[T_URL] = _("URL");
buf[T_VALIDATED_BY] = _("Validated By");
buf[T_VERSION] = _("Version");
buf[T_NOTE] = _("Note");
for(i = 0; i < ARRAYSIZE(wbuf); i++) {
wlen[i] = mbstowcs(wbuf[i], buf[i], strlen(buf[i]) + 1);
@@ -303,7 +301,6 @@ void dump_pkg_full(alpm_pkg_t *pkg, int extra)
if(from == ALPM_PKG_FROM_LOCALDB) {
string_display(titles[T_INSTALL_DATE], idatestr, cols);
string_display(titles[T_INSTALL_REASON], reason, cols);
string_display(titles[T_NOTE], alpm_pkg_get_note(pkg), cols);
}
if(from == ALPM_PKG_FROM_FILE || from == ALPM_PKG_FROM_LOCALDB) {
string_display(titles[T_INSTALL_SCRIPT],

View File

@@ -169,8 +169,6 @@ static void usage(int op, const char * const myname)
printf("%s:\n", str_opt);
addlist(_(" --asdeps mark packages as non-explicitly installed\n"));
addlist(_(" --asexplicit mark packages as explicitly installed\n"));
addlist(_(" --note <note> add or edit a packages install notes\n"));
addlist(_(" --rmnote remove install note from packages\n"));
addlist(_(" -k, --check test local database for validity (-kk for sync databases)\n"));
addlist(_(" -q, --quiet suppress output of success messages\n"));
} else if(op == PM_OP_DEPTEST) {
@@ -195,7 +193,6 @@ static void usage(int op, const char * const myname)
" overwrite conflicting files (can be used more than once)\n"));
addlist(_(" --asdeps install packages as non-explicitly installed\n"));
addlist(_(" --asexplicit install packages as explicitly installed\n"));
addlist(_(" --note <note> add an install note to packages\n"));
addlist(_(" --ignore <pkg> ignore a package upgrade (can be used more than once)\n"));
addlist(_(" --ignoregroup <grp>\n"
" ignore a group upgrade (can be used more than once)\n"));
@@ -484,12 +481,6 @@ static int parsearg_database(int opt)
case OP_ASEXPLICIT:
config->flags |= ALPM_TRANS_FLAG_ALLEXPLICIT;
break;
case OP_NOTE:
config->note = strdup(optarg);
break;
case OP_RMNOTE:
config->rmnote = 1;
break;
case OP_CHECK:
case 'k':
(config->op_q_check)++;
@@ -510,11 +501,7 @@ static void checkargs_database(void)
&& config->flags & ALPM_TRANS_FLAG_ALLEXPLICIT,
"--asdeps", "--asexplicit");
invalid_opt(config->note && config->rmnote, "--note", "--rmnote");
if(config->op_q_check) {
invalid_opt(config->note != NULL, "--note", "--check");
invalid_opt(config->rmnote, "--rmnote", "--check");
invalid_opt(config->flags & ALPM_TRANS_FLAG_ALLDEPS,
"--asdeps", "--check");
invalid_opt(config->flags & ALPM_TRANS_FLAG_ALLEXPLICIT,
@@ -741,9 +728,6 @@ static int parsearg_upgrade(int opt)
case OP_ASEXPLICIT:
config->flags |= ALPM_TRANS_FLAG_ALLEXPLICIT;
break;
case OP_NOTE:
config->note = strdup(optarg);
break;
case OP_NEEDED:
config->flags |= ALPM_TRANS_FLAG_NEEDED;
break;
@@ -958,8 +942,6 @@ static int parseargs(int argc, char *argv[])
{"ignoregroup", required_argument, 0, OP_IGNOREGROUP},
{"needed", no_argument, 0, OP_NEEDED},
{"asexplicit", no_argument, 0, OP_ASEXPLICIT},
{"note", required_argument, 0, OP_NOTE},
{"rmnote", no_argument, 0, OP_RMNOTE},
{"arch", required_argument, 0, OP_ARCH},
{"print-format", required_argument, 0, OP_PRINTFORMAT},
{"gpgdir", required_argument, 0, OP_GPGDIR},

View File

@@ -329,15 +329,9 @@ static int display(alpm_pkg_t *pkg)
&& !config->op_q_changelog && !config->op_q_check) {
if(!config->quiet) {
const colstr_t *colstr = &config->colstr;
char *note = alpm_pkg_get_note(pkg);
printf("%s%s %s%s%s", colstr->title, alpm_pkg_get_name(pkg),
colstr->version, alpm_pkg_get_version(pkg), colstr->nocolor);
if(note) {
printf(" (%s)", note);
}
if(config->op_q_upgrade) {
int usage;
alpm_pkg_t *newpkg = alpm_sync_get_new_version(pkg, alpm_get_syncdbs(config->handle));

View File

@@ -72,15 +72,6 @@ int trans_init(int flags, int check_valid)
trans_init_error();
return -1;
}
if(config->note) {
ret = alpm_trans_set_note(config->handle, config->note);
if(ret == -1) {
trans_init_error();
return -1;
}
}
return 0;
}

View File

@@ -9,8 +9,6 @@ pacman_tests = [
'tests/config002.py',
'tests/database001.py',
'tests/database002.py',
'tests/database003.py',
'tests/database004.py',
'tests/database010.py',
'tests/database011.py',
'tests/database012.py',
@@ -176,7 +174,6 @@ pacman_tests = [
'tests/symlink020.py',
'tests/symlink021.py',
'tests/sync-failover-404-with-body.py',
'tests/sync-keep-note.py',
'tests/sync-install-assumeinstalled.py',
'tests/sync-nodepversion01.py',
'tests/sync-nodepversion02.py',
@@ -184,7 +181,6 @@ pacman_tests = [
'tests/sync-nodepversion04.py',
'tests/sync-nodepversion05.py',
'tests/sync-nodepversion06.py',
'tests/sync-note-targets-only.py',
'tests/sync-sysupgrade-print-replaced-packages.py',
'tests/sync-update-assumeinstalled.py',
'tests/sync-update-package-removing-required-provides.py',

View File

@@ -121,8 +121,6 @@ class pmdb(object):
pkg.groups = _getsection(fd)
elif line == "%URL%":
pkg.url = fd.readline().strip("\n")
elif line == "%NOTE%":
pkg.note = fd.readline().strip("\n")
elif line == "%LICENSE%":
pkg.license = _getsection(fd)
elif line == "%ARCH%":
@@ -210,7 +208,6 @@ class pmdb(object):
make_section(data, "INSTALLDATE", pkg.installdate)
make_section(data, "SIZE", pkg.size)
make_section(data, "REASON", pkg.reason)
make_section(data, "NOTE", pkg.note)
else:
make_section(data, "FILENAME", pkg.filename())
make_section(data, "REPLACES", pkg.replaces)

View File

@@ -34,7 +34,6 @@ class pmpkg(object):
self.desc = ""
self.groups = []
self.url = ""
self.note = ""
self.license = []
self.arch = ""
self.builddate = ""
@@ -72,7 +71,6 @@ class pmpkg(object):
s.append("url: %s" % self.url)
s.append("files: %s" % " ".join(self.files))
s.append("reason: %d" % self.reason)
s.append("note: %s" % self.note)
return "\n".join(s)
def fullname(self):

View File

@@ -108,9 +108,6 @@ class pmrule(object):
if f.startswith(value + "\t"):
success = 1
break;
elif case == "NOTE":
if newpkg.note != value:
success = 0
else:
tap.diag("PKG rule '%s' not found" % case)
success = -1

View File

@@ -322,7 +322,7 @@ class pmtest(object):
self.result["success"] += 1
else:
self.result["fail"] += 1
tap.ok(success == 1, i)
tap.ok(success, i)
def configfile(self):
return os.path.join(self.root, util.PACCONF)

View File

@@ -1,10 +0,0 @@
self.description = "-D --note :D"
lp = pmpkg("pkg")
self.addpkg2db("local", lp)
self.args = "-D pkg --note :D"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg")
self.addrule("PKG_NOTE=pkg|:D")

View File

@@ -1,11 +0,0 @@
self.description = "-D --rmnote"
lp = pmpkg("pkg")
lp.note = "D:"
self.addpkg2db("local", lp)
self.args = "-D pkg --rmnote"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg")
self.addrule("PKG_NOTE=pkg|")

View File

@@ -1,14 +0,0 @@
self.description = "Sync a package keeping the existing note"
sp = pmpkg("pkg")
self.addpkg2db("sync", sp)
lp = pmpkg("pkg")
lp.note = "this is a note"
self.addpkg2db("local", lp)
self.args = "-S pkg"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg")
self.addrule("PKG_NOTE=pkg|this is a note")

View File

@@ -1,30 +0,0 @@
self.description = "Make sure note is only set for targets"
sp1 = pmpkg("pkg1", "1.0-2")
sp1.depends = ["pkg2"]
sp2 = pmpkg("pkg2")
sp3 = pmpkg("pkg3")
sp3.depends = ["pkg4"]
sp4 = pmpkg("pkg4")
for p in sp1, sp2, sp3, sp4:
self.addpkg2db("sync", p)
lp1 = pmpkg("pkg1")
self.addpkg2db("local", lp1)
self.args = "-S pkg1 pkg3 --note aaaa"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")
self.addrule("PKG_EXIST=pkg3")
self.addrule("PKG_EXIST=pkg4")
self.addrule("PKG_NOTE=pkg1|aaaa")
self.addrule("PKG_NOTE=pkg2|")
self.addrule("PKG_NOTE=pkg3|aaaa")
self.addrule("PKG_NOTE=pkg4|")