From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-dev+bounces-52225-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1SbYCP-0000Bu-VX
	for garchives@archives.gentoo.org; Mon, 04 Jun 2012 14:24:02 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id B221CE0788;
	Mon,  4 Jun 2012 14:23:38 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id C87C6E0763
	for <gentoo-dev@lists.gentoo.org>; Mon,  4 Jun 2012 14:22:57 +0000 (UTC)
Received: from [192.168.4.5] (blfd-4d08fca4.pool.mediaWays.net [77.8.252.164])
	(using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	(Authenticated sender: hasufell)
	by smtp.gentoo.org (Postfix) with ESMTPSA id 29A001B4007
	for <gentoo-dev@lists.gentoo.org>; Mon,  4 Jun 2012 14:22:55 +0000 (UTC)
Message-ID: <4FCCC412.6000000@gentoo.org>
Date: Mon, 04 Jun 2012 16:20:02 +0200
From: hasufell <hasufell@gentoo.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.4) Gecko/20120502 Thunderbird/10.0.4
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
MIME-Version: 1.0
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] [PATCH vcs-snapshot] Use ${WORKDIR}/${P} rather
 than ${S} to support ${S} overrides.
References: <1338803954-3814-1-git-send-email-mgorny@gentoo.org>
In-Reply-To: <1338803954-3814-1-git-send-email-mgorny@gentoo.org>
X-Enigmail-Version: 1.3.5
X-Enigmail-Draft-Status: 513
Content-Type: multipart/mixed;
 boundary="------------060404070105040903090607"
X-Archives-Salt: 59ce7a91-327e-4ae1-b944-09a131a8d624
X-Archives-Hash: f39c971a6c2f1b903cc4cd3ca5e9fb02

This is a multi-part message in MIME format.
--------------060404070105040903090607
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 06/04/2012 11:59 AM, Micha=C5=82 G=C3=B3rny wrote:
> One could set S to work on a subtree of the tarball rather than the
> whole tarball. Considering that, it's probably better to use=20
> ${WORKDIR}/${P} rather than ${S}.
>=20
> Fixes: https://bugs.gentoo.org/show_bug.cgi?id=3D419479 ---=20
> gx86/eclass/vcs-snapshot.eclass |    5 +++-- 1 file changed, 3
> insertions(+), 2 deletions(-)
>=20
> diff --git a/gx86/eclass/vcs-snapshot.eclass
> b/gx86/eclass/vcs-snapshot.eclass index 6748360..23cd696 100644 ---
> a/gx86/eclass/vcs-snapshot.eclass +++
> b/gx86/eclass/vcs-snapshot.eclass @@ -9,7 +9,8 @@ # @DESCRIPTION: #
> This eclass provides a convenience src_unpack() which does support=20
> # working with snapshots generated by various VCS-es. It unpacks
> those -# to ${S} rather than the original directory containing
> commit id. +# to ${WORKDIR}/${P} rather than the original directory
> containing +# commit id. # # Note that this eclass handles only
> unpacking. You need to specify # SRC_URI yourself, and call any
> autoreconfiguration as necessary. @@ -41,5 +42,5 @@
> vcs-snapshot_src_unpack() {
>=20
> # github, bitbucket: username-projectname-hash # gitweb:
> projectname-tagname-hash -	mv *-*-[0-9a-f]*[0-9a-f]/ "${S}" || die=20
> +	mv *-*-[0-9a-f]*[0-9a-f]/ "${WORKDIR}"/${P} || die }

Currently that eclass does not support multiple snapshot sources/tarballs=
.

I would suggest to fix that. My proposal currently breaks 6 ebuilds
which do not follow the newly described standard.

This way you could merge data and source snapshots from vcs.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJPzMQSAAoJEFpvPKfnPDWzJdMH/AuhgbDeVdnJViP+zZNjsq4B
C2FlaPCpl3HHTrMi7HhbFmbOnZeLA3VLaffdvaPvZU0O1RxhOQPNfp4t8/E2iuHF
q9vVwQFQe19izFa7EgapD2EOUVUeaNMGoX0K2qRgtfLeBwnLWsnagMYZkV2+5skA
84vnyRYtaDEx6Z+M0UipwFnubrgmItbvX7F3XZ3omCdlSjXaRDO0sc2hqMFjeZ5P
ESGfbWxFX59ztmxBni0iSJE3NdSiYr1mjuW6eFZazIq9T6cinByXfMJgbdz7N14e
8HaSxMTc6PVWUTVbmpj3POWnZ+KCHbFze39rO5HzY4ZPMIL4xTxXAppg2FnyhF4=3D
=3DKUJi
-----END PGP SIGNATURE-----

