Merge branch 'maint'
This commit is contained in:
commit
a30bf868ca
4 changed files with 33 additions and 3 deletions
|
@ -697,6 +697,16 @@ static int commit_single_pkg(pmpkg_t *newpkg, int pkg_current, int pkg_count,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* prepare directory for database entries so permission are correct after
|
||||||
|
changelog/install script installation (FS#12263) */
|
||||||
|
if(_alpm_db_prepare(db, newpkg)) {
|
||||||
|
alpm_logaction("error: could not create database entry %s-%s\n",
|
||||||
|
alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg));
|
||||||
|
pm_errno = PM_ERR_DB_WRITE;
|
||||||
|
ret = -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) {
|
if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) {
|
||||||
struct archive *archive;
|
struct archive *archive;
|
||||||
struct archive_entry *entry;
|
struct archive_entry *entry;
|
||||||
|
|
|
@ -652,6 +652,26 @@ error:
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int _alpm_db_prepare(pmdb_t *db, pmpkg_t *info)
|
||||||
|
{
|
||||||
|
mode_t oldmask;
|
||||||
|
int retval = 0;
|
||||||
|
char *pkgpath = NULL;
|
||||||
|
|
||||||
|
oldmask = umask(0000);
|
||||||
|
|
||||||
|
pkgpath = get_pkgpath(db, info);
|
||||||
|
|
||||||
|
if((retval = mkdir(pkgpath, 0755)) != 0) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("could not create directory %s: %s\n"), pkgpath, strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
|
free(pkgpath);
|
||||||
|
umask(oldmask);
|
||||||
|
|
||||||
|
return(retval);
|
||||||
|
}
|
||||||
|
|
||||||
int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
||||||
{
|
{
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
|
@ -670,10 +690,8 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
||||||
|
|
||||||
pkgpath = get_pkgpath(db, info);
|
pkgpath = get_pkgpath(db, info);
|
||||||
|
|
||||||
oldmask = umask(0000);
|
|
||||||
mkdir(pkgpath, 0755);
|
|
||||||
/* make sure we have a sane umask */
|
/* make sure we have a sane umask */
|
||||||
umask(0022);
|
oldmask = umask(0022);
|
||||||
|
|
||||||
if(strcmp(db->treename, "local") == 0) {
|
if(strcmp(db->treename, "local") == 0) {
|
||||||
local = 1;
|
local = 1;
|
||||||
|
|
|
@ -60,6 +60,7 @@ int _alpm_db_open(pmdb_t *db);
|
||||||
void _alpm_db_close(pmdb_t *db);
|
void _alpm_db_close(pmdb_t *db);
|
||||||
int _alpm_db_populate(pmdb_t *db);
|
int _alpm_db_populate(pmdb_t *db);
|
||||||
int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq);
|
int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq);
|
||||||
|
int _alpm_db_prepare(pmdb_t *db, pmpkg_t *info);
|
||||||
int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq);
|
int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq);
|
||||||
int _alpm_db_remove(pmdb_t *db, pmpkg_t *info);
|
int _alpm_db_remove(pmdb_t *db, pmpkg_t *info);
|
||||||
|
|
||||||
|
|
|
@ -285,6 +285,7 @@ static void unlink_file(pmpkg_t *info, alpm_list_t *lp, pmtrans_t *trans)
|
||||||
snprintf(newpath, PATH_MAX, "%s.pacsave", file);
|
snprintf(newpath, PATH_MAX, "%s.pacsave", file);
|
||||||
rename(file, newpath);
|
rename(file, newpath);
|
||||||
_alpm_log(PM_LOG_WARNING, _("%s saved as %s\n"), file, newpath);
|
_alpm_log(PM_LOG_WARNING, _("%s saved as %s\n"), file, newpath);
|
||||||
|
alpm_logaction("warning: %s saved as %s\n", file, newpath);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_DEBUG, "transaction is set to NOSAVE, not backing up '%s'\n", file);
|
_alpm_log(PM_LOG_DEBUG, "transaction is set to NOSAVE, not backing up '%s'\n", file);
|
||||||
|
|
Loading…
Add table
Reference in a new issue