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
|