diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-lisp/sbcl | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-lisp/sbcl')
31 files changed, 3687 insertions, 0 deletions
diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest new file mode 100644 index 000000000000..acf62ba419f0 --- /dev/null +++ b/dev-lisp/sbcl/Manifest @@ -0,0 +1,34 @@ +DIST sbcl-1.0.23-sparc-solaris-binary.tar.bz2 34342 SHA256 13c2b44c82334d51d00f63b51a9966d073337cd806b5cff34e829063463793da SHA512 5aeaf08dc9f412df1c9a8e1ae6f8f0220f797f7506450bd12c9dfc8f2764ccc398ee782e1a1f2d9ff968ff17c0a7e89f03a1120ab3fb5f07c8e35a599d0b8140 WHIRLPOOL e0b1bcc9b910d6f05b73adf0ddb431ea026ddde6c8588801a03b02f832a260f808fbb3c3026ef7901a0f257c7f6dd9860cda30cbe44c7b4428ef8964ab106d02 +DIST sbcl-1.0.28-alpha-linux-binary.tar.bz2 7573824 SHA256 0bd8125e1375a75b9dda286439dcbe9861d6df5c6fc8475fd217b8b757edf9cc SHA512 85ceb4d3bf971777f5444a63cbabd88ccfaf16ed3b3c86cc5ea6cb3fd3189c4cd5a5ebbf785c97366afb7026604ffc34a1129936291deede5993056e158125ab WHIRLPOOL 839363a0d2fcc7cf383143fc130c40bf6f03468a89eb4b5eecb39339ba376a6b3a2096938934a91cf689310bff20807d2ac24b99c0d6e3673729b26d9edb83aa +DIST sbcl-1.0.28-powerpc-linux-binary.tar.bz2 7621107 SHA256 b51fe8cd3a998d178fc1876d10016439cfa4ed3566d761c331cacab364acd591 SHA512 e3386d25ae44c03cac5ecf2a9ba95338348b51955dc731f0bb57a124e572601b84170b452ff0c3540af07278053f1e5d153a4f1a621b376ceb1861f84777bad3 WHIRLPOOL 1c16053a0c15b3bec892811185945df59765f4d220045e0f116234aa18f843c6a6b8ce472029603624e47751185822891ffaaeb96dfd87f714b8fddf74149f26 +DIST sbcl-1.0.28-sparc-linux-binary.tar.bz2 8032042 SHA256 a2e848ac11b0f16bb91866bd187949d908ad94fabb958a0b56320fc0e8b8923e SHA512 cea1ba06f85169fca9fe3026813c6e7e8e8209b874e048b7bd63cb3a1c5bd7c829e8dbb2c486977e190a0390d28e4845938a9e84378f4f2f16f72bf0b6f45c80 WHIRLPOOL e7f7e9bc7b43cab7b729792a22f0f41be12d8dd97a1c45fa039a49607865b977dd336fef8c7ccda087a9e9e32f92241c83e05da442e12cf883d3dfb3c2fda169 +DIST sbcl-1.0.37-x86-64-linux-binary.tar.bz2 8702821 SHA256 0757a1d49d5452c9bef8d1c270dd423aa1b752e6a7ce4a3ffb546253e1bf56f3 SHA512 2175c30ce46c0b7b8fb4b2ed7aaadfa7a127cd50f2343adf1e8e0bd8b16c30803be5171fa076ca3a477df03a698f6887287bcf5e3249ba7c9e07f86f57cf8540 WHIRLPOOL 65322b7c36cf7cc23a796f4a4fd0c9f460c60cc18a0f3f167c20e892177c342f6af6ecda94e30ea32858ec3f13f0d7cb0a86955615b3fc180c62310de8bf1884 +DIST sbcl-1.0.37-x86-linux-binary.tar.bz2 8815040 SHA256 3d04ffc7c71afe523858799386a3175467556648b27184e39f62df8f60cf7268 SHA512 6c630ed7f5a86f1ed928e59f5258b7b7be116c23f469c814a386fd82c4a554ab02ca6819098e5703063ac6f683538779b00c3bd6757338ce2b843062d873989f WHIRLPOOL 25e575652d1c87ad6ecb8a0934c5e9b0210e566e11f6c5df09bb4048c7567732b10350c1f91e0bcc1c85907d1e2ed877e7297b7ee838b941cefd6fb6fe5da781 +DIST sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 8217590 SHA256 6971a64c0706894f217da676081874088f50f84daa66d89b653b065f83563f3b SHA512 8118de56e448bce7a72b832e661eb4e2687eed675f88f766f7043c843a432e35121d9e6f9da8d22ac690c54bda0d55ecb07728748ce2cdd57320f49b4b812b86 WHIRLPOOL f91c344a2b99a5a1c2dfe3af0172f548997b9aaf9ad5e865eb76c8311f6114275eda1e7e76af6efe5c1a346d1761f45e374f577313029fa9b83adfdec10c70ad +DIST sbcl-1.0.55-source.tar.bz2 3611026 SHA256 e3216a7b9c302b6c1431d0f1ae444008de8ac465eb44f4ae841300d052d207ad SHA512 dbda1f1bcb28a4bea8bc3ab8c3d5c6c27754a1388087ae9db81b783444ac306d0c72dde3a096bc6dc716d1b174868f5e5f39402f69b0604fc8023b9227eea38b WHIRLPOOL ead2425660e1a8812f882bb4d359471f5f70295a0196e1df70ec5b6aa2bc2ccfb0f3c23d63aba19e149b808e4b4ced26b98428745033c8197255274094ccccea +DIST sbcl-1.0.58-x86-linux-binary.tar.bz2 9313124 SHA256 a2195fce096fd7c64acef60ca496a29d703afc61eb39c366fdd9e56dc8982f84 SHA512 2776faa09f8a3d35ccb2745ec4a07e78bd714c47ae39032bbef3161d599d14fcc6313e65629df06b576cb973012b9c8356fac47bf7b886f9549d688fab3c4f98 WHIRLPOOL d98dda83b6ee02a777c787013ada2ca0a4548c75abe907a29215a48693bbbf787a6c6f83e07b2e8ab94afae261572dc0222570927357656d388329541301537c +DIST sbcl-1.1.18-source.tar.bz2 4272315 SHA256 933238392a2a3533b4088b86c4fbd0704a5573c1c66987a603eec4afa782c7d0 SHA512 48501a670c7e1ea9ab5a03514e8b49b93d1dcbdb7712da8b38496a2d51a604fe30e2785a5e5e8aa40032ede5ee11a75f63ae1919ccd7316089a74486177ad417 WHIRLPOOL a7285ee77753bc1f14755425e232e6ffcff159be883bad779585cb247ff47b904b4fcab99e8fc2e33644764c602409c6e9bbd28588d3d639431650ea9d31c5f5 +DIST sbcl-1.1.18-x86-64-linux-binary.tar.bz2 9196684 SHA256 c945406f9421736982efc4eaaeb376b19331422f5b5a349382ed53c742d6cb0a SHA512 d63a33532ae6390c00d789c22c4a504b621e707b8aa5f72d12b497be8a590a75604a18f384fa2d27df3a4a0ef3ecd4c27e7bfc4f74fde3a014df1aad5dd8ff0c WHIRLPOOL 980726e0dd182c2b29c5ac4deab994d028e0003a3e2ac3e38a0c052f6607fc75f6b298fb60c99ff9f373c9ba1f243d6bd97de2cb765aad559867598affd510ab +DIST sbcl-1.1.6-x86-darwin-binary.tar.bz2 9091955 SHA256 5801c60e2a875d263fccde446308b613c0253a84a61ab63569be62eb086718b3 SHA512 5b9d58ba1a7bcf3aa5011ac5ba1c8dba65e44b2c3f8a31b15db54de6b34ea0f7482c45f1cc4e1323e154ce79fbba030112df3795cb323bca46bac50f15d2a138 WHIRLPOOL 673e84bbf685e07568530ccb2c3822dbfffd6226d3de90bfef13078466ae245f63dd2fc4ac48b4d64ca1453cc831ad6913af21540bd3b35fe51700161ca26086 +DIST sbcl-1.1.8-x86-64-darwin-binary.tar.bz2 9045228 SHA256 729054dc27d6b53bd734eac4dffeaa9e231e97bdbe4927d7a68c8f0210cad700 SHA512 d29cf032dd52b014fcc5c48fc5dd0a1f8065838cd9078d129742302c64263b7d630232d1f9c051b56b8b2b34f1bef338aeaf81ff827799032e44ca6165483e34 WHIRLPOOL f44112707f000a46d26a6af65e651868639beddab4be9c84c8f2bc8488f198ab661cb6aa62f1d38fbcbe48f259c0c2e54d255ae45db22f648b56aaaa4f104984 +DIST sbcl-1.2.10-source.tar.bz2 5520417 SHA256 55243d5085278b7d0f80e5b91889f44ff66c195d801b3da26f1f4c696711f685 SHA512 3303297b6b5ad354d30019c6e20f0e79b0f50a3860b39990de5b36c93ca5b509680f8bbbf38be5d65490572ff523d422206f6fb2a06ea99a708e2d14de7fd27c WHIRLPOOL 6ed0e8a0cda5bfd96dc209a82886c8c45a5f54f65a3b66f50224693af9d5b4dbc30747835910115fb519554eb0fe4adf374ca6525fddd3a2ff63fb401c0c301b +DIST sbcl-1.2.10-x86-64-linux-binary.tar.bz2 10079986 SHA256 78c7144a27569f42dad5c1481c694ada5ac8c415de84b1cb838a4ad4b9f5903d SHA512 b9e5598fe90f4b41606f23ee8233a9f53772fc303a96f054ca203076c5f84b06bb945f74d9e98963d970f83fabb0cc4002d47418eb881479f1a029cca1902b22 WHIRLPOOL 00b48d28a67e91cfba59072f91bf9750b7542f31a8982595e936b54a061f30501520a935685ef5d8ac88362260aa9271f35b9e426133e20976f8c851b22715e3 +DIST sbcl-1.2.11-source.tar.bz2 5535528 SHA256 88aa04dae72d011f5c22084a35201188d8a02f0cd82e5de542aa4ce6bfaa3e70 SHA512 e033b61bfd2bdad1d04b3dfb5a92577a30dc7c40c679de377abf034e17de7bab034c34819b80255d16ba11ee9ac7fc29495b38844db5c19ef146d18728968694 WHIRLPOOL 24abe33e72c9e072d66bd0e3a6f8df4485e3560636c711a3d77fa71fecadba3c6cfad758cf3aeea54b94efd8e645c91a3f8634395854fca6cafc28095f10196f +DIST sbcl-1.2.11-x86-64-linux-binary.tar.bz2 10238022 SHA256 bb5b5315ad120a57041891988900f560fd0467a28e8dee939d5b1472c8ad111e SHA512 4bdc2dab4bca3d7656288e7d5b56a89bde5de61ff190186a6bf09e00f62bd1e72c62d433818b84478b2eabe0712dd652418affed8a0bd4afd99e376c750955f1 WHIRLPOOL 21d66afdbf2456e43fad7f6178e161a3f6f856eba4c0fe56b7bd33a09343e105f14eb28b49373c56197443b6de27391946eb93993773d903430c59742e8bb041 +DIST sbcl-1.2.13-source.tar.bz2 5567609 SHA256 e6d93a94cbf821b2c500a9440ca640588e9ac6914dba2f6b5445a5e14eeb1205 SHA512 f5f7bfb9e8c6a3dcf8c1bac62dba9ca1385b9689141c24951bec95ee5383f53e4279dd5c3fb382a79b06ef113d3d4aaa3b05fff69f8a819a0988ba03983c0c48 WHIRLPOOL 260de2f717544f4e9678b3e40bf59b16d83e3cdfad681c4a9e94fba9ec312a7647243a41076a9e64caa9ebfe33515561c854b939561019f14a3d07faf2425197 +DIST sbcl-1.2.13-x86-64-linux-binary.tar.bz2 10154344 SHA256 900e58adb9a449e3b5177207908a361de71be1e3aec712aff731ba9a9903f3ab SHA512 483aafc9b38cf317ea764d66e1faf70560cca4c04355ae0a0669692c985034335ec155fc9557acab8cc5f2ee668615985950b2fa96d0acc900b74aceeeafb64c WHIRLPOOL bc9218f7a32194a19b12cd218b2ebfb1dbce01717289241ba62a1b39a424fc2d0620c80b536d1c0a605322e99c52ae0f01d943bd93b7e4c1388ae9b7ab7464bc +DIST sbcl-1.2.2-source.tar.bz2 4437174 SHA256 5b2c510cdd7300956428c3b9bad78bd730908f6841ff15097e078133e50a5322 SHA512 6270e561185d617f90bf1ae6ddb52c7aac723eaf1498d259a6e1bd299c49064dd2a0968e9a88f97a2f36972f67e88bb82dbf32c64932f2787a364b23d422147f WHIRLPOOL 9e9855c82eacb2a9bdc85ba979faf0a0d3437d8f53c39c93a13e6a27489aeeca9d9f6252a4320083bb4718b397f8325d92d186468d7e782b85d12332ae20e6b3 +DIST sbcl-1.2.2-x86-64-linux-binary.tar.bz2 9412798 SHA256 a20779fefd466ad985f530fbd3093b603779efa20f0d3045d75420b4e73d0723 SHA512 aca469a106a848920861f9254f264fe9ce6c025268f43d86a96f69d4f149b16666f33260b12407fcbcbec564126d2a17c4f1b152ce7676cff45ef0762413385b WHIRLPOOL b98aae862ce72fabf1acaefac6a7a76fbb64ed152f7113cc27f4b5be7540a96effb1c1ee65325294666d1fe24fac397b32b5f4987bc7dba88994cf892fc9b823 +DIST sbcl-1.2.4-source.tar.bz2 4486150 SHA256 f910059785ffcfa22eb40548e1355f0da979261fbee017baa9ef2c060d777232 SHA512 d524114bfc289e29a372b840dd4e6bbecb10f7f9e0be149b50c44a63aaa40473f62c34843472d36f98df9e63da30c163037302714020de63b2faf5d0c95f4d4c WHIRLPOOL da7ef6fdc413e30a6f594fa50b639fe00166b95adced6c605c9eb348a4444af8705ee6d553f5e5fca75a6f1ecbe477ffefae8cacb46a97526c16b7cb2b838daf +DIST sbcl-1.2.4-x86-64-linux-binary.tar.bz2 9450469 SHA256 c9d1c5c309bfa1dc5440ac0c6ee358415b62f87cf092131df9e7c2f718bdb2c2 SHA512 cbcfd4e3872c07cfb1cde10fee6c548c5349f9b08dc765962ca52e32f426386fa2d7160be17c68b7bdad0a648ef4acee0bd098558d9506688d0023c8147eea79 WHIRLPOOL 12079b5f4293c21b46243ce7bd7cdeac1015da7b4a26a6f9536ef5727677ead8fcf621294a900e8548262bc186b33517a9abd8bd3646a74cd08c312f7f156e6c +DIST sbcl-1.2.6-source.tar.bz2 5460124 SHA256 4108035eebdd7af3d4a21bd7cb87443b7e9a8eb31e7f855ca2d4b4be8320f389 SHA512 7d3b453f27be0f825b6fad3fd4f58afd587c14c8c8fd60551504776cb4d75706b925260499c41044da2d519baec31373abc14e0ea7a847bc7fc9a3cacca65d9e WHIRLPOOL d1e0ce7630a831d77d3ae2645a51ed86cc808c9d3f3a0c9af070139142190e60e04df84d178c92eef21238222ecc2abb149c6600b30927e5d5d4dbdbfd46864d +DIST sbcl-1.2.6-x86-64-linux-binary.tar.bz2 10466349 SHA256 9c21e63cc2a023d9d785621d935f6f758dcd688d8f9f30a4753eb6a1a75e2fe2 SHA512 bb2f3f70ab4429dbc1339e17856a126d720e804eb0bd7aede9d1ebe28af5cbe2e29667d54c59101f711f4e7814cec8b0c39ef3756478a1456b1cf67763761635 WHIRLPOOL 0883c771684d92dc908edb4a60a1a9fc5de948e0fc16e019e41b454bd6d3a880dc8615f6be3beb44ed2c08d8543d7ca539d531377ecbce96194f98e39ce6c68b +DIST sbcl-1.2.7-armhf-linux-binary.tar.bz2 9914851 SHA256 5e75a328882b739befcf5c38e8039b830668a8ca7bafe56a9e13ef23f39eb253 SHA512 2c82bdfe4f070a43964e694f81ccdbb84f8dd3bf77c807343daadff877b518fcd52e05513691543ca076c2b6de8bcf8b2e672b31f5ed3f545bedb02bbf7cd868 WHIRLPOOL 8e0eab53a9bfe10a1ccaa5c950e9fe045aeaa23f9f66ca98badd5a0fce3ad5828c0059904c73584dd4591fb3f9b2eefb5210a19f2de9fd8d699d48b0cee3bbef +DIST sbcl-1.2.7-powerpc-linux-binary.tar.bz2 9884585 SHA256 d2f86db4f6fe2b6e6bbc6353ce28dead1b142ed36885080b97304db55aae2861 SHA512 7b9fef12d3d6397adec6a0c26d1431a18b8d91b5bf009034eb2501de9fd60dc04dd2e3cd2d9feb9204d4631360aea88ba07a9ad75dad0767b5dcc5e62e84e790 WHIRLPOOL 4b884ab946e8c54775970aa502054f42a92d01257449796c7d1a6bd1ff5835ddae1c94aa5d936a7a5b115183c6cee5251034646559e4435a6663896fa302c4be +DIST sbcl-1.2.7-source.tar.bz2 5472699 SHA256 b27099d8c9fb5c63673e7dc4a83f82b4088dd0ed02e849a4d164aa1b12cc5283 SHA512 0d5655a5362250559a06590d6c8fac223b4461697ca826d96fa87bdf86c2d133c7ca4bde7de32a04259f061d1066d389dbb5b004d717d095e4c153ae8239b36f WHIRLPOOL 9699fe67d574a63bb6dca4c9c3321c2781a8acdfd4554676951d80f13a19ee40979d3a0df182ae452ce5476413a66d7870f0a99b3b4286e118be5cbec31b644a +DIST sbcl-1.2.7-x86-64-linux-binary.tar.bz2 10528686 SHA256 92094d7a5ea19891a6245064b12d4e1125aa065634ad24b6607ab08c37e95b40 SHA512 5d925df9022584732793121a67b6d37bab4d35b999748fbd6fd8d9c8cd212b01569bf265bf1edca33ce37b400597da21e4c66685a3f93b29548d26108ff3b5df WHIRLPOOL aa631d6a06dc67031fcb60ccecec13859a2648f9d0bf39db5ea4de62129ed8dac9592ef32acd2934e3e26e2225c4d0befdf30e7733ae4a9200498926a7193a5f +DIST sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 10438955 SHA256 a0a13e83b35dbac36284459747a03c6db20cd089864e16a6380a12a6aa138115 SHA512 9566cebf8fc29ead1f919309e3f98aeb618e97b34c80f53d1f739f1a3f4ef4cbaebd1c67f0b32172a0cdf14dc405eb75d0e916dedf3b8a758cdec2368d25f5c1 WHIRLPOOL 4946b9a4463c92517233298f898510ca57b4127da93d7d42cf28005bbd96b8d1eba7472f73029f45d6c0e75f3de5b893a34f33feee92a60cef8ae4f2b4d4fa0e +DIST sbcl-1.2.7-x86-linux-binary.tar.bz2 10516485 SHA256 724425fe0d28747c7d31c6655e39fa8c27f9ef4608c482ecc60089bcc85fc31d SHA512 ca09beeafeb40f21eb1a377f04a69d57feb5549fa63aadf2e39aa65f3875418bdab755e22b567b3f2c514fb94534b739a57606288912ffc5cddf370a400e9e5c WHIRLPOOL 41b3f5a9749c74f136b8bb4f519409902045cd9501b5b944e7bcbf9336dd6640388641d26f8c345d79a1028ae64bb04fb74228886f8c2ae0eb085a8586635e17 +DIST sbcl-1.2.7-x86-solaris-binary.tar.bz2 10351529 SHA256 a198df14f45cdf302017116744c8946a8b4143291efe1799553554133c22b46a SHA512 b30d40f0095bb43719ba2e1a619f53fe5f0bccaa08a35481bc5feeb0dd5b540018a9ec9f61799de89991a85750577922cb4e56db4d7dab8f07e18bbc643bdad1 WHIRLPOOL 05ad3606b23e6196d443328f367b7351612d0f4991d71a5a04f1f45b5bb604809d6ed11c8cf62bc639d6f9dd8e5704b52a050603d4745713c5818fcbd36852bf +DIST sbcl-1.2.9-source.tar.bz2 5518280 SHA256 603e15bf15b0fb644362864d3866e96a4c3328d88de1a7da09b26b4b3d089a5f SHA512 1645e83b9625c50670d13b877601de49d4210abcb94cfffe7065906055e15be442581aa13e26fbd3e2e033230f2cd772731f9cd491118769c8ff950aa54a039c WHIRLPOOL 5491a28c6e0373108359c9ab936efe5a4b1cb3b83319821a88599798dfd8af9467e75dfb718f39860149078189d13e36b394c3e492a7760709a2916a680a26d3 +DIST sbcl-1.2.9-x86-64-linux-binary.tar.bz2 10172369 SHA256 67753b3f84ad70a1597fa178e32f2dfaa536a6d61f46d15ab2a1477cc7f7d3db SHA512 ffd3a39128d60d6b2fa16bf1b7f5947adc761714bd4a454fa1f22b49b28dbb14527380efd7ad1b2ac2ad7e56a17e60f6255f82816ead11071a2e6831893a14aa WHIRLPOOL 47b9246297d5a498e2b58651c1c20bad15ab05cb0e5a1947463448b1a99718e25915df420aa1a3999f929aed683376a5d2d1cc70c4c743df8749e5b09b0d992b diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch new file mode 100644 index 000000000000..88f6fa588cee --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch @@ -0,0 +1,350 @@ +diff -r -U2 sbcl-1.2.11.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.2.11/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-1.2.11.orig/contrib/sb-bsd-sockets/tests.lisp 2015-04-27 20:56:47.000000000 +0600 ++++ sbcl-1.2.11/contrib/sb-bsd-sockets/tests.lisp 2015-04-28 22:27:32.588146072 +0600 +@@ -36,13 +36,13 @@ + ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-#-(and dragonfly sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;#-(and dragonfly sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + + (deftest make-inet-socket.smoke +@@ -92,19 +92,19 @@ + t) + +-#-win32 +-(deftest make-inet6-socket.smoke +- (handler-case +- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) +- (> (socket-file-descriptor s) 1)) +- (address-family-not-supported () t)) +- t) +- +-#-win32 +-(deftest make-inet6-socket.keyword +- (handler-case +- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) +- (> (socket-file-descriptor s) 1)) +- (address-family-not-supported () t)) +- t) ++;#-win32 ++;(deftest make-inet6-socket.smoke ++; (handler-case ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) ++; (> (socket-file-descriptor s) 1)) ++; (address-family-not-supported () t)) ++; t) ++ ++;#-win32 ++;(deftest make-inet6-socket.keyword ++; (handler-case ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) ++; (> (socket-file-descriptor s) 1)) ++; (address-family-not-supported () t)) ++; t) + + (deftest* (non-block-socket) +@@ -114,52 +114,52 @@ + t) + +-(deftest inet-socket-bind +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet-address "127.0.0.1")) +- (s1 (make-instance 'inet-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (progn +- (socket-bind s1 address 0) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t))) +- (socket-close s1) +- (socket-close s2))) +- t) +- +-#-win32 +-(deftest inet6-socket-bind +- (handler-case +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet6-address "::1")) +- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (handler-case +- (socket-bind s1 address 0) +- (socket-error () +- ;; This may mean no IPv6 support, can't fail a test +- ;; because of that (address-family-not-supported doesn't catch that) +- t) +- (:no-error (x) +- (declare (ignore x)) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t)))) +- (socket-close s1) +- (socket-close s2))) +- (address-family-not-supported () t)) +- t) ++;(deftest inet-socket-bind ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet-address "127.0.0.1")) ++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (progn ++; (socket-bind s1 address 0) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t))) ++; (socket-close s1) ++; (socket-close s2))) ++; t) ++ ++;#-win32 ++;(deftest inet6-socket-bind ++; (handler-case ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet6-address "::1")) ++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (handler-case ++; (socket-bind s1 address 0) ++; (socket-error () ++; ;; This may mean no IPv6 support, can't fail a test ++; ;; because of that (address-family-not-supported doesn't catch that) ++; t) ++; (:no-error (x) ++; (declare (ignore x)) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t)))) ++; (socket-close s1) ++; (socket-close s2))) ++; (address-family-not-supported () t)) ++; t) + + (deftest* (simple-sockopt-test) +@@ -228,35 +228,35 @@ + ;;; the message ended up + +-#-win32 +-(deftest simple-local-client +- (progn +- ;; SunOS (Solaris) and Darwin systems don't have a socket at +- ;; /dev/log. We might also be building in a chroot or +- ;; something, so don't fail this test just because the file is +- ;; unavailable, or if it's a symlink to some weird character +- ;; device. +- (when (block nil +- (handler-bind ((sb-posix:syscall-error +- (lambda (e) +- (declare (ignore e)) +- (return nil)))) +- (sb-posix:s-issock +- (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) +- (let ((s (make-instance 'local-socket :type :datagram))) +- (format t "Connecting ~A... " s) +- (finish-output) +- (handler-case +- (socket-connect s "/dev/log") +- (sb-bsd-sockets::socket-error () +- (setq s (make-instance 'local-socket :type :stream)) +- (format t "failed~%Retrying with ~A... " s) +- (finish-output) +- (socket-connect s "/dev/log"))) +- (format t "ok.~%") +- (let ((stream (socket-make-stream s :input t :output t :buffering :none))) +- (format stream +- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) +- t) +- t) ++;#-win32 ++;(deftest simple-local-client ++; (progn ++; ;; SunOS (Solaris) and Darwin systems don't have a socket at ++; ;; /dev/log. We might also be building in a chroot or ++; ;; something, so don't fail this test just because the file is ++; ;; unavailable, or if it's a symlink to some weird character ++; ;; device. ++; (when (block nil ++; (handler-bind ((sb-posix:syscall-error ++; (lambda (e) ++; (declare (ignore e)) ++; (return nil)))) ++; (sb-posix:s-issock ++; (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) ++; (let ((s (make-instance 'local-socket :type :datagram))) ++; (format t "Connecting ~A... " s) ++; (finish-output) ++; (handler-case ++; (socket-connect s "/dev/log") ++; (sb-bsd-sockets::socket-error () ++; (setq s (make-instance 'local-socket :type :stream)) ++; (format t "failed~%Retrying with ~A... " s) ++; (finish-output) ++; (socket-connect s "/dev/log"))) ++; (format t "ok.~%") ++; (let ((stream (socket-make-stream s :input t :output t :buffering :none))) ++; (format stream ++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) ++; t) ++; t) + + +@@ -373,58 +373,58 @@ + len address port (subseq buf 0 (min 10 len))))))) + +-#+sb-thread +-(deftest interrupt-io +- (let (result) +- (labels +- ((client (port) +- (setf result +- (let ((s (make-instance 'inet-socket +- :type :stream +- :protocol :tcp))) +- (socket-connect s #(127 0 0 1) port) +- (let ((stream (socket-make-stream s +- :input t +- :output t +- :buffering :none))) +- (handler-case +- (prog1 +- (catch 'stop +- (progn +- (read-char stream) +- (sleep 0.1) +- (sleep 0.1) +- (sleep 0.1))) +- (close stream)) +- (error (c) +- c)))))) +- (server () +- (let ((s (make-instance 'inet-socket +- :type :stream +- :protocol :tcp))) +- (setf (sockopt-reuse-address s) t) +- (socket-bind s (make-inet-address "127.0.0.1") 0) +- (socket-listen s 5) +- (multiple-value-bind (* port) +- (socket-name s) +- (let* ((client (sb-thread:make-thread +- (lambda () (client port)))) +- (r (socket-accept s)) +- (stream (socket-make-stream r +- :input t +- :output t +- :buffering :none)) +- (ok :ok)) +- (socket-close s) +- (sleep 5) +- (sb-thread:interrupt-thread client +- (lambda () (throw 'stop ok))) +- (sleep 5) +- (setf ok :not-ok) +- (write-char #\x stream) +- (close stream) +- (socket-close r)))))) +- (server)) +- result) +- :ok) ++;#+sb-thread ++;(deftest interrupt-io ++; (let (result) ++; (labels ++; ((client (port) ++; (setf result ++; (let ((s (make-instance 'inet-socket ++; :type :stream ++; :protocol :tcp))) ++; (socket-connect s #(127 0 0 1) port) ++; (let ((stream (socket-make-stream s ++; :input t ++; :output t ++; :buffering :none))) ++; (handler-case ++; (prog1 ++; (catch 'stop ++; (progn ++; (read-char stream) ++; (sleep 0.1) ++; (sleep 0.1) ++; (sleep 0.1))) ++; (close stream)) ++; (error (c) ++; c)))))) ++; (server () ++; (let ((s (make-instance 'inet-socket ++; :type :stream ++; :protocol :tcp))) ++; (setf (sockopt-reuse-address s) t) ++; (socket-bind s (make-inet-address "127.0.0.1") 0) ++; (socket-listen s 5) ++; (multiple-value-bind (* port) ++; (socket-name s) ++; (let* ((client (sb-thread:make-thread ++; (lambda () (client port)))) ++; (r (socket-accept s)) ++; (stream (socket-make-stream r ++; :input t ++; :output t ++; :buffering :none)) ++; (ok :ok)) ++; (socket-close s) ++; (sleep 5) ++; (sb-thread:interrupt-thread client ++; (lambda () (throw 'stop ok))) ++; (sleep 5) ++; (setf ok :not-ok) ++; (write-char #\x stream) ++; (close stream) ++; (socket-close r)))))) ++; (server)) ++; result) ++; :ok) + + (defmacro with-client-and-server ((server-socket-var client-socket-var) &body body) +@@ -485,4 +485,5 @@ + client server (unsigned-byte 8) ,direction))))) + +- (define-shutdown-tests :output) +- (define-shutdown-tests :io)) ++; (define-shutdown-tests :output) ++; (define-shutdown-tests :io)) ++) diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.6.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.6.patch new file mode 100644 index 000000000000..7852979384be --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.6.patch @@ -0,0 +1,157 @@ +diff -r -U1 sbcl-1.2.6.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.2.6/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-1.2.6.orig/contrib/sb-bsd-sockets/tests.lisp 2014-11-30 00:56:58.000000000 +0600 ++++ sbcl-1.2.6/contrib/sb-bsd-sockets/tests.lisp 2014-12-20 20:02:26.863408300 +0600 +@@ -37,11 +37,11 @@ + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-#-(and dragonfly sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;#-(and dragonfly sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + +@@ -93,13 +93,13 @@ + +-#-win32 +-(deftest make-inet6-socket.smoke +- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) +- +-#-win32 +-(deftest make-inet6-socket.keyword +- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) ++;#-win32 ++;(deftest make-inet6-socket.smoke ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) ++ ++;#-win32 ++;(deftest make-inet6-socket.keyword ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) + +@@ -131,22 +131,22 @@ + +-#-win32 +-(deftest inet6-socket-bind +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet6-address "::1")) +- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (progn +- (socket-bind s1 address 0) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t))) +- (socket-close s1) +- (socket-close s2))) +- t) ++;#-win32 ++;(deftest inet6-socket-bind ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet6-address "::1")) ++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (progn ++; (socket-bind s1 address 0) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t))) ++; (socket-close s1) ++; (socket-close s2))) ++; t) + +@@ -217,33 +217,33 @@ + +-#-win32 +-(deftest simple-local-client +- (progn +- ;; SunOS (Solaris) and Darwin systems don't have a socket at +- ;; /dev/log. We might also be building in a chroot or +- ;; something, so don't fail this test just because the file is +- ;; unavailable, or if it's a symlink to some weird character +- ;; device. +- (when (block nil +- (handler-bind ((sb-posix:syscall-error +- (lambda (e) +- (declare (ignore e)) +- (return nil)))) +- (sb-posix:s-issock +- (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) +- (let ((s (make-instance 'local-socket :type :datagram))) +- (format t "Connecting ~A... " s) +- (finish-output) +- (handler-case +- (socket-connect s "/dev/log") +- (sb-bsd-sockets::socket-error () +- (setq s (make-instance 'local-socket :type :stream)) +- (format t "failed~%Retrying with ~A... " s) +- (finish-output) +- (socket-connect s "/dev/log"))) +- (format t "ok.~%") +- (let ((stream (socket-make-stream s :input t :output t :buffering :none))) +- (format stream +- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) +- t) +- t) ++;#-win32 ++;(deftest simple-local-client ++; (progn ++; ;; SunOS (Solaris) and Darwin systems don't have a socket at ++; ;; /dev/log. We might also be building in a chroot or ++; ;; something, so don't fail this test just because the file is ++; ;; unavailable, or if it's a symlink to some weird character ++; ;; device. ++; (when (block nil ++; (handler-bind ((sb-posix:syscall-error ++; (lambda (e) ++; (declare (ignore e)) ++; (return nil)))) ++; (sb-posix:s-issock ++; (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) ++; (let ((s (make-instance 'local-socket :type :datagram))) ++; (format t "Connecting ~A... " s) ++; (finish-output) ++; (handler-case ++; (socket-connect s "/dev/log") ++; (sb-bsd-sockets::socket-error () ++; (setq s (make-instance 'local-socket :type :stream)) ++; (format t "failed~%Retrying with ~A... " s) ++; (finish-output) ++; (socket-connect s "/dev/log"))) ++; (format t "ok.~%") ++; (let ((stream (socket-make-stream s :input t :output t :buffering :none))) ++; (format stream ++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) ++; t) ++; t) + diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.7.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.7.patch new file mode 100644 index 000000000000..87e9bea5c2b1 --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.7.patch @@ -0,0 +1,184 @@ +--- sbcl-1.2.7-orig/contrib/sb-bsd-sockets/tests.lisp 2015-01-01 06:09:07.000000000 +1100 ++++ sbcl-1.2.7/contrib/sb-bsd-sockets/tests.lisp 2015-01-07 20:38:50.654557033 +1100 +@@ -35,15 +35,15 @@ + ;;; See https://bugs.launchpad.net/sbcl/+bug/659857 + ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-#-(and dragonfly sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;#-(and dragonfly sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + + (deftest make-inet-socket.smoke + ;; make a socket +@@ -91,17 +91,17 @@ + (:no-error nil)) + t) + +-#-win32 +-(deftest make-inet6-socket.smoke +- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) +- +-#-win32 +-(deftest make-inet6-socket.keyword +- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) ++;#-win32 ++;(deftest make-inet6-socket.smoke ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) ++ ++;#-win32 ++;(deftest make-inet6-socket.keyword ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) + + (deftest* (non-block-socket) + (let ((s (make-instance 'inet-socket :type :stream :protocol :tcp))) +@@ -129,32 +129,32 @@ + (socket-close s2))) + t) + +-#-win32 +-(deftest inet6-socket-bind +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet6-address "::1")) +- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (handler-case +- (socket-bind s1 address 0) +- (socket-error () +- ;; This may mean no IPv6 support, can't fail a test +- ;; because of that +- t) +- (:no-error (x) +- (declare (ignore x)) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t)))) +- (socket-close s1) +- (socket-close s2))) +- t) ++;#-win32 ++;(deftest inet6-socket-bind ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet6-address "::1")) ++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (handler-case ++; (socket-bind s1 address 0) ++; (socket-error () ++; ;; This may mean no IPv6 support, can't fail a test ++; ;; because of that ++; t) ++; (:no-error (x) ++; (declare (ignore x)) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t)))) ++; (socket-close s1) ++; (socket-close s2))) ++; t) + + (deftest* (simple-sockopt-test) + ;; test we can set SO_REUSEADDR on a socket and retrieve it, and in +@@ -221,37 +221,37 @@ + ;;; to look at /etc/syslog.conf or local equivalent to find out where + ;;; the message ended up + +-#-win32 +-(deftest simple-local-client +- (progn +- ;; SunOS (Solaris) and Darwin systems don't have a socket at +- ;; /dev/log. We might also be building in a chroot or +- ;; something, so don't fail this test just because the file is +- ;; unavailable, or if it's a symlink to some weird character +- ;; device. +- (when (block nil +- (handler-bind ((sb-posix:syscall-error +- (lambda (e) +- (declare (ignore e)) +- (return nil)))) +- (sb-posix:s-issock +- (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) +- (let ((s (make-instance 'local-socket :type :datagram))) +- (format t "Connecting ~A... " s) +- (finish-output) +- (handler-case +- (socket-connect s "/dev/log") +- (sb-bsd-sockets::socket-error () +- (setq s (make-instance 'local-socket :type :stream)) +- (format t "failed~%Retrying with ~A... " s) +- (finish-output) +- (socket-connect s "/dev/log"))) +- (format t "ok.~%") +- (let ((stream (socket-make-stream s :input t :output t :buffering :none))) +- (format stream +- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) +- t) +- t) ++;#-win32 ++;(deftest simple-local-client ++; (progn ++; ;; SunOS (Solaris) and Darwin systems don't have a socket at ++; ;; /dev/log. We might also be building in a chroot or ++; ;; something, so don't fail this test just because the file is ++; ;; unavailable, or if it's a symlink to some weird character ++; ;; device. ++; (when (block nil ++; (handler-bind ((sb-posix:syscall-error ++; (lambda (e) ++; (declare (ignore e)) ++; (return nil)))) ++; (sb-posix:s-issock ++; (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) ++; (let ((s (make-instance 'local-socket :type :datagram))) ++; (format t "Connecting ~A... " s) ++; (finish-output) ++; (handler-case ++; (socket-connect s "/dev/log") ++; (sb-bsd-sockets::socket-error () ++; (setq s (make-instance 'local-socket :type :stream)) ++; (format t "failed~%Retrying with ~A... " s) ++; (finish-output) ++; (socket-connect s "/dev/log"))) ++; (format t "ok.~%") ++; (let ((stream (socket-make-stream s :input t :output t :buffering :none))) ++; (format stream ++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) ++; t) ++; t) + + + ;;; these require that the internet (or bits of it, at least) is available diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.9.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.9.patch new file mode 100644 index 000000000000..441b3f82d60a --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.9.patch @@ -0,0 +1,346 @@ +diff --git sbcl-1.2.7/contrib/sb-bsd-sockets/tests.lisp sbcl-1.2.7/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-1.2.7/contrib/sb-bsd-sockets/tests.lisp ++++ sbcl-1.2.7/contrib/sb-bsd-sockets/tests.lisp +@@ -35,15 +35,15 @@ + ;;; See https://bugs.launchpad.net/sbcl/+bug/659857 + ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-#-(and dragonfly sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;#-(and dragonfly sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + + (deftest make-inet-socket.smoke + ;; make a socket +@@ -91,17 +91,17 @@ + (:no-error nil)) + t) + +-#-win32 +-(deftest make-inet6-socket.smoke +- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) ++;#-win32 ++;(deftest make-inet6-socket.smoke ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp")))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) + +-#-win32 +-(deftest make-inet6-socket.keyword +- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) +- (and (> (socket-file-descriptor s) 1) t)) +- t) ++;#-win32 ++;(deftest make-inet6-socket.keyword ++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp))) ++; (and (> (socket-file-descriptor s) 1) t)) ++; t) + + (deftest* (non-block-socket) + (let ((s (make-instance 'inet-socket :type :stream :protocol :tcp))) +@@ -109,52 +109,52 @@ + (non-blocking-mode s)) + t) + +-(deftest inet-socket-bind +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet-address "127.0.0.1")) +- (s1 (make-instance 'inet-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (progn +- (socket-bind s1 address 0) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t))) +- (socket-close s1) +- (socket-close s2))) +- t) +- +-#-win32 +-(deftest inet6-socket-bind +- (let* ((tcp (get-protocol-by-name "tcp")) +- (address (make-inet6-address "::1")) +- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) +- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) +- (unwind-protect +- ;; Given the functions we've got so far, if you can think of a +- ;; better way to make sure the bind succeeded than trying it +- ;; twice, let me know +- (handler-case +- (socket-bind s1 address 0) +- (socket-error () +- ;; This may mean no IPv6 support, can't fail a test +- ;; because of that +- t) +- (:no-error (x) +- (declare (ignore x)) +- (handler-case +- (let ((port (nth-value 1 (socket-name s1)))) +- (socket-bind s2 address port) +- nil) +- (address-in-use-error () t)))) +- (socket-close s1) +- (socket-close s2))) +- t) ++;(deftest inet-socket-bind ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet-address "127.0.0.1")) ++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (progn ++; (socket-bind s1 address 0) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t))) ++; (socket-close s1) ++; (socket-close s2))) ++; t) ++ ++;#-win32 ++;(deftest inet6-socket-bind ++; (let* ((tcp (get-protocol-by-name "tcp")) ++; (address (make-inet6-address "::1")) ++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp)) ++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp))) ++; (unwind-protect ++; ;; Given the functions we've got so far, if you can think of a ++; ;; better way to make sure the bind succeeded than trying it ++; ;; twice, let me know ++; (handler-case ++; (socket-bind s1 address 0) ++; (socket-error () ++; ;; This may mean no IPv6 support, can't fail a test ++; ;; because of that ++; t) ++; (:no-error (x) ++; (declare (ignore x)) ++; (handler-case ++; (let ((port (nth-value 1 (socket-name s1)))) ++; (socket-bind s2 address port) ++; nil) ++; (address-in-use-error () t)))) ++; (socket-close s1) ++; (socket-close s2))) ++; t) + + (deftest* (simple-sockopt-test) + ;; test we can set SO_REUSEADDR on a socket and retrieve it, and in +@@ -221,37 +221,37 @@ + ;;; to look at /etc/syslog.conf or local equivalent to find out where + ;;; the message ended up + +-#-win32 +-(deftest simple-local-client +- (progn +- ;; SunOS (Solaris) and Darwin systems don't have a socket at +- ;; /dev/log. We might also be building in a chroot or +- ;; something, so don't fail this test just because the file is +- ;; unavailable, or if it's a symlink to some weird character +- ;; device. +- (when (block nil +- (handler-bind ((sb-posix:syscall-error +- (lambda (e) +- (declare (ignore e)) +- (return nil)))) +- (sb-posix:s-issock +- (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) +- (let ((s (make-instance 'local-socket :type :datagram))) +- (format t "Connecting ~A... " s) +- (finish-output) +- (handler-case +- (socket-connect s "/dev/log") +- (sb-bsd-sockets::socket-error () +- (setq s (make-instance 'local-socket :type :stream)) +- (format t "failed~%Retrying with ~A... " s) +- (finish-output) +- (socket-connect s "/dev/log"))) +- (format t "ok.~%") +- (let ((stream (socket-make-stream s :input t :output t :buffering :none))) +- (format stream +- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) +- t) +- t) ++;#-win32 ++;(deftest simple-local-client ++; (progn ++; ;; SunOS (Solaris) and Darwin systems don't have a socket at ++; ;; /dev/log. We might also be building in a chroot or ++; ;; something, so don't fail this test just because the file is ++; ;; unavailable, or if it's a symlink to some weird character ++; ;; device. ++; (when (block nil ++; (handler-bind ((sb-posix:syscall-error ++; (lambda (e) ++; (declare (ignore e)) ++; (return nil)))) ++; (sb-posix:s-issock ++; (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))) ++; (let ((s (make-instance 'local-socket :type :datagram))) ++; (format t "Connecting ~A... " s) ++; (finish-output) ++; (handler-case ++; (socket-connect s "/dev/log") ++; (sb-bsd-sockets::socket-error () ++; (setq s (make-instance 'local-socket :type :stream)) ++; (format t "failed~%Retrying with ~A... " s) ++; (finish-output) ++; (socket-connect s "/dev/log"))) ++; (format t "ok.~%") ++; (let ((stream (socket-make-stream s :input t :output t :buffering :none))) ++; (format stream ++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored")))) ++; t) ++; t) + + + ;;; these require that the internet (or bits of it, at least) is available +@@ -367,59 +367,59 @@ + len address port (subseq buf 0 (min 10 len))))))) + + #+sb-thread +-(deftest interrupt-io +- (let (result) +- (labels +- ((client (port) +- (setf result +- (let ((s (make-instance 'inet-socket +- :type :stream +- :protocol :tcp))) +- (socket-connect s #(127 0 0 1) port) +- (let ((stream (socket-make-stream s +- :input t +- :output t +- :buffering :none))) +- (handler-case +- (prog1 +- (catch 'stop +- (progn +- (read-char stream) +- (sleep 0.1) +- (sleep 0.1) +- (sleep 0.1))) +- (close stream)) +- (error (c) +- c)))))) +- (server () +- (let ((s (make-instance 'inet-socket +- :type :stream +- :protocol :tcp))) +- (setf (sockopt-reuse-address s) t) +- (socket-bind s (make-inet-address "127.0.0.1") 0) +- (socket-listen s 5) +- (multiple-value-bind (* port) +- (socket-name s) +- (let* ((client (sb-thread:make-thread +- (lambda () (client port)))) +- (r (socket-accept s)) +- (stream (socket-make-stream r +- :input t +- :output t +- :buffering :none)) +- (ok :ok)) +- (socket-close s) +- (sleep 5) +- (sb-thread:interrupt-thread client +- (lambda () (throw 'stop ok))) +- (sleep 5) +- (setf ok :not-ok) +- (write-char #\x stream) +- (close stream) +- (socket-close r)))))) +- (server)) +- result) +- :ok) ++;(deftest interrupt-io ++; (let (result) ++; (labels ++; ((client (port) ++; (setf result ++; (let ((s (make-instance 'inet-socket ++; :type :stream ++; :protocol :tcp))) ++; (socket-connect s #(127 0 0 1) port) ++; (let ((stream (socket-make-stream s ++; :input t ++; :output t ++; :buffering :none))) ++; (handler-case ++; (prog1 ++; (catch 'stop ++; (progn ++; (read-char stream) ++; (sleep 0.1) ++; (sleep 0.1) ++; (sleep 0.1))) ++; (close stream)) ++; (error (c) ++; c)))))) ++; (server () ++; (let ((s (make-instance 'inet-socket ++; :type :stream ++; :protocol :tcp))) ++; (setf (sockopt-reuse-address s) t) ++; (socket-bind s (make-inet-address "127.0.0.1") 0) ++; (socket-listen s 5) ++; (multiple-value-bind (* port) ++; (socket-name s) ++; (let* ((client (sb-thread:make-thread ++; (lambda () (client port)))) ++; (r (socket-accept s)) ++; (stream (socket-make-stream r ++; :input t ++; :output t ++; :buffering :none)) ++; (ok :ok)) ++; (socket-close s) ++; (sleep 5) ++; (sb-thread:interrupt-thread client ++; (lambda () (throw 'stop ok))) ++; (sleep 5) ++; (setf ok :not-ok) ++; (write-char #\x stream) ++; (close stream) ++; (socket-close r)))))) ++; (server)) ++; result) ++; :ok) + + (defmacro with-client-and-server ((server-socket-var client-socket-var) &body body) + (let ((listen-socket (gensym "LISTEN-SOCKET"))) +@@ -478,5 +478,6 @@ + (define-shutdown-test ,(make-name 'shutdown.client.ub8) + client server (unsigned-byte 8) ,direction))))) + +- (define-shutdown-tests :output) +- (define-shutdown-tests :io)) ++; (define-shutdown-tests :output) ++; (define-shutdown-tests :io)) ++) diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-1.2.patch b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.patch new file mode 100644 index 000000000000..7a7b12bdea14 --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test-1.2.patch @@ -0,0 +1,24 @@ +diff -r -U1 sbcl-1.2.2.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.2.2/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-1.2.2.orig/contrib/sb-bsd-sockets/tests.lisp 2014-07-28 17:15:05.000000000 +0700 ++++ sbcl-1.2.2/contrib/sb-bsd-sockets/tests.lisp 2014-08-01 19:48:30.011931081 +0700 +@@ -31,11 +31,11 @@ + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-#-(and dragonfly sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;#-(and dragonfly sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + diff --git a/dev-lisp/sbcl/files/bsd-sockets-test.patch b/dev-lisp/sbcl/files/bsd-sockets-test.patch new file mode 100644 index 000000000000..d08fd8610b89 --- /dev/null +++ b/dev-lisp/sbcl/files/bsd-sockets-test.patch @@ -0,0 +1,22 @@ +diff -r -U1 sbcl-1.1.14.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-1.1.14/contrib/sb-bsd-sockets/tests.lisp +--- sbcl-1.1.14.orig/contrib/sb-bsd-sockets/tests.lisp 2013-11-30 21:28:17.000000000 +0700 ++++ sbcl-1.1.14/contrib/sb-bsd-sockets/tests.lisp 2014-01-11 20:48:22.762700792 +0700 +@@ -31,10 +31,10 @@ + ;;; for unknown protocols... +-#-(and freebsd sb-thread) +-(deftest get-protocol-by-name/error +- (handler-case (get-protocol-by-name "nonexistent-protocol") +- (unknown-protocol () +- t) +- (:no-error () +- nil)) +- t) ++;#-(and freebsd sb-thread) ++;(deftest get-protocol-by-name/error ++; (handler-case (get-protocol-by-name "nonexistent-protocol") ++; (unknown-protocol () ++; t) ++; (:no-error () ++; nil)) ++; t) + diff --git a/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch b/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch new file mode 100644 index 000000000000..b85fc168ed0e --- /dev/null +++ b/dev-lisp/sbcl/files/concurrency-test-1.2.6.patch @@ -0,0 +1,24 @@ +diff -Nuar a/contrib/sb-concurrency/tests/test-frlock.lisp b/contrib/sb-concurrency/tests/test-frlock.lisp +--- a/contrib/sb-concurrency/tests/test-frlock.lisp 2014-11-29 19:56:58.000000000 +0100 ++++ b/contrib/sb-concurrency/tests/test-frlock.lisp 2014-12-16 23:52:18.569947139 +0100 +@@ -22,9 +22,9 @@ + #+openbsd 0.01 + #-openbsd 0.0001) + +-(defun test-frlocks (&key (reader-count 100) (read-count 1000000) ++(defun test-frlocks (&key (reader-count 50) (read-count 500000) + (outer-read-pause 0) (inner-read-pause 0) +- (writer-count 10) (write-count (/ 1 *minimum-sleep*)) ++ (writer-count 10) (write-count 5000) + (outer-write-pause *minimum-sleep*) (inner-write-pause 0)) + (let ((rw (make-frlock)) + (a 0) +@@ -87,7 +87,7 @@ + #+sb-thread + (deftest* (frlock.1 :fails-on :win32) + (handler-case +- (sb-ext:with-timeout 60 (test-frlocks)) ++ (sb-ext:with-timeout 240 (test-frlocks)) + (sb-ext:timeout (c) + (error "~A" c))) + nil diff --git a/dev-lisp/sbcl/files/concurrency-test.patch b/dev-lisp/sbcl/files/concurrency-test.patch new file mode 100644 index 000000000000..2c97488cc3d7 --- /dev/null +++ b/dev-lisp/sbcl/files/concurrency-test.patch @@ -0,0 +1,16 @@ +diff -r -U1 sbcl-1.1.12.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-1.1.12/contrib/sb-concurrency/tests/test-frlock.lisp +--- sbcl-1.1.12.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2013-09-30 20:15:42.000000000 +0700 ++++ sbcl-1.1.12/contrib/sb-concurrency/tests/test-frlock.lisp 2013-10-14 20:43:05.586366791 +0700 +@@ -19,5 +19,5 @@ + +-(defun test-frlocks (&key (reader-count 100) (read-count 1000000) ++(defun test-frlocks (&key (reader-count 50) (read-count 500000) + (outer-read-pause 0) (inner-read-pause 0) +- (writer-count 10) (write-count 10000) ++ (writer-count 10) (write-count 5000) + (outer-write-pause 0.0001) (inner-write-pause 0)) +@@ -84,3 +84,3 @@ + (handler-case +- (sb-ext:with-timeout 60 (test-frlocks)) ++ (sb-ext:with-timeout 240 (test-frlocks)) + (sb-ext:timeout (c) diff --git a/dev-lisp/sbcl/files/gentoo-fix_install_man.patch b/dev-lisp/sbcl/files/gentoo-fix_install_man.patch new file mode 100644 index 000000000000..87a5f43c0c13 --- /dev/null +++ b/dev-lisp/sbcl/files/gentoo-fix_install_man.patch @@ -0,0 +1,12 @@ +diff --git a/install.sh b/install.sh +index 1400791..ac149c1 100644 +--- a/install.sh ++++ b/install.sh +@@ -106,6 +106,7 @@ echo "Documentation:" + + # man + cp doc/sbcl.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl.1" ++cp doc/sbcl-asdf-install.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl-asdf-install.1" + + # info + for info in doc/manual/*.info diff --git a/dev-lisp/sbcl/files/gentoo-fix_linux-os-c.patch b/dev-lisp/sbcl/files/gentoo-fix_linux-os-c.patch new file mode 100644 index 000000000000..b5c593051186 --- /dev/null +++ b/dev-lisp/sbcl/files/gentoo-fix_linux-os-c.patch @@ -0,0 +1,14 @@ +--- a/src/runtime/linux-os.c 2009-05-01 13:30:51.000000000 +0300 ++++ b/src/runtime/linux-os.c 2010-03-24 02:30:48.000000000 +0200 +@@ -56,11 +56,7 @@ + #include "cheneygc-internal.h" + #endif + +-#ifdef LISP_FEATURE_X86 +-/* Prototype for personality(2). Done inline here since the header file +- * for this isn't available on old versions of glibc. */ + int personality (unsigned long); +-#endif + + size_t os_vm_page_size; + diff --git a/dev-lisp/sbcl/files/gentoo-fix_nopie_for_hardened_toolchain.patch b/dev-lisp/sbcl/files/gentoo-fix_nopie_for_hardened_toolchain.patch new file mode 100644 index 000000000000..d4f94ca2382f --- /dev/null +++ b/dev-lisp/sbcl/files/gentoo-fix_nopie_for_hardened_toolchain.patch @@ -0,0 +1,24 @@ +diff -ur b/src/runtime/Config.x86-linux a/src/runtime/Config.x86-linux +--- b/src/runtime/Config.x86-linux 2012-01-09 02:08:10.000000000 +0000 ++++ a/src/runtime/Config.x86-linux 2012-02-02 14:32:56.000000000 +0000 +@@ -27,7 +27,7 @@ + # (You *are* encouraged to design and implement a coherent stable + # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is + # working on one and it would be a nice thing to have.) +-LINKFLAGS += -Wl,--export-dynamic -m32 ++LINKFLAGS += -Wl,--export-dynamic -m32 -nopie + OS_LIBS = -ldl + + ifdef LISP_FEATURE_LARGEFILE +diff -ur b/src/runtime/Config.x86_64-linux a/src/runtime/Config.x86_64-linux +--- b/src/runtime/Config.x86_64-linux 2012-01-09 02:08:10.000000000 +0000 ++++ a/src/runtime/Config.x86_64-linux 2012-02-02 14:32:44.000000000 +0000 +@@ -27,7 +27,7 @@ + # (You *are* encouraged to design and implement a coherent stable + # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is + # working on one and it would be a nice thing to have.) +-LINKFLAGS += -Wl,--export-dynamic ++LINKFLAGS += -Wl,--export-dynamic -nopie + OS_LIBS = -ldl + + ifdef LISP_FEATURE_LARGEFILE diff --git a/dev-lisp/sbcl/files/gentoo_fix_waitpid_c.patch b/dev-lisp/sbcl/files/gentoo_fix_waitpid_c.patch new file mode 100644 index 000000000000..33b89b224f29 --- /dev/null +++ b/dev-lisp/sbcl/files/gentoo_fix_waitpid_c.patch @@ -0,0 +1,11 @@ +diff -uNr sbcl-1.0.55.orig/src/runtime/run-program.c sbcl-1.0.55/src/runtime/run-program.c +--- a/src/runtime/run-program.c 2012-03-26 06:01:42.000000000 -0400 ++++ b/src/runtime/run-program.c 2012-03-26 06:02:07.000000000 -0400 +@@ -20,6 +20,7 @@ + #include <stdlib.h> + #include <sys/file.h> + #include <sys/types.h> ++#include <sys/wait.h> + #include <signal.h> + #include <sys/stat.h> + #include <fcntl.h> diff --git a/dev-lisp/sbcl/files/sbcl-1.0.55-newglibc.patch b/dev-lisp/sbcl/files/sbcl-1.0.55-newglibc.patch new file mode 100644 index 000000000000..dbc94b06d4c9 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.0.55-newglibc.patch @@ -0,0 +1,43 @@ +Fixes for glibc 2.17. + +linux-os.c is just a missing header (for personality()). + +In x86-64-linux-os.c, __USE_GNU is a glibc-internal name that features.h +defines; _GNU_SOURCE is what it should actually be using to get GNU extensions. + +diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/linux-os.c work/sbcl-1.1.2/src/runtime/linux-os.c +--- tmp/sbcl-1.1.2/src/runtime/linux-os.c 2012-12-01 11:32:38.000000000 +0000 ++++ work/sbcl-1.1.2/src/runtime/linux-os.c 2012-12-31 01:20:37.619000000 +0000 +@@ -46,6 +46,7 @@ + #include <sys/stat.h> + #include <unistd.h> + #include <linux/version.h> ++#include <sys/personality.h> + + #include "validate.h" + #include "thread.h" +diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c +--- tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c 2012-12-01 11:32:38.000000000 +0000 ++++ work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c 2012-12-31 01:20:25.450000000 +0000 +@@ -14,6 +14,9 @@ + * files for more information. + */ + ++/* This is to get REG_RAX etc. from sys/ucontext.h. */ ++#define _GNU_SOURCE ++ + #include <stdio.h> + #include <stddef.h> + #include <sys/param.h> +@@ -21,11 +24,7 @@ + #include <sys/types.h> + #include <unistd.h> + #include <errno.h> +- +-#define __USE_GNU + #include <sys/ucontext.h> +-#undef __USE_GNU +- + + #include "./signal.h" + #include "os.h" diff --git a/dev-lisp/sbcl/files/sbcl-1.0.55_no_doc_install.patch b/dev-lisp/sbcl/files/sbcl-1.0.55_no_doc_install.patch new file mode 100644 index 000000000000..458c637124d7 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.0.55_no_doc_install.patch @@ -0,0 +1,61 @@ +#Patch by Jesus Rivero <neurogeek@gentoo.org> +#Added: Mar 26, 2012 +#Gentoo Specific, not sent upstream + +diff -uNr a/install.sh b/install.sh +--- a/install.sh 2012-03-26 07:17:28.000000000 -0400 ++++ b/install.sh 2012-03-26 07:17:56.000000000 -0400 +@@ -101,52 +101,3 @@ + # share/man/ manpages, should be the same as man/ + # share/info/ info files + # share/doc/ misc documentation +- +-echo +-echo "Documentation:" +- +-# man +-cp doc/sbcl.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl.1" +-cp doc/sbcl-asdf-install.1 "$BUILD_ROOT$MAN_DIR"/man1/ && echo " man $BUILD_ROOT$MAN_DIR/man1/sbcl-asdf-install.1" +- +-# info +-for info in doc/manual/*.info +-do +- cp $info "$BUILD_ROOT$INFO_DIR"/ \ +- && BN=`basename $info` \ +- && DIRFAIL=`install-info --info-dir="$BUILD_ROOT$INFO_DIR" \ +- "$BUILD_ROOT$INFO_DIR"/$BN > /dev/null 2>&1 \ +- || echo "(could not add to system catalog)"` \ +- && echo " info $BUILD_ROOT$INFO_DIR/`basename $info` [$BUILD_ROOT$INFO_DIR/dir] $DIRFAIL" +-done +- +-for info in doc/manual/*.info-* +-do +- cp $info "$BUILD_ROOT$INFO_DIR"/ \ +- && echo " info $BUILD_ROOT$INFO_DIR/`basename $info`" +-done +- +-# pdf +-for pdf in doc/manual/*.pdf +-do +- cp $pdf "$BUILD_ROOT$DOC_DIR"/ \ +- && echo " pdf $BUILD_ROOT$DOC_DIR/`basename $pdf`" +-done +- +-# html +-for html in doc/manual/sbcl doc/manual/asdf +-do +- test -d $html && cp -R -L $html "$BUILD_ROOT$DOC_DIR"/html \ +- && echo " html $BUILD_ROOT$DOC_DIR/html/`basename $html`/index.html" +-done +- +-for html in doc/manual/sbcl.html doc/manual/asdf.html +-do +- cp $html "$BUILD_ROOT$DOC_DIR"/ \ +- && echo " html $BUILD_ROOT$DOC_DIR/`basename $html`" +-done +- +-for f in BUGS CREDITS COPYING NEWS +-do +- cp $f "$BUILD_ROOT$DOC_DIR"/ +-done + diff --git a/dev-lisp/sbcl/files/sbcl-1.0.6-solaris.patch b/dev-lisp/sbcl/files/sbcl-1.0.6-solaris.patch new file mode 100644 index 000000000000..c18ec1e5cc98 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.0.6-solaris.patch @@ -0,0 +1,13 @@ +--- src/runtime/Config.x86-sunos ++++ src/runtime/Config.x86-sunos +@@ -2,8 +2,8 @@ + CFLAGS = -g -O2 -Wall -D__EXTENSIONS__ -D_POSIX_C_SOURCE=199506L -DSVR4 -D_REENTRANT + ASFLAGS = -Wall + LD = ld +-NM = nm -xgp +-GREP = ggrep ++NM = nm -t x -p ++GREP = grep + + ASSEM_SRC = x86-assem.S ldso-stubs.S + ARCH_SRC = x86-arch.c diff --git a/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch b/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch new file mode 100644 index 000000000000..bf03ada518fe --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch @@ -0,0 +1,22 @@ +--- sbcl-1.1.17-orig/src/runtime/Config.x86-linux 2014-03-31 03:14:22.000000000 +1100 ++++ sbcl-1.1.17/src/runtime/Config.x86-linux 2014-04-28 15:34:59.822482441 +1000 +@@ -27,7 +27,7 @@ + # (You *are* encouraged to design and implement a coherent stable + # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is + # working on one and it would be a nice thing to have.) +-LINKFLAGS += -Wl,--export-dynamic -m32 ++LINKFLAGS += -Wl,--export-dynamic -m32 -nopie + OS_LIBS = -ldl + + ifdef LISP_FEATURE_LARGEFILE +--- sbcl-1.1.17-orig/src/runtime/Config.x86-64-linux 2014-03-31 03:14:22.000000000 +1100 ++++ sbcl-1.1.17/src/runtime/Config.x86-64-linux 2014-04-28 15:35:22.364623003 +1000 +@@ -27,7 +27,7 @@ + # (You *are* encouraged to design and implement a coherent stable + # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is + # working on one and it would be a nice thing to have.) +-LINKFLAGS += -Wl,--export-dynamic ++LINKFLAGS += -Wl,--export-dynamic -nopie + OS_LIBS = -ldl + + ifdef LISP_FEATURE_LARGEFILE diff --git a/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch b/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch new file mode 100644 index 000000000000..850fd5d9dba7 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch @@ -0,0 +1,12 @@ +diff -r -U2 sbcl-1.2.11.orig/src/runtime/Config.x86-sunos sbcl-1.2.11/src/runtime/Config.x86-sunos +--- sbcl-1.2.11.orig/src/runtime/Config.x86-sunos 2015-04-27 20:56:50.000000000 +0600 ++++ sbcl-1.2.11/src/runtime/Config.x86-sunos 2015-04-28 22:38:01.569103626 +0600 +@@ -12,6 +12,6 @@ + CC=gcc + CFLAGS = -g -O2 -Wall -D__EXTENSIONS__ -D_POSIX_C_SOURCE=199506L -DSVR4 -D_REENTRANT -fno-omit-frame-pointer +-NM = nm -xgp +-GREP = ggrep ++NM = nm -t x -p ++GREP = grep + + ASSEM_SRC = x86-assem.S ldso-stubs.S diff --git a/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch b/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch new file mode 100644 index 000000000000..ade4f0868c67 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch @@ -0,0 +1,25 @@ +diff -r -U2 sbcl-1.2.13.orig/make.sh sbcl-1.2.13/make.sh +--- sbcl-1.2.13.orig/make.sh 2015-06-29 01:24:03.000000000 +0600 ++++ sbcl-1.2.13/make.sh 2015-06-29 15:53:04.430927942 +0600 +@@ -25,5 +25,5 @@ + # any --xc-host parameter should be suitable for the host machine + # instead of the target. +-sh make-config.sh "$@" || exit $? ++sh -x make-config.sh "$@" || exit $? + + . output/prefix.def +@@ -70,9 +70,9 @@ + # and the make-target-*.sh scripts will take care of transferring the + # necessary files. +-time sh make-host-1.sh +-time sh make-target-1.sh +-time sh make-host-2.sh +-time sh make-target-2.sh +-time sh make-target-contrib.sh ++time sh -x make-host-1.sh ++time sh -x make-target-1.sh ++time sh -x make-host-2.sh ++time sh -x make-target-2.sh ++time sh -x make-target-contrib.sh + + NCONTRIBS=`find contrib -name Makefile -print | wc -l` diff --git a/dev-lisp/sbcl/files/sbcl-1.2.7-verbose-build.patch b/dev-lisp/sbcl/files/sbcl-1.2.7-verbose-build.patch new file mode 100644 index 000000000000..60ead9f3e70a --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl-1.2.7-verbose-build.patch @@ -0,0 +1,28 @@ +--- sbcl-1.2.7-orig/make.sh 2015-01-01 06:09:07.000000000 +1100 ++++ sbcl-1.2.7/make.sh 2015-01-31 13:06:09.652480932 +1100 +@@ -24,7 +24,7 @@ + # thing" when run on the target machine, with the minor caveat that + # any --xc-host parameter should be suitable for the host machine + # instead of the target. +-sh make-config.sh "$@" || exit $? ++sh -x make-config.sh "$@" || exit $? + + . output/prefix.def + . output/build-config +@@ -64,11 +64,11 @@ + # Or, if you can set up the files somewhere shared (with NFS, AFS, or + # whatever) between the host machine and the target machine, the basic + # procedure above should still work, but you can skip the "copy" steps. +-time sh make-host-1.sh +-time sh make-target-1.sh +-time sh make-host-2.sh +-time sh make-target-2.sh +-time sh make-target-contrib.sh ++time sh -x make-host-1.sh ++time sh -x make-target-1.sh ++time sh -x make-host-2.sh ++time sh -x make-target-2.sh ++time sh -x make-target-contrib.sh + + NCONTRIBS=`find contrib -name Makefile -print | wc -l` + NPASSED=`find obj/asdf-cache -name test-passed.test-report -print | wc -l` diff --git a/dev-lisp/sbcl/metadata.xml b/dev-lisp/sbcl/metadata.xml new file mode 100644 index 000000000000..04e46eae8af5 --- /dev/null +++ b/dev-lisp/sbcl/metadata.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>pchrist@gentoo.org</email> + <name>Panagiotis Christopoulos</name> + <description>primary-maintainer</description> + </maintainer> + <maintainer> + <email>sionescu+gentoo@cddr.org</email> + <name>Stelian Ionescu (fe[nl]ix)</name> + <description>second-maintainer</description> + </maintainer> + <herd>common-lisp</herd> + <herd>proxy-maintainers</herd> + <longdescription>Steel Bank Common Lisp is an open source Common + Lisp implementation. It provides an integrated native compiler, + interpreter, and debugger. SBCL is a fork off of the main branch + of CMUCL. SBCL is distinguished from CMUCL by a greater emphasis + on maintainability. In particular, the SBCL system can be built + directly from its source code, so that the output corresponds to + the source code in a controlled, verifiable way, and arbitrary + changes can be made to the system without causing bootstrapping + problems. SBCL also places less emphasis than CMU CL does on new + non-ANSI extensions, or on backward compatibility with old + non-ANSI features. Support for native threading on GNU/Linux is + available for the x86 and amd64 platforms using an NPTL enabled + GLIBC. SBCL 0.8.17 and later support Unicode. +</longdescription> + <use> + <flag name="asdf">Include support for <pkg>dev-lisp/asdf in SBCL</pkg></flag> + <flag name="ldb">Include support for the SBCL low level debugger</flag> + <flag name="pax_kernel">Enable if the user plans to run the package under a pax enabled hardened kernel</flag> + </use> + <upstream> + <remote-id type="sourceforge">sbcl</remote-id> + </upstream> +</pkgmetadata> diff --git a/dev-lisp/sbcl/sbcl-1.0.55-r1.ebuild b/dev-lisp/sbcl/sbcl-1.0.55-r1.ebuild new file mode 100644 index 000000000000..e179ed29b59e --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.0.55-r1.ebuild @@ -0,0 +1,203 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=3 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.37 +BV_AMD64=1.0.37 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ppc ~sparc x86" +IUSE="+asdf ldb source +threads +unicode debug doc pax_kernel" + +DEPEND="doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="asdf? ( >=dev-lisp/gentoo-init-0.1 )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + cat > "${CONFIG}" <<'EOF' +(lambda (list) + (flet ((enable (x) (pushnew x list)) + (disable (x) (setf list (remove x list)))) +EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "$(usep ldb)" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + cat >> "${CONFIG}" <<'EOF' + ) + list) +EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + epatch "${FILESDIR}"/gentoo-fix_linux-os-c.patch + epatch "${FILESDIR}"/gentoo_fix_waitpid_c.patch + + if use !doc; then + epatch "${FILESDIR}"/${P}_no_doc_install.patch + fi + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #463882, patch from upstream https://bugs.launchpad.net/sbcl/+bug/1095036 + epatch "${FILESDIR}"/${P}-newglibc.patch + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh + sed "s,/lib,/$(get_libdir),g" -i install.sh + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c # #define SBCL_HOME ... + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if use pax_kernel ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^echo \/\/doing warm init - compilation phase$/a\paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + cat > "${D}"/etc/sbclrc <<EOF +;;; The following is required if you want source location functions to +;;; work in SLIME, for example. + +(setf (logical-pathname-translations "SYS") + '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) +EOF + if use asdf; then + cat >> "${D}"/etc/sbclrc <<EOF + +;;; Setup ASDF2 +(load "/etc/gentoo-init.lisp") +EOF + fi + + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # Install documentation + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.1.18.ebuild b/dev-lisp/sbcl/sbcl-1.1.18.ebuild new file mode 100644 index 000000000000..0b14a4900a21 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.1.18.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.58 +BV_AMD64=1.1.18 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="amd64 ppc sparc x86" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND="=dev-lisp/asdf-3.0*:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.3 || ( <sys-libs/glibc-2.6[nptl] >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + epatch "${FILESDIR}"/gentoo-fix_linux-os-c.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test.patch + # bug #486552 + epatch "${FILESDIR}"/bsd-sockets-test.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^echo \/\/doing warm init - compilation phase$/a\paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${D}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.10.ebuild b/dev-lisp/sbcl/sbcl-1.2.10.ebuild new file mode 100644 index 000000000000..0eae4e2d66f5 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.10.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.2.7 +BV_AMD64=1.2.10 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.2.7 +BV_PPC_MACOS=1.0.47 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.1.8 +BV_SPARC_SOLARIS=1.0.23 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test-1.2.6.patch + # bugs #486552, #527666, #517004 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.9.patch + + epatch "${FILESDIR}"/${PN}-1.0.6-solaris.patch + epatch "${FILESDIR}"/${PN}-1.2.7-verbose-build.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =.*\$@CFLAGS = ${CFLAGS} -g -Wall -Wsign-compare@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.11.ebuild b/dev-lisp/sbcl/sbcl-1.2.11.ebuild new file mode 100644 index 000000000000..76ec4b262e59 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.11.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.2.7 +BV_AMD64=1.2.11 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.2.7 +BV_PPC_MACOS=1.0.47 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.1.8 +BV_SPARC_SOLARIS=1.0.23 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test-1.2.6.patch + # bugs #486552, #527666, #517004 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.11.patch + + epatch "${FILESDIR}"/${PN}-1.2.11-solaris.patch + epatch "${FILESDIR}"/${PN}-1.2.7-verbose-build.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =.*\$@CFLAGS = ${CFLAGS} -g -Wall -Wsign-compare@" \ + -e "s@LINKFLAGS =.*\$@LINKFLAGS = ${LDFLAGS} -g@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.13.ebuild b/dev-lisp/sbcl/sbcl-1.2.13.ebuild new file mode 100644 index 000000000000..c1cd8c033b00 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.13.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.2.7 +BV_AMD64=1.2.13 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.2.7 +BV_PPC_MACOS=1.0.47 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.1.8 +BV_SPARC_SOLARIS=1.0.23 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test-1.2.6.patch + # bugs #486552, #527666, #517004 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.11.patch + + epatch "${FILESDIR}"/${PN}-1.2.11-solaris.patch + epatch "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =.*\$@CFLAGS = ${CFLAGS} -g -Wall -Wsign-compare@" \ + -e "s@LINKFLAGS =.*\$@LINKFLAGS = ${LDFLAGS} -g@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.2.ebuild b/dev-lisp/sbcl/sbcl-1.2.2.ebuild new file mode 100644 index 000000000000..66a59c36f232 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.2.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.58 +BV_AMD64=1.2.2 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND="=dev-lisp/asdf-3.0*:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.3 || ( <sys-libs/glibc-2.6[nptl] >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + epatch "${FILESDIR}"/gentoo-fix_linux-os-c.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test.patch + # bug #486552 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${D}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.4.ebuild b/dev-lisp/sbcl/sbcl-1.2.4.ebuild new file mode 100644 index 000000000000..f498c332271a --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.4.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.58 +BV_AMD64=1.2.4 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.3 || ( <sys-libs/glibc-2.6[nptl] >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + epatch "${FILESDIR}"/gentoo-fix_linux-os-c.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test.patch + # bug #486552 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${D}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.6.ebuild b/dev-lisp/sbcl/sbcl-1.2.6.ebuild new file mode 100644 index 000000000000..f11863fb4593 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.6.ebuild @@ -0,0 +1,211 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.0.58 +BV_AMD64=1.2.6 +BV_PPC=1.0.28 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.6 )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-linux sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}/concurrency-test-${PV}.patch" + # bugs #486552, #527666 + epatch "${FILESDIR}"/bsd-sockets-test-${PV}.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${D}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${D}/usr" LIB_DIR="/usr/$(get_libdir)" DOC_DIR="${D}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${D}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${D}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${D}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.7.ebuild b/dev-lisp/sbcl/sbcl-1.2.7.ebuild new file mode 100644 index 000000000000..8c7c70271b30 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.7.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.2.7 +BV_AMD64=1.2.7 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.2.7 +BV_PPC_MACOS=1.0.47 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.1.8 +BV_SPARC_SOLARIS=1.0.23 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}/concurrency-test-1.2.6.patch" + # bugs #486552, #527666 + epatch "${FILESDIR}"/bsd-sockets-test-${PV}.patch + + epatch "${FILESDIR}"/${PN}-1.0.6-solaris.patch + epatch "${FILESDIR}"/${PN}-1.2.7-verbose-build.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} diff --git a/dev-lisp/sbcl/sbcl-1.2.9.ebuild b/dev-lisp/sbcl/sbcl-1.2.9.ebuild new file mode 100644 index 000000000000..48046f30011d --- /dev/null +++ b/dev-lisp/sbcl/sbcl-1.2.9.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit multilib eutils flag-o-matic pax-utils + +#same order as http://www.sbcl.org/platform-table.html +BV_X86=1.2.7 +BV_AMD64=1.2.9 +BV_PPC=1.2.7 +BV_SPARC=1.0.28 +BV_ALPHA=1.0.28 +BV_ARM=1.2.7 +BV_PPC_MACOS=1.0.47 +BV_X86_MACOS=1.1.6 +BV_X64_MACOS=1.1.8 +BV_SPARC_SOLARIS=1.0.23 +BV_X86_SOLARIS=1.2.7 +BV_X64_SOLARIS=1.2.7 + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + amd64? ( mirror://sourceforge/sbcl/${PN}-${BV_AMD64}-x86-64-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-powerpc-linux-binary.tar.bz2 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + alpha? ( mirror://sourceforge/sbcl/${PN}-${BV_ALPHA}-alpha-linux-binary.tar.bz2 ) + arm? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM}-armhf-linux-binary.tar.bz2 ) + ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-binary.tar.bz2 ) + x86-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_MACOS}-x86-darwin-binary.tar.bz2 ) + x64-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_MACOS}-x86-64-darwin-binary.tar.bz2 ) + sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-solaris-binary.tar.bz2 ) + x86-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X86_SOLARIS}-x86-solaris-binary.tar.bz2 ) + x64-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_X64_SOLARIS}-x86-64-solaris-binary.tar.bz2 )" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x86-solaris" +IUSE="debug doc source +threads +unicode pax_kernel zlib" + +CDEPEND=">=dev-lisp/asdf-3.1:=" +DEPEND="${CDEPEND} + doc? ( sys-apps/texinfo >=media-gfx/graphviz-2.26.0 ) + pax_kernel? ( sys-apps/paxctl sys-apps/elfix )" +RDEPEND="${CDEPEND} + !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.6 ) )" + +# Disable warnings about executable stacks, as this won't be fixed soon by upstream +QA_EXECSTACK="usr/bin/sbcl" + +CONFIG="${S}/customize-target-features.lisp" +ENVD="${T}/50sbcl" + +# Prevent ASDF from using the system libraries +CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" +ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" + +usep() { + use ${1} && echo "true" || echo "false" +} + +sbcl_feature() { + echo "$( [[ ${1} == "true" ]] && echo "(enable ${2})" || echo "(disable ${2})")" >> "${CONFIG}" +} + +sbcl_apply_features() { + sed 's/^X//' > "${CONFIG}" <<-'EOF' + (lambda (list) + X (flet ((enable (x) (pushnew x list)) + X (disable (x) (setf list (remove x list)))) + EOF + if use x86 || use amd64; then + sbcl_feature "$(usep threads)" ":sb-thread" + fi + sbcl_feature "true" ":sb-ldb" + sbcl_feature "false" ":sb-test" + sbcl_feature "$(usep unicode)" ":sb-unicode" + sbcl_feature "$(usep zlib)" ":sb-core-compression" + sbcl_feature "$(usep debug)" ":sb-xref-for-internals" + sed 's/^X//' >> "${CONFIG}" <<-'EOF' + X ) + X list) + EOF + cat "${CONFIG}" +} + +src_unpack() { + unpack ${A} + mv sbcl-*-* sbcl-binary || die + cd "${S}" +} + +src_prepare() { + epatch "${FILESDIR}"/gentoo-fix_install_man.patch + # bug #468482 + epatch "${FILESDIR}"/concurrency-test-1.2.6.patch + # bugs #486552, #527666, #517004 + epatch "${FILESDIR}"/bsd-sockets-test-1.2.9.patch + + epatch "${FILESDIR}"/${PN}-1.0.6-solaris.patch + epatch "${FILESDIR}"/${PN}-1.2.7-verbose-build.patch + + # To make the hardened compiler NOT compile with -fPIE -pie + if gcc-specs-pie ; then + einfo "Disabling PIE..." + epatch "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch + fi + + # bug #526194 + sed -e "s@CFLAGS =@CFLAGS = ${CFLAGS}@" \ + -e "s@LINKFLAGS =@LINKFLAGS = ${LDFLAGS}@" \ + -i src/runtime/GNUmakefile || die + + sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \ + -i make-config.sh || die + + cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die + + use source && sed 's%"$(BUILD_ROOT)%$(MODULE).lisp "$(BUILD_ROOT)%' -i contrib/vanilla-module.mk + + # Some shells(such as dash) don't have "time" as builtin + # and we don't want to DEPEND on sys-process/time + sed "s,^time ,," -i make.sh || die + sed "s,/lib,/$(get_libdir),g" -i install.sh || die + # #define SBCL_HOME ... + sed "s,/usr/local/lib,${EPREFIX}/usr/$(get_libdir),g" -i src/runtime/runtime.c || die + # change location of /etc/sbclrc ... + sed "s,/etc/sbclrc,${EPREFIX}/etc/sbclrc,g" -i src/code/toplevel.lisp || die + + find . -type f -name .cvsignore -delete +} + +src_configure() { + # customizing SBCL version as per + # http://sbcl.cvs.sourceforge.net/sbcl/sbcl/doc/PACKAGING-SBCL.txt?view=markup + echo -e ";;; Auto-generated by Gentoo\n\"gentoo-${PR}\"" > branch-version.lisp-expr + + # applying customizations + sbcl_apply_features +} + +src_compile() { + local bindir="${WORKDIR}"/sbcl-binary + + strip-unsupported-flags ; filter-flags -fomit-frame-pointer + + if host-is-pax ; then + # To disable PaX on hardened systems + pax-mark -mr "${bindir}"/src/runtime/sbcl + + # Hack to disable PaX on second GENESIS stage + sed -i -e '/^[ \t]*echo \/\/doing warm init - compilation phase$/a\ paxmark.sh -mr \.\/src\/runtime\/sbcl' \ + "${S}"/make-target-2.sh || die "Cannot disable PaX on second GENESIS runtime" + fi + + # clear the environment to get rid of non-ASCII strings, see bug 174702 + # set HOME for paludis + env - HOME="${T}" PATH="${PATH}" \ + CC="$(tc-getCC)" AS="$(tc-getAS)" LD="$(tc-getLD)" \ + CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" ASFLAGS="${ASFLAGS}" LDFLAGS="${LDFLAGS}" \ + GNUMAKE=make ./make.sh \ + "sh ${bindir}/run-sbcl.sh --no-sysinit --no-userinit --disable-debugger" \ + || die "make failed" + + # need to set HOME because libpango(used by graphviz) complains about it + if use doc; then + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/manual info html || die "Cannot build manual" + env - HOME="${T}" PATH="${PATH}" \ + CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" \ + ASDF_OUTPUT_TRANSLATIONS="(:output-translations :ignore-inherited-configuration)" \ + make -C doc/internals info html || die "Cannot build internal docs" + fi +} + +src_test() { + ewarn "Unfortunately, it is known that some tests fail eg." + ewarn "run-program.impure.lisp. This is an issue of the upstream's" + ewarn "development and not of Gentoo's side. Please, before filing" + ewarn "any bug(s) search for older submissions. Thank you." + time ( cd tests && sh run-tests.sh ) +} + +src_install() { + # install system-wide initfile + dodir /etc/ + sed 's/^X//' > "${ED}"/etc/sbclrc <<-EOF + ;;; The following is required if you want source location functions to + ;;; work in SLIME, for example. + X + (setf (logical-pathname-translations "SYS") + X '(("SYS:SRC;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/src/**/*.*") + X ("SYS:CONTRIB;**;*.*.*" #p"${EPREFIX}/usr/$(get_libdir)/sbcl/**/*.*"))) + X + ;;; Setup ASDF2 + (load "${EPREFIX}/etc/common-lisp/gentoo-init.lisp") + EOF + + # Install documentation + unset SBCL_HOME + INSTALL_ROOT="${ED}/usr" LIB_DIR="${EPREFIX}/usr/$(get_libdir)" DOC_DIR="${ED}/usr/share/doc/${PF}" \ + sh install.sh || die "install.sh failed" + + # bug #517008 + pax-mark -mr "${D}"/usr/bin/sbcl + + # rm empty directories lest paludis complain about this + find "${ED}" -empty -type d -exec rmdir -v {} + + + if use doc; then + dohtml -r doc/manual/ + doinfo doc/manual/*.info* + dohtml -r doc/internals/sbcl-internals + doinfo doc/internals/sbcl-internals.info + docinto internals-notes && dodoc doc/internals-notes/* + else + rm -Rv "${ED}/usr/share/doc/${PF}" || die + fi + + dodoc BUGS CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README TLA TODO + + # install the SBCL source + if use source; then + ./clean.sh + cp -av src "${ED}/usr/$(get_libdir)/sbcl/" || die + fi + + # necessary for running newly-saved images + echo "SBCL_HOME=${EPREFIX}/usr/$(get_libdir)/${PN}" > "${ENVD}" + echo "SBCL_SOURCE_ROOT=${EPREFIX}/usr/$(get_libdir)/${PN}/src" >> "${ENVD}" + doenvd "${ENVD}" +} |