summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2011-06-09 00:20:17 +0200
committerTomas Chvatal <scarabeus@gentoo.org>2011-06-09 00:20:17 +0200
commita7e7d20e08041f409c67795e3e51091802b15d5c (patch)
tree1803ffe47f96d82f8919b48665ca92e3ca4a9450
parent[sys-boot/grub] Update the elog informations to be more clear. (diff)
downloadscarabeus-a7e7d20e08041f409c67795e3e51091802b15d5c.tar.gz
scarabeus-a7e7d20e08041f409c67795e3e51091802b15d5c.tar.bz2
scarabeus-a7e7d20e08041f409c67795e3e51091802b15d5c.zip
[sys-boot/grub] fully support side-by-side install with old grub.
-rw-r--r--profiles/updates/2Q-20111
-rw-r--r--sys-boot/grub/Manifest4
-rw-r--r--sys-boot/grub/grub-1.99.ebuild76
-rw-r--r--sys-boot/grub/grub-9999.ebuild76
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!"
}