diff -r 6be785b8cc85 -r 02e37d9e96a9 pacman-6.0.0-nogpg-relative_conf.patch --- a/pacman-6.0.0-nogpg-relative_conf.patch Fri Mar 03 19:26:38 2023 +0100 +++ b/pacman-6.0.0-nogpg-relative_conf.patch Thu Sep 28 22:29:30 2023 +0200 @@ -40,3 +40,30 @@ if(ret) { goto cleanup; } +diff -ruN pacman-6.0.0.orig/lib/libalpm/be_local.c pacman-6.0.0/lib/libalpm/be_local.c +--- pacman-6.0.0.orig/lib/libalpm/be_local.c 2023-09-05 15:52:38.385979363 +0200 ++++ pacman-6.0.0/lib/libalpm/be_local.c 2023-09-05 16:04:41.553345845 +0200 +@@ -423,7 +423,7 @@ + + static int local_db_create(alpm_db_t *db, const char *dbpath) + { +- if(mkdir(dbpath, 0755) != 0) { ++ if(mkdir(dbpath, 0755) != 0 && errno != EEXIST) { + _alpm_log(db->handle, ALPM_LOG_ERROR, _("could not create directory %s: %s\n"), + dbpath, strerror(errno)); + RET_ERR(db->handle, ALPM_ERR_DB_CREATE, -1); +@@ -905,10 +905,12 @@ + oldmask = umask(0000); + pkgpath = _alpm_local_db_pkgpath(db, info, NULL); + +- if((retval = mkdir(pkgpath, 0755)) != 0) { ++ if((retval = mkdir(pkgpath, 0755)) != 0 && errno != EEXIST) { + _alpm_log(db->handle, ALPM_LOG_ERROR, _("could not create directory %s: %s\n"), + pkgpath, strerror(errno)); +- } ++ } else { ++ retval = 0; ++ } + + free(pkgpath); + umask(oldmask);