--------------060404070105040903090607
Content-Type: text/x-patch;
 name="vcs-snapshot.eclass.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="vcs-snapshot.eclass.diff"

--- vcs-snapshot.eclass.old	2012-06-04 16:10:25.000000000 +0200
+++ vcs-snapshot.eclass	2012-06-04 16:11:16.000000000 +0200
@@ -8,8 +8,10 @@
 # @BLURB: support eclass for VCS (github, bitbucket, gitweb) snapshots
 # @DESCRIPTION:
 # This eclass provides a convenience src_unpack() which does support
-# working with snapshots generated by various VCS-es. It unpacks those
-# to ${S} rather than the original directory containing commit id.
+# working with snapshots generated by various VCS-es. It unpacks all tarballs
+# and zipballs according to their name into ${WORKDIR}/${name}
+# rather than the original directory containing commit id.
+# See example below.
 #
 # Note that this eclass handles only unpacking. You need to specify
 # SRC_URI yourself, and call any autoreconfiguration as necessary.
@@ -26,6 +28,10 @@
 # inherit autotools-utils vcs-snapshot
 #
 # SRC_URI="http://github.com/example/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+# 
+# # line above unpacks into: ${WORKDIR}/${P}
+# # SRC_URI="http://github.com/example/${PN}/tarball/v${PV} -> ${P}-src.tar.gz"
+# # would unpack into: ${WORKDIR}/${P}-src
 # @CODE
 
 case ${EAPI:-0} in
