summaryrefslogtreecommitdiffstats
path: root/main/alpine-conf/0001-setup-bootable-move-syslinux.cfg-to-boot-syslinux-if.patch
blob: 5a73dfdbb98e1d5a1603be969f568e11a409d60e (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
114
115
116
117
118
119
From e8c99e12ef55bbc4d5a3bbb1d4075fb9d8bb8cae Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 7 Nov 2013 14:14:03 +0100
Subject: [PATCH] setup-bootable: move syslinux.cfg to /boot/syslinux/ if
 needed

---
 setup-bootable.in | 55 +++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 37 insertions(+), 18 deletions(-)

diff --git a/setup-bootable.in b/setup-bootable.in
index 2df03e6..374a40c 100644
--- a/setup-bootable.in
+++ b/setup-bootable.in
@@ -174,7 +174,7 @@ parent_dev=$(find_disk_dev $dev)
 # check if this files exist and not in upgrade mode
 if [ -z "$upgrade" ] && [ -z "$force" ]; then
 	for i in boot apks syslinux.cfg .alpine-release; do
-		[ -e "$destdir"/$i ] && die "$destdir/$i already exists. Aborting"
+		[ -e "$destdir"/$i ] && die "$destdir/$i already exists. Use -u to upgrade."
 	done
 fi
 
@@ -207,15 +207,17 @@ available_space=$(( $free_blocks / $blocks_per_mb ))
 vecho "Available space: $available_space MiB"
 
 if [ -n "$srcdir" ]; then
-	needed_space=$(cd "$srcdir" && du -m -s -c boot apks syslinux.cfg .alpine-release | awk '$2 == "total" {print $1}')
+	needed_space=$(cd "$srcdir" && du -m -s -c boot apks .alpine-release | awk '$2 == "total" {print $1}')
 	vecho "Needed space:    $needed_space MiB"
 	[ $available_space -lt $needed_space ] \
 		&& die "Not enough space on $destdir. Aborting."
 
 	# copy the files to .new
 	for i in boot apks syslinux.cfg .alpine-release; do
-		vecho "Copying $srcdir/$i to $destdir/.new/"
-		cp -a "$srcdir"/$i "$destdir"/.new/
+		if [ -e "$srcdir"/$i ]; then
+			vecho "Copying $srcdir/$i to $destdir/.new/"
+			cp -a "$srcdir"/$i "$destdir"/.new/
+		fi
 	done
 elif [ -n "$srcurl" ]; then
 	cd "$destdir"/.new
@@ -224,6 +226,19 @@ elif [ -n "$srcurl" ]; then
 	echo ""
 fi
 
+# find where new syslinux.cfg is
+for i in boot/syslinux/syslinux.cfg syslinux.cfg; do
+	if [ -e "$destdir"/.new/$i ]; then
+		syslinux_cfg=$i
+		vecho "Found $syslinux_cfg"
+		break
+	fi
+done
+# abort early in case unexpected trouble
+if [ -z "$syslinux_cfg" ]; then
+	die "Could not find any syslinux.cfg on new iso?"
+fi
+
 # make sure files are really there before we replace existing
 vecho "Flushing cache..."
 sync
@@ -231,18 +246,7 @@ sync
 vecho "Replacing existing files..."
 mkdir -p "$destdir"/.old || die "Failed to create $destdir/.old"
 
-# do we want keep existing syslinux.cfg?
-tomove="boot apks .alpine-release"
-if [ -n "$force" ] || ! [ -e "$destdir"/syslinux.cfg ]; then
-	tomove="$tomove syslinux.cfg"
-	# update syslinux.cfg unless device is on usb bus
-	# this is so we can boot from CF's and harddisk 
-	if ! on_usb_bus $parent_dev; then
-		vecho "Updating syslinux.cfg to use $dest"
-		sed -i -e "s/usbdisk/${dest##*/}/g" \
-			"$destdir"/.new/syslinux.cfg
-	fi
-fi
+tomove="boot apks syslinux.cfg .alpine-release"
 
 # move current files to .old
 for i in $tomove; do
@@ -251,14 +255,29 @@ for i in $tomove; do
 	fi
 done
 
+# keep any existing syslinux.cfg
+if [ -e "$destdir"/.old/$syslinux_cfg ]; then
+	mv "$destdir"/.old/$syslinux_cfg "$destdir"/.new/$syslinux_cfg
+elif [ -e "$destdir"/.old/syslinux.cfg ] \
+		&& [ -e "$destdir"/.new/boot/syslinux/syslinux.cfg ]; then
+	echo "Warning: moving syslinux.cfg to boot/syslinux/syslinux.cfg" >&2
+	mv "$destdir"/.old/syslinux.cfg "$destdir"/.new/boot/syslinux
+	if [ -z "$syslinux" ]; then
+		echo "         You might need run: syslinux $dest" >&2
+	fi
+fi
+
 # move .new to current
 for i in $tomove; do
-	mv "$destdir"/.new/$i "$destdir"/ || die "Failed to move $destdir/.new/ to $destdir"
+	if [ -e "$destdir"/.new/$i ]; then
+		mv "$destdir"/.new/$i "$destdir"/ \
+			|| die "Failed to move $destdir/.new/ to $destdir"
+	fi
 done
 
 if [ -n "$replace_alpine_dev" -o -z "$upgrade" ] && [ -n "$UUID" ]; then
 	sed -i -e "s/alpine_dev=[^ \t:]\+/alpine_dev=UUID=$UUID/" \
-		"$destdir"/syslinux.cfg
+		"$destdir"/$syslinux_cfg
 fi
 
 # cleanup
-- 
1.8.4.2