mirror of
https://github.com/flatcar/scripts.git
synced 2025-12-07 02:11:33 +01:00
net-nds/openldap: Sync from Gentoo
This commit is contained in:
parent
3d58e109d8
commit
37d6fdd69f
@ -1,42 +1,2 @@
|
||||
AUX DB_CONFIG.fast.example 746 SHA256 69fc9aa6e4f0b888bc02d3f75642fe1ebf9345c685257a5c1236b2e79ed56e0b SHA512 07199416b7c91864a1dd5ad45642367c4f79ee8b694214305289c47afb5b53420f0fb81cf7c8b117400c903535e88a2dd47bda28d57e969aeeec669debf6dc9e WHIRLPOOL 1d6a2adcdbbac2698d8d5ab1867ecfafee23c8561c34addaea30f59bde8b4bfad88c576ffd7df102aa428c2588ed3b9376de49606eb6608c8e873f8119326c5a
|
||||
AUX openldap-2.2.14-perlthreadsfix.patch 614 SHA256 bb719cc1fed47ff0f111c960f3295781ae6f0d9e98b4266a87751044b4bb3175 SHA512 e2579de72194c63e445108a39a85635622c1a629cec9d276df84ce9d770dbe7e2df2057663bac192558af3dee60fa2f0ae92f4cc34145c300fe141ae7f3f13b3 WHIRLPOOL 24cab36ff0368f81f555ba0fa0ea0f78d245d1863bf4c6c6d291536b16bdbe628a9a204ffccce12a6014b71717f3dd722c9f95061c1a519e273c0535316ad97d
|
||||
AUX openldap-2.2.6-ntlm.patch 5011 SHA256 1f7e766bcafb412ec336aad7e07295d6d62d2e2a62b6804b07b06a5056102243 SHA512 8140dba85c56f269c953b0b23b2ca7eecb42f8e5167f4d0f08511dc8c06c30bcb42c3e38ed3b77d5622780a94c0aa9eb65bb8e45af50075acab97e7f466a1a9d WHIRLPOOL 75c2394c46242f738b5ee0db8473b05b5e7e75821e89dcea3ca7a139e34cc61f5848d0601dc66499dad35beefdd02aed5486ed138cfd8e216041aa5ceb85c920
|
||||
AUX openldap-2.3.21-ppolicy.patch 402 SHA256 97feaaff03e839aaad402024082ba62fb2cbe0c721664a85af8674ebb28d7dbd SHA512 19d2fb2755f62d3b77851983645f6656f10078e983ac09c8de7b50ba2ce52f2c8e5379f066cf1b6e91921b8ca5c54852bacd1563f20e5004babe94db66e7d88e WHIRLPOOL 32a93bc7daa952313643a56533719963766f944f25abedb29568b4e32fe1f42ffd7631b922dd2395d42d81ca2addcce8ddd5fd11432a4217c5f76f5b1ff8ef66
|
||||
AUX openldap-2.3.24-contrib-smbk5pwd.patch 1631 SHA256 277990c6bc9e00c29bc5123d5074e1a741a224e884f92651b301375b02edc70e SHA512 7aaab44cdf84233bfd78555db3af7c5a435cb3f37cb8f243b57b32391381835ce1efff7604f80cdf58fee429f6ecedc486f88addec15b6d32ef78f526c6c8826 WHIRLPOOL fbb14366c31ff97b9a706b9ceb0073e45affcf513a1c58966548537dfa3d3185ce5d8f0b38b627a5a729a3084b38f5681565bea2c46d369179879223e66adc37
|
||||
AUX openldap-2.3.34-slapd-conf 2067 SHA256 f7611233b83fa70dac313b4e734041dfe1ddac07c804bdb12a775d7cf88c36a1 SHA512 fa1c6051c8285cd8f91dd236289a7492efd30fe172d269b35a4941945623f87fd4ff0c8b47dae36e55e395e4d931cf680ab15c5f44fd7279be686678661971aa WHIRLPOOL 55384866d25d016a6135b443e9b25a8a321118a4e33214950f7f3ea51c357ba5a4b335d2f77aa941c04ebfd6131fcf48c87f29df8dc4fe685bad9f3aae61642a
|
||||
AUX openldap-2.3.37-libldap_r.patch 862 SHA256 82471cc13806a9260e441aea90c8dfe9ce21b6d3edabb71766a2afcff6f80dfb SHA512 b49260b4a1583e1084f695e55e80aa90b301c9d56cd9cc04f0a78c0beb2e7d645e4b2163cae2be940f3918802b5d766e30f8550fd7fe723f365829c415fe364c WHIRLPOOL b22350b4ee9a3505b7b78ae915e82d3c84b19e7140047733cecd37818c57606097bd5d199d670ecf0d3bc350c08703bcaa126ed359b7930ab0a9b58e66f4aa50
|
||||
AUX openldap-2.3.43-fix-hang.patch 645 SHA256 48d1f63a303142e535413b3a42e1fdfea89abaf3265de801c147ef3bdcf3c27e SHA512 3cc7f46bd69634844c5fdf893120928e2d8b6c93011aebfb01786608bbb40351fab3f5e346857ab95724d5199b4b0270d56d56c7f1a43be07951f26fb82b018e WHIRLPOOL ddb6314f72a70a92d2cdc96548a8d0f783e97b91c9d71971566d3028d8ef1527b6897e5cdd6557fcd223f317b510dfbd12666c5bce0e8c9f06451e077a766bd5
|
||||
AUX openldap-2.3.XY-gcc44.patch 1169 SHA256 c799ad2adde0e0801bfd641c1a43860180121a04897b8e2a01ad000ea31e2a8d SHA512 9e7b726b384390dbf85c50cd344b6a614d09823293f1af2642cfb50c25f4f39254ae0b19cd0da0b30e6fbd270f61646487e1643406438bd2ec6b37883b03f9f2 WHIRLPOOL c5881dac9b095c28f3dd75fd71dfada84705bd42d643172389854f0c65e548a0f8721abef50568f63ebd85ac7bfeff68c64703dfdec0f7b42a57b92cf2f95097
|
||||
AUX openldap-2.4.11-libldap_r.patch 515 SHA256 3310a89d38bc39e6eb4333799d475411b274482b8bccab212b3edfd4385db70e SHA512 44d97efb25d4f39ab10cd5571db43f3bfa7c617a5bb087085ae16c0298aca899b55c8742a502121ba743a73e6d77cd2056bc96cee63d6d0862dabc8fb5574357 WHIRLPOOL f0c115c60a1405bb6d34090d878ba82b454cced4a7718e1132bc8d118032ae656dcd0207640142740ea4f547403edf2b95c97ae2c7f67a2b656b83cb3a508e45
|
||||
AUX openldap-2.4.15-ppolicy.patch 418 SHA256 98269fa1e8a1a0e62dad9acd36fd9a33614fca9a5830d6e7e606db8eb7f85de5 SHA512 59db36c9b4d16e7ccf4b318af2a8d0c6e29cda7e567641b3bcc6069bb7d610a8ac8b56e16ca72165b3e50841abb1ef693b9e2958f16997ac637554f3a67b7146 WHIRLPOOL ae52ce30b17e0413ee87db55070d64e06e4ab5e14adf96f808a0cfba39c3f946fc5b4e4431d8fc6123c025261acd6a16e2245a1b46e1eb7a131444e5ffc7825f
|
||||
AUX openldap-2.4.17-fix-lmpasswd-gnutls-symbols.patch 3542 SHA256 31e816eb9f3b52f5f9d183f82adebff75892e45e764187e579a92204c90889cb SHA512 6e4d3d04344433967ae099471e2af9d706e77206fc5e8d84d63681c5b975110f9abbee5d29be0a51e4cf8bc8ee157d8f386d99ffcebd059ef1be660530aaa096 WHIRLPOOL 38d4e60faff9d3a5f21e0783e688b4716d8d04976f549958798becad3e03b06eec2eeeac1b7491fe361e077b4aca5b75506bd45d65668746ab67db3a20d86a28
|
||||
AUX openldap-2.4.17-gcc44.patch 509 SHA256 33345882f601050ecaa6bb3dd7458e6b5f8e3684345847f7a53d4a1b0f514bda SHA512 ea2c862c7a7b8bc17c31ece694c010dd648840cb4facd48d5640767d859bf3c9108d547007984cb759f4a8810ff99ab8295c82dc2ad069f568d037d8448e6ff4 WHIRLPOOL 5f597463b6e92b43e0d6beabf426f5d6000fb204dfe8080ebcf57ec71391712fb24f728f6e61d205dd3ef9e78c7eb8a443994c68469f80b2536cfea3cd75eed4
|
||||
AUX openldap-2.4.28-fix-dash.patch 1101 SHA256 fddaad5f49cce39bf5492bb1dda10f2ce83419c48f128fe536661dde703b5d1b SHA512 f9b3a50eb972f746878afe4a8cda8d7e2a2807932ad2faf602f43e5a1b81166bea4fde764b4e1ae4be0000cc0713ee90a4620afab5809b8460f60ae39a716e9e WHIRLPOOL ba3856cd1008431025811aaa21d0a0ce94896590a16eee8cd27bdc84fd89884b0d27e8dce31bc79e4b4a91884bc90624f1a6afb38efb847839a036b4a2196af5
|
||||
AUX openldap-2.4.28-gnutls-gcrypt.patch 340 SHA256 26dc29a502e45f6b1003674c1ef5bc6c79b71d00fc9b2fc7a145291a314370c0 SHA512 53441707e9b24e774c0541ad8b63295eea6dc0352ae2ef3bf389f381da18f1df05fb2f7b41c816e1f697d8f1b208643d05891c03d8fba42d85e3b7689e5ee94f WHIRLPOOL 6be9eda56fd68c9e0818443ca70ee6c1e904aa6126576477d402c9abd2ee44952a0a313efc89f603b02cac35cbfea3c987de5b6ec3625a92bc691386edd85aa5
|
||||
AUX openldap-2.4.31-gcc47.patch 480 SHA256 6a0bef52a8681e30c4be7c11df88f5c73d2ab90f0bbbb79c550b6174d3978060 SHA512 a35113fe3f5e9ae5b9631976415df41d53a99ae1ca4c4dcdcfd89e6ccc6ba906cf5cfe2ee4901033dba29d62b6607d4a93ca74645eb6ceba38e67c5d8521816a WHIRLPOOL bf1315bebf8b16a625d55ac1d040a1ab831c25c87fe6f9bb9ff4b1b54f621a36e75e6055955e60617823fbf78244cd4aec7f702ea0d7a8d85a164f550d2675e7
|
||||
AUX openldap-2.4.35-contrib-samba4.patch 1400 SHA256 64ca91d3edae25d392f39a7f538e269b26de4e09923f872014e84ec388bda911 SHA512 332c4b2daa3eba165cfdcd479b1012e139d60095aaa628f8f5750fffb722d39395935bd7d7e56272e98fd234ab0be1c6568a71feeda5d88ba24b91b385defdad WHIRLPOOL c472dc75bbc1261b84ce0bfe8dd0a749200d7540647733ca13c0b1ccd8330739278f83eea3c91b3b29e5982eb6c9f9fb920ffdd9a6faaf4c0e66a97a1d16db55
|
||||
AUX openldap-2.4.35-contrib-smbk5pwd.patch 1626 SHA256 377b9204f51bb751d7311de3ee789386496372db2964ed2a929733099c23688a SHA512 c045c7605d25bab9eef8c12752f4952e3e6358124764ded91f5f98210686bc371f32ac20c56a63de80410f882f20e0889eec95474f1ee9d4c5bb4ed303ec8da0 WHIRLPOOL 64feead042fe22ec8bd36a23a11ea1af513702de2ab063324f0e49802635ca53b9f2f662159c8784877f6342d0a15cb231710be2ea69031c3df7459cd150cc47
|
||||
AUX openldap-2.4.40-slapd-conf 2059 SHA256 306602d38cbbdc2203e9f838348cbe9b264738cf86bbebc60272658b92a1eff9 SHA512 7ce8a8262db74d86449a3d31b96b2efa9e8dae2f9992a1c3a6d6899fb65531eaf917f410d8728852cb74338d7ba3c8c3b52d2f6cdcbba4cb3b97f6c733099fa2 WHIRLPOOL 979a2802501ec22dd93032eb3bc1a3df322558013cd8038736bac436b33fdb666df5d93fbfcc4d99762c10aa9e1a1edef496fa364d2b4f0019b5dd702174b6f4
|
||||
AUX openldap-2.4.42-mdb-unbundle.patch 3589 SHA256 43be88ef0810608232b2490e7f06f66272d17059c581f76d4de79c415365dd97 SHA512 ec123ff8cef6c32b1f29c2d0643433dd88dfa8ab62b4d7536de829475ff8b45b5c7376f3e17f3424aab326a573aa36a593630feecbd40c3e574c6c24f5dd83ec WHIRLPOOL 0eadd603e016506d3365f81c802561a0201122b989033935a5a6b4737db75ff6c1517bcca1c7c127b54bfd7c1ea2db0c11f65228ea6c4cbacf2f783af98dfddb
|
||||
AUX openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch 3542 SHA256 e7f630f8cad556806012489973f4f9c366bdcf7779170b163de21e078da8f114 SHA512 bdbc36bc020964eb997b8038cf3c32a2a8ccc09512e735376a34e5a54d0d0abbbc73cb60a3f6efaf7f8bdd88cad37c5f652c322eb0ff66edee8c8fc8978d1a3b WHIRLPOOL a5a62a1183b38c4346898032c2343c99685e64478bd7b8a45480a4818ab089383d101d84455e02712543504ff742715a9358b4896ed97cff44d6f4ae340b3dde
|
||||
AUX openldap-2.4.6-evolution-ntlm.patch 5161 SHA256 3b79d9afaa7c76ca20c5e7aa856dea49931741a1022ae6c3bb264c38f4c22edb SHA512 a553231ad3e2d2ca3a3a195b20da6163c135a723e0a3ed39afcad5601ed4ef01e692533df3f8f96d5ec8cc74ca27cbd16508818007dc1343899a42b5595b980b WHIRLPOOL 624f11c996825bb248dd7c33f64afd3a4e8b9edbbe79c6fdffc7f2d8e57c5d8ac4c651eae7763dbc0a06144b916131b70e599771034bcb6bd8c586a9bf6a8209
|
||||
AUX slapd-confd 614 SHA256 901044908fbbbbf333f7f0f1efccd1f0e213aa1a9156b3e659eaf0a0c7fdfc89 SHA512 e4ae52d10294da787016cf39adfd68c6ad812ac1758b00845810ee7936d21734d2ef3793252b878d88f21788414071adffb5f484381d4dc6a29f71a8729486b7 WHIRLPOOL d45df7487a952f899e9098779edda82afd9fb5ca66e42bbaf4a94f9ebdda9be58a026c0358a521a2feb4cc04c1f8477fb034896054ca4575d717bec367e1e2e8
|
||||
AUX slapd-confd-2.4.28-r1 1072 SHA256 5bca003ec3b67c7c78519aede1d82002579006ccfecce8f87b559df719f82e92 SHA512 7426c04ee689bcfb29a9a3956367c571eac6bc9620efda938591d09382a05527454458f7a25bdc2fa2ac920f93bae516121e085408ffefbe8ace0c7d8c5da315 WHIRLPOOL b9cb4e249f224ce2435184922df8d053d4c6d058a6408b72ac3c393563bdc0d413f7310e74ef7dcdab6dedc3d25a77d5af0581334356a9b55be5c516d6ee71d4
|
||||
AUX slapd-initd 1168 SHA256 6b2039adf33b9dbfcce644631f4e8d1c0517327123ad875e102bcafe6c30b364 SHA512 52dec305f990de797cfe12a9b0d5b306f4b5baedec1597879151a492a1743ea46d83bf659f7695e07b8652fddb8a5a2ea11339991432075907fc088edd9a8bd5 WHIRLPOOL b2b29b8571976fafdf3c801b744b86ce9f2bb460bedf736ea912e6c97739c3cc57a64dee45b4fbc15382d26571cd1540b9ac3e609e25ce97973e80fd8bb77ff3
|
||||
AUX slapd-initd-2.4.40-r2 1726 SHA256 bcd84fca8efc1eec3aea489f238b51ce7226ffcdb1562044e48106897bc5a6fc SHA512 3945dc4cff9b20bddd2ac4f38d045f8caabb59368ab0b5e952d4194d06a1bdd9871546b84e9a54b692d2e3ca699aa065e5fa909a29ae80e102ed9635c94bcfd5 WHIRLPOOL 1be86d1dcd863077fa77a98e56b5dded097d34afabaebb29d3d37f39c818cca246067fdab4aaffddc64c02fbe01e7000ece6da6e7b9015dcf3248b5325d7ed84
|
||||
AUX slapd.service 284 SHA256 106563991611b44717cf93c10473edef39b4f0b4b391e29b9d5bdd3059c7a64a SHA512 450c93b320101e1c28681cad6694c24332fbe424ac98283b621a2f6e1eb01e9e2dbd80a4142e6e8d01d95c55018b44e847d4f4c55f11d7e0e0a11ae1827daa82 WHIRLPOOL d1ff7b8c672d9b38116cc8984567179a743b140211ae99bebd00729d8dc3cfcd4ed7c0833a18b071c9fa20eeb2cce4e053e7b6805474fc3ca8442167254c1e35
|
||||
AUX slapd.service.conf 443 SHA256 462adb8f6fc1a9f742c792b4392346d30949eed523453dd19b64afc9dc448145 SHA512 be9cf4bf19111bd77c0ce481428e6f3cc183a6939775ed1a2d7606a5162da34178cb139d666288f6a35b8413bd4dc5f8f1bd60b39f3cca8f749557674b93910b WHIRLPOOL 8697c1c1c82c5c3fbb5d3fffc43e56f1a05a8bf23443270f2a051fde7d6ca0d1c5102611ac62d244b2c190c6bd1fb675cc46a5978a715d2df4e72f13c58db3c8
|
||||
AUX slapd.tmpfilesd 90 SHA256 8039a0190bd5b701f29661c63e03e4fb439a8eb50fdd7be5ce96a7f7f3aaeb1b SHA512 c462c92911635a2a6a30eb7239e74b529062224f9798351f53dca9a2e25cbc7f9fbb3743f98a015b7ccac0823ab85adb42d91d980f053bc3f12fdce760ce4bec WHIRLPOOL 2fb28068fa2b8113041544bd88a58060aa309b012b58bd903b58e2ff853fec0882de2f2b0fa28da76eaa5550dcccbe7ed6e8b792df7f788b6bf0d324a0dc0e52
|
||||
AUX slurpd-initd 386 SHA256 f63742fd5f4192e8c676d3634b3947f48dffc2d37ebc82d50a3eec19178c51f0 SHA512 f6f5ede73eb1290673f1d4c9605d8806c759d68568610660eaa1cdcacf2926c728387b5e70885acdec0eea0e15a734c730af49550c4ffc8f121fffc3d9b7ed8c WHIRLPOOL 8f6fe3bb1e2221438e546b766368f76cb6dec18aa3b3b997cf3867b058f0d0d0ca1690a0fb10ae2aac28917d0803c4d2d6663e7993e3eeac3589b4f407befc0f
|
||||
DIST openldap-2.3.43.tgz 3803011 SHA256 d7d2dea05362c8ac7e11bb7bf1da4cdeb07225ba8dc16974bff9f51a9f3d37e1 SHA512 2b0ebb35adbeed34673e1a55cc7a89b348ddee7ad6ce7f915ca3745198cee992aba7281bf0d56197dcfd59665935d5d3764db0ba487975e4dbc2a2507d6ea7a6 WHIRLPOOL 7457112bbad83d75f7ad01230da97511a8d983a98f7e31357dbffd79a7ed7e53057af781002cae8c610d3ad7834dfeefbd7f223798d45aea8cd00b70f5ee0e39
|
||||
DIST openldap-2.4.44.tgz 5658830 SHA256 d7de6bf3c67009c95525dde3a0212cc110d0a70b92af2af8e3ee800e81b88400 SHA512 132eb81798f59a364c9246d08697e1c7ebb6c2c3b983f786b14ec0233df09696cbad33a1f35f3076348b5efb77665a076ab854a24122c31e8b58310b7c7fd136 WHIRLPOOL 37399793d681a6489c369d663772970c62a4e1e370d4dc306bcb6fa3b9cb680139c9d940d9218aaac4618f50a63bc391b10f2aec0a134f84094ce4f7378c88ff
|
||||
DIST openldap-2.4.45.tgz 5672845 SHA256 cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824 SHA512 1c9fc84efed8998f107ce6e1c6be3f5466388241afdca0cb3847720c9def0bc263a2dbc15bf0f9112d1b4c391fd01e8531a4fb08c5532c30fb86924c08daedab WHIRLPOOL b5855bfe2b2c3856a98fb8b07ab94e51ef995ff80d4f39f0e7edae64f9774f0af9987db3673e25f98df8a5856a3f8839f28f1aa9184c92862a4df22540b3ab49
|
||||
DIST rfc2307bis.schema-20140524 12262 SHA256 6cd8154ad86be1d6bb88a79c303dc10a49bce4ce7d21bb417a951d6496df30b1 SHA512 83b89a1deeefc8566b97e7e865b9b6d04541099cbdf719e24538a7d27d61b6209e87ab9003a9f140bd9afd018ec569e71721e3a24090e1902c8b6659d2ba103e WHIRLPOOL 40cef24529fb4bfc1661d03088eccdb17d9056d696b2bf0e698fa248d03f508ba776784bf8abbaffb5f4c2c59b59b29525b4be2babc978fed681e5e3c88073de
|
||||
EBUILD openldap-2.3.43-r3.ebuild 18084 SHA256 e8bdb634b475e9773001bd4325518e4854b02d9fc21c6e153f5437d662e1c238 SHA512 7d8d7a2e1563960f1db4704d4dc1c1d922c4fc1ac311f5bda1ad9278388be26d9d4e7a0f4c2695406bba2a97613d0fa3a4eaacd7bb639439804a2c105fb859c8 WHIRLPOOL 564dd18d46124a7cd55b22308532dde74caa3393f43ff7fcd96ddf2634a2c2182ba6cbde302620c965a146f6838f3534db19b5d015eca55b7064a25bde83f7a4
|
||||
EBUILD openldap-2.3.43-r4.ebuild 18276 SHA256 51dcc2d596a0ae4c494a1c7a473930c10122abc3f91073daac5002f87f60b7bb SHA512 31cea69f98d773f8ef909acc424f29062dd31ad187b771417ba624fb1d3c1c6edfbfb4094fdf31045d251c6e9d44f322732ee4086710be39a8a00e4ad25ddb68 WHIRLPOOL 6a9dc29d18f399f885ea86d56cab4c7e637f8e32d5f584fccdf80641d2742011dafba213c8ca300641ef899d9b7da93dbda926b3741c1a6d8b3c9374e84610c8
|
||||
EBUILD openldap-2.4.44-r1.ebuild 27245 SHA256 034bf87b74f8092305d1035d2994a319de41412b21f038418caa8dcdb02a975c SHA512 a5273bcf45add81f5dc01b17ab0e4888a5f96e535c0156aed8f9e48fedf382c30f53cbcebbdc4d3e68e79009b8e53ae8faf8245f12980b9127bd8688960adbe7 WHIRLPOOL 9efabbacb9e7c70209ca478f41855c4cd6e89b979bbe3b38c36a2ff39ec7fcfb07a76a2dbc2da1ae0d82f5ee1d69ced25f90797dabae8095fd64f204775d03f4
|
||||
EBUILD openldap-2.4.44.ebuild 26576 SHA256 85310e0749a2bd1dfe37fb10fdbab74cf88bdef06a4d796f3b222daf28de9eb4 SHA512 870e3c0a52144e663d3ba7b8dc70a9198292fc81755ebabee0a214113596d76d004f5b2f91b2033c50432b21de98d0b5f37ace15e2b40a6bc309400c44df286c WHIRLPOOL c655f2c9e3930fd2cfda558e1da8b698fd3db191927fe7eee16a6964a207082e11dd63723df278b8a4640ca9713f328ce28a046d9af1af8b629782a9fd849d64
|
||||
EBUILD openldap-2.4.45.ebuild 28042 SHA256 3aedd923fd2e5f20c24b9fe57f5340b2cbc56b5f82276b3d25669518320c4f74 SHA512 554d404a2af4716d8759f0a435f440d1bbc5e31c2c55c0b529ac412aae4d0774c770ebc4248dcc0a856ddd68fba6a276bcb9dc6f8afb0baeb95be2ed80a7c597 WHIRLPOOL 46db827860f5cd3b74836944db87384a7d43e5d2adbf821cc94f3e74d6dbe3c81bbcb778df581663dabce2c0d6d284f46846f77133a6c5e92fbc9855d95d1c13
|
||||
MISC ChangeLog 8175 SHA256 3e40d412ae900631f1ff6666ca53a00c645d846d17e85dda64f2307af9a8b51b SHA512 5758f053e916ff51f0af336a4c1ab5068827334b441b5904be35968bb6be7efd078682360e41f7ba2bbbdf0302e0cf0e9b3e51bf466efd8a4a5ef61ff890258e WHIRLPOOL 0d7b6d7f534bdeca1aa97339e69a2705ab96abf678d910e6cdf994956553dc9ad25b935903e938991bf79b4986692912e846989e7a1f9d4fa96c8a82c331d432
|
||||
MISC ChangeLog-2015 87821 SHA256 29dc9d2d86f5c0de89ee44162332ee4390220ea9e546895100bd413bc60a0a30 SHA512 7c98e1dfe9ea30d7a31a7187cd913e6997bd8f8d5d74747c85f989a61b702272ce120588874257f2653343c2134c94dc405710f82957169a6f7bac01854d3611 WHIRLPOOL 2b657cb4f1f302e90eea233e401c6ca379b605c697443b36280153eb7419695ed2040ada6505b2c38c86832bda3efa74a4bfeda267d644639148ca6954cd10e9
|
||||
MISC metadata.xml 939 SHA256 dbed34e13c441b16f14e2ddb4a415b343e7148c9ebbd294b8d825f5abad9b350 SHA512 2cb744d3e29b0a3e8418b47df6c4d64a606d9a5e021e64104b8644da4977b0ad030b7d2e6c74259799c5ee1aa64984b779fa7966f6a77402574150f6756df1c1 WHIRLPOOL 2febb19b808bb5eea0040655b745c44cddd89f25f8c74091fb63371bec1e4b99d41fce6e5a1e1b699706e1a14634ccc7b49f8d022d3b4cc3a544680e728773fa
|
||||
DIST openldap-2.4.50.tgz 5712635 BLAKE2B 6a7d864a44c411b82cf703585c4a81954a02497e8510c84e29070dd120da0181e8425fd2b8bb7616e42e6e26d0f06db5ffdf50fb1cd97943d23f9914eb4f1260 SHA512 f528043ff9de36f7b65d8816c9a9c24f0ac400041b2969965178ee6eae62c92a11af33a0a883e4954e5fff98a0738a9f9aa2faf5b385d21974754e045aab31ae
|
||||
DIST rfc2307bis.schema-20140524 12262 BLAKE2B 98031f49e9bde1e4821e637af3382364d8344ed7017649686a088070d96a632dffa6c661552352656b1b159c0fd962965580069a64c7f3d5bb6a3ed75f60fd99 SHA512 83b89a1deeefc8566b97e7e865b9b6d04541099cbdf719e24538a7d27d61b6209e87ab9003a9f140bd9afd018ec569e71721e3a24090e1902c8b6659d2ba103e
|
||||
|
||||
@ -1,199 +0,0 @@
|
||||
(Note that this patch is not useful on its own... it just adds some
|
||||
hooks to work with the LDAP authentication process at a lower level
|
||||
than the API otherwise allows. The code that calls these hooks and
|
||||
actually drives the NTLM authentication process is in
|
||||
lib/e2k-global-catalog.c, and the code that actually implements the
|
||||
NTLM algorithms is in xntlm/.)
|
||||
|
||||
This is a patch against OpenLDAP 2.2.6. Apply with -p0
|
||||
|
||||
|
||||
--- include/ldap.h.orig 2004-01-01 13:16:28.000000000 -0500
|
||||
+++ include/ldap.h 2004-07-14 11:58:49.000000000 -0400
|
||||
@@ -1753,5 +1753,26 @@
|
||||
LDAPControl **cctrls ));
|
||||
|
||||
|
||||
+/*
|
||||
+ * hacks for NTLM
|
||||
+ */
|
||||
+#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
|
||||
+#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
|
||||
+LDAP_F( int )
|
||||
+ldap_ntlm_bind LDAP_P((
|
||||
+ LDAP *ld,
|
||||
+ LDAP_CONST char *dn,
|
||||
+ ber_tag_t tag,
|
||||
+ struct berval *cred,
|
||||
+ LDAPControl **sctrls,
|
||||
+ LDAPControl **cctrls,
|
||||
+ int *msgidp ));
|
||||
+LDAP_F( int )
|
||||
+ldap_parse_ntlm_bind_result LDAP_P((
|
||||
+ LDAP *ld,
|
||||
+ LDAPMessage *res,
|
||||
+ struct berval *challenge));
|
||||
+
|
||||
+
|
||||
LDAP_END_DECL
|
||||
#endif /* _LDAP_H */
|
||||
--- libraries/libldap/Makefile.in.orig 2004-01-01 13:16:29.000000000 -0500
|
||||
+++ libraries/libldap/Makefile.in 2004-07-14 13:37:23.000000000 -0400
|
||||
@@ -20,7 +20,7 @@
|
||||
SRCS = bind.c open.c result.c error.c compare.c search.c \
|
||||
controls.c messages.c references.c extended.c cyrus.c \
|
||||
modify.c add.c modrdn.c delete.c abandon.c \
|
||||
- sasl.c sbind.c kbind.c unbind.c cancel.c \
|
||||
+ sasl.c ntlm.c sbind.c kbind.c unbind.c cancel.c \
|
||||
filter.c free.c sort.c passwd.c whoami.c \
|
||||
getdn.c getentry.c getattr.c getvalues.c addentry.c \
|
||||
request.c os-ip.c url.c sortctrl.c vlvctrl.c \
|
||||
@@ -29,7 +29,7 @@
|
||||
OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
|
||||
controls.lo messages.lo references.lo extended.lo cyrus.lo \
|
||||
modify.lo add.lo modrdn.lo delete.lo abandon.lo \
|
||||
- sasl.lo sbind.lo kbind.lo unbind.lo cancel.lo \
|
||||
+ sasl.lo ntlm.lo sbind.lo kbind.lo unbind.lo cancel.lo \
|
||||
filter.lo free.lo sort.lo passwd.lo whoami.lo \
|
||||
getdn.lo getentry.lo getattr.lo getvalues.lo addentry.lo \
|
||||
request.lo os-ip.lo url.lo sortctrl.lo vlvctrl.lo \
|
||||
--- /dev/null 2004-06-30 15:04:37.000000000 -0400
|
||||
+++ libraries/libldap/ntlm.c 2004-07-14 13:44:18.000000000 -0400
|
||||
@@ -0,0 +1,137 @@
|
||||
+/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
|
||||
+/*
|
||||
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
|
||||
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
|
||||
+ */
|
||||
+
|
||||
+/* Mostly copied from sasl.c */
|
||||
+
|
||||
+#include "portable.h"
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+#include <ac/socket.h>
|
||||
+#include <ac/string.h>
|
||||
+#include <ac/time.h>
|
||||
+#include <ac/errno.h>
|
||||
+
|
||||
+#include "ldap-int.h"
|
||||
+
|
||||
+int
|
||||
+ldap_ntlm_bind(
|
||||
+ LDAP *ld,
|
||||
+ LDAP_CONST char *dn,
|
||||
+ ber_tag_t tag,
|
||||
+ struct berval *cred,
|
||||
+ LDAPControl **sctrls,
|
||||
+ LDAPControl **cctrls,
|
||||
+ int *msgidp )
|
||||
+{
|
||||
+ BerElement *ber;
|
||||
+ int rc;
|
||||
+ ber_int_t id;
|
||||
+
|
||||
+ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
|
||||
+
|
||||
+ assert( ld != NULL );
|
||||
+ assert( LDAP_VALID( ld ) );
|
||||
+ assert( msgidp != NULL );
|
||||
+
|
||||
+ if( msgidp == NULL ) {
|
||||
+ ld->ld_errno = LDAP_PARAM_ERROR;
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ /* create a message to send */
|
||||
+ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
|
||||
+ ld->ld_errno = LDAP_NO_MEMORY;
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ assert( LBER_VALID( ber ) );
|
||||
+
|
||||
+ LDAP_NEXT_MSGID( ld, id );
|
||||
+ rc = ber_printf( ber, "{it{istON}" /*}*/,
|
||||
+ id, LDAP_REQ_BIND,
|
||||
+ ld->ld_version, dn, tag,
|
||||
+ cred );
|
||||
+
|
||||
+ /* Put Server Controls */
|
||||
+ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
|
||||
+ ber_free( ber, 1 );
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
|
||||
+ ld->ld_errno = LDAP_ENCODING_ERROR;
|
||||
+ ber_free( ber, 1 );
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ /* send the message */
|
||||
+ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
|
||||
+
|
||||
+ if(*msgidp < 0)
|
||||
+ return ld->ld_errno;
|
||||
+
|
||||
+ return LDAP_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+ldap_parse_ntlm_bind_result(
|
||||
+ LDAP *ld,
|
||||
+ LDAPMessage *res,
|
||||
+ struct berval *challenge)
|
||||
+{
|
||||
+ ber_int_t errcode;
|
||||
+ ber_tag_t tag;
|
||||
+ BerElement *ber;
|
||||
+ ber_len_t len;
|
||||
+
|
||||
+ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
|
||||
+
|
||||
+ assert( ld != NULL );
|
||||
+ assert( LDAP_VALID( ld ) );
|
||||
+ assert( res != NULL );
|
||||
+
|
||||
+ if ( ld == NULL || res == NULL ) {
|
||||
+ return LDAP_PARAM_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ if( res->lm_msgtype != LDAP_RES_BIND ) {
|
||||
+ ld->ld_errno = LDAP_PARAM_ERROR;
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ if ( ld->ld_error ) {
|
||||
+ LDAP_FREE( ld->ld_error );
|
||||
+ ld->ld_error = NULL;
|
||||
+ }
|
||||
+ if ( ld->ld_matched ) {
|
||||
+ LDAP_FREE( ld->ld_matched );
|
||||
+ ld->ld_matched = NULL;
|
||||
+ }
|
||||
+
|
||||
+ /* parse results */
|
||||
+
|
||||
+ ber = ber_dup( res->lm_ber );
|
||||
+
|
||||
+ if( ber == NULL ) {
|
||||
+ ld->ld_errno = LDAP_NO_MEMORY;
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ tag = ber_scanf( ber, "{ioa" /*}*/,
|
||||
+ &errcode, challenge, &ld->ld_error );
|
||||
+ ber_free( ber, 0 );
|
||||
+
|
||||
+ if( tag == LBER_ERROR ) {
|
||||
+ ld->ld_errno = LDAP_DECODING_ERROR;
|
||||
+ return ld->ld_errno;
|
||||
+ }
|
||||
+
|
||||
+ ld->ld_errno = errcode;
|
||||
+
|
||||
+ return( ld->ld_errno );
|
||||
+}
|
||||
@ -1,13 +0,0 @@
|
||||
--- clients.orig/tools/common.c 2006-05-05 00:24:01.000000000 -0700
|
||||
+++ clients/tools/common.c 2006-05-05 00:24:13.000000000 -0700
|
||||
@@ -904,8 +904,8 @@
|
||||
tool_bind( LDAP *ld )
|
||||
{
|
||||
#ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
|
||||
- if ( ppolicy ) {
|
||||
LDAPControl *ctrls[2], c;
|
||||
+ if ( ppolicy ) {
|
||||
c.ldctl_oid = LDAP_CONTROL_PASSWORDPOLICYREQUEST;
|
||||
c.ldctl_value.bv_val = NULL;
|
||||
c.ldctl_value.bv_len = 0;
|
||||
|
||||
@ -1,53 +0,0 @@
|
||||
--- contrib/slapd-modules/smbk5pwd/Makefile.ORIG 2006-05-17 13:11:57.194660019 +0300
|
||||
+++ contrib/slapd-modules/smbk5pwd/Makefile 2006-05-17 13:11:14.503082288 +0300
|
||||
@@ -9,29 +9,39 @@
|
||||
# top-level directory of the distribution or, alternatively, at
|
||||
# <http://www.OpenLDAP.org/license.html>.
|
||||
|
||||
+#libexecdir=/usr/lib/openldap
|
||||
+moduledir=$(libexecdir)/openldap
|
||||
LIBTOOL=../../../libtool
|
||||
-OPT=-g -O2
|
||||
+#OPT=
|
||||
CC=gcc
|
||||
|
||||
# Omit DO_KRB5 or DO_SAMBA if you don't want to support it.
|
||||
-DEFS=-DDO_KRB5 -DDO_SAMBA
|
||||
+#DEFS=
|
||||
|
||||
-HEIMDAL_INC=-I/usr/heimdal/include
|
||||
+#KRB5_INC=
|
||||
SSL_INC=
|
||||
LDAP_INC=-I../../../include -I../../../servers/slapd
|
||||
-INCS=$(LDAP_INC) $(HEIMDAL_INC) $(SSL_INC)
|
||||
+INCS=$(LDAP_INC) $(SSL_INC) $(KRB5_INC)
|
||||
|
||||
-HEIMDAL_LIB=-L/usr/heimdal/lib -lkrb5 -lkadm5srv
|
||||
+KRB5_LIB=-lkrb5 -lkadm5srv
|
||||
SSL_LIB=-lcrypto
|
||||
-LDAP_LIB=-lldap_r -llber
|
||||
-LIBS=$(LDAP_LIB) $(HEIMDAL_LIB) $(SSL_LIB)
|
||||
-
|
||||
+LDAP_LIB=-L../../../libraries/libldap_r -lldap_r -llber
|
||||
+ifneq (DDO_KRB5,$(findstring DDO_KRB5,$(DEFS)))
|
||||
+ LIBS=$(LDAP_LIB) $(SSL_LIB)
|
||||
+else
|
||||
+ LIBS=$(LDAP_LIB) $(KRB5_LIB) $(SSL_LIB)
|
||||
+endif
|
||||
+
|
||||
all: smbk5pwd.la
|
||||
|
||||
|
||||
smbk5pwd.lo: smbk5pwd.c
|
||||
- $(LIBTOOL) --mode=compile $(CC) $(OPT) $(DEFS) $(INCS) -c $?
|
||||
+ $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(DEFS) $(INCS) -c $?
|
||||
|
||||
smbk5pwd.la: smbk5pwd.lo
|
||||
- $(LIBTOOL) --mode=link $(CC) $(OPT) -version-info 0:0:0 \
|
||||
- -rpath /usr/local/libexec/openldap -module -o $@ $? $(LIBS)
|
||||
+ $(LIBTOOL) --mode=link $(CC) $(CFLAGS) -version-info 0:0:0 \
|
||||
+ -rpath $(moduledir) -module -o $@ $? $(LIBS)
|
||||
+
|
||||
+install-mod:
|
||||
+ $(LIBTOOL) --mode=install ../../../build/shtool install -c \
|
||||
+ -m 755 smbk5pwd.la $(DESTDIR)$(moduledir)
|
||||
@ -1,64 +0,0 @@
|
||||
#
|
||||
# See slapd.conf(5) for details on configuration options.
|
||||
# This file should NOT be world readable.
|
||||
#
|
||||
include /etc/openldap/schema/core.schema
|
||||
|
||||
# Define global ACLs to disable default read access.
|
||||
|
||||
# Do not enable referrals until AFTER you have a working directory
|
||||
# service AND an understanding of referrals.
|
||||
#referral ldap://root.openldap.org
|
||||
|
||||
pidfile /var/run/openldap/slapd.pid
|
||||
argsfile /var/run/openldap/slapd.args
|
||||
|
||||
# Load dynamic backend modules:
|
||||
###INSERTDYNAMICMODULESHERE###
|
||||
|
||||
# Sample security restrictions
|
||||
# Require integrity protection (prevent hijacking)
|
||||
# Require 112-bit (3DES or better) encryption for updates
|
||||
# Require 63-bit encryption for simple bind
|
||||
# security ssf=1 update_ssf=112 simple_bind=64
|
||||
|
||||
# Sample access control policy:
|
||||
# Root DSE: allow anyone to read it
|
||||
# Subschema (sub)entry DSE: allow anyone to read it
|
||||
# Other DSEs:
|
||||
# Allow self write access
|
||||
# Allow authenticated users read access
|
||||
# Allow anonymous users to authenticate
|
||||
# Directives needed to implement policy:
|
||||
# access to dn.base="" by * read
|
||||
# access to dn.base="cn=Subschema" by * read
|
||||
# access to *
|
||||
# by self write
|
||||
# by users read
|
||||
# by anonymous auth
|
||||
#
|
||||
# if no access controls are present, the default policy
|
||||
# allows anyone and everyone to read anything but restricts
|
||||
# updates to rootdn. (e.g., "access to * by * read")
|
||||
#
|
||||
# rootdn can always read and write EVERYTHING!
|
||||
|
||||
#######################################################################
|
||||
# BDB database definitions
|
||||
#######################################################################
|
||||
|
||||
database hdb
|
||||
suffix "dc=my-domain,dc=com"
|
||||
# <kbyte> <min>
|
||||
checkpoint 32 30
|
||||
rootdn "cn=Manager,dc=my-domain,dc=com"
|
||||
# Cleartext passwords, especially for the rootdn, should
|
||||
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
|
||||
# Use of strong authentication encouraged.
|
||||
rootpw secret
|
||||
# The database directory MUST exist prior to running slapd AND
|
||||
# should only be accessible by the slapd and slap tools.
|
||||
# Mode 700 recommended.
|
||||
directory /var/lib/openldap-data
|
||||
# Indices to maintain
|
||||
index objectClass eq
|
||||
@ -1,21 +0,0 @@
|
||||
--- libraries/libldap_r/Makefile.in.old 2007-01-02 22:43:50.000000000 +0100
|
||||
+++ libraries/libldap_r/Makefile.in 2007-08-22 13:32:20.000000000 +0200
|
||||
@@ -56,7 +56,7 @@
|
||||
XXLIBS = $(SECURITY_LIBS) $(LUTIL_LIBS)
|
||||
XXXLIBS = $(LTHREAD_LIBS)
|
||||
NT_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
|
||||
-UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS)
|
||||
+UNIX_LINK_LIBS = $(LDAP_LIBLBER_LA) $(AC_LIBS) $(SECURITY_LIBS) $(LTHREAD_LIBS)
|
||||
|
||||
.links : Makefile
|
||||
@for i in $(XXSRCS); do \
|
||||
--- servers/slapd/slapi/Makefile.in.old 2007-01-02 22:44:10.000000000 +0100
|
||||
+++ servers/slapd/slapi/Makefile.in 2007-08-22 14:58:51.000000000 +0200
|
||||
@@ -37,6 +37,7 @@
|
||||
XLIBS = $(LIBRARY)
|
||||
XXLIBS =
|
||||
NT_LINK_LIBS = $(AC_LIBS)
|
||||
+UNIX_LINK_LIBS = ../../../libraries/libldap_r/libldap_r.la $(LTHREAD_LIBS)
|
||||
|
||||
XINCPATH = -I$(srcdir)/.. -I$(srcdir)
|
||||
XDEFS = $(MODULES_CPPFLAGS)
|
||||
@ -1,19 +0,0 @@
|
||||
commit a3f40e5601c0c522f2bda418374fb415bdcbd75c
|
||||
Author: Quanah Gibson-Mount <quanah@openldap.org>
|
||||
Date: Thu Mar 24 02:25:49 2011 +0000
|
||||
|
||||
sl_busy is used as a boolean so just set it, don't increment it
|
||||
|
||||
diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
|
||||
index 2a7a48e..df6d096 100644
|
||||
--- a/servers/slapd/daemon.c
|
||||
+++ b/servers/slapd/daemon.c
|
||||
@@ -2098,7 +2098,7 @@ slap_listener_activate(
|
||||
Debug( LDAP_DEBUG_TRACE, "slap_listener_activate(%d): %s\n",
|
||||
sl->sl_sd, sl->sl_busy ? "busy" : "", 0 );
|
||||
|
||||
- sl->sl_busy++;
|
||||
+ sl->sl_busy = 1;
|
||||
|
||||
rc = ldap_pvt_thread_pool_submit( &connection_pool,
|
||||
slap_listener_thread, (void *) sl );
|
||||
@ -1,30 +0,0 @@
|
||||
--- include/ldap_pvt_thread.h 2009-04-03 08:51:30.000000000 -0400
|
||||
+++ include/ldap_pvt_thread.h 2009-04-03 08:56:36.000000000 -0400
|
||||
@@ -57,12 +57,12 @@
|
||||
|
||||
#ifndef LDAP_PVT_THREAD_H_DONE
|
||||
#define LDAP_PVT_THREAD_SET_STACK_SIZE
|
||||
-#ifndef LDAP_PVT_THREAD_STACK_SIZE
|
||||
- /* LARGE stack. Will be twice as large on 64 bit machine. */
|
||||
-#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) )
|
||||
/* May be explicitly defined to zero to disable it */
|
||||
-#elif LDAP_PVT_THREAD_STACK_SIZE == 0
|
||||
+#if defined( LDAP_PVT_THREAD_STACK_SIZE ) && LDAP_PVT_THREAD_STACK_SIZE == 0
|
||||
#undef LDAP_PVT_THREAD_SET_STACK_SIZE
|
||||
+#elif !defined(LDAP_PVT_THREAD_STACK_SIZE)
|
||||
+ /* LARGE stack. Will be twice as large on 64 bit machine. */
|
||||
+#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) )
|
||||
#endif
|
||||
#endif /* !LDAP_PVT_THREAD_H_DONE */
|
||||
|
||||
--- libraries/libldap/os-ip.c 2009-04-03 08:51:30.000000000 -0400
|
||||
+++ libraries/libldap/os-ip.c 2009-04-03 08:54:47.000000000 -0400
|
||||
@@ -652,7 +652,7 @@
|
||||
char *herr;
|
||||
#ifdef NI_MAXHOST
|
||||
char hbuf[NI_MAXHOST];
|
||||
-#elif defined( MAXHOSTNAMELEN
|
||||
+#elif defined( MAXHOSTNAMELEN )
|
||||
char hbuf[MAXHOSTNAMELEN];
|
||||
#else
|
||||
char hbuf[256];
|
||||
@ -1,109 +0,0 @@
|
||||
If GnuTLS is used, the lmpasswd module for USE=samba does not compile.
|
||||
Forward-port an old Debian patch that upstream never applied.
|
||||
|
||||
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
||||
Signed-off-by: Steffen Hau <steffen@hauihau.de>
|
||||
X-Gentoo-Bug: http://bugs.gentoo.org/show_bug.cgi?id=233633
|
||||
X-Upstream-Bug: http://www.openldap.org/its/index.cgi/Software%20Enhancements?id=4997
|
||||
X-Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=245341
|
||||
|
||||
--- openldap-2.4.17.orig/libraries/liblutil/passwd.c 2009-07-27 18:59:19.635995474 -0700
|
||||
+++ openldap-2.4.17/libraries/liblutil/passwd.c 2009-07-27 19:01:13.588069010 -0700
|
||||
@@ -51,6 +51,26 @@ typedef unsigned char des_data_block[8];
|
||||
typedef PK11Context *des_context[1];
|
||||
#define DES_ENCRYPT CKA_ENCRYPT
|
||||
|
||||
+#elif defined(HAVE_GNUTLS_GNUTLS_H) && !defined(DES_ENCRYPT)
|
||||
+# include <gcrypt.h>
|
||||
+static int gcrypt_init = 0;
|
||||
+
|
||||
+typedef const void* des_key;
|
||||
+typedef unsigned char des_cblock[8];
|
||||
+typedef des_cblock des_data_block;
|
||||
+typedef int des_key_schedule; /* unused */
|
||||
+typedef des_key_schedule des_context; /* unused */
|
||||
+#define des_failed(encrypted) 0
|
||||
+#define des_finish(key, schedule)
|
||||
+
|
||||
+#define des_set_key_unchecked( key, key_sched ) \
|
||||
+ gcry_cipher_setkey( hd, key, 8 )
|
||||
+
|
||||
+#define des_ecb_encrypt( input, output, key_sched, enc ) \
|
||||
+ gcry_cipher_encrypt( hd, *output, 8, *input, 8 )
|
||||
+
|
||||
+#define des_set_odd_parity( key ) do {} while(0)
|
||||
+
|
||||
#endif
|
||||
|
||||
#endif /* SLAPD_LMHASH */
|
||||
@@ -651,7 +671,7 @@ static int chk_md5(
|
||||
|
||||
#ifdef SLAPD_LMHASH
|
||||
|
||||
-#if defined(HAVE_OPENSSL)
|
||||
+#if defined(HAVE_OPENSSL) || defined(HAVE_GNUTLS_GNUTLS_H)
|
||||
|
||||
/*
|
||||
* abstract away setting the parity.
|
||||
@@ -841,6 +861,19 @@ static int chk_lanman(
|
||||
des_data_block StdText = "KGS!@#$%";
|
||||
des_data_block PasswordHash1, PasswordHash2;
|
||||
char PasswordHash[33], storedPasswordHash[33];
|
||||
+
|
||||
+#if defined(HAVE_GNUTLS_GNUTLS_H) && !defined(DES_ENCRYPT)
|
||||
+ gcry_cipher_hd_t hd;
|
||||
+
|
||||
+ if ( !gcrypt_init ) {
|
||||
+ gcry_check_version( GCRYPT_VERSION );
|
||||
+ gcrypt_init = 1;
|
||||
+ }
|
||||
+
|
||||
+ schedule = schedule; /* unused - avoid warning */
|
||||
+
|
||||
+ gcry_cipher_open( &hd, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0 );
|
||||
+#endif /* HAVE_GNUTLS_GNUTLS_H && !DES_ENCRYPT */
|
||||
|
||||
for( i=0; i<cred->bv_len; i++) {
|
||||
if(cred->bv_val[i] == '\0') {
|
||||
@@ -883,6 +916,10 @@ static int chk_lanman(
|
||||
strncpy( storedPasswordHash, passwd->bv_val, 32 );
|
||||
storedPasswordHash[32] = '\0';
|
||||
ldap_pvt_str2lower( storedPasswordHash );
|
||||
+
|
||||
+#if defined(HAVE_GNUTLS_GNUTLS_H) && !defined(DES_ENCRYPT)
|
||||
+ gcry_cipher_close( hd );
|
||||
+#endif /* HAVE_GNUTLS_GNUTLS_H && !DES_ENCRYPT */
|
||||
|
||||
return memcmp( PasswordHash, storedPasswordHash, 32) ? LUTIL_PASSWD_ERR : LUTIL_PASSWD_OK;
|
||||
}
|
||||
@@ -1138,6 +1175,19 @@ static int hash_lanman(
|
||||
des_data_block PasswordHash1, PasswordHash2;
|
||||
char PasswordHash[33];
|
||||
|
||||
+#if defined(HAVE_GNUTLS_GNUTLS_H) && !defined(DES_ENCRYPT)
|
||||
+ gcry_cipher_hd_t hd;
|
||||
+
|
||||
+ if ( !gcrypt_init ) {
|
||||
+ gcry_check_version( GCRYPT_VERSION );
|
||||
+ gcrypt_init = 1;
|
||||
+ }
|
||||
+
|
||||
+ schedule = schedule; /* unused - avoid warning */
|
||||
+
|
||||
+ gcry_cipher_open( &hd, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0 );
|
||||
+#endif /* HAVE_GNUTLS_GNUTLS_H && !DES_ENCRYPT */
|
||||
+
|
||||
for( i=0; i<passwd->bv_len; i++) {
|
||||
if(passwd->bv_val[i] == '\0') {
|
||||
return LUTIL_PASSWD_ERR; /* NUL character in password */
|
||||
@@ -1168,6 +1218,10 @@ static int hash_lanman(
|
||||
|
||||
hash->bv_val = PasswordHash;
|
||||
hash->bv_len = 32;
|
||||
+
|
||||
+#if defined(HAVE_GNUTLS_GNUTLS_H) && !defined(DES_ENCRYPT)
|
||||
+ gcry_cipher_close( hd );
|
||||
+#endif /* HAVE_GNUTLS_GNUTLS_H && !DES_ENCRYPT */
|
||||
|
||||
return pw_string( scheme, hash );
|
||||
}
|
||||
@ -19,7 +19,7 @@ X-Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=245341
|
||||
+
|
||||
+typedef const void* des_key;
|
||||
+typedef unsigned char DES_cblock[8];
|
||||
+typedef des_cblock des_data_block;
|
||||
+typedef DES_cblock des_data_block;
|
||||
+typedef int DES_key_schedule; /* unused */
|
||||
+typedef DES_key_schedule des_context; /* unused */
|
||||
+#define des_failed(encrypted) 0
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
diff --git a/libraries/libldap/tls_o.c b/libraries/libldap/tls_o.c
|
||||
index b0277dfe9..8a3f47a74 100644
|
||||
--- a/libraries/libldap/tls_o.c
|
||||
+++ b/libraries/libldap/tls_o.c
|
||||
@@ -50,7 +50,7 @@
|
||||
#include <ssl.h>
|
||||
#endif
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
|
||||
#define ASN1_STRING_data(x) ASN1_STRING_get0_data(x)
|
||||
#endif
|
||||
|
||||
@@ -200,7 +200,7 @@ tlso_init( void )
|
||||
(void) tlso_seed_PRNG( lo->ldo_tls_randfile );
|
||||
#endif
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
|
||||
SSL_load_error_strings();
|
||||
SSL_library_init();
|
||||
OpenSSL_add_all_digests();
|
||||
@@ -252,7 +252,7 @@ static void
|
||||
tlso_ctx_ref( tls_ctx *ctx )
|
||||
{
|
||||
tlso_ctx *c = (tlso_ctx *)ctx;
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
|
||||
#define SSL_CTX_up_ref(ctx) CRYPTO_add( &(ctx->references), 1, CRYPTO_LOCK_SSL_CTX )
|
||||
#endif
|
||||
SSL_CTX_up_ref( c );
|
||||
@@ -511,7 +511,7 @@ tlso_session_my_dn( tls_session *sess, struct berval *der_dn )
|
||||
if (!x) return LDAP_INVALID_CREDENTIALS;
|
||||
|
||||
xn = X509_get_subject_name(x);
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
|
||||
der_dn->bv_len = i2d_X509_NAME( xn, NULL );
|
||||
der_dn->bv_val = xn->bytes->data;
|
||||
#else
|
||||
@@ -547,7 +547,7 @@ tlso_session_peer_dn( tls_session *sess, struct berval *der_dn )
|
||||
return LDAP_INVALID_CREDENTIALS;
|
||||
|
||||
xn = X509_get_subject_name(x);
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
|
||||
der_dn->bv_len = i2d_X509_NAME( xn, NULL );
|
||||
der_dn->bv_val = xn->bytes->data;
|
||||
#else
|
||||
@@ -768,7 +768,7 @@ struct tls_data {
|
||||
Sockbuf_IO_Desc *sbiod;
|
||||
};
|
||||
|
||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000 || defined(LIBRESSL_VERSION_NUMBER)
|
||||
#define BIO_set_init(b, x) b->init = x
|
||||
#define BIO_set_data(b, x) b->ptr = x
|
||||
#define BIO_clear_flags(b, x) b->flags &= ~(x)
|
||||
@ -0,0 +1,41 @@
|
||||
diff --git a/include/ldap.h b/include/ldap.h
|
||||
index c245651c2..7f14f1051 100644
|
||||
--- a/include/ldap.h
|
||||
+++ b/include/ldap.h
|
||||
@@ -2041,6 +2041,10 @@ LDAP_F( int )
|
||||
ldap_is_ldapi_url LDAP_P((
|
||||
LDAP_CONST char *url ));
|
||||
|
||||
+LDAP_F( int )
|
||||
+ldap_is_ldapc_url LDAP_P((
|
||||
+ LDAP_CONST char *url ));
|
||||
+
|
||||
LDAP_F( int )
|
||||
ldap_url_parse LDAP_P((
|
||||
LDAP_CONST char *url,
|
||||
diff --git a/include/ldap_int_thread.h b/include/ldap_int_thread.h
|
||||
index e2dd8a942..bbc07c845 100644
|
||||
--- a/include/ldap_int_thread.h
|
||||
+++ b/include/ldap_int_thread.h
|
||||
@@ -33,7 +33,7 @@ LDAP_END_DECL
|
||||
* definitions for POSIX Threads *
|
||||
* *
|
||||
**********************************/
|
||||
-
|
||||
+#define __USE_UNIX98
|
||||
#include <pthread.h>
|
||||
#ifdef HAVE_SCHED_H
|
||||
#include <sched.h>
|
||||
diff --git a/libraries/libldap/tls2.c b/libraries/libldap/tls2.c
|
||||
index d25c190ea..639f598e7 100644
|
||||
--- a/libraries/libldap/tls2.c
|
||||
+++ b/libraries/libldap/tls2.c
|
||||
@@ -76,6 +76,8 @@ static oid_name oids[] = {
|
||||
|
||||
#ifdef HAVE_TLS
|
||||
|
||||
+int ldap_pvt_tls_check_hostname( LDAP *ld, void *s, const char *name_in );
|
||||
+
|
||||
void
|
||||
ldap_pvt_tls_ctx_free ( void *c )
|
||||
{
|
||||
@ -1,21 +0,0 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2004 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting slurpd"
|
||||
start-stop-daemon --start --quiet \
|
||||
--exec /usr/lib/openldap/slurpd
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping slurpd"
|
||||
start-stop-daemon --stop --quiet \
|
||||
--exec /usr/lib/openldap/slurpd
|
||||
eend $?
|
||||
}
|
||||
@ -1,19 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>ldap-bugs@gentoo.org</email>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>ldap-bugs@gentoo.org</email>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="experimental">Enable experimental backend options</flag>
|
||||
<flag name="kinit">Enable support for kerberos init</flag>
|
||||
<flag name="odbc">Enable ODBC and SQL backend options</flag>
|
||||
<flag name="overlays">Enable contributed OpenLDAP overlays</flag>
|
||||
<flag name="smbkrb5passwd">Enable overlay for syncing ldap, unix and
|
||||
lanman passwords</flag>
|
||||
<flag name="minimal">Build libraries & userspace tools only. Does not install any server code.</flag>
|
||||
<flag name="smbkrb5passwd">Enable overlay for syncing ldap, unix and lanman passwords</flag>
|
||||
<flag name="minimal">Build libraries & userspace tools only. Does not install any server code</flag>
|
||||
<flag name="pbkdf2">Enable support for pbkdf2 passwords</flag>
|
||||
<flag name="sha2">Enable support for pw-sha2 password hashes.</flag>
|
||||
<flag name="sha2">Enable support for pw-sha2 password hashes</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="cpe">cpe:/a:openldap:openldap</remote-id>
|
||||
|
||||
@ -1,541 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="2"
|
||||
|
||||
AT_M4DIR="./build"
|
||||
inherit autotools db-use eutils flag-o-matic multilib ssl-cert toolchain-funcs versionator user
|
||||
|
||||
DESCRIPTION="LDAP suite of application and development tools"
|
||||
HOMEPAGE="http://www.OpenLDAP.org/"
|
||||
SRC_URI="mirror://openldap/openldap-release/${P}.tgz"
|
||||
|
||||
LICENSE="OPENLDAP GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd"
|
||||
IUSE="berkdb crypt debug gdbm ipv6 kerberos minimal odbc overlays perl samba sasl slp smbkrb5passwd ssl tcpd selinux"
|
||||
|
||||
# note that the 'samba' USE flag pulling in OpenSSL is NOT an error. OpenLDAP
|
||||
# uses OpenSSL for LanMan/NTLM hashing (which is used in some enviroments, like
|
||||
# mine at work)!
|
||||
# Robin H. Johnson <robbat2@gentoo.org> March 8, 2004
|
||||
|
||||
RDEPEND="sys-libs/ncurses
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
ssl? ( dev-libs/openssl )
|
||||
sasl? ( dev-libs/cyrus-sasl )
|
||||
!minimal? (
|
||||
odbc? ( dev-db/unixODBC )
|
||||
slp? ( net-libs/openslp )
|
||||
perl? ( || ( >=dev-lang/perl-5.16 <dev-lang/perl-5.16[-build] ) )
|
||||
samba? ( dev-libs/openssl )
|
||||
kerberos? ( virtual/krb5 )
|
||||
berkdb? (
|
||||
|| ( sys-libs/db:4.5
|
||||
sys-libs/db:4.4
|
||||
sys-libs/db:4.3
|
||||
>=sys-libs/db-4.2.52_p2-r1:4.2
|
||||
)
|
||||
)
|
||||
!berkdb? (
|
||||
gdbm? ( sys-libs/gdbm )
|
||||
!gdbm? (
|
||||
|| ( sys-libs/db:4.5
|
||||
sys-libs/db:4.4
|
||||
sys-libs/db:4.3
|
||||
>=sys-libs/db-4.2.52_p2-r1:4.2
|
||||
)
|
||||
)
|
||||
)
|
||||
smbkrb5passwd? (
|
||||
dev-libs/openssl
|
||||
app-crypt/heimdal
|
||||
)
|
||||
)
|
||||
selinux? ( sec-policy/selinux-ldap )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
# for tracking versions
|
||||
OPENLDAP_VERSIONTAG=".version-tag"
|
||||
OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
|
||||
|
||||
openldap_upgrade_howto() {
|
||||
eerror
|
||||
eerror "A (possible old) installation of OpenLDAP was detected,"
|
||||
eerror "installation will not proceed for now."
|
||||
eerror
|
||||
eerror "As major version upgrades can corrupt your database,"
|
||||
eerror "you need to dump your database and re-create it afterwards."
|
||||
eerror ""
|
||||
d="$(date -u +%s)"
|
||||
l="/root/ldapdump.${d}"
|
||||
i="${l}.raw"
|
||||
eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
|
||||
eerror " 2. slapcat -l ${i}"
|
||||
eerror " 3. egrep -v '^(entry|context)CSN:' <${i} >${l}"
|
||||
eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
|
||||
eerror " 5. emerge --update \=net-nds/${PF}"
|
||||
eerror " 6. etc-update, and ensure that you apply the changes"
|
||||
eerror " 7. slapadd -l ${l}"
|
||||
eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
|
||||
eerror " 9. /etc/init.d/slapd start"
|
||||
eerror "10. check that your data is intact."
|
||||
eerror "11. set up the new replication system."
|
||||
eerror
|
||||
if [ "${FORCE_UPGRADE}" != "1" ]; then
|
||||
die "You need to upgrade your database first"
|
||||
else
|
||||
eerror "You have the magical FORCE_UPGRADE=1 in place."
|
||||
eerror "Don't say you weren't warned about data loss."
|
||||
fi
|
||||
}
|
||||
|
||||
openldap_find_versiontags() {
|
||||
# scan for all datadirs
|
||||
openldap_datadirs=""
|
||||
if [ -f "${ROOT}"/etc/openldap/slapd.conf ]; then
|
||||
openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${ROOT}/etc/openldap/slapd.conf)"
|
||||
fi
|
||||
openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
|
||||
|
||||
einfo
|
||||
einfo "Scanning datadir(s) from slapd.conf and"
|
||||
einfo "the default installdir for Versiontags"
|
||||
einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
|
||||
einfo
|
||||
|
||||
# scan datadirs if we have a version tag
|
||||
openldap_found_tag=0
|
||||
for each in ${openldap_datadirs}; do
|
||||
CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
|
||||
CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
|
||||
if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
|
||||
einfo "- Checking ${each}..."
|
||||
if [ -r ${CURRENT_TAG} ] ; then
|
||||
# yey, we have one :)
|
||||
einfo " Found Versiontag in ${each}"
|
||||
source ${CURRENT_TAG}
|
||||
if [ "${OLDPF}" == "" ] ; then
|
||||
eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
|
||||
eerror "Please delete it"
|
||||
eerror
|
||||
die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
|
||||
fi
|
||||
|
||||
OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
|
||||
|
||||
# are we on the same branch?
|
||||
if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
|
||||
ewarn " Versiontag doesn't match current major release!"
|
||||
if [[ `ls -a ${CURRENT_TAGDIR} | wc -l` -gt 5 ]] ; then
|
||||
eerror " Versiontag says other major and you (probably) have datafiles!"
|
||||
echo
|
||||
openldap_upgrade_howto
|
||||
else
|
||||
einfo " No real problem, seems there's no database."
|
||||
fi
|
||||
else
|
||||
einfo " Versiontag is fine here :)"
|
||||
fi
|
||||
else
|
||||
einfo " Non-tagged dir ${each}"
|
||||
if [[ `ls -a ${each} | wc -l` > 5 ]] ; then
|
||||
einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
|
||||
echo
|
||||
|
||||
eerror
|
||||
eerror "Your OpenLDAP Installation has a non tagged datadir that"
|
||||
eerror "possibly contains a database at ${CURRENT_TAGDIR}"
|
||||
eerror
|
||||
eerror "Please export data if any entered and empty or remove"
|
||||
eerror "the directory, installation has been stopped so you"
|
||||
eerror "can take required action"
|
||||
eerror
|
||||
eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
|
||||
eerror
|
||||
die "Please move the datadir ${CURRENT_TAGDIR} away"
|
||||
fi
|
||||
fi
|
||||
einfo
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
einfo
|
||||
einfo "All datadirs are fine, proceeding with merge now..."
|
||||
einfo
|
||||
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if has_version "<=dev-lang/perl-5.8.8_rc1" && built_with_use dev-lang/perl minimal ; then
|
||||
die "You must have a complete (USE='-minimal') Perl install to use the perl backend!"
|
||||
fi
|
||||
|
||||
if use samba && ! use ssl ; then
|
||||
eerror "LAN manager passwords need ssl flag set"
|
||||
die "Please set ssl useflag"
|
||||
fi
|
||||
|
||||
if use minimal && has_version 'net-nds/openldap[minimal]' ; then
|
||||
einfo
|
||||
einfo "Skipping scan for previous datadirs as requested by minimal useflag"
|
||||
einfo
|
||||
else
|
||||
openldap_find_versiontags
|
||||
fi
|
||||
|
||||
# The user/group are only used for running daemons which are
|
||||
# disabled in minimal builds, so elide the accounts too.
|
||||
if ! use minimal ; then
|
||||
enewgroup ldap 439
|
||||
enewuser ldap 439 -1 /usr/$(get_libdir)/openldap ldap
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# According to MDK, the link order needs to be changed so that
|
||||
# on systems w/ MD5 passwords the system crypt library is used
|
||||
# (the net result is that "passwd" can be used to change ldap passwords w/
|
||||
# proper pam support)
|
||||
sed -i -e 's/$(SECURITY_LIBS) $(LDIF_LIBS) $(LUTIL_LIBS)/$(LUTIL_LIBS) $(SECURITY_LIBS) $(LDIF_LIBS)/' \
|
||||
"${S}"/servers/slapd/Makefile.in
|
||||
|
||||
# supersedes old fix for bug #31202
|
||||
EPATCH_OPTS="-p1 -d ${S}" epatch "${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch
|
||||
|
||||
# ensure correct SLAPI path by default
|
||||
sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "/var/run/openldap/slapd.sock",' \
|
||||
"${S}"/include/ldap_defaults.h
|
||||
|
||||
EPATCH_OPTS="-p0 -d ${S}"
|
||||
|
||||
# ximian connector 1.4.7 ntlm patch
|
||||
epatch "${FILESDIR}"/${PN}-2.2.6-ntlm.patch
|
||||
|
||||
# bug #132263
|
||||
epatch "${FILESDIR}"/${PN}-2.3.21-ppolicy.patch
|
||||
|
||||
# bug #189817
|
||||
epatch "${FILESDIR}"/${PN}-2.3.37-libldap_r.patch
|
||||
|
||||
# fix up stuff for newer autoconf that simulates autoconf-2.13, but doesn't
|
||||
# do it perfectly.
|
||||
cd "${S}"/build
|
||||
ln -s shtool install
|
||||
ln -s shtool install.sh
|
||||
einfo "Making sure upstream build strip does not do stripping too early"
|
||||
sed -i.orig \
|
||||
-e '/^STRIP/s,-s,,g' \
|
||||
top.mk || die "Failed to block stripping"
|
||||
|
||||
# bug #116045
|
||||
# patch contrib modules
|
||||
if ! use minimal ; then
|
||||
cd "${S}"/contrib
|
||||
epatch "${FILESDIR}"/${PN}-2.3.24-contrib-smbk5pwd.patch
|
||||
fi
|
||||
# Fix gcc-4.4 compat, bug 264761
|
||||
epatch "${FILESDIR}/openldap-2.3.XY-gcc44.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf
|
||||
|
||||
#Fix for glibc-2.8 and ucred. Bug 228457.
|
||||
append-flags -D_GNU_SOURCE
|
||||
|
||||
# HDB is only available with BerkDB
|
||||
myconf_berkdb='--enable-bdb --enable-ldbm-api=berkeley --enable-hdb=mod'
|
||||
myconf_gdbm='--disable-bdb --enable-ldbm-api=gdbm --disable-hdb'
|
||||
|
||||
use debug && myconf="${myconf} --enable-debug" # there is no disable-debug
|
||||
|
||||
# enable slapd/slurpd servers if not doing a minimal build
|
||||
if ! use minimal ; then
|
||||
myconf="${myconf} --enable-slapd --enable-slurpd"
|
||||
# base backend stuff
|
||||
myconf="${myconf} --enable-ldbm"
|
||||
if use berkdb ; then
|
||||
einfo "Using Berkeley DB for local backend"
|
||||
myconf="${myconf} ${myconf_berkdb}"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I$(db_includedir 4.5 4.4 4.3 4.2 )
|
||||
elif use gdbm ; then
|
||||
einfo "Using GDBM for local backend"
|
||||
myconf="${myconf} ${myconf_gdbm}"
|
||||
else
|
||||
ewarn "Neither gdbm or berkdb USE flags present, falling back to"
|
||||
ewarn "Berkeley DB for local backend"
|
||||
myconf="${myconf} ${myconf_berkdb}"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I$(db_includedir 4.5 4.4 4.3 4.2 )
|
||||
fi
|
||||
# extra backend stuff
|
||||
myconf="${myconf} --enable-passwd=mod --enable-phonetic=mod"
|
||||
myconf="${myconf} --enable-dnssrv=mod --enable-ldap"
|
||||
myconf="${myconf} --enable-meta=mod --enable-monitor=mod"
|
||||
myconf="${myconf} --enable-null=mod --enable-shell=mod"
|
||||
myconf="${myconf} --enable-relay=mod"
|
||||
myconf="${myconf} $(use_enable perl perl mod)"
|
||||
myconf="${myconf} $(use_enable odbc sql mod)"
|
||||
# slapd options
|
||||
myconf="${myconf} $(use_enable crypt) $(use_enable slp)"
|
||||
myconf="${myconf} --enable-rewrite --enable-rlookups"
|
||||
myconf="${myconf} --enable-aci --enable-modules"
|
||||
myconf="${myconf} --enable-cleartext --enable-slapi"
|
||||
myconf="${myconf} $(use_enable samba lmpasswd)"
|
||||
# slapd overlay options
|
||||
myconf="${myconf} --enable-dyngroup --enable-proxycache"
|
||||
use overlays && myconf="${myconf} --enable-overlays=mod"
|
||||
myconf="${myconf} --enable-syncprov"
|
||||
else
|
||||
myconf="${myconf} --disable-slapd --disable-slurpd"
|
||||
myconf="${myconf} --disable-bdb --disable-ldbm"
|
||||
myconf="${myconf} --disable-hdb --disable-monitor"
|
||||
myconf="${myconf} --disable-slurpd --disable-overlays"
|
||||
myconf="${myconf} --disable-relay"
|
||||
fi
|
||||
|
||||
# basic functionality stuff
|
||||
myconf="${myconf} --enable-syslog --enable-dynamic"
|
||||
myconf="${myconf} --enable-local --enable-proctitle"
|
||||
|
||||
myconf="${myconf} $(use_enable ipv6)"
|
||||
myconf="${myconf} $(use_with sasl cyrus-sasl) $(use_enable sasl spasswd)"
|
||||
myconf="${myconf} $(use_enable tcpd wrappers) $(use_with ssl tls)"
|
||||
|
||||
if [ $(get_libdir) != "lib" ] ; then
|
||||
append-ldflags -L/usr/$(get_libdir)
|
||||
fi
|
||||
|
||||
STRIP=/bin/true \
|
||||
econf \
|
||||
--enable-static \
|
||||
--enable-shared \
|
||||
--libexecdir=/usr/$(get_libdir)/openldap \
|
||||
${myconf} || die "configure failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake depend || die "make depend failed"
|
||||
emake || die "make failed"
|
||||
|
||||
# openldap/contrib
|
||||
tc-export CC
|
||||
if ! use minimal ; then
|
||||
# dsaschema
|
||||
einfo "Building contributed dsaschema"
|
||||
cd "${S}"/contrib/slapd-modules/dsaschema
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-Wall -o libdsaschema-plugin.so dsaschema.c || \
|
||||
die "failed to compile dsaschema module"
|
||||
# kerberos passwd
|
||||
if use kerberos ; then
|
||||
einfo "Building contributed pw-kerberos"
|
||||
cd "${S}"/contrib/slapd-modules/passwd/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
$(krb5-config --cflags) \
|
||||
-DHAVE_KRB5 -o pw-kerberos.so kerberos.c || \
|
||||
die "failed to compile kerberos password module"
|
||||
fi
|
||||
# netscape mta-md5 password
|
||||
einfo "Building contributed pw-netscape"
|
||||
cd "${S}"/contrib/slapd-modules/passwd/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-o pw-netscape.so netscape.c || \
|
||||
die "failed to compile netscape password module"
|
||||
# smbk5pwd overlay
|
||||
# Note: this modules builds, but may not work with
|
||||
# Gentoo's MIT-Kerberos. It was designed for Heimdal
|
||||
# Kerberos.
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Building contributed smbk5pwd"
|
||||
local mydef
|
||||
local mykrb5inc
|
||||
mydef="-DDO_SAMBA -DDO_KRB5"
|
||||
mykrb5inc="$(krb5-config --cflags)"
|
||||
cd "${S}"/contrib/slapd-modules/smbk5pwd && \
|
||||
libexecdir="/usr/$(get_libdir)/openldap" \
|
||||
DEFS="${mydef}" KRB5_INC="${mykrb5inc}" emake || \
|
||||
die "failed to compile smbk5pwd module"
|
||||
fi
|
||||
# addrdnvalues
|
||||
einfo "Building contributed addrdnvalues"
|
||||
cd "${S}"/contrib/slapi-plugins/addrdnvalues/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-o libaddrdnvalues-plugin.so addrdnvalues.c || \
|
||||
die "failed to compile addrdnvalues plugin"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
einfo "Doing tests"
|
||||
cd tests ; make tests || die "make tests failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install || die "make install failed"
|
||||
|
||||
dodoc ANNOUNCEMENT CHANGES COPYRIGHT README "${FILESDIR}"/DB_CONFIG.fast.example
|
||||
docinto rfc ; dodoc doc/rfc/*.txt
|
||||
|
||||
# openldap modules go here
|
||||
# TODO: write some code to populate slapd.conf with moduleload statements
|
||||
keepdir /usr/$(get_libdir)/openldap/openldap/
|
||||
|
||||
# make state directories
|
||||
local dirlist="data"
|
||||
if ! use minimal; then
|
||||
dirlist="${dirlist} slurp ldbm"
|
||||
fi
|
||||
for x in ${dirlist}; do
|
||||
keepdir /var/lib/openldap-${x}
|
||||
fowners ldap:ldap /var/lib/openldap-${x}
|
||||
fperms 0700 /var/lib/openldap-${x}
|
||||
done
|
||||
|
||||
echo "OLDPF='${PF}'" > "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# do NOT delete this. it is used" >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# to track versions for upgrading." >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
|
||||
# manually remove /var/tmp references in .la
|
||||
# because it is packaged with an ancient libtool
|
||||
#for x in "${D}"/usr/$(get_libdir)/lib*.la; do
|
||||
# sed -i -e "s:-L${S}[/]*libraries::" ${x}
|
||||
#done
|
||||
|
||||
# change slapd.pid location in configuration file
|
||||
keepdir /var/run/openldap
|
||||
fowners ldap:ldap /var/run/openldap
|
||||
fperms 0755 /var/run/openldap
|
||||
|
||||
if ! use minimal; then
|
||||
# use our config
|
||||
rm "${D}"etc/openldap/slapd.con*
|
||||
insinto /etc/openldap
|
||||
newins "${FILESDIR}"/${PN}-2.3.34-slapd-conf slapd.conf
|
||||
configfile="${D}"etc/openldap/slapd.conf
|
||||
|
||||
# populate with built backends
|
||||
ebegin "populate config with built backends"
|
||||
for x in "${D}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
elog "Adding $(basename ${x})"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
|
||||
done
|
||||
sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
|
||||
fowners root:ldap /etc/openldap/slapd.conf
|
||||
fperms 0640 /etc/openldap/slapd.conf
|
||||
cp "${configfile}" "${configfile}".default
|
||||
eend
|
||||
|
||||
# install our own init scripts
|
||||
newinitd "${FILESDIR}"/slapd-initd slapd
|
||||
newinitd "${FILESDIR}"/slurpd-initd slurpd
|
||||
newconfd "${FILESDIR}"/slapd-confd slapd
|
||||
|
||||
if [ $(get_libdir) != lib ]; then
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i "${D}"etc/init.d/{slapd,slurpd}
|
||||
fi
|
||||
|
||||
# install contributed modules
|
||||
docinto /
|
||||
if [ -e "${S}"/contrib/slapd-modules/dsaschema/libdsaschema-plugin.so ];
|
||||
then
|
||||
cd "${S}"/contrib/slapd-modules/dsaschema/
|
||||
newdoc README README.contrib.dsaschema
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe libdsaschema-plugin.so || \
|
||||
die "failed to install dsaschema module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/passwd/pw-kerberos.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/passwd/
|
||||
newdoc README README.contrib.passwd
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe pw-kerberos.so || \
|
||||
die "failed to install kerberos passwd module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/passwd/pw-netscape.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/passwd/
|
||||
newdoc README README.contrib.passwd
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe "${S}"/contrib/slapd-modules/passwd/pw-netscape.so || \
|
||||
die "failed to install Netscape MTA-MD5 passwd module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/smbk5pwd/.libs/smbk5pwd.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/smbk5pwd
|
||||
newdoc README README.contrib.smbk5pwd
|
||||
libexecdir="/usr/$(get_libdir)/openldap" \
|
||||
emake DESTDIR="${D}" install-mod || \
|
||||
die "failed to install smbk5pwd overlay module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-tools/statslog ]; then
|
||||
cd "${S}"/contrib/slapd-tools
|
||||
exeinto /usr/bin
|
||||
newexe statslog ldapstatslog || \
|
||||
die "failed to install ldapstatslog script"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapi-plugins/addrdnvalues/libaddrdnvalues-plugin.so ];
|
||||
then
|
||||
cd "${S}"/contrib/slapi-plugins/addrdnvalues
|
||||
newdoc README README.contrib.addrdnvalues
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe libaddrdnvalues-plugin.so || \
|
||||
die "failed to install addrdnvalues plugin"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# keep old libs if any
|
||||
LIBSUFFIXES=".so.2.0.130 -2.2.so.7"
|
||||
for LIBSUFFIX in ${LIBSUFFIXES} ; do
|
||||
for each in libldap libldap_r liblber ; do
|
||||
preserve_old_lib "usr/$(get_libdir)/${each}${LIBSUFFIX}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use minimal ; then
|
||||
# You cannot build SSL certificates during src_install that will make
|
||||
# binary packages containing your SSL key, which is both a security risk
|
||||
# and a misconfiguration if multiple machines use the same key and cert.
|
||||
# Additionally, it overwrites
|
||||
if use ssl; then
|
||||
install_cert /etc/openldap/ssl/ldap
|
||||
chown ldap:ldap "${ROOT}"etc/openldap/ssl/ldap.*
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "add 'TLS_REQCERT never' if you want to use them."
|
||||
fi
|
||||
# These lines force the permissions of various content to be correct
|
||||
chown ldap:ldap "${ROOT}"var/run/openldap
|
||||
chmod 0755 "${ROOT}"var/run/openldap
|
||||
chown root:ldap "${ROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${ROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chown ldap:ldap "${ROOT}"var/lib/openldap-{data,ldbm,slurp}
|
||||
fi
|
||||
|
||||
# Reference inclusion bug #77330
|
||||
echo
|
||||
elog
|
||||
elog "Getting started using OpenLDAP? There is some documentation available:"
|
||||
elog "Gentoo Guide to OpenLDAP Authentication"
|
||||
elog "(https://www.gentoo.org/doc/en/ldap-howto.xml)"
|
||||
elog
|
||||
|
||||
# note to bug #110412
|
||||
echo
|
||||
elog
|
||||
elog "An example file for tuning BDB backends with openldap is"
|
||||
elog "DB_CONFIG.fast.example in /usr/share/doc/${PF}/"
|
||||
elog
|
||||
|
||||
LIBSUFFIXES=".so.2.0.130 -2.2.so.7"
|
||||
for LIBSUFFIX in ${LIBSUFFIXES} ; do
|
||||
for each in liblber libldap libldap_r ; do
|
||||
preserve_old_lib_notify "usr/$(get_libdir)/${each}${LIBSUFFIX}"
|
||||
done
|
||||
done
|
||||
}
|
||||
@ -1,547 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="2"
|
||||
|
||||
AT_M4DIR="./build"
|
||||
inherit autotools db-use eutils flag-o-matic multilib ssl-cert toolchain-funcs versionator user
|
||||
|
||||
DESCRIPTION="LDAP suite of application and development tools"
|
||||
HOMEPAGE="http://www.OpenLDAP.org/"
|
||||
SRC_URI="mirror://openldap/openldap-release/${P}.tgz"
|
||||
|
||||
LICENSE="OPENLDAP GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="berkdb crypt debug gdbm ipv6 kerberos minimal odbc overlays perl samba sasl slp smbkrb5passwd ssl tcpd selinux"
|
||||
|
||||
# note that the 'samba' USE flag pulling in OpenSSL is NOT an error. OpenLDAP
|
||||
# uses OpenSSL for LanMan/NTLM hashing (which is used in some enviroments, like
|
||||
# mine at work)!
|
||||
# Robin H. Johnson <robbat2@gentoo.org> March 8, 2004
|
||||
|
||||
RDEPEND="sys-libs/ncurses
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
ssl? ( dev-libs/openssl )
|
||||
sasl? ( dev-libs/cyrus-sasl )
|
||||
!minimal? (
|
||||
odbc? ( dev-db/unixODBC )
|
||||
slp? ( net-libs/openslp )
|
||||
perl? ( || ( >=dev-lang/perl-5.16 <dev-lang/perl-5.16[-build] ) )
|
||||
samba? ( dev-libs/openssl )
|
||||
kerberos? ( virtual/krb5 )
|
||||
berkdb? (
|
||||
|| ( sys-libs/db:4.5
|
||||
sys-libs/db:4.4
|
||||
sys-libs/db:4.3
|
||||
>=sys-libs/db-4.2.52_p2-r1:4.2
|
||||
)
|
||||
)
|
||||
!berkdb? (
|
||||
gdbm? ( sys-libs/gdbm )
|
||||
!gdbm? (
|
||||
|| ( sys-libs/db:4.5
|
||||
sys-libs/db:4.4
|
||||
sys-libs/db:4.3
|
||||
>=sys-libs/db-4.2.52_p2-r1:4.2
|
||||
)
|
||||
)
|
||||
)
|
||||
smbkrb5passwd? (
|
||||
dev-libs/openssl
|
||||
app-crypt/heimdal
|
||||
)
|
||||
)
|
||||
selinux? ( sec-policy/selinux-ldap )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
# for tracking versions
|
||||
OPENLDAP_VERSIONTAG=".version-tag"
|
||||
OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
|
||||
|
||||
openldap_upgrade_howto() {
|
||||
eerror
|
||||
eerror "A (possible old) installation of OpenLDAP was detected,"
|
||||
eerror "installation will not proceed for now."
|
||||
eerror
|
||||
eerror "As major version upgrades can corrupt your database,"
|
||||
eerror "you need to dump your database and re-create it afterwards."
|
||||
eerror ""
|
||||
d="$(date -u +%s)"
|
||||
l="/root/ldapdump.${d}"
|
||||
i="${l}.raw"
|
||||
eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
|
||||
eerror " 2. slapcat -l ${i}"
|
||||
eerror " 3. egrep -v '^(entry|context)CSN:' <${i} >${l}"
|
||||
eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
|
||||
eerror " 5. emerge --update \=net-nds/${PF}"
|
||||
eerror " 6. etc-update, and ensure that you apply the changes"
|
||||
eerror " 7. slapadd -l ${l}"
|
||||
eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
|
||||
eerror " 9. /etc/init.d/slapd start"
|
||||
eerror "10. check that your data is intact."
|
||||
eerror "11. set up the new replication system."
|
||||
eerror
|
||||
if [ "${FORCE_UPGRADE}" != "1" ]; then
|
||||
die "You need to upgrade your database first"
|
||||
else
|
||||
eerror "You have the magical FORCE_UPGRADE=1 in place."
|
||||
eerror "Don't say you weren't warned about data loss."
|
||||
fi
|
||||
}
|
||||
|
||||
openldap_find_versiontags() {
|
||||
# scan for all datadirs
|
||||
openldap_datadirs=""
|
||||
if [ -f "${ROOT}"/etc/openldap/slapd.conf ]; then
|
||||
openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${ROOT}/etc/openldap/slapd.conf)"
|
||||
fi
|
||||
openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
|
||||
|
||||
einfo
|
||||
einfo "Scanning datadir(s) from slapd.conf and"
|
||||
einfo "the default installdir for Versiontags"
|
||||
einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
|
||||
einfo
|
||||
|
||||
# scan datadirs if we have a version tag
|
||||
openldap_found_tag=0
|
||||
for each in ${openldap_datadirs}; do
|
||||
CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
|
||||
CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
|
||||
if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
|
||||
einfo "- Checking ${each}..."
|
||||
if [ -r ${CURRENT_TAG} ] ; then
|
||||
# yey, we have one :)
|
||||
einfo " Found Versiontag in ${each}"
|
||||
source ${CURRENT_TAG}
|
||||
if [ "${OLDPF}" == "" ] ; then
|
||||
eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
|
||||
eerror "Please delete it"
|
||||
eerror
|
||||
die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
|
||||
fi
|
||||
|
||||
OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
|
||||
|
||||
# are we on the same branch?
|
||||
if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
|
||||
ewarn " Versiontag doesn't match current major release!"
|
||||
if [[ `ls -a ${CURRENT_TAGDIR} | wc -l` -gt 5 ]] ; then
|
||||
eerror " Versiontag says other major and you (probably) have datafiles!"
|
||||
echo
|
||||
openldap_upgrade_howto
|
||||
else
|
||||
einfo " No real problem, seems there's no database."
|
||||
fi
|
||||
else
|
||||
einfo " Versiontag is fine here :)"
|
||||
fi
|
||||
else
|
||||
einfo " Non-tagged dir ${each}"
|
||||
if [[ `ls -a ${each} | wc -l` > 5 ]] ; then
|
||||
einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
|
||||
echo
|
||||
|
||||
eerror
|
||||
eerror "Your OpenLDAP Installation has a non tagged datadir that"
|
||||
eerror "possibly contains a database at ${CURRENT_TAGDIR}"
|
||||
eerror
|
||||
eerror "Please export data if any entered and empty or remove"
|
||||
eerror "the directory, installation has been stopped so you"
|
||||
eerror "can take required action"
|
||||
eerror
|
||||
eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
|
||||
eerror
|
||||
die "Please move the datadir ${CURRENT_TAGDIR} away"
|
||||
fi
|
||||
fi
|
||||
einfo
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
einfo
|
||||
einfo "All datadirs are fine, proceeding with merge now..."
|
||||
einfo
|
||||
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if has_version "<=dev-lang/perl-5.8.8_rc1" && built_with_use dev-lang/perl minimal ; then
|
||||
die "You must have a complete (USE='-minimal') Perl install to use the perl backend!"
|
||||
fi
|
||||
|
||||
if use samba && ! use ssl ; then
|
||||
eerror "LAN manager passwords need ssl flag set"
|
||||
die "Please set ssl useflag"
|
||||
fi
|
||||
|
||||
if use minimal && has_version 'net-nds/openldap[minimal]' ; then
|
||||
einfo
|
||||
einfo "Skipping scan for previous datadirs as requested by minimal useflag"
|
||||
einfo
|
||||
else
|
||||
openldap_find_versiontags
|
||||
fi
|
||||
|
||||
# The user/group are only used for running daemons which are
|
||||
# disabled in minimal builds, so elide the accounts too.
|
||||
if ! use minimal ; then
|
||||
enewgroup ldap 439
|
||||
enewuser ldap 439 -1 /usr/$(get_libdir)/openldap ldap
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# According to MDK, the link order needs to be changed so that
|
||||
# on systems w/ MD5 passwords the system crypt library is used
|
||||
# (the net result is that "passwd" can be used to change ldap passwords w/
|
||||
# proper pam support)
|
||||
sed -i -e 's/$(SECURITY_LIBS) $(LDIF_LIBS) $(LUTIL_LIBS)/$(LUTIL_LIBS) $(SECURITY_LIBS) $(LDIF_LIBS)/' \
|
||||
"${S}"/servers/slapd/Makefile.in
|
||||
|
||||
# supersedes old fix for bug #31202
|
||||
EPATCH_OPTS="-p1 -d ${S}" epatch "${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch
|
||||
|
||||
# ensure correct SLAPI path by default
|
||||
sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "/var/run/openldap/slapd.sock",' \
|
||||
"${S}"/include/ldap_defaults.h
|
||||
|
||||
EPATCH_OPTS="-p0 -d ${S}"
|
||||
|
||||
# ximian connector 1.4.7 ntlm patch
|
||||
epatch "${FILESDIR}"/${PN}-2.2.6-ntlm.patch
|
||||
|
||||
# bug #132263
|
||||
epatch "${FILESDIR}"/${PN}-2.3.21-ppolicy.patch
|
||||
|
||||
# bug #189817
|
||||
epatch "${FILESDIR}"/${PN}-2.3.37-libldap_r.patch
|
||||
|
||||
# fix up stuff for newer autoconf that simulates autoconf-2.13, but doesn't
|
||||
# do it perfectly.
|
||||
cd "${S}"/build
|
||||
ln -s shtool install
|
||||
ln -s shtool install.sh
|
||||
einfo "Making sure upstream build strip does not do stripping too early"
|
||||
sed -i.orig \
|
||||
-e '/^STRIP/s,-s,,g' \
|
||||
top.mk || die "Failed to block stripping"
|
||||
|
||||
# bug #116045
|
||||
# patch contrib modules
|
||||
if ! use minimal ; then
|
||||
cd "${S}"/contrib
|
||||
epatch "${FILESDIR}"/${PN}-2.3.24-contrib-smbk5pwd.patch
|
||||
fi
|
||||
# Fix gcc-4.4 compat, bug 264761
|
||||
epatch "${FILESDIR}/openldap-2.3.XY-gcc44.patch"
|
||||
|
||||
# Backport random-hang fix from 2.4
|
||||
# http://www.openldap.org/lists/openldap-technical/201208/msg00120.html
|
||||
EPATCH_OPTS=""
|
||||
cd "${S}"
|
||||
epatch "${FILESDIR}/openldap-2.3.43-fix-hang.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf
|
||||
|
||||
#Fix for glibc-2.8 and ucred. Bug 228457.
|
||||
append-flags -D_GNU_SOURCE
|
||||
|
||||
# HDB is only available with BerkDB
|
||||
myconf_berkdb='--enable-bdb --enable-ldbm-api=berkeley --enable-hdb=mod'
|
||||
myconf_gdbm='--disable-bdb --enable-ldbm-api=gdbm --disable-hdb'
|
||||
|
||||
use debug && myconf="${myconf} --enable-debug" # there is no disable-debug
|
||||
|
||||
# enable slapd/slurpd servers if not doing a minimal build
|
||||
if ! use minimal ; then
|
||||
myconf="${myconf} --enable-slapd --enable-slurpd"
|
||||
# base backend stuff
|
||||
myconf="${myconf} --enable-ldbm"
|
||||
if use berkdb ; then
|
||||
einfo "Using Berkeley DB for local backend"
|
||||
myconf="${myconf} ${myconf_berkdb}"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I$(db_includedir 4.5 4.4 4.3 4.2 )
|
||||
elif use gdbm ; then
|
||||
einfo "Using GDBM for local backend"
|
||||
myconf="${myconf} ${myconf_gdbm}"
|
||||
else
|
||||
ewarn "Neither gdbm or berkdb USE flags present, falling back to"
|
||||
ewarn "Berkeley DB for local backend"
|
||||
myconf="${myconf} ${myconf_berkdb}"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I$(db_includedir 4.5 4.4 4.3 4.2 )
|
||||
fi
|
||||
# extra backend stuff
|
||||
myconf="${myconf} --enable-passwd=mod --enable-phonetic=mod"
|
||||
myconf="${myconf} --enable-dnssrv=mod --enable-ldap"
|
||||
myconf="${myconf} --enable-meta=mod --enable-monitor=mod"
|
||||
myconf="${myconf} --enable-null=mod --enable-shell=mod"
|
||||
myconf="${myconf} --enable-relay=mod"
|
||||
myconf="${myconf} $(use_enable perl perl mod)"
|
||||
myconf="${myconf} $(use_enable odbc sql mod)"
|
||||
# slapd options
|
||||
myconf="${myconf} $(use_enable crypt) $(use_enable slp)"
|
||||
myconf="${myconf} --enable-rewrite --enable-rlookups"
|
||||
myconf="${myconf} --enable-aci --enable-modules"
|
||||
myconf="${myconf} --enable-cleartext --enable-slapi"
|
||||
myconf="${myconf} $(use_enable samba lmpasswd)"
|
||||
# slapd overlay options
|
||||
myconf="${myconf} --enable-dyngroup --enable-proxycache"
|
||||
use overlays && myconf="${myconf} --enable-overlays=mod"
|
||||
myconf="${myconf} --enable-syncprov"
|
||||
else
|
||||
myconf="${myconf} --disable-slapd --disable-slurpd"
|
||||
myconf="${myconf} --disable-bdb --disable-ldbm"
|
||||
myconf="${myconf} --disable-hdb --disable-monitor"
|
||||
myconf="${myconf} --disable-slurpd --disable-overlays"
|
||||
myconf="${myconf} --disable-relay"
|
||||
fi
|
||||
|
||||
# basic functionality stuff
|
||||
myconf="${myconf} --enable-syslog --enable-dynamic"
|
||||
myconf="${myconf} --enable-local --enable-proctitle"
|
||||
|
||||
myconf="${myconf} $(use_enable ipv6)"
|
||||
myconf="${myconf} $(use_with sasl cyrus-sasl) $(use_enable sasl spasswd)"
|
||||
myconf="${myconf} $(use_enable tcpd wrappers) $(use_with ssl tls)"
|
||||
|
||||
if [ $(get_libdir) != "lib" ] ; then
|
||||
append-ldflags -L/usr/$(get_libdir)
|
||||
fi
|
||||
|
||||
STRIP=/bin/true \
|
||||
econf \
|
||||
--enable-static \
|
||||
--enable-shared \
|
||||
--libexecdir=/usr/$(get_libdir)/openldap \
|
||||
${myconf} || die "configure failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake depend || die "make depend failed"
|
||||
emake || die "make failed"
|
||||
|
||||
# openldap/contrib
|
||||
tc-export CC
|
||||
if ! use minimal ; then
|
||||
# dsaschema
|
||||
einfo "Building contributed dsaschema"
|
||||
cd "${S}"/contrib/slapd-modules/dsaschema
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-Wall -o libdsaschema-plugin.so dsaschema.c || \
|
||||
die "failed to compile dsaschema module"
|
||||
# kerberos passwd
|
||||
if use kerberos ; then
|
||||
einfo "Building contributed pw-kerberos"
|
||||
cd "${S}"/contrib/slapd-modules/passwd/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
$(krb5-config --cflags) \
|
||||
-DHAVE_KRB5 -o pw-kerberos.so kerberos.c || \
|
||||
die "failed to compile kerberos password module"
|
||||
fi
|
||||
# netscape mta-md5 password
|
||||
einfo "Building contributed pw-netscape"
|
||||
cd "${S}"/contrib/slapd-modules/passwd/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-o pw-netscape.so netscape.c || \
|
||||
die "failed to compile netscape password module"
|
||||
# smbk5pwd overlay
|
||||
# Note: this modules builds, but may not work with
|
||||
# Gentoo's MIT-Kerberos. It was designed for Heimdal
|
||||
# Kerberos.
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Building contributed smbk5pwd"
|
||||
local mydef
|
||||
local mykrb5inc
|
||||
mydef="-DDO_SAMBA -DDO_KRB5"
|
||||
mykrb5inc="$(krb5-config --cflags)"
|
||||
cd "${S}"/contrib/slapd-modules/smbk5pwd && \
|
||||
libexecdir="/usr/$(get_libdir)/openldap" \
|
||||
DEFS="${mydef}" KRB5_INC="${mykrb5inc}" emake || \
|
||||
die "failed to compile smbk5pwd module"
|
||||
fi
|
||||
# addrdnvalues
|
||||
einfo "Building contributed addrdnvalues"
|
||||
cd "${S}"/contrib/slapi-plugins/addrdnvalues/ && \
|
||||
${CC} -shared -I../../../include ${CFLAGS} -fPIC \
|
||||
-o libaddrdnvalues-plugin.so addrdnvalues.c || \
|
||||
die "failed to compile addrdnvalues plugin"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
einfo "Doing tests"
|
||||
cd tests ; make tests || die "make tests failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install || die "make install failed"
|
||||
|
||||
dodoc ANNOUNCEMENT CHANGES COPYRIGHT README "${FILESDIR}"/DB_CONFIG.fast.example
|
||||
docinto rfc ; dodoc doc/rfc/*.txt
|
||||
|
||||
# openldap modules go here
|
||||
# TODO: write some code to populate slapd.conf with moduleload statements
|
||||
keepdir /usr/$(get_libdir)/openldap/openldap/
|
||||
|
||||
# make state directories
|
||||
local dirlist="data"
|
||||
if ! use minimal; then
|
||||
dirlist="${dirlist} slurp ldbm"
|
||||
fi
|
||||
for x in ${dirlist}; do
|
||||
keepdir /var/lib/openldap-${x}
|
||||
fowners ldap:ldap /var/lib/openldap-${x}
|
||||
fperms 0700 /var/lib/openldap-${x}
|
||||
done
|
||||
|
||||
echo "OLDPF='${PF}'" > "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# do NOT delete this. it is used" >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# to track versions for upgrading." >> "${D}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
|
||||
# manually remove /var/tmp references in .la
|
||||
# because it is packaged with an ancient libtool
|
||||
#for x in "${D}"/usr/$(get_libdir)/lib*.la; do
|
||||
# sed -i -e "s:-L${S}[/]*libraries::" ${x}
|
||||
#done
|
||||
|
||||
# change slapd.pid location in configuration file
|
||||
keepdir /var/run/openldap
|
||||
fowners ldap:ldap /var/run/openldap
|
||||
fperms 0755 /var/run/openldap
|
||||
|
||||
if ! use minimal; then
|
||||
# use our config
|
||||
rm "${D}"etc/openldap/slapd.con*
|
||||
insinto /etc/openldap
|
||||
newins "${FILESDIR}"/${PN}-2.3.34-slapd-conf slapd.conf
|
||||
configfile="${D}"etc/openldap/slapd.conf
|
||||
|
||||
# populate with built backends
|
||||
ebegin "populate config with built backends"
|
||||
for x in "${D}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
elog "Adding $(basename ${x})"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
|
||||
done
|
||||
sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
|
||||
fowners root:ldap /etc/openldap/slapd.conf
|
||||
fperms 0640 /etc/openldap/slapd.conf
|
||||
cp "${configfile}" "${configfile}".default
|
||||
eend
|
||||
|
||||
# install our own init scripts
|
||||
newinitd "${FILESDIR}"/slapd-initd slapd
|
||||
newinitd "${FILESDIR}"/slurpd-initd slurpd
|
||||
newconfd "${FILESDIR}"/slapd-confd slapd
|
||||
|
||||
if [ $(get_libdir) != lib ]; then
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i "${D}"etc/init.d/{slapd,slurpd}
|
||||
fi
|
||||
|
||||
# install contributed modules
|
||||
docinto /
|
||||
if [ -e "${S}"/contrib/slapd-modules/dsaschema/libdsaschema-plugin.so ];
|
||||
then
|
||||
cd "${S}"/contrib/slapd-modules/dsaschema/
|
||||
newdoc README README.contrib.dsaschema
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe libdsaschema-plugin.so || \
|
||||
die "failed to install dsaschema module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/passwd/pw-kerberos.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/passwd/
|
||||
newdoc README README.contrib.passwd
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe pw-kerberos.so || \
|
||||
die "failed to install kerberos passwd module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/passwd/pw-netscape.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/passwd/
|
||||
newdoc README README.contrib.passwd
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe "${S}"/contrib/slapd-modules/passwd/pw-netscape.so || \
|
||||
die "failed to install Netscape MTA-MD5 passwd module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-modules/smbk5pwd/.libs/smbk5pwd.so ]; then
|
||||
cd "${S}"/contrib/slapd-modules/smbk5pwd
|
||||
newdoc README README.contrib.smbk5pwd
|
||||
libexecdir="/usr/$(get_libdir)/openldap" \
|
||||
emake DESTDIR="${D}" install-mod || \
|
||||
die "failed to install smbk5pwd overlay module"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapd-tools/statslog ]; then
|
||||
cd "${S}"/contrib/slapd-tools
|
||||
exeinto /usr/bin
|
||||
newexe statslog ldapstatslog || \
|
||||
die "failed to install ldapstatslog script"
|
||||
fi
|
||||
if [ -e "${S}"/contrib/slapi-plugins/addrdnvalues/libaddrdnvalues-plugin.so ];
|
||||
then
|
||||
cd "${S}"/contrib/slapi-plugins/addrdnvalues
|
||||
newdoc README README.contrib.addrdnvalues
|
||||
exeinto /usr/$(get_libdir)/openldap/openldap
|
||||
doexe libaddrdnvalues-plugin.so || \
|
||||
die "failed to install addrdnvalues plugin"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# keep old libs if any
|
||||
LIBSUFFIXES=".so.2.0.130 -2.2.so.7"
|
||||
for LIBSUFFIX in ${LIBSUFFIXES} ; do
|
||||
for each in libldap libldap_r liblber ; do
|
||||
preserve_old_lib "usr/$(get_libdir)/${each}${LIBSUFFIX}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use minimal ; then
|
||||
# You cannot build SSL certificates during src_install that will make
|
||||
# binary packages containing your SSL key, which is both a security risk
|
||||
# and a misconfiguration if multiple machines use the same key and cert.
|
||||
# Additionally, it overwrites
|
||||
if use ssl; then
|
||||
install_cert /etc/openldap/ssl/ldap
|
||||
chown ldap:ldap "${ROOT}"etc/openldap/ssl/ldap.*
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "add 'TLS_REQCERT never' if you want to use them."
|
||||
fi
|
||||
# These lines force the permissions of various content to be correct
|
||||
chown ldap:ldap "${ROOT}"var/run/openldap
|
||||
chmod 0755 "${ROOT}"var/run/openldap
|
||||
chown root:ldap "${ROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${ROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chown ldap:ldap "${ROOT}"var/lib/openldap-{data,ldbm,slurp}
|
||||
fi
|
||||
|
||||
# Reference inclusion bug #77330
|
||||
echo
|
||||
elog
|
||||
elog "Getting started using OpenLDAP? There is some documentation available:"
|
||||
elog "Gentoo Guide to OpenLDAP Authentication"
|
||||
elog "(https://www.gentoo.org/doc/en/ldap-howto.xml)"
|
||||
elog
|
||||
|
||||
# note to bug #110412
|
||||
echo
|
||||
elog
|
||||
elog "An example file for tuning BDB backends with openldap is"
|
||||
elog "DB_CONFIG.fast.example in /usr/share/doc/${PF}/"
|
||||
elog
|
||||
|
||||
LIBSUFFIXES=".so.2.0.130 -2.2.so.7"
|
||||
for LIBSUFFIX in ${LIBSUFFIXES} ; do
|
||||
for each in liblber libldap libldap_r ; do
|
||||
preserve_old_lib_notify "usr/$(get_libdir)/${each}${LIBSUFFIX}"
|
||||
done
|
||||
done
|
||||
}
|
||||
@ -1,853 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
|
||||
inherit db-use eutils flag-o-matic multilib multilib-minimal ssl-cert versionator toolchain-funcs autotools user systemd
|
||||
|
||||
BIS_PN=rfc2307bis.schema
|
||||
BIS_PV=20140524
|
||||
BIS_P="${BIS_PN}-${BIS_PV}"
|
||||
|
||||
DESCRIPTION="LDAP suite of application and development tools"
|
||||
HOMEPAGE="http://www.OpenLDAP.org/"
|
||||
|
||||
# mirrors are mostly not working, using canonical URI
|
||||
SRC_URI="ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz
|
||||
mirror://gentoo/${BIS_P}"
|
||||
|
||||
LICENSE="OPENLDAP GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
|
||||
|
||||
IUSE_DAEMON="crypt samba slp tcpd experimental minimal"
|
||||
IUSE_BACKEND="+berkdb"
|
||||
IUSE_OVERLAY="overlays perl"
|
||||
IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 libressl +syslog selinux static-libs"
|
||||
IUSE_CONTRIB="smbkrb5passwd kerberos kinit pbkdf2"
|
||||
IUSE_CONTRIB="${IUSE_CONTRIB} -cxx"
|
||||
IUSE="${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
|
||||
|
||||
REQUIRED_USE="cxx? ( sasl )
|
||||
?? ( gnutls libressl )
|
||||
pbkdf2? ( ssl )"
|
||||
|
||||
# always list newer first
|
||||
# Do not add any AGPL-3 BDB here!
|
||||
# See bug 525110, comment 15.
|
||||
# Advanced usage: OPENLDAP_BDB_SLOTS in the environment can be used to force a slot during build.
|
||||
BDB_SLOTS="${OPENLDAP_BDB_SLOTS:=5.3 5.1 4.8 4.7 4.6 4.5 4.4}"
|
||||
BDB_PKGS=''
|
||||
for _slot in $BDB_SLOTS; do BDB_PKGS="${BDB_PKGS} sys-libs/db:${_slot}" ; done
|
||||
|
||||
# openssl is needed to generate lanman-passwords required by samba
|
||||
CDEPEND="
|
||||
ssl? (
|
||||
!gnutls? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}]
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
>=dev-libs/libgcrypt-1.5.3:0[${MULTILIB_USEDEP}] ) )
|
||||
sasl? ( dev-libs/cyrus-sasl:= )
|
||||
!minimal? (
|
||||
sys-devel/libtool
|
||||
sys-libs/e2fsprogs-libs
|
||||
>=dev-db/lmdb-0.9.18:=
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
odbc? ( !iodbc? ( dev-db/unixODBC )
|
||||
iodbc? ( dev-db/libiodbc ) )
|
||||
slp? ( net-libs/openslp )
|
||||
perl? ( dev-lang/perl:=[-build(-)] )
|
||||
samba? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)
|
||||
berkdb? (
|
||||
<sys-libs/db-6.0:=
|
||||
|| ( ${BDB_PKGS} )
|
||||
)
|
||||
smbkrb5passwd? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
kerberos? ( app-crypt/heimdal )
|
||||
)
|
||||
kerberos? (
|
||||
virtual/krb5
|
||||
kinit? ( !app-crypt/heimdal )
|
||||
)
|
||||
cxx? ( dev-libs/cyrus-sasl:= )
|
||||
)
|
||||
abi_x86_32? (
|
||||
!<=app-emulation/emul-linux-x86-baselibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
)"
|
||||
DEPEND="${CDEPEND}
|
||||
sys-apps/groff"
|
||||
RDEPEND="${CDEPEND}
|
||||
selinux? ( sec-policy/selinux-ldap )
|
||||
"
|
||||
# for tracking versions
|
||||
OPENLDAP_VERSIONTAG=".version-tag"
|
||||
OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
# USE=cxx
|
||||
/usr/include/LDAPAsynConnection.h
|
||||
/usr/include/LDAPAttrType.h
|
||||
/usr/include/LDAPAttribute.h
|
||||
/usr/include/LDAPAttributeList.h
|
||||
/usr/include/LDAPConnection.h
|
||||
/usr/include/LDAPConstraints.h
|
||||
/usr/include/LDAPControl.h
|
||||
/usr/include/LDAPControlSet.h
|
||||
/usr/include/LDAPEntry.h
|
||||
/usr/include/LDAPEntryList.h
|
||||
/usr/include/LDAPException.h
|
||||
/usr/include/LDAPExtResult.h
|
||||
/usr/include/LDAPMessage.h
|
||||
/usr/include/LDAPMessageQueue.h
|
||||
/usr/include/LDAPModList.h
|
||||
/usr/include/LDAPModification.h
|
||||
/usr/include/LDAPObjClass.h
|
||||
/usr/include/LDAPRebind.h
|
||||
/usr/include/LDAPRebindAuth.h
|
||||
/usr/include/LDAPReferenceList.h
|
||||
/usr/include/LDAPResult.h
|
||||
/usr/include/LDAPSaslBindResult.h
|
||||
/usr/include/LDAPSchema.h
|
||||
/usr/include/LDAPSearchReference.h
|
||||
/usr/include/LDAPSearchResult.h
|
||||
/usr/include/LDAPSearchResults.h
|
||||
/usr/include/LDAPUrl.h
|
||||
/usr/include/LDAPUrlList.h
|
||||
/usr/include/LdifReader.h
|
||||
/usr/include/LdifWriter.h
|
||||
/usr/include/SaslInteraction.h
|
||||
/usr/include/SaslInteractionHandler.h
|
||||
/usr/include/StringList.h
|
||||
/usr/include/TlsOptions.h
|
||||
)
|
||||
|
||||
openldap_filecount() {
|
||||
local dir="$1"
|
||||
find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
|
||||
}
|
||||
|
||||
openldap_find_versiontags() {
|
||||
# scan for all datadirs
|
||||
openldap_datadirs=""
|
||||
if [ -f "${EROOT}"/etc/openldap/slapd.conf ]; then
|
||||
openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${EROOT}/etc/openldap/slapd.conf)"
|
||||
fi
|
||||
openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
|
||||
|
||||
einfo
|
||||
einfo "Scanning datadir(s) from slapd.conf and"
|
||||
einfo "the default installdir for Versiontags"
|
||||
einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
|
||||
einfo
|
||||
|
||||
# scan datadirs if we have a version tag
|
||||
openldap_found_tag=0
|
||||
have_files=0
|
||||
for each in ${openldap_datadirs}; do
|
||||
CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
|
||||
CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
|
||||
if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
|
||||
einfo "- Checking ${each}..."
|
||||
if [ -r ${CURRENT_TAG} ] ; then
|
||||
# yey, we have one :)
|
||||
einfo " Found Versiontag in ${each}"
|
||||
source ${CURRENT_TAG}
|
||||
if [ "${OLDPF}" == "" ] ; then
|
||||
eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
|
||||
eerror "Please delete it"
|
||||
eerror
|
||||
die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
|
||||
fi
|
||||
|
||||
OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
|
||||
|
||||
[ $(openldap_filecount ${CURRENT_TAGDIR}) -gt 0 ] && have_files=1
|
||||
|
||||
# are we on the same branch?
|
||||
if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
|
||||
ewarn " Versiontag doesn't match current major release!"
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
eerror " Versiontag says other major and you (probably) have datafiles!"
|
||||
echo
|
||||
openldap_upgrade_howto
|
||||
else
|
||||
einfo " No real problem, seems there's no database."
|
||||
fi
|
||||
else
|
||||
einfo " Versiontag is fine here :)"
|
||||
fi
|
||||
else
|
||||
einfo " Non-tagged dir ${each}"
|
||||
[ $(openldap_filecount ${each}) -gt 0 ] && have_files=1
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
|
||||
echo
|
||||
|
||||
eerror
|
||||
eerror "Your OpenLDAP Installation has a non tagged datadir that"
|
||||
eerror "possibly contains a database at ${CURRENT_TAGDIR}"
|
||||
eerror
|
||||
eerror "Please export data if any entered and empty or remove"
|
||||
eerror "the directory, installation has been stopped so you"
|
||||
eerror "can take required action"
|
||||
eerror
|
||||
eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
|
||||
eerror
|
||||
openldap_upgrade_howto
|
||||
die "Please move the datadir ${CURRENT_TAGDIR} away"
|
||||
fi
|
||||
fi
|
||||
einfo
|
||||
fi
|
||||
done
|
||||
[ "${have_files}" == "1" ] && einfo "DB files present" || einfo "No DB files present"
|
||||
|
||||
# Now we must check for the major version of sys-libs/db linked against.
|
||||
SLAPD_PATH=${EROOT}/usr/$(get_libdir)/openldap/slapd
|
||||
if [ "${have_files}" == "1" -a -f "${SLAPD_PATH}" ]; then
|
||||
OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
|
||||
| awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
|
||||
if use berkdb; then
|
||||
# find which one would be used
|
||||
for bdb_slot in $BDB_SLOTS ; do
|
||||
NEWVER="$(db_findver "=sys-libs/db-${bdb_slot}*")"
|
||||
[[ -n "$NEWVER" ]] && break
|
||||
done
|
||||
fi
|
||||
local fail=0
|
||||
if [ -z "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
:
|
||||
# Nothing wrong here.
|
||||
elif [ -z "${OLDVER}" -a -n "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was not built against"
|
||||
eerror " any version of sys-libs/db, but the new one will build"
|
||||
eerror " against ${NEWVER} and your database may be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ -n "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will not be"
|
||||
eerror " built against any version and your database may be"
|
||||
eerror " inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ "${OLDVER}" != "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will build against"
|
||||
eerror " ${NEWVER} and your database would be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
fi
|
||||
[ "${fail}" == "1" ] && openldap_upgrade_howto
|
||||
fi
|
||||
|
||||
echo
|
||||
einfo
|
||||
einfo "All datadirs are fine, proceeding with merge now..."
|
||||
einfo
|
||||
}
|
||||
|
||||
openldap_upgrade_howto() {
|
||||
eerror
|
||||
eerror "A (possible old) installation of OpenLDAP was detected,"
|
||||
eerror "installation will not proceed for now."
|
||||
eerror
|
||||
eerror "As major version upgrades can corrupt your database,"
|
||||
eerror "you need to dump your database and re-create it afterwards."
|
||||
eerror
|
||||
eerror "Additionally, rebuilding against different major versions of the"
|
||||
eerror "sys-libs/db libraries will cause your database to be inaccessible."
|
||||
eerror ""
|
||||
d="$(date -u +%s)"
|
||||
l="/root/ldapdump.${d}"
|
||||
i="${l}.raw"
|
||||
eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
|
||||
eerror " 2. slapcat -l ${i}"
|
||||
eerror " 3. egrep -v '^(entry|context)CSN:' <${i} >${l}"
|
||||
eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
|
||||
eerror " 5. emerge --update \=net-nds/${PF}"
|
||||
eerror " 6. etc-update, and ensure that you apply the changes"
|
||||
eerror " 7. slapadd -l ${l}"
|
||||
eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
|
||||
eerror " 9. /etc/init.d/slapd start"
|
||||
eerror "10. check that your data is intact."
|
||||
eerror "11. set up the new replication system."
|
||||
eerror
|
||||
if [ "${FORCE_UPGRADE}" != "1" ]; then
|
||||
die "You need to upgrade your database first"
|
||||
else
|
||||
eerror "You have the magical FORCE_UPGRADE=1 in place."
|
||||
eerror "Don't say you weren't warned about data loss."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if ! use sasl && use cxx ; then
|
||||
die "To build the ldapc++ library you must emerge openldap with sasl support"
|
||||
fi
|
||||
# Bug #322787
|
||||
if use minimal && ! has_version "net-nds/openldap" ; then
|
||||
einfo "No datadir scan needed, openldap not installed"
|
||||
elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
|
||||
einfo "Skipping scan for previous datadirs as requested by minimal useflag"
|
||||
else
|
||||
openldap_find_versiontags
|
||||
fi
|
||||
|
||||
# The user/group are only used for running daemons which are
|
||||
# disabled in minimal builds, so elide the accounts too.
|
||||
if ! use minimal ; then
|
||||
enewgroup ldap 439
|
||||
enewuser ldap 439 -1 /usr/$(get_libdir)/openldap ldap
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# ensure correct SLAPI path by default
|
||||
sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
|
||||
"${S}"/include/ldap_defaults.h
|
||||
|
||||
epatch "${FILESDIR}"/${PN}-2.4.17-gcc44.patch
|
||||
|
||||
epatch \
|
||||
"${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch \
|
||||
"${FILESDIR}"/${PN}-2.4.15-ppolicy.patch
|
||||
|
||||
# bug #116045 - still present in 2.4.28
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-smbk5pwd.patch
|
||||
# bug #408077 - samba4
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-samba4.patch
|
||||
|
||||
# bug #189817
|
||||
epatch "${FILESDIR}"/${PN}-2.4.11-libldap_r.patch
|
||||
|
||||
# bug #233633
|
||||
epatch "${FILESDIR}"/${PN}-2.4.17-fix-lmpasswd-gnutls-symbols.patch
|
||||
|
||||
# bug #281495
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-gnutls-gcrypt.patch
|
||||
|
||||
# bug #294350
|
||||
epatch "${FILESDIR}"/${PN}-2.4.6-evolution-ntlm.patch
|
||||
|
||||
# unbreak /bin/sh -> dash
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
|
||||
|
||||
# bug #420959
|
||||
epatch "${FILESDIR}"/${PN}-2.4.31-gcc47.patch
|
||||
|
||||
# unbundle lmdb
|
||||
epatch "${FILESDIR}"/${PN}-2.4.42-mdb-unbundle.patch
|
||||
rm -rf "${S}"/libraries/liblmdb
|
||||
|
||||
cd "${S}"/build || die
|
||||
einfo "Making sure upstream build strip does not do stripping too early"
|
||||
sed -i.orig \
|
||||
-e '/^STRIP/s,-s,,g' \
|
||||
top.mk || die "Failed to block stripping"
|
||||
|
||||
# wrong assumption that /bin/sh is /bin/bash
|
||||
sed -i \
|
||||
-e 's|/bin/sh|/bin/bash|g' \
|
||||
"${S}"/tests/scripts/* || die "sed failed"
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
AT_NOEAUTOMAKE=yes eautoreconf
|
||||
}
|
||||
|
||||
build_contrib_module() {
|
||||
# <dir> <sources> <outputname>
|
||||
cd "${S}/contrib/slapd-modules/$1" || die
|
||||
einfo "Compiling contrib-module: $3"
|
||||
# Make sure it's uppercase
|
||||
local define_name="$(echo "SLAPD_OVER_${1}" | LC_ALL=C tr '[:lower:]' '[:upper:]')"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-D${define_name}=SLAPD_MOD_DYNAMIC \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include -I../../../servers/slapd ${CFLAGS} \
|
||||
-o ${2%.c}.lo -c $2 || die "compiling $3 failed"
|
||||
einfo "Linking contrib-module: $3"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o $3.la ${2%.c}.lo || die "linking $3 failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Bug 408001
|
||||
use elibc_FreeBSD && append-cppflags -DMDB_DSYNC=O_SYNC -DMDB_FDATASYNC=fsync
|
||||
|
||||
# connectionless ldap per bug #342439
|
||||
append-cppflags -DLDAP_CONNECTIONLESS
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=()
|
||||
|
||||
use debug && myconf+=( $(use_enable debug) )
|
||||
|
||||
# ICU exists only in the configure, nowhere in the codebase, bug #510858
|
||||
export ac_cv_header_unicode_utypes_h=no ol_cv_lib_icu=no
|
||||
|
||||
if ! use minimal && multilib_is_native_abi; then
|
||||
local CPPFLAGS=${CPPFLAGS}
|
||||
|
||||
# re-enable serverside overlay chains per bug #296567
|
||||
# see ldap docs chaper 12.3.1 for details
|
||||
myconf+=( --enable-ldap )
|
||||
|
||||
# backends
|
||||
myconf+=( --enable-slapd )
|
||||
if use berkdb ; then
|
||||
einfo "Using Berkeley DB for local backend"
|
||||
myconf+=( --enable-bdb --enable-hdb )
|
||||
DBINCLUDE=$(db_includedir $BDB_SLOTS)
|
||||
einfo "Using $DBINCLUDE for sys-libs/db version"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I${DBINCLUDE}
|
||||
else
|
||||
myconf+=( --disable-bdb --disable-hdb )
|
||||
fi
|
||||
for backend in dnssrv ldap mdb meta monitor null passwd relay shell sock; do
|
||||
myconf+=( --enable-${backend}=mod )
|
||||
done
|
||||
|
||||
myconf+=( $(use_enable perl perl mod) )
|
||||
|
||||
myconf+=( $(use_enable odbc sql mod) )
|
||||
if use odbc ; then
|
||||
local odbc_lib="unixodbc"
|
||||
if use iodbc ; then
|
||||
odbc_lib="iodbc"
|
||||
append-cppflags -I"${EPREFIX}"/usr/include/iodbc
|
||||
fi
|
||||
myconf+=( --with-odbc=${odbc_lib} )
|
||||
fi
|
||||
|
||||
# slapd options
|
||||
myconf+=(
|
||||
$(use_enable crypt)
|
||||
$(use_enable slp)
|
||||
$(use_enable samba lmpasswd)
|
||||
$(use_enable syslog)
|
||||
)
|
||||
if use experimental ; then
|
||||
myconf+=(
|
||||
--enable-dynacl
|
||||
--enable-aci=mod
|
||||
)
|
||||
fi
|
||||
for option in aci cleartext modules rewrite rlookups slapi; do
|
||||
myconf+=( --enable-${option} )
|
||||
done
|
||||
|
||||
# slapd overlay options
|
||||
# Compile-in the syncprov, the others as module
|
||||
myconf+=( --enable-syncprov=yes )
|
||||
use overlays && myconf+=( --enable-overlays=mod )
|
||||
|
||||
else
|
||||
myconf+=(
|
||||
--disable-backends
|
||||
--disable-slapd
|
||||
--disable-bdb
|
||||
--disable-hdb
|
||||
--disable-mdb
|
||||
--disable-overlays
|
||||
--disable-syslog
|
||||
)
|
||||
fi
|
||||
|
||||
# basic functionality stuff
|
||||
myconf+=(
|
||||
$(use_enable ipv6)
|
||||
$(multilib_native_use_with sasl cyrus-sasl)
|
||||
$(multilib_native_use_enable sasl spasswd)
|
||||
$(use_enable tcpd wrappers)
|
||||
)
|
||||
|
||||
# Some cross-compiling tests don't pan out well.
|
||||
tc-is-cross-compiler && myconf+=(
|
||||
--with-yielding-select=yes
|
||||
)
|
||||
|
||||
local ssl_lib="no"
|
||||
if use ssl || ( ! use minimal && use samba ) ; then
|
||||
ssl_lib="openssl"
|
||||
use gnutls && ssl_lib="gnutls"
|
||||
fi
|
||||
|
||||
myconf+=( --with-tls=${ssl_lib} )
|
||||
|
||||
for basicflag in dynamic local proctitle shared; do
|
||||
myconf+=( --enable-${basicflag} )
|
||||
done
|
||||
|
||||
tc-export AR CC CXX
|
||||
ECONF_SOURCE=${S} \
|
||||
STRIP=/bin/true \
|
||||
econf \
|
||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
src_configure_cxx() {
|
||||
# This needs the libraries built by the first build run.
|
||||
# So we have to run it AFTER the main build, not just after the main
|
||||
# configure.
|
||||
local myconf_ldapcpp=(
|
||||
--with-ldap-includes="${S}"/include
|
||||
)
|
||||
|
||||
mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
|
||||
local LDFLAGS=${LDFLAGS} CPPFLAGS=${CPPFLAGS}
|
||||
append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs \
|
||||
-L"${BUILD_DIR}"/libraries/libldap/.libs
|
||||
append-cppflags -I"${BUILD_DIR}"/include
|
||||
ECONF_SOURCE=${S}/contrib/ldapc++ \
|
||||
econf "${myconf_ldapcpp[@]}" \
|
||||
CC="${CC}" \
|
||||
CXX="${CXX}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
tc-export AR CC CXX
|
||||
emake CC="${CC}" AR="${AR}" SHELL="${EPREFIX}"/bin/bash
|
||||
local lt="${BUILD_DIR}/libtool"
|
||||
export echo="echo"
|
||||
|
||||
if ! use minimal && multilib_is_native_abi ; then
|
||||
if use cxx ; then
|
||||
einfo "Building contrib library: ldapc++"
|
||||
src_configure_cxx
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
emake \
|
||||
CC="${CC}" CXX="${CXX}"
|
||||
fi
|
||||
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Building contrib-module: smbk5pwd"
|
||||
cd "${S}/contrib/slapd-modules/smbk5pwd" || die
|
||||
|
||||
MY_DEFS="-DDO_SHADOW"
|
||||
if use samba ; then
|
||||
MY_DEFS="${MY_DEFS} -DDO_SAMBA"
|
||||
MY_KRB5_INC=""
|
||||
fi
|
||||
if use kerberos ; then
|
||||
MY_DEFS="${MY_DEFS} -DDO_KRB5"
|
||||
MY_KRB5_INC="$(krb5-config --cflags)"
|
||||
fi
|
||||
|
||||
emake \
|
||||
DEFS="${MY_DEFS}" \
|
||||
KRB5_INC="${MY_KRB5_INC}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
|
||||
fi
|
||||
|
||||
if use overlays ; then
|
||||
einfo "Building contrib-module: samba4"
|
||||
cd "${S}/contrib/slapd-modules/samba4" || die
|
||||
|
||||
emake \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="/usr/$(get_libdir)/openldap"
|
||||
fi
|
||||
|
||||
if use kerberos ; then
|
||||
if use kinit ; then
|
||||
build_contrib_module "kinit" "kinit.c" "kinit"
|
||||
fi
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
einfo "Compiling contrib-module: pw-kerberos"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
$(krb5-config --cflags) \
|
||||
-DHAVE_KRB5 \
|
||||
-o kerberos.lo \
|
||||
-c kerberos.c || die "compiling pw-kerberos failed"
|
||||
einfo "Linking contrib-module: pw-kerberos"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-kerberos.la \
|
||||
kerberos.lo || die "linking pw-kerberos failed"
|
||||
fi
|
||||
|
||||
if use pbkdf2; then
|
||||
cd "${S}/contrib/slapd-modules/passwd/pbkdf2" || die
|
||||
einfo "Compiling contrib-module: pw-pbkdf2"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../../include \
|
||||
${CFLAGS} \
|
||||
-o pbkdf2.lo \
|
||||
-c pw-pbkdf2.c || die "compiling pw-pbkdf2 failed"
|
||||
einfo "Linking contrib-module: pw-pbkdf2"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-pbkdf2.la \
|
||||
pbkdf2.lo || die "linking pw-pbkdf2 failed"
|
||||
fi
|
||||
|
||||
# We could build pw-radius if GNURadius would install radlib.h
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
einfo "Compiling contrib-module: pw-netscape"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
-o netscape.lo \
|
||||
-c netscape.c || die "compiling pw-netscape failed"
|
||||
einfo "Linking contrib-module: pw-netscape"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-netscape.la \
|
||||
netscape.lo || die "linking pw-netscape failed"
|
||||
|
||||
#build_contrib_module "acl" "posixgroup.c" "posixGroup" # example code only
|
||||
#build_contrib_module "acl" "gssacl.c" "gss" # example code only, also needs kerberos
|
||||
build_contrib_module "addpartial" "addpartial-overlay.c" "addpartial-overlay"
|
||||
build_contrib_module "allop" "allop.c" "overlay-allop"
|
||||
build_contrib_module "allowed" "allowed.c" "allowed"
|
||||
build_contrib_module "autogroup" "autogroup.c" "autogroup"
|
||||
build_contrib_module "cloak" "cloak.c" "cloak"
|
||||
# build_contrib_module "comp_match" "comp_match.c" "comp_match" # really complex, adds new external deps, questionable demand
|
||||
build_contrib_module "denyop" "denyop.c" "denyop-overlay"
|
||||
build_contrib_module "dsaschema" "dsaschema.c" "dsaschema-plugin"
|
||||
build_contrib_module "dupent" "dupent.c" "dupent"
|
||||
build_contrib_module "lastbind" "lastbind.c" "lastbind"
|
||||
# lastmod may not play well with other overlays
|
||||
build_contrib_module "lastmod" "lastmod.c" "lastmod"
|
||||
build_contrib_module "noopsrch" "noopsrch.c" "noopsrch"
|
||||
build_contrib_module "nops" "nops.c" "nops-overlay"
|
||||
#build_contrib_module "nssov" "nssov.c" "nssov-overlay" RESO:LATER
|
||||
build_contrib_module "trace" "trace.c" "trace"
|
||||
# build slapi-plugins
|
||||
cd "${S}/contrib/slapi-plugins/addrdnvalues" || die
|
||||
einfo "Building contrib-module: addrdnvalues plugin"
|
||||
"${CC}" -shared \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
-fPIC \
|
||||
${LDFLAGS} \
|
||||
-o libaddrdnvalues-plugin.so \
|
||||
addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if multilib_is_native_abi; then
|
||||
cd tests || die
|
||||
emake tests || die "make tests failed"
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local lt="${BUILD_DIR}/libtool"
|
||||
emake DESTDIR="${D}" SHELL="${EPREFIX}"/bin/bash install
|
||||
use static-libs || prune_libtool_files --all
|
||||
|
||||
if ! use minimal && multilib_is_native_abi; then
|
||||
# openldap modules go here
|
||||
# TODO: write some code to populate slapd.conf with moduleload statements
|
||||
keepdir /usr/$(get_libdir)/openldap/openldap/
|
||||
|
||||
# initial data storage dir
|
||||
keepdir /var/lib/openldap-data
|
||||
use prefix || fowners ldap:ldap /var/lib/openldap-data
|
||||
fperms 0700 /var/lib/openldap-data
|
||||
|
||||
echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
|
||||
# use our config
|
||||
rm "${ED}"etc/openldap/slapd.conf
|
||||
insinto /etc/openldap
|
||||
newins "${FILESDIR}"/${PN}-2.4.40-slapd-conf slapd.conf
|
||||
configfile="${ED}"etc/openldap/slapd.conf
|
||||
|
||||
# populate with built backends
|
||||
ebegin "populate config with built backends"
|
||||
for x in "${ED}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
einfo "Adding $(basename ${x})"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
|
||||
done
|
||||
sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
|
||||
use prefix || fowners root:ldap /etc/openldap/slapd.conf
|
||||
fperms 0640 /etc/openldap/slapd.conf
|
||||
cp "${configfile}" "${configfile}".default
|
||||
eend
|
||||
|
||||
# install our own init scripts and systemd unit files
|
||||
einfo "Install init scripts"
|
||||
newinitd "${FILESDIR}"/slapd-initd-2.4.40-r2 slapd
|
||||
newconfd "${FILESDIR}"/slapd-confd-2.4.28-r1 slapd
|
||||
einfo "Install systemd service"
|
||||
systemd_dounit "${FILESDIR}"/slapd.service
|
||||
systemd_install_serviced "${FILESDIR}"/slapd.service.conf
|
||||
systemd_newtmpfilesd "${FILESDIR}"/slapd.tmpfilesd slapd.conf
|
||||
|
||||
if [[ $(get_libdir) != lib ]]; then
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i \
|
||||
"${ED}"/etc/init.d/slapd \
|
||||
"${ED}"/usr/lib/systemd/system/slapd.service || die
|
||||
fi
|
||||
# If built without SLP, we don't need to be before avahi
|
||||
use slp \
|
||||
|| sed -i \
|
||||
-e '/before/{s/avahi-daemon//g}' \
|
||||
"${ED}"etc/init.d/slapd
|
||||
|
||||
if use cxx ; then
|
||||
einfo "Install the ldapc++ library"
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
|
||||
cd "${S}"/contrib/ldapc++ || die
|
||||
newdoc README ldapc++-README
|
||||
fi
|
||||
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Install the smbk5pwd module"
|
||||
cd "${S}/contrib/slapd-modules/smbk5pwd" || die
|
||||
emake DESTDIR="${D}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
|
||||
newdoc README smbk5pwd-README
|
||||
fi
|
||||
|
||||
if use overlays ; then
|
||||
einfo "Install the samba4 module"
|
||||
cd "${S}/contrib/slapd-modules/samba4" || die
|
||||
emake DESTDIR="${D}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
libexecdir="/usr/$(get_libdir)/openldap" install
|
||||
newdoc README samba4-README
|
||||
fi
|
||||
|
||||
einfo "Installing contrib modules"
|
||||
cd "${S}/contrib/slapd-modules" || die
|
||||
for l in */*.la */*/*.la; do
|
||||
[[ -e ${l} ]] || continue
|
||||
"${lt}" --mode=install cp ${l} \
|
||||
"${ED}"usr/$(get_libdir)/openldap/openldap || \
|
||||
die "installing ${l} failed"
|
||||
done
|
||||
|
||||
dodoc "${FILESDIR}"/DB_CONFIG.fast.example
|
||||
docinto contrib
|
||||
doman */*.5
|
||||
#newdoc acl/README*
|
||||
newdoc addpartial/README addpartial-README
|
||||
newdoc allop/README allop-README
|
||||
newdoc allowed/README allowed-README
|
||||
newdoc autogroup/README autogroup-README
|
||||
newdoc dsaschema/README dsaschema-README
|
||||
newdoc passwd/README passwd-README
|
||||
cd "${S}/contrib/slapi-plugins" || die
|
||||
insinto /usr/$(get_libdir)/openldap/openldap
|
||||
doins */*.so
|
||||
docinto contrib
|
||||
newdoc addrdnvalues/README addrdnvalues-README
|
||||
|
||||
insinto /etc/openldap/schema
|
||||
newins "${DISTDIR}"/${BIS_P} ${BIS_PN}
|
||||
|
||||
docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
|
||||
docinto back-shell ; dodoc "${S}"/servers/slapd/back-shell/searchexample*
|
||||
docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
|
||||
|
||||
dosbin "${S}"/contrib/slapd-tools/statslog
|
||||
newdoc "${S}"/contrib/slapd-tools/README README.statslog
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
|
||||
docinto rfc ; dodoc doc/rfc/*.txt
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# keep old libs if any
|
||||
preserve_old_lib /usr/$(get_libdir)/{liblber,libldap_r,liblber}-2.3$(get_libname 0)
|
||||
# bug 440470, only display the getting started help there was no openldap before,
|
||||
# or we are going to a non-minimal build
|
||||
! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
|
||||
OPENLDAP_PRINT_MESSAGES=$((! $?))
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use minimal ; then
|
||||
# You cannot build SSL certificates during src_install that will make
|
||||
# binary packages containing your SSL key, which is both a security risk
|
||||
# and a misconfiguration if multiple machines use the same key and cert.
|
||||
if use ssl; then
|
||||
install_cert /etc/openldap/ssl/ldap
|
||||
use prefix || chown ldap:ldap "${EROOT}"etc/openldap/ssl/ldap.*
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "add 'TLS_REQCERT allow' if you want to use them."
|
||||
fi
|
||||
|
||||
if use prefix; then
|
||||
# Warn about prefix issues with slapd
|
||||
eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
|
||||
eerror "to start up, and requires that certain files directories be owned by"
|
||||
eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
|
||||
eerror "directories, you will have to manually fix this yourself."
|
||||
fi
|
||||
|
||||
# These lines force the permissions of various content to be correct
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/run/openldap
|
||||
chmod 0755 "${EROOT}"var/run/openldap
|
||||
use prefix || chown root:ldap "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/lib/openldap-data
|
||||
fi
|
||||
|
||||
if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
|
||||
elog "Getting started using OpenLDAP? There is some documentation available:"
|
||||
elog "Gentoo Guide to OpenLDAP Authentication"
|
||||
elog "(https://www.gentoo.org/doc/en/ldap-howto.xml)"
|
||||
elog "---"
|
||||
elog "An example file for tuning BDB backends with openldap is"
|
||||
elog "DB_CONFIG.fast.example in /usr/share/doc/${PF}/"
|
||||
fi
|
||||
|
||||
preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3$(get_libname 0)
|
||||
}
|
||||
@ -1,830 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
|
||||
inherit db-use eutils flag-o-matic multilib multilib-minimal ssl-cert versionator toolchain-funcs autotools user systemd
|
||||
|
||||
BIS_PN=rfc2307bis.schema
|
||||
BIS_PV=20140524
|
||||
BIS_P="${BIS_PN}-${BIS_PV}"
|
||||
|
||||
DESCRIPTION="LDAP suite of application and development tools"
|
||||
HOMEPAGE="http://www.OpenLDAP.org/"
|
||||
|
||||
# mirrors are mostly not working, using canonical URI
|
||||
SRC_URI="ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz
|
||||
mirror://gentoo/${BIS_P}"
|
||||
|
||||
LICENSE="OPENLDAP GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
|
||||
|
||||
IUSE_DAEMON="crypt samba slp tcpd experimental minimal"
|
||||
IUSE_BACKEND="+berkdb"
|
||||
IUSE_OVERLAY="overlays perl"
|
||||
IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 libressl +syslog selinux static-libs"
|
||||
IUSE_CONTRIB="smbkrb5passwd kerberos kinit"
|
||||
IUSE_CONTRIB="${IUSE_CONTRIB} -cxx"
|
||||
IUSE="${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
|
||||
|
||||
REQUIRED_USE="cxx? ( sasl )
|
||||
?? ( gnutls libressl )"
|
||||
|
||||
# always list newer first
|
||||
# Do not add any AGPL-3 BDB here!
|
||||
# See bug 525110, comment 15.
|
||||
# Advanced usage: OPENLDAP_BDB_SLOTS in the environment can be used to force a slot during build.
|
||||
BDB_SLOTS="${OPENLDAP_BDB_SLOTS:=5.3 5.1 4.8 4.7 4.6 4.5 4.4}"
|
||||
BDB_PKGS=''
|
||||
for _slot in $BDB_SLOTS; do BDB_PKGS="${BDB_PKGS} sys-libs/db:${_slot}" ; done
|
||||
|
||||
# openssl is needed to generate lanman-passwords required by samba
|
||||
CDEPEND="
|
||||
ssl? (
|
||||
!gnutls? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}]
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
>=dev-libs/libgcrypt-1.5.3:0[${MULTILIB_USEDEP}] ) )
|
||||
sasl? ( dev-libs/cyrus-sasl:= )
|
||||
!minimal? (
|
||||
sys-devel/libtool
|
||||
sys-libs/e2fsprogs-libs
|
||||
>=dev-db/lmdb-0.9.18:=
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
odbc? ( !iodbc? ( dev-db/unixODBC )
|
||||
iodbc? ( dev-db/libiodbc ) )
|
||||
slp? ( net-libs/openslp )
|
||||
perl? ( dev-lang/perl:=[-build(-)] )
|
||||
samba? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
)
|
||||
berkdb? (
|
||||
<sys-libs/db-6.0:=
|
||||
|| ( ${BDB_PKGS} )
|
||||
)
|
||||
smbkrb5passwd? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
kerberos? ( app-crypt/heimdal )
|
||||
)
|
||||
kerberos? (
|
||||
virtual/krb5
|
||||
kinit? ( !app-crypt/heimdal )
|
||||
)
|
||||
cxx? ( dev-libs/cyrus-sasl:= )
|
||||
)
|
||||
abi_x86_32? (
|
||||
!<=app-emulation/emul-linux-x86-baselibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
)"
|
||||
DEPEND="${CDEPEND}
|
||||
sys-apps/groff"
|
||||
RDEPEND="${CDEPEND}
|
||||
selinux? ( sec-policy/selinux-ldap )
|
||||
"
|
||||
# for tracking versions
|
||||
OPENLDAP_VERSIONTAG=".version-tag"
|
||||
OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
# USE=cxx
|
||||
/usr/include/LDAPAsynConnection.h
|
||||
/usr/include/LDAPAttrType.h
|
||||
/usr/include/LDAPAttribute.h
|
||||
/usr/include/LDAPAttributeList.h
|
||||
/usr/include/LDAPConnection.h
|
||||
/usr/include/LDAPConstraints.h
|
||||
/usr/include/LDAPControl.h
|
||||
/usr/include/LDAPControlSet.h
|
||||
/usr/include/LDAPEntry.h
|
||||
/usr/include/LDAPEntryList.h
|
||||
/usr/include/LDAPException.h
|
||||
/usr/include/LDAPExtResult.h
|
||||
/usr/include/LDAPMessage.h
|
||||
/usr/include/LDAPMessageQueue.h
|
||||
/usr/include/LDAPModList.h
|
||||
/usr/include/LDAPModification.h
|
||||
/usr/include/LDAPObjClass.h
|
||||
/usr/include/LDAPRebind.h
|
||||
/usr/include/LDAPRebindAuth.h
|
||||
/usr/include/LDAPReferenceList.h
|
||||
/usr/include/LDAPResult.h
|
||||
/usr/include/LDAPSaslBindResult.h
|
||||
/usr/include/LDAPSchema.h
|
||||
/usr/include/LDAPSearchReference.h
|
||||
/usr/include/LDAPSearchResult.h
|
||||
/usr/include/LDAPSearchResults.h
|
||||
/usr/include/LDAPUrl.h
|
||||
/usr/include/LDAPUrlList.h
|
||||
/usr/include/LdifReader.h
|
||||
/usr/include/LdifWriter.h
|
||||
/usr/include/SaslInteraction.h
|
||||
/usr/include/SaslInteractionHandler.h
|
||||
/usr/include/StringList.h
|
||||
/usr/include/TlsOptions.h
|
||||
)
|
||||
|
||||
openldap_filecount() {
|
||||
local dir="$1"
|
||||
find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
|
||||
}
|
||||
|
||||
openldap_find_versiontags() {
|
||||
# scan for all datadirs
|
||||
openldap_datadirs=""
|
||||
if [ -f "${EROOT}"/etc/openldap/slapd.conf ]; then
|
||||
openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${EROOT}/etc/openldap/slapd.conf)"
|
||||
fi
|
||||
openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
|
||||
|
||||
einfo
|
||||
einfo "Scanning datadir(s) from slapd.conf and"
|
||||
einfo "the default installdir for Versiontags"
|
||||
einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
|
||||
einfo
|
||||
|
||||
# scan datadirs if we have a version tag
|
||||
openldap_found_tag=0
|
||||
have_files=0
|
||||
for each in ${openldap_datadirs}; do
|
||||
CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
|
||||
CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
|
||||
if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
|
||||
einfo "- Checking ${each}..."
|
||||
if [ -r ${CURRENT_TAG} ] ; then
|
||||
# yey, we have one :)
|
||||
einfo " Found Versiontag in ${each}"
|
||||
source ${CURRENT_TAG}
|
||||
if [ "${OLDPF}" == "" ] ; then
|
||||
eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
|
||||
eerror "Please delete it"
|
||||
eerror
|
||||
die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
|
||||
fi
|
||||
|
||||
OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
|
||||
|
||||
[ $(openldap_filecount ${CURRENT_TAGDIR}) -gt 0 ] && have_files=1
|
||||
|
||||
# are we on the same branch?
|
||||
if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
|
||||
ewarn " Versiontag doesn't match current major release!"
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
eerror " Versiontag says other major and you (probably) have datafiles!"
|
||||
echo
|
||||
openldap_upgrade_howto
|
||||
else
|
||||
einfo " No real problem, seems there's no database."
|
||||
fi
|
||||
else
|
||||
einfo " Versiontag is fine here :)"
|
||||
fi
|
||||
else
|
||||
einfo " Non-tagged dir ${each}"
|
||||
[ $(openldap_filecount ${each}) -gt 0 ] && have_files=1
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
|
||||
echo
|
||||
|
||||
eerror
|
||||
eerror "Your OpenLDAP Installation has a non tagged datadir that"
|
||||
eerror "possibly contains a database at ${CURRENT_TAGDIR}"
|
||||
eerror
|
||||
eerror "Please export data if any entered and empty or remove"
|
||||
eerror "the directory, installation has been stopped so you"
|
||||
eerror "can take required action"
|
||||
eerror
|
||||
eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
|
||||
eerror
|
||||
openldap_upgrade_howto
|
||||
die "Please move the datadir ${CURRENT_TAGDIR} away"
|
||||
fi
|
||||
fi
|
||||
einfo
|
||||
fi
|
||||
done
|
||||
[ "${have_files}" == "1" ] && einfo "DB files present" || einfo "No DB files present"
|
||||
|
||||
# Now we must check for the major version of sys-libs/db linked against.
|
||||
SLAPD_PATH=${EROOT}/usr/$(get_libdir)/openldap/slapd
|
||||
if [ "${have_files}" == "1" -a -f "${SLAPD_PATH}" ]; then
|
||||
OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
|
||||
| awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
|
||||
if use berkdb; then
|
||||
# find which one would be used
|
||||
for bdb_slot in $BDB_SLOTS ; do
|
||||
NEWVER="$(db_findver "=sys-libs/db-${bdb_slot}*")"
|
||||
[[ -n "$NEWVER" ]] && break
|
||||
done
|
||||
fi
|
||||
local fail=0
|
||||
if [ -z "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
:
|
||||
# Nothing wrong here.
|
||||
elif [ -z "${OLDVER}" -a -n "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was not built against"
|
||||
eerror " any version of sys-libs/db, but the new one will build"
|
||||
eerror " against ${NEWVER} and your database may be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ -n "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will not be"
|
||||
eerror " built against any version and your database may be"
|
||||
eerror " inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ "${OLDVER}" != "${NEWVER}" ]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will build against"
|
||||
eerror " ${NEWVER} and your database would be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
fi
|
||||
[ "${fail}" == "1" ] && openldap_upgrade_howto
|
||||
fi
|
||||
|
||||
echo
|
||||
einfo
|
||||
einfo "All datadirs are fine, proceeding with merge now..."
|
||||
einfo
|
||||
}
|
||||
|
||||
openldap_upgrade_howto() {
|
||||
eerror
|
||||
eerror "A (possible old) installation of OpenLDAP was detected,"
|
||||
eerror "installation will not proceed for now."
|
||||
eerror
|
||||
eerror "As major version upgrades can corrupt your database,"
|
||||
eerror "you need to dump your database and re-create it afterwards."
|
||||
eerror
|
||||
eerror "Additionally, rebuilding against different major versions of the"
|
||||
eerror "sys-libs/db libraries will cause your database to be inaccessible."
|
||||
eerror ""
|
||||
d="$(date -u +%s)"
|
||||
l="/root/ldapdump.${d}"
|
||||
i="${l}.raw"
|
||||
eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
|
||||
eerror " 2. slapcat -l ${i}"
|
||||
eerror " 3. egrep -v '^(entry|context)CSN:' <${i} >${l}"
|
||||
eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
|
||||
eerror " 5. emerge --update \=net-nds/${PF}"
|
||||
eerror " 6. etc-update, and ensure that you apply the changes"
|
||||
eerror " 7. slapadd -l ${l}"
|
||||
eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
|
||||
eerror " 9. /etc/init.d/slapd start"
|
||||
eerror "10. check that your data is intact."
|
||||
eerror "11. set up the new replication system."
|
||||
eerror
|
||||
if [ "${FORCE_UPGRADE}" != "1" ]; then
|
||||
die "You need to upgrade your database first"
|
||||
else
|
||||
eerror "You have the magical FORCE_UPGRADE=1 in place."
|
||||
eerror "Don't say you weren't warned about data loss."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if ! use sasl && use cxx ; then
|
||||
die "To build the ldapc++ library you must emerge openldap with sasl support"
|
||||
fi
|
||||
# Bug #322787
|
||||
if use minimal && ! has_version "net-nds/openldap" ; then
|
||||
einfo "No datadir scan needed, openldap not installed"
|
||||
elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
|
||||
einfo "Skipping scan for previous datadirs as requested by minimal useflag"
|
||||
else
|
||||
openldap_find_versiontags
|
||||
fi
|
||||
|
||||
# The user/group are only used for running daemons which are
|
||||
# disabled in minimal builds, so elide the accounts too.
|
||||
if ! use minimal ; then
|
||||
enewgroup ldap 439
|
||||
enewuser ldap 439 -1 /usr/$(get_libdir)/openldap ldap
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# ensure correct SLAPI path by default
|
||||
sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
|
||||
"${S}"/include/ldap_defaults.h
|
||||
|
||||
epatch "${FILESDIR}"/${PN}-2.4.17-gcc44.patch
|
||||
|
||||
epatch \
|
||||
"${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch \
|
||||
"${FILESDIR}"/${PN}-2.4.15-ppolicy.patch
|
||||
|
||||
# bug #116045 - still present in 2.4.28
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-smbk5pwd.patch
|
||||
# bug #408077 - samba4
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-samba4.patch
|
||||
|
||||
# bug #189817
|
||||
epatch "${FILESDIR}"/${PN}-2.4.11-libldap_r.patch
|
||||
|
||||
# bug #233633
|
||||
epatch "${FILESDIR}"/${PN}-2.4.17-fix-lmpasswd-gnutls-symbols.patch
|
||||
|
||||
# bug #281495
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-gnutls-gcrypt.patch
|
||||
|
||||
# bug #294350
|
||||
epatch "${FILESDIR}"/${PN}-2.4.6-evolution-ntlm.patch
|
||||
|
||||
# unbreak /bin/sh -> dash
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
|
||||
|
||||
# bug #420959
|
||||
epatch "${FILESDIR}"/${PN}-2.4.31-gcc47.patch
|
||||
|
||||
# unbundle lmdb
|
||||
epatch "${FILESDIR}"/${PN}-2.4.42-mdb-unbundle.patch
|
||||
rm -rf "${S}"/libraries/liblmdb
|
||||
|
||||
cd "${S}"/build || die
|
||||
einfo "Making sure upstream build strip does not do stripping too early"
|
||||
sed -i.orig \
|
||||
-e '/^STRIP/s,-s,,g' \
|
||||
top.mk || die "Failed to block stripping"
|
||||
|
||||
# wrong assumption that /bin/sh is /bin/bash
|
||||
sed -i \
|
||||
-e 's|/bin/sh|/bin/bash|g' \
|
||||
"${S}"/tests/scripts/* || die "sed failed"
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
AT_NOEAUTOMAKE=yes eautoreconf
|
||||
}
|
||||
|
||||
build_contrib_module() {
|
||||
# <dir> <sources> <outputname>
|
||||
cd "${S}/contrib/slapd-modules/$1" || die
|
||||
einfo "Compiling contrib-module: $3"
|
||||
# Make sure it's uppercase
|
||||
local define_name="$(echo "SLAPD_OVER_${1}" | LC_ALL=C tr '[:lower:]' '[:upper:]')"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-D${define_name}=SLAPD_MOD_DYNAMIC \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include -I../../../servers/slapd ${CFLAGS} \
|
||||
-o ${2%.c}.lo -c $2 || die "compiling $3 failed"
|
||||
einfo "Linking contrib-module: $3"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o $3.la ${2%.c}.lo || die "linking $3 failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Bug 408001
|
||||
use elibc_FreeBSD && append-cppflags -DMDB_DSYNC=O_SYNC -DMDB_FDATASYNC=fsync
|
||||
|
||||
# connectionless ldap per bug #342439
|
||||
append-cppflags -DLDAP_CONNECTIONLESS
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=()
|
||||
|
||||
use debug && myconf+=( $(use_enable debug) )
|
||||
|
||||
# ICU exists only in the configure, nowhere in the codebase, bug #510858
|
||||
export ac_cv_header_unicode_utypes_h=no ol_cv_lib_icu=no
|
||||
|
||||
if ! use minimal && multilib_is_native_abi; then
|
||||
local CPPFLAGS=${CPPFLAGS}
|
||||
|
||||
# re-enable serverside overlay chains per bug #296567
|
||||
# see ldap docs chaper 12.3.1 for details
|
||||
myconf+=( --enable-ldap )
|
||||
|
||||
# backends
|
||||
myconf+=( --enable-slapd )
|
||||
if use berkdb ; then
|
||||
einfo "Using Berkeley DB for local backend"
|
||||
myconf+=( --enable-bdb --enable-hdb )
|
||||
DBINCLUDE=$(db_includedir $BDB_SLOTS)
|
||||
einfo "Using $DBINCLUDE for sys-libs/db version"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I${DBINCLUDE}
|
||||
else
|
||||
myconf+=( --disable-bdb --disable-hdb )
|
||||
fi
|
||||
for backend in dnssrv ldap mdb meta monitor null passwd relay shell sock; do
|
||||
myconf+=( --enable-${backend}=mod )
|
||||
done
|
||||
|
||||
myconf+=( $(use_enable perl perl mod) )
|
||||
|
||||
myconf+=( $(use_enable odbc sql mod) )
|
||||
if use odbc ; then
|
||||
local odbc_lib="unixodbc"
|
||||
if use iodbc ; then
|
||||
odbc_lib="iodbc"
|
||||
append-cppflags -I"${EPREFIX}"/usr/include/iodbc
|
||||
fi
|
||||
myconf+=( --with-odbc=${odbc_lib} )
|
||||
fi
|
||||
|
||||
# slapd options
|
||||
myconf+=(
|
||||
$(use_enable crypt)
|
||||
$(use_enable slp)
|
||||
$(use_enable samba lmpasswd)
|
||||
$(use_enable syslog)
|
||||
)
|
||||
if use experimental ; then
|
||||
myconf+=(
|
||||
--enable-dynacl
|
||||
--enable-aci=mod
|
||||
)
|
||||
fi
|
||||
for option in aci cleartext modules rewrite rlookups slapi; do
|
||||
myconf+=( --enable-${option} )
|
||||
done
|
||||
|
||||
# slapd overlay options
|
||||
# Compile-in the syncprov, the others as module
|
||||
myconf+=( --enable-syncprov=yes )
|
||||
use overlays && myconf+=( --enable-overlays=mod )
|
||||
|
||||
else
|
||||
myconf+=(
|
||||
--disable-backends
|
||||
--disable-slapd
|
||||
--disable-bdb
|
||||
--disable-hdb
|
||||
--disable-mdb
|
||||
--disable-overlays
|
||||
--disable-syslog
|
||||
)
|
||||
fi
|
||||
|
||||
# basic functionality stuff
|
||||
myconf+=(
|
||||
$(use_enable ipv6)
|
||||
$(multilib_native_use_with sasl cyrus-sasl)
|
||||
$(multilib_native_use_enable sasl spasswd)
|
||||
$(use_enable tcpd wrappers)
|
||||
)
|
||||
|
||||
# Some cross-compiling tests don't pan out well.
|
||||
tc-is-cross-compiler && myconf+=(
|
||||
--with-yielding-select=yes
|
||||
)
|
||||
|
||||
local ssl_lib="no"
|
||||
if use ssl || ( ! use minimal && use samba ) ; then
|
||||
ssl_lib="openssl"
|
||||
use gnutls && ssl_lib="gnutls"
|
||||
fi
|
||||
|
||||
myconf+=( --with-tls=${ssl_lib} )
|
||||
|
||||
for basicflag in dynamic local proctitle shared; do
|
||||
myconf+=( --enable-${basicflag} )
|
||||
done
|
||||
|
||||
tc-export AR CC CXX
|
||||
ECONF_SOURCE=${S} \
|
||||
STRIP=/bin/true \
|
||||
econf \
|
||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
src_configure_cxx() {
|
||||
# This needs the libraries built by the first build run.
|
||||
# So we have to run it AFTER the main build, not just after the main
|
||||
# configure.
|
||||
local myconf_ldapcpp=(
|
||||
--with-ldap-includes="${S}"/include
|
||||
)
|
||||
|
||||
mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
|
||||
local LDFLAGS=${LDFLAGS} CPPFLAGS=${CPPFLAGS}
|
||||
append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs \
|
||||
-L"${BUILD_DIR}"/libraries/libldap/.libs
|
||||
append-cppflags -I"${BUILD_DIR}"/include
|
||||
ECONF_SOURCE=${S}/contrib/ldapc++ \
|
||||
econf "${myconf_ldapcpp[@]}" \
|
||||
CC="${CC}" \
|
||||
CXX="${CXX}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
tc-export AR CC CXX
|
||||
emake CC="${CC}" AR="${AR}" SHELL="${EPREFIX}"/bin/bash
|
||||
local lt="${BUILD_DIR}/libtool"
|
||||
export echo="echo"
|
||||
|
||||
if ! use minimal && multilib_is_native_abi ; then
|
||||
if use cxx ; then
|
||||
einfo "Building contrib library: ldapc++"
|
||||
src_configure_cxx
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
emake \
|
||||
CC="${CC}" CXX="${CXX}"
|
||||
fi
|
||||
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Building contrib-module: smbk5pwd"
|
||||
cd "${S}/contrib/slapd-modules/smbk5pwd" || die
|
||||
|
||||
MY_DEFS="-DDO_SHADOW"
|
||||
if use samba ; then
|
||||
MY_DEFS="${MY_DEFS} -DDO_SAMBA"
|
||||
MY_KRB5_INC=""
|
||||
fi
|
||||
if use kerberos ; then
|
||||
MY_DEFS="${MY_DEFS} -DDO_KRB5"
|
||||
MY_KRB5_INC="$(krb5-config --cflags)"
|
||||
fi
|
||||
|
||||
emake \
|
||||
DEFS="${MY_DEFS}" \
|
||||
KRB5_INC="${MY_KRB5_INC}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
|
||||
fi
|
||||
|
||||
if use overlays ; then
|
||||
einfo "Building contrib-module: samba4"
|
||||
cd "${S}/contrib/slapd-modules/samba4" || die
|
||||
|
||||
emake \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="/usr/$(get_libdir)/openldap"
|
||||
fi
|
||||
|
||||
if use kerberos ; then
|
||||
if use kinit ; then
|
||||
build_contrib_module "kinit" "kinit.c" "kinit"
|
||||
fi
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
einfo "Compiling contrib-module: pw-kerberos"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
$(krb5-config --cflags) \
|
||||
-DHAVE_KRB5 \
|
||||
-o kerberos.lo \
|
||||
-c kerberos.c || die "compiling pw-kerberos failed"
|
||||
einfo "Linking contrib-module: pw-kerberos"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-kerberos.la \
|
||||
kerberos.lo || die "linking pw-kerberos failed"
|
||||
fi
|
||||
# We could build pw-radius if GNURadius would install radlib.h
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
einfo "Compiling contrib-module: pw-netscape"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
-o netscape.lo \
|
||||
-c netscape.c || die "compiling pw-netscape failed"
|
||||
einfo "Linking contrib-module: pw-netscape"
|
||||
"${lt}" --mode=link --tag=CC \
|
||||
"${CC}" -module \
|
||||
${CFLAGS} \
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-netscape.la \
|
||||
netscape.lo || die "linking pw-netscape failed"
|
||||
|
||||
#build_contrib_module "acl" "posixgroup.c" "posixGroup" # example code only
|
||||
#build_contrib_module "acl" "gssacl.c" "gss" # example code only, also needs kerberos
|
||||
build_contrib_module "addpartial" "addpartial-overlay.c" "addpartial-overlay"
|
||||
build_contrib_module "allop" "allop.c" "overlay-allop"
|
||||
build_contrib_module "allowed" "allowed.c" "allowed"
|
||||
build_contrib_module "autogroup" "autogroup.c" "autogroup"
|
||||
build_contrib_module "cloak" "cloak.c" "cloak"
|
||||
# build_contrib_module "comp_match" "comp_match.c" "comp_match" # really complex, adds new external deps, questionable demand
|
||||
build_contrib_module "denyop" "denyop.c" "denyop-overlay"
|
||||
build_contrib_module "dsaschema" "dsaschema.c" "dsaschema-plugin"
|
||||
build_contrib_module "dupent" "dupent.c" "dupent"
|
||||
build_contrib_module "lastbind" "lastbind.c" "lastbind"
|
||||
# lastmod may not play well with other overlays
|
||||
build_contrib_module "lastmod" "lastmod.c" "lastmod"
|
||||
build_contrib_module "noopsrch" "noopsrch.c" "noopsrch"
|
||||
build_contrib_module "nops" "nops.c" "nops-overlay"
|
||||
#build_contrib_module "nssov" "nssov.c" "nssov-overlay" RESO:LATER
|
||||
build_contrib_module "trace" "trace.c" "trace"
|
||||
# build slapi-plugins
|
||||
cd "${S}/contrib/slapi-plugins/addrdnvalues" || die
|
||||
einfo "Building contrib-module: addrdnvalues plugin"
|
||||
"${CC}" -shared \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
-I../../../include \
|
||||
${CFLAGS} \
|
||||
-fPIC \
|
||||
${LDFLAGS} \
|
||||
-o libaddrdnvalues-plugin.so \
|
||||
addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if multilib_is_native_abi; then
|
||||
cd tests || die
|
||||
emake tests || die "make tests failed"
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local lt="${BUILD_DIR}/libtool"
|
||||
emake DESTDIR="${D}" SHELL="${EPREFIX}"/bin/bash install
|
||||
use static-libs || prune_libtool_files --all
|
||||
|
||||
if ! use minimal && multilib_is_native_abi; then
|
||||
# openldap modules go here
|
||||
# TODO: write some code to populate slapd.conf with moduleload statements
|
||||
keepdir /usr/$(get_libdir)/openldap/openldap/
|
||||
|
||||
# initial data storage dir
|
||||
keepdir /var/lib/openldap-data
|
||||
use prefix || fowners ldap:ldap /var/lib/openldap-data
|
||||
fperms 0700 /var/lib/openldap-data
|
||||
|
||||
echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
|
||||
# use our config
|
||||
rm "${ED}"etc/openldap/slapd.conf
|
||||
insinto /etc/openldap
|
||||
newins "${FILESDIR}"/${PN}-2.4.40-slapd-conf slapd.conf
|
||||
configfile="${ED}"etc/openldap/slapd.conf
|
||||
|
||||
# populate with built backends
|
||||
ebegin "populate config with built backends"
|
||||
for x in "${ED}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
einfo "Adding $(basename ${x})"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
|
||||
done
|
||||
sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
|
||||
use prefix || fowners root:ldap /etc/openldap/slapd.conf
|
||||
fperms 0640 /etc/openldap/slapd.conf
|
||||
cp "${configfile}" "${configfile}".default
|
||||
eend
|
||||
|
||||
# install our own init scripts and systemd unit files
|
||||
einfo "Install init scripts"
|
||||
newinitd "${FILESDIR}"/slapd-initd-2.4.40-r2 slapd
|
||||
newconfd "${FILESDIR}"/slapd-confd-2.4.28-r1 slapd
|
||||
einfo "Install systemd service"
|
||||
systemd_dounit "${FILESDIR}"/slapd.service
|
||||
systemd_install_serviced "${FILESDIR}"/slapd.service.conf
|
||||
systemd_newtmpfilesd "${FILESDIR}"/slapd.tmpfilesd slapd.conf
|
||||
|
||||
if [[ $(get_libdir) != lib ]]; then
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i \
|
||||
"${ED}"/etc/init.d/slapd \
|
||||
"${ED}"/usr/lib/systemd/system/slapd.service || die
|
||||
fi
|
||||
# If built without SLP, we don't need to be before avahi
|
||||
use slp \
|
||||
|| sed -i \
|
||||
-e '/before/{s/avahi-daemon//g}' \
|
||||
"${ED}"etc/init.d/slapd
|
||||
|
||||
if use cxx ; then
|
||||
einfo "Install the ldapc++ library"
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
|
||||
cd "${S}"/contrib/ldapc++ || die
|
||||
newdoc README ldapc++-README
|
||||
fi
|
||||
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Install the smbk5pwd module"
|
||||
cd "${S}/contrib/slapd-modules/smbk5pwd" || die
|
||||
emake DESTDIR="${D}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
|
||||
newdoc README smbk5pwd-README
|
||||
fi
|
||||
|
||||
if use overlays ; then
|
||||
einfo "Install the samba4 module"
|
||||
cd "${S}/contrib/slapd-modules/samba4" || die
|
||||
emake DESTDIR="${D}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
libexecdir="/usr/$(get_libdir)/openldap" install
|
||||
newdoc README samba4-README
|
||||
fi
|
||||
|
||||
einfo "Installing contrib modules"
|
||||
cd "${S}/contrib/slapd-modules" || die
|
||||
for l in */*.la; do
|
||||
"${lt}" --mode=install cp ${l} \
|
||||
"${ED}"usr/$(get_libdir)/openldap/openldap || \
|
||||
die "installing ${l} failed"
|
||||
done
|
||||
|
||||
dodoc "${FILESDIR}"/DB_CONFIG.fast.example
|
||||
docinto contrib
|
||||
doman */*.5
|
||||
#newdoc acl/README*
|
||||
newdoc addpartial/README addpartial-README
|
||||
newdoc allop/README allop-README
|
||||
newdoc allowed/README allowed-README
|
||||
newdoc autogroup/README autogroup-README
|
||||
newdoc dsaschema/README dsaschema-README
|
||||
newdoc passwd/README passwd-README
|
||||
cd "${S}/contrib/slapi-plugins" || die
|
||||
insinto /usr/$(get_libdir)/openldap/openldap
|
||||
doins */*.so
|
||||
docinto contrib
|
||||
newdoc addrdnvalues/README addrdnvalues-README
|
||||
|
||||
insinto /etc/openldap/schema
|
||||
newins "${DISTDIR}"/${BIS_P} ${BIS_PN}
|
||||
|
||||
docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
|
||||
docinto back-shell ; dodoc "${S}"/servers/slapd/back-shell/searchexample*
|
||||
docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
|
||||
|
||||
dosbin "${S}"/contrib/slapd-tools/statslog
|
||||
newdoc "${S}"/contrib/slapd-tools/README README.statslog
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
|
||||
docinto rfc ; dodoc doc/rfc/*.txt
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# keep old libs if any
|
||||
preserve_old_lib /usr/$(get_libdir)/{liblber,libldap_r,liblber}-2.3$(get_libname 0)
|
||||
# bug 440470, only display the getting started help there was no openldap before,
|
||||
# or we are going to a non-minimal build
|
||||
! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
|
||||
OPENLDAP_PRINT_MESSAGES=$((! $?))
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use minimal ; then
|
||||
# You cannot build SSL certificates during src_install that will make
|
||||
# binary packages containing your SSL key, which is both a security risk
|
||||
# and a misconfiguration if multiple machines use the same key and cert.
|
||||
if use ssl; then
|
||||
install_cert /etc/openldap/ssl/ldap
|
||||
use prefix || chown ldap:ldap "${EROOT}"etc/openldap/ssl/ldap.*
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "add 'TLS_REQCERT allow' if you want to use them."
|
||||
fi
|
||||
|
||||
if use prefix; then
|
||||
# Warn about prefix issues with slapd
|
||||
eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
|
||||
eerror "to start up, and requires that certain files directories be owned by"
|
||||
eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
|
||||
eerror "directories, you will have to manually fix this yourself."
|
||||
fi
|
||||
|
||||
# These lines force the permissions of various content to be correct
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/run/openldap
|
||||
chmod 0755 "${EROOT}"var/run/openldap
|
||||
use prefix || chown root:ldap "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/lib/openldap-data
|
||||
fi
|
||||
|
||||
if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
|
||||
elog "Getting started using OpenLDAP? There is some documentation available:"
|
||||
elog "Gentoo Guide to OpenLDAP Authentication"
|
||||
elog "(https://www.gentoo.org/doc/en/ldap-howto.xml)"
|
||||
elog "---"
|
||||
elog "An example file for tuning BDB backends with openldap is"
|
||||
elog "DB_CONFIG.fast.example in /usr/share/doc/${PF}/"
|
||||
fi
|
||||
|
||||
preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3$(get_libname 0)
|
||||
}
|
||||
@ -1,36 +1,42 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
EAPI=7
|
||||
|
||||
inherit db-use eutils flag-o-matic multilib multilib-minimal ssl-cert versionator toolchain-funcs autotools user systemd
|
||||
inherit autotools db-use flag-o-matic multilib-minimal ssl-cert toolchain-funcs user systemd
|
||||
|
||||
BIS_PN=rfc2307bis.schema
|
||||
BIS_PV=20140524
|
||||
BIS_P="${BIS_PN}-${BIS_PV}"
|
||||
|
||||
DESCRIPTION="LDAP suite of application and development tools"
|
||||
HOMEPAGE="http://www.OpenLDAP.org/"
|
||||
HOMEPAGE="https://www.OpenLDAP.org/"
|
||||
|
||||
# mirrors are mostly not working, using canonical URI
|
||||
SRC_URI="ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${P}.tgz
|
||||
mirror://gentoo/${BIS_P}"
|
||||
# upstream mirrors are mostly not working, using canonical URI
|
||||
SRC_URI="
|
||||
https://openldap.org/software/download/OpenLDAP/openldap-release/${P}.tgz
|
||||
http://gpl.savoirfairelinux.net/pub/mirrors/openldap/openldap-release/${P}.tgz
|
||||
http://repository.linagora.org/OpenLDAP/openldap-release/${P}.tgz
|
||||
http://mirror.eu.oneandone.net/software/openldap/openldap-release/${P}.tgz
|
||||
mirror://gentoo/${BIS_P}"
|
||||
|
||||
LICENSE="OPENLDAP GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~x86-solaris"
|
||||
|
||||
IUSE_DAEMON="crypt samba slp tcpd experimental minimal"
|
||||
IUSE_DAEMON="crypt samba tcpd experimental minimal"
|
||||
IUSE_BACKEND="+berkdb"
|
||||
IUSE_OVERLAY="overlays perl"
|
||||
IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 libressl +syslog selinux static-libs"
|
||||
IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 libressl +syslog selinux static-libs test"
|
||||
IUSE_CONTRIB="smbkrb5passwd kerberos kinit pbkdf2 sha2"
|
||||
IUSE_CONTRIB="${IUSE_CONTRIB} -cxx"
|
||||
IUSE="${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="cxx? ( sasl )
|
||||
?? ( gnutls libressl )
|
||||
pbkdf2? ( ssl )"
|
||||
pbkdf2? ( ssl )
|
||||
test? ( berkdb )
|
||||
?? ( test minimal )"
|
||||
|
||||
# always list newer first
|
||||
# Do not add any AGPL-3 BDB here!
|
||||
@ -41,14 +47,17 @@ BDB_PKGS=''
|
||||
for _slot in $BDB_SLOTS; do BDB_PKGS="${BDB_PKGS} sys-libs/db:${_slot}" ; done
|
||||
|
||||
# openssl is needed to generate lanman-passwords required by samba
|
||||
CDEPEND="
|
||||
COMMON_DEPEND="
|
||||
ssl? (
|
||||
!gnutls? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
|
||||
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
|
||||
libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}]
|
||||
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
|
||||
>=dev-libs/libgcrypt-1.5.3:0[${MULTILIB_USEDEP}] ) )
|
||||
gnutls? (
|
||||
>=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
|
||||
>=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
|
||||
)
|
||||
)
|
||||
sasl? ( dev-libs/cyrus-sasl:= )
|
||||
!minimal? (
|
||||
sys-devel/libtool
|
||||
@ -57,19 +66,18 @@ CDEPEND="
|
||||
tcpd? ( sys-apps/tcp-wrappers )
|
||||
odbc? ( !iodbc? ( dev-db/unixODBC )
|
||||
iodbc? ( dev-db/libiodbc ) )
|
||||
slp? ( net-libs/openslp )
|
||||
perl? ( dev-lang/perl:=[-build(-)] )
|
||||
samba? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
berkdb? (
|
||||
<sys-libs/db-6.0:=
|
||||
|| ( ${BDB_PKGS} )
|
||||
)
|
||||
smbkrb5passwd? (
|
||||
!libressl? ( dev-libs/openssl:0 )
|
||||
libressl? ( dev-libs/libressl )
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
kerberos? ( app-crypt/heimdal )
|
||||
)
|
||||
kerberos? (
|
||||
@ -78,13 +86,11 @@ CDEPEND="
|
||||
)
|
||||
cxx? ( dev-libs/cyrus-sasl:= )
|
||||
)
|
||||
abi_x86_32? (
|
||||
!<=app-emulation/emul-linux-x86-baselibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
|
||||
)"
|
||||
DEPEND="${CDEPEND}
|
||||
sys-apps/groff"
|
||||
RDEPEND="${CDEPEND}
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
sys-apps/groff
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
selinux? ( sec-policy/selinux-ldap )
|
||||
"
|
||||
# for tracking versions
|
||||
@ -129,6 +135,45 @@ MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/TlsOptions.h
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.4.17-gcc44.patch
|
||||
|
||||
"${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch
|
||||
"${FILESDIR}"/${PN}-2.4.15-ppolicy.patch
|
||||
|
||||
# bug #116045 - still present in 2.4.28
|
||||
"${FILESDIR}"/${PN}-2.4.35-contrib-smbk5pwd.patch
|
||||
# bug #408077 - samba4
|
||||
"${FILESDIR}"/${PN}-2.4.35-contrib-samba4.patch
|
||||
|
||||
# bug #189817
|
||||
"${FILESDIR}"/${PN}-2.4.11-libldap_r.patch
|
||||
|
||||
# bug #233633
|
||||
"${FILESDIR}"/${PN}-2.4.45-fix-lmpasswd-gnutls-symbols.patch
|
||||
|
||||
# bug #281495
|
||||
"${FILESDIR}"/${PN}-2.4.28-gnutls-gcrypt.patch
|
||||
|
||||
# bug #294350
|
||||
"${FILESDIR}"/${PN}-2.4.6-evolution-ntlm.patch
|
||||
|
||||
# unbreak /bin/sh -> dash
|
||||
"${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
|
||||
|
||||
# bug #420959
|
||||
"${FILESDIR}"/${PN}-2.4.31-gcc47.patch
|
||||
|
||||
# unbundle lmdb
|
||||
"${FILESDIR}"/${PN}-2.4.42-mdb-unbundle.patch
|
||||
|
||||
# bug #622464
|
||||
"${FILESDIR}"/${PN}-2.4.47-libressl.patch
|
||||
|
||||
# fix some compiler warnings
|
||||
"${FILESDIR}"/${PN}-2.4.47-warnings.patch
|
||||
)
|
||||
|
||||
openldap_filecount() {
|
||||
local dir="$1"
|
||||
find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
|
||||
@ -136,11 +181,11 @@ openldap_filecount() {
|
||||
|
||||
openldap_find_versiontags() {
|
||||
# scan for all datadirs
|
||||
openldap_datadirs=""
|
||||
if [ -f "${EROOT}"/etc/openldap/slapd.conf ]; then
|
||||
openldap_datadirs="$(awk '{if($1 == "directory") print $2 }' ${EROOT}/etc/openldap/slapd.conf)"
|
||||
local openldap_datadirs=()
|
||||
if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
|
||||
openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
|
||||
fi
|
||||
openldap_datadirs="${openldap_datadirs} ${OPENLDAP_DEFAULTDIR_VERSIONTAG}"
|
||||
openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
|
||||
|
||||
einfo
|
||||
einfo "Scanning datadir(s) from slapd.conf and"
|
||||
@ -151,28 +196,28 @@ openldap_find_versiontags() {
|
||||
# scan datadirs if we have a version tag
|
||||
openldap_found_tag=0
|
||||
have_files=0
|
||||
for each in ${openldap_datadirs}; do
|
||||
CURRENT_TAGDIR=${ROOT}`echo ${each} | sed "s:\/::"`
|
||||
CURRENT_TAG=${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}
|
||||
if [ -d ${CURRENT_TAGDIR} ] && [ ${openldap_found_tag} == 0 ] ; then
|
||||
for each in ${openldap_datadirs[@]} ; do
|
||||
CURRENT_TAGDIR="${ROOT}$(sed "s:\/::" <<< ${each})"
|
||||
CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
|
||||
if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
|
||||
einfo "- Checking ${each}..."
|
||||
if [ -r ${CURRENT_TAG} ] ; then
|
||||
if [[ -r "${CURRENT_TAG}" ]] ; then
|
||||
# yey, we have one :)
|
||||
einfo " Found Versiontag in ${each}"
|
||||
source ${CURRENT_TAG}
|
||||
if [ "${OLDPF}" == "" ] ; then
|
||||
source "${CURRENT_TAG}"
|
||||
if [[ "${OLDPF}" == "" ]] ; then
|
||||
eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
|
||||
eerror "Please delete it"
|
||||
eerror
|
||||
die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
|
||||
fi
|
||||
|
||||
OLD_MAJOR=`get_version_component_range 2-3 ${OLDPF}`
|
||||
OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
|
||||
|
||||
[ $(openldap_filecount ${CURRENT_TAGDIR}) -gt 0 ] && have_files=1
|
||||
[[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
|
||||
|
||||
# are we on the same branch?
|
||||
if [ "${OLD_MAJOR}" != "${PV:0:3}" ] ; then
|
||||
if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
|
||||
ewarn " Versiontag doesn't match current major release!"
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
eerror " Versiontag says other major and you (probably) have datafiles!"
|
||||
@ -186,7 +231,7 @@ openldap_find_versiontags() {
|
||||
fi
|
||||
else
|
||||
einfo " Non-tagged dir ${each}"
|
||||
[ $(openldap_filecount ${each}) -gt 0 ] && have_files=1
|
||||
[[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
|
||||
if [[ "${have_files}" == "1" ]] ; then
|
||||
einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
|
||||
echo
|
||||
@ -208,45 +253,45 @@ openldap_find_versiontags() {
|
||||
einfo
|
||||
fi
|
||||
done
|
||||
[ "${have_files}" == "1" ] && einfo "DB files present" || einfo "No DB files present"
|
||||
[[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
|
||||
|
||||
# Now we must check for the major version of sys-libs/db linked against.
|
||||
SLAPD_PATH=${EROOT}/usr/$(get_libdir)/openldap/slapd
|
||||
if [ "${have_files}" == "1" -a -f "${SLAPD_PATH}" ]; then
|
||||
SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
|
||||
if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
|
||||
OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
|
||||
| awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
|
||||
if use berkdb; then
|
||||
# find which one would be used
|
||||
for bdb_slot in $BDB_SLOTS ; do
|
||||
for bdb_slot in ${BDB_SLOTS} ; do
|
||||
NEWVER="$(db_findver "=sys-libs/db-${bdb_slot}*")"
|
||||
[[ -n "$NEWVER" ]] && break
|
||||
[[ -n "${NEWVER}" ]] && break
|
||||
done
|
||||
fi
|
||||
local fail=0
|
||||
if [ -z "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
if [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
|
||||
:
|
||||
# Nothing wrong here.
|
||||
elif [ -z "${OLDVER}" -a -n "${NEWVER}" ]; then
|
||||
elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
|
||||
eerror " Your existing version of OpenLDAP was not built against"
|
||||
eerror " any version of sys-libs/db, but the new one will build"
|
||||
eerror " against ${NEWVER} and your database may be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ -n "${OLDVER}" -a -z "${NEWVER}" ]; then
|
||||
elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will not be"
|
||||
eerror " built against any version and your database may be"
|
||||
eerror " inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
elif [ "${OLDVER}" != "${NEWVER}" ]; then
|
||||
elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
|
||||
eerror " Your existing version of OpenLDAP was built against"
|
||||
eerror " sys-libs/db:${OLDVER}, but the new one will build against"
|
||||
eerror " ${NEWVER} and your database would be inaccessible."
|
||||
echo
|
||||
fail=1
|
||||
fi
|
||||
[ "${fail}" == "1" ] && openldap_upgrade_howto
|
||||
[[ "${fail}" == "1" ]] && openldap_upgrade_howto
|
||||
fi
|
||||
|
||||
echo
|
||||
@ -256,6 +301,7 @@ openldap_find_versiontags() {
|
||||
}
|
||||
|
||||
openldap_upgrade_howto() {
|
||||
local d l i
|
||||
eerror
|
||||
eerror "A (possible old) installation of OpenLDAP was detected,"
|
||||
eerror "installation will not proceed for now."
|
||||
@ -269,7 +315,7 @@ openldap_upgrade_howto() {
|
||||
d="$(date -u +%s)"
|
||||
l="/root/ldapdump.${d}"
|
||||
i="${l}.raw"
|
||||
eerror " 1. /etc/init.d/slurpd stop ; /etc/init.d/slapd stop"
|
||||
eerror " 1. /etc/init.d/slapd stop"
|
||||
eerror " 2. slapcat -l ${i}"
|
||||
eerror " 3. egrep -v '^(entry|context)CSN:' <${i} >${l}"
|
||||
eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
|
||||
@ -281,7 +327,7 @@ openldap_upgrade_howto() {
|
||||
eerror "10. check that your data is intact."
|
||||
eerror "11. set up the new replication system."
|
||||
eerror
|
||||
if [ "${FORCE_UPGRADE}" != "1" ]; then
|
||||
if [[ "${FORCE_UPGRADE}" != "1" ]]; then
|
||||
die "You need to upgrade your database first"
|
||||
else
|
||||
eerror "You have the magical FORCE_UPGRADE=1 in place."
|
||||
@ -312,64 +358,33 @@ pkg_setup() {
|
||||
|
||||
src_prepare() {
|
||||
# ensure correct SLAPI path by default
|
||||
sed -i -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
|
||||
"${S}"/include/ldap_defaults.h
|
||||
sed -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
|
||||
-i include/ldap_defaults.h || die
|
||||
|
||||
epatch "${FILESDIR}"/${PN}-2.4.17-gcc44.patch
|
||||
default
|
||||
rm -r libraries/liblmdb || die
|
||||
|
||||
epatch \
|
||||
"${FILESDIR}"/${PN}-2.2.14-perlthreadsfix.patch \
|
||||
"${FILESDIR}"/${PN}-2.4.15-ppolicy.patch
|
||||
|
||||
# bug #116045 - still present in 2.4.28
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-smbk5pwd.patch
|
||||
# bug #408077 - samba4
|
||||
epatch "${FILESDIR}"/${PN}-2.4.35-contrib-samba4.patch
|
||||
|
||||
# bug #189817
|
||||
epatch "${FILESDIR}"/${PN}-2.4.11-libldap_r.patch
|
||||
|
||||
# bug #233633
|
||||
epatch "${FILESDIR}"/${PN}-2.4.45-fix-lmpasswd-gnutls-symbols.patch
|
||||
|
||||
# bug #281495
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-gnutls-gcrypt.patch
|
||||
|
||||
# bug #294350
|
||||
epatch "${FILESDIR}"/${PN}-2.4.6-evolution-ntlm.patch
|
||||
|
||||
# unbreak /bin/sh -> dash
|
||||
epatch "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
|
||||
|
||||
# bug #420959
|
||||
epatch "${FILESDIR}"/${PN}-2.4.31-gcc47.patch
|
||||
|
||||
# unbundle lmdb
|
||||
epatch "${FILESDIR}"/${PN}-2.4.42-mdb-unbundle.patch
|
||||
rm -rf "${S}"/libraries/liblmdb
|
||||
|
||||
cd "${S}"/build || die
|
||||
pushd build &>/dev/null || die "pushd build"
|
||||
einfo "Making sure upstream build strip does not do stripping too early"
|
||||
sed -i.orig \
|
||||
-e '/^STRIP/s,-s,,g' \
|
||||
top.mk || die "Failed to block stripping"
|
||||
popd &>/dev/null || die
|
||||
|
||||
# wrong assumption that /bin/sh is /bin/bash
|
||||
sed -i \
|
||||
sed \
|
||||
-e 's|/bin/sh|/bin/bash|g' \
|
||||
"${S}"/tests/scripts/* || die "sed failed"
|
||||
|
||||
cd "${S}" || die
|
||||
-i tests/scripts/* || die "sed failed"
|
||||
|
||||
AT_NOEAUTOMAKE=yes eautoreconf
|
||||
}
|
||||
|
||||
build_contrib_module() {
|
||||
# <dir> <sources> <outputname>
|
||||
cd "${S}/contrib/slapd-modules/$1" || die
|
||||
pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
|
||||
einfo "Compiling contrib-module: $3"
|
||||
# Make sure it's uppercase
|
||||
local define_name="$(echo "SLAPD_OVER_${1}" | LC_ALL=C tr '[:lower:]' '[:upper:]')"
|
||||
local define_name="$(LC_ALL=C tr '[:lower:]' '[:upper:]' <<< "SLAPD_OVER_${1}")"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
-D${define_name}=SLAPD_MOD_DYNAMIC \
|
||||
@ -383,6 +398,7 @@ build_contrib_module() {
|
||||
${LDFLAGS} \
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o $3.la ${2%.c}.lo || die "linking $3 failed"
|
||||
popd &>/dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
@ -415,8 +431,8 @@ multilib_src_configure() {
|
||||
if use berkdb ; then
|
||||
einfo "Using Berkeley DB for local backend"
|
||||
myconf+=( --enable-bdb --enable-hdb )
|
||||
DBINCLUDE=$(db_includedir $BDB_SLOTS)
|
||||
einfo "Using $DBINCLUDE for sys-libs/db version"
|
||||
DBINCLUDE=$(db_includedir ${BDB_SLOTS})
|
||||
einfo "Using ${DBINCLUDE} for sys-libs/db version"
|
||||
# We need to include the slotted db.h dir for FreeBSD
|
||||
append-cppflags -I${DBINCLUDE}
|
||||
else
|
||||
@ -441,7 +457,7 @@ multilib_src_configure() {
|
||||
# slapd options
|
||||
myconf+=(
|
||||
$(use_enable crypt)
|
||||
$(use_enable slp)
|
||||
--disable-slp
|
||||
$(use_enable samba lmpasswd)
|
||||
$(use_enable syslog)
|
||||
)
|
||||
@ -498,7 +514,8 @@ multilib_src_configure() {
|
||||
done
|
||||
|
||||
tc-export AR CC CXX
|
||||
ECONF_SOURCE=${S} \
|
||||
CONFIG_SHELL="/bin/bash" \
|
||||
ECONF_SOURCE="${S}" \
|
||||
STRIP=/bin/true \
|
||||
econf \
|
||||
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
|
||||
@ -516,7 +533,7 @@ src_configure_cxx() {
|
||||
)
|
||||
|
||||
mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
|
||||
|
||||
local LDFLAGS=${LDFLAGS} CPPFLAGS=${CPPFLAGS}
|
||||
append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs \
|
||||
@ -526,6 +543,7 @@ src_configure_cxx() {
|
||||
econf "${myconf_ldapcpp[@]}" \
|
||||
CC="${CC}" \
|
||||
CXX="${CXX}"
|
||||
popd &>/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
@ -538,14 +556,14 @@ multilib_src_compile() {
|
||||
if use cxx ; then
|
||||
einfo "Building contrib library: ldapc++"
|
||||
src_configure_cxx
|
||||
cd "${BUILD_DIR}/contrib/ldapc++" || die
|
||||
emake \
|
||||
CC="${CC}" CXX="${CXX}"
|
||||
pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
|
||||
emake CC="${CC}" CXX="${CXX}"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use smbkrb5passwd ; then
|
||||
einfo "Building contrib-module: smbk5pwd"
|
||||
cd "${S}/contrib/slapd-modules/smbk5pwd" || die
|
||||
pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
|
||||
|
||||
MY_DEFS="-DDO_SHADOW"
|
||||
if use samba ; then
|
||||
@ -562,22 +580,24 @@ multilib_src_compile() {
|
||||
KRB5_INC="${MY_KRB5_INC}" \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use overlays ; then
|
||||
einfo "Building contrib-module: samba4"
|
||||
cd "${S}/contrib/slapd-modules/samba4" || die
|
||||
pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
|
||||
|
||||
emake \
|
||||
LDAP_BUILD="${BUILD_DIR}" \
|
||||
CC="${CC}" libexecdir="/usr/$(get_libdir)/openldap"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use kerberos ; then
|
||||
if use kinit ; then
|
||||
build_contrib_module "kinit" "kinit.c" "kinit"
|
||||
fi
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
pushd "${S}/contrib/slapd-modules/passwd" &>/dev/null || die "pushd contrib/slapd-modules/passwd"
|
||||
einfo "Compiling contrib-module: pw-kerberos"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
@ -596,10 +616,11 @@ multilib_src_compile() {
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-kerberos.la \
|
||||
kerberos.lo || die "linking pw-kerberos failed"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use pbkdf2; then
|
||||
cd "${S}/contrib/slapd-modules/passwd/pbkdf2" || die
|
||||
pushd "${S}/contrib/slapd-modules/passwd/pbkdf2" &>/dev/null || die "pushd contrib/slapd-modules/passwd/pbkdf2"
|
||||
einfo "Compiling contrib-module: pw-pbkdf2"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
@ -616,10 +637,11 @@ multilib_src_compile() {
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-pbkdf2.la \
|
||||
pbkdf2.lo || die "linking pw-pbkdf2 failed"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use sha2 ; then
|
||||
cd "${S}/contrib/slapd-modules/passwd/sha2" || die
|
||||
pushd "${S}/contrib/slapd-modules/passwd/sha2" &>/dev/null || die "pushd contrib/slapd-modules/passwd/sha2"
|
||||
einfo "Compiling contrib-module: pw-sha2"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
@ -643,10 +665,11 @@ multilib_src_compile() {
|
||||
-rpath "${EPREFIX}"/usr/$(get_libdir)/openldap/openldap \
|
||||
-o pw-sha2.la \
|
||||
sha2.lo slapd-sha2.lo || die "linking pw-sha2 failed"
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
# We could build pw-radius if GNURadius would install radlib.h
|
||||
cd "${S}/contrib/slapd-modules/passwd" || die
|
||||
pushd "${S}/contrib/slapd-modules/passwd" &>/dev/null || die "pushd contrib/slapd-modules/passwd"
|
||||
einfo "Compiling contrib-module: pw-netscape"
|
||||
"${lt}" --mode=compile --tag=CC \
|
||||
"${CC}" \
|
||||
@ -679,11 +702,12 @@ multilib_src_compile() {
|
||||
# lastmod may not play well with other overlays
|
||||
build_contrib_module "lastmod" "lastmod.c" "lastmod"
|
||||
build_contrib_module "noopsrch" "noopsrch.c" "noopsrch"
|
||||
build_contrib_module "nops" "nops.c" "nops-overlay"
|
||||
#build_contrib_module "nops" "nops.c" "nops-overlay" https://bugs.gentoo.org/641576
|
||||
#build_contrib_module "nssov" "nssov.c" "nssov-overlay" RESO:LATER
|
||||
build_contrib_module "trace" "trace.c" "trace"
|
||||
popd &>/dev/null || die
|
||||
# build slapi-plugins
|
||||
cd "${S}/contrib/slapi-plugins/addrdnvalues" || die
|
||||
pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
|
||||
einfo "Building contrib-module: addrdnvalues plugin"
|
||||
"${CC}" -shared \
|
||||
-I"${BUILD_DIR}"/include \
|
||||
@ -693,21 +717,20 @@ multilib_src_compile() {
|
||||
${LDFLAGS} \
|
||||
-o libaddrdnvalues-plugin.so \
|
||||
addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
|
||||
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if multilib_is_native_abi; then
|
||||
cd tests || die
|
||||
emake tests || die "make tests failed"
|
||||
emake tests
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local lt="${BUILD_DIR}/libtool"
|
||||
emake DESTDIR="${D}" SHELL="${EPREFIX}"/bin/bash install
|
||||
use static-libs || prune_libtool_files --all
|
||||
|
||||
if ! use minimal && multilib_is_native_abi; then
|
||||
# openldap modules go here
|
||||
@ -724,42 +747,40 @@ multilib_src_install() {
|
||||
echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
|
||||
|
||||
# use our config
|
||||
rm "${ED}"etc/openldap/slapd.conf
|
||||
rm "${ED}"/etc/openldap/slapd.conf
|
||||
insinto /etc/openldap
|
||||
newins "${FILESDIR}"/${PN}-2.4.40-slapd-conf slapd.conf
|
||||
configfile="${ED}"etc/openldap/slapd.conf
|
||||
configfile="${ED}"/etc/openldap/slapd.conf
|
||||
|
||||
# populate with built backends
|
||||
ebegin "populate config with built backends"
|
||||
for x in "${ED}"usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
|
||||
einfo "Adding $(basename ${x})"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}"
|
||||
sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
|
||||
done
|
||||
sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" -i "${configfile}"
|
||||
use prefix || fowners root:ldap /etc/openldap/slapd.conf
|
||||
fperms 0640 /etc/openldap/slapd.conf
|
||||
cp "${configfile}" "${configfile}".default
|
||||
cp "${configfile}" "${configfile}".default || die
|
||||
eend
|
||||
|
||||
# install our own init scripts and systemd unit files
|
||||
einfo "Install init scripts"
|
||||
newinitd "${FILESDIR}"/slapd-initd-2.4.40-r2 slapd
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
|
||||
doinitd "${T}"/slapd
|
||||
newconfd "${FILESDIR}"/slapd-confd-2.4.28-r1 slapd
|
||||
|
||||
einfo "Install systemd service"
|
||||
systemd_dounit "${FILESDIR}"/slapd.service
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd.service > "${T}"/slapd.service || die
|
||||
systemd_dounit "${T}"/slapd.service
|
||||
systemd_install_serviced "${FILESDIR}"/slapd.service.conf
|
||||
systemd_newtmpfilesd "${FILESDIR}"/slapd.tmpfilesd slapd.conf
|
||||
|
||||
if [[ $(get_libdir) != lib ]]; then
|
||||
sed -e "s,/usr/lib/,/usr/$(get_libdir)/," -i \
|
||||
"${ED}"/etc/init.d/slapd \
|
||||
"${ED}"/usr/lib/systemd/system/slapd.service || die
|
||||
fi
|
||||
# If built without SLP, we don't need to be before avahi
|
||||
use slp \
|
||||
|| sed -i \
|
||||
sed -i \
|
||||
-e '/before/{s/avahi-daemon//g}' \
|
||||
"${ED}"etc/init.d/slapd
|
||||
"${ED}"/etc/init.d/slapd \
|
||||
|| die
|
||||
|
||||
if use cxx ; then
|
||||
einfo "Install the ldapc++ library"
|
||||
@ -792,7 +813,7 @@ multilib_src_install() {
|
||||
for l in */*.la */*/*.la; do
|
||||
[[ -e ${l} ]] || continue
|
||||
"${lt}" --mode=install cp ${l} \
|
||||
"${ED}"usr/$(get_libdir)/openldap/openldap || \
|
||||
"${ED}"/usr/$(get_libdir)/openldap/openldap || \
|
||||
die "installing ${l} failed"
|
||||
done
|
||||
|
||||
@ -822,6 +843,10 @@ multilib_src_install() {
|
||||
dosbin "${S}"/contrib/slapd-tools/statslog
|
||||
newdoc "${S}"/contrib/slapd-tools/README README.statslog
|
||||
fi
|
||||
|
||||
if ! use static-libs ; then
|
||||
find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
@ -845,7 +870,7 @@ pkg_postinst() {
|
||||
# and a misconfiguration if multiple machines use the same key and cert.
|
||||
if use ssl; then
|
||||
install_cert /etc/openldap/ssl/ldap
|
||||
use prefix || chown ldap:ldap "${EROOT}"etc/openldap/ssl/ldap.*
|
||||
use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
|
||||
ewarn "add 'TLS_REQCERT allow' if you want to use them."
|
||||
@ -860,17 +885,19 @@ pkg_postinst() {
|
||||
fi
|
||||
|
||||
# These lines force the permissions of various content to be correct
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/run/openldap
|
||||
chmod 0755 "${EROOT}"var/run/openldap
|
||||
use prefix || chown root:ldap "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${EROOT}"etc/openldap/slapd.conf{,.default}
|
||||
use prefix || chown ldap:ldap "${EROOT}"var/lib/openldap-data
|
||||
if [[ -d "${EROOT}"/var/run/openldap ]]; then
|
||||
use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
|
||||
chmod 0755 "${EROOT}"/var/run/openldap || die
|
||||
fi
|
||||
use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
|
||||
chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
|
||||
use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
|
||||
fi
|
||||
|
||||
if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
|
||||
elog "Getting started using OpenLDAP? There is some documentation available:"
|
||||
elog "Gentoo Guide to OpenLDAP Authentication"
|
||||
elog "(https://www.gentoo.org/doc/en/ldap-howto.xml)"
|
||||
elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
|
||||
elog "---"
|
||||
elog "An example file for tuning BDB backends with openldap is"
|
||||
elog "DB_CONFIG.fast.example in /usr/share/doc/${PF}/"
|
||||
Loading…
x
Reference in New Issue
Block a user