aboutsummaryrefslogtreecommitdiffstats
path: root/main/abuild/git.patch
blob: cba100cc8388659f324c94a98be6efd2c1e5798b (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
diff --git a/abuild.in b/abuild.in
index 0dd8f9a..8d06261 100644
--- a/abuild.in
+++ b/abuild.in
@@ -886,13 +886,14 @@ prepare_trace_rpaths() {
 
 # search for broken symlinks so we later can pull in proper depends
 prepare_symlinks() {
+	local target
 	local dir="${subpkgdir:-$pkgdir}"
 	options_has "!tracedeps" && return 0
 	cd "$dir" || return 1
 	find -type l | while read symlink; do
-		if ! [ -e "$symlink" ]; then
-			echo "$symlink $(readlink $symlink)" \
-				>> "$controldir"/.symlinks
+		target=$(readlink "$symlink")
+		if ! [ -e "$dir$(normalize_target_path "$target" "$symlink")" ]; then
+			echo "$symlink $target" >> "$controldir"/.symlinks
 		fi
 	done
 }
@@ -1190,11 +1191,16 @@ scan_shared_objects() {
 	done > "$controldir"/.needs-so
 }
 
-# normalize a path string
-normalize_path() {
+# normalize a symlink target path (1st arg)
+# Converts a relative path to absolute with respect to the symlink
+# path (2nd arg).
+normalize_target_path() {
+	local path=$1
+	[ "${path:0:1}" = / ] || path=$(dirname "$2")/$path
+
 	local oifs="$IFS" pathstr= i=
 	IFS='/'
-	set -- $1
+	set -- $path
 	for i; do
 		case "$i" in
 		"."|"") continue;;
@@ -1217,10 +1223,7 @@ scan_symlink_targets() {
 		fi
 
 		while read symlink target; do
-			if [ "${target#/}" = "$target" ]; then
-				target="${symlink%/*}/$target"
-			fi
-			targetpath="$datadir"/$(normalize_path "$target")
+			targetpath=$datadir$(normalize_target_path "$target" "$symlink")
 			if [ -e "$targetpath" ] || [ -L "$targetpath" ]; then
 				echo "$name=$pkgver-r$pkgrel" \
 					>> "$d"/.symlinks-needs
@@ -1721,14 +1724,12 @@ builddeps() {
 			[ "$pkgname" = "${i%%[<>=]*}" ] && continue
 			subpackages_has ${i%%[<>=]*} || builddeps="$builddeps $i"
 		done
-		hostdeps="$makedepends_host"
-		for i in $depends; do
+		for i in $depends $makedepends_host; do
 			[ "$pkgname" = "${i%%[<>=]*}" ] && continue
 			subpackages_has ${i%%[<>=]*} || hostdeps="$hostdeps $i"
 		done
 	else
-		builddeps="$makedepends"
-		for i in $BUILD_BASE $depends; do
+		for i in $BUILD_BASE $depends $makedepends; do
 			[ "$pkgname" = "${i%%[<>=]*}" ] && continue
 			subpackages_has ${i%%[<>=]*} || builddeps="$builddeps $i"
 		done
@@ -1962,9 +1963,8 @@ post_add() {
 }
 
 deps() {
-	local builddeps i
-	builddeps="$makedepends"
-	for i in $depends; do
+	local builddeps= i
+	for i in $depends $makedepends; do
 		[ "$pkgname" = "${i%%[<>=]*}" ] && continue
 		subpackages_has ${i%%[<>=]*} || builddeps="$builddeps $i"
 	done
diff --git a/newapkbuild.in b/newapkbuild.in
index 5ba51fb..a47dcae 100644
--- a/newapkbuild.in
+++ b/newapkbuild.in
@@ -45,7 +45,6 @@ build_autotools() {
 		--prefix=/usr \\
 		--sysconfdir=/etc \\
 		--mandir=/usr/share/man \\
-		--infodir=/usr/share/info \\
 		--localstatedir=/var \\
 		|| return 1
 	make || return 1
@@ -70,10 +69,8 @@ build_cmake() {
 		-DCMAKE_INSTALL_LIBDIR=lib \\
 		-DBUILD_SHARED_LIBS=True \\
 		-DCMAKE_BUILD_TYPE=Release \\
-		-DCMAKE_CXX_COMPILER="\${CXX:-g++}" \\
-		-DCMAKE_C_COMPILER="\${CC:-gcc}" \\
 		-DCMAKE_CXX_FLAGS="\$CXXFLAGS" \\
-		-DCMAKE_CXX_FLAGS="\$CFLAGS" \\
+		-DCMAKE_C_FLAGS="\$CFLAGS" \\
 		${CMAKE_CROSSOPTS} \\
 		|| return 1
 	make || return 1