diff options
author | Stuart Shelton <stuart@shelton.me> | 2015-07-04 23:59:19 +0100 |
---|---|---|
committer | Stuart Shelton <stuart@shelton.me> | 2015-07-04 23:59:19 +0100 |
commit | feb0b632470cdb4b82858e9902fac7390e4183ec (patch) | |
tree | 82ae4f8e9b69cbc4542a172d319257acd164436d /dev-vcs | |
parent | Add dev-libs/openssl-1.0.2c (diff) | |
download | srcshelton-feb0b632470cdb4b82858e9902fac7390e4183ec.tar.gz srcshelton-feb0b632470cdb4b82858e9902fac7390e4183ec.tar.bz2 srcshelton-feb0b632470cdb4b82858e9902fac7390e4183ec.zip |
Add dev-vcs/cvs-1.12.13.1-r2
Diffstat (limited to 'dev-vcs')
20 files changed, 918 insertions, 0 deletions
diff --git a/dev-vcs/cvs/Manifest b/dev-vcs/cvs/Manifest index 9a611db4..3a9d1852 100644 --- a/dev-vcs/cvs/Manifest +++ b/dev-vcs/cvs/Manifest @@ -1,9 +1,32 @@ AUX cvs-1.11.23-CVE-2010-3846.patch 5663 SHA256 c6506d0a5efc7b0cab6415f26e070ec214fb9781fac8d295506f4d0825431a8f SHA512 eed761af81c9bcd3edd898559e9be25c6612bdef19984cc6380a08039525179fa34d9ade6c55c1b4f23e495156b34cafeab3e63cfd120c0e68a42aa7992e5e85 WHIRLPOOL a1b60f9d573e4bfcb1e6bcf89db210db246be6921905bea8f177b29b22282d36b7ac7a7dece7cbe0d3c32b69199fa112d9d9865692a0883f9da1b15cfa308178 AUX cvs-1.11.23-getline64.patch 826 SHA256 9604f0a5f07579a6e3fda37685be2b74cda2d621c0fd6aa04158d5107a15372a SHA512 3f90b125f9333de5e6dad9d349a3910e61917278a9751ff117efcb5cb29766ed82e1c536836477b784c953ce16ae868c035e73e105aaf056b6c93ec897f8d4e3 WHIRLPOOL 149c2f9042192a80cc12ce8910ef4af858d1221001d4ab1a4b6fecd4bc41adc631685ad372619b6829cda751424406fc5bd40d4401746e982b5afeae0a3f3842 AUX cvs-1.11.23-md5.patch 401 SHA256 e37e3cb24db16addadd36f7ef91c0bc8f2142cf2a661cbbd26ba8ec4431ddd22 SHA512 0021f2ada1cd92c68b4edabf98261afa04595c93bacf8a0ff2751870451d9118dfb64da655d7c2f6f15537acaf0478ba987ef1f199e5676c6989a35b9d518ae0 WHIRLPOOL c7c7d1ee268abd690ec8e2db864e75ed882d4d362fbedde441839c9358d0d384ec54a85e0fc3b081211dd77daf5c23b54971cd2d2c667adc02e1a24b29669ec2 +AUX cvs-1.12.12-block-requests.patch 4006 SHA256 70bbf745815d1e01582329160a10f5cdd9c11051e4e62d331686dd5124e01294 SHA512 541545ffc64c4f2303b7e8f6cae2cdff0437452e4bcf94b2149d51e43710096e17f024c1a8ed32433560ea51ecef2aba2f3e6bfaef8fa9e4ad2f2436649884d1 WHIRLPOOL 4c56980ea0d307789ace423e7fcafb86c82429f82cfbe6d873706f95e6e2554e06268540d23b9718113e5182b83b01bb22d02ae649e27feaac1dfd09b38fa892 +AUX cvs-1.12.12-cvs-custom.c 1735 SHA256 bd288a9484c4c26569a44e71f0935cf310e4b02e25e7e9ba564c9fc3f5121054 SHA512 0a5589f225b45c41d5ae0b4b6bcba37002d6a1ef9a87a7e47ffa723c87ea6b1f4f29bc7551f1d17378d6f6b5545b0734607772c386851bde1fc51b8cac712a67 WHIRLPOOL d6795d6bd7af4275385a475b936c5b1c0c0f48ef35caa10e824b14b0da475f22026d9c59d30748006f3bd81cf57e368bad3b6f1bea7bcce92350d1495dbcc775 +AUX cvs-1.12.12-cvs-gnulib-vasnprintf.patch 1092 SHA256 f38e6bbb0fd8b783b654ac775183a1cb24e3987698fdbd706a8d5fa59a45f945 SHA512 6c0be276f6e86dbe3646ada02ea57194b8c7d1e4d76c5faeb06750435599aa4125253bdf7af6232f53807977acb34aba093bc8bfa2ce98389c5ee80b2fd6e05d WHIRLPOOL 0b5dd5ee3c11fae83688d900db2ce678870c79b753c1ffde9aa11a6fe18286af7e24d57f2ce28ffcdbfb42172a0e87baed58047497248ffb1a37acca93ad716f +AUX cvs-1.12.12-cvsbug-tmpfix.patch 624 SHA256 061c26d140e1195200f1cc76217b2e7c2ff7f0c4dcbbb31124b386e8e756938e SHA512 29014631f5595dbf51a47032a19a23e545190dd8d40d77a71d363cee07a9ae38263b67db52a512436a9a7b37a7f5ff4daafa4a0a9f3c29bcfeb71ecff74408b7 WHIRLPOOL 09d53fa26159defe56cdbd414b699bd7c5be07f36b0b5addd367b393985bd7c98f14189db5b2793af0fc37d052f21af1f97c3775d46d71cebdfff15c447a9d5a +AUX cvs-1.12.12-fix-massive-leak.patch 1985 SHA256 30727f2f97164b7e71a8abaf859b2a6dea7f680cb7e97699ee1e8ca8600bd782 SHA512 c4c9026e971f3da49cefce102b57bc681427a708ec8caa185df1234fd2a95090c8dc8cbf84374a762fdef7002d658cd4b52450429664cb3a1bfbda63d31c78a7 WHIRLPOOL c669df0411348d88f140a6da8c1c7a89be835483f00308020025d027f2ad55ba463608e48e04f11689c3270c3318b2aebba828020a997c8754e9517baef3b2d2 +AUX cvs-1.12.12-getdelim.patch 559 SHA256 cc02f345d7347349df7b6fa826ef314871e5049df48e9c892db0175dbfe16cf4 SHA512 4e55f705b9fb8bc2a6c381e01c783ee4476fee8330aede6843b89c2217f8667f1e682ce098b78d3ea2d491b55227b97e07bc48173446ee8c9b86169357b03d19 WHIRLPOOL 663e4a42ac4e859acf0bde57eac5910b19e6a21a23878a03a3f56c9a5e092c81da0024a8fe519bbbdc82a528c258c5537084a4188ae127a5dcfc470a4f927216 +AUX cvs-1.12.12-hash-nameclash.patch 1015 SHA256 3a6a5bf6bd419bb8a4440f3f4f5dba770db1d06e33e0ab6d249ace490010edb4 SHA512 0c3a78d31a38fb478ee7a93b87ad9481f04d275a3b9a9820e4cdfc8f0c27516c056aa3abf5087d3ebd2938dee504d0ba9291a615b4eb33f5b66663d24a1ccbd7 WHIRLPOOL db273cd95429ad758615826cb54755b91eb2a9a56daa859e264dc46eb8ffb5f2ec0ec21f17cfe5767021827a835ed4b700b8a8f52ae6e46695b5e715979d695e +AUX cvs-1.12.12-install-sh.patch 495 SHA256 9c2fc03b42804f8edb3a5a6f9c9e80bd68924f265ce52d196c3b5c759ba42f8a SHA512 7e468d41c1eb23c0a62b605e6e48cffc004e8f386a87a9696dd73b36702c74aad529f5cba7280dee1100027b6e1e907adad257cc446ca3ad734fa40d47e4ff72 WHIRLPOOL 1eaf9e7ccab89cd0d2c95440da0454779b13d6efc4b2a773d41f58998353a2670134344d6a97379103f3ba6e8b6c96c93db0b6229821bb8c12ce037a3b7ddb64 +AUX cvs-1.12.12-mktime-x32.patch 916 SHA256 107b0adceda7c8b7b8e89604f38ea0e7a903420dc58dbf22c5eeac947d63d0e1 SHA512 4a58c0f94de8e19c2de1930b7e5e04816e79a86885c89b792616a4c43f6e12aef271005ae59ae0d5788a910ba97735ccdf35f0ef5faafc2e3c50a9858b8f6216 WHIRLPOOL 5ca4316ee5a272efabe6da249476f6f916851fa92338368616aff03f380b2cd290391faa455e914e423ce74a00122336e6bfa93236a8412c1f32103040e3038a +AUX cvs-1.12.12-openat.patch 761 SHA256 5b9fc46c2ee46d9136ddfc8d0baaac6087d8cae40fa5521815c3c2e372f25b9f SHA512 b0a7abc785169705d2f0668a8af706f93ee3eba3d050d555689577962283e54f6bd186e662b64c65f926cf72dff76a37259181338707d641ee0f20591ba62805 WHIRLPOOL 31c9eb71d9d8cf5dff05e48c054e29b720702c6c12cafd7a2dd9687578bb1c441cf5e90c355b9164dee6b14f6c5cb7a2f4ad7d9ff4831f3ce2f02f82ffd082f7 +AUX cvs-1.12.12-rcs2log-coreutils.patch 561 SHA256 0df8b6ad74b344edc7c353c4dd2cc3825db14dfb1fed20bb007f09c58f1063c8 SHA512 796d2b7ee60619878ac4baa346927ab61ad1bf7b532a63976ef4c3d352ac73c6ed47392d614d538b979936f092291e97b23c47e1f029fc87c4de0b994975fb9c WHIRLPOOL dda784cf39c8a91573dbbc663d9e167961ae8540189b7675eef21e87bda6c6de05cc272e256c3a1ba27670f2fbbc03883b2b0ce68c263584d6f00917e5c53103 +AUX cvs-1.12.13-openat.patch 761 SHA256 9edfd8671fce137462c4fb22366f4c6f8fec04b7073e3c3b8381e5b0211ab4b8 SHA512 5a61914a63cd22548796be62980f07eac9ce0a7d3c34c5faf67f341debb6b3f0480469a56bbc647b6e926f7a1b3aa3a656fbb206bec968eefbdf3119a1a2336d WHIRLPOOL 9f3ef7ec5fc0ddea215cab0995bacf120bc36d3e9485c3601d27e20b3faaa1bb13c063f96e9babc3007258a5c81643451ae69c835e72ba3bfd0c568d83ff1520 +AUX cvs-1.12.13-zlib.patch 1304 SHA256 07b3e411282ee8f218447bc862144a67144df71beaa842761012899ff5452f19 SHA512 54c9628f72bc46a200a89adfdf7aa7e20f1fd4dd037abdd828fe71f44974a85a16c31f0c840297c019062aa03ba0fd340df3595d74c070752c8e1d7e6f379eab WHIRLPOOL 0fa822c898ef5473cc8385ec44861fce673dd6d7db01aeff30660f95122fd9fcad1d89f43033b64ef2cbdfe40af9eb0ea0c8253597dd51591f839612a0e8c35b +AUX cvs-1.12.13.1-block-requests.patch 2869 SHA256 0aaba805beb3f5a9271f907ae0e5933b110156fbcca15f843a07a1bf4c72a7f3 SHA512 3dd426c3731fbd7b1426e59c09fc307c0b409cef0760e2fbe0d23461f65f5104e7facf4e76f54b91e28d6da3f9f26323f896929508318b5bb794bfda0a66fb7a WHIRLPOOL 77bd526fd9eddcbb77265abbb4765bde8844ac7561fce13bf36929201ab9d411e7dc046afc3cd80fbf3ad14a6a6308779bac97396b3a9ba5fb9e2a23301f3293 +AUX cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch 1296 SHA256 e13db2acebad3ca5be5d8e0fa97f149b0f9661e4a9a731965c8226290c6413c0 SHA512 76977eea9db07e0f9060798af80572a2364c7b56e3acea820aaa9d8554a5b45461383830f894594c11d7f1827b12f13b9f30f515e6bafe57e21ed4c6a712c215 WHIRLPOOL 83760b45992f298f5e22b0563e29c52e5c7a6c4d67156c52029c5ac6a10081cf7a126a489980271d91d1f48fbd7aa3f608191deadd010de511edc1cd4376f6a6 +AUX cvs-1.12.13.1-gl-mempcpy.patch 902 SHA256 9aa20504eaa38bea9933a14115fd0d7f84b84884e5f9d2f521a219d6fafdcb8a SHA512 6825f04238a15fa89dd39f865d30105d434c850cd03cb4404f79f268db1777670a254810ddd2110f24c4512530fe622ee637ac572de32b803b2cbf71f4fd6485 WHIRLPOOL 3edd1700bcc05ec7b16eeec870549b47f53c3985c74159d0c3069d769bdc14eadb49afb8927e3b1b274437190a88a6f4ebbfd89e4c1742c1ecd717a97f2dd3fb +AUX cvs-1.12.13.1-hash-nameclash.patch 1056 SHA256 4faeef2d4169799dad63a934f26d90ae9d6d47d1d88d37b0c4b39423b46ce40f SHA512 2913cfee49bbb5a0ecbbb40c85a935e8965a01735c3e936be9095f7537dd0e260975eccbc0ebf1c6d672774cc0c7b07b766e2e73e03c3b2359557e89607f8db2 WHIRLPOOL 23c321bab543dedfaffa432f858bffa5d44a14d2a39db62b979912795f89deb79aaf482d7b16a4858cbe80dd25bcf5d07cf23b6616f582bc86d05938fd35703a +AUX cvs-1.12.13.1-use-include_next.patch 1048 SHA256 2ba7058e0acf86d985fb31eab7c3025bea784eff8d05ff75fed7fd2917f00517 SHA512 d6fa7e20815bebe6b765e15dc0405ff3b45880e2121562b30cca4f09897cb2a39b9c7c47b64047d88ad8f81f036d29054385a9d9275374e92206997db90c899c WHIRLPOOL a533d9785a9a888fb644c0f27ac35b4ffb50c53c02a1283effd4edd358e546067f99c781b8406ebdef3740edaf71add245fd4c0feea9151887e9e8c41bb2eb42 AUX cvspserver.xinetd.d 282 SHA256 71b62c4f278ed17bf3cac8eacb2bfb17b6125bfe77f83b46fa5742395b74ef5f SHA512 6845a5fc38ed9d8f9194f14137066c3f2640f09ebc1dce7e9fa7c49761534003e5b1c59593496ba9f88a6c9b1196980bc145a2e2fdcbf662360d1b1ca8821411 WHIRLPOOL 949abc87f0d7c8f104ce8a896fdfd94e3db8f60d5aaa948d3358e348b17de942f19ba68fe545ec2af0026643d7b5efd5bc3bc26ccc7da47c70c544d01879646a DIST cederqvist-1.11.23.html.bz2 112336 SHA256 7b44791e77d3cc56e2ce970303f4003a8a759e432cfa97de93fa45c4d78f80d9 SHA512 671d9d0d364c7ec21c8b5ae357bf7be097447342053b6eb442d6b367ff1b79e17b8494cac21a08c7a897c039ede7e08992d4af158fb2a68847506f7841f98789 WHIRLPOOL c58dba2bf0ca96a17099f5488f34b1343385e67a22a20697a0de4c9affb30f21fbd790b5fd874487e5f40ce2978ee961e8b876910ac520da35ec7ceb07edf139 DIST cederqvist-1.11.23.pdf 1134081 SHA256 0ef6dc37510e43be1bcae50c635dedcbb2d56f16968946ff0a304a43f87a7d59 SHA512 6b5f7603ff38eaf0747d364f74960c5bb3ba172fd93436440644396ba9e94538cc3c258c8c44d5fc3437c73eacc8727381f0caa94651227a74353bb46029d490 WHIRLPOOL 31d5e9ff2abe0bf93f9be6f8657690a24c55037d621bc54e735d078a7ac1b089d55d0ea57b8450c47611d6ea7aff54aeed7f7bfbe1ff02188b25abcea164bcd0 DIST cederqvist-1.11.23.ps 1129600 SHA256 6b35cbeecd6fa069e59743716f2766f5bfffe3013a59cf72d833e5837b20abc0 SHA512 0a0e14bb611a210d4fbacd187a8fd2d8ce2746df1487ec0272cb4abe9027194109adfa7ffe97fada1457203eac7428605e3b3def11a6fece4140e08b66ded17e WHIRLPOOL c24b5dea728a9a317fdbdf212351bb04525daebccc94a68fee8bc717f68ce8f1a9de7446422bffc07e9a27a005bf4a8d6bffcee31a2e83cb3cac34ee993f8cbb +DIST cederqvist-1.12.13.html.tar.bz2 140382 SHA256 1a9a34e07c00de5102224b48cbc53384992aea197c91c20b6140dd6885b5ae87 SHA512 4305b5b5d6ec75288e8be0f818815898523de465bd2dc1f55dc277a423815608e619e6fb50d47d29c378249db53f7dba2cc6b4e996f8cd2c1eecf5b9db5957c3 WHIRLPOOL 8b72d282e466b85ad2e898c52a934df55af530a458c39171e4de31a71e1d7c0dbf85674387021f0bc4d87b480a3ff32084574294425923b64c10998e0716abdc +DIST cederqvist-1.12.13.pdf 1297631 SHA256 4f24b2ac3b81c97798cad42cba8ffe6cc65405f13e5a58a4b063aa9fffc4a7bc SHA512 56ff658265a4e08df6bcd59b1bcb046cbcb92d4107fd4fc54a35601e379af048fdab720500207a4ea6b757058bb52973c7723a02f43b5de8c9fee7f09379ba1f WHIRLPOOL 5ca68dbc70dfbf98a61700f696c4b197a8943f3122d419e2ae2a1f085c589b02c3e90bdadfa657351e51dfbf4a40781babcc47319e157aede3f67be8edf08493 +DIST cederqvist-1.12.13.ps 1280573 SHA256 a955722b89155e390635b1220fa67a096c97141d83ac53a7840323c01d13aa91 SHA512 7a6e9605c82b4d105d37663b12ce9fc89eb8e9153897ceeb6d4fd18da07947180b96167f67cd04df0ec2682d431bbb6840c8c87ccd97ddb596dd2efd31bbf1e4 WHIRLPOOL 2b6249d9cba0d08b76e9d8ae24828cfbfae71c2f109e35ca425c0122a79dc3a66a52ec9506971eab031d730743ed3bc5c01b583e3e9a538f067e22e6d78a6c0f DIST cvs-1.11.23.tar.bz2 2942652 SHA256 400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9 SHA512 d84360b51b966f19ac3f1728265ff25e46d3a3ce6d9e7e30b154f0975bb10ce4f82f5ca3f308d2ff169c2b5dd97b0243e910d2e8ad59a5857aef7a70b9026b19 WHIRLPOOL 0f4a14989c29ee76a911edcbcb9b946f3710d1015391e7a219c841bf3cd03678994d572f23a66975030e9ca2eb64abc7f7665a535203bc81653d754491039252 +DIST cvs-1.12.13.1.tar.bz2 4075630 SHA256 de7f374d8c4ac414c04e8d44ce9a5d3da919825a6a332d747e299dc7a80c2218 SHA512 db318c0c70b47283bd469d792bdfe5335e5375e3b25beb79a7aea8435209b944cfa7ba51bdef9935f708e3a26a06b72defdb698974f2951cc9afd615f970986b WHIRLPOOL 3369e59e9f598cf6de28577302d62d3f6b00f705a0a5729c7ebf7b956d899e85afaaa160be2c4f7a4c710c1dd8860301ad1855c874229e39dbe60a5acc91a884 EBUILD cvs-1.11.23.ebuild 2249 SHA256 a87c06b56728adf38dc70231721808d6a598fc9f1ad9c7872c80c94997278599 SHA512 8a202a99c8cdb78fd08c7fb1388c070ac5b49a9e51ce44a6bcb94c81a319e1600da54ce9bb0dd908522f1e1bcad0ec4438aa70afc491147f2b6297a037e310a4 WHIRLPOOL 278be5a5013f45a403614356972f1d74952f8e7d8798afa392a11dce5f992b031ac5e19c5b0eaffb8811bc22968969f6c308a096f28fd35d9e3ad246a1f09f09 +EBUILD cvs-1.12.13.1-r2.ebuild 5285 SHA256 0de79e71dc61f47ce49aa2d9321f242aab0a428d5352eba0275d96240683c1f3 SHA512 14c5ae14d965de0bd5ac5b48ed343704cbd6089fea2b17443e46fd6017728a6751c10134623d94f6997a3a00028242c821304e7f2119f65ef82a607aaa447808 WHIRLPOOL 31b0549f0fc7132b68d3163dba2a886c215115f3b5dc565d5e6d32266efc76d6c8636342a12165a4efaf145777cfffb1ae066012659cecd0d9cb73d2a17bc40d diff --git a/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild b/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild new file mode 100644 index 00000000..ad921064 --- /dev/null +++ b/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-vcs/cvs/cvs-1.12.13.1-r2.ebuild,v 1.5 2014/05/14 00:17:49 robbat2 Exp $ + +EAPI=3 + +inherit eutils pam toolchain-funcs versionator + +DESCRIPTION="Concurrent Versions System - source code revision control tools" +HOMEPAGE="http://www.nongnu.org/cvs/" + +DOC_PV="$(get_version_component_range 1-3)" +FEAT_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${PV}/" +DOC_URIBASE="mirror://gnu/non-gnu/cvs/source/feature/${DOC_PV}/" +SNAP_URIBASE="mirror://gnu/non-gnu/cvs/source/nightly-snapshots/feature/" +SRC_URI=" + ${FEAT_URIBASE}/${P}.tar.bz2 + ${SNAP_URIBASE}/${P}.tar.bz2 + doc? ( + ${DOC_URIBASE}/cederqvist-${DOC_PV}.html.tar.bz2 + ${DOC_URIBASE}/cederqvist-${DOC_PV}.pdf + ${DOC_URIBASE}/cederqvist-${DOC_PV}.ps + )" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +IUSE="crypt doc kerberos nls pam server" + +RDEPEND=">=sys-libs/zlib-1.1.4 + kerberos? ( virtual/krb5 ) + pam? ( virtual/pam )" +DEPEND="${RDEPEND}" + +src_unpack() { + unpack ${P}.tar.bz2 + use doc && unpack cederqvist-${DOC_PV}.html.tar.bz2 +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-1.12.12-cvsbug-tmpfix.patch + epatch "${FILESDIR}"/${PN}-1.12.12-install-sh.patch + epatch "${FILESDIR}"/${PN}-1.12.13.1-block-requests.patch + epatch "${FILESDIR}"/${PN}-1.12.13.1-hash-nameclash.patch # for AIX + epatch "${FILESDIR}"/${PN}-1.12.13.1-gl-mempcpy.patch # for AIX + epatch "${FILESDIR}"/${PN}-1.12.12-fix-massive-leak.patch + epatch "${FILESDIR}"/${PN}-1.12.13.1-use-include_next.patch + epatch "${FILESDIR}"/${PN}-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch + # Applied by upstream: + #epatch "${FILESDIR}"/${PN}-1.12.13-openat.patch + #epatch "${FILESDIR}"/${PN}-1.12.13-zlib.patch + + # this testcase was not updated + #sed -i.orig -e '/unrecognized keyword.*BogusOption/s,98,73,g' \ + # ${S}/src/sanity.sh + # this one fails when the testpath path contains '.' + sed -i.orig \ + -e '/newfile config3/s,a-z,a-z.,g' \ + "${S}"/src/sanity.sh + + elog "If you want any CVS server functionality, you MUST emerge with USE=server!" +} + +src_configure() { + local myconf + # the tests need the server and proxy + if use test; then + use server || \ + ewarn "The server and proxy code are enabled as they are required for tests." + myconf="--enable-server --enable-proxy" + fi + if tc-is-cross-compiler ; then + # Sane defaults when cross-compiling (as these tests want to + # try and execute code). + export cvs_cv_func_printf_ptr="yes" + fi + econf \ + --with-external-zlib \ + --with-tmpdir=/tmp \ + $(use_enable crypt encryption) \ + $(use_with kerberos gssapi) \ + $(use_enable nls) \ + $(use_enable pam) \ + $(use_enable server) \ + $(use_enable server proxy) \ + ${myconf} +} + +src_install() { + emake install DESTDIR="${D}" || die + + if use server; then + insinto /etc/xinetd.d + newins "${FILESDIR}"/cvspserver.xinetd.d cvspserver || die "newins failed" + fi + + dodoc BUGS ChangeLog* DEVEL* FAQ HACKING \ + MINOR* NEWS PROJECTS README* TESTS TODO + + # Not installed into emacs site-lisp because it clobbers the normal C + # indentations. + dodoc cvs-format.el || die "dodoc failed" + + use server && newdoc "${FILESDIR}"/${PN}-1.12.12-cvs-custom.c cvs-custom.c + + if use doc; then + dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.pdf + dodoc "${DISTDIR}"/cederqvist-${DOC_PV}.ps + dohtml -r "${WORKDIR}"/cederqvist-${DOC_PV}.html/ + dosym cvs.html /usr/share/doc/${PF}/html/index.html + fi + + newpamd "${FILESDIR}"/cvs.pam-include-1.12.12 cvs +} + +_run_one_test() { + mode="$1" ; shift + einfo "Starting ${mode} test" + cd "${S}"/src + export TESTDIR="${T}/tests-${mode}" + rm -rf "$TESTDIR" # Clean up from any previous test passes + mkdir -p "$TESTDIR" + emake -j1 ${mode}check || die "Some ${mode} test failed." + mv -f check.log check.log-${mode} + einfo "${mode} test completed successfully, log is check.log-${mode}" +} + +src_test() { + einfo "If you want to see realtime status, or check out a failure," + einfo "please look at ${S}/src/check.log*" + + if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then + einfo "local, remote, and proxy tests enabled." + else + einfo "Only testing local mode. Please see ebuild for other modes." + fi + + [[ ${CHOST} == *-darwin* ]] && export tmp="${T}" + [[ ${CHOST} == *-darwin* ]] && export TESTDIR="${T}"/cvs-sanity + + # we only do the local tests by default + _run_one_test local + + # if you want to test the remote and proxy modes, things get a little bit + # complicated. You need to set up a SSH config file at ~portage/.ssh/config + # that allows the portage user to login without any authentication, and also + # set up the ~portage/.ssh/known_hosts file for your machine. + # We do not do this by default, as it is unsafe from a security point of + # view, and requires root level ssh changes. + # Note that this also requires having a real shell for the portage user, so make + # sure that su -c 'ssh portage@mybox' portage works first! + # (It uses the local ip, not loopback) + if [ "$TEST_REMOTE_AND_PROXY" == "1" ]; then + _run_one_test remote + _run_one_test proxy + fi +} diff --git a/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch b/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch new file mode 100644 index 00000000..9c9b49db --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-block-requests.patch @@ -0,0 +1,140 @@ +Author: Robin H. Johnson <robbat2@gentoo.org> +Date: 2006-08-09 + +This patch allows a CVS server to deny usage of specific commands, based on +input in the environment. + +Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want, +seperated by spaces. Eg: +CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents" +would block ALL usage of compression. + +Please see the array 'struct request requests[]' in src/server.c for a full +list of commands. + +Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients +may fail! (This includes 'ci'!). + +See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups. + +Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> + +diff -Nuar --exclude '*~' -U 10 cvs-1.12.12.orig/src/server.c cvs-1.12.12/src/server.c +--- cvs-1.12.12.orig/src/server.c 2005-04-14 14:13:29.000000000 +0000 ++++ cvs-1.12.12/src/server.c 2006-08-09 01:40:44.000000000 +0000 +@@ -5836,43 +5836,90 @@ + #undef REQ_LINE + }; + #endif /* SERVER_SUPPORT or CLIENT_SUPPORT */ + + + + #ifdef SERVER_SUPPORT + /* + * This server request is not ignored by the secondary. + */ ++ ++/* Hack by Robin H. Johnson <robbat2@gentoo.org>. ++ * Allow the server ENV to specify what request types are to be ignored. ++ */ ++ ++static char blocked_requests[BUFSIZ] = " "; ++ ++static void build_blocked_requests() { ++ char *tmp = getenv("CVS_BLOCK_REQUESTS"); ++ ++ if (tmp != NULL && strlen(tmp) > 0) { ++ // move to our custom buffer ++ strncat(blocked_requests, tmp, sizeof(blocked_requests)-strlen(blocked_requests)); ++ //add a space on the end as well for searching ++ strncat(blocked_requests, " ", sizeof(blocked_requests)-strlen(blocked_requests)); ++ } ++ ++ // now blocked_requests contains the list of every request that we do not ++ // want to serve ++} ++ ++// returns 0 if we should serve this request ++// use as if(checker(FOO)) continue; ++static int serve_valid_requests_checker(char *reqname) { ++ char needle[BUFSIZ] = " "; ++ char *tmp; ++ ++ if(!blocked_requests || strlen(blocked_requests) < 2) ++ return 0; ++ ++ // we want to look for ' 'reqname' ' ++ snprintf(needle, sizeof(needle), " %s ", reqname); ++ ++ // now do the search ++ tmp = strstr(blocked_requests, needle); ++ ++ if (tmp != NULL) ++ return 1; ++ ++ return 0; ++ ++} ++ + static void + serve_valid_requests (char *arg) + { + struct request *rq; + + /* Since this is processed in the first pass, don't reprocess it in the + * second. + * + * We still print errors since new errors could have been generated in the + * second pass. + */ + if (print_pending_error () + #ifdef PROXY_SUPPORT + || reprocessing + #endif /* PROXY_SUPPORT */ + ) + return; ++ ++ build_blocked_requests(); + + buf_output0 (buf_to_net, "Valid-requests"); + for (rq = requests; rq->name != NULL; rq++) + { + if (rq->func != NULL) + { ++ if(serve_valid_requests_checker(rq->name)) ++ continue; + buf_append_char (buf_to_net, ' '); + buf_output0 (buf_to_net, rq->name); + } + } + buf_output0 (buf_to_net, "\nok\n"); + + /* The client is waiting for the list of valid requests, so we + must send the output now. */ + buf_flush (buf_to_net, 1); + } +@@ -6353,20 +6400,24 @@ + cmd += len; + else if (cmd[len] == ' ') + cmd += len + 1; + else + /* + * The first len characters match, but it's a different + * command. e.g. the command is "cooperate" but we matched + * "co". + */ + continue; ++ // Ignore commands that we are supposed to ignore. ++ if(serve_valid_requests_checker(rq->name)) ++ continue; ++ + + if (!(rq->flags & RQ_ROOTLESS) + && current_parsed_root == NULL) + { + /* For commands which change the way in which data + is sent and received, for example Gzip-stream, + this does the wrong thing. Since the client + assumes that everything is being compressed, + unconditionally, there is no way to give this + error to the client without turning on diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c b/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c new file mode 100644 index 00000000..597f6de8 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-cvs-custom.c @@ -0,0 +1,58 @@ +/* +Author: Robin H. Johnson <robbat2@gentoo.org> +Date: 2006-08-09 + +This patch allows a CVS server to deny usage of specific commands, based on +input in the environment. + +Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want, +seperated by spaces. Eg: +CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents" +would block ALL usage of compression. + +Please see the array 'struct request requests[]' in src/server.c for a full +list of commands. + +Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients +may fail! (This includes 'ci'!). + +See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups. + +Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> +*/ + +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <malloc.h> + + +#define REAL_CVS "/bin/cvs" +#define CVS_TMPDIR "/tmp" +#define CMDS_BLOCKED " Gzip-stream gzip-file-contents Kerberos-encrypt Gssapi-encrypt Gssapi-authenticate add remove admin import init history watch-on watch-off watch-add watch-remove watchers editors edit version tag rtag " + +int main(int argc, char* argv[]) { + char** newargv; + int newargc, offset; + int i; + // 0 for argv[0] we must copy + offset = 0+0; + // +1 for trailing NULL + newargc = argc+offset+1; + newargv = (char**) malloc(newargc*sizeof(char*)); + newargv[0] = "cvs"; + //newargv[1] = "-T"; + //newargv[2] = CVS_TMPDIR; + //newargv[3] = "-R"; + for(i=1;i<argc;i++) { + newargv[i+offset] = argv[i]; + } + newargv[newargc-1] = NULL; + setenv("CVS_BLOCK_REQUESTS",CMDS_BLOCKED ,1); + //for(i =0;i<newargc;i++) { + // printf("[%d]='%s'\n",i,newargv[i] != NULL ? newargv[i] : "NULL"); + //} + execv(REAL_CVS,newargv); + free(newargv); + return 0; +} diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch b/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch new file mode 100644 index 00000000..d7d6e6bb --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-cvs-gnulib-vasnprintf.patch @@ -0,0 +1,34 @@ +http://bugs.gentoo.org/213833 + +commit 913c09becd9df89dbd9b9f386e7f35c240d5efe8 +Author: Bruno Haible <bruno@clisp.org> +Date: Fri Oct 19 01:50:42 2007 +0200 + + Don't use %n on glibc >= 2.3 systems. + +diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c +index f563823..5d818aa 100644 +--- a/lib/vasnprintf.c ++++ b/lib/vasnprintf.c +@@ -3385,9 +3385,21 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, + #endif + *p = dp->conversion; + #if USE_SNPRINTF ++# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) + p[1] = '%'; + p[2] = 'n'; + p[3] = '\0'; ++# else ++ /* On glibc2 systems from glibc >= 2.3 - probably also older ++ ones - we know that snprintf's returns value conforms to ++ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. ++ Therefore we can avoid using %n in this situation. ++ On glibc2 systems from 2004-10-18 or newer, the use of %n ++ in format strings in writable memory may crash the program ++ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it ++ in this situation. */ ++ p[1] = '\0'; ++# endif + #else + p[1] = '\0'; + #endif diff --git a/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch b/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch new file mode 100644 index 00000000..fcd4431e --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-cvsbug-tmpfix.patch @@ -0,0 +1,22 @@ +Index: cvs-1.12.12/src/cvsbug.in +=================================================================== +--- cvs-1.12.12.orig/src/cvsbug.in ++++ cvs-1.12.12/src/cvsbug.in +@@ -109,14 +109,14 @@ elif [ -f /bin/domainname ]; then + /usr/bin/ypcat passwd 2>/dev/null | cat - /etc/passwd | grep "^$LOGNAME:" | + cut -f5 -d':' | sed -e 's/,.*//' > $TEMP + ORIGINATOR="`cat $TEMP`" +- rm -f $TEMP ++ > $TEMP + fi + fi + + if [ "$ORIGINATOR" = "" ]; then + grep "^$LOGNAME:" /etc/passwd | cut -f5 -d':' | sed -e 's/,.*//' > $TEMP + ORIGINATOR="`cat $TEMP`" +- rm -f $TEMP ++ > $TEMP + fi + + if [ -n "$ORGANIZATION" ]; then + diff --git a/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch b/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch new file mode 100644 index 00000000..5366f508 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-fix-massive-leak.patch @@ -0,0 +1,52 @@ +buf_free_data must free data independently +of send or reseived bytes over network. + +Moreover, when buffer is usually freed +buffer _is_ empty, but has one clean mapped page. + +I've observed massive 'cvs server' leaks +when importing large gentoo-x86 repo with 'cvsps'. +Leak ate all my 32GBs of RAM and killed process. +(Leaked around 3 pages per client request). + +valgrind found the leak easily: + +$ valgrind \ + cvsps \ + --root :local:$HOME/portage/gentoo-x86.rsync \ + --fast-export \ + gentoo-x86/dev-vcs/git-annex 2>l | + git fast-import + + ==13504== 1,248 bytes in 52 blocks are still reachable in loss record 41 of 47 + ==13504== at 0x4C2C19B: malloc (vg_replace_malloc.c:270) + ==13504== by 0x48A556: xnmalloc_inline (xmalloc.c:40) + ==13504== by 0x48A5B5: xmalloc (xmalloc.c:56) + ==13504== by 0x4855F5: new_memnode (pagealign_alloc.c:91) + ==13504== by 0x48571B: pagealign_alloc (pagealign_alloc.c:151) + ==13504== by 0x485739: pagealign_xalloc (pagealign_alloc.c:182) + ==13504== by 0x408DD7: get_buffer_data (buffer.c:98) + ==13504== by 0x409C0C: buf_input_data (buffer.c:738) + ==13504== by 0x45BB63: do_cvs_command (server.c:3847) + ==13504== by 0x45D39E: serve_co (server.c:4809) + ==13504== by 0x45F845: server (server.c:6438) + ==13504== by 0x438784: main (main.c:1066) + +And now it takes constant space (less, than 18MB) +for 'cvs server' process to convert all gentoo-x86 +by serving more, than 5 000 000 client requests. + +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +diff --git a/src/buffer.c b/src/buffer.c +index 3f12513..9a7a559 100644 +--- a/src/buffer.c ++++ b/src/buffer.c +@@ -526,7 +526,7 @@ buf_copy_data (struct buffer *buf, struct buffer_data *data, + void + buf_free_data (struct buffer *buffer) + { +- if (buf_empty_p (buffer)) return; ++ if (! buffer->data) return; + buf_free_datas (buffer->data, buffer->last); + buffer->data = buffer->last = NULL; + } diff --git a/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch b/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch new file mode 100644 index 00000000..d27bcc04 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-getdelim.patch @@ -0,0 +1,21 @@ +The function getdelim() behaves slightly different on FreeBSD, +only appending to the *line buffer if line_size is 0. + +See: +http://savannah.nongnu.org/bugs/?29466 +http://bugs.gentoo.org/314791 + +Already comitted upstream: +http://cvs.savannah.gnu.org/viewvc/ccvs/src/myndbm.c?root=cvs&r1=1.38&r2=1.39 + +--- src/myndbm.c.orig ++++ src/myndbm.c +@@ -213,7 +213,7 @@ + mydbm_load_file (FILE *fp, List *list, char *filename) + { + char *line = NULL; +- size_t line_size; ++ size_t line_size = 0; + char *value; + size_t value_allocated; + char *cp, *vp; diff --git a/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch b/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch new file mode 100644 index 00000000..0a33eea8 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-hash-nameclash.patch @@ -0,0 +1,42 @@ +http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/src/hash.h?r1=1.14.6.2&r2=1.14.6.3&pathrev=cvs1-11-x-branch +fixed in cvs-1.11.23, cvs-HEAD after cvs-1.12.13a + +--- src/hash.h.orig 2005-02-01 22:56:48 +0100 ++++ src/hash.h 2010-03-10 19:00:11 +0100 +@@ -27,26 +27,26 @@ + }; + typedef enum ntype Ntype; + +-struct node ++struct hashnode + { + Ntype type; +- struct node *next; +- struct node *prev; +- struct node *hashnext; +- struct node *hashprev; ++ struct hashnode *next; ++ struct hashnode *prev; ++ struct hashnode *hashnext; ++ struct hashnode *hashprev; + char *key; + void *data; +- void (*delproc) (struct node *); ++ void (*delproc) (struct hashnode *); + }; +-typedef struct node Node; ++typedef struct hashnode Node; + +-struct list ++struct hashlist + { + Node *list; + Node *hasharray[HASHSIZE]; +- struct list *next; ++ struct hashlist *next; + }; +-typedef struct list List; ++typedef struct hashlist List; + + List *getlist (void); + Node *findnode (List * list, const char *key); diff --git a/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch b/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch new file mode 100644 index 00000000..825c0ee6 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-install-sh.patch @@ -0,0 +1,12 @@ +diff -ur a/build-aux/install-sh b/build-aux/install-sh +--- a/build-aux/install-sh 2006-03-25 20:04:46 +0000 ++++ b/build-aux/install-sh 2007-09-14 10:53:29 +0100 +@@ -246,7 +246,7 @@ + fi + + if test -n "$dir_arg"; then +- $doit $mkdircmd "$dst" \ ++ { test -d "$dst" || $doit $mkdircmd -p "$dst"; } \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ diff --git a/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch b/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch new file mode 100644 index 00000000..948fa4d7 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-mktime-x32.patch @@ -0,0 +1,29 @@ +back port changes from upstream gnulib to make this work on x32 + +https://bugs.gentoo.org/395641 + +--- cvs-1.12.12/lib/mktime.c ++++ cvs-1.12.12/lib/mktime.c +@@ -115,6 +115,13 @@ + #define TM_YEAR_BASE 1900 + verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0); + ++#if INT_MAX <= LONG_MAX / 2 ++typedef long int long_int; ++#else ++typedef long long int long_int; ++#endif ++verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2); ++ + /* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */ + static inline int + leapyear (long int year) +@@ -167,8 +174,6 @@ + int year0, int yday0, int hour0, int min0, int sec0) + { + verify (C99_integer_division, -1 / 2 == 0); +- verify (long_int_year_and_yday_are_wide_enough, +- INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX); + + /* Compute intervening leap days correctly even if year is negative. + Take care to avoid integer overflow here. */ diff --git a/dev-vcs/cvs/files/cvs-1.12.12-openat.patch b/dev-vcs/cvs/files/cvs-1.12.12-openat.patch new file mode 100644 index 00000000..fdb406a4 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-openat.patch @@ -0,0 +1,21 @@ +Index: cvs-1.12.12/lib/openat.c +=================================================================== +--- cvs-1.12.12.orig/lib/openat.c ++++ cvs-1.12.12/lib/openat.c +@@ -55,9 +55,13 @@ rpl_openat (int fd, char const *filename + va_list arg; + va_start (arg, flags); + +- /* Assume that mode_t is passed compatibly with mode_t's type +- after argument promotion. */ +- mode = va_arg (arg, mode_t); ++ /* If mode_t is narrower than int, use the promoted type (int), ++ not mode_t. Use sizeof to guess whether mode_t is nerrower; ++ we don't know of any practical counterexamples. */ ++ if (sizeof (mode_t) < sizeof (int)) ++ mode = va_arg (arg, int); ++ else ++ mode = va_arg (arg, mode_t); + + va_end (arg); + } diff --git a/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch b/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch new file mode 100644 index 00000000..0fb4c6c6 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.12-rcs2log-coreutils.patch @@ -0,0 +1,14 @@ +X-Gentoo-bug: 144114 + +diff -Nuar cvs-1.12.12.orig//contrib/rcs2log.sh cvs-1.12.12//contrib/rcs2log.sh +--- cvs-1.12.12.orig//contrib/rcs2log.sh 2003-02-25 21:32:51.000000000 +0000 ++++ cvs-1.12.12//contrib/rcs2log.sh 2010-12-06 21:14:33.831532212 +0000 +@@ -620,7 +620,7 @@ + # Sort the log entries, first by date+time (in reverse order), + # then by author, then by log entry, and finally by file name and revision + # (just in case). +-sort -t"$SOH" +2 -4r +4 +0 | ++sort -t"$SOH" -k 3,4r -k 5 -k 1,2 | + + # Finally, reformat the sorted log entries. + $AWK -F"$SOH" ' diff --git a/dev-vcs/cvs/files/cvs-1.12.13-openat.patch b/dev-vcs/cvs/files/cvs-1.12.13-openat.patch new file mode 100644 index 00000000..762924a8 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13-openat.patch @@ -0,0 +1,21 @@ +Index: cvs-1.12.13/lib/openat.c +=================================================================== +--- cvs-1.12.13.orig/lib/openat.c ++++ cvs-1.12.13/lib/openat.c +@@ -55,9 +55,13 @@ rpl_openat (int fd, char const *filename + va_list arg; + va_start (arg, flags); + +- /* Assume that mode_t is passed compatibly with mode_t's type +- after argument promotion. */ +- mode = va_arg (arg, mode_t); ++ /* If mode_t is narrower than int, use the promoted type (int), ++ not mode_t. Use sizeof to guess whether mode_t is nerrower; ++ we don't know of any practical counterexamples. */ ++ if (sizeof (mode_t) < sizeof (int)) ++ mode = va_arg (arg, int); ++ else ++ mode = va_arg (arg, mode_t); + + va_end (arg); + } diff --git a/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch b/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch new file mode 100644 index 00000000..a4b4b1e2 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13-zlib.patch @@ -0,0 +1,31 @@ +Index: src/zlib.c +=================================================================== +RCS file: /sources/cvs/ccvs/src/zlib.c,v +retrieving revision 1.31 +retrieving revision 1.32 +diff -u -r1.31 -r1.32 +--- src/zlib.c 3 Jun 2005 18:26:09 -0000 1.31 ++++ src/zlib.c 28 Oct 2005 14:10:59 -0000 1.32 +@@ -221,15 +221,14 @@ + point. */ + assert (bd->size == 0); + +- /* This will work well in the server, because this call will +- do an unblocked read and fetch all the available data. In +- the client, this will read a single byte from the stdio +- stream, which will cause us to call inflate once per byte. +- It would be more efficient if we could make a call which +- would fetch all the available bytes, and at least one byte. */ +- ++ /* On the server, this will do an unblocking read of as much data as is ++ * available. On the client, with a blocking input descriptor and the ++ * current fd_buffer implementation, this should read as much data as ++ * is currently available, and at least 1 byte (or EOF), from the ++ * underlying buffer. ++ */ + status = (*cb->buf->input) (cb->buf->closure, bd->text, +- need, BUFFER_DATA_SIZE, &nread); ++ need ? 1 : 0, BUFFER_DATA_SIZE, &nread); + + if (status == -2) + /* Don't try to recover from memory allcoation errors. */ diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch new file mode 100644 index 00000000..216336f3 --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13.1-block-requests.patch @@ -0,0 +1,101 @@ +Author: Robin H. Johnson <robbat2@gentoo.org> +Original-Date: 2006-08-09 +Forward-Port-Date: 2007-12-06 + +This patch allows a CVS server to deny usage of specific commands, based on +input in the environment. + +Just set the CVS_BLOCK_REQUESTS env var with all of the commands you want, +seperated by spaces. Eg: +CVS_BLOCK_REQUESTS="Gzip-stream gzip-file-contents" +would block ALL usage of compression. + +Please see the array 'struct request requests[]' in src/server.c for a full +list of commands. + +Please note that if you block any commands marked as RQ_ESSENTIAL, CVS clients +may fail! (This includes 'ci'!). + +See the companion cvs-custom.c for a wrapper that can enforce the environment variable for pserver setups. + +Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> + +diff -Nuar cvs-1.12.13.1.orig/src/server.c cvs-1.12.13.1/src/server.c +--- cvs-1.12.13.1.orig/src/server.c 2006-06-21 11:55:21.000000000 -0700 ++++ cvs-1.12.13.1/src/server.c 2007-12-06 16:25:38.109309990 -0800 +@@ -6244,6 +6244,49 @@ + /* + * This server request is not ignored by the secondary. + */ ++ ++/* Hack by Robin H. Johnson <robbat2@gentoo.org>. ++ * Allow the server ENV to specify what request types are to be ignored. ++ */ ++ ++static char blocked_requests[BUFSIZ] = " "; ++ ++static void build_blocked_requests() { ++ char *tmp = getenv("CVS_BLOCK_REQUESTS"); ++ ++ if (tmp != NULL && strlen(tmp) > 0) { ++ // move to our custom buffer ++ strncat(blocked_requests, tmp, sizeof(blocked_requests)-strlen(blocked_requests)); ++ //add a space on the end as well for searching ++ strncat(blocked_requests, " ", sizeof(blocked_requests)-strlen(blocked_requests)); ++ } ++ ++ // now blocked_requests contains the list of every request that we do not ++ // want to serve ++} ++ ++// returns 0 if we should serve this request ++// use as if(checker(FOO)) continue; ++static int serve_valid_requests_checker(char *reqname) { ++ char needle[BUFSIZ] = " "; ++ char *tmp; ++ ++ if(!blocked_requests || strlen(blocked_requests) < 2) ++ return 0; ++ ++ // we want to look for ' 'reqname' ' ++ snprintf(needle, sizeof(needle), " %s ", reqname); ++ ++ // now do the search ++ tmp = strstr(blocked_requests, needle); ++ ++ if (tmp != NULL) ++ return 1; ++ ++ return 0; ++ ++} ++ + static void + serve_valid_requests (char *arg) + { +@@ -6262,11 +6305,15 @@ + ) + return; + ++ build_blocked_requests(); ++ + buf_output0 (buf_to_net, "Valid-requests"); + for (rq = requests; rq->name != NULL; rq++) + { + if (rq->func != NULL) + { ++ if(serve_valid_requests_checker(rq->name)) ++ continue; + buf_append_char (buf_to_net, ' '); + buf_output0 (buf_to_net, rq->name); + } +@@ -6706,6 +6753,9 @@ + * "co". + */ + continue; ++ // Ignore commands that we are supposed to ignore. ++ if(serve_valid_requests_checker(rq->name)) ++ continue; + + if (!(rq->flags & RQ_ROOTLESS) + && current_parsed_root == NULL) diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch new file mode 100644 index 00000000..4554b9ac --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13.1-fix-gnulib-SEGV-vasnprintf.patch @@ -0,0 +1,42 @@ +Attemt to use CVS leads to glibc crash: +$ cvs up + *** %n in writable segment detected *** + +Fixes: http://savannah.nongnu.org/bugs/?35432 +Upstream gnulib commit: + +From 913c09becd9df89dbd9b9f386e7f35c240d5efe8 Mon Sep 17 00:00:00 2001 +From: Bruno Haible <bruno@clisp.org> +Date: Thu, 18 Oct 2007 23:50:42 +0000 +Subject: Don't use %n on glibc >= 2.3 systems. + +--- +(limited to 'lib/vasnprintf.c') + +diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c +index f563823..5d818aa 100644 +--- a/lib/vasnprintf.c ++++ b/lib/vasnprintf.c +@@ -3386,8 +3386,20 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, + *fbp = dp->conversion; + #if USE_SNPRINTF ++# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) + p[1] = '%'; + p[2] = 'n'; + p[3] = '\0'; ++# else ++ /* On glibc2 systems from glibc >= 2.3 - probably also older ++ ones - we know that snprintf's returns value conforms to ++ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. ++ Therefore we can avoid using %n in this situation. ++ On glibc2 systems from 2004-10-18 or newer, the use of %n ++ in format strings in writable memory may crash the program ++ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it ++ in this situation. */ ++ p[1] = '\0'; ++# endif + #else + p[1] = '\0'; + #endif +-- +cgit v0.9.0.2 diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch new file mode 100644 index 00000000..7ad7533b --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13.1-gl-mempcpy.patch @@ -0,0 +1,24 @@ +http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/lib/mempcpy.c?r1=1.2&r2=1.3&pathrev=MAIN +fixed in cvs-HEAD after cvs-1.12.13a + +--- lib/mempcpy.c 2005/05/23 17:44:31 1.2 ++++ lib/mempcpy.c 2007/08/22 12:48:42 1.3 +@@ -1,5 +1,5 @@ + /* Copy memory area and return pointer after last written byte. +- Copyright (C) 2003 Free Software Foundation, Inc. ++ Copyright (C) 2003, 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -15,9 +15,9 @@ + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +-/* Specification. */ +-#include "mempcpy.h" ++#include <config.h> + ++/* Specification. */ + #include <string.h> + + /* Copy N bytes of SRC to DEST, return pointer to bytes after the diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch new file mode 100644 index 00000000..d9c3358f --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13.1-hash-nameclash.patch @@ -0,0 +1,43 @@ +http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/src/hash.h?r1=1.14.6.2&r2=1.14.6.3&pathrev=cvs1-11-x-branch +fixed in cvs-1.11.23, cvs-HEAD after cvs-1.12.13a + +--- src/hash.h.orig 2010-03-11 10:12:19 +0100 ++++ src/hash.h 2010-03-11 10:12:40 +0100 +@@ -32,27 +32,27 @@ + }; + typedef enum ntype Ntype; + +-struct node ++struct hashnode + { + Ntype type; +- struct node *next; +- struct node *prev; +- struct node *hashnext; +- struct node *hashprev; ++ struct hashnode *next; ++ struct hashnode *prev; ++ struct hashnode *hashnext; ++ struct hashnode *hashprev; + char *key; + void *data; + size_t len; /* Length of DATA. */ +- void (*delproc) (struct node *); ++ void (*delproc) (struct hashnode *); + }; +-typedef struct node Node; ++typedef struct hashnode Node; + +-struct list ++struct hashlist + { + Node *list; + Node *hasharray[HASHSIZE]; +- struct list *next; ++ struct hashlist *next; + }; +-typedef struct list List; ++typedef struct hashlist List; + + List *getlist (void); + Node *findnode (List *list, const char *key); diff --git a/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch b/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch new file mode 100644 index 00000000..adaff55e --- /dev/null +++ b/dev-vcs/cvs/files/cvs-1.12.13.1-use-include_next.patch @@ -0,0 +1,30 @@ +Fix build failure on gentoo's gcc: + +In file included from ./inttypes.h:34:0, + from ./stdint.h:65, + from /usr/include/netinet/in.h:23, + from /usr/include/netdb.h:27, + from getaddrinfo.h:30, + from canon-host.c:27: + /usr/include/inttypes.h:297:1: error: unknown type name 'intmax_t' + /usr/include/inttypes.h:297:26: error: unknown type name 'intmax_t' + /usr/include/inttypes.h:300:27: error: unknown type name 'intmax_t' + /usr/include/inttypes.h:300:45: error: unknown type name 'intmax_t' +diff --git a/lib/stdint_.h b/lib/stdint_.h +index adab4d7..3a8db19 100644 +--- a/lib/stdint_.h ++++ b/lib/stdint_.h +@@ -43,7 +43,12 @@ + Include it before <inttypes.h>, since any "#include <stdint.h>" + in <inttypes.h> would reinclude us, skipping our contents because + _GL_STDINT_H is defined. */ +-# include @ABSOLUTE_STDINT_H@ ++# include "config.h" ++# if HAVE_INCLUDE_NEXT ++# include_next <stdint.h> ++# else ++# include @ABSOLUTE_STDINT_H@ ++# endif + #endif + + /* <sys/types.h> defines some of the stdint.h types as well, on glibc, |