summaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0003-db-command-line-repositories-take-preference.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/apk-tools/0003-db-command-line-repositories-take-preference.patch')
-rw-r--r--main/apk-tools/0003-db-command-line-repositories-take-preference.patch194
1 files changed, 0 insertions, 194 deletions
diff --git a/main/apk-tools/0003-db-command-line-repositories-take-preference.patch b/main/apk-tools/0003-db-command-line-repositories-take-preference.patch
deleted file mode 100644
index 1f1786c35..000000000
--- a/main/apk-tools/0003-db-command-line-repositories-take-preference.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From 6f1de8cd530f598f3f79414390d98fd8e683f2af Mon Sep 17 00:00:00 2001
-From: Timo Teras <timo.teras@iki.fi>
-Date: Thu, 6 Aug 2009 10:17:28 +0300
-Subject: [PATCH 3/7] db: command line repositories take preference
-
-over the ones in config file. also remove the apk_root == NULL
-check as this cannot happen anymore. a valid root is always
-required.
----
- src/database.c | 145 +++++++++++++++++++++++++++-----------------------------
- 1 files changed, 70 insertions(+), 75 deletions(-)
-
-diff --git a/src/database.c b/src/database.c
-index 30e0431..834383b 100644
---- a/src/database.c
-+++ b/src/database.c
-@@ -895,59 +895,56 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags)
- db->cache_dir = apk_static_cache_dir;
- db->permanent = 1;
-
-- if (root != NULL) {
-- db->root = strdup(root);
-- db->root_fd = openat(AT_FDCWD, db->root, O_RDONLY);
-- if (db->root_fd < 0 && (flags & APK_OPENF_CREATE)) {
-- mkdirat(AT_FDCWD, db->root, 0755);
-- db->root_fd = openat(AT_FDCWD, root, O_RDONLY);
-- }
-- if (db->root_fd < 0) {
-- msg = "Unable to open root";
-- goto ret_errno;
-- }
-- if (fstat64(db->root_fd, &st) != 0 || major(st.st_dev) == 0)
-- db->permanent = 0;
--
-- if (fstatat64(db->root_fd, apk_linked_cache_dir, &st, 0) == 0 &&
-- S_ISDIR(st.st_mode))
-- db->cache_dir = apk_linked_cache_dir;
--
-- if (flags & APK_OPENF_WRITE) {
-+ db->root = strdup(root);
-+ db->root_fd = openat(AT_FDCWD, db->root, O_RDONLY);
-+ if (db->root_fd < 0 && (flags & APK_OPENF_CREATE)) {
-+ mkdirat(AT_FDCWD, db->root, 0755);
-+ db->root_fd = openat(AT_FDCWD, root, O_RDONLY);
-+ }
-+ if (db->root_fd < 0) {
-+ msg = "Unable to open root";
-+ goto ret_errno;
-+ }
-+ if (fstat64(db->root_fd, &st) != 0 || major(st.st_dev) == 0)
-+ db->permanent = 0;
-+
-+ if (fstatat64(db->root_fd, apk_linked_cache_dir, &st, 0) == 0 &&
-+ S_ISDIR(st.st_mode))
-+ db->cache_dir = apk_linked_cache_dir;
-+
-+ if (flags & APK_OPENF_WRITE) {
-+ db->lock_fd = openat(db->root_fd, "var/lib/apk/lock",
-+ O_CREAT | O_RDWR, 0400);
-+ if (db->lock_fd < 0 && errno == ENOENT &&
-+ (flags & APK_OPENF_CREATE)) {
-+ r = apk_db_create(db);
-+ if (r != 0) {
-+ msg = "Unable to create database";
-+ goto ret_r;
-+ }
- db->lock_fd = openat(db->root_fd, "var/lib/apk/lock",
- O_CREAT | O_RDWR, 0400);
-- if (db->lock_fd < 0 && errno == ENOENT &&
-- (flags & APK_OPENF_CREATE)) {
-- r = apk_db_create(db);
-- if (r != 0) {
-- msg = "Unable to create database";
-- goto ret_r;
-- }
-- db->lock_fd = openat(db->root_fd,
-- "var/lib/apk/lock",
-- O_CREAT | O_RDWR, 0400);
-- }
-- if (db->lock_fd < 0 ||
-- flock(db->lock_fd, LOCK_EX | LOCK_NB) < 0) {
-- msg = "Unable to lock database";
-- if (apk_wait) {
-- struct sigaction sa, old_sa;
--
-- apk_message("Waiting for repository lock");
-- memset(&sa, 0, sizeof sa);
-- sa.sa_handler = handle_alarm;
-- sa.sa_flags = SA_ONESHOT;
-- sigaction(SIGALRM, &sa, &old_sa);
--
-- alarm(apk_wait);
-- if (flock(db->lock_fd, LOCK_EX) < 0)
-- goto ret_errno;
--
-- alarm(0);
-- sigaction(SIGALRM, &old_sa, NULL);
-- } else
-+ }
-+ if (db->lock_fd < 0 ||
-+ flock(db->lock_fd, LOCK_EX | LOCK_NB) < 0) {
-+ msg = "Unable to lock database";
-+ if (apk_wait) {
-+ struct sigaction sa, old_sa;
-+
-+ apk_message("Waiting for repository lock");
-+ memset(&sa, 0, sizeof sa);
-+ sa.sa_handler = handle_alarm;
-+ sa.sa_flags = SA_ONESHOT;
-+ sigaction(SIGALRM, &sa, &old_sa);
-+
-+ alarm(apk_wait);
-+ if (flock(db->lock_fd, LOCK_EX) < 0)
- goto ret_errno;
-- }
-+
-+ alarm(0);
-+ sigaction(SIGALRM, &old_sa, NULL);
-+ } else
-+ goto ret_errno;
- }
- }
-
-@@ -959,33 +956,18 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags)
- db->cachetmp_fd = openat(db->cache_fd, "tmp", O_RDONLY);
- db->keys_fd = openat(db->root_fd, "etc/apk/keys", O_RDONLY);
-
-- if (root != NULL) {
-- r = apk_db_read_state(db, flags);
-- if (r == -ENOENT && (flags & APK_OPENF_CREATE)) {
-- r = apk_db_create(db);
-- if (r != 0) {
-- msg = "Unable to create database";
-- goto ret_r;
-- }
-- r = apk_db_read_state(db, flags);
-- }
-+ r = apk_db_read_state(db, flags);
-+ if (r == -ENOENT && (flags & APK_OPENF_CREATE)) {
-+ r = apk_db_create(db);
- if (r != 0) {
-- msg = "Unable to read database state";
-+ msg = "Unable to create database";
- goto ret_r;
- }
--
-- if (!(flags & APK_OPENF_NO_REPOS)) {
-- if (apk_repos == NULL)
-- apk_repos = "etc/apk/repositories";
-- blob = apk_blob_from_file(db->root_fd, apk_repos);
-- if (!APK_BLOB_IS_NULL(blob)) {
-- r = apk_blob_for_each_segment(
-- blob, "\n",
-- apk_db_add_repository, db);
-- rr = r ?: rr;
-- free(blob.ptr);
-- }
-- }
-+ r = apk_db_read_state(db, flags);
-+ }
-+ if (r != 0) {
-+ msg = "Unable to read database state";
-+ goto ret_r;
- }
-
- if (!(flags & APK_OPENF_NO_REPOS)) {
-@@ -993,10 +975,23 @@ int apk_db_open(struct apk_database *db, const char *root, unsigned int flags)
- r = apk_db_add_repository(db, APK_BLOB_STR(repo->url));
- rr = r ?: rr;
- }
--
-+ if (apk_repos == NULL)
-+ apk_repos = "etc/apk/repositories";
-+ blob = apk_blob_from_file(db->root_fd, apk_repos);
-+ if (!APK_BLOB_IS_NULL(blob)) {
-+ r = apk_blob_for_each_segment(
-+ blob, "\n",
-+ apk_db_add_repository, db);
-+ rr = r ?: rr;
-+ free(blob.ptr);
-+ }
- if (apk_flags & APK_UPDATE_CACHE)
- apk_db_index_write_nr_cache(db);
- }
-+ if (rr != 0) {
-+ r = rr;
-+ goto ret_r;
-+ }
-
- return rr;
-
---
-1.6.4
-