@@ -37,9 +43,21 @@
 EXPORT_FUNCTIONS src_unpack
 
 vcs-snapshot_src_unpack() {
-	default
-
 	# github, bitbucket: username-projectname-hash
 	# gitweb: projectname-tagname-hash
-	mv *-*-[0-9a-f]*[0-9a-f]/ "${S}" || die
+	local i
+	local _tmpdir=${T}/_tmp
+	mkdir "${_tmpdir}" || die
+	pushd "${_tmpdir}" > /dev/null || die
+	for i in ${A} ; do
+		unpack ${i}
+		case ${i} in
+			*.tar.gz) mv "${_tmpdir}"/*/ "${WORKDIR}"/${i%.tar.gz} || die ;;
+			*.tar.xz) mv "${_tmpdir}"/*/ "${WORKDIR}"/${i%.tar.xz} || die ;;
+			*.tar.bz2) mv "${_tmpdir}"/*/ "${WORKDIR}"/${i%.tar.bz2} || die ;;
+			*.zip) mv "${_tmpdir}"/*/ "${WORKDIR}"/${i%.zip} || die ;;
+			*) mv "${_tmpdir}"/* "${WORKDIR}"/ ;;
+		esac
+	done
+	popd > /dev/null
 }

--------------060404070105040903090607
Content-Type: text/plain;
 name="vcs-snapshot.eclass"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="vcs-snapshot.eclass"

IyBDb3B5cmlnaHQgMTk5OS0yMDEyIEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2Mgoj
ICRIZWFkZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L2VjbGFzcy92Y3Mtc25hcHNob3Qu
ZWNsYXNzLHYgMS4yIDIwMTIvMDMvMTkgMDg6NTI6NDkgbWdvcm55IEV4cCAkCgojIEBFQ0xB
U1M6IHZjcy1zbmFwc2hvdC5lY2xhc3MKIyBATUFJTlRBSU5FUjoKIyBtZ29ybnlAZ2VudG9v
Lm9yZwojIEBCTFVSQjogc3VwcG9ydCBlY2xhc3MgZm9yIFZDUyAoZ2l0aHViLCBiaXRidWNr
ZXQsIGdpdHdlYikgc25hcHNob3RzCiMgQERFU0NSSVBUSU9OOgojIFRoaXMgZWNsYXNzIHBy
b3ZpZGVzIGEgY29udmVuaWVuY2Ugc3JjX3VucGFjaygpIHdoaWNoIGRvZXMgc3VwcG9ydAoj
IHdvcmtpbmcgd2l0aCBzbmFwc2hvdHMgZ2VuZXJhdGVkIGJ5IHZhcmlvdXMgVkNTLWVzLiBJ
dCB1bnBhY2tzIGFsbCB0YXJiYWxscwojIGFuZCB6aXBiYWxscyBhY2NvcmRpbmcgdG8gdGhl
aXIgbmFtZSBpbnRvICR7V09SS0RJUn0vJHtuYW1lfQojIHJhdGhlciB0aGFuIHRoZSBvcmln
aW5hbCBkaXJlY3RvcnkgY29udGFpbmluZyBjb21taXQgaWQuCiMgU2VlIGV4YW1wbGUgYmVs
b3cuCiMKIyBOb3RlIHRoYXQgdGhpcyBlY2xhc3MgaGFuZGxlcyBvbmx5IHVucGFja2luZy4g
WW91IG5lZWQgdG8gc3BlY2lmeQojIFNSQ19VUkkgeW91cnNlbGYsIGFuZCBjYWxsIGFueSBh
dXRvcmVjb25maWd1cmF0aW9uIGFzIG5lY2Vzc2FyeS4KIyBUaGUgZXhhbXBsZSBkb2VzIHRo
YXQgdXNpbmcgYXV0b3Rvb2xzLXV0aWxzIGVjbGFzcy4KIwojIFJpZ2h0IG5vdywgdGhlIGVj
bGFzcyB3YXMgdGVzdGVkIHdpdGggZ2l0aHViLCBiaXRidWNrZXQgYW5kIGdpdHdlYgojIHNu
YXBzaG90cy4gRmVlbCBmcmVlIHRvIHJlcG9ydCBzbmFwc2hvdHRpbmcgc2VydmljZXMgd2hp
Y2ggYXJlbid0CiMgd29ya2luZy4KIyBARVhBTVBMRToKIwojIEBDT0RFCiMgRUFQST00CiMg
QVVUT1RPT0xTX0FVVE9SRUNPTkY9MQojIGluaGVyaXQgYXV0b3Rvb2xzLXV0aWxzIHZjcy1z
bmFwc2hvdAojCiMgU1JDX1VSST0iaHR0cDovL2dpdGh1Yi5jb20vZXhhbXBsZS8ke1BOfS90
YXJiYWxsL3Yke1BWfSAtPiAke1B9LnRhci5neiIKIyAKIyAjIGxpbmUgYWJvdmUgdW5wYWNr
cyBpbnRvOiAke1dPUktESVJ9LyR7UH0KIyAjIFNSQ19VUkk9Imh0dHA6Ly9naXRodWIuY29t
L2V4YW1wbGUvJHtQTn0vdGFyYmFsbC92JHtQVn0gLT4gJHtQfS1zcmMudGFyLmd6IgojICMg
d291bGQgdW5wYWNrIGludG86ICR7V09SS0RJUn0vJHtQfS1zcmMKIyBAQ09ERQoKY2FzZSAk
e0VBUEk6LTB9IGluCgkwfDEpIGRpZSAiRUFQSSAke0VBUEl9IHVuc3VwcG9ydGVkLiI7OyAj
IGRlZmF1bHQoKSwgU1JDX1VSSSBhcnJvd3MKCTJ8M3w0KSA7OwoJKikgZGllICJ2Y3Mtc25h
cHNob3QuZWNsYXNzIEFQSSBpbiBFQVBJICR7RUFQSX0gbm90IHlldCBlc3RhYmxpc2hlZC4i
CmVzYWMKCkVYUE9SVF9GVU5DVElPTlMgc3JjX3VucGFjawoKdmNzLXNuYXBzaG90X3NyY191
bnBhY2soKSB7CgkjIGdpdGh1YiwgYml0YnVja2V0OiB1c2VybmFtZS1wcm9qZWN0bmFtZS1o
YXNoCgkjIGdpdHdlYjogcHJvamVjdG5hbWUtdGFnbmFtZS1oYXNoCglsb2NhbCBpCglsb2Nh
bCBfdG1wZGlyPSR7VH0vX3RtcAoJbWtkaXIgIiR7X3RtcGRpcn0iIHx8IGRpZQoJcHVzaGQg
IiR7X3RtcGRpcn0iID4gL2Rldi9udWxsIHx8IGRpZQoJZm9yIGkgaW4gJHtBfSA7IGRvCgkJ
dW5wYWNrICR7aX0KCQljYXNlICR7aX0gaW4KCQkJKi50YXIuZ3opIG12ICIke190bXBkaXJ9
Ii8qLyAiJHtXT1JLRElSfSIvJHtpJS50YXIuZ3p9IHx8IGRpZSA7OwoJCQkqLnRhci54eikg
bXYgIiR7X3RtcGRpcn0iLyovICIke1dPUktESVJ9Ii8ke2klLnRhci54en0gfHwgZGllIDs7
CgkJCSoudGFyLmJ6MikgbXYgIiR7X3RtcGRpcn0iLyovICIke1dPUktESVJ9Ii8ke2klLnRh
ci5iejJ9IHx8IGRpZSA7OwoJCQkqLnppcCkgbXYgIiR7X3RtcGRpcn0iLyovICIke1dPUktE
SVJ9Ii8ke2klLnppcH0gfHwgZGllIDs7CgkJCSopIG12ICIke190bXBkaXJ9Ii8qICIke1dP
UktESVJ9Ii8gOzsKCQllc2FjCglkb25lCglwb3BkID4gL2Rldi9udWxsCn0K
--------------060404070105040903090607--