summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-vcs/darcs')
-rw-r--r--dev-vcs/darcs/ChangeLog15
-rw-r--r--dev-vcs/darcs/Manifest10
-rw-r--r--dev-vcs/darcs/darcs-2.4.4-r1.ebuild135
-rw-r--r--dev-vcs/darcs/files/darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch38
4 files changed, 193 insertions, 5 deletions
diff --git a/dev-vcs/darcs/ChangeLog b/dev-vcs/darcs/ChangeLog
index af6b76b7d9ee..d01487395f17 100644
--- a/dev-vcs/darcs/ChangeLog
+++ b/dev-vcs/darcs/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for dev-vcs/darcs
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-vcs/darcs/ChangeLog,v 1.5 2010/06/17 06:33:35 kolmodin Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/darcs/ChangeLog,v 1.6 2010/06/28 18:53:32 kolmodin Exp $
+
+*darcs-2.4.4-r1 (28 Jun 2010)
+
+ 28 Jun 2010; Lennart Kolmodin <kolmodin@gentoo.org>
+ +darcs-2.4.4-r1.ebuild,
+ +files/darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch:
+ Attempt to solve issue1770 ( http://bugs.darcs.net/issue1770 ) which stops
+ users from fetching the Gentoo Haskell overlay. The patch is taken from
+ darcs HEAD and is written by Dmitry Kurochkin
+ <dmitry.kurochkin@gmail.com>.
+
+ Also, remove test case that required hlint. If the user would have a
+ recent version of hlint installed it would break the tests. Fix by slyfox.
16 Jun 2010; Lennart Kolmodin <kolmodin@gentoo.org>
-darcs-1.1.0_pre1.ebuild, darcs-2.1.0-r1.ebuild, darcs-2.2.1.ebuild,
diff --git a/dev-vcs/darcs/Manifest b/dev-vcs/darcs/Manifest
index 31edfedae8a3..259537501b40 100644
--- a/dev-vcs/darcs/Manifest
+++ b/dev-vcs/darcs/Manifest
@@ -5,6 +5,7 @@ AUX darcs-1.0.8-ghc66.patch 3057 RMD160 0eb34da97317b5ae24800ae6b026d3a8acc990b1
AUX darcs-1.0.9-bashcomp.patch 510 RMD160 73888c758f4a2ac93b83229115d23599162c0b15 SHA1 1abf5c0477169eb0109a0dd7ecfb2c38dfee15ff SHA256 39a7e531f68ee4b71958d52557e6c6ace0c7717d546dcddccc4a5e7fb5daeff6
AUX darcs-1.1.0pre1-ghc68.patch 1548 RMD160 bde8493cae0dd2fa9e21367ec5322252780209d5 SHA1 9f64935e8b4a44cab474352a0b8090192b3052e0 SHA256 252199c644163c24c09504c72a34cf750d065fab322a2c17bf4016d83b1b826e
AUX darcs-2.0.2-add-dummy-base-dependency.diff 520 RMD160 b7206ef051d9be2df94d0c331dd029de6358106c SHA1 5c3dc86bcadfa51b452d0532d9cd45efec71a3a7 SHA256 a93ffcb918456fdb1514b02e7d1a3fc9498f8505f11d5f1d03cf9acd189a78b2
+AUX darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch 1617 RMD160 6cd0fdcae04518cb8d701f0db89ce7cad4a51c61 SHA1 10cd5b15ffcb9678e0fc8700b9059244a12bf06a SHA256 9716fad28813bae04e06c8a039c9e5cb094cbd0c4907855142e14c49334d387e
DIST darcs-1.0.9.tar.gz 1059363 RMD160 3a971f778e4343d90e88f1ba8815ea3c880ac2a1 SHA1 b2d2238c01d530796c29db4b46fd4fd9c21be9b6 SHA256 f848a63363ad72d3217b1eb469c267c00ea6085a491172d385ab6eda210b30dc
DIST darcs-2.0.2.tar.gz 1800653 RMD160 e401bd2ab64e2df4c654bdc03355ce215a053195 SHA1 75a186b906ac8bbc1144c5124c215e4c57c06222 SHA256 164c87bb7e41d1e81c4423432804b634862269291fa495f25e7f67f1b95bf49e
DIST darcs-2.1.0.tar.gz 1851395 RMD160 4f0073b7a879f5e357601f92320b902098258140 SHA1 738a063e67b90f5f831b7164969f285692250cee SHA256 d5a63e62bceb45905163d508c6b25158dab6aca367015566d8c539ec37107ab4
@@ -14,13 +15,14 @@ EBUILD darcs-1.0.9.ebuild 3103 RMD160 abf5175636beace77fc07ef40caa13c45b4dd804 S
EBUILD darcs-2.0.2.ebuild 3227 RMD160 665eb7b84866fce8a99fd0c93fb4ab3d56c2db78 SHA1 b850ecc4544c59092d81a9d95daebef51af2a17f SHA256 02777ab0a8e9ccf21b1b466b7090db02b66f5da3907ca8cabd8933ffa9ada1af
EBUILD darcs-2.1.0-r1.ebuild 2781 RMD160 f99d3a9cbdb220c624cc584db85a18bc446ad1de SHA1 b1ad1aad24262319859e9d166470369bc77d1903 SHA256 5f83a97f4c43216c9c975009fb1e5c6d94ed2a2640135e6023a65108160fb811
EBUILD darcs-2.2.1.ebuild 2363 RMD160 1c4f98f7a7d5c57c5dbd9970ef40187915e7fbd4 SHA1 3603fb40c1836f75b87272460ca90495da167ef7 SHA256 ba6ed3fda9fa3fd27a029c50c93d0dfddf3933e76d4d31c9177883e787c218c7
+EBUILD darcs-2.4.4-r1.ebuild 4234 RMD160 55fac24bf7d0c6816c8b9e44bde1781bbed82d79 SHA1 1cab9673ca7547e0e749be65784579ff95354db3 SHA256 f9eb90c31ba6d8052dc241a2108cec12edbccc66e15e217531e56bd3f640905b
EBUILD darcs-2.4.4.ebuild 4054 RMD160 879d1474fb06c40ca4124816239f1a57b4aed61d SHA1 9e724b6de27a2d6928fe2c7ae94b71fb134343a2 SHA256 405b1c6af6fbc26df5099a218affcc268cc81edb452d62316e724ddcd143d17d
-MISC ChangeLog 17921 RMD160 d2faf5c020a46f0e0d52dcbd892f12901be511a4 SHA1 8a7980a8fb11d5af8d6d061d0a909d4b43dfab9e SHA256 83eb6bd6240cfc5618c7cc5d0f54f47604b7e87643a5a0f0ba43e645bca94cdd
+MISC ChangeLog 18489 RMD160 261764e614d0729f5f347f67178ac567031fc581 SHA1 ef1eba9c8c6ef9284f526f078fa6222a61e246d9 SHA256 bbec63e7da09978bd6236f64510ecc827288cfb0fbe723d7507bbccb6ab4114e
MISC metadata.xml 223 RMD160 7783e6057effb8b8f0b79cffe8b557b32c633839 SHA1 7b962c77f2e38479a9d1621ec8d307ca9f761753 SHA256 1d00c8be162a6cb87b3de440b3e63e10b39c12d56e8fbfe592e75aed872b2508
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)
-iEYEARECAAYFAkwZwc8ACgkQ1n/CYbXjntK1gACfWiNAJV6oLijXBlEj5OUNLmhu
-zGYAoKm1eKpZbaJswBzlxfVtur1J7+Vb
-=ZNbk
+iEYEARECAAYFAkwo76YACgkQ1n/CYbXjntLC4gCfV7CjUYaQwKG9p1eBDyBZk8Zs
+eFEAn32HqHDew9NocTgN/1HvO34yFIBT
+=jOwn
-----END PGP SIGNATURE-----
diff --git a/dev-vcs/darcs/darcs-2.4.4-r1.ebuild b/dev-vcs/darcs/darcs-2.4.4-r1.ebuild
new file mode 100644
index 000000000000..f0c36cfb4afe
--- /dev/null
+++ b/dev-vcs/darcs/darcs-2.4.4-r1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/darcs/darcs-2.4.4-r1.ebuild,v 1.1 2010/06/28 18:53:32 kolmodin Exp $
+
+EAPI="2"
+CABAL_FEATURES="bin lib profile haddock"
+inherit haskell-cabal eutils bash-completion
+
+DESCRIPTION="a distributed, interactive, smart revision control system"
+HOMEPAGE="http://darcs.net/"
+SRC_URI="http://hackage.haskell.org/packages/archive/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="doc test"
+
+# Dependency notes:
+# 1) Use a cunning trick for hashed-storage, haskeline, regex-compat
+# where the min bound is the lowest version available.
+# 2) Do the opposite for zlib: highest not available.
+# 3) Prefer curl over HTTP since darcs uses an old version of HTTP.
+# 4) Use the same bounds for mmap as hashed-storage.
+
+COMMONDEPS=">=dev-lang/ghc-6.8
+ >=dev-haskell/hashed-storage-0.4.13
+ =dev-haskell/haskeline-0.6*
+ =dev-haskell/html-1.0*
+ =dev-haskell/mmap-0.4*
+ <dev-haskell/mtl-1.2
+ =dev-haskell/network-2.2*
+ dev-haskell/parsec:0
+ <dev-haskell/regex-compat-0.94
+ =dev-haskell/terminfo-0.3*
+ =dev-haskell/utf8-string-0.3*
+ <dev-haskell/zlib-0.6.0.0
+ net-misc/curl"
+
+DEPEND="${COMMONDEPS}
+ >=dev-haskell/cabal-1.6
+ doc? ( virtual/latex-base
+ dev-tex/latex2html )
+ test? ( dev-haskell/test-framework
+ dev-haskell/test-framework-hunit
+ dev-haskell/test-framework-quickcheck2 )
+ "
+
+# darcs also has a library version; we thus need $DEPEND
+RDEPEND="${COMMONDEPS}
+ virtual/mta"
+
+pkg_setup() {
+ if use doc && ! built_with_use -o dev-tex/latex2html png gif; then
+ eerror "Building darcs with USE=\"doc\" requires that"
+ eerror "dev-tex/latex2html is built with at least one of"
+ eerror "USE=\"png\" and USE=\"gif\"."
+ die "USE=doc requires dev-tex/latex2html with USE=\"png\" or USE=\"gif\""
+ fi
+}
+
+src_prepare() {
+ pushd "contrib"
+ epatch "${FILESDIR}/${PN}-1.0.9-bashcomp.patch"
+ popd
+
+ epatch "${FILESDIR}/${P}-issue1770-curl_multi_perform-no-running-handles.patch"
+
+ # Loosen dependency on hashed-storage
+ sed -i -e "s/hashed-storage == 0.4.13/hashed-storage == 0.4.*/" \
+ "${S}/${PN}.cabal" \
+ || die "Could not loosen deps on hashed-storage"
+
+ # hlint tests tend to break on every newly released hlint
+ rm "${S}/tests/haskell_policy.sh"
+}
+
+src_configure() {
+ # checking whether ghc supports -threaded flag
+ # Beware: http://www.haskell.org/ghc/docs/latest/html/users_guide/options-phases.html#options-linker
+ # contains: 'The ability to make a foreign call that does not block all other Haskell threads.'
+ # It might have interactivity impact.
+
+ threaded_flag=""
+ if $(ghc-getghc) --info | grep "Support SMP" | grep -q "YES"; then
+ threaded_flag="--flags=threaded"
+ einfo "$P will be built with threads support"
+ else
+ threaded_flag="--flags=-threaded"
+ einfo "$P will be built without threads support"
+ fi
+
+ # Use curl for net stuff to avoid strict version dep on HTTP and network
+ cabal_src_configure \
+ --flags=curl \
+ --flags=-http \
+ --flags=curl-pipelining \
+ --flags=color \
+ --flags=terminfo \
+ --flags=mmap \
+ $threaded_flag \
+ $(cabal_flag test)
+}
+
+src_test() {
+ # run cabal test from haskell-cabal
+ haskell-cabal_src_test || die "cabal test failed"
+
+ # run the unit tests (not part of cabal test for some reason...)
+ # breaks the cabal abstraction a bit...
+ "${S}/dist/build/unit/unit" || die "unit tests failed"
+}
+
+src_install() {
+ cabal_src_install
+ dobashcompletion "${S}/contrib/darcs_completion" "${PN}"
+
+ rm "${D}/usr/bin/unit" 2> /dev/null
+
+ # fixup perms in such an an awkward way
+ mv "${D}/usr/share/man/man1/darcs.1" "${S}/darcs.1" || die "darcs.1 not found"
+ doman "${S}/darcs.1" || die "failed to register darcs.1 as a manpage"
+
+ # if tests were enabled, make sure the unit test driver is deleted
+ rm -rf "${D}/usr/bin/unit"
+}
+
+pkg_postinst() {
+ ghc-package_pkg_postinst
+ bash-completion_pkg_postinst
+
+ ewarn "NOTE: in order for the darcs send command to work properly,"
+ ewarn "you must properly configure your mail transport agent to relay"
+ ewarn "outgoing mail. For example, if you are using ssmtp, please edit"
+ ewarn "/etc/ssmtp/ssmtp.conf with appropriate values for your site."
+}
diff --git a/dev-vcs/darcs/files/darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch b/dev-vcs/darcs/files/darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch
new file mode 100644
index 000000000000..dd61a027d4d5
--- /dev/null
+++ b/dev-vcs/darcs/files/darcs-2.4.4-issue1770-curl_multi_perform-no-running-handles.patch
@@ -0,0 +1,38 @@
+Fri Apr 16 00:47:39 CEST 2010 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
+ * Fix hscurl.c when URL is downloaded during the first call to curl_multi_perform.
+ Turns out that the first call to curl_multi_perform() can fetch the URL or
+ result in error. I can easily reproduce this using HTTP server on localhost.
+ This means that situation when running_handles is zero is valid, so remove the
+ error and handle it correctly.
+diff -rN -u old-darcs.net/src/hscurl.c new-darcs.net/src/hscurl.c
+--- old-darcs.net/src/hscurl.c 2010-06-28 19:35:56.382397912 +0200
++++ new-darcs.net/src/hscurl.c 2010-06-28 19:35:57.544398155 +0200
+@@ -19,7 +19,6 @@
+ RESULT_MULTI_INIT_FAIL,
+ RESULT_EASY_INIT_FAIL,
+ RESULT_SLIST_APPEND_FAIL,
+- RESULT_NO_RUNNING_HANDLES,
+ RESULT_MULTI_INFO_READ_FAIL,
+ RESULT_UNKNOWN_MESSAGE,
+ RESULT_FILE_OPEN_FAIL
+@@ -33,7 +32,6 @@
+ "curl_multi_init() failed",
+ "curl_easy_init() failed",
+ "curl_slist_append() failed",
+- "curl_multi_perform() - no running handles",
+ "curl_multi_info_read() failed",
+ "curl_multi_info_read() returned unknown message",
+ "fopen() failed"
+@@ -67,11 +65,9 @@
+ error = curl_multi_perform(multi, &running_handles);
+ if (error != CURLM_OK && error != CURLM_CALL_MULTI_PERFORM)
+ return curl_multi_strerror(error);
+- if (running_handles == 0)
+- return error_strings[RESULT_NO_RUNNING_HANDLES];
+
+ running_handles_last = running_handles;
+- while (1)
++ while (running_handles_last > 0)
+ {
+ while (error == CURLM_CALL_MULTI_PERFORM)
+ error = curl_multi_perform(multi, &running_handles);