From 45cbea6a95230337c8eb2804ebd001706fa3c4c6 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Thu, 5 Nov 2009 04:15:10 +0000 Subject: Bug #268961: kpartx fails on extended partitions, referencing the wrong parent device and offset. Package-Manager: portage-2.2_rc48/cvs/Linux x86_64 --- sys-fs/multipath-tools/ChangeLog | 10 ++- sys-fs/multipath-tools/Manifest | 14 +--- ...tipath-tools-0.4.8-kparted-ext-partitions.patch | 28 ++++++++ .../multipath-tools-0.4.8-r2.ebuild | 83 ++++++++++++++++++++++ 4 files changed, 123 insertions(+), 12 deletions(-) create mode 100644 sys-fs/multipath-tools/files/multipath-tools-0.4.8-kparted-ext-partitions.patch create mode 100644 sys-fs/multipath-tools/multipath-tools-0.4.8-r2.ebuild (limited to 'sys-fs/multipath-tools') diff --git a/sys-fs/multipath-tools/ChangeLog b/sys-fs/multipath-tools/ChangeLog index 8cf89abeedc7..72af3605cc4d 100644 --- a/sys-fs/multipath-tools/ChangeLog +++ b/sys-fs/multipath-tools/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sys-fs/multipath-tools # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/multipath-tools/ChangeLog,v 1.31 2009/11/04 11:11:03 maekke Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-fs/multipath-tools/ChangeLog,v 1.32 2009/11/05 04:15:09 robbat2 Exp $ + +*multipath-tools-0.4.8-r2 (05 Nov 2009) + + 05 Nov 2009; Robin H. Johnson + +multipath-tools-0.4.8-r2.ebuild, + +files/multipath-tools-0.4.8-kparted-ext-partitions.patch: + Bug #268961: kpartx fails on extended partitions, referencing the wrong + parent device and offset. 04 Nov 2009; Markus Meier multipath-tools-0.4.8-r1.ebuild: diff --git a/sys-fs/multipath-tools/Manifest b/sys-fs/multipath-tools/Manifest index 05bb5cbded9f..c63bd16f1ccd 100644 --- a/sys-fs/multipath-tools/Manifest +++ b/sys-fs/multipath-tools/Manifest @@ -1,6 +1,3 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - AUX init.d-multipath 676 RMD160 88fc59447975de5728499c9946b63c1f17f7d345 SHA1 27997c9285ebddebcfbdf2425a0b5e73aa1c4f7c SHA256 3555b42a7da9cc8d976b51a8371ba00bdd04f9ed855cf740080a8ce620ca23af AUX init.d-multipath-0.4.8-r1 990 RMD160 7ae4a8decafaa6fe226a37b658e7e88a9be04aea SHA1 4af4d8242116835eeb4627eb10087b3e1b3eb3e2 SHA256 4b6e4d09828c58fbe7394c33d7950a54ecd2ae48064594e2117516367119f677 AUX multipath-start.sh 763 RMD160 ed533183995bdd24c7f0118c2bc7a25ad9c064b3 SHA1 e571a7e60587df14960db6d0c327730532ef3b73 SHA256 523398049d7c2f640355d7552c2fefe064b9026f8796e4ffe8b71acdca80a01c @@ -8,6 +5,7 @@ AUX multipath-stop.sh 527 RMD160 d13470e422342833aa4ce05511d67bd984088cf0 SHA1 2 AUX multipath-tools-0.4.7-build.patch 5389 RMD160 aedc8321511402f951a9bf8534f7d82ec718f7b8 SHA1 6209e90c5964e030f15fc8c9474032bc1965d4bc SHA256 f03657968ce0db5b7502f1eba89570a9ec38396939d234aa08972e3906174fe0 AUX multipath-tools-0.4.7-udev-rules.patch 1927 RMD160 3fd2ff93da07a6446fe9cdae6a5097e971a6710b SHA1 da769d174673f7ac136239b2ca71b17f968a893d SHA256 85dedab1da1899f55aa747f141224b6211694dee7a659245981919745f064293 AUX multipath-tools-0.4.8-build.patch 9529 RMD160 a7cfcbe99242de7de1281ba4c525e35ae36b1118 SHA1 3c78a5cd3e8752b00548edecff7a4d391ed5dd77 SHA256 e2f81548ff91d53f93dceeb8a4bd5a0f17f206996a797b39380733c0a319b5d8 +AUX multipath-tools-0.4.8-kparted-ext-partitions.patch 1046 RMD160 57b30b9299aa9f65f32970ba3ce6fd3f809844f5 SHA1 f32a4349fa1dacd1a2b734d98328d44801c2795b SHA256 4cd2e75782dbaba715b85ef1ececdc130e24d7497897ceea9802c779e79c1c73 AUX multipath-tools-0.4.8-r1-kpartx.patch 7076 RMD160 a5933b1a143fb7817e991a4a26d096259d7da534 SHA1 a1c18e52e36ab700c4a51dfe6817e7720d630c66 SHA256 0de7a21f1be7eba1ff389203e24c64b28d59be645e752de56c06d00275e0b703 AUX multipath-tools-0.4.8-socket-cve-2009-0115.patch 848 RMD160 4e4298b87c60546b0d9ffad54f2070f386e34625 SHA1 2dbc4afd69df4d5227d9090e00e5b7d041eb1ae9 SHA256 2ed8234f7d37fbc4cd77dcf77e71de3bdbcca2bef6726e1f1a99d46878ac3a04 AUX multipath-tools-0.4.8-udev-scsi_id-changes.patch 4125 RMD160 e7f6feca014bf462c0580caabedc73152e423e3c SHA1 bd8b5f30b0cbda8a3d15b3a2383812d58a5d7ced SHA256 dca166caf506ea496f7cb883a98d1b5b1c77f5a91afa343e1ddc27d2a89ef0e3 @@ -17,13 +15,7 @@ DIST multipath-tools-0.4.8.tar.bz2 160706 RMD160 18a6f2c8180516c67bc7c6341332182 EBUILD multipath-tools-0.4.7-r1.ebuild 1624 RMD160 d57ed47bf52f1943db5010bbd959097ad65c4d5c SHA1 66b461c473d26be477918eed3bb63be66e3893b5 SHA256 e9ce5c4681dfe45848ff222c36e5ec38fb01abfe3ef1120396820a07835fd59d EBUILD multipath-tools-0.4.7-r2.ebuild 1666 RMD160 cb1022eff5a6e32af02f73ee07de3b20482c978d SHA1 77f0adf406a16412679fc0b8258411466785c318 SHA256 c918d16867c229178ffdae654cd56566b29d19b53335ab40f73c13d20e7b7c83 EBUILD multipath-tools-0.4.8-r1.ebuild 2796 RMD160 f9b332ea9a45b8fea75e3ac9c9ec581b08d28773 SHA1 0c8bdae7ba87a25b7c54265b23ff9eb9b1368d73 SHA256 df42f6ae6ee156fa2de2569cfeb6bc50940647b5591a688940ad88c5aaa7f54e +EBUILD multipath-tools-0.4.8-r2.ebuild 2902 RMD160 dd55dad3a0abd16401edd2cdf3e3e7c5ae27aea1 SHA1 b55f1edec2233062d5c649e7e2adbca93e1e1053 SHA256 4e3d1179309d6f05709d7692ea618c8c70a7c9f4c880d33cd3062aae0453d2b0 EBUILD multipath-tools-0.4.8.ebuild 2353 RMD160 3d9fa33afadf53d9ae77caadecdbf4bdaca5cae8 SHA1 457961dddf7f3312bb71c6d237b23294f6b19c1b SHA256 b72c469e490c78138c0b1d147b19dfa8679a3746bb3bf984673c3ebeda421793 -MISC ChangeLog 5478 RMD160 0e61fbfcd93abc3c6d932121f9fadf0bb16f08eb SHA1 5a0866fd2d3aaf3aeaeda97253e899d84654fc66 SHA256 cfeb75cf6e9b05e25d80c1260ad2b70ab681c24893aa56fe2221d35bcd2ff99f +MISC ChangeLog 5773 RMD160 ffb8331724d0d01ed1a6f831db5fbea5b4834ea7 SHA1 1afebeaa90812eb71d85b7c17141cd36a822b94d SHA256 42fc936db26137ea72262b49665c38d64ab2d586c1b631939d5b4114896f5a20 MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.11 (GNU/Linux) - -iEYEARECAAYFAkrxYWAACgkQkKaRLQcq0GJuigCfbW/vCCp96g1kZf5y4JlLg2bP -8eoAn08nVdHbc2/gckdE9Kz2EGEInFrE -=6v0A ------END PGP SIGNATURE----- diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.4.8-kparted-ext-partitions.patch b/sys-fs/multipath-tools/files/multipath-tools-0.4.8-kparted-ext-partitions.patch new file mode 100644 index 000000000000..3f70fd70e4c3 --- /dev/null +++ b/sys-fs/multipath-tools/files/multipath-tools-0.4.8-kparted-ext-partitions.patch @@ -0,0 +1,28 @@ +From c421c9282791696264d1333fb2552835140354c3 Mon Sep 17 00:00:00 2001 +From: Robin H. Johnson +Date: Thu, 5 Nov 2009 03:44:12 +0000 +Subject: [PATCH] kpartx: Fix broken calculation of extended partitions that caused random devices to be used instead of the correct parent device. + +Signed-off-by: Robin H. Johnson +--- + kpartx/dos.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/kpartx/dos.c b/kpartx/dos.c +index 1691105..317fc56 100644 +--- a/kpartx/dos.c ++++ b/kpartx/dos.c +@@ -53,7 +53,9 @@ read_extended_partition(int fd, struct partition *ep, int en, + if (n < ns) { + sp[n].start = here + le32_to_cpu(p.start_sect); + sp[n].size = le32_to_cpu(p.nr_sects); +- sp[n].container = en + 1; ++ // This line seems to have no understandable ++ // purpose, and causes the wrong device to be used ++ //sp[n].container = en + 1; + n++; + } else { + fprintf(stderr, +-- +1.6.4 + diff --git a/sys-fs/multipath-tools/multipath-tools-0.4.8-r2.ebuild b/sys-fs/multipath-tools/multipath-tools-0.4.8-r2.ebuild new file mode 100644 index 000000000000..1592368f60e9 --- /dev/null +++ b/sys-fs/multipath-tools/multipath-tools-0.4.8-r2.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/multipath-tools/multipath-tools-0.4.8-r2.ebuild,v 1.1 2009/11/05 04:15:09 robbat2 Exp $ + +EAPI=2 +inherit eutils toolchain-funcs + +DESCRIPTION="Device mapper target autoconfig" +HOMEPAGE="http://christophe.varoqui.free.fr/" +SRC_URI="http://christophe.varoqui.free.fr/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" +IUSE="" + +RDEPEND="|| ( + >=sys-fs/lvm2-2.02.45 + >=sys-fs/device-mapper-1.00.19-r1 + ) + >=sys-fs/udev-124 + sys-fs/sysfsutils + dev-libs/libaio" +DEPEND="${RDEPEND}" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-0.4.8-build.patch + epatch "${FILESDIR}"/${PN}-0.4.8-udev-scsi_id-changes.patch + # Patch per upstream tree for 1GiB limit of kpartx + epatch "${FILESDIR}"/${PN}-0.4.8-r1-kpartx.patch + # CVE-2009-0115, world writable socket + epatch "${FILESDIR}"/${PN}-0.4.8-socket-cve-2009-0115.patch + # kpartx fails on extended partitions + epatch "${FILESDIR}"/${PN}-0.4.8-kparted-ext-partitions.patch +} + +src_compile() { + # The -j1 is NOT a joke. The 0.4.8-era upstream code rebuilds several object + # files with different compiler defines. The upstream git, as yet unreleased + # moves to proper automake, but it's a large jump and is not being + # backported to 0.4.8. + emake -j1 CC="$(tc-getCC)" || die "emake failed" +} + +src_install() { + dodir /sbin /usr/share/man/man8 + make DESTDIR="${D}" install || die "install failed" + + insinto /etc + newins "${S}"/multipath.conf.annotated multipath.conf + fperms 644 /etc/udev/rules.d/65-multipath.rules + fperms 644 /etc/udev/rules.d/66-kpartx.rules + # This is the monitoring daemon + newinitd "${FILESDIR}"/rc-multipathd multipathd + # This is the init script that fires the multipath addon for baselayout2 + newinitd "${FILESDIR}"/init.d-multipath-0.4.8-r1 multipath + # Handle early-boot startup as well as shutdown of multipath devices + insinto /lib/rcscripts/addons + doins "${FILESDIR}"/multipath-start.sh + doins "${FILESDIR}"/multipath-stop.sh + + dodoc multipath.conf.* + dodoc AUTHOR ChangeLog FAQ README TODO + docinto kpartx; dodoc kpartx/ChangeLog kpartx/README +} + +pkg_preinst() { + # The dev.d script was previously wrong and is now removed (the udev rules + # file does the job instead), but it won't be removed from live systems due + # to cfgprotect. + # This should help out a little... + if [[ -e ${ROOT}/etc/dev.d/block/multipath.dev ]] ; then + mkdir -p "${D}"/etc/dev.d/block + echo "# Please delete this file. It is obsoleted by /etc/udev/rules.d/65-multipath.rules" \ + > "${D}"/etc/dev.d/block/multipath.dev + fi +} +pkg_postinst() { + elog "If you need multipath on your system, you should ensure that a" + elog "'multipath' entry is present in your RC_VOLUME_ORDER variable!" + elog "If you use baselayout2, you must add 'multipath' into" + elog "your boot runlevel!" +} -- cgit v1.2.3-65-gdbad