redhat fixes for bash
Hanno Böck

Hanno Böck commited on 2014-09-27 20:37:35
Zeige 15 geänderte Dateien mit 963 Einfügungen und 0 Löschungen.

... ...
@@ -0,0 +1,63 @@
1
+AUX bash-4.2-execute-job-control.patch 865 SHA256 0b6fc0d467662dd85daa02ba8d50ea612cf4c5274d685d52eb1533b5f164b056 SHA512 c2d45f5e9668a8717137c533ced119315cf03c63fb373e5636c65383a399227e1d2aaef846452a0d3316db20b0b4cc41bde55c9aba2a9a02c1c31462d2273577 WHIRLPOOL 407e6e79afb617c6661453def92da451d2e4231a595557e654924058a6082badd15f8bff119a556322be4d4d4a65bdc785f3275e88324c536a60dccc99acf857
2
+AUX bash-4.2-no-readline.patch 287 SHA256 f145706f0a83939575023929905199ac4359c97530641c39635be36a46fa8d8c SHA512 558b6bc3a7588ca83190264c842a0eb79d838ebe8002f3aecf8a4dbbbbfa770a3568e2f35496ab80683c0317f15afbeb5748bd0c0027c7afbcb0419217dd5847 WHIRLPOOL e760a202352817c8b465d03b9f9101b3c5f87c7d5c88263d086b574bf89834c7d2e9de8aebcb4427e456ce17b1f51e89d3739c5a556179f03ea832cf385ab83d
3
+AUX bash-4.2-parallel-build.patch 4448 SHA256 1c5f7fb5c324d6f2b786ad259cc35bfdd3fe3087e778e4a5031277b33ca097c3 SHA512 44690ed868ed95b7949b21a308f402af64d46873a8eb023f44e3f12381719e66b5c123c75d496ccb3d51b10b7102ae041dc41d55131ff9835757731afb9f7711 WHIRLPOOL 70bf422d8207f08d15cfe95daf5b6ac264bd320c7544ee626efe0afdb751ebd4c953a59e39e44af85273cbdec3ebbd060597ab9ccfcc1b5b767fde4f6afa9916
4
+AUX bash-4.2-read-retry.patch 932 SHA256 37d60b456efd563960a9f1f3f40f0e7f6ef2f9aeb63d8dafabf13853f3d41987 SHA512 b8c9524a1385f8a66b964bc629ed62a1c825415e3388ac4204709440d3feedd5ffa92dd0fb54eab85283b0de49ce24a76836512b737612c0a4c45eb4ab40f8cb WHIRLPOOL b88a33ea5dd903f6049f79d96bd5975074e9b43bf21e5491cd8ccffc1649f4afcf48456b80bb99c3bc576c553c9bb99ca8ca831a85e936e82aef4aa39509a652
5
+AUX bash-4.2-speed-up-read-N.patch 2858 SHA256 8547d32535ed4e2fe5cb7b3503e6044c3f5df3772079509bd02cec4177059dcf SHA512 6b7f611ac35746c5ce8caad49def25d060397d81844c0dda2ba7c73f4b0318a28b3fb89f356695c8a7799b70ab0591d9612619403b7d4ade8aba1e60a933fdae WHIRLPOOL da9647b199f090b358b8186187d9ceff6cc5dd7cb20885f7963c1a1b445bf833093c2db931763a9c05f2e4b87e9e1c201bd34a441c49a39703eca7f3c61b2d49
6
+AUX bash-eol-pushback.patch 311 SHA256 44c1eb25e161ed9b07179ed8a949826cbd2c39d13a4f4368819bc4a56bb4bc3d SHA512 6797632b358f79bab4cc0760eace9e71bb040aa49b3adcfb0d31aa721dc99e5d2bc1334cf79d2a1a3a3e7bedf5b288fa914af2d728312640d550a1dcea506a38 WHIRLPOOL b2c5b534f108e7f7003854c3d37dfd71b837ba21df76a8ea7f5384569ea2d2e3ba14bcfb846e092b01b23d4a82866240d23ca433b94fe6730af3ec5d9d63c97e
7
+AUX bash_logout 205 SHA256 15aaded954389c05d7de5d36c4887db61975ad52c87ad78baf1062ec8997289d SHA512 7234250c03fc920996a381f9daef9e2d8ab1e1a29acdebed6669d8e0fe1c872a7fa343adf7d9ddc81225b0cd9eb223ba7ad1ff42448aff057fc6d6baa8f04a7d WHIRLPOOL 16242c8796af44f550f2935b37c770c022754c63db75b57fbe49d1a313b8651235619ead571cd70ae37f890c694d1c6b2e4871ec51345743eff8649782d0523b
8
+AUX bashrc 2879 SHA256 72a0b0bf010e72667c229475961f56b3684e02bcf1ccb22da63564ea16c08b54 SHA512 cb89537d4f7bc03c0e05d339f0c6c63cbd61f7963d97d0af13fe3cc2e9ac74755573d8acb28f3c6133a7cbd8f9f6c6c745e0bc215702456b2892a9438876c8a2 WHIRLPOOL 2e6ca7bcb3c2fe0923320f43094f6a11729c128a2f78ba2d51adbb07eb477d3e0573a2af844939fbc8dc1aba52eaf9dce043592a8ceb893148ec855a852e7674
9
+AUX dot-bash_logout 127 SHA256 3bcb4958dad662fc2cbe77177236679f7a09b8bdb0be738102df4457394f4022 SHA512 e0248b5087656a4dd3a4790ed8e6101866b922ccab36b510b3bf408dc0c583e70f323fbad0392e4ea6ca5dcbe73568733e0c0aa9c8ce6b00ff5f72bf3e9fd8fd WHIRLPOOL 3dc6bc364f8229d123873940743866dfc330e193ab6ec7c5162c61d0ecc319198a64f27176521bfb979c31eed9ed0b2ee2ffce31b050d4cb8e3aa8a5c12c38cf
10
+AUX dot-bash_profile 193 SHA256 ae12206aaa35dc96273ed421f4e85ca26a1707455e3cc9f054c7f5e2e9c53df6 SHA512 064227bb7658f5ac0aaddd7ddda39daa0ffa924601445afa61c02aa19a990a5def377b125111e4817bf80ed80d33e1c111ee13034958b5de1ff8e50c093359a2 WHIRLPOOL cde8efc527122adbfa90d60a79fbdffd953c5573c5c6c5d499e56093517ceb7b48d9cfadd10b7c1d161b6d7f84276403fc233fca2d6798bcff2d0d052023672b
11
+AUX dot-bashrc 551 SHA256 e280e34af6e830c93adb6285f66ead4812ddfb2bbc6a7ff618467f4c933f6446 SHA512 518b62aa2fa30e7d1692847929a6ce8dae4eac93e8b16d223d1ae86f4d5b076bcbe1852c9034f321c013e17502db9f771979957c67f8e8a71ca4eea7bfe9cc1b WHIRLPOOL 27c53e3f59bd89d5517b5b22bcf04a9adddee0492c52d34d26a707062fb4c4fa853cdf2726d6ec2621a08f24c32a53651ce5693b6de1be764de3e088eb9f7ee6
12
+AUX parser-oob-4.2-rediff.patch 2615 SHA256 585d346db791562072e078b122c4785c0b36630171ca33cfd1846578466e3cfe SHA512 dc51f1ec8072e761e3d1bb1c051a93edec8539973a3fc4b512fb54bb9237e2caa3d8db6c40e426e3a9c185896abb24e26958118bd6eec8ac3cb16fe2de03ac89 WHIRLPOOL 59e0bd9991903fa7d0d408631de36284f512bead58cc44d697c063f75be0220c336292603c1fd6c399cd90e72fb4ba882d6861fd92a9a411be7d81031c2ef021
13
+AUX variables-affix-4.2-rediff.patch 5170 SHA256 52850bcd7b7f73489c4d77abe4167fc5c42646be6532b38d5aa303e13a63a4fc SHA512 6f212eaee056118123818391fcc2fade2cb26593c3b4b1af866a9e94626e15dde46acf7419701b3892c38ec1c5ee2229994b491ab597d0cdf94a895bdaebffd1 WHIRLPOOL 651cd47914d9df69d428342490b3889caa64072f01f5d5ba66734380d54486ce2e5693840253fbf9ffd125f955098325f3bbe8c216c78edb42a4dce48ae30c46
14
+DIST bash-4.2.tar.gz 7009201 SHA256 a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8 SHA512 fdd3c230f4f7a687d36db1b8f7baab5e553cf55756e2d49a88ffaa4260c8cb949897dec9f48655e96608ef0093ac101b60c132060f06c711c0ab81aa3f148b5c WHIRLPOOL fd5f321a8a89381904b1dd1f5acb5100186ce48cccc9b248cf68b35a1c1932177df1fc2b0215131999ee6018decf3264c45e54d407bf4b74ff8e4cc8215c630a
15
+DIST bash42-001 2944 SHA256 8d6ca028576c4af23e660a2fbc2112221a11c8a785c0b37f033967e5cd12b47a SHA512 931f2f1d4e677925b5057558ea6f157073a9ba87bf4ed59e7d8fe20957c5fc40f3384a98fc4a2d5d7b458129ec096d9e28a860b6844ebf15f377778a6ef8aade WHIRLPOOL 72f1c1453d00f72efe77bd31253ee6978415abb3c943e2de4ba458de09af8e9f76469febfbdda54336e4399ea0f63a2cdc93d023b09b8caa97c435e4eab27a52
16
+DIST bash42-002 1780 SHA256 febac927e199aceeba2004908d971d4afb49b521796c3f42d1166f9fbbfbcef9 SHA512 b9ca62e397a05b368b74920d8d1b168367ffe840cf168e312b530c5b390cef3ca53e31db63c9fe15fe1a36e4c98369bf10573db40d20712fb1a016f10e0fc893 WHIRLPOOL d0803c477e120a323e79d842269db60eca7ce0eef8e2b829926a8b337d27cead87e9f8bb26c51f8f68eacfcc280123ad4ebd654c3d6744f361a88ef5c12f2a97
17
+DIST bash42-003 6896 SHA256 5a0a7c15018c87348ea87cb0beea14345faf878dbb0e25c17fa70677194cb4cd SHA512 6cf944ab0f554ab53831cbe114f771671c7a9420778d2caa524c09a24ec8064e7a7ef1355e66ed3a53100b72736284a5b44e2c6bda03a8234a2f2d340ed47ce4 WHIRLPOOL 8ff610b9bf6f81eb7ea68691c6d2bcfdcdc6ae2a5ed503306f4b5cac1f020c59901c3c3a35a6206934407d65be58db60fd2c0e74497a0fd30fc87822e8fbf36f
18
+DIST bash42-004 1686 SHA256 4e34b0f830d2583d56e14225a66937abc81f45bbafcd2eb49daf61c9462140c1 SHA512 aef5e753e59a82df07e18269064ff1d075e3b7558ac5aff7465da997370496bd4ef9c25920d7a47f66110d2ab719742033d96646921782d9ae15a27541765067 WHIRLPOOL 5cb128049a38905a4aef54c69fd1dbe7c0257c5e13de7bdab4c7a0c35b0979df0d6c34706077889f9e17ccb132f0edea96405caf0d2a3861f18c57c6635a05bc
19
+DIST bash42-005 3424 SHA256 a81749e73004b81cfdf0fe075bec365dc1fef756ee5e3fd142821e317d1459a0 SHA512 ef7fbc3fcc8174e7dfb27fb5e977d3a52b1b4b989cd7f748b1b35ea0e581a59668f41ec030e80f2afdc8b43dfcf472fad2985da284632b9228a6fd30ba4d0556 WHIRLPOOL fe5d6d320a4f3c3bf939b3b872b4dfdeeb2ac3baaea0ee871745aed01609e9fd8bfa555711a7e0190a32736e9362fe1c65148ac8d66d10877c59913c41855856
20
+DIST bash42-006 1187 SHA256 c91148945a2ddafa792682d7c8668c59e7e645eae1334b15b0d5d9ad22634bd1 SHA512 018031cc0cb2078937c81bd42459b98cfe793ff7d638ed2bd2859ec1c73da6a420d649f7dd49f2367035fd08af430ba783c68417088b1e4126095ab9467c55c9 WHIRLPOOL 1471ec01a11030b31d479913a952a6b52c65fcdfbcfbc41a76f231ca9de62031bdfa1eef58e5ef1ce493eb018bb97c5a88ff1f371e2337535eb23c770f1af944
21
+DIST bash42-007 1394 SHA256 405826acf443dd1084f236a15cb76d7f0ee2dbe5edff45c5fb836db571fb7e95 SHA512 65cef48b77530a3b87dec1c8c3fb28f553e83f28f24d5e170022b4962472e3e0021a57051800e1ddeebdb78548a3c192c4e1fef0f6e82612321c5d1335e2f8f8 WHIRLPOOL d937f89d9ddd3695c4f8ea73b555baa3073f31331f541e27baab16fbd476192e198f52c337d25afd153cc5fe5673dcdb747482350cb3ecf962c84c09de41996b
22
+DIST bash42-008 2164 SHA256 23080d11a60a78941210e2477f6bca066b45db03defa60da86fd765107ba2437 SHA512 5a782a165701967dc3c34d7723d13668b9ca0c4679de0f6150f42a183425e110281d893f30fa81eae27821a6d89e8ce9d9631268d9e02bca57cb8fece0389f3d WHIRLPOOL 98e06ac0869bc789f62b9e0bdfe7cc7d5a8107bddd2c8a4646072537016afb1d97d9999fde06a85d226770ac4a59ca5c19e7e11f2f878bb72383411c9e8d1914
23
+DIST bash42-009 2384 SHA256 e7ed5440b4c19765786e90e4f1ded43195d38b3e4d1c4b39fcc23de9a74ccb20 SHA512 ad0b58d00f37e8626a0bb664df7e24e0f19dc637aa829ae8f92fbe02a53140a3ca7de00f620c5b53001223a002ec774e5088354b342a640666810fd57cd1ff9a WHIRLPOOL b1af4e438027f10e51112b9e6476d8b3aa14917ccba708634f7927b80adf9333bcaae0a0d91c9aecf32b491b54fac4c8e88cfd355a20d18c7cc28dc6dcc5f05f
24
+DIST bash42-010 1818 SHA256 acfc5482c25e6923116fcf4b4f7f6345b80f75ad7299749db4b736ad67aa43dc SHA512 66e84164be08be47b0d7c8286b7d94a4da8538316dce8f8be54702fed2a44798d5f717ae3f524ce735d071430195ce10052a264f3f458b950fe26381fe6506d0 WHIRLPOOL 5694177e891a3f4b1906819e59b2d0fefd5537da9adecbe067b1c63c1c6a54fad6ecf8a7cd9e31175ac223fd1893d79229ebbea453ead39b8dc29ce4d579bdde
25
+DIST bash42-011 1426 SHA256 a491ae359a7ebbd7321aede561728289d71e1fc84777f402766a8afd4d261532 SHA512 0664fe80f3da9e5e64f1f0fc227e3937db6999526f743e74cf8d6eb589add10449c505422e241f1dfa0cd1e02c03c029cc0b7459850a52cc17d9c3a8d9c26a71 WHIRLPOOL bd72e7865c1f89ee4f1b7a7393b322c7ee3e2c053c0b693f50d3de4fa965d66e182a63b4b8452891638d41cfd4d44e7ffd17843fbc1c8672320bf395946df6a5
26
+DIST bash42-012 4247 SHA256 354433f1d2da02f1b9652cd20a5b85bbfb5bc2aaf79c42461ebd929d89b9b7b8 SHA512 0da4822a29d26d713aa5bfae00911db2db37242ec962edc4f256c8740e345b68e23dcaa4ca8bf37eaaa9e58facde6fe87c3b20c5bad565725a178555aed49503 WHIRLPOOL 23e090f6041c85a5f0057b866200c23852b81aacb8bcfabf44ed6aca4e33eeecb7b0d17b50190b663acffd8ee79c877b4c0b408d1f3cf7b405f2e834cf64d150
27
+DIST bash42-013 1340 SHA256 3412c5c6cbbce6c88592604aec054d8182ce64410038b5ecea69fc3968cf85ea SHA512 25f4caed2f4eb3f65dfb052b4b9b30a02fff8a1e6d6575e2da6bc1ce02d10aeb113870916f0b74ea2cd0722f81bcf8c05f70be1af178cff3c7091151d5791de5 WHIRLPOOL 5320dfe584243fba6c6c538d5a71304d63a4dee784d87714c2d3e9a9987ea7f39113a83076c431140fb5195645c91b7e51f3ed1e32ce6652ed90ba17aeebb7e3
28
+DIST bash42-014 1434 SHA256 b5a678e609858532735f94faedb5fabce00dfd6577a4e9ec5eec85fe682c8b33 SHA512 ea8dbe73d40bdc0bfc1752ad6fea9503b72bf4c204a6b0d04ee898429f2b16bf9fd21f8ce25b72e87efb82769a228ace31f1624f03491383129ce7935ead97aa WHIRLPOOL 868ffa5468262939845fba686377c93f1921d3c83b1070e0b9e937c8587a6b25e4bdf8cc41d584d549b647937949b8d515426ac7adf66cb3c6600218d1826660
29
+DIST bash42-015 1991 SHA256 2d876a8304bdf3d664e87e0a8d73bc4ccc100a9dd8c0d054e8649472d8748a98 SHA512 dd572539a26ae5c80b1c39cce8c548b9de0ab5b5f7e711974413322cb20845690f15d985713facab71957b6988553c0a613d5fa3dee2d263bdd9a8d7a5599ea9 WHIRLPOOL 22a67c207e4f3bd1bfe059d6814b779b5d2efaafad2bdb0442ba40b0344729cfb2ff7ef17c10a970c865d9afe1c28ba9964c8cf319066b7e307668a0bdf357bc
30
+DIST bash42-016 1410 SHA256 2895ccbcf7fc98da73a8fa3ba7440aaf2bfaef6c0af8bdd3a9c39403cf03e2a6 SHA512 2203fd108df4e9c8c93974ce2ac10d8d7bc9b6df1db92ff88b3b394d6fa26ca13de6e308480c192907ecd658df5b4bd3b077a946127b82167c3cac431c3defa3 WHIRLPOOL 89b9dad82200501de1358d8bfffc533bd4909fb58d3d05e901576fd4cfd862474877912c3221eefe65d6c7886057f0c17d688a5cdeb649c34ae4af2ef5214104
31
+DIST bash42-017 1399 SHA256 73552444498c761d6073dd67ccfe043b36ef24bb418c266d91d9750884daee7f SHA512 e2b93fb5f904a0064addd2d2d20bf4f8d868120bad1486916ae0774e41ef4123cbf5b31ef64109361d091ff317cbadbd28882d6571d3014052229a14993ed933 WHIRLPOOL cece85996181372a8406fac605f720562161f66d49a57592ee9bb4c5f409edff166854164093d531343773eaa22990702fb756c6783b235006843f77db67e5ad
32
+DIST bash42-018 1929 SHA256 e2a9457172370d454d31b84bbcba758ee6394316dbe755374553b52aadbb494d SHA512 facbe3d258e0e7514bfe3a8c6516aaf2e405facd233e205794ffab815f850ba7385d2d18d7b3a9c000cfe254a771779c6d8829b2fee66a9d6071b1888155b5a1 WHIRLPOOL 28737af2a1a954d5a34e9fc9faff5a05754f72cfaa51a270108ce90457b2c56a7870ce3017ca05e56ef2938e2e2a601f783f64e4bbe8db304a28aff284376fc6
33
+DIST bash42-019 1415 SHA256 a8b7cd02207656976016d93cab48e073cb5da002ceb27b7a63fc5ea62007eb56 SHA512 f8086b8358201c10e96d9533b90a58248e26bc379be96a8a9fba88e09c227acf85cddb26c04e93043b35371c12cbf156f591c9af88b1eb61ba8acca53f6d07a1 WHIRLPOOL 0c825c577ffcdb1102f3f9cfb69f6a92ebf73781c0170ff0788090ddfde0d7fb5f3534d06532b4f86b5b8cab7f6c07e30dee4e8f2cbc40bf11a0dd69addf6974
34
+DIST bash42-020 1825 SHA256 494773f0d0078cb35372d24caa523b00d8fdbbaed71e41dc14c9e47579da3c6f SHA512 23549c7a56e43f9aff7ebc376657ff498d07b47ebbfe6707ba3711e095fd80ca86d077c5379ee62c86711880979debd7b60733d83e12f349ced9e93860d8fc8c WHIRLPOOL 3f4aea688452e778ba440bbccfd0a4e76735ec7b7b3916d5896fcfdc3c4aeafce4c52c4cd21282915b21d12cfc03c170535d2bee86232f90ded87f2731f9cc07
35
+DIST bash42-021 1532 SHA256 a887a97be226575ecf483be2c76655bd6d1edde1cdfe199c27bd2e6baf32badc SHA512 09783ce72651af6abffebdfb3d3e7446b29ac4bfd395aeec66ef1f5c8a2bdc2238957b7e6f4e896178a5e4e24987de209e6776f29330879c0d8e14e8495d8284 WHIRLPOOL 821d16cfec3cabb2b48a6d46518993d47abd71d1ddcea90301d5f8a7b203c6e224031b344d543ebce2f534e14469b03079d09caa26cf4af4de6006bd477b4a61
36
+DIST bash42-022 1395 SHA256 9dcdf69df7f8cd2ba88d18c45a0d8f55fbe4f0e273411179db94dd6198b85c6b SHA512 ab6f3f175581f34dc106176fbbf5c2d19e9f421e16f328cffe98f11ee01462b63e0f1e720ec467780d91eb240a4a7fd4fd1cfdf6e0cb1293a8e42e8a4805c152 WHIRLPOOL 80eb65f4cf97167983ead281acb6a114cd866e22a8715b7106c342a442c942992916bd9918931422ee0ddc993762d86a21537724adb7fe4f3543f7fa7b2bf666
37
+DIST bash42-023 1699 SHA256 5dc11394f1a6c887373c081396efd4f4cc04492696722c57a4811c207965f0bf SHA512 b9d7044800a988dac8c59c48bd4845d3197d6ba965d22fb8f62b51b9d48f5a55519104a16283fb638264a6f858a6d574f8547d75721b96da640721bbdf097d81 WHIRLPOOL 7dee6a8915675019396d0003bd870315a44268c8af1015b29da802cd744fa340a7303d26d189b5a7a162a58f5931ee268a8e8129349b9bf3fa899720b0b119dc
38
+DIST bash42-024 1363 SHA256 99c826bdd33bee281d0a9191550d62a24d0b256cd41c90afd10abd63a66b99e6 SHA512 b4964ff258905cef806add58eadda17501e98bb3b3b5c8ce8ee0a9250e5bdf0a01329e1bfa973204b1c8e5da8fd068bcef624ec65c2f401c41d0b6b55cb2ba76 WHIRLPOOL c5c615b6d14ec8069b0990be04aa5e4c4ce3d41e910186e041c6ece46311c1591d327598981130c98a2a54144ff0efecfdaad9f6540173c4b0deb7927c70f736
39
+DIST bash42-025 3969 SHA256 0db0646fd7a559d5702911192bdd387acbbc61cf3c29a34007c3ec840e275515 SHA512 b4b80ef1a7599506454a912e2ee23f422bd199a675199b926c3770ba9091fb69583ddde84e67d897c79e6a047ebecbd18a5ee72557e7526c4108476eb5cff71b WHIRLPOOL c97157bec29f43d3d1367dc3a1625f51cd650646feecf8efc4b902175898c8cd90b7f403a7fb8798cde8232e770933de2e0bfef4f8fc0bd8a3e2bd24ae6fc8d4
40
+DIST bash42-026 1577 SHA256 e7e90cfaabbce3b4b9c699994e9d9ea4a2f084fd9f37788a80b0b70b47d323d2 SHA512 b00200d0b9040c74117e0150c589abb9e511abb01888c485eac770ab61c234669aeae3957a6752ab99c378ffd8188154bbec713c608b92cd3185a649b71615bf WHIRLPOOL c6851fde44599df98bb1c46bce45fadba204cbf7c368b8c5234ef992d24a2dc43fb107dbc36245ba4d48edda3cdc5c5f6c357c1fc2492ec4c66a36ffc8d97b3f
41
+DIST bash42-027 1461 SHA256 0c1f6b7256fcc17f42c05f9bbb4138f8e8bb67e79c622c3485711b6f37f7ed42 SHA512 107e13482deb9f6355196b2be9b717090aaffd8cf1580ab347bf38600e607c31cef5173b68e426a45d1678c7c64e7e095d5b6da941a5f53218919a0629e2fcfe WHIRLPOOL b4771a0bb540aa3f196400e4873c565a293ea656831a600d233755b3bc8bddce3d881b39a6f52a57b8ce5f622e9031a624f182a192de7e546b11f999f41a1294
42
+DIST bash42-028 1834 SHA256 204226de39ba81aaf3dd5a29cd59de052ec9f648538bb9e7f1c8150852b1ed7a SHA512 6e6ad04e7cff2d65045a9afb617c041b571b6c8cc728f9994825545b7d43c0c7868c68b22546784a6f604d3e0ec22b7bf0423e9d49b7109fefdc5d3db4b31399 WHIRLPOOL b13fa3ffaf6a38766743d2760493f58a4787aa7a244038e2fdf266270443d678cdc7aa6205be48665d2455e031f346d2d9095776f2aa879d70857e3132136aa0
43
+DIST bash42-029 16812 SHA256 d0b08c0817bc5acdb28b466727622a8422ca4d61188313cf162443b7f338f581 SHA512 9349625892201cb46f3669c18a38c86d609c1c9521fb8caecd6880df822897c6d2541dc0cf5d3d11d27779a3be636b0c6550b7e3b010d37e83804fd1ab27d35c WHIRLPOOL 045d8bec5da9508863fe93843cdacbb9fb2ca56e048d1a5bbfa305742688a9476568441633b9dec27a6e9bc56501d96a798714bcc1f9079de6c57d6bd3281cce
44
+DIST bash42-030 5046 SHA256 12594366591a136d8ccdcb8e218010f2ddab6be28a7f96d0ed32ca927e44afae SHA512 4643252a45b7fe84451c0bea95bd0089a1685067032c8a2e42bc78587deef5b6095de77500d1c54227f92940b201d193984852f65ef886237dd435617639a46a WHIRLPOOL 26c5209c8a29d6c12f61beadbf91d49707d090213d82b44da0aebde28f6ef0d26e256eabb89ef343c24e941a837a6bf57538ca6dc10227dca69536a67bb0f8a6
45
+DIST bash42-031 2047 SHA256 55f38c4d34775fbb063510c4222b195d998dd86f88288b64a6103e3812f8d9f9 SHA512 de0ea5c279ac956aca48f12e2962dcd4ae2f653349bf2350ae7b53e8370aaf882109fcb29bf559cd81512362bf31a100193de6bf193ff52331e8325df2f82e91 WHIRLPOOL 2dc6e5197beb2204b15493de41c041ef8df948d656d06e18cbaead2ece15d508980306ea7fbb02a1b926bdc92f6e09d182586b07c51fc93716c7c438e2dcbe63
46
+DIST bash42-032 2416 SHA256 e3a8b563dbb1e5cb7ca85a53515da8b2941213973496d48c4cc5a11c604791ed SHA512 ed35285989290c10f5013770397aa14897e63a28f5ae5a61319ea5881b0abd84410686288cf0f14dd9486d8fd623c410f857b48fbdb62350121e3596527dd3bf WHIRLPOOL f1d156a6b8d68eb71eae54c33aac8c6d24b09bc7ba07e856a71e39ba0f4e4ea7e1a4084d710f4239f7002af2ec73ca8953e81827d4f782ee0fe88406ace86311
47
+DIST bash42-033 1634 SHA256 f5d12790d69fdfb2f47ac86fa1ea1ecc088880141570273f38dfd3fa4a46434b SHA512 89e277e5a2f43fe75678c0dab57cd7c8761efa38f5902ed0b311ef6a0cdf48f683d3f28fd419908db43afdaf4f81d831f0fd630795f4d20b317543cb9ab95970 WHIRLPOOL 188eb57de7957a73c587904701a16dfa6043e785f47d685b6c4823729806080bb0a11b9c3409b4df69769c3f31ea00306ab42daa73dcfefe37c85ded518b6162
48
+DIST bash42-034 1345 SHA256 01c1f332101389cedf347c7736102966722a3b213900954e5d625bbc2f1e41b8 SHA512 d59a4a67a241d262de5fb27b96af0f15b0f6e7e922b2d61ea86e037dcd07ea77ec3c1ef6b289e5bbccd011b632538f264bb6426c3a07dba1946c094be56e0b16 WHIRLPOOL e2a2310a55db78a4d668235a4a70d266c28108ac4a04b50864704f7ba745d3e1cf080cf34544b426c1a2d6067adedc32d7491163f0ef5d09df3d51c99451b5cf
49
+DIST bash42-035 1920 SHA256 cecde463b038b4849635ff0993d9b264fc92403e7ae0accb52c7877aeaed78df SHA512 9f294177e91600f65cfee1b9dbf59b3ad7db449a99cc1013b7c97ef6c814b51afa7a2d2516a37fcc110ff3f0b25c4b06e42094f4665e03e41650bfa69c15eaf7 WHIRLPOOL e8806743da1f16375ffd29fb7c9ae78d8966d6f7faa833025e57fb59bd290a2afdf94777e9ac51917f378312fc8ce05d72ee14525352412c5826e8a2a9909fed
50
+DIST bash42-036 3123 SHA256 fe293a1bc92ac4d272ae9b9a0de3afef7c06145a2b52337a09cacccc5305aafa SHA512 7e114b99d8f5b210b826715c77adfdbb115e86ace35f7ff331fc6f595a4d0f689a055ccf7adfbafc057c7549f5597e4de455ab9e18a6ffeb5b4fd1d3a2aab99c WHIRLPOOL 6f4e9e9e8251b5a703bad2202301edb45546d94f452669ef681786ff5882269b70791456c7c2040731b5b7cff27c4028823592a61d46204a1271218f7e6c7b8c
51
+DIST bash42-037 3483 SHA256 c7578cddd3bb2430689c740f58a03403800726dcd1268b28f91bf37f368e1674 SHA512 4466990dc3499ccde5940ddfb383052fa345d4e53fff7c8963ac7482fa280658b4516a1583486175cab2f3a5c8afbbedda8461e3cb1802031bce8db386404608 WHIRLPOOL 918dd53aea5ba7c5da2b6ef3325289d80d5c9e01aa57bd5bf9b9e6a22302865929a670ed7b20a5916237e2078aa69223c681e00c79c5db40dcf4d9ffa455b603
52
+DIST bash42-038 1290 SHA256 b8c9a81bdf206be58ba491dfad80373b3348af769e80aaf72f7611ddbbbe6d57 SHA512 f835bb393153310fa2e4c2d95a98c0db53a97075f8989d61cccb095db223495777e413b21e9b235391a4a0f34d935a828ff5ccf337520d5dc87d380170efb351 WHIRLPOOL 3625b8a1e17e2ec7925027b6e048262126366ec2691e7a2bdfd23f8da2eefcea6ce967382067c8d6969d1a9cc641ffcd05ab71a713a61762c43d77df01082b8a
53
+DIST bash42-039 1603 SHA256 f4f9300a60321a5088ae9e54052a64c4d3e876f9a3a17ca104d58fa38b9c1791 SHA512 4c5e44a623840c7efe7894f313a5691307b12aea325dbc923b48deb6ee6ac0bb2ff7afb0d2ee12ab97b04d60c1b9e2a4facc51b66c93be9fe0beda317ec7318f WHIRLPOOL e863174def546d9e9cbcdf5cfa1f735a1503a7caa10ab25a017add965cde524412e37c7fdc43ee80b6dd23676f2231093df64de1d1f41aa823e6cf5c79136531
54
+DIST bash42-040 1710 SHA256 b265f9caf3c7321f95bc8e0b9e2c46bd86c226f00f05e823699aafb83c4aaa6c SHA512 ff5cfdd2aa846f0831a1f2f7b477e70fc6b68b6c4f4785293c417039a7f3fd4822ade4658ea17046ab9616c3fed02b463e6a3e60aeb7daf6ab667da14b9a482e WHIRLPOOL 7b4672ee3112be3919cef4a30e730daa534ee61c2b5a8e48cef799bf5e17a9bbf58dfbb96626f6edcdad595c92bec0dfc9b5f41a9785c20af7cf3e829553fe65
55
+DIST bash42-041 1463 SHA256 05cc1951bd9f6624088dd6067486ff47f1825e333273d7df5f1b06b23baaf5eb SHA512 7c9c12fc77bb764dbe8061e6df9419ab84d296a76c4a8bd96cf0f507bf70652a1c869162ac8d8c36f2d16ea0912a142fe14d6db45636bcb6e6fdf1444f0672a6 WHIRLPOOL bfcc374321554787373bac3d1cf22e2cdf4064a0ece447bda2426b90bd55c09f7d2ea2491bbdf2e03c2152783e45bccc98797fb4f12e4fe8095543ddb51f0457
56
+DIST bash42-042 1571 SHA256 faaa5c1f456517b258b2a65eaa664dd6a01eeff73c8ca4447c3a6de371bbf304 SHA512 99fd4f5f70e3d7d2e8dc1dac80e6ee6e0bb9ba1f629f41019b13f36aba2404aa4d786049bb0039e5fee138a01b813d295d4303c7c3d561a3cf565ffa19bb081e WHIRLPOOL 944cf532a9cdc42dcda55f3b2af96337d31596bcb39e83fb3e223bc3aeb1a45696dfc69e60ef0a68fd0c133728d9d23a037d633d9a267b09f51954ba7693e262
57
+DIST bash42-043 2110 SHA256 dc2683840f3e890a9c5f85338366ff6cd923285e558eb46aa818a03fa67c5c57 SHA512 70503181c392faf565ef0b23a2f6d1614836ffb9c04791cc4bfb31aff7786fd5efab4072034a4cfba0035595140cf7f9461b1565e4854ec34823cbd4f5ab419d WHIRLPOOL e988a962aac3ed9cd1f105cc5c9a477aaa52defdb049be8d9cd37da40177664507c06550193855cddea3b0a9fea3a04ec027ad14eea845317ee67e1b89697076
58
+DIST bash42-044 1871 SHA256 10d32d6c9ccdedb1d826f46468631d475f9dcf983fac087766e16df7b99766e6 SHA512 e94cf93c5760225d4ac16f9c73078c3ce9913ffe1e20ffed8fa31084a0efd3dd63762b5437221f6b570078667e3ec19d882169ffe0ba4c498e258e56f17d2511 WHIRLPOOL 23e3fd1ed1a708eead2ce463c0e5acd720accbe9727462b7fd3916b14b8eabf2339c1f7b1dc973249e075bff4fa566753ae43c540ce3ddc84b5cdd72814d568d
59
+DIST bash42-045 1572 SHA256 ddb7eff0f59d394a483b09feec3771d9026f81ba90afac32846a19b172b2986d SHA512 64f62b19c79eb2c581feda2b9f3c36196b3a794ee9996f6d72078fbb0b8c5878aa2d8ff3e2698cf9769e42083704dd9342bb108212d02aeb79875fad70895560 WHIRLPOOL 02fa25cf02c831675a78a5625e0ba5606b52eb9f3dbdf546cd62983d83cea7fd159b535df94b3c8d39907a7739de7459b69cde3583f28d952a54b384122d264e
60
+DIST bash42-046 1988 SHA256 95c1323b68c0ecc0ca09565ef2d5218625ced3957b702e04c8bcaad9e7b3816d SHA512 7e4a9d3961cb8bf8559f82684cb75fe8600a377522f582e1a9537696ceccab32d15d1045f850ea91ea8bd2cf286d79412bb47460af26bec8486d5f3137f5d54f WHIRLPOOL 68d83498307dec79bea516c7e7b03dfdff10116a716922c780c66d9017abb38cf6b32f17674490fed93b2701d8271f71f4aaeab6712b184fe4d880b818fab988
61
+DIST bash42-047 1353 SHA256 c1979201d0345011c419a1c82407cd2a00c60a0c75b7f07e145d17f3718daf7a SHA512 0b43eefcc0ef3a55e309dff339db31a07849ce794e645d917f1836f48c71b84bdc50aa3315b3b2e33acef2e6e81a07f2a026cb43381d0f809c8271cc0a0699a0 WHIRLPOOL 5b2a3000dd72b4cd34f74ffcfe160fe891c8e55766913260207cdad0ed205843398ca9a261f41ef5d54c76782ae291809be0b78c3bb960ea84bb0676cdc6e263
62
+DIST bash42-048 3258 SHA256 751a5d2330b21ac9aba7323acbbc91c948285f30a4bb41f56796f9a36b983d24 SHA512 4218377052da8900ab6d49b855ae6f7779ad94e9e76daf3424240fbbb1bab37b929989b976ecc3ccbfb66f3c278a7ba546e5d34b214382b41767991945d960b4 WHIRLPOOL 16da3dfb42b1cbb50841e381428135a9d0439d30c519725bd52bf55093c618b7ca8983b4638749dc87d5893a20b4cc5546c1ef5141f62d78fad8ccd5b4261fe7
63
+EBUILD bash-4.2_p48-r1.ebuild 6792 SHA256 77dfb8ad867af9d078ca85999dd68271584224bd74b577f83bca84b7cecdb31b SHA512 f0434e0c697e7cf8dbc676af39c5f6481edb80069cbcee8c7b8ec4ab32eb58ac6a572425a89d58ca4bbbe0407cfdaf542de6f75c058dc765a3d3c7a1a3fa5b19 WHIRLPOOL 6fd9ab68a2c754149fed16dc4af52f16d9db4403581bce60933970a615abcf8a7c3d69d02276f6e630b50a24d77e3e23d7b3d1131e650883bb130dedcce7ab82
... ...
@@ -0,0 +1,230 @@
1
+# Copyright 1999-2014 Gentoo Foundation
2
+# Distributed under the terms of the GNU General Public License v2
3
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.2_p48-r1.ebuild,v 1.4 2014/09/25 11:02:20 armin76 Exp $
4
+
5
+EAPI="4"
6
+
7
+inherit eutils flag-o-matic toolchain-funcs multilib
8
+
9
+# Official patchlevel
10
+# See ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/
11
+PLEVEL=${PV##*_p}
12
+MY_PV=${PV/_p*}
13
+MY_PV=${MY_PV/_/-}
14
+MY_P=${PN}-${MY_PV}
15
+[[ ${PV} != *_p* ]] && PLEVEL=0
16
+patches() {
17
+	local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
18
+	[[ ${plevel} -eq 0 ]] && return 1
19
+	eval set -- {1..${plevel}}
20
+	set -- $(printf "${pn}${pv/\.}-%03d " "$@")
21
+	if [[ ${opt} == -s ]] ; then
22
+		echo "${@/#/${DISTDIR}/}"
23
+	else
24
+		local u
25
+		for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
26
+			printf "${u}/${pn}-${pv}-patches/%s " "$@"
27
+		done
28
+	fi
29
+}
30
+
31
+DESCRIPTION="The standard GNU Bourne again shell"
32
+HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
33
+SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
34
+
35
+LICENSE="GPL-3"
36
+SLOT="0"
37
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
38
+IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline vanilla"
39
+
40
+DEPEND=">=sys-libs/ncurses-5.2-r2
41
+	readline? ( >=sys-libs/readline-6.2 )
42
+	nls? ( virtual/libintl )"
43
+RDEPEND="${DEPEND}
44
+	!!<sys-apps/portage-2.1.6.7_p1
45
+	!!<sys-apps/paludis-0.26.0_alpha5"
46
+# we only need yacc when the .y files get patched (bash42-005)
47
+DEPEND+=" virtual/yacc"
48
+
49
+S=${WORKDIR}/${MY_P}
50
+
51
+pkg_setup() {
52
+	if is-flag -malign-double ; then #7332
53
+		eerror "Detected bad CFLAGS '-malign-double'.  Do not use this"
54
+		eerror "as it breaks LFS (struct stat64) on x86."
55
+		die "remove -malign-double from your CFLAGS mr ricer"
56
+	fi
57
+	if use bashlogger ; then
58
+		ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
59
+		ewarn "This will log ALL output you enter into the shell, you have been warned."
60
+	fi
61
+}
62
+
63
+src_unpack() {
64
+	unpack ${MY_P}.tar.gz
65
+}
66
+
67
+src_prepare() {
68
+	# Include official patches
69
+	[[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
70
+
71
+	# Clean out local libs so we know we use system ones
72
+	rm -rf lib/{readline,termcap}/*
73
+	touch lib/{readline,termcap}/Makefile.in # for config.status
74
+	sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
75
+
76
+	# Avoid regenerating docs after patches #407985
77
+	sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
78
+	touch -r . doc/*
79
+
80
+	epatch "${FILESDIR}"/parser-oob-4.2-rediff.patch
81
+	epatch "${FILESDIR}"/variables-affix-4.2-rediff.patch
82
+
83
+	epatch "${FILESDIR}"/${PN}-4.2-execute-job-control.patch #383237
84
+	epatch "${FILESDIR}"/${PN}-4.2-parallel-build.patch
85
+	epatch "${FILESDIR}"/${PN}-4.2-no-readline.patch
86
+	epatch "${FILESDIR}"/${PN}-4.2-read-retry.patch #447810
87
+	if ! use vanilla ; then
88
+		epatch "${FILESDIR}"/${PN}-4.2-speed-up-read-N.patch
89
+	fi
90
+	epatch "${FILESDIR}"/bash-eol-pushback.patch #523592
91
+
92
+	epatch_user
93
+}
94
+
95
+src_configure() {
96
+	local myconf=()
97
+
98
+	# For descriptions of these, see config-top.h
99
+	# bashrc/#26952 bash_logout/#90488 ssh/#24762
100
+	append-cppflags \
101
+		-DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
102
+		-DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
103
+		-DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
104
+		-DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
105
+		-DNON_INTERACTIVE_LOGIN_SHELLS \
106
+		-DSSH_SOURCE_BASHRC \
107
+		$(use bashlogger && echo -DSYSLOG_HISTORY)
108
+
109
+	# Don't even think about building this statically without
110
+	# reading Bug 7714 first.  If you still build it statically,
111
+	# don't come crying to us with bugs ;).
112
+	#use static && export LDFLAGS="${LDFLAGS} -static"
113
+	use nls || myconf+=( --disable-nls )
114
+
115
+	# Historically, we always used the builtin readline, but since
116
+	# our handling of SONAME upgrades has gotten much more stable
117
+	# in the PM (and the readline ebuild itself preserves the old
118
+	# libs during upgrades), linking against the system copy should
119
+	# be safe.
120
+	# Exact cached version here doesn't really matter as long as it
121
+	# is at least what's in the DEPEND up above.
122
+	export ac_cv_rl_version=6.2
123
+
124
+	# Force linking with system curses ... the bundled termcap lib
125
+	# sucks bad compared to ncurses.  For the most part, ncurses
126
+	# is here because readline needs it.  But bash itself calls
127
+	# ncurses in one or two small places :(.
128
+
129
+	use plugins && append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
130
+	tc-export AR #444070
131
+	econf \
132
+		--with-installed-readline=. \
133
+		--with-curses \
134
+		$(use_with afs) \
135
+		$(use_enable net net-redirections) \
136
+		--disable-profiling \
137
+		$(use_enable mem-scramble) \
138
+		$(use_with mem-scramble bash-malloc) \
139
+		$(use_enable readline) \
140
+		$(use_enable readline history) \
141
+		$(use_enable readline bang-history) \
142
+		"${myconf[@]}"
143
+}
144
+
145
+src_compile() {
146
+	emake
147
+
148
+	if use plugins ; then
149
+		emake -C examples/loadables all others
150
+	fi
151
+}
152
+
153
+src_install() {
154
+	emake install DESTDIR="${D}"
155
+
156
+	dodir /bin
157
+	mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
158
+	dosym bash /bin/rbash
159
+
160
+	insinto /etc/bash
161
+	doins "${FILESDIR}"/{bashrc,bash_logout}
162
+	insinto /etc/skel
163
+	for f in bash{_logout,_profile,rc} ; do
164
+		newins "${FILESDIR}"/dot-${f} .${f}
165
+	done
166
+
167
+	local sed_args=(
168
+		-e "s:#${USERLAND}#@::"
169
+		-e '/#@/d'
170
+	)
171
+	if ! use readline ; then
172
+		sed_args+=( #432338
173
+			-e '/^shopt -s histappend/s:^:#:'
174
+			-e 's:use_color=true:use_color=false:'
175
+		)
176
+	fi
177
+	sed -i \
178
+		"${sed_args[@]}" \
179
+		"${ED}"/etc/skel/.bashrc \
180
+		"${ED}"/etc/bash/bashrc || die
181
+
182
+	if use plugins ; then
183
+		exeinto /usr/$(get_libdir)/bash
184
+		doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
185
+		insinto /usr/include/bash-plugins
186
+		doins *.h builtins/*.h examples/loadables/*.h include/*.h \
187
+			lib/{glob/glob.h,tilde/tilde.h}
188
+	fi
189
+
190
+	if use examples ; then
191
+		for d in examples/{functions,misc,scripts,scripts.noah,scripts.v2} ; do
192
+			exeinto /usr/share/doc/${PF}/${d}
193
+			insinto /usr/share/doc/${PF}/${d}
194
+			for f in ${d}/* ; do
195
+				if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
196
+					doexe ${f}
197
+				else
198
+					doins ${f}
199
+				fi
200
+			done
201
+		done
202
+	fi
203
+
204
+	doman doc/*.1
205
+	dodoc README NEWS AUTHORS CHANGES COMPAT Y2K doc/FAQ doc/INTRO
206
+	dosym bash.info /usr/share/info/bashref.info
207
+}
208
+
209
+pkg_preinst() {
210
+	if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
211
+		mkdir -p "${EROOT}"/etc/bash
212
+		mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
213
+	fi
214
+
215
+	if [[ -L ${EROOT}/bin/sh ]]; then
216
+		# rewrite the symlink to ensure that its mtime changes. having /bin/sh
217
+		# missing even temporarily causes a fatal error with paludis.
218
+		local target=$(readlink "${EROOT}"/bin/sh)
219
+		local tmp=$(emktemp "${EROOT}"/bin)
220
+		ln -sf "${target}" "${tmp}"
221
+		mv -f "${tmp}" "${EROOT}"/bin/sh
222
+	fi
223
+}
224
+
225
+pkg_postinst() {
226
+	# If /bin/sh does not exist, provide it
227
+	if [[ ! -e ${EROOT}/bin/sh ]]; then
228
+		ln -sf bash "${EROOT}"/bin/sh
229
+	fi
230
+}
... ...
@@ -0,0 +1,24 @@
1
+fix build when job control is disabled
2
+
3
+http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
4
+http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00057.html
5
+http://lists.gnu.org/archive/html/bug-bash/2011-09/msg00039.html
6
+https://bugs.gentoo.org/383237
7
+
8
+should be fixed in next release of bash ...
9
+
10
+--- a/execute_cmd.c
11
++++ b/execute_cmd.c
12
+@@ -2202,7 +2202,11 @@
13
+   /* If the `lastpipe' option is set with shopt, and job control is not
14
+      enabled, execute the last element of non-async pipelines in the
15
+      current shell environment. */
16
+-  if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
17
++  if (lastpipe_opt && 
18
++#if defined(JOB_CONTROL)
19
++		job_control == 0 && 
20
++#endif
21
++		asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
22
+     {
23
+       lstdin = move_to_high_fd (0, 0, 255);
24
+       if (lstdin > 0)
... ...
@@ -0,0 +1,19 @@
1
+fix building when readline is disabled
2
+
3
+--- a/builtins/complete.def
4
++++ b/builtins/complete.def
5
+@@ -49,6 +49,8 @@ $END
6
+ 
7
+ #include <config.h>
8
+ 
9
++#ifdef READLINE
10
++
11
+ #include <stdio.h>
12
+ 
13
+ #include "../bashtypes.h"
14
+@@ -867,3 +869,5 @@ compopt_builtin (list)
15
+ 
16
+   return (ret);
17
+ }
18
++
19
++#endif
... ...
@@ -0,0 +1,106 @@
1
+https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00036.html
2
+
3
+the current yacc rules allow multiple runs to generate the same files.  usually
4
+this doesn't come up as the generated files are shipped in the tarball, but
5
+when you modify parse.y (applying a patch or developing or whatever), you can
6
+hit this problem.
7
+
8
+simple way of showing this:
9
+	make -j y.tab.{c,h}
10
+a correct system would not show the yacc parser running twice :)
11
+
12
+simple patch is to have the .h file depend on the .c file, and have the .h file
13
+itself issue a dummy rule (to avoid make thinking things changed).
14
+
15
+--- a/Makefile.in
16
++++ b/Makefile.in
17
+@@ -579,16 +579,17 @@
18
+ 
19
+ # old rules
20
+ GRAM_H = parser-built
21
+-y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
22
++y.tab.o: y.tab.h y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
23
+ ${GRAM_H}:	y.tab.h
24
+ 	@-if test -f y.tab.h ; then \
25
+ 		cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
26
+ 	fi
27
+-y.tab.c y.tab.h: parse.y
28
++y.tab.c: parse.y
29
+ #	-if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
30
+ 	$(YACC) -d $(srcdir)/parse.y
31
+ 	touch parser-built
32
+ #	-if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
33
++y.tab.h: y.tab.c ; @true
34
+ 
35
+ # experimental new rules - work with GNU make but not BSD (or OSF) make
36
+ #y.tab.o: y.tab.c y.tab.h
37
+
38
+https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00037.html
39
+
40
+the current code generates a bunch of local libraries in subdirs and then
41
+links bash against that.  those subdirs sometimes need version.h.  so they
42
+have a rule to change back up to the parent dir and build version.h (which is
43
+fine).  the trouble is that the top level objects and the subdirs are allowed
44
+to build in parallel, so it's possible for multiple children to see that
45
+version.h is not available and that it needs to be created, so they all do.
46
+
47
+there is even more trouble is that version.h depends on all the top level
48
+sources, some of which are compiled (like syntax.c).  so these parallel
49
+children all kick off a job to generate syntax.c which in turn requires the
50
+mksyntax helper executable.  obviously multiple processes rm-ing, compiling,
51
+and linking the same files quickly falls apart.
52
+
53
+so tweak the subdirs to all depend on the .build target which in turn depends
54
+on all of these top level files being generated.  now the subdirs won't try and
55
+recursively enter the top level.
56
+
57
+(noticed by David James)
58
+
59
+--- a/Makefile.in
60
++++ b/Makefile.in
61
+@@ -597,6 +598,11 @@
62
+ #	$(YACC) -d $(srcdir)/parse.y
63
+ #	-if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
64
+ 
65
++# Subdirs will often times want version.h, so they'll change back up to
66
++# the top level and try to create it.  This causes parallel build issues
67
++# so just force top level sanity before we descend.
68
++$(LIBDEP): .build
69
++
70
+ $(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
71
+ 	@echo making $@ in ${RL_LIBDIR}
72
+ 	@( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
73
+
74
+http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00107.html
75
+
76
+the top level Makefile will recurse into the defdir for multiple targets
77
+(libbuiltins.a, common.o, bashgetopt.o, builtext.h), and since these do
78
+not have any declared interdependencies, parallel makes will recurse into
79
+the subdir and build the respective targets.
80
+
81
+nothing depends on common.o or bashgetopt.o, so those targets don't get
82
+used normally.  this leaves libbuiltins.a and builtext.h.  at a glance,
83
+this shouldn't be a big deal, but when we look closer, there's a subtle
84
+failure lurking.
85
+
86
+most of the objects in the defdir need to be generated which means they
87
+need to build+link the local mkbuiltins helper.  the builtext.h header
88
+also needs to be generated by the mkbuiltins helper.  so when the top
89
+level launches a child for libbuiltins.a and a child for builtext.h, we
90
+can hit a race condition where the two try to generate mkbuiltins, and
91
+the build randomly fails.
92
+
93
+so update libbuiltins.a to depend on builtext.h.  this should be fairly
94
+simple since it's only a single target.
95
+
96
+--- a/Makefile.in
97
++++ b/Makefile.in
98
+@@ -674,7 +674,7 @@
99
+ 	$(RM) $@
100
+ 	./mksyntax$(EXEEXT) -o $@
101
+ 
102
+-$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h
103
++$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h ${DEFDIR}/builtext.h version.h
104
+ 	@(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
105
+ 
106
+ # these require special rules to circumvent make builtin rules
... ...
@@ -0,0 +1,41 @@
1
+https://bugs.gentoo.org/447810
2
+
3
+fix from upstream to workaround broken BSD kernels
4
+
5
+commit 208fdb509e072977ae7a621e916dfcd32c76047d
6
+Author: Chet Ramey <chet@caleb.ins.cwru.edu>
7
+Date:   Mon Mar 4 08:09:29 2013 -0500
8
+
9
+    commit bash-20130201 snapshot
10
+
11
+diff --git a/redir.c b/redir.c
12
+index d7da2f3..aa3d16d 100644
13
+--- a/redir.c
14
++++ b/redir.c
15
+@@ -650,7 +650,7 @@ redir_open (filename, flags, mode, ri)
16
+      int flags, mode;
17
+      enum r_instruction ri;
18
+ {
19
+-  int fd, r;
20
++  int fd, r, e;
21
+ 
22
+   r = find_string_in_alist (filename, _redir_special_filenames, 1);
23
+   if (r >= 0)
24
+@@ -666,7 +666,16 @@ redir_open (filename, flags, mode, ri)
25
+     }
26
+   else
27
+     {
28
+-      fd = open (filename, flags, mode);
29
++      do
30
++	{
31
++	  fd = open (filename, flags, mode);
32
++	  e = errno;
33
++	  if (fd < 0 && e == EINTR)
34
++	    QUIT;
35
++	  errno = e;
36
++	}
37
++      while (fd < 0 && errno == EINTR);
38
++
39
+ #if defined (AFS)
40
+       if ((fd < 0) && (errno == EACCES))
41
+ 	{
... ...
@@ -0,0 +1,112 @@
1
+http://lists.gnu.org/archive/html/bug-bash/2012-11/msg00034.html
2
+
3
+From 530d4988afd68ea9d2cf1b0267d4dc821d0d204f Mon Sep 17 00:00:00 2001
4
+From: Mike Frysinger <vapier@gentoo.org>
5
+Date: Mon, 19 Nov 2012 17:58:51 -0500
6
+Subject: [PATCH] bash: speed up `read -N`
7
+
8
+Rather than using 1 byte reads, use the existing cache read logic.
9
+This could be sped up more, but this change is not as invasive and
10
+should (hopefully) be fairly safe.
11
+
12
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13
+---
14
+ builtins/read.def | 21 ++++++++++++++++-----
15
+ externs.h         |  1 +
16
+ lib/sh/zread.c    | 15 +++++++++++++--
17
+ 3 files changed, 30 insertions(+), 7 deletions(-)
18
+
19
+diff --git a/builtins/read.def b/builtins/read.def
20
+index e32dec7..81a1b3f 100644
21
+--- a/builtins/read.def
22
++++ b/builtins/read.def
23
+@@ -457,7 +457,10 @@ read_builtin (list)
24
+   interrupt_immediately++;
25
+   terminate_immediately++;
26
+ 
27
+-  unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe;
28
++  if ((nchars > 0) && !input_is_tty && ignore_delim)
29
++    unbuffered_read = 2;
30
++  else if ((nchars > 0) || (delim != '\n') || input_is_pipe)
31
++    unbuffered_read = 1;
32
+ 
33
+   if (prompt && edit == 0)
34
+     {
35
+@@ -505,10 +508,18 @@ read_builtin (list)
36
+ 	  print_ps2 = 0;
37
+ 	}
38
+ 
39
+-      if (unbuffered_read)
40
+-	retval = zread (fd, &c, 1);
41
+-      else
42
+-	retval = zreadc (fd, &c);
43
++      switch (unbuffered_read)
44
++	{
45
++	case 2:
46
++	  retval = zreadcn (fd, &c, nchars - nr);
47
++	  break;
48
++	case 1:
49
++	  retval = zread (fd, &c, 1);
50
++	  break;
51
++	default:
52
++	  retval = zreadc (fd, &c);
53
++	  break;
54
++	}
55
+ 
56
+       if (retval <= 0)
57
+ 	{
58
+diff --git a/externs.h b/externs.h
59
+index 09244fa..a5ad645 100644
60
+--- a/externs.h
61
++++ b/externs.h
62
+@@ -479,6 +479,7 @@ extern ssize_t zread __P((int, char *, size_t));
63
+ extern ssize_t zreadretry __P((int, char *, size_t));
64
+ extern ssize_t zreadintr __P((int, char *, size_t));
65
+ extern ssize_t zreadc __P((int, char *));
66
++extern ssize_t zreadcn __P((int, char *, int));
67
+ extern ssize_t zreadcintr __P((int, char *));
68
+ extern void zreset __P((void));
69
+ extern void zsyncfd __P((int));
70
+diff --git a/lib/sh/zread.c b/lib/sh/zread.c
71
+index 5db21a9..af7d02b 100644
72
+--- a/lib/sh/zread.c
73
++++ b/lib/sh/zread.c
74
+@@ -101,15 +101,18 @@ static char lbuf[128];
75
+ static size_t lind, lused;
76
+ 
77
+ ssize_t
78
+-zreadc (fd, cp)
79
++zreadcn (fd, cp, len)
80
+      int fd;
81
+      char *cp;
82
++     int len;
83
+ {
84
+   ssize_t nr;
85
+ 
86
+   if (lind == lused || lused == 0)
87
+     {
88
+-      nr = zread (fd, lbuf, sizeof (lbuf));
89
++      if (len > sizeof (lbuf))
90
++	len = sizeof (lbuf);
91
++      nr = zread (fd, lbuf, len);
92
+       lind = 0;
93
+       if (nr <= 0)
94
+ 	{
95
+@@ -123,6 +126,14 @@ zreadc (fd, cp)
96
+   return 1;
97
+ }
98
+ 
99
++ssize_t
100
++zreadc (fd, cp)
101
++     int fd;
102
++     char *cp;
103
++{
104
++  return zreadcn (fd, cp, sizeof (lbuf));
105
++}
106
++
107
+ /* Don't mix calls to zreadc and zreadcintr in the same function, since they
108
+    use the same local buffer. */
109
+ ssize_t
110
+-- 
111
+1.7.12.4
112
+
... ...
@@ -0,0 +1,11 @@
1
+*** ../bash-20140912/parse.y	2014-08-26 15:09:42.000000000 -0400
2
+--- parse.y	2014-09-24 22:47:28.000000000 -0400
3
+***************
4
+*** 2959,2962 ****
5
+--- 2959,2964 ----
6
+    word_desc_to_read = (WORD_DESC *)NULL;
7
+  
8
++   eol_ungetc_lookahead = 0;
9
++ 
10
+    current_token = '\n';		/* XXX */
11
+    last_read_token = '\n';
... ...
@@ -0,0 +1,9 @@
1
+# /etc/bash/bash_logout
2
+
3
+# This file is sourced when a login shell terminates.
4
+
5
+# You may wish to clear everyone's screen when they logout.
6
+#clear
7
+
8
+# Or maybe you want to leave a thoughtful note.
9
+#fortune
... ...
@@ -0,0 +1,88 @@
1
+# /etc/bash/bashrc
2
+#
3
+# This file is sourced by all *interactive* bash shells on startup,
4
+# including some apparently interactive shells such as scp and rcp
5
+# that can't tolerate any output.  So make sure this doesn't display
6
+# anything or bad things will happen !
7
+
8
+
9
+# Test for an interactive shell.  There is no need to set anything
10
+# past this point for scp and rcp, and it's important to refrain from
11
+# outputting anything in those cases.
12
+if [[ $- != *i* ]] ; then
13
+	# Shell is non-interactive.  Be done now!
14
+	return
15
+fi
16
+
17
+# Bash won't get SIGWINCH if another process is in the foreground.
18
+# Enable checkwinsize so that bash will check the terminal size when
19
+# it regains control.  #65623
20
+# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
21
+shopt -s checkwinsize
22
+
23
+# Enable history appending instead of overwriting.  #139609
24
+shopt -s histappend
25
+
26
+# Change the window title of X terminals 
27
+case ${TERM} in
28
+	xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
29
+		PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'
30
+		;;
31
+	screen*)
32
+		PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\033\\"'
33
+		;;
34
+esac
35
+
36
+use_color=false
37
+#BSD#@# BSD doesn't typically come with dircolors so we need
38
+#BSD#@# to hardcode some terminals in here.
39
+#BSD#@case ${TERM} in
40
+#BSD#@	xterm*|rxvt*|Eterm|aterm|kterm|gnome*|screen|cons25) use_color=true;;
41
+#BSD#@esac
42
+
43
+# Set colorful PS1 only on colorful terminals.
44
+# dircolors --print-database uses its own built-in database
45
+# instead of using /etc/DIR_COLORS.  Try to use the external file
46
+# first to take advantage of user additions.  Use internal bash
47
+# globbing instead of external grep binary.
48
+safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
49
+match_lhs=""
50
+[[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
51
+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
52
+[[ -z ${match_lhs}    ]] \
53
+	&& type -P dircolors >/dev/null \
54
+	&& match_lhs=$(dircolors --print-database)
55
+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
56
+
57
+if ${use_color} ; then
58
+	# Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
59
+	if type -P dircolors >/dev/null ; then
60
+		if [[ -f ~/.dir_colors ]] ; then
61
+			eval $(dircolors -b ~/.dir_colors)
62
+		elif [[ -f /etc/DIR_COLORS ]] ; then
63
+			eval $(dircolors -b /etc/DIR_COLORS)
64
+		fi
65
+	fi
66
+
67
+	if [[ ${EUID} == 0 ]] ; then
68
+		PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
69
+	else
70
+		PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
71
+	fi
72
+
73
+	#BSD#@export CLICOLOR=1
74
+	#GNU#@alias ls='ls --color=auto'
75
+	alias grep='grep --colour=auto'
76
+	alias egrep='egrep --colour=auto'
77
+	alias fgrep='fgrep --colour=auto'
78
+else
79
+	if [[ ${EUID} == 0 ]] ; then
80
+		# show root@ when we don't have colors
81
+		PS1='\u@\h \W \$ '
82
+	else
83
+		PS1='\u@\h \w \$ '
84
+	fi
85
+fi
86
+
87
+# Try to keep environment pollution down, EPA loves us.
88
+unset use_color safe_term match_lhs
... ...
@@ -0,0 +1,6 @@
1
+# /etc/skel/.bash_logout
2
+
3
+# This file is sourced when a login shell terminates.
4
+
5
+# Clear the screen for security's sake.
6
+clear
... ...
@@ -0,0 +1,5 @@
1
+# /etc/skel/.bash_profile
2
+
3
+# This file is sourced by bash for login shells.  The following line
4
+# runs your .bashrc and is recommended by the bash info pages.
5
+[[ -f ~/.bashrc ]] && . ~/.bashrc
... ...
@@ -0,0 +1,18 @@
1
+# /etc/skel/.bashrc
2
+#
3
+# This file is sourced by all *interactive* bash shells on startup,
4
+# including some apparently interactive shells such as scp and rcp
5
+# that can't tolerate any output.  So make sure this doesn't display
6
+# anything or bad things will happen !
7
+
8
+
9
+# Test for an interactive shell.  There is no need to set anything
10
+# past this point for scp and rcp, and it's important to refrain from
11
+# outputting anything in those cases.
12
+if [[ $- != *i* ]] ; then
13
+	# Shell is non-interactive.  Be done now!
14
+	return
15
+fi
16
+
17
+
18
+# Put your fun stuff here.
... ...
@@ -0,0 +1,84 @@
1
+diff -Naur bash-4.2/parse.y bash-4.2-1/parse.y
2
+--- bash-4.2/parse.y	2014-09-27 20:19:43.881082990 +0200
3
++++ bash-4.2-1/parse.y	2014-09-27 20:20:00.609873851 +0200
4
+@@ -264,9 +264,21 @@
5
+ 
6
+ /* Variables to manage the task of reading here documents, because we need to
7
+    defer the reading until after a complete command has been collected. */
8
+-static REDIRECT *redir_stack[10];
9
++static REDIRECT **redir_stack;
10
+ int need_here_doc;
11
+ 
12
++/* Pushes REDIR onto redir_stack, resizing it as needed. */
13
++static void
14
++push_redir_stack (REDIRECT *redir)
15
++{
16
++  /* Guard against oveflow. */
17
++  if (need_here_doc + 1 > INT_MAX / sizeof (*redir_stack))
18
++    abort ();
19
++  redir_stack = xrealloc (redir_stack,
20
++			  (need_here_doc + 1) * sizeof (*redir_stack));
21
++  redir_stack[need_here_doc++] = redir;
22
++}
23
++
24
+ /* Where shell input comes from.  History expansion is performed on each
25
+    line when the shell is interactive. */
26
+ static char *shell_input_line = (char *)NULL;
27
+@@ -519,42 +531,42 @@
28
+ 			  source.dest = 0;
29
+ 			  redir.filename = $2;
30
+ 			  $$ = make_redirection (source, r_reading_until, redir, 0);
31
+-			  redir_stack[need_here_doc++] = $$;
32
++			  push_redir_stack ($$);
33
+ 			}
34
+ 	|	NUMBER LESS_LESS WORD
35
+ 			{
36
+ 			  source.dest = $1;
37
+ 			  redir.filename = $3;
38
+ 			  $$ = make_redirection (source, r_reading_until, redir, 0);
39
+-			  redir_stack[need_here_doc++] = $$;
40
++			  push_redir_stack ($$);
41
+ 			}
42
+ 	|	REDIR_WORD LESS_LESS WORD
43
+ 			{
44
+ 			  source.filename = $1;
45
+ 			  redir.filename = $3;
46
+ 			  $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN);
47
+-			  redir_stack[need_here_doc++] = $$;
48
++			  push_redir_stack ($$);
49
+ 			}
50
+ 	|	LESS_LESS_MINUS WORD
51
+ 			{
52
+ 			  source.dest = 0;
53
+ 			  redir.filename = $2;
54
+ 			  $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
55
+-			  redir_stack[need_here_doc++] = $$;
56
++			  push_redir_stack ($$);
57
+ 			}
58
+ 	|	NUMBER LESS_LESS_MINUS WORD
59
+ 			{
60
+ 			  source.dest = $1;
61
+ 			  redir.filename = $3;
62
+ 			  $$ = make_redirection (source, r_deblank_reading_until, redir, 0);
63
+-			  redir_stack[need_here_doc++] = $$;
64
++			  push_redir_stack ($$);
65
+ 			}
66
+ 	|	REDIR_WORD  LESS_LESS_MINUS WORD
67
+ 			{
68
+ 			  source.filename = $1;
69
+ 			  redir.filename = $3;
70
+ 			  $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN);
71
+-			  redir_stack[need_here_doc++] = $$;
72
++			  push_redir_stack ($$);
73
+ 			}
74
+ 	|	LESS_LESS_LESS WORD
75
+ 			{
76
+@@ -4757,7 +4769,7 @@
77
+     case CASE:
78
+     case SELECT:
79
+     case FOR:
80
+-      if (word_top < MAX_CASE_NEST)
81
++      if (word_top + 1 < MAX_CASE_NEST)
82
+ 	word_top++;
83
+       word_lineno[word_top] = line_number;
84
+       break;
... ...
@@ -0,0 +1,147 @@
1
+diff -Naur bash-4.2/variables.c bash-4.2-2/variables.c
2
+--- bash-4.2/variables.c	2014-09-27 20:19:43.912082602 +0200
3
++++ bash-4.2-2/variables.c	2014-09-27 20:20:22.943594641 +0200
4
+@@ -268,7 +268,7 @@
5
+ static void propagate_temp_var __P((PTR_T));
6
+ static void dispose_temporary_env __P((sh_free_func_t *));     
7
+ 
8
+-static inline char *mk_env_string __P((const char *, const char *));
9
++static inline char *mk_env_string __P((const char *, const char *, int));
10
+ static char **make_env_array_from_var_list __P((SHELL_VAR **));
11
+ static char **make_var_export_array __P((VAR_CONTEXT *));
12
+ static char **make_func_export_array __P((void));
13
+@@ -301,6 +301,14 @@
14
+ #endif
15
+ }
16
+ 
17
++/* Prefix and suffix for environment variable names which contain
18
++   shell functions. */
19
++#define FUNCDEF_PREFIX "BASH_FUNC_"
20
++#define FUNCDEF_PREFIX_LEN (strlen (FUNCDEF_PREFIX))
21
++#define FUNCDEF_SUFFIX "()"
22
++#define FUNCDEF_SUFFIX_LEN (strlen (FUNCDEF_SUFFIX))
23
++
24
++
25
+ /* Initialize the shell variables from the current environment.
26
+    If PRIVMODE is nonzero, don't import functions from ENV or
27
+    parse $SHELLOPTS. */
28
+@@ -338,27 +346,39 @@
29
+ 
30
+       /* If exported function, define it now.  Don't import functions from
31
+ 	 the environment in privileged mode. */
32
+-      if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4))
33
+-	{
34
+-	  string_length = strlen (string);
35
+-	  temp_string = (char *)xmalloc (3 + string_length + char_index);
36
++      if (privmode == 0 && read_but_dont_execute == 0
37
++	  && STREQN (FUNCDEF_PREFIX, name, FUNCDEF_PREFIX_LEN)
38
++	  && STREQ (name + char_index - FUNCDEF_SUFFIX_LEN, FUNCDEF_SUFFIX)
39
++	  && STREQN ("() {", string, 4))
40
++	{
41
++	  size_t name_length
42
++	    = char_index - (FUNCDEF_PREFIX_LEN + FUNCDEF_SUFFIX_LEN);
43
++	  char *temp_name = name + FUNCDEF_PREFIX_LEN;
44
++	  /* Temporarily remove the suffix. */
45
++	  temp_name[name_length] = '\0';
46
+ 
47
+-	  strcpy (temp_string, name);
48
+-	  temp_string[char_index] = ' ';
49
+-	  strcpy (temp_string + char_index + 1, string);
50
++	  string_length = strlen (string);
51
++	  temp_string = (char *)xmalloc (name_length + 1 + string_length + 1);
52
++	  memcpy (temp_string, temp_name, name_length);
53
++	  temp_string[name_length] = ' ';
54
++	  memcpy (temp_string + name_length + 1, string, string_length + 1);
55
+ 
56
+ 	  /* Don't import function names that are invalid identifiers from the
57
+ 	     environment. */
58
+-	  if (legal_identifier (name))
59
+-	    parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
60
++	  if (legal_identifier (temp_name))
61
++	    parse_and_execute (temp_string, temp_name,
62
++			       SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
63
+ 
64
+-	  if (temp_var = find_function (name))
65
++	  if (temp_var = find_function (temp_name))
66
+ 	    {
67
+ 	      VSETATTR (temp_var, (att_exported|att_imported));
68
+ 	      array_needs_making = 1;
69
+ 	    }
70
+ 	  else
71
+ 	    report_error (_("error importing function definition for `%s'"), name);
72
++
73
++	  /* Restore the original suffix. */
74
++	  temp_name[name_length] = FUNCDEF_SUFFIX[0];
75
+ 	}
76
+ #if defined (ARRAY_VARS)
77
+ #  if 0
78
+@@ -2537,7 +2557,7 @@
79
+   var->context = variable_context;	/* XXX */
80
+ 
81
+   INVALIDATE_EXPORTSTR (var);
82
+-  var->exportstr = mk_env_string (name, value);
83
++  var->exportstr = mk_env_string (name, value, 0);
84
+ 
85
+   array_needs_making = 1;
86
+ 
87
+@@ -3388,22 +3408,43 @@
88
+ /*								    */
89
+ /* **************************************************************** */
90
+ 
91
++/* Returns the string NAME=VALUE if !FUNCTIONP or if VALUE == NULL (in
92
++   which case it is treated as empty).  Otherwise, decorate NAME with
93
++   FUNCDEF_PREFIX and FUNCDEF_SUFFIX, and return a string of the form
94
++   FUNCDEF_PREFIX NAME FUNCDEF_SUFFIX = VALUE (without spaces).  */
95
+ static inline char *
96
+-mk_env_string (name, value)
97
++mk_env_string (name, value, functionp)
98
+      const char *name, *value;
99
++     int functionp;
100
+ {
101
+-  int name_len, value_len;
102
+-  char	*p;
103
++  size_t name_len, value_len;
104
++  char *p, *q;
105
+ 
106
+   name_len = strlen (name);
107
+   value_len = STRLEN (value);
108
+-  p = (char *)xmalloc (2 + name_len + value_len);
109
+-  strcpy (p, name);
110
+-  p[name_len] = '=';
111
++  if (functionp && value != NULL)
112
++    {
113
++      p = (char *)xmalloc (FUNCDEF_PREFIX_LEN + name_len + FUNCDEF_SUFFIX_LEN
114
++			   + 1 + value_len + 1);
115
++      q = p;
116
++      memcpy (q, FUNCDEF_PREFIX, FUNCDEF_PREFIX_LEN);
117
++      q += FUNCDEF_PREFIX_LEN;
118
++      memcpy (q, name, name_len);
119
++      q += name_len;
120
++      memcpy (q, FUNCDEF_SUFFIX, FUNCDEF_SUFFIX_LEN);
121
++      q += FUNCDEF_SUFFIX_LEN;
122
++    }
123
++  else
124
++    {
125
++      p = (char *)xmalloc (name_len + 1 + value_len + 1);
126
++      memcpy (p, name, name_len);
127
++      q = p + name_len;
128
++    }
129
++  q[0] = '=';
130
+   if (value && *value)
131
+-    strcpy (p + name_len + 1, value);
132
++    memcpy (q + 1, value, value_len + 1);
133
+   else
134
+-    p[name_len + 1] = '\0';
135
++    q[1] = '\0';
136
+   return (p);
137
+ }
138
+ 
139
+@@ -3489,7 +3530,7 @@
140
+ 	  /* Gee, I'd like to get away with not using savestring() if we're
141
+ 	     using the cached exportstr... */
142
+ 	  list[list_index] = USE_EXPORTSTR ? savestring (value)
143
+-					   : mk_env_string (var->name, value);
144
++	    : mk_env_string (var->name, value, function_p (var));
145
+ 
146
+ 	  if (USE_EXPORTSTR == 0)
147
+ 	    SAVE_EXPORTSTR (var, list[list_index]);
0 148