aboutsummaryrefslogtreecommitdiffstats
path: root/main/lua-aports/0001-buildrepo-fix-bug-when-repodest-is-set-with-buildrep.patch
blob: 6d7f6dd63e1c55e331e4864c6f503cbfaf95daf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
From 4de3a72e08487d44b2d4a57e7334d97cdebb8770 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 7 Apr 2016 08:47:52 +0200
Subject: [PATCH] buildrepo: fix bug when repodest is set with buildrepo -d

we need to use the specified repodest when checking if package is built
or not
---
 aports/db.lua  | 14 +++++++++-----
 aports/pkg.lua | 13 +++++++++----
 buildrepo.lua  |  2 +-
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/aports/db.lua b/aports/db.lua
index 45e394e..09afaeb 100644
--- a/aports/db.lua
+++ b/aports/db.lua
@@ -116,7 +116,7 @@ local function apkbuilds_open(aportsdir, repos)
 	return obj
 end
 
-local function init_apkdb(aportsdir, repos)
+local function init_apkdb(aportsdir, repos, repodest)
 	local pkgdb = {}
 	local revdeps = {}
 	local apkbuilds = apkbuilds_open(aportsdir, repos)
@@ -125,7 +125,7 @@ local function init_apkdb(aportsdir, repos)
 		if pkgdb[a.pkgname] == nil then
 			pkgdb[a.pkgname] = {}
 		end
-		pkg.init(a)
+		pkg.init(a, repodest)
 		table.insert(pkgdb[a.pkgname], a)
 		-- add subpackages to package db
 		local k,v
@@ -296,11 +296,15 @@ function Aports:known_deps_exists(pkg)
 	return true
 end
 
-function M.new(aportsdir, ...)
+function M.new(aportsdir, repos, repodest)
 	local h = Aports
 	h.aportsdir = aportsdir
-	h.repos = {...}
-	h.apks, h.revdeps = init_apkdb(aportsdir, h.repos)
+	if type(repos) == "table" then
+		h.repos = repos
+	else
+		h.repos = { repos }
+	end
+	h.apks, h.revdeps = init_apkdb(aportsdir, h.repos, repodest)
 	if h.apks == nil then
 		return nil, h.revdeps
 	end
diff --git a/aports/pkg.lua b/aports/pkg.lua
index 9689ecf..b99bf68 100644
--- a/aports/pkg.lua
+++ b/aports/pkg.lua
@@ -59,11 +59,12 @@ function M.get_apk_file_name(pkg, name)
 end
 
 function M.get_apk_file_path(pkg, name)
-	if abuild.pkgdest ~= nil and abuild.pkgdest ~= "" then
+	local repodest = pkg.repodest or abuild.repodest
+	if pkg.repodest == nil and abuild.pkgdest ~= nil and abuild.pkgdest ~= "" then
 		return abuild.pkgdest.."/"..M.get_apk_file_name(pkg, name)
 	end
-	if abuild.repodest ~= nil and abuild.repodest ~= "" then
-		return abuild.repodest.."/"..M.get_repo_name(pkg).."/"..abuild.arch.."/"..M.get_apk_file_name(pkg, name)
+	if repodest ~= nil and repodest ~= "" then
+		return repodest.."/"..M.get_repo_name(pkg).."/"..abuild.arch.."/"..M.get_apk_file_name(pkg, name)
 	end
 	return pkg.dir.."/"..M.get_apk_file_name(pkg, name)
 end
@@ -71,6 +72,9 @@ end
 function M.apk_file_exists(pkg, name)
 	-- technically we check if it is readable...
 	local filepath = M.get_apk_file_path(pkg, name)
+        if lfs.attributes(filepath) == nil then
+		io.stderr:write(("DEBUG: path=%s\n"):format(filepath))
+	end
 	return lfs.attributes(filepath) ~= nil
 end
 
@@ -110,10 +114,11 @@ function M.each_dependency(pkg)
 end
 
 
-function M.init(pkg)
+function M.init(pkg, repodest)
 	for k,v in pairs(M) do
 		pkg[k] = v
 	end
+	pkg.repodest = repodest
 end
 
 return M
diff --git a/buildrepo.lua b/buildrepo.lua
index adb73ec..c665711 100755
--- a/buildrepo.lua
+++ b/buildrepo.lua
@@ -157,7 +157,7 @@ end
 
 stats = {}
 for _,repo in pairs(args) do
-	local db = require('aports.db').new(aportsdir, repo)
+	local db = require('aports.db').new(aportsdir, repo, repodest)
 	local pkgs = {}
 	local unsorted = {}
 	local logdir = nil
-- 
2.8.0