public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/scarabeus:master commit in: sys-boot/grub/, profiles/updates/
@ 2011-06-08 22:22 Tomas Chvatal
  0 siblings, 0 replies; only message in thread
From: Tomas Chvatal @ 2011-06-08 22:22 UTC (permalink / raw
  To: gentoo-commits

commit:     a7e7d20e08041f409c67795e3e51091802b15d5c
Author:     Tomas Chvatal <scarabeus <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  8 22:20:17 2011 +0000
Commit:     Tomas Chvatal <scarabeus <AT> gentoo <DOT> org>
CommitDate: Wed Jun  8 22:20:17 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/scarabeus.git;a=commit;h=a7e7d20e

[sys-boot/grub] fully support side-by-side install with old grub.

---
 profiles/updates/2Q-2011       |    1 +
 sys-boot/grub/Manifest         |    4 +-
 sys-boot/grub/grub-1.99.ebuild |   76 ++++++++++++++++++++++++++++++++--------
 sys-boot/grub/grub-9999.ebuild |   76 ++++++++++++++++++++++++++++++++--------
 4 files changed, 125 insertions(+), 32 deletions(-)

diff --git a/profiles/updates/2Q-2011 b/profiles/updates/2Q-2011
new file mode 100644
index 0000000..28c4b75
--- /dev/null
+++ b/profiles/updates/2Q-2011
@@ -0,0 +1 @@
+slotmove >=sys-boot/grub-1.99 0 2

diff --git a/sys-boot/grub/Manifest b/sys-boot/grub/Manifest
index d06afcf..9f6ccf6 100644
--- a/sys-boot/grub/Manifest
+++ b/sys-boot/grub/Manifest
@@ -1,5 +1,5 @@
 AUX grub.default 1127 RMD160 a884e842cb203687cac4cac6551b0feed58d3b7a SHA1 5878147845b5d4b4aac34ce046ead60b93c3170c SHA256 32664f2e0bdd05cf9579f8e098aa0add76ef7bf7b37eb103c6d0f625204f44d3
 DIST grub-1.99.tar.xz 2639224 RMD160 d59a47fa40b2be0d5ea5b2b00ff5538cfa147747 SHA1 a5ae9558f30ce7757a76aa130088b053a87e2fb6 SHA256 f308148d4c83c6f16a73b58a0cd39381656edb740929028cae7ad5f0d651021b
-EBUILD grub-1.99.ebuild 6407 RMD160 62d79889abf49dc4b1b78591479c7d7976ce1f7d SHA1 2d9b795313b53f5d0c65786b1526df79ff459ac0 SHA256 d4b4f6ce1b140807bf1850df16855a1e5fd0b187b5dd0d93f2932fca81d9af63
-EBUILD grub-9999.ebuild 6407 RMD160 62d79889abf49dc4b1b78591479c7d7976ce1f7d SHA1 2d9b795313b53f5d0c65786b1526df79ff459ac0 SHA256 d4b4f6ce1b140807bf1850df16855a1e5fd0b187b5dd0d93f2932fca81d9af63
+EBUILD grub-1.99.ebuild 7683 RMD160 586653c6286ea53086b11dfe663a5052dd2a78c1 SHA1 77ac581dc7e23d937ff37308faa2d226f8a6fe8c SHA256 022b97492e4b2b1cace0f853e87b8282a2e6cdfe19e0d469836b400c0fd9cea7
+EBUILD grub-9999.ebuild 7683 RMD160 586653c6286ea53086b11dfe663a5052dd2a78c1 SHA1 77ac581dc7e23d937ff37308faa2d226f8a6fe8c SHA256 022b97492e4b2b1cace0f853e87b8282a2e6cdfe19e0d469836b400c0fd9cea7
 MISC metadata.xml 264 RMD160 3cb995676f964b9637fbfc0027a81b9409802608 SHA1 c4d35e3a71c545cdf1aae525de803126bf54f596 SHA256 9bd1ce830cf1b821978ab90c81b2e369177a8d7c1bfe2dd2868419872c097f64

diff --git a/sys-boot/grub/grub-1.99.ebuild b/sys-boot/grub/grub-1.99.ebuild
index 32ce10f..c229a4c 100644
--- a/sys-boot/grub/grub-1.99.ebuild
+++ b/sys-boot/grub/grub-1.99.ebuild
@@ -22,7 +22,7 @@ DESCRIPTION="GNU GRUB boot loader"
 HOMEPAGE="http://www.gnu.org/software/grub/"
 
 LICENSE="GPL-3"
-SLOT="0"
+SLOT="2"
 [[ ${PV} != "9999" ]] && KEYWORDS="~amd64 ~x86 ~mips ~ppc ~ppc64"
 IUSE="custom-cflags debug device-mapper nls static sdl truetype"
 
@@ -63,13 +63,22 @@ else
 	DEPEND+=" app-arch/xz-utils"
 fi
 
-export STRIP_MASK="*/grub/*/*.mod"
+export STRIP_MASK="*/grub/*/*.{mod,img}a"
 QA_EXECSTACK="
-	sbin/grub-probe
-	sbin/grub-setup
-	sbin/grub-mkdevicemap
-	bin/grub-script-check
-	bin/grub-fstest
+	lib64/grub/*/setjmp.mod
+	lib64/grub/*/kernel.img
+	sbin/grub2-probe
+	sbin/grub2-setup
+	sbin/grub2-mkdevicemap
+	bin/grub2-script-check
+	bin/grub2-fstest
+	bin/grub2-mklayout
+	bin/grub2-menulst2cfg
+	bin/grub2-mkrelpath
+	bin/grub2-mkpasswd-pbkdf2
+	bin/grub2-mkfont
+	bin/grub2-editenv
+	bin/grub2-mkimage
 "
 
 grub_run_phase() {
@@ -90,6 +99,27 @@ grub_run_phase() {
 	popd > /dev/null || die
 }
 
+grub_rename_files() {
+	# specifies if we do sed work too
+	local deep=$1
+	[[ ${deep} == deep ]] && shift || deep=""
+	local path=$@
+
+	[[ -z ${path} ]] && die "${FUNCNAME}: Path is undefined"
+
+	pushd "${path}" > /dev/null
+	for i in grub*; do
+		echo ">>> Slotting \"${path}/${i}\" to \"${path}/${i/grub/grub2}\""
+		if [[ -n $deep ]]; then
+			sed -i \
+				-e 's:\([[:space:]]\+\)grub-:\1grub2-:g' \
+				${i} || die
+		fi
+		mv ${i} ${i/grub/grub2} || die
+	done
+	popd > /dev/null
+}
+
 grub_src_configure() {
 	local platform=$1
 	local target
@@ -189,6 +219,22 @@ src_install() {
 		grub_run_phase ${FUNCNAME} ${i}
 	done
 
+	# Slot all binaries/info/man to state grub2-* instead of grub-*.
+	# Can this be done better?
+	grub_rename_files "${ED}"/sbin/
+	grub_rename_files "${ED}"/bin/
+	grub_rename_files deep "${ED}"/usr/share/info/
+	grub_rename_files deep "${ED}"/usr/share/man/man1/
+	grub_rename_files deep "${ED}"/usr/share/man/man8/
+	# Rename direct binaries calls in the bash scripts provided by grub
+	dosym /lib64/grub/grub-mkconfig_lib /lib64/grub/grub2-mkconfig_lib
+	sed -i \
+		-e 's:echo grub-:echo grub2-:' \
+		"${ED}"/{sbin,bin,lib64/grub}/*
+	sed -i \
+		-e 's:grub-:grub2-:'
+		"${ED}"/etc/grub.d/*
+
 	# can't be in docs array as we use defualt_src_install in different builddir
 	dodoc AUTHORS ChangeLog NEWS README THANKS TODO
 	insinto /etc/default
@@ -214,9 +260,9 @@ setup_boot_dir() {
 		# grub1 around. Lets try to generate grub.cfg from it so user
 		# does not loose any stuff when rebooting.
 		# NOTE: in long term he still NEEDS to migrate to grub.d stuff.
-		einfo "Running: grub-menulst2cfg '${dir}/menu.lst' '${dir}/grub.cfg'"
-		grub-menulst2cfg "${dir}/menu.lst" "${dir}/grub.cfg" || \
-			ewarn "Running grub-menulst2cfg failed!"
+		einfo "Running: grub2-menulst2cfg '${dir}/menu.lst' '${dir}/grub.cfg'"
+		grub2-menulst2cfg "${dir}/menu.lst" "${dir}/grub.cfg" || \
+			ewarn "Running grub2-menulst2cfg failed!"
 
 		einfo "Even if we just created configuration for your grub-2 using old"
 		einfo "grub-1 configuration file you should migrate to use new style"
@@ -225,15 +271,15 @@ setup_boot_dir() {
 
 	else
 		# we need to refresh the grub.cfg everytime just to play it safe
-		einfo "Running: grub-mkconfig -o '${dir}/grub.cfg'"
-		grub-mkconfig -o "${dir}/grub.cfg" || \
-			ewarn "Running grub-mkconfig failed! Check your configuration files!"
+		einfo "Running: grub2-mkconfig -o '${dir}/grub.cfg'"
+		grub2-mkconfig -o "${dir}/grub.cfg" || \
+			ewarn "Running grub2-mkconfig failed! Check your configuration files!"
 	fi
 
-	elog "Remember to run \"grub-mkconfig -o '${dir}/grub.cfg'\" every time"
+	elog "Remember to run \"grub2-mkconfig -o '${dir}/grub.cfg'\" every time"
 	elog "you update the configuration files!"
 
-	elog "Remember to run grub-install to install your grub every time"
+	elog "Remember to run grub2-install to install your grub every time"
 	elog "you update this package!"
 }
 

diff --git a/sys-boot/grub/grub-9999.ebuild b/sys-boot/grub/grub-9999.ebuild
index 32ce10f..c229a4c 100644
--- a/sys-boot/grub/grub-9999.ebuild
+++ b/sys-boot/grub/grub-9999.ebuild
@@ -22,7 +22,7 @@ DESCRIPTION="GNU GRUB boot loader"
 HOMEPAGE="http://www.gnu.org/software/grub/"
 
 LICENSE="GPL-3"
-SLOT="0"
+SLOT="2"
 [[ ${PV} != "9999" ]] && KEYWORDS="~amd64 ~x86 ~mips ~ppc ~ppc64"
 IUSE="custom-cflags debug device-mapper nls static sdl truetype"
 
@@ -63,13 +63,22 @@ else
 	DEPEND+=" app-arch/xz-utils"
 fi
 
-export STRIP_MASK="*/grub/*/*.mod"
+export STRIP_MASK="*/grub/*/*.{mod,img}a"
 QA_EXECSTACK="
-	sbin/grub-probe
-	sbin/grub-setup
-	sbin/grub-mkdevicemap
-	bin/grub-script-check
-	bin/grub-fstest
+	lib64/grub/*/setjmp.mod
+	lib64/grub/*/kernel.img
+	sbin/grub2-probe
+	sbin/grub2-setup
+	sbin/grub2-mkdevicemap
+	bin/grub2-script-check
+	bin/grub2-fstest
+	bin/grub2-mklayout
+	bin/grub2-menulst2cfg
+	bin/grub2-mkrelpath
+	bin/grub2-mkpasswd-pbkdf2
+	bin/grub2-mkfont
+	bin/grub2-editenv
+	bin/grub2-mkimage
 "
 
 grub_run_phase() {
@@ -90,6 +99,27 @@ grub_run_phase() {
 	popd > /dev/null || die
 }
 
+grub_rename_files() {
+	# specifies if we do sed work too
+	local deep=$1
+	[[ ${deep} == deep ]] && shift || deep=""
+	local path=$@
+
+	[[ -z ${path} ]] && die "${FUNCNAME}: Path is undefined"
+
+	pushd "${path}" > /dev/null
+	for i in grub*; do
+		echo ">>> Slotting \"${path}/${i}\" to \"${path}/${i/grub/grub2}\""
+		if [[ -n $deep ]]; then
+			sed -i \
+				-e 's:\([[:space:]]\+\)grub-:\1grub2-:g' \
+				${i} || die
+		fi
+		mv ${i} ${i/grub/grub2} || die
+	done
+	popd > /dev/null
+}
+
 grub_src_configure() {
 	local platform=$1
 	local target
@@ -189,6 +219,22 @@ src_install() {
 		grub_run_phase ${FUNCNAME} ${i}
 	done
 
+	# Slot all binaries/info/man to state grub2-* instead of grub-*.
+	# Can this be done better?
+	grub_rename_files "${ED}"/sbin/
+	grub_rename_files "${ED}"/bin/
+	grub_rename_files deep "${ED}"/usr/share/info/
+	grub_rename_files deep "${ED}"/usr/share/man/man1/
+	grub_rename_files deep "${ED}"/usr/share/man/man8/
+	# Rename direct binaries calls in the bash scripts provided by grub
+	dosym /lib64/grub/grub-mkconfig_lib /lib64/grub/grub2-mkconfig_lib
+	sed -i \
+		-e 's:echo grub-:echo grub2-:' \
+		"${ED}"/{sbin,bin,lib64/grub}/*
+	sed -i \
+		-e 's:grub-:grub2-:'
+		"${ED}"/etc/grub.d/*
+
 	# can't be in docs array as we use defualt_src_install in different builddir
 	dodoc AUTHORS ChangeLog NEWS README THANKS TODO
 	insinto /etc/default
@@ -214,9 +260,9 @@ setup_boot_dir() {
 		# grub1 around. Lets try to generate grub.cfg from it so user
 		# does not loose any stuff when rebooting.
 		# NOTE: in long term he still NEEDS to migrate to grub.d stuff.
-		einfo "Running: grub-menulst2cfg '${dir}/menu.lst' '${dir}/grub.cfg'"
-		grub-menulst2cfg "${dir}/menu.lst" "${dir}/grub.cfg" || \
-			ewarn "Running grub-menulst2cfg failed!"
+		einfo "Running: grub2-menulst2cfg '${dir}/menu.lst' '${dir}/grub.cfg'"
+		grub2-menulst2cfg "${dir}/menu.lst" "${dir}/grub.cfg" || \
+			ewarn "Running grub2-menulst2cfg failed!"
 
 		einfo "Even if we just created configuration for your grub-2 using old"
 		einfo "grub-1 configuration file you should migrate to use new style"
@@ -225,15 +271,15 @@ setup_boot_dir() {
 
 	else
 		# we need to refresh the grub.cfg everytime just to play it safe
-		einfo "Running: grub-mkconfig -o '${dir}/grub.cfg'"
-		grub-mkconfig -o "${dir}/grub.cfg" || \
-			ewarn "Running grub-mkconfig failed! Check your configuration files!"
+		einfo "Running: grub2-mkconfig -o '${dir}/grub.cfg'"
+		grub2-mkconfig -o "${dir}/grub.cfg" || \
+			ewarn "Running grub2-mkconfig failed! Check your configuration files!"
 	fi
 
-	elog "Remember to run \"grub-mkconfig -o '${dir}/grub.cfg'\" every time"
+	elog "Remember to run \"grub2-mkconfig -o '${dir}/grub.cfg'\" every time"
 	elog "you update the configuration files!"
 
-	elog "Remember to run grub-install to install your grub every time"
+	elog "Remember to run grub2-install to install your grub every time"
 	elog "you update this package!"
 }
 



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-06-08 22:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-08 22:22 [gentoo-commits] dev/scarabeus:master commit in: sys-boot/grub/, profiles/updates/ Tomas Chvatal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox