{
config_t *newconfig = calloc(1, sizeof(config_t));
if(!newconfig) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("malloc failure: could not allocate %zd bytes\n"),
sizeof(config_t));
return NULL;
char *md5sum = alpm_compute_md5sum(path);
if(md5sum == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("could not calculate checksums for %s\n"), path);
return NULL;
}
void *fp = NULL;
if((fp = alpm_pkg_changelog_open(pkg)) == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("no changelog available for '%s'.\n"),
+ pm_printf(ALPM_LOG_ERROR, _("no changelog available for '%s'.\n"),
alpm_pkg_get_name(pkg));
return;
} else {
/* This code is here for safety only */
if(targets == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("no file was specified for --owns\n"));
+ pm_printf(ALPM_LOG_ERROR, _("no file was specified for --owns\n"));
return 1;
}
rootlen = strlen(root);
if(rootlen + 1 > PATH_MAX) {
/* we are in trouble here */
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
+ pm_printf(ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
return 1;
}
strcpy(path, root);
/* if it is not a path but a program name, then check in PATH */
if(strchr(filename, '/') == NULL) {
if(search_path(&filename, &buf) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to find '%s' in PATH: %s\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to find '%s' in PATH: %s\n"),
filename, strerror(errno));
ret++;
free(filename);
continue;
}
} else {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to read file '%s': %s\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to read file '%s': %s\n"),
filename, strerror(errno));
ret++;
free(filename);
}
if(S_ISDIR(buf.st_mode)) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("cannot determine ownership of directory '%s'\n"), filename);
ret++;
free(filename);
rpath = resolve_path(dname);
if(!rpath) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"),
+ pm_printf(ALPM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"),
filename, strerror(errno));
free(filename);
free(dname);
}
if(rootlen + 1 + strlen(pkgfile) > PATH_MAX) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, pkgfile);
+ pm_printf(ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, pkgfile);
}
/* concatenate our file and the root path */
strcpy(path + rootlen, pkgfile);
}
}
if(!found) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("No package owns %s\n"), filename);
+ pm_printf(ALPM_LOG_ERROR, _("No package owns %s\n"), filename);
ret++;
}
free(filename);
}
}
} else {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("group '%s' was not found\n"), grpname);
+ pm_printf(ALPM_LOG_ERROR, _("group '%s' was not found\n"), grpname);
ret++;
}
}
rootlen = strlen(root);
if(rootlen + 1 > PATH_MAX) {
/* we are in trouble here */
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
+ pm_printf(ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
return 1;
}
strcpy(f, root);
const char *path = file->name;
if(rootlen + 1 + strlen(path) > PATH_MAX) {
- pm_fprintf(stderr, ALPM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
+ pm_printf(ALPM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
continue;
}
strcpy(f + rootlen, path);
if(pkg == NULL) {
switch(alpm_errno(config->handle)) {
case ALPM_ERR_PKG_NOT_FOUND:
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("package '%s' was not found\n"), strname);
if(!config->op_q_isfile && access(strname, R_OK) == 0) {
- pm_fprintf(stderr, ALPM_LOG_WARNING,
+ pm_printf(ALPM_LOG_WARNING,
_("'%s' is a file, you might want to use %s.\n"),
strname, "-p/--file");
}
break;
default:
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("could not load package '%s': %s\n"), strname,
alpm_strerror(alpm_errno(config->handle)));
break;
if((pkg = alpm_db_get_pkg(db_local, target)) != NULL) {
if(alpm_remove_pkg(config->handle, pkg) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", target,
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n", target,
alpm_strerror(alpm_errno(config->handle)));
return -1;
}
/* fallback to group */
alpm_group_t *grp = alpm_db_readgroup(db_local, target);
if(grp == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': target not found\n", target);
+ pm_printf(ALPM_LOG_ERROR, "'%s': target not found\n", target);
return -1;
}
for(p = grp->packages; p; p = alpm_list_next(p)) {
pkg = alpm_list_getdata(p);
if(alpm_remove_pkg(config->handle, pkg) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", target,
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n", target,
alpm_strerror(alpm_errno(config->handle)));
return -1;
}
/* Step 2: prepare the transaction based on its type, targets and flags */
if(alpm_trans_prepare(config->handle, &data) == -1) {
enum _alpm_errno_t err = alpm_errno(config->handle);
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
alpm_strerror(err));
switch(err) {
case ALPM_ERR_PKG_INVALID_ARCH:
}
if(alpm_trans_commit(config->handle, &data) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
alpm_strerror(alpm_errno(config->handle)));
retval = 1;
}
dir = opendir(dbpath);
if(dir == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("could not access database directory\n"));
+ pm_printf(ALPM_LOG_ERROR, _("could not access database directory\n"));
return 1;
}
len = strlen(path);
if(S_ISDIR(buf.st_mode) || strcmp(path + len - 3, ".db") != 0) {
if(rmrf(path)) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("could not remove %s\n"), path);
closedir(dir);
return 1;
}
if(rmrf(path)) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("could not remove %s\n"), path);
closedir(dir);
return 1;
struct dirent *ent;
if(dir == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("could not access cache directory %s\n"), cachedir);
ret++;
continue;
ret = alpm_db_update((level < 2 ? 0 : 1), db);
if(ret < 0) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to update %s (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to update %s (%s)\n"),
alpm_db_get_name(db), alpm_strerror(alpm_errno(config->handle)));
} else if(ret == 1) {
printf(_(" %s is up to date\n"), alpm_db_get_name(db));
* expected
*/
if(!success) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to synchronize any databases\n"));
+ pm_printf(ALPM_LOG_ERROR, _("failed to synchronize any databases\n"));
trans_init_error();
}
return (success > 0);
}
if(!founddb) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("repository '%s' does not exist\n"), repo);
ret++;
}
if(!foundpkg) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("package '%s' was not found\n"), target);
ret++;
}
}
if(db == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR,
+ pm_printf(ALPM_LOG_ERROR,
_("repository \"%s\" was not found.\n"),repo);
alpm_list_free(ls);
return 1;
pm_printf(ALPM_LOG_WARNING, _("skipping target: %s\n"), alpm_pkg_get_name(pkg));
return 0;
} else {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", alpm_pkg_get_name(pkg),
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n", alpm_pkg_get_name(pkg),
alpm_strerror(err));
return 1;
}
int count = alpm_list_count(pkgs);
if(!count) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("target not found: %s\n"), group);
+ pm_printf(ALPM_LOG_ERROR, _("target not found: %s\n"), group);
return 1;
}
dbname = targstring;
db = get_db(dbname);
if(!db) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("database not found: %s\n"),
+ pm_printf(ALPM_LOG_ERROR, _("database not found: %s\n"),
dbname);
ret = 1;
goto cleanup;
cleanup:
free(targstring);
if(ret && access(target, R_OK) == 0) {
- pm_fprintf(stderr, ALPM_LOG_WARNING,
+ pm_printf(ALPM_LOG_WARNING,
_("'%s' is a file, did you mean %s instead of %s?\n"),
target, "-U/--upgrade", "-S/--sync");
}
printf(_(":: Starting full system upgrade...\n"));
alpm_logaction(config->handle, "starting full system upgrade\n");
if(alpm_sync_sysupgrade(config->handle, config->op_s_upgrade >= 2) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "%s\n", alpm_strerror(alpm_errno(config->handle)));
+ pm_printf(ALPM_LOG_ERROR, "%s\n", alpm_strerror(alpm_errno(config->handle)));
trans_release();
return 1;
}
/* Step 2: "compute" the transaction based on targets and flags */
if(alpm_trans_prepare(config->handle, &data) == -1) {
enum _alpm_errno_t err = alpm_errno(config->handle);
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
alpm_strerror(err));
switch(err) {
case ALPM_ERR_PKG_INVALID_ARCH:
if(alpm_trans_commit(config->handle, &data) == -1) {
enum _alpm_errno_t err = alpm_errno(config->handle);
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
alpm_strerror(err));
switch(err) {
case ALPM_ERR_FILE_CONFLICTS:
if(strstr(i->data, "://")) {
char *str = alpm_fetch_pkgurl(config->handle, i->data);
if(str == NULL) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n",
(char *)i->data, alpm_strerror(alpm_errno(config->handle)));
return 1;
} else {
alpm_pkg_t *pkg;
if(alpm_pkg_load(config->handle, targ, 1, level, &pkg) != 0) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n",
targ, alpm_strerror(alpm_errno(config->handle)));
trans_release();
return 1;
}
if(alpm_add_pkg(config->handle, pkg) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ pm_printf(ALPM_LOG_ERROR, "'%s': %s\n",
targ, alpm_strerror(alpm_errno(config->handle)));
alpm_pkg_free(pkg);
trans_release();
void trans_init_error(void)
{
enum _alpm_errno_t err = alpm_errno(config->handle);
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to init transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to init transaction (%s)\n"),
alpm_strerror(err));
if(err == ALPM_ERR_HANDLE_LOCK) {
fprintf(stderr, _(" if you're sure a package manager is not already\n"
int trans_release(void)
{
if(alpm_trans_release(config->handle) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to release transaction (%s)\n"),
+ pm_printf(ALPM_LOG_ERROR, _("failed to release transaction (%s)\n"),
alpm_strerror(alpm_errno(config->handle)));
return -1;
}
totalwidth = table_calc_widths(header, rows, totalcols, &widths);
/* return -1 if terminal is not wide enough */
if(totalwidth > getcols()) {
- pm_fprintf(stderr, ALPM_LOG_WARNING,
+ pm_printf(ALPM_LOG_WARNING,
_("insufficient columns available for table display\n"));
return -1;
}
ret = pm_asprintf(&sigline, _("%s, %s from \"%s\""),
status, validity, name);
if(ret == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to allocate string\n"));
+ pm_printf(ALPM_LOG_ERROR, _("failed to allocate string\n"));
continue;
}
indentprint(sigline, len);
return ret;
}
-int pm_fprintf(FILE *stream, alpm_loglevel_t level, const char *format, ...)
-{
- int ret;
- va_list args;
-
- /* print the message using va_arg list */
- va_start(args, format);
- ret = pm_vfprintf(stream, level, format, args);
- va_end(args);
-
- return ret;
-}
-
int pm_asprintf(char **string, const char *format, ...)
{
int ret = 0;
/* print the message using va_arg list */
va_start(args, format);
if(vasprintf(string, format, args) == -1) {
- pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to allocate string\n"));
+ pm_printf(ALPM_LOG_ERROR, _("failed to allocate string\n"));
ret = -1;
}
va_end(args);
int multiselect_question(char *array, int count);
int yesno(char *fmt, ...);
int noyes(char *fmt, ...);
+
int pm_printf(alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
-int pm_fprintf(FILE *stream, alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,3,4)));
int pm_asprintf(char **string, const char *format, ...);
int pm_vfprintf(FILE *stream, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
int pm_vasprintf(char **string, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));