summaryrefslogtreecommitdiff
path: root/dev-lisp/sbcl
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-lisp/sbcl
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-lisp/sbcl')
-rw-r--r--dev-lisp/sbcl/Manifest42
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test-1.2.11.patch350
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-1.2.6.patch24
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-1.3.15.patch17
-rw-r--r--dev-lisp/sbcl/files/gentoo-fix_install_man.patch12
-rw-r--r--dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch40
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch22
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.2.11-solaris.patch12
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.2.13-verbose-build.patch25
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.11-config.patch16
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch363
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch383
-rw-r--r--dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch29
-rw-r--r--dev-lisp/sbcl/metadata.xml36
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.11.ebuild242
-rw-r--r--dev-lisp/sbcl/sbcl-1.3.21.ebuild237
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.7.ebuild246
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.8.ebuild246
-rw-r--r--dev-lisp/sbcl/sbcl-1.4.9.ebuild246
19 files changed, 2588 insertions, 0 deletions
diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest
new file mode 100644
index 000000000000..96eed01a1e1f
--- /dev/null
+++ b/dev-lisp/sbcl/Manifest
@@ -0,0 +1,42 @@
+AUX bsd-sockets-test-1.2.11.patch 14240 BLAKE2B c9b9989c6dc484ba72877e5cfd4b69ded30b8801334b5cf95a4ff8544ef814f6777147a3d1d9e9285fd1a145c842fe73fc1f98c3b3d96d810346350efd46d4a1 SHA512 5da3fcb4b0e76abd218716b14d5deb1612b100761672216330105afb591c83408910a5de10e99e2f6d9372036c7f6897b889a9241ef84b0564600eddfba83073
+AUX concurrency-test-1.2.6.patch 1069 BLAKE2B a802300284267942da91ba205ce1a002da3731a7220b0b10fa77b8c347636ee2c2660b590bb18af565a083fb2235b9d3eafd66ba8796d6b7357d032403fb6115 SHA512 6969cec62ee9ee0ecb2aff34c854f51fd93b52f768ed1e1bf7cb3686c370c6e6b1d0691159b5d404f8d5e12e90a1447e6098ed83b0bb1ff4dc7f454f7052ec53
+AUX concurrency-test-1.3.15.patch 967 BLAKE2B 220bdd3ac1c40d2921440fb1ea67ec99f7766b6c33d014be57201502ed122c8cf12875be0ccd5c74fa14d0280a5ece8f63100971eca2f9ffb7a35dac1b7f17b2 SHA512 628429eacd8c513190229260fcfc8ce403072fb7b4bade10c3b65e30a3fc60f1057b018b7043590a205626f3e2f05b244ffd48afa864911d350d37aa84eb1a98
+AUX gentoo-fix_install_man.patch 399 BLAKE2B f0f04de59f5ddd69a54fcfa5feb4c8038e7e37c923d8ca93d061b642cd01a39b9d1a0f54b00a8a1fbc654788d0224b4949bf225e97048fc73fa2196969ae3496 SHA512 bc5118ddf2fd851dcabf773cc7443fa0d3f5a5b83715173110f9164c631faaf8c2d6b247f7ac205da23bb388ff459eba228deeaa2a45202870b7f97376564030
+AUX sb-posix-test-1.2.15.patch 1325 BLAKE2B 051500de2167bb963c6b20cf8f57a03e9326e9e8c79ce249fb23aa7f041c62384717d545f2e6aeefac900af9c27f640218543a218bf902081bcec69968108df1 SHA512 79fd75eb5c44630eb6669b1808029420c7031cc1ba367b8687d7433bf0d19016a7912df0ab21c90aa7e709417ec9784c846c7dcefbc1308a059cbd8b3209dd27
+AUX sbcl-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch 1024 BLAKE2B 73899d54f3951347f3b1d340f1333fee2480816ae601299bebd3341598d98d7cecee1de246e1084427c97863b66cad8ce4dd88a4a0ef1390871592adce3baca2 SHA512 a09efe91a082fd2bed9dc30652f3e5ed51e416697b7b2fee4d6c5f90db0ecbadca7adf652f532d79869fde9186e9d16855f5fd81321cb2a82e1a158d4cde9e97
+AUX sbcl-1.2.11-solaris.patch 500 BLAKE2B 060508d99acaea6ce0b8f881ae191be329af9ad6ec5174ffc28551b7d1a9690a087e2d11ca129413996a24c9fc8e9de4fbc30b09e90d7723b70c7c68b3b30b93 SHA512 4dbd0cc499f3cb634330db9843e82b88830e45e63402a082f51e02b0dcb1541f35e8cb0410aa25bf283af3c0372a8a39220b3f11b7288de2c5c768ac133780bc
+AUX sbcl-1.2.13-verbose-build.patch 835 BLAKE2B 9afec842d7130c28ebe45dd41b3668b33050cff39f93eb57ad167112807795578aa7b25d9db566acf7739fa6d6a21b4c00a9ef4e6e301d1b8ad61e6cc9ad3567 SHA512 da3b1479bec7fc98eab1ae0dc67c0f483512dace899644f8fa7ed5742910a9b852934c86a0b2f4ba4df15715b9dd01cf2d5b826fd6687b67888066b7d3cf8da7
+AUX sbcl-1.3.11-config.patch 630 BLAKE2B 7c8abce227890314a8d9a926d33336b670e1238a2402d331824bd2438be3c90cf0e7648ad2d4dd8290c792ef6c765d71bfed54a5e818f861478d04565ce6f4e5 SHA512 f76584df3309f76510070752c356396d50114bd180142a7af120c5a6f43c1a0591644ba93d27e04aa88ca79dd13d48accbd48c371bf9e519916db81a5fc4208b
+AUX sbcl-1.3.19-bsd-sockets-test.patch 14992 BLAKE2B 8363595b4ace41ee1aad359eff61be856dae84fecc4ae7471675bb9b2abb6b80d79b108431faf38816d49a785e093f0c8a8c6f652ff6375755d9921e7e0bf8d4 SHA512 9c1d2558d25aa0bccc7245673a7e85f6b377f4a4e37aaa9417b838c2b602de527de9f1beebd75028d7a3bee2b11ebd6b23dd511436ec6c902c616ca13b502c63
+AUX sbcl-1.4.0-bsd-sockets-test.patch 15625 BLAKE2B 016d9ff9ef952c0b51fc0d03670a352dc12f6d40283bd7cef2110a0c795160b07412ca117e988aad71e19dd2629666aa6b3d6b17cbc123973f33d5d44e70e281 SHA512 59120ce76dd3c24b48edebda4d4536eb570fa7fab67ef8e995d89b72c5702333943ea7f39c674091773996b67add22e6fff7abd041acbb0e83a3e0e002097d74
+AUX sbcl-1.4.0-verbose-build.patch 936 BLAKE2B 2ec498fbe58e5b4ed8786f8554801ef89fa8300db7aeea45b09e1136254ca7cad92aadafa05d3d687c52267f444f7c7d2bd7b1d52ca5d502787f046f33708a4f SHA512 10b9e32a122910cca131bb5b4f1fbc098fa588a77b6cea2086a4f8458bcd70d5a7c2ad25018ac72b417d6fba8769d09e7debaffc23ef8f9a3b184d7f5729ec8d
+DIST sbcl-1.0.23-sparc-solaris-binary.tar.bz2 7907803 BLAKE2B 4be6831c196cfef505b411fa9ae0b9586f93309ce97fcd2b964abfb4175f00f7437da7859334973f2441592fc1a13cc5557044737659f5ef13998b593d623cda SHA512 d641d7859f0d60ce7dd684a0f21e62282a5a658ed6bb4d67d6b141b3ce22d9e27261efe7e5d0f752c30e467cf90d7c8a03ad2a04b3c60042f0ef0a4808a9c74a
+DIST sbcl-1.0.28-alpha-linux-binary.tar.bz2 7573824 BLAKE2B ab8e139adb4fbc0ac7b34457c3361b044d04d8d9dedba2008cb19220915900e2d1bf540b617c738145923d74fa28ab7d979fd0d1bf4b9d17c445dfb080731263 SHA512 85ceb4d3bf971777f5444a63cbabd88ccfaf16ed3b3c86cc5ea6cb3fd3189c4cd5a5ebbf785c97366afb7026604ffc34a1129936291deede5993056e158125ab
+DIST sbcl-1.0.28-sparc-linux-binary.tar.bz2 8032042 BLAKE2B ca4213ef00447d66406d1c752a1653fd628deba0e112f55a5625dad61da30c0be7c60fe4e84e8dcc9d9946db553ad544dc39b28d62124d8e3d6197943efc944a SHA512 cea1ba06f85169fca9fe3026813c6e7e8e8209b874e048b7bd63cb3a1c5bd7c829e8dbb2c486977e190a0390d28e4845938a9e84378f4f2f16f72bf0b6f45c80
+DIST sbcl-1.0.47-powerpc-darwin-binary.tar.bz2 8217590 BLAKE2B 68da614df7d27ecf08a21603d4f172344c86e650176d238fe73d7756a626b694e2165b9157e53732730861d085902e5cc893b967073168fe3845cd2621668b87 SHA512 8118de56e448bce7a72b832e661eb4e2687eed675f88f766f7043c843a432e35121d9e6f9da8d22ac690c54bda0d55ecb07728748ce2cdd57320f49b4b812b86
+DIST sbcl-1.1.6-x86-darwin-binary.tar.bz2 9091955 BLAKE2B b532828cc729ffef17d0bedb827a1482edb190f5740d14dbff347f8cfe61f1960c5011162dc620ebb8d99fbd8f8bbf070923a59b8639ea9985219b58d334cd27 SHA512 5b9d58ba1a7bcf3aa5011ac5ba1c8dba65e44b2c3f8a31b15db54de6b34ea0f7482c45f1cc4e1323e154ce79fbba030112df3795cb323bca46bac50f15d2a138
+DIST sbcl-1.2.11-x86-64-darwin-binary.tar.bz2 10038928 BLAKE2B b434f65e9e42341645ac91c8f35ffeb6d2d7f043544ca9af7c519a46df15cee6d2fe4d0a56c10643c6f263e8deb75bcfb00cc399d1f32c10d53c20a9842c45db SHA512 c271796f854fe884e0d8aa6504bbe2e6c078de1555fc9a823463640cfd8c793dbddcb3f32932788d84a41e2b8a085b95c97c13a15c43fc909dcaad18ce25f215
+DIST sbcl-1.2.7-powerpc-linux-binary.tar.bz2 9884585 BLAKE2B 1870da882fc5e466eaf5e96ed46aed600660bdfe836eabe145cf9ea4713e537a7d45dd76538d899801d0e3ea944c4ccfff1c9688fc695890bb4cac69135ef046 SHA512 7b9fef12d3d6397adec6a0c26d1431a18b8d91b5bf009034eb2501de9fd60dc04dd2e3cd2d9feb9204d4631360aea88ba07a9ad75dad0767b5dcc5e62e84e790
+DIST sbcl-1.2.7-x86-64-solaris-binary.tar.bz2 10438955 BLAKE2B ca9cd3a55873c648940793ae9fb92dde5e4569b7392932771b31dc71da380267556b3ceb8b099f62576b76d77395123735232c43c0ed1f934d1e004a6194d0fa SHA512 9566cebf8fc29ead1f919309e3f98aeb618e97b34c80f53d1f739f1a3f4ef4cbaebd1c67f0b32172a0cdf14dc405eb75d0e916dedf3b8a758cdec2368d25f5c1
+DIST sbcl-1.2.7-x86-linux-binary.tar.bz2 10516485 BLAKE2B 4036684f398c0766d55a6089fb67ae23520fc949b39525b2ac005f2665cdee8c0901a638e5dfc8e78e5f80963331a5fe2ddd4b0108ddaea063fabfd1d5829f72 SHA512 ca09beeafeb40f21eb1a377f04a69d57feb5549fa63aadf2e39aa65f3875418bdab755e22b567b3f2c514fb94534b739a57606288912ffc5cddf370a400e9e5c
+DIST sbcl-1.2.7-x86-solaris-binary.tar.bz2 10351529 BLAKE2B 9b7324c8177856c6024220ce71070a1a51b93fa9352fe692c3fd5afa9b6cdcbb361c54e354ab1cc1153e6bf15cb0c5fc267c3da03addd5d35fbec840f72a7c06 SHA512 b30d40f0095bb43719ba2e1a619f53fe5f0bccaa08a35481bc5feeb0dd5b540018a9ec9f61799de89991a85750577922cb4e56db4d7dab8f07e18bbc643bdad1
+DIST sbcl-1.3.11-source.tar.bz2 5790557 BLAKE2B d6b493d880ab2481f18381475165a3eed585fa46e626eb1e762cced29a6a7315be638df6f44ffdc694d8fb55509f912267a7dbe8892b6672eb56e839f55908ff SHA512 07cce0b33f1d41bc208827d228ae356b56165bb55fab72c48973a15a63e2e680aafc16db67d36cc4952f71101faaacafd9660276cd67673314f1699d6a91af82
+DIST sbcl-1.3.11-x86-64-linux-binary.tar.bz2 9248214 BLAKE2B f1f6ebbec168a47d7405c15c63a70f10afad2d271d17dfa461f94bd8b1a1c21506a3a9c1d7ffe2501cc70419406e0d73b53a34ff9ff003e4791170101b7b1293 SHA512 ffb443f9e3ede2f9dbdc1bf28554bd59ef1fd5ad855465ee10f9835221fde20211188e881be854b4760870b122dfc6c5ad5c8cad1bea613ffb3b6a6f67a36056
+DIST sbcl-1.3.12-armhf-linux-binary.tar.bz2 9193847 BLAKE2B 27106c0144ee99f534cd0a59cfb331ef8f39dbefdc76e294a8671523b1c05f42353d31b8e74600dd01f85fb5156d39216a877d77aba57a061427ea1dc28a492e SHA512 5bdb4e2b584933e9ee9aaa2ba68328f219f072af802782ee5dedf83baa5c679cd5a1ccbf3458678810ccb8679ffd392d4fba108e86d537e10554c1860bfd4de5
+DIST sbcl-1.3.16-arm64-linux-binary.tar.bz2 11228304 BLAKE2B 7825a53a86fdca32a2f99ff9ec9337b041c468831815d59f173a9f62e839e7b3f9f7a8d4e7d0d7586d126ac71fef332c193211e828528715036681776f3c59d6 SHA512 919835547d7613f64a2470157401e83c14584049602f21566a324af9fcbdfa838f5f2a7c5c6e28f3c3b5ccdec640024ce9c12b607a25741ad4c4d6e9813af3b8
+DIST sbcl-1.3.21-source.tar.bz2 5901141 BLAKE2B 6c8c678a964595fdc74121e62ce46721c37dc326591a0401fa162e8abd2cd35f4ce4c58d426607239077669609e55277c0d88f3ab26a7fad4bfcd9c5463439d7 SHA512 845f4977b46236b9e018c6c7e5cf5628aed6b75b0ec942cd0c54fb91b6dc7d46369e346cd3c3dbb3f4084e06ef81a168c5f5fec72c4ca649504aeaef4b71c1e5
+DIST sbcl-1.3.21-x86-64-linux-binary.tar.bz2 10633302 BLAKE2B bb427994983d3ba5dc079dfa50188ed7339dee8a1e7ffb571c51b0c727b9d03ecef31f287837a6f3fc1f2dc0bbd4d92b4d4d078fb41e559a540ed6f411a74370 SHA512 a0ce82d35874344e72dd013df835000eb07656f3fcdb583e577f9d6ab37d7f81ab0c8c20e2f809d9d36c4139274fe722bb1e8a6ceb3f47d1f62bc3fc46c5cade
+DIST sbcl-1.3.9-armhf-linux-binary.tar.bz2 9161130 BLAKE2B 0dbfe39803d6e3955124fa1a619da7b6d4ec9e7d6eb78e868508c61bf478a980cb15ba427ef0b38d0f051ce38b881020534c0d37bfbcd81a8d763654283669ec SHA512 309e2ac7ef9ac95bf751432cf243af0de022c5b21054df2bf4e99da4ff087218af72b0ab3be69214eba3df1b6bbe707cc28840508e960c5d2ed2af0e86de3fdd
+DIST sbcl-1.4.2-arm64-linux-binary.tar.bz2 10578821 BLAKE2B 1cd25c548be0f1b7ec01edc3bee7fe6c2aaf07b7bd1fc55d408dee7ac95e8f3761a194bf9e8efb734179a7eff04cdae2fe5ba4a9ba5ab06f7322ac1550d142cc SHA512 39bbd735b242aa0bbac05c6f4dbe28cb45e01684db7e5b4f1e51f995a9f9d5b484f63cc4243f472f72b3b1e6c4cd2268a7e812b15426eca5cf9a1fede10f44bb
+DIST sbcl-1.4.3-x86-linux-binary.tar.bz2 10227185 BLAKE2B 6d77c4f4177cbdb72fb9bab0da5bd91e0aa8deafffd238818a2551332f0ab246715d9489b5c1156f3481aa7fb79d161a988404620fc09fe86ff927543a1ee678 SHA512 41cd63d61dd7c46370341dce39a362287a23b528bfebe8e5571614aeefdea03d318207d25562e995db9ccedb6c1f50ea4d66627721f0fd9486e99440126e6a38
+DIST sbcl-1.4.7-source.tar.bz2 6031614 BLAKE2B b98d8c3891e4f3180624ef0ccc1e81146d97e58c577c9efb2b3ac178f81a836f4019111a6c33ec31edb47d41920249c33a87955303c02ffc608ea42747b7f662 SHA512 b6eb749878920bec90f50f19c8c8700f700677ae1a7f7fb1ba1bbaa37f218d36eeee0dea65eb200f0cd09a9694600969f4c15042faf357395715b5390a6fdb6b
+DIST sbcl-1.4.7-x86-64-linux-binary.tar.bz2 10380734 BLAKE2B 0d39cc7b0873e938e85182b687b0a1be9200c4ebe67c7175b7c9c6393b27c8f78bd2afa201b7ca91c39bcaeed4456f2578901518850b1db0975cddd55e9b0210 SHA512 517b6935e51ea56ee2c67692980fe7fa7382a2e4501437c7ec00a52aefeebd5e442f4bb8dbfdbe32e43a301fc5f0c584604027e7889ebb8ba269cafe866d6381
+DIST sbcl-1.4.8-source.tar.bz2 6040563 BLAKE2B e4d16993cec80a8d40bad9071c6ce0a9ce80aae4d49f682fc58d4a8124dd14200229dc063cb653af753afece1ca98d77b600d2c7f80d17e6b9fd8af33a5297f3 SHA512 f8bd6b4126b19de4e73557319118aa03999caf84c8913bdd51ce18b8ddba14944f3d1daf08f852b72ae862ae0e613dbfbfdddca3750f4464c1be924d685ccc9d
+DIST sbcl-1.4.8-x86-64-linux-binary.tar.bz2 10353701 BLAKE2B 5b56f46fbdb87f015ed1fe103b6caaf43d2d424b45e2574e306b3d3cbc3c7bdfa48847a2e6d7d819e6bf4b59fa02ea01f9ce6b023802ae6f91fc7f56e5a260de SHA512 f3cb3c30dec1b7e6ac0c1b67de26192723871f8a8d543a41d7c4d04b0813fd7da1043433237b648a2c23f73169fe38f2ec3a3c2bd412eb4c9d36ed929c40f27d
+DIST sbcl-1.4.9-source.tar.bz2 6051607 BLAKE2B 8abcaf73233ea1a23d47987b16554636dcf94acfbc7ab731f0730fdb4a8176593fb3ab52d9b25b3dd56753cd984f7e0eddb1585a142eb7ad1aa5e3e03d7b0ca9 SHA512 e0248f460f9737d47653dd520732062d2637813b550df356ecc90aa6d21fbdd74f03182d1e890c09c1da742f7d57b4fbd04a4e6dc36999aca51bb6c2952ac236
+EBUILD sbcl-1.3.11.ebuild 8382 BLAKE2B 7df1cb22c53debbc4f972fd230bd4cef1132f234946a06309d6bedb3bc9a8c51b582ccd2e671895bc270985e3ce82b4aa56ef21a4a31ca1b91e98318e560f2b4 SHA512 d6b00cc75cc3bc55be589d4e7690469e1ae8d8c00174ec67d83eff42f977e0840a97c22550be732ce0335b38d38b0429f0a47d9cf4de25402d91ea7814c3c351
+EBUILD sbcl-1.3.21.ebuild 8318 BLAKE2B ff8e43085524e8e02a5af841962dedc9667a99a9ca4167227eee069957c7db66ad204d2548b64eb0c506719683f6069b62f10c3965737c4291cfa05aeeed35e9 SHA512 4e277a575b10bf4b1ba510bc7827c920c9aeeb68073b2c4e24ec3c354437c0a1eaa9ffeaab12dde5aa46b2a883a8d681aa0726c990911d6b1213c09f2df13798
+EBUILD sbcl-1.4.7.ebuild 8669 BLAKE2B c8132a464276020c610727546c1508e9d552d524195ee7e82766e732b90869129b7bf483c42f56b195b8a1873679acaf0f9bd2d99a0b36141b96985275dacd63 SHA512 2c20dd0576b2245ab07d41c83512a7d3a45d4c5f566bc1182ebfab1981c41bd4dce8cb82f84a5c0441a461efa337952bf3fcdb44e8635a24eb1daf7795cecf2b
+EBUILD sbcl-1.4.8.ebuild 8669 BLAKE2B 2d4131570d6646076c2404fcbec93c999dc75f24652ed861bf9f981309066c15f16a4a90701ab19522f93157339cd0228daa466acef7424ec490f1a05e4e806a SHA512 3f41a91f91304b76f7503e2f3796a4536442700b94407e2794dc14874a9b72fdde4c3a1ebab245c7f658aee6fced45345eea63b7df4d36e317e3aed36a3a0e7c
+EBUILD sbcl-1.4.9.ebuild 8669 BLAKE2B 2d4131570d6646076c2404fcbec93c999dc75f24652ed861bf9f981309066c15f16a4a90701ab19522f93157339cd0228daa466acef7424ec490f1a05e4e806a SHA512 3f41a91f91304b76f7503e2f3796a4536442700b94407e2794dc14874a9b72fdde4c3a1ebab245c7f658aee6fced45345eea63b7df4d36e317e3aed36a3a0e7c
+MISC metadata.xml 1545 BLAKE2B 6ac4ec13b49c7cbbeb17685711c51c0cbcfa2be86062380dd72f78c05edf1e61880f41d5ea3c38c2f08f643be40e38e3a63a1da538f2c6f578877811ecf5f41e SHA512 a1099403e6672d31e2769d6e90fafc9f31258daa53f4838c05e1ed6be035a192f3f6357065426f24c34f996ff759e2285b66a6786baaaf725896b37bde66943e
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/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-1.3.15.patch b/dev-lisp/sbcl/files/concurrency-test-1.3.15.patch
new file mode 100644
index 000000000000..53b5bea06bc1
--- /dev/null
+++ b/dev-lisp/sbcl/files/concurrency-test-1.3.15.patch
@@ -0,0 +1,17 @@
+diff -r -U2 sbcl-1.3.15.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-1.3.15/contrib/sb-concurrency/tests/test-frlock.lisp
+--- sbcl-1.3.15.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2017-02-28 20:51:29.000000000 +0100
++++ sbcl-1.3.15/contrib/sb-concurrency/tests/test-frlock.lisp 2017-03-02 18:15:41.225284441 +0100
+@@ -25,5 +25,5 @@
+ (defun test-frlocks (&key (reader-count 100) (read-count 1000000)
+ (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))
+@@ -88,5 +88,5 @@
+ (deftest* (frlock.1)
+ (handler-case
+- (sb-ext:with-timeout 10
++ (sb-ext:with-timeout 240
+ (test-frlocks #+win32 :outer-write-pause #+win32 t ))
+ (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/sb-posix-test-1.2.15.patch b/dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch
new file mode 100644
index 000000000000..517208a791e2
--- /dev/null
+++ b/dev-lisp/sbcl/files/sb-posix-test-1.2.15.patch
@@ -0,0 +1,40 @@
+diff -r -U1 sbcl-1.2.15.orig/contrib/sb-posix/posix-tests.lisp sbcl-1.2.15/contrib/sb-posix/posix-tests.lisp
+--- sbcl-1.2.15.orig/contrib/sb-posix/posix-tests.lisp 2015-08-31 00:59:03.000000000 +0600
++++ sbcl-1.2.15/contrib/sb-posix/posix-tests.lisp 2015-09-22 10:19:20.000000000 +0600
+@@ -169,19 +169,19 @@
+
+-(deftest rmdir.error.3
+- (handler-case
+- (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
+- (sb-posix:syscall-error (c)
+- (typep
+- (sb-posix:syscall-errno c)
+- '(member
+- #+(or darwin openbsd)
+- #.sb-posix:eisdir
+- #+win32
+- #.sb-posix::eacces
+- #+win32
+- #.sb-posix::enotempty
+- #+sunos
+- #.sb-posix::einval
+- #-(or darwin openbsd win32 sunos)
+- #.sb-posix::ebusy)))) t)
++;(deftest rmdir.error.3
++; (handler-case
++; (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
++; (sb-posix:syscall-error (c)
++; (typep
++; (sb-posix:syscall-errno c)
++; '(member
++; #+(or darwin openbsd)
++; #.sb-posix:eisdir
++; #+win32
++; #.sb-posix::eacces
++; #+win32
++; #.sb-posix::enotempty
++; #+sunos
++; #.sb-posix::einval
++; #-(or darwin openbsd win32 sunos)
++; #.sb-posix::ebusy)))) t)
+
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.3.11-config.patch b/dev-lisp/sbcl/files/sbcl-1.3.11-config.patch
new file mode 100644
index 000000000000..e23f1e6d9bcb
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.11-config.patch
@@ -0,0 +1,16 @@
+diff -r -U2 sbcl-1.3.11.orig/src/runtime/Config.x86-64-linux sbcl-1.3.11/src/runtime/Config.x86-64-linux
+--- sbcl-1.3.11.orig/src/runtime/Config.x86-64-linux 2016-10-30 23:28:43.000000000 +0700
++++ sbcl-1.3.11/src/runtime/Config.x86-64-linux 2016-11-16 23:27:37.248815622 +0700
+@@ -58,12 +58,4 @@
+ endif
+
+-# The following works for Ubuntu 16.10. There must be a better way to
+-# do this across various flavors of linux.
+-ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e no-pie),)
+-CFLAGS += -fno-pie
+-LINKFLAGS += -no-pie
+-LDFLAGS += -no-pie
+-endif
+-
+ # Nothing to do for after-grovel-headers.
+ .PHONY: after-grovel-headers
diff --git a/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch b/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch
new file mode 100644
index 000000000000..c5a16ae05778
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.3.19-bsd-sockets-test.patch
@@ -0,0 +1,363 @@
+diff -Nuar a/contrib/sb-bsd-sockets/tests.lisp b/contrib/sb-bsd-sockets/tests.lisp
+--- a/contrib/sb-bsd-sockets/tests.lisp 2017-06-28 12:51:14.000000000 +0200
++++ b/contrib/sb-bsd-sockets/tests.lisp 2017-07-02 17:18:23.862316798 +0200
+@@ -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)
+
+ (when (handler-case (make-instance 'inet-socket
+ :type :stream
+@@ -102,21 +102,21 @@
+ (:no-error nil))
+ 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))
+- ((or address-family-not-supported protocol-not-supported-error) () 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))
+- ((or address-family-not-supported protocol-not-supported-error) () 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))
++; ((or address-family-not-supported protocol-not-supported-error) () 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))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (non-block-socket)
+@@ -125,55 +125,55 @@
+ (non-blocking-mode s))
+ t)
+
+-#+ipv4-support
+-(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)))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#+ipv4-support
++;(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)))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (simple-sockopt-test)
+@@ -241,37 +241,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
+@@ -388,60 +388,60 @@
+ (format t "Received ~A bytes from ~A:~A - ~A ~%"
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+(and ipv4-support 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)
++;#+(and ipv4-support 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)
+ (let ((listen-socket (gensym "LISTEN-SOCKET")))
+@@ -501,5 +501,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/sbcl-1.4.0-bsd-sockets-test.patch b/dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch
new file mode 100644
index 000000000000..d51bdd5c507c
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.4.0-bsd-sockets-test.patch
@@ -0,0 +1,383 @@
+diff -Nuar a/contrib/sb-bsd-sockets/tests.lisp b/contrib/sb-bsd-sockets/tests.lisp
+--- a/contrib/sb-bsd-sockets/tests.lisp 2017-09-30 18:30:58.000000000 +0200
++++ b/contrib/sb-bsd-sockets/tests.lisp 2017-10-01 18:45:57.132900158 +0200
+@@ -18,11 +18,11 @@
+ (equalp (make-inet-address "242.1.211.3") #(242 1 211 3))
+ t)
+
+-#-win32
+-(deftest make-inet6-address.1
+- (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
+- #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
+- t)
++;#-win32
++;(deftest make-inet6-address.1
++; (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
++; #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
++; t)
+
+ (deftest get-protocol-by-name/tcp
+ (integerp (get-protocol-by-name "tcp"))
+@@ -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)
+
+ (when (handler-case (make-instance 'inet-socket
+ :type :stream
+@@ -102,21 +102,21 @@
+ (:no-error nil))
+ 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))
+- ((or address-family-not-supported protocol-not-supported-error) () 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))
+- ((or address-family-not-supported protocol-not-supported-error) () 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))
++; ((or address-family-not-supported protocol-not-supported-error) () 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))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (non-block-socket)
+@@ -125,55 +125,55 @@
+ (non-blocking-mode s))
+ t)
+
+-#+ipv4-support
+-(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)))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#+ipv4-support
++;(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)))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (simple-sockopt-test)
+@@ -241,37 +241,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
+
+@@ -387,60 +387,60 @@
+ (format t "Received ~A bytes from ~A:~A - ~A ~%"
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+(and ipv4-support 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)
++;#+(and ipv4-support 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 (((socket-class &rest common-initargs)
+ (listen-socket-var &rest listen-address)
+@@ -503,8 +503,9 @@
+ (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)
++)
+
+ #+linux
+ (deftest abstract.smoke
diff --git a/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch b/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch
new file mode 100644
index 000000000000..27ad3b0758d4
--- /dev/null
+++ b/dev-lisp/sbcl/files/sbcl-1.4.0-verbose-build.patch
@@ -0,0 +1,29 @@
+diff -Nuar a/make.sh b/make.sh
+--- a/make.sh 2017-09-30 18:30:58.000000000 +0200
++++ b/make.sh 2017-10-01 18:08:26.742909789 +0200
+@@ -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
+@@ -76,11 +76,11 @@
+ $@
+ fi
+ }
+-maybetime sh make-host-1.sh
+-maybetime sh make-target-1.sh
+-maybetime sh make-host-2.sh
+-maybetime sh make-target-2.sh
+-maybetime sh make-target-contrib.sh
++maybetime sh -x make-host-1.sh
++maybetime sh -x make-target-1.sh
++maybetime sh -x make-host-2.sh
++maybetime sh -x make-target-2.sh
++maybetime 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..6e4e604220ed
--- /dev/null
+++ b/dev-lisp/sbcl/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>bugs@cddr.org</email>
+ <name>Stelian Ionescu (fe[nl]ix)</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>common-lisp@gentoo.org</email>
+ <name>Gentoo Common Lisp Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <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="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.3.11.ebuild b/dev-lisp/sbcl/sbcl-1.3.11.ebuild
new file mode 100644
index 000000000000..0695a8193433
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.11.ebuild
@@ -0,0 +1,242 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+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.3.11
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.9
+BV_ARM64=1.3.11
+BV_PPC_MACOS=1.0.47
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+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/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() {
+ eapply "${FILESDIR}"/gentoo-fix_install_man.patch
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.2.6.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/bsd-sockets-test-1.2.11.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+ # bug #599902
+ eapply "${FILESDIR}"/${PN}-1.3.11-config.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${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..."
+ eapply "${FILESDIR}"/${PN}-1.1.17-gentoo-fix_nopie_for_hardened_toolchain.patch
+ fi
+
+ eapply_user
+
+ # 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 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 '/^[ \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
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # 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.3.21.ebuild b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
new file mode 100644
index 000000000000..c54c4447f9a7
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.3.21.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+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.3.21
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.3.16
+BV_PPC_MACOS=1.0.47
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+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 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-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/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() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.3.19-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.2.13-verbose-build.patch
+
+ eapply_user
+
+ # bugs #526194 and #620532
+ sed -e "s@CFLAGS +=.*\$@CFLAGS = ${CFLAGS} -Wall -Wsign-compare -Wpointer-arith@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS = ${LDFLAGS}@" \
+ -e "s@LINKFLAGS += -no-pie\$@LINKFLAGS = ${LDFLAGS} -no-pie@" \
+ -e "s@LINKFLAGS += -nopie\$@LINKFLAGS = ${LDFLAGS} -nopie@" \
+ -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 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 '/^[ \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
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # 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.4.7.ebuild b/dev-lisp/sbcl/sbcl-1.4.7.ebuild
new file mode 100644
index 000000000000..4f5351742e1b
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.7.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.7
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+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 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-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 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-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 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-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/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() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || 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
+
+ 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 '/^[ \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
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # 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.4.8.ebuild b/dev-lisp/sbcl/sbcl-1.4.8.ebuild
new file mode 100644
index 000000000000..f07d8939edfa
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.8.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.8
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+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 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-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 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-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 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-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/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() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || 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
+
+ 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 '/^[ \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
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # 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.4.9.ebuild b/dev-lisp/sbcl/sbcl-1.4.9.ebuild
new file mode 100644
index 000000000000..f07d8939edfa
--- /dev/null
+++ b/dev-lisp/sbcl/sbcl-1.4.9.ebuild
@@ -0,0 +1,246 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multilib eutils flag-o-matic pax-utils
+
+#same order as http://www.sbcl.org/platform-table.html
+BV_X86=1.4.3
+BV_AMD64=1.4.8
+BV_PPC=1.2.7
+BV_SPARC=1.0.28
+BV_ALPHA=1.0.28
+BV_ARM=1.3.12
+BV_ARM64=1.4.2
+BV_X86_MACOS=1.1.6
+BV_X64_MACOS=1.2.11
+BV_PPC_MACOS=1.0.47
+BV_X86_SOLARIS=1.2.7
+BV_X64_SOLARIS=1.2.7
+BV_SPARC_SOLARIS=1.0.23
+
+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 )
+ arm64? ( mirror://sourceforge/sbcl/${PN}-${BV_ARM64}-arm64-linux-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 )
+ ppc-macos? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC_MACOS}-powerpc-darwin-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 )
+ sparc-solaris? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC_SOLARIS}-sparc-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/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() {
+ # bug #468482
+ eapply "${FILESDIR}"/concurrency-test-1.3.15.patch
+ # bugs #486552, #527666, #517004
+ eapply "${FILESDIR}"/${PN}-1.4.0-bsd-sockets-test.patch
+ # bugs #560276, #561018
+ eapply "${FILESDIR}"/sb-posix-test-1.2.15.patch
+
+ eapply "${FILESDIR}"/${PN}-1.2.11-solaris.patch
+ eapply "${FILESDIR}"/${PN}-1.4.0-verbose-build.patch
+
+ eapply_user
+
+ # Make sure the *FLAGS variables are sane.
+ # sbcl needs symbols in resulting binaries, so building with the -s linker flag will fail.
+ strip-unsupported-flags
+ filter-flags -fomit-frame-pointer -Wl,-s
+ filter-ldflags -s
+
+ # original bugs #526194, #620532
+ # this broke no-pie default builds, c.f. bug #632670
+ # Pass CFLAGS down by appending our value, to let users override
+ # the default values.
+ # Keep passing LDFLAGS down via the LINKFLAGS variable.
+ sed -e "s@\(CFLAGS += -g .*\)\$@\1 ${CFLAGS}@" \
+ -e "s@LINKFLAGS += -g\$@LINKFLAGS += ${LDFLAGS}@" \
+ -i src/runtime/GNUmakefile || die
+
+ sed -e "s@SBCL_PREFIX=\"/usr/local\"@SBCL_PREFIX=\"${EPREFIX}/usr\"@" \
+ -i make-config.sh || die
+
+ # Use installed ASDF version
+ cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
+ # Avoid installation of ASDF info page. See bug #605752
+ sed '/INFOFILES/s/asdf.info//' -i doc/manual/Makefile || 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
+
+ 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 '/^[ \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
+ dodoc -r doc/internals/sbcl-internals
+
+ doinfo doc/manual/*.info*
+ doinfo doc/internals/sbcl-internals.info
+
+ docinto internals-notes
+ dodoc doc/internals-notes/*
+ else
+ rm -Rv "${ED}/usr/share/doc/${PF}" || die
+ fi
+
+ # 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}"
+}