summaryrefslogtreecommitdiff
path: root/net-nds/openldap
diff options
context:
space:
mode:
Diffstat (limited to 'net-nds/openldap')
-rw-r--r--net-nds/openldap/Manifest46
-rw-r--r--net-nds/openldap/files/openldap-2.2.14-perlthreadsfix.patch11
-rw-r--r--net-nds/openldap/files/openldap-2.4.11-libldap_r.patch10
-rw-r--r--net-nds/openldap/files/openldap-2.4.15-ppolicy.patch12
-rw-r--r--net-nds/openldap/files/openldap-2.4.17-gcc44.patch10
-rw-r--r--net-nds/openldap/files/openldap-2.4.28-gnutls-gcrypt.patch11
-rw-r--r--net-nds/openldap/files/openldap-2.4.31-gcc47.patch16
-rw-r--r--net-nds/openldap/files/openldap-2.4.35-contrib-samba4.patch37
-rw-r--r--net-nds/openldap/files/openldap-2.4.35-contrib-smbk5pwd.patch47
-rw-r--r--net-nds/openldap/files/openldap-2.4.40-slapd-conf64
-rw-r--r--net-nds/openldap/files/openldap-2.4.42-mdb-unbundle.patch136
-rw-r--r--net-nds/openldap/files/openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch109
-rw-r--r--net-nds/openldap/files/openldap-2.4.47-warnings.patch35
-rw-r--r--net-nds/openldap/files/openldap-2.4.59-atexit-fix.patch60
-rw-r--r--net-nds/openldap/files/openldap-2.4.59-implicit-function.patch41
-rw-r--r--net-nds/openldap/files/openldap-2.4.6-evolution-ntlm.patch189
-rw-r--r--net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch12
-rw-r--r--net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.patch15
-rw-r--r--net-nds/openldap/files/openldap-2.6.4-clang16.patch234
-rw-r--r--net-nds/openldap/files/openldap-2.6.4-libressl.patch38
-rw-r--r--net-nds/openldap/files/openldap-2.6.6-fix-type-mismatch-lloadd.patch42
-rw-r--r--net-nds/openldap/files/openldap-2.6.x-slapd-pointer-types.patch71
-rw-r--r--net-nds/openldap/files/slapd-confd-2.4.28-r126
-rw-r--r--net-nds/openldap/openldap-2.4.59-r2.ebuild909
-rw-r--r--net-nds/openldap/openldap-2.4.59-r3.ebuild936
-rw-r--r--net-nds/openldap/openldap-2.5.14.ebuild864
-rw-r--r--net-nds/openldap/openldap-2.5.18.ebuild875
-rw-r--r--net-nds/openldap/openldap-2.5.19.ebuild (renamed from net-nds/openldap/openldap-2.5.16.ebuild)72
-rw-r--r--net-nds/openldap/openldap-2.6.4-r3.ebuild867
-rw-r--r--net-nds/openldap/openldap-2.6.4-r4.ebuild870
-rw-r--r--net-nds/openldap/openldap-2.6.6-r2.ebuild874
-rw-r--r--net-nds/openldap/openldap-2.6.6-r3.ebuild877
-rw-r--r--net-nds/openldap/openldap-2.6.8-r1.ebuild11
-rw-r--r--net-nds/openldap/openldap-2.6.9.ebuild (renamed from net-nds/openldap/openldap-2.6.8.ebuild)34
34 files changed, 92 insertions, 8369 deletions
diff --git a/net-nds/openldap/Manifest b/net-nds/openldap/Manifest
index e3e52f49f7ee..53859698ce17 100644
--- a/net-nds/openldap/Manifest
+++ b/net-nds/openldap/Manifest
@@ -1,55 +1,25 @@
AUX DB_CONFIG.fast.example 746 BLAKE2B daae97e8183c6e7315163873b2911aa544004b63b41a79c11c7c015fdfcf9347e43dbb4765a41cace57b4095c90f68812570b2a7e6350abafee44d1581cb4a0e SHA512 07199416b7c91864a1dd5ad45642367c4f79ee8b694214305289c47afb5b53420f0fb81cf7c8b117400c903535e88a2dd47bda28d57e969aeeec669debf6dc9e
-AUX openldap-2.2.14-perlthreadsfix.patch 391 BLAKE2B 6e1f89b6b50e01f1b4f4a9722867f29a0102f2bc6644e641621d1bd808f81e9eed08beafab409dd28be0f92d62476affd1688c4c9666f36641d0102a396b36b9 SHA512 b023ccf993087f53b7f37c4b214cf8a01a4d6ecda1868b49e3ae4b58806b344fc45e3e8e86b6679b237687930077c02d35a4acdbfc04f94bb0f7e999dfb8d987
-AUX openldap-2.4.11-libldap_r.patch 298 BLAKE2B 62c660e8910c6628bd52a14fa15de54f26c33dc5d515d904dbe8054d223629d5a314428f5ca0ce645d6dbc14c8f9dcd18a00a578e3c91016a3dcf954a9e00316 SHA512 28e50bfb412a5f722dde77cc430f6e3b9a0d033ddd0fbec18d3d0684ed5dbecb78ebd3ae15c6ec8c656ea1d3a102ba6da426bfc200904c1c11740215efefd976
-AUX openldap-2.4.15-ppolicy.patch 313 BLAKE2B 15b72e0cce56e33bdddefff60f470c3d2a0d104509095187a1aa45b074e60e2a4497e6931d01bd5e8dce6eba5b7eaa8438269491da33dec33d1795fed9dbd74f SHA512 4d0999248197ec5344b3eb01357b5973ab2ca7ab23d434d87af55893ae0cf83d46256b2fd2a8b6ad4e7a17a4277215acafbeaee2fd5e0b505d17c7b2358b337e
-AUX openldap-2.4.17-gcc44.patch 264 BLAKE2B bf9638b0854616733bfcefbf508b93b64d9b97b4334d4f28c86c18b534f5a235d7d33378e563d484f2e8dc53e85d54e8083075ae2beef38e923e58839bad0b2e SHA512 b81f063f517d53312cba57e54b193bf6a49f18fd6ea183aa0a04347b28f3ce2174554162b9fb707e5b3ff7c52667190ad2209d3ac5c03652e696e3350f1b3884
AUX openldap-2.4.28-fix-dash.patch 1030 BLAKE2B f8ddd33aef457c30625c6867b37a371069dd76db3a4f840a903c048ce65a184b4844a9fba5edb8c0399cd78b2f10d718fad943ebe4930a8a6a3597a7be818340 SHA512 a0b5ed4c899b0eaafd2ce9daf0fd629e6da077e6776f065523d2b2009d47753cd487e0e23f0f3ab659fbd967550d4690e158cb30857bc6da1f79e367ff17c000
-AUX openldap-2.4.28-gnutls-gcrypt.patch 235 BLAKE2B 32336abf2271224c5c9519f171b67245cda102b699082afaf34fba6435948b6afa1500041dbddd0092160205be2eefedc2c0b66de58dd0faa48413aa301fdae3 SHA512 a183cc468243c017c9fcd47a0a56914d7ad679f26150b47d8c6515fd67956655e73b8bf776073c024f55dd12312420d1b69a922f473fa07e7b36388c5a1cc30d
-AUX openldap-2.4.31-gcc47.patch 480 BLAKE2B 37490a10d224819b1407306a130fc9b2e0308e7e67f431edfec98961f63e675c19e17cdce53888d63ddfda7a17afed836536e757bea340a90ee0dd77d7f2296d SHA512 a35113fe3f5e9ae5b9631976415df41d53a99ae1ca4c4dcdcfd89e6ccc6ba906cf5cfe2ee4901033dba29d62b6607d4a93ca74645eb6ceba38e67c5d8521816a
-AUX openldap-2.4.35-contrib-samba4.patch 1171 BLAKE2B cfdada40098cf3efe34ae49bcb65bd47a771f5b48b4d6a4e99097bd819dd29cef91ffbd9edfa69aa6a70d73a36c1648675d20756286515cb35333bb886798901 SHA512 e3bc2d3ca119e8d7c1847c8c316f6820e54dad0d82f4b9216f519a3605830fdd9d6de7746eb4ec7ee4082a7c3fa617ea2ffc5203a10fd5d4d3c6d10086812e2b
-AUX openldap-2.4.35-contrib-smbk5pwd.patch 1393 BLAKE2B ef7dec06575be6187068923413f19f359341fc95e97bbbe2644367c31ea7117d5fa6eca533e75edca7bfc580365bfa01870ca93c2bd9eeb78ef89895503bd464 SHA512 3866687bf108fdd24e168f4e99d5f67f88bc95e3ebd443e2c651d0938eff1f77057a3f7bbda581ff4f36e1ccd85a330622c545278a2a47d81a9640272a116861
-AUX openldap-2.4.40-slapd-conf 2059 BLAKE2B bc80677203c52304fd302288ea33face5b05504bcc8f98b202db3251b9cc85047db5a72f9596d51206e946298652bd1f277c1494bfae2f64d2b9bc4b7771e681 SHA512 7ce8a8262db74d86449a3d31b96b2efa9e8dae2f9992a1c3a6d6899fb65531eaf917f410d8728852cb74338d7ba3c8c3b52d2f6cdcbba4cb3b97f6c733099fa2
-AUX openldap-2.4.42-mdb-unbundle.patch 3286 BLAKE2B 9b960633b7e84e45dd7a69aea10575b047f0e2a0bd77b733f7aa00d266ac803dfa7075f3ae67ebeb54e1f2d1dca8c62e0e2ebcc2a40644c896d043607fbfe57b SHA512 c3550a272d94f7f69d7bd6aa55fd0b9a9474082e1574fd1d30fb02fa115e8455ad35d38483bfc94765f0edec38f37d65cec66fc8aa5711ab9f91b358ff95cfbc
-AUX openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch 3437 BLAKE2B 56f1fbf6385f94ec7e34cf74e6d8d2c0c5a9e0b36202f8d812327e083fcd04df6244bf725ca7efc8b44bc32af62b14830d8c48a43ce5c18544b0c2cc405304a4 SHA512 11f72cdc20dc3a1d30eda401d0f3932a00527b49f487fc82952c283c91d58025def006704145d8b329b7ff9d005d5c6201e2283b0d369f72d9a147d1ce616ad4
-AUX openldap-2.4.47-warnings.patch 817 BLAKE2B d8bbbc8c2d10f38ab75e977a1fa4b55ceb51dbef91a95c65475bc0c58001f742b29dbdcb1698cca35dcd192f7108f1d3617ba1e7848246a47b872fb9eb472451 SHA512 55441e3058a348038e14106cba3a55e809553ad288e6387a19a39bb24ad080820c4d616a732af4e7e72f680b60fea6570e50041fddc2871f14dc035d68073628
-AUX openldap-2.4.59-atexit-fix.patch 1910 BLAKE2B c14f93b8d1af850be1c3d6e2382e4eeb59420bc793a0c583009a29bf5f2be1dea3920ad4b54d1e77c2f41e2eabf24e7f46468a557aab310b58f8418b38f2d512 SHA512 212f47c6c001780b1d0bfd5ed87dc21d9d0b104206d96bed6b64f39fe6f543e321b081d9df61e52a43c88981544beb399fbe06385dd06fb1d4860272b3ece9d9
-AUX openldap-2.4.59-implicit-function.patch 1684 BLAKE2B 2651dad3d6d7f7ace86129684e218c28780ad48a25326b50f9339f64bc8d102f53a13f728c952943408fccfdf3c34712283b16b8e9020cd43c9bbce85dd32c37 SHA512 2eecefd6813d42834f7a48b594de32aae82893e7c9a3b59a82856618f33506e75bfbfcf58588e69f585ef62d6da612f2464c07804974c575acc23f08b0413fef
-AUX openldap-2.4.6-evolution-ntlm.patch 4543 BLAKE2B 079c78b2608b3e5b4a69c7ee2ef9087445e7b17e4655929affc9511a035640f13f21d9320a2b8091fc5c9bd678654c656776cb9cd7129264bae0be03a79d649d SHA512 e79ac437f7dcffec19d99bb74dbc788a35b2800e82ee7411dca0576c4920d305142ac83f1d3b7c3227c50f20a899399f76c5cf4111c4fb756153ffb323f40c9c
+AUX openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch 504 BLAKE2B f59b3ef9f1919fb6f81e3c685e5d113fd913bbf96aa8e8dcff839edc5d5d705087a375abfae9b3d938c6e970adecb0b115f39bae0ea884c5c5617d7f4c13d922 SHA512 1bf08d45be2e9d507f42b719c90d1e64dcc734d3c1c96dd56128cf2325d56cbf648a47fc90598721d049de4d7a883b73e327576a40d3bd2b8165343ba7212209
AUX openldap-2.6.1-cloak.patch 464 BLAKE2B 5e2860123f340f172a2cc686f9d149d38976a4c2753c95342b02c2d3a6670e039f1fa039187d7d1fa8588271505a416a4a4c2352cd56482033132b7677885cfc SHA512 fe056bc36f9eaa6d309daede0264e32daa71dc599cc3393c5e3dff17ba78f6d7e17b3c126c623d6f1bf8a4616d5844f9ecf8437ed1169e237bfa44ad6d8c0f80
-AUX openldap-2.6.1-fix-missing-mapping.patch 458 BLAKE2B f0137f614b7fe07f80ae5ec7f2be8c08643166fe69358cba174e9d4c8c0c3e94e6901e1a75eb2d85ad62876234223b877ca1a2f689dc154985c591a8bb2f8872 SHA512 4083b99cb97f8511a9f44c8e0b6c63cffb351b20d50e5ebecb1e73b0a1441e6449db21c1af2f43112db365d193d4395a814cf7afcac730ae7a04f260370c9d0c
AUX openldap-2.6.1-fix-missing-mapping.v2.patch 1913 BLAKE2B a9db95f35df9745eb2de95b7082ec2b5ed19a2d1ca84ba6f99d726b0e2859e5c2273ce7b57292fe5b56e6b1c54c6bec3ac0ad9bb49e45103b83350d551ce89ae SHA512 932d8ca9754ef895bb8eae60352f6e2ab277b1e5603f031f31828641a8135c3ba78c3e151eadb3934fbc258832dfcb87e13015ad96fe26518fbfff1904e9225c
AUX openldap-2.6.1-flags.patch 10275 BLAKE2B 0c851a90dd2befe44d0671782676b8692ccb027ccbee2e52989a409b70fa8e917f26452bc6838e04111c6479bfa49fa138140cccec82026b53c6a0a23aac7f73 SHA512 a068987ee75de99e442d279bd3789f401e31342cac0cd699b0b06f9c3ccb51381ff7f947b339db1ee2330ed7d00e4ba5d1f56ba12824eac31e0d4cb8a605ae9a
AUX openldap-2.6.1-system-mdb.patch 3679 BLAKE2B 9d9eb3dad904564cb453424743091c471ba52ea8fa6c98b4138f068d2b6d57eb7a3ce903df1ee9eb7bae0219cc762cff8dc1f10515c376c40e2ff9b7d25d44a2 SHA512 fc1d17e57b9596b4e744272f0e28400fbaeafe6fe6de8e050be8b934f4e4f977637e6b8ca9f43255f2b59f9640a70b4c9ff91b2f741850c5f1d04d5c34cdc34c
AUX openldap-2.6.3-slapd-conf 2059 BLAKE2B 3a9a5f22e450c37625f9718dd7467f721fb9046792499563652933221a5a6e56577a487fc6c3b7336ce45b5b5ca6cab82f073c7f61b7493d0f8323b296a84d8d SHA512 76ac3d22389d2da94dec8e712ec8073d9ba8be4df69ae2443883ce8b5b24757b0999f756a14ea57cb9566d8dbf94859a239efabe990febb347b794ba5070914d
-AUX openldap-2.6.4-clang16.patch 6953 BLAKE2B f347857252d857c4d1d54a0be3a1d68fc33c3ab78645c29161e212976cc9e28aa0d46812ac87a0aa23a55612c30fe49f72cfe9c31c71e6ba7ed84c80cc202018 SHA512 7c84fe7841440d00925fcf08ffb9e6ef10d5626aeb9d24b794e59281a15e5a6da0d4a9939db860011402b8aef8bc34bc6a9c643806098f2453da64fb62e74e70
-AUX openldap-2.6.4-libressl.patch 1590 BLAKE2B 3af178ceb4d6eb5792f4fe160d42b2fa2e662d8158ff98e93bd91fa0aaa73cca20277da907129e4c2124ae4e11021a0cbc53de1cd5308ef76c8e2ac26850a5df SHA512 674b08b5e4db1216b94d51b2c973f5cd8607c5a8aefcbdf5f25b6e210a071089ea9896deb59151e0cad5a73d002f88a75179f381a8b611473035a7207fe0bbee
-AUX openldap-2.6.6-fix-type-mismatch-lloadd.patch 1257 BLAKE2B 863ff388cd149953048a8ca6c1c82cde1ed72ce08b534ba8503ca83f85fb80af6510b6e6e97a0082cd6480283c650a550e1b3bc8e27f47658c73d0007223d142 SHA512 e4d2583a3948c6b8474692c3adb4404c35423f82af692c5e7ea762ffbcf8b8d9c35468fe05f54f0d4f9dc6ac47de6838335a514a85a89f87f14ed700661538bb
AUX openldap-2.6.x-gnutls-pointer-error.patch 1776 BLAKE2B 5be8d7a9f492d8c8019fabd81373823f16f5438c2ba2be1ecc8dd48f6f8610e5cac03de7e5ddc4350c0262187daac454d7eb1d5f34fc08fb02e5b04f5883721a SHA512 75c41a6180ab8a5cf22f63efd637728dad90c772b57f8e7744416fdaba1bcc8e6f14938c6d49839e6ea6f5e8acd4d8b4debde451e269cbec55a12791c64d33a0
-AUX openldap-2.6.x-slapd-pointer-types.patch 2628 BLAKE2B 28eb35a0b6a02f4a272da0f93aa5f656b4d071a1d1db7b64c1100a838da59d5a5a292702b594e5ecf561c1a5ebbf8a86d333de47db7972dc7a4dc5de10334b7f SHA512 3c49c88d22b3d1c43219bc07d7538cb391d7a47e958959e900126ca3f3f40986e690496c12780a080c8833ff78c6f95ab74f7e4cb08e5b796ef5c1cee0f2c776
AUX slapd-2.6.1.service 300 BLAKE2B 2d634f91f7f7c69894641b145bb280a1df8ac05d23eae64100c21470065c1347c7a7c8ab72f93083ff1151fe69b75be2a5f93bdc1a9a0776582fecf2b8169039 SHA512 c3833a61be028ddb9de8dbc66cff5651cbc2ed88e1b414965476862b6a223b91d20b773c9323f0c62cd690ecb9b0e6314f3eb37b2255f89f20d303a5025323b5
-AUX slapd-confd-2.4.28-r1 1072 BLAKE2B 9d4cef3614164e09e27cc681a2d37c126da6666715b1f3092751d036b42c70bb73f3b6cc51defac791c3f8e63e250d8c9d946ef0b84bc8e38c1504ac7ea239a4 SHA512 7426c04ee689bcfb29a9a3956367c571eac6bc9620efda938591d09382a05527454458f7a25bdc2fa2ac920f93bae516121e085408ffefbe8ace0c7d8c5da315
AUX slapd-confd-2.6.1 1060 BLAKE2B 06f5f0e7b87eb4962f8413f3f5ea21a29b4e8174c016420c5f8c00bf6deb1b27929175a5cb8dc2db272147154ddb6006a2cf7ac5ee07a9652e047f23603923c7 SHA512 79d332fec5e6539106ae9f457194c31ede99e682f6cac89512d76c0f5831a7cbd01de5ea05ced4228f581ba1327091eaf5209fdbeeddb5048c6ca6ba7c5b38d5
AUX slapd-initd-2.4.40-r2 1725 BLAKE2B 7fc04e889726b619f3eb29984c3fcfc88d74b216b546f5bc3a470da11afd4778c0b0c0e2491e9aa375bb0d4dba43a0caf4e13755399af01aa64f813464f96302 SHA512 1fd458da28034eb1c6287fc291f40a546f136abe4fcfba4c27311ba1f92b0c29eee6f097ee6e4285dfc5a23e4ee3edbdc4eea8811b1b2c4fada666d30b95d1c3
AUX slapd.service 284 BLAKE2B 27e3863a8b0e854e5b6b1efce50da624acbfe0d2416af1eedfbc225b5e8307f79441bb4b9afddc7736857a8fd289db65e04e297e314cad48996ab6e3ecca43f6 SHA512 450c93b320101e1c28681cad6694c24332fbe424ac98283b621a2f6e1eb01e9e2dbd80a4142e6e8d01d95c55018b44e847d4f4c55f11d7e0e0a11ae1827daa82
AUX slapd.service.conf 443 BLAKE2B 7cf9d3935ea100006fe4f8667b792d32627c933c72220a91e4d9bf99fab4af9c590834f9aaed57d80eadd2fdf75e49f55739ef6027d11f012f8da3a711707c27 SHA512 be9cf4bf19111bd77c0ce481428e6f3cc183a6939775ed1a2d7606a5162da34178cb139d666288f6a35b8413bd4dc5f8f1bd60b39f3cca8f749557674b93910b
AUX slapd.tmpfilesd 90 BLAKE2B f9cdde975b45c61c18773e4a3b30e3cb3c2a7d979bfef6d0513cd33ee5d31acdbe19c0af72a6478576acfaa88a2f063213cb9fd3025f4dda6ac401a8b9488719 SHA512 c462c92911635a2a6a30eb7239e74b529062224f9798351f53dca9a2e25cbc7f9fbb3743f98a015b7ccac0823ab85adb42d91d980f053bc3f12fdce760ce4bec
-DIST openldap-2.4.59.tgz 5886272 BLAKE2B a2a8bed1d2af97fd41d651668152fd4740871bc5a8abf4b50390839228af82ac103346b3500ae0f8dd31b708acabb30435b90cd48dfafe510e648df5150d96b8 SHA512 233459ab446da6e107a7fc4ecd5668d6b08c11a11359ee76449550393e8f586a29b59d7ae09a050a1fca4fcf388ea61438ef60831b3ae802d92c048365ae3968
-DIST openldap-OPENLDAP_REL_ENG_2_5_14.tar.bz2 5024359 BLAKE2B ffdffbd47e76545c2dc2d433d290945ab6eebd910031a60249cd8f6eac24f67841098e61c7e57864428e20a183a46d36dac422bba8cf6f3596f97439875af96b SHA512 abd1e8bda0762500db028f283fe2da9480a419072927295d6f3e1448cae130592511f385a87585843cf88217417c90ef57174ca919cfcf163eb41642a72bb4e3
-DIST openldap-OPENLDAP_REL_ENG_2_5_16.tar.bz2 5022608 BLAKE2B 829e416e3cf92d36df0d6642e44083f9b288ef9c3743a84aef3f03cdf7b08b21ea45231653a2659fe0da285ca47a346d336d02c8e0dda21f039fb9e49630262b SHA512 629b92e275b69a540b200e61165492a4706afdf7b15d21bfe2f1fd4c338ecf397ad0c918e36dcef54d1f0cede2f039a8f73d4735f00e892d64ce9a177d490a07
-DIST openldap-OPENLDAP_REL_ENG_2_5_18.tar.bz2 5026131 BLAKE2B 0f1a00995bd880b3ee42c4de2c3a405ebb7969de253f4b3866eb46c1856b61539ed7e1133a1b11636efc1da1ed5fc6cae53da60b22ab31486518000d34ff6324 SHA512 77a84950c905d2a4bd25f93108eb79f1416689176531246f12b4c3f6e8e3fe689504cd3f9875142e9bf665306a622ac8fe7e6b39aa4be67099f0965a16634526
-DIST openldap-OPENLDAP_REL_ENG_2_6_4.tar.bz2 5043227 BLAKE2B 9bec77dbace0e52d1607d9ac13a77349e7d0b8876aa81fa635893638d00db58ec6bf8412f11fd266bba0440887be1aa21eb4a876122152f7f6de9fd8f75b6b4c SHA512 bff11bf1ae125bcabbd307f6c4e1c102a8df6f1091f84f5e7053fdbaa89ccd6aa0c86cc8dcce4fb9b6ffd853b5f8d3c933733f5713aeb4d6a9d77ab145293b48
-DIST openldap-OPENLDAP_REL_ENG_2_6_6.tar.bz2 5040213 BLAKE2B 2497b6698344674a9e8db5f2f2531541167065bb8ac9f512ecdb9349115140d5e83daef9b489e244eee08445de57599ddcfeeed71d4aab41edc58a3092910925 SHA512 3c235ff7b26f753afeb0176e95ecbf6a353bf76f00935c091323366bf97289f628d4d7b4ae3e2a31fe0797715d6c69e6704967dc79ccbae7add3023e226ad73b
+DIST openldap-2.5.19.tgz 6458108 BLAKE2B f1cea685c6bc7691cb77b2a12be74b56d479bb152d4c97e87d2e0de8767d33a277557c3ca291928abb0b62d986fcd474969c9618fa499dd9202cdaac39b3b3ce SHA512 12838fd5ac93b18fabda14e8f55c59d1bba169a114c59ac81e621f09f407d87e8ef9244aae951d984b8c8971f4c907c385e57ead671ea0a434282f7d616358b9
+DIST openldap-2.5.19.tgz.asc 833 BLAKE2B 3d56134d65de1ae7a2e4e7d4c44d5fd166fdca136f8580897fedb26dc195b0730dbb7502a6cbe1b8991857a725bedb0398e703d933166459b39d16265c143ff8 SHA512 d322a61f1872062f5594091455bd0d2ecbe1741db5852d4ee5c9c77b162c5ee0750de33dc56cd87b4bdbcc954121cebf2dd39eeedd9bdcc9b39821e44ceeff09
+DIST openldap-2.6.9.tgz 6516669 BLAKE2B b86ee6cf275632a4c963d33c6ceb1a4eef4611a5e678e6369458c6b70d5251ee4d299a941c9a42241855996dc81b55c8aef09e92da46f19766e5501bf0355aba SHA512 d3f839d3cf1030caa410e54f968e9c0caf3bc371c06ea0f64cf3a6ece6d31013c9dbfb08a3a63ea9137a2062aa6edc6e0bc542b365fe4ad66608df4cdbe94a4e
+DIST openldap-2.6.9.tgz.asc 833 BLAKE2B 781ecffc73d79829658e9796040e71245fbdd0cd6b68311318d9c9acc84694acd4c365806c1e08bfe137fd4f32ffca04d3ea2d2528a275eae7b3fb7df6475d79 SHA512 c5a477b69e14b6b951c4bd6bc124538d79bd0a6b321f37fec99483a8310c64db285993aafc9adebe7f252a67d198e0c5993e6c25156ee51c4311f4ae6ff53268
DIST openldap-OPENLDAP_REL_ENG_2_6_8.tar.bz2 5065637 BLAKE2B d55345c11bd8892a594c3f7114cd1368e017c2e29997da7a80bdd915308d498f62dfb5cc3a3360b50df78ef5f90a48a566a8ce3ace85ebf9aa6b288a37c4eff2 SHA512 556d1377afc73a84ee325c4d7bcc8446def936b67d3f07df4bd2a243ff30f268c5c0c298977482df1e1a86b2b7a0cd7846fc1f51d706748d39f67f5d621ccc04
DIST rfc2307bis.schema-20140524 12262 BLAKE2B 98031f49e9bde1e4821e637af3382364d8344ed7017649686a088070d96a632dffa6c661552352656b1b159c0fd962965580069a64c7f3d5bb6a3ed75f60fd99 SHA512 83b89a1deeefc8566b97e7e865b9b6d04541099cbdf719e24538a7d27d61b6209e87ab9003a9f140bd9afd018ec569e71721e3a24090e1902c8b6659d2ba103e
-EBUILD openldap-2.4.59-r2.ebuild 29112 BLAKE2B 5e514b55e8dedfbcf42381111520e56610d018da961f03f7d4ea62834d21467917b8353928761d965daf9f4b3fd82c68befaab41bb72fae04ba0855bc1018b06 SHA512 d76c163f28478810c8051ac3da8cc26b752913dd912fe8e6c089f1416b9e94685240c9e2855bd1e052aa1e569d7d37da565a55b98d185104fe4240bf550e0cf6
-EBUILD openldap-2.4.59-r3.ebuild 30186 BLAKE2B a3a84366a45f3fd0c8d685b97b2e6342e7ff7772c9049ac5e8a54791e6b8ba53b5cf0c57cbd6e8448816659589cd377a2157a6f65edffcb5822b80b16fe219bd SHA512 4a44488466450af83c54727f683713833e97933bcc4b95b40d6f87aa49308f88875de3faa0d10c877f64e303703136422cc70f063cd4bc27c675b42b7007bbe0
-EBUILD openldap-2.5.14.ebuild 27654 BLAKE2B 3bee47dc90eb1c8ed9a33569b1fe39fdda5d64071bf75bdf3e86a731a45e2d160beb6eff416374203a7a92c1d1a4b2291f54f4ffdbf318c618687534c396890a SHA512 60c55b79f78b29f895b304c56a42f9d80375bc3732112473e07b72ac5ff4d88c83f8e98b6578b8f962184d4c5bbd1a1e2f5fc68e660600ddd528d2dea0c3294e
-EBUILD openldap-2.5.16.ebuild 27574 BLAKE2B 33a1c5e795a0d880c5e0da9168a3fe355bd6f29de6b270162c299a385a5af22c007eac3b87913cbbcafd06efbdebb3b3bfe2341537dad65a4a30bb40a6377e26 SHA512 dcb2428d3ca726a7d03ada783bf599ca192722098edd2fb89a24ccb3d1c492710febe48b8d93387f9ae43a40e715f278f5a14bf221b5941c0e95432c89bc018a
-EBUILD openldap-2.5.18.ebuild 28312 BLAKE2B d948b15ba916c4206ad6ff4d0b5e004520e6723b29df41593f9fbd2d016bfe851c681225e81aca676ed73eb2361b202c60b544f21efc9aa9a05e676312546440 SHA512 421d0b897ffcf6264ba474aac29a2d828df3c2ee7827d7b07dbd6fc33d18c2c00ebef0f8b6fdcef5d6dc453e578c896b379a2183847cfb5add3746872e50c8a0
-EBUILD openldap-2.6.4-r3.ebuild 27818 BLAKE2B 6c563a0902a144eeb8f4711f613a4f9a9222987147b48fdfafbb0fc7d7c9e0861df59b1f03e18ce72234ff7bd98e24cf57b2f3bb89c19c2c5c1ccee9f2ed5035 SHA512 9012665473eba5a979fa0b343ba81d9d892504e98b136a759d542363399f2bd215fe5bc239509f8e583b24b98955b293d52f470a42fe98644b39c286e6c7d9dc
-EBUILD openldap-2.6.4-r4.ebuild 27942 BLAKE2B 83c49f8cf2ea5c6742f3019bd4068a956568c888eb7746d0a0c9740aad84c423b103b1e677a41b7b492ebcbb1e1e76040d8dce7f68870f3c83826f976a814067 SHA512 2951d7cdcdef661ad0bd56c782afcec9b054935fc49b1aaa56abb4cbd47211305af0ac4784c7dae42dbb3f5d69ab55e9acf05e775615fc792be544fc4c2892e2
-EBUILD openldap-2.6.6-r2.ebuild 28008 BLAKE2B c25181cf3bb46ead453ec23c0a70634f16424a56fc4e1e2523c8391c63a7e80e08cf844490d544385986031928009d8e99f54e064fce3458205515cf0e94cd20 SHA512 2d8d09eb53015035fb11b786b50fb90fa08d5fd114a5cd79530a0389546eac397fa090e08ce3f115e171a62291dcf912199bdb25451d04eb9e2a8730dc6b4ac0
-EBUILD openldap-2.6.6-r3.ebuild 28120 BLAKE2B a44d51e61c04b34f4c9376e060c71abf8519793cec0032554de48f80a899aba386c66318f451a7fcdde082e986296ec48aa9c5fc45676495cea7600164a743ec SHA512 23663268cfcf580af3eb0f64ee2f4cdead0444a752fc48d660bfd8739fdb5821e7bfe19fb6fe57d66dfc32c4eaba0c1bddd787e31c8694800799da6666f61267
-EBUILD openldap-2.6.8-r1.ebuild 28569 BLAKE2B 2e1501a4ed0f83c8970c1a6465e3335f39978cc8cbd2be288fdf70af58748b0274e062673b48d7c637efb7694b037e082f43d6f55ecf2d1ade0e346e859aab7d SHA512 d0f5c9d4819642c2a54e5afa06c92d39267f6dfd987377981b92a92e16eb7f76bf0a4b2d293d5943ab255ee4742a498e2014d845e15ff468e90c5e057a8892b1
-EBUILD openldap-2.6.8.ebuild 28448 BLAKE2B 7aa849405d1d0e0d5f24ce6d9eb2d1ad886ef851f41b42894daf512f2606990dc410debd749f910a0237e59acca9fe9fc40a1d726d71600d62114be09005e1ff SHA512 03010edc26d1947d8e9c6f4060e2a0cee5953f21887a353e5603f397efb69412688063c2528ae26c0e144fa4dde12c5308d0f7a37b1ca39c237b2ad69c8a574e
+EBUILD openldap-2.5.19.ebuild 27944 BLAKE2B b39c10e0a40a6680b4fd9f3f8fabfaff305015641a783e46191c186148b34277927f0c9e7cd4fda1004c8207bdf08a1947012ed8af68ea9c4032cd8f1c5cec5a SHA512 ce500e14a3fe0266dbb9b84352491f0d48e249f2fe21e8aa5e92c4a98c23b64cd8e21cb696be19e9cc9f7bb1070aa5f7c36d2f6672d4880831b1421ceb363efb
+EBUILD openldap-2.6.8-r1.ebuild 28237 BLAKE2B 28ad5f203e636ae2095367c32d1089da32a35278106d7bd6dab9b64269c84e226105525ee6586d236e0b8a4d50cc913bb20c8757ba9627e65007baf5ac9a4e73 SHA512 84a08fe7af30f68ec77176afda929939aad5c442be58a04c71a4d6a7c2d039af0448552b9d2501d191d4cedb707c48d75aedf4c851fcd8c5e6b74c93fe19a84b
+EBUILD openldap-2.6.9.ebuild 28456 BLAKE2B c578ef441f9c8dead4781fb00f49a84e2adfff38b192389ddd633a5e0aedd2fb8a117e34df6356231eb61897fb1402ec6a64252fde08076c254e0dfc93b8f2d3 SHA512 9647964fd9f304bf19d468b2b2a8c96f0dcbb75a75584b2b271cfeb415283f59f5c5650247a2c93f9d265dc349c9a590ad00df10b61689b59584510c5a572bb7
MISC metadata.xml 1316 BLAKE2B 0635123aab1a5bed9a0da918501fc5e43affe0fbd0f83f8a7e42b0292f4d5ce8231bb9d5c343c67c1011c916e78d475398c1a744b11d6f7e041ac0caed35900e SHA512 818c412cd17d1c49c7f68452fb9e2715f4441a5ff85a4e27dcb7f264c1b4d89cfa46c9d9e506b087376224cd9839e040fe63ea4149323be5c7777b54ef81716d
diff --git a/net-nds/openldap/files/openldap-2.2.14-perlthreadsfix.patch b/net-nds/openldap/files/openldap-2.2.14-perlthreadsfix.patch
deleted file mode 100644
index 2a8c4bc569c8..000000000000
--- a/net-nds/openldap/files/openldap-2.2.14-perlthreadsfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/servers/slapd/back-perl/Makefile.in
-+++ b/servers/slapd/back-perl/Makefile.in
-@@ -31,7 +31,7 @@
-
- shared_LDAP_LIBS = $(LDAP_LIBLDAP_R_LA) $(LDAP_LIBLBER_LA)
- NT_LINK_LIBS = -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
--UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
-+UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS) `perl -MExtUtils::Embed -e ldopts`
-
- LIBBASE = back_perl
-
diff --git a/net-nds/openldap/files/openldap-2.4.11-libldap_r.patch b/net-nds/openldap/files/openldap-2.4.11-libldap_r.patch
deleted file mode 100644
index f63ad3cc8dff..000000000000
--- a/net-nds/openldap/files/openldap-2.4.11-libldap_r.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/servers/slapd/slapi/Makefile.in
-+++ b/servers/slapd/slapi/Makefile.in
-@@ -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)
diff --git a/net-nds/openldap/files/openldap-2.4.15-ppolicy.patch b/net-nds/openldap/files/openldap-2.4.15-ppolicy.patch
deleted file mode 100644
index 1196f1b936e8..000000000000
--- a/net-nds/openldap/files/openldap-2.4.15-ppolicy.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/clients/tools/common.c
-+++ b/clients/tools/common.c
-@@ -1315,8 +1315,8 @@
- int nsctrls = 0;
-
- #ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
-+ LDAPControl c;
- if ( ppolicy ) {
-- LDAPControl c;
- c.ldctl_oid = LDAP_CONTROL_PASSWORDPOLICYREQUEST;
- c.ldctl_value.bv_val = NULL;
- c.ldctl_value.bv_len = 0;
diff --git a/net-nds/openldap/files/openldap-2.4.17-gcc44.patch b/net-nds/openldap/files/openldap-2.4.17-gcc44.patch
deleted file mode 100644
index a782da46f3af..000000000000
--- a/net-nds/openldap/files/openldap-2.4.17-gcc44.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/contrib/ldapc++/src/SaslInteractionHandler.cpp
-+++ b/contrib/ldapc++/src/SaslInteractionHandler.cpp
-@@ -13,6 +13,7 @@
- #include <termios.h>
- #endif
-
-+#include <stdio.h>
- #include <string.h>
- #include "SaslInteractionHandler.h"
- #include "SaslInteraction.h"
diff --git a/net-nds/openldap/files/openldap-2.4.28-gnutls-gcrypt.patch b/net-nds/openldap/files/openldap-2.4.28-gnutls-gcrypt.patch
deleted file mode 100644
index 0d9b88f47627..000000000000
--- a/net-nds/openldap/files/openldap-2.4.28-gnutls-gcrypt.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.in
-+++ b/configure.in
-@@ -1214,7 +1214,7 @@
- ol_with_tls=gnutls
- ol_link_tls=yes
-
-- TLS_LIBS="-lgnutls"
-+ TLS_LIBS="-lgnutls -lgcrypt"
-
- AC_DEFINE(HAVE_GNUTLS, 1,
- [define if you have GNUtls])
diff --git a/net-nds/openldap/files/openldap-2.4.31-gcc47.patch b/net-nds/openldap/files/openldap-2.4.31-gcc47.patch
deleted file mode 100644
index 5b6af4b29564..000000000000
--- a/net-nds/openldap/files/openldap-2.4.31-gcc47.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix building with gcc-4.7
-
-https://bugs.gentoo.org/show_bug.cgi?id=420959
-http://www.openldap.org/its/index.cgi/Incoming?id=7304;page=16 #ITS 7304
-
-Patch written by Kacper Kowalik <xarthisius@gentoo.org>
---- a/contrib/ldapc++/src/SaslInteractionHandler.cpp
-+++ b/contrib/ldapc++/src/SaslInteractionHandler.cpp
-@@ -16,6 +16,7 @@
-
- #include <stdio.h>
- #include <string.h>
-+#include <unistd.h>
- #include "SaslInteractionHandler.h"
- #include "SaslInteraction.h"
- #include "debug.h"
diff --git a/net-nds/openldap/files/openldap-2.4.35-contrib-samba4.patch b/net-nds/openldap/files/openldap-2.4.35-contrib-samba4.patch
deleted file mode 100644
index 8ee3891f3cb6..000000000000
--- a/net-nds/openldap/files/openldap-2.4.35-contrib-samba4.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/contrib/slapd-modules/samba4/Makefile
-+++ b/contrib/slapd-modules/samba4/Makefile
-@@ -20,7 +20,8 @@
-
- LIBTOOL = $(LDAP_BUILD)/libtool
- CC = gcc
--OPT = -g -O2 -Wall
-+#OPT = -g -O2 -Wall
-+OPT = -Wall
- DEFS = -DSLAPD_OVER_RDNVAL=SLAPD_MOD_DYNAMIC \
- -DSLAPD_OVER_PGUID=SLAPD_MOD_DYNAMIC \
- -DSLAPD_OVER_VERNUM=SLAPD_MOD_DYNAMIC
-@@ -41,20 +42,20 @@
- .SUFFIXES: .c .o .lo
-
- .c.lo:
-- $(LIBTOOL) --mode=compile $(CC) $(OPT) $(DEFS) $(INCS) -c $<
-+ $(LIBTOOL) --mode=compile $(CC) $(OPT) $(CFLAGS) $(DEFS) $(INCS) -c $<
-
- all: $(PROGRAMS)
-
- pguid.la: pguid.lo
-- $(LIBTOOL) --mode=link $(CC) $(OPT) -version-info $(LTVER) \
-+ $(LIBTOOL) --mode=link $(CC) $(OPT) $(CFLAGS) -version-info $(LTVER) \
- -rpath $(moduledir) -module -o $@ $? $(LIBS)
-
- rdnval.la: rdnval.lo
-- $(LIBTOOL) --mode=link $(CC) $(OPT) -version-info $(LTVER) \
-+ $(LIBTOOL) --mode=link $(CC) $(OPT) $(CFLAGS) -version-info $(LTVER) \
- -rpath $(moduledir) -module -o $@ $? $(LIBS)
-
- vernum.la: vernum.lo
-- $(LIBTOOL) --mode=link $(CC) $(OPT) -version-info $(LTVER) \
-+ $(LIBTOOL) --mode=link $(CC) $(OPT) $(CFLAGS) -version-info $(LTVER) \
- -rpath $(moduledir) -module -o $@ $? $(LIBS)
-
- clean:
diff --git a/net-nds/openldap/files/openldap-2.4.35-contrib-smbk5pwd.patch b/net-nds/openldap/files/openldap-2.4.35-contrib-smbk5pwd.patch
deleted file mode 100644
index ca02404c8812..000000000000
--- a/net-nds/openldap/files/openldap-2.4.35-contrib-smbk5pwd.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/contrib/slapd-modules/smbk5pwd/Makefile
-+++ b/contrib/slapd-modules/smbk5pwd/Makefile
-@@ -21,16 +21,23 @@
- SSL_INC =
- SSL_LIB = -lcrypto
-
--HEIMDAL_INC = -I/usr/heimdal/include
--HEIMDAL_LIB = -L/usr/heimdal/lib -lkrb5 -lkadm5srv
-+#HEIMDAL_INC = -I/usr/heimdal/include
-+#HEIMDAL_LIB = -L/usr/heimdal/lib -lkrb5 -lkadm5srv
-+KRB5_INC = $(HEIMDAL_INC)
-+KRB5_LIB = $(HEIMDAL_LIB) -lkrb5 -lkadm5srv
-
- LIBTOOL = $(LDAP_BUILD)/libtool
- CC = gcc
--OPT = -g -O2 -Wall
-+#OPT = -g -O2 -Wall
-+OPT = -Wall
- # Omit DO_KRB5, DO_SAMBA or DO_SHADOW if you don't want to support it.
--DEFS = -DDO_KRB5 -DDO_SAMBA -DDO_SHADOW
--INCS = $(LDAP_INC) $(HEIMDAL_INC) $(SSL_INC)
--LIBS = $(LDAP_LIB) $(HEIMDAL_LIB) $(SSL_LIB)
-+#DEFS = -DDO_KRB5 -DDO_SAMBA -DDO_SHADOW
-+INCS = $(LDAP_INC) $(KRB5_INC) $(SSL_INC)
-+ifneq (DDO_KRB5,$(findstring DDO_KRB5,$(DEFS)))
-+ LIBS=$(LDAP_LIB) $(SSL_LIB)
-+else
-+ LIBS=$(LDAP_LIB) $(KRB5_LIB) $(SSL_LIB)
-+endif
-
- PROGRAMS = smbk5pwd.la
- LTVER = 0:0:0
-@@ -46,12 +53,12 @@
- .SUFFIXES: .c .o .lo
-
- .c.lo:
-- $(LIBTOOL) --mode=compile $(CC) $(OPT) $(DEFS) $(INCS) -c $<
-+ $(LIBTOOL) --mode=compile $(CC) $(OPT) $(CFLAGS) $(DEFS) $(INCS) -c $<
-
- all: $(PROGRAMS)
-
- smbk5pwd.la: smbk5pwd.lo
-- $(LIBTOOL) --mode=link $(CC) $(OPT) -version-info $(LTVER) \
-+ $(LIBTOOL) --mode=link $(CC) $(OPT) $(CFLAGS) -version-info $(LTVER) \
- -rpath $(moduledir) -module -o $@ $? $(LIBS)
-
- clean:
diff --git a/net-nds/openldap/files/openldap-2.4.40-slapd-conf b/net-nds/openldap/files/openldap-2.4.40-slapd-conf
deleted file mode 100644
index 8ecc732b9672..000000000000
--- a/net-nds/openldap/files/openldap-2.4.40-slapd-conf
+++ /dev/null
@@ -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 /run/openldap/slapd.pid
-argsfile /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
diff --git a/net-nds/openldap/files/openldap-2.4.42-mdb-unbundle.patch b/net-nds/openldap/files/openldap-2.4.42-mdb-unbundle.patch
deleted file mode 100644
index 6ec68885b5e7..000000000000
--- a/net-nds/openldap/files/openldap-2.4.42-mdb-unbundle.patch
+++ /dev/null
@@ -1,136 +0,0 @@
---- a/build/top.mk
-+++ b/build/top.mk
-@@ -160,6 +160,7 @@
- LTHREAD_LIBS = @LTHREAD_LIBS@
-
- BDB_LIBS = @BDB_LIBS@
-+MDB_LIBS = @MDB_LIBS@
- SLAPD_NDB_LIBS = @SLAPD_NDB_LIBS@
-
- LDAP_LIBLBER_LA = $(LDAP_LIBDIR)/liblber/liblber.la
---- ./build/openldap.m4.orig
-+++ ./build/openldap.m4
-@@ -563,6 +563,38 @@
- ], [ol_cv_bdb_compat=yes], [ol_cv_bdb_compat=no])])
- ])
-
-+dnl --------------------------------------------------------------------
-+dnl Check for version compatility with back-mdb
-+AC_DEFUN([OL_MDB_COMPAT],
-+[AC_CACHE_CHECK([if LMDB version supported by MDB backends], [ol_cv_mdb_compat],[
-+ AC_EGREP_CPP(__mdb_version_compat,[
-+#include <lmdb.h>
-+
-+/* require 0.9.14 or later */
-+#if MDB_VERSION_FULL >= 0x00000009000E
-+ __mdb_version_compat
-+#endif
-+ ], [ol_cv_mdb_compat=yes], [ol_cv_mdb_compat=no])])
-+])
-+
-+dnl
-+dnl --------------------------------------------------------------------
-+dnl Find any MDB
-+AC_DEFUN([OL_MDB],
-+[ol_cv_mdb=no
-+AC_CHECK_HEADERS(lmdb.h)
-+if test $ac_cv_header_lmdb_h = yes; then
-+ OL_MDB_COMPAT
-+
-+ if test $ol_cv_mdb_compat != yes ; then
-+ AC_MSG_ERROR([LMDB version incompatible with MDB backends])
-+ fi
-+
-+ ol_cv_lib_mdb=-llmdb
-+ ol_cv_mdb=yes
-+fi
-+])
-+
- dnl
- dnl ====================================================================
- dnl Check POSIX Thread version
---- a/servers/slapd/back-mdb/Makefile.in
-+++ b/servers/slapd/back-mdb/Makefile.in
-@@ -25,11 +25,10 @@
- extended.lo operational.lo \
- attr.lo index.lo key.lo filterindex.lo \
- dn2entry.lo dn2id.lo id2entry.lo idl.lo \
-- nextid.lo monitor.lo mdb.lo midl.lo
-+ nextid.lo monitor.lo
-
- LDAP_INCDIR= ../../../include
- LDAP_LIBDIR= ../../../libraries
--MDB_SUBDIR = $(srcdir)/$(LDAP_LIBDIR)/liblmdb
-
- BUILD_OPT = "--enable-mdb"
- BUILD_MOD = @BUILD_MDB@
-@@ -44,7 +43,7 @@
-
- LIBBASE = back_mdb
-
--XINCPATH = -I.. -I$(srcdir)/.. -I$(MDB_SUBDIR)
-+XINCPATH = -I.. -I$(srcdir)/..
- XDEFS = $(MODULES_CPPFLAGS)
-
- all-local-lib: ../.backend
-@@ -52,11 +51,5 @@
- ../.backend: lib$(LIBBASE).a
- @touch $@
-
--mdb.lo: $(MDB_SUBDIR)/mdb.c
-- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/mdb.c
--
--midl.lo: $(MDB_SUBDIR)/midl.c
-- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/midl.c
--
- veryclean-local-lib: FORCE
- $(RM) $(XXHEADERS) $(XXSRCS) .links
---- a/configure.in
-+++ b/configure.in
-@@ -519,6 +519,7 @@
- dnl Initialize vars
- LDAP_LIBS=
- BDB_LIBS=
-+MDB_LIBS=
- SLAPD_NDB_LIBS=
- SLAPD_NDB_INCS=
- LTHREAD_LIBS=
-@@ -1905,6 +1906,30 @@
- fi
-
- dnl ----------------------------------------------------------------
-+ol_link_mdb=no
-+
-+if test $ol_enable_mdb != no; then
-+ OL_MDB
-+
-+ if test $ol_cv_mdb = no ; then
-+ AC_MSG_ERROR(MDB: LMDB not available)
-+ fi
-+
-+ AC_DEFINE(HAVE_MDB,1,
-+ [define this if LMDB is available])
-+
-+ dnl $ol_cv_lib_mdb should be yes or -llmdb
-+ dnl (it could be no, but that would be an error
-+ if test $ol_cv_lib_mdb != yes ; then
-+ MDB_LIBS="$MDB_LIBS $ol_cv_lib_mdb"
-+ fi
-+
-+ SLAPD_LIBS="$SLAPD_LIBS \$(MDB_LIBS)"
-+
-+ ol_link_mdb=yes
-+fi
-+
-+dnl ----------------------------------------------------------------
-
- if test $ol_enable_dynamic = yes && test $enable_shared = yes ; then
- BUILD_LIBS_DYNAMIC=shared
-@@ -3133,6 +3158,7 @@
- AC_SUBST(LDAP_LIBS)
- AC_SUBST(SLAPD_LIBS)
- AC_SUBST(BDB_LIBS)
-+AC_SUBST(MDB_LIBS)
- AC_SUBST(SLAPD_NDB_LIBS)
- AC_SUBST(SLAPD_NDB_INCS)
- AC_SUBST(LTHREAD_LIBS)
diff --git a/net-nds/openldap/files/openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch b/net-nds/openldap/files/openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch
deleted file mode 100644
index 05e515cd47d1..000000000000
--- a/net-nds/openldap/files/openldap-2.4.45-fix-lmpasswd-gnutls-symbols.patch
+++ /dev/null
@@ -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
-
---- a/libraries/liblutil/passwd.c
-+++ b/libraries/liblutil/passwd.c
-@@ -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 );
- }
diff --git a/net-nds/openldap/files/openldap-2.4.47-warnings.patch b/net-nds/openldap/files/openldap-2.4.47-warnings.patch
deleted file mode 100644
index 10f21114954e..000000000000
--- a/net-nds/openldap/files/openldap-2.4.47-warnings.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- 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,
---- 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>
---- 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 )
- {
diff --git a/net-nds/openldap/files/openldap-2.4.59-atexit-fix.patch b/net-nds/openldap/files/openldap-2.4.59-atexit-fix.patch
deleted file mode 100644
index 4ffee325275b..000000000000
--- a/net-nds/openldap/files/openldap-2.4.59-atexit-fix.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Port upstream commit 337455eb3a66176cc3f66d2c663a72cc7b4178bd to 2.4.59.
-
-With 2.4.x, gentoo-infra saw crashes in nsscache during exit.
-This patch was later reverted upstream because it was not portable to AIX And
-was fixed in a different way in 2.5 & 2.6 releases.
-
-original https://github.com/openldap/openldap/commit/337455eb3a66176cc3f66d2c663a72cc7b4178bd
-revert: https://github.com/openldap/openldap/commit/5e13ef87a94491f9339dbca709db29e76741f1a9
-AIX discussion: https://bugs.openldap.org/show_bug.cgi?id=10176
-diff '--color=auto' -NuarwbB --exclude '*.rej' --exclude '*.orig' openldap-2.4.59.orig/libraries/libldap/init.c openldap-2.4.59/libraries/libldap/init.c
---- openldap-2.4.59.orig/libraries/libldap/init.c 2021-06-03 11:40:31.000000000 -0700
-+++ openldap-2.4.59/libraries/libldap/init.c 2024-08-24 11:15:06.727326650 -0700
-@@ -508,9 +508,6 @@
- gopts->ldo_def_sasl_authcid = NULL;
- }
- #endif
--#ifdef HAVE_TLS
-- ldap_int_tls_destroy( gopts );
--#endif
- }
-
- /*
-diff '--color=auto' -NuarwbB --exclude '*.rej' --exclude '*.orig' openldap-2.4.59.orig/libraries/libldap/tls2.c openldap-2.4.59/libraries/libldap/tls2.c
---- openldap-2.4.59.orig/libraries/libldap/tls2.c 2024-08-24 11:14:46.910678897 -0700
-+++ openldap-2.4.59/libraries/libldap/tls2.c 2024-08-24 11:15:38.103963402 -0700
-@@ -155,6 +155,14 @@
- tls_imp->ti_tls_destroy();
- }
-
-+static void
-+ldap_exit_tls_destroy( void )
-+{
-+ struct ldapoptions *lo = LDAP_INT_GLOBAL_OPT();
-+
-+ ldap_int_tls_destroy( lo );
-+}
-+
- /*
- * Initialize a particular TLS implementation.
- * Called once per implementation.
-@@ -163,6 +171,7 @@
- tls_init(tls_impl *impl )
- {
- static int tls_initialized = 0;
-+ int rc;
-
- if ( !tls_initialized++ ) {
- #ifdef LDAP_R_COMPILE
-@@ -175,7 +184,10 @@
- #ifdef LDAP_R_COMPILE
- impl->ti_thr_init();
- #endif
-- return impl->ti_tls_init();
-+ rc = impl->ti_tls_init();
-+
-+ atexit( ldap_exit_tls_destroy );
-+ return rc;
- }
-
- /*
diff --git a/net-nds/openldap/files/openldap-2.4.59-implicit-function.patch b/net-nds/openldap/files/openldap-2.4.59-implicit-function.patch
deleted file mode 100644
index ec7775c99dfa..000000000000
--- a/net-nds/openldap/files/openldap-2.4.59-implicit-function.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- openldap-2.4.59/servers/slapd/back-meta/conn.c 2021-06-03 11:40:31.000000000 -0700
-+++ openldap-2.4.59/servers/slapd/back-meta/conn.c 2024-08-24 14:22:31.677357359 -0700
-@@ -31,6 +31,7 @@
-
- #define AVL_INTERNAL
- #include "slap.h"
-+#include "proto-slap.h"
- #include "../back-ldap/back-ldap.h"
- #include "back-meta.h"
-
---- openldap-2.4.59/servers/slapd/back-ldap/bind.c 2021-06-03 11:40:31.000000000 -0700
-+++ openldap-2.4.59/servers/slapd/back-ldap/bind.c 2024-08-24 14:22:13.340701355 -0700
-@@ -31,6 +31,7 @@
-
- #define AVL_INTERNAL
- #include "slap.h"
-+#include "proto-slap.h"
- #include "back-ldap.h"
- #include "lutil.h"
- #include "lutil_ldap.h"
---- openldap-2.4.59/servers/slapd/config.c 2021-06-03 11:40:31.000000000 -0700
-+++ openldap-2.4.59/servers/slapd/config.c 2024-08-24 14:22:13.414034645 -0700
-@@ -43,6 +43,7 @@
- #endif
-
- #include "slap.h"
-+#include "proto-slap.h"
- #ifdef LDAP_SLAPI
- #include "slapi/slapi.h"
- #endif
-diff '--color=auto' -NuarwbB openldap-2.4.59.orig/servers/slapd/proto-slap.h openldap-2.4.59/servers/slapd/proto-slap.h
---- openldap-2.4.59.orig/servers/slapd/proto-slap.h 2024-08-24 14:31:02.304109181 -0700
-+++ openldap-2.4.59/servers/slapd/proto-slap.h 2024-08-24 14:31:18.004121208 -0700
-@@ -739,6 +739,7 @@
- LDAP_SLAPD_F (int) bindconf_tls_set LDAP_P((
- slap_bindconf *bc, LDAP *ld ));
- LDAP_SLAPD_F (void) bindconf_free LDAP_P(( slap_bindconf *bc ));
-+LDAP_SLAPD_F (void) slap_client_keepalive LDAP_P(( LDAP *ld, slap_keepalive *sk ));
- LDAP_SLAPD_F (int) slap_client_connect LDAP_P(( LDAP **ldp, slap_bindconf *sb ));
- LDAP_SLAPD_F (int) config_generic_wrapper LDAP_P(( Backend *be,
- const char *fname, int lineno, int argc, char **argv ));
diff --git a/net-nds/openldap/files/openldap-2.4.6-evolution-ntlm.patch b/net-nds/openldap/files/openldap-2.4.6-evolution-ntlm.patch
deleted file mode 100644
index e8bcc50502c9..000000000000
--- a/net-nds/openldap/files/openldap-2.4.6-evolution-ntlm.patch
+++ /dev/null
@@ -1,189 +0,0 @@
---- a/include/ldap.h
-+++ b/include/ldap.h
-@@ -2461,5 +2461,26 @@ ldap_parse_deref_control LDAP_P((
- LDAPControl **ctrls,
- LDAPDerefRes **drp ));
-
-+/*
-+ * 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 */
---- a/libraries/libldap/Makefile.in
-+++ b/libraries/libldap/Makefile.in
-@@ -20,7 +20,7 @@ PROGRAMS = apitest dntest ftest ltest ur
- 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 gssapi.c sbind.c unbind.c cancel.c \
-+ sasl.c ntlm.c gssapi.c sbind.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 pagectrl.c sortctrl.c vlvctrl.c \
-@@ -33,7 +33,7 @@ SRCS = bind.c open.c result.c error.c co
- 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 gssapi.lo sbind.lo unbind.lo cancel.lo \
-+ sasl.lo ntlm.lo gssapi.lo sbind.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 pagectrl.lo sortctrl.lo vlvctrl.lo \
---- /dev/null
-+++ b/libraries/libldap/ntlm.c
-@@ -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 );
-+}
diff --git a/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch b/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
new file mode 100644
index 000000000000..8f369d3b22a4
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/938581#c5
+--- a/servers/slapd/back-sql/sql-wrap.c
++++ b/servers/slapd/back-sql/sql-wrap.c
+@@ -37,7 +37,7 @@ backsql_PrintErrors( SQLHENV henv, SQLHD
+ {
+ SQLCHAR msg[SQL_MAX_MESSAGE_LENGTH]; /* msg. buffer */
+ SQLCHAR state[SQL_SQLSTATE_SIZE]; /* statement buf. */
+- SDWORD iSqlCode; /* return code */
++ SQLINTEGER iSqlCode; /* return code */
+ SWORD len = SQL_MAX_MESSAGE_LENGTH - 1; /* return length */
+
+ Debug( LDAP_DEBUG_TRACE, "Return code: %d\n", rc );
diff --git a/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.patch b/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.patch
deleted file mode 100644
index 1d6595566c73..000000000000
--- a/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From 59e013602d7b1aa0d7da79d65367c9ec391b96f8 Mon Sep 17 00:00:00 2001
-From: Simon Pichugin <spichugi@redhat.com>
-Date: Wed, 3 Nov 2021 19:03:40 -0700
-Subject: [PATCH] Fix missing mapping
-
---- a/libraries/liblber/lber.map
-+++ b/libraries/liblber/lber.map
-@@ -121,6 +121,7 @@ OPENLDAP_2.200
- ber_sockbuf_io_fd;
- ber_sockbuf_io_readahead;
- ber_sockbuf_io_tcp;
-+ ber_sockbuf_io_udp;
- ber_sockbuf_remove_io;
- ber_sos_dump;
- ber_start;
diff --git a/net-nds/openldap/files/openldap-2.6.4-clang16.patch b/net-nds/openldap/files/openldap-2.6.4-clang16.patch
deleted file mode 100644
index bcbdf0b5819e..000000000000
--- a/net-nds/openldap/files/openldap-2.6.4-clang16.patch
+++ /dev/null
@@ -1,234 +0,0 @@
-https://git.openldap.org/openldap/openldap/-/merge_requests/605
-
-From 83e2db9bf9fc2530a0ea6ca538a7732f6ad9de0e Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Thu, 9 Feb 2023 23:17:53 +0000
-Subject: [PATCH 1/3] build: fix compatibility with stricter C99 compilers
-
-Fix the following warnings:
-- -Wimplicit-int (fatal with Clang 16)
-- -Wimplicit-function-declaration (fatal with Clang 16)
-- -Wincompatible-function-pointer-types (fatal with Clang 16)
-- -Wint-conversion (fatal with Clang 15)
-- Old style prototypes (K&R, removed from C23)
-
-These warnings-now-error led to misconfigurations and failure to build
-OpenLDAP, as the tests used during configure caused the wrong results
-to be emitted.
-
-For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
-or the (new) c-std-porting mailing list [3].
-
-[0] https://lwn.net/Articles/913505/
-[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
-[2] https://wiki.gentoo.org/wiki/Modern_C_porting
-[3] hosted at lists.linux.dev.
-
-Bug: https://bugs.gentoo.org/871288
-Signed-off-by: Sam James <sam@gentoo.org>
---- a/build/openldap.m4
-+++ b/build/openldap.m4
-@@ -154,6 +154,7 @@ fi
- if test $ol_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h>
-+#include <stdlib.h>
- #ifndef HAVE_EBCDIC
- # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
- # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-@@ -360,9 +361,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
- AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
- [AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
-
--int main(argc, argv)
-- int argc;
-- char **argv;
-+int main(int argc, char **argv)
- {
- OL_PTHREAD_TEST_FUNCTION
- }
-@@ -484,7 +483,7 @@ AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[
- #include <sys/types.h>
- #include <regex.h>
- static char *pattern, *string;
--main()
-+int main(void)
- {
- int rc;
- regex_t re;
-@@ -511,7 +510,8 @@ AC_DEFUN([OL_C_UPPER_LOWER],
- [AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <ctype.h>
--main()
-+#include <stdlib.h>
-+int main(void)
- {
- if ('C' == toupper('C'))
- exit(0);
-@@ -569,7 +569,7 @@ AC_DEFUN([OL_NONPOSIX_STRERROR_R],
- ]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror_r=no])
- else
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-- main() {
-+ int main(void) {
- char buf[100];
- buf[0] = 0;
- strerror_r( 1, buf, sizeof buf );
---- a/configure.ac
-+++ b/configure.ac
-@@ -1017,7 +1017,11 @@ dnl ----------------------------------------------------------------
- AC_CHECK_HEADERS( sys/epoll.h )
- if test "${ac_cv_header_sys_epoll_h}" = yes; then
- AC_MSG_CHECKING(for epoll system call)
-- AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
-+ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
-+#ifdef HAVE_SYS_POLL_H
-+#include <sys/epoll.h>
-+#endif
-+int main(int argc, char **argv)
- {
- int epfd = epoll_create(256);
- exit (epfd == -1 ? 1 : 0);
-@@ -1479,10 +1483,8 @@ pthread_rwlock_t rwlock;
- dnl save the flags
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
- #include <pthread.h>
--#ifndef NULL
--#define NULL (void*)0
--#endif
--]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
-+pthread_t thread;
-+]], [[pthread_detach(thread);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
- ])
-
- if test $ol_cv_func_pthread_detach = no ; then
-@@ -1537,6 +1539,9 @@ dnl esac
- AC_CACHE_CHECK([if select yields when using pthreads],
- ol_cv_pthread_select_yields,[
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-+#define _XOPEN_SOURCE 500 /* For pthread_setconcurrency() on glibc */
-+#include <stdlib.h>
-+#include <stdio.h>
- #include <sys/types.h>
- #include <sys/time.h>
- #include <unistd.h>
-@@ -1547,8 +1552,7 @@ dnl esac
-
- static int fildes[2];
-
--static void *task(p)
-- void *p;
-+static void *task(void *p)
- {
- int i;
- struct timeval tv;
-@@ -1572,9 +1576,7 @@ static void *task(p)
- exit(0); /* if we exit here, the select blocked the whole process */
- }
-
--int main(argc, argv)
-- int argc;
-- char **argv;
-+int main(int argc, char **argv)
- {
- pthread_t t;
-
---
-GitLab
-
-
-From 853d613f39ae9e8d7dad4492076959c2d80e38c1 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Thu, 9 Feb 2023 23:20:32 +0000
-Subject: [PATCH 2/3] contrib: fix old-style K&R declarations
-
-Removed in C23.
-
-For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
-or the (new) c-std-porting mailing list [3].
-
-[0] https://lwn.net/Articles/913505/
-[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
-[2] https://wiki.gentoo.org/wiki/Modern_C_porting
-[3] hosted at lists.linux.dev.
-
-Signed-off-by: Sam James <sam@gentoo.org>
---- a/contrib/ldaptcl/tclAppInit.c
-+++ b/contrib/ldaptcl/tclAppInit.c
-@@ -45,9 +45,7 @@ EXTERN int Tcltest_Init _ANSI_ARGS_((Tcl_Interp *interp));
- */
-
- int
--main(argc, argv)
-- int argc; /* Number of command-line arguments. */
-- char **argv; /* Values of command-line arguments. */
-+main(int argc, char **argv)
- {
- #ifdef USE_TCLX
- TclX_Main(argc, argv, Tcl_AppInit);
---- a/contrib/ldaptcl/tkAppInit.c
-+++ b/contrib/ldaptcl/tkAppInit.c
-@@ -37,16 +37,9 @@ int (*tclDummyMathPtr)() = matherr;
- * This is the main program for the application.
- *-----------------------------------------------------------------------------
- */
--#ifdef __cplusplus
- int
- main (int argc,
- char **argv)
--#else
--int
--main (argc, argv)
-- int argc;
-- char **argv;
--#endif
- {
- #ifdef USE_TCLX
- TkX_Main(argc, argv, Tcl_AppInit);
-@@ -68,14 +61,8 @@ main (argc, argv)
- * interp->result if an error occurs.
- *-----------------------------------------------------------------------------
- */
--#ifdef __cplusplus
- int
- Tcl_AppInit (Tcl_Interp *interp)
--#else
--int
--Tcl_AppInit (interp)
-- Tcl_Interp *interp;
--#endif
- {
- if (Tcl_Init (interp) == TCL_ERROR) {
- return TCL_ERROR;
---
-GitLab
-
-
-From b4b3d026461b16f4f462e70225a5a0493647f0c8 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Thu, 9 Feb 2023 23:20:51 +0000
-Subject: [PATCH 3/3] servers: fix -Wstrict-prototypes
-
-For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
-or the (new) c-std-porting mailing list [3].
-
-[0] https://lwn.net/Articles/913505/
-[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
-[2] https://wiki.gentoo.org/wiki/Modern_C_porting
-[3] hosted at lists.linux.dev.
-
-Signed-off-by: Sam James <sam@gentoo.org>
---- a/servers/slapd/syslog.c
-+++ b/servers/slapd/syslog.c
-@@ -209,7 +209,7 @@ openlog(const char *ident, int logstat, int logfac)
- }
-
- void
--closelog()
-+closelog(void)
- {
- (void)close(LogFile);
- LogFile = -1;
---
-GitLab
diff --git a/net-nds/openldap/files/openldap-2.6.4-libressl.patch b/net-nds/openldap/files/openldap-2.6.4-libressl.patch
deleted file mode 100644
index 48a8a43e731a..000000000000
--- a/net-nds/openldap/files/openldap-2.6.4-libressl.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://bugs.gentoo.org/903001
-https://bugs.openldap.org/show_bug.cgi?id=10039
-https://git.openldap.org/openldap/openldap/-/merge_requests/613
-https://git.openldap.org/openldap/openldap/-/commit/cb73e60a49f85bf5207b2fd0f557013be29ac072
-
-From cb73e60a49f85bf5207b2fd0f557013be29ac072 Mon Sep 17 00:00:00 2001
-From: orbea <orbea@riseup.net>
-Date: Wed, 12 Apr 2023 12:55:46 -0700
-Subject: [PATCH] ITS#10039 Test for SSL_CTX_set_ciphersuites()
-
-When configuring OpenLDAP using --with-tls=openssl with LibreSSL the
-configure will fail to detect SSL_export_keyring_material_early() since
-LibreSSL doesn't support this function yet. However OpenLDAP doesn't
-actually use this function and only checks for it to ensure a modern
-OpenSSL API is used. This can be easily solved by checking for an
-equivalent modern OpenSSL function which both LibreSSL and OpenSSL both
-support such as SSL_CTX_set_ciphersuites(). Doing this allows the build
-and tests to succeed with modern LibreSSL versions. This was tested with
-LibreSSL >= 3.6.
-
-Bug: https://bugs.openldap.org/show_bug.cgi?id=10039
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2cf28ef346..c4e2a905e2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1243,7 +1243,7 @@ if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then
- [#endif]])],
- , [AC_MSG_FAILURE([OpenSSL 1.1.1 or newer required])])
-
-- AC_CHECK_LIB(ssl, SSL_export_keying_material_early,
-+ AC_CHECK_LIB(ssl, SSL_CTX_set_ciphersuites,
- [have_openssl=yes], [have_openssl=no],
- [-lcrypto])
-
diff --git a/net-nds/openldap/files/openldap-2.6.6-fix-type-mismatch-lloadd.patch b/net-nds/openldap/files/openldap-2.6.6-fix-type-mismatch-lloadd.patch
deleted file mode 100644
index d2335bce9bfd..000000000000
--- a/net-nds/openldap/files/openldap-2.6.6-fix-type-mismatch-lloadd.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-https://git.openldap.org/openldap/openldap/-/commit/de89b06b031537fb2d14a532d79f7b0772fc1700
-From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= <ondra@mistotebe.net>
-Date: Thu, 27 Jul 2023 11:19:20 +0100
-Subject: [PATCH] ITS#10074 Fix type mismatches in lloadd
-
---- a/servers/lloadd/libevent_support.c
-+++ b/servers/lloadd/libevent_support.c
-@@ -131,6 +131,12 @@ lload_libevent_cond_timedwait(
- return ldap_pvt_thread_cond_wait( cond, mutex );
- }
-
-+unsigned long
-+lload_libevent_thread_self( void )
-+{
-+ return (unsigned long)ldap_pvt_thread_self();
-+}
-+
- int
- lload_libevent_init( void )
- {
-@@ -152,7 +158,7 @@ lload_libevent_init( void )
-
- evthread_set_lock_callbacks( &cbs );
- evthread_set_condition_callbacks( &cond_cbs );
-- evthread_set_id_callback( ldap_pvt_thread_self );
-+ evthread_set_id_callback( lload_libevent_thread_self );
- return 0;
- }
-
---- a/servers/lloadd/module_init.c
-+++ b/servers/lloadd/module_init.c
-@@ -151,7 +151,6 @@ lload_back_initialize( BackendInfo *bi )
- {
- bi->bi_flags = SLAP_BFLAG_STANDALONE;
- bi->bi_open = lload_back_open;
-- bi->bi_config = config_generic_wrapper;
- bi->bi_pause = lload_pause_cb;
- bi->bi_unpause = lload_unpause_cb;
- bi->bi_close = lload_back_close;
---
-GitLab
-
diff --git a/net-nds/openldap/files/openldap-2.6.x-slapd-pointer-types.patch b/net-nds/openldap/files/openldap-2.6.x-slapd-pointer-types.patch
deleted file mode 100644
index 9f79048645d6..000000000000
--- a/net-nds/openldap/files/openldap-2.6.x-slapd-pointer-types.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-# https://git.openldap.org/openldap/openldap/-/commit/fb9e6a81bbee880549e7ec18f0a74ddddbd2d1ab.patch
-From fb9e6a81bbee880549e7ec18f0a74ddddbd2d1ab Mon Sep 17 00:00:00 2001
-From: Stephen Gallagher <sgallagh@redhat.com>
-Date: Tue, 6 Feb 2024 21:38:24 -0500
-Subject: [PATCH] ITS#10171 - Explicitly cast private values
-
-Fixes issues with -Werror=incompatible-pointer-types
-
-Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
----
- servers/slapd/config.c | 2 +-
- servers/slapd/overlays/constraint.c | 2 +-
- servers/slapd/overlays/dyngroup.c | 2 +-
- servers/slapd/overlays/valsort.c | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/servers/slapd/config.c b/servers/slapd/config.c
-index 80333f359c..987c862d91 100644
---- a/servers/slapd/config.c
-+++ b/servers/slapd/config.c
-@@ -151,7 +151,7 @@ int config_check_vals(ConfigTable *Conf, ConfigArgs *c, int check_only ) {
- int rc, arg_user, arg_type, arg_syn, iarg;
- unsigned uiarg;
- long larg;
-- size_t ularg;
-+ unsigned long ularg;
- ber_len_t barg;
-
- if(Conf->arg_type == ARG_IGNORED) {
-diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c
-index f939b37762..0d6156af4d 100644
---- a/servers/slapd/overlays/constraint.c
-+++ b/servers/slapd/overlays/constraint.c
-@@ -557,7 +557,7 @@ done:;
- a2->restrict_filter = ap.restrict_filter;
- a2->restrict_val = ap.restrict_val;
-
-- for ( app = &on->on_bi.bi_private; *app; app = &(*app)->ap_next )
-+ for ( app = (constraint **)&on->on_bi.bi_private; *app; app = &(*app)->ap_next )
- /* Get to the end */ ;
-
- a2->ap_next = *app;
-diff --git a/servers/slapd/overlays/dyngroup.c b/servers/slapd/overlays/dyngroup.c
-index 5d890d6650..e0e70af2d9 100644
---- a/servers/slapd/overlays/dyngroup.c
-+++ b/servers/slapd/overlays/dyngroup.c
-@@ -111,7 +111,7 @@ static int dgroup_cf( ConfigArgs *c )
- */
- a2 = ch_malloc( sizeof(adpair) );
-
-- for ( app = &on->on_bi.bi_private; *app; app = &(*app)->ap_next )
-+ for ( app = (adpair **)&on->on_bi.bi_private; *app; app = &(*app)->ap_next )
- /* Get to the end */ ;
-
- a2->ap_mem = ap.ap_mem;
-diff --git a/servers/slapd/overlays/valsort.c b/servers/slapd/overlays/valsort.c
-index 3d998e2fcb..e251500d0b 100644
---- a/servers/slapd/overlays/valsort.c
-+++ b/servers/slapd/overlays/valsort.c
-@@ -201,7 +201,7 @@ valsort_cf_func(ConfigArgs *c) {
- return(1);
- }
-
-- for ( vip = &on->on_bi.bi_private; *vip; vip = &(*vip)->vi_next )
-+ for ( vip = (valsort_info **)&on->on_bi.bi_private; *vip; vip = &(*vip)->vi_next )
- /* Get to the end */ ;
-
- vi = ch_malloc( sizeof(valsort_info) );
---
-GitLab
-
diff --git a/net-nds/openldap/files/slapd-confd-2.4.28-r1 b/net-nds/openldap/files/slapd-confd-2.4.28-r1
deleted file mode 100644
index ef19899a3796..000000000000
--- a/net-nds/openldap/files/slapd-confd-2.4.28-r1
+++ /dev/null
@@ -1,26 +0,0 @@
-# conf.d file for openldap
-#
-# To enable both the standard unciphered server and the ssl encrypted
-# one uncomment this line or set any other server starting options
-# you may desire.
-
-# If you have multiple slapd instances per #376699, this will provide a default config
-INSTANCE="openldap${SVCNAME#slapd}"
-
-# If you use the classical configuration file:
-OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"
-# Uncomment this instead to use the new slapd.d configuration directory for openldap 2.3
-#OPTS_CONF="-F /etc/${INSTANCE}/slapd.d"
-# (the OPTS_CONF variable is also passed to slaptest during startup)
-
-OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
-# Optional connectionless LDAP:
-#OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock cldap://'"
-
-# If you change the above listen statement to bind on a specific IP for
-# listening, you should ensure that interface is up here (change eth0 as
-# needed).
-#rc_need="net.eth0"
-
-# Specify the kerberos keytab file
-#KRB5_KTNAME=/etc/openldap/krb5-ldap.keytab
diff --git a/net-nds/openldap/openldap-2.4.59-r2.ebuild b/net-nds/openldap/openldap-2.4.59-r2.ebuild
deleted file mode 100644
index 1a795cb4b9c3..000000000000
--- a/net-nds/openldap/openldap-2.4.59-r2.ebuild
+++ /dev/null
@@ -1,909 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools db-use flag-o-matic multilib multilib-minimal preserve-libs ssl-cert toolchain-funcs systemd tmpfiles
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-
-# 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 ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="crypt samba tcpd experimental minimal"
-IUSE_BACKEND="+berkdb"
-IUSE_OVERLAY="overlays perl"
-IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 +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}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( berkdb )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-# 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 4.8}"
-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
-COMMON_DEPEND="
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-0.9.18:=
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- berkdb? (
- <sys-libs/db-6.0:=
- || ( ${BDB_PKGS} )
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- cxx? ( dev-libs/cyrus-sasl:= )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-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
-
- # 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
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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}$(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
- # 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=$(ver_cut 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" ]] && [[ -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}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # ensure correct SLAPI path by default
- sed -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
- -i include/ldap_defaults.h || die
-
- default
- rm -r libraries/liblmdb || 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 \
- -e 's|/bin/sh|/bin/bash|g' \
- -i tests/scripts/* || die "sed failed"
-
- # Required for autoconf-2.70 #765043
- sed 's@^AM_INIT_AUTOMAKE.*@AC_PROG_MAKE_SET@' -i configure.in || die
- AT_NOEAUTOMAKE=yes eautoreconf
-}
-
-build_contrib_module() {
- # <dir> <sources> <outputname>
- 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="$(LC_ALL=C tr '[:lower:]' '[:upper:]' <<< "SLAPD_OVER_${1}")"
- "${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"
- popd &>/dev/null || die
-}
-
-src_configure() {
- # 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)
- --disable-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
- CONFIG_SHELL="/bin/sh" \
- 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
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- 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}"
- popd &>/dev/null || die
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="${CC}" AR="${AR}" SHELL="${EPREFIX}"/bin/sh
- 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
- 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"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- 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
- 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}" \
- -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"
- popd &>/dev/null || die
- fi
-
- if use pbkdf2; then
- 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}" \
- -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"
- popd &>/dev/null || die
- fi
-
- if use sha2 ; then
- 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}" \
- -I"${BUILD_DIR}"/include \
- -I../../../../include \
- ${CFLAGS} \
- -o sha2.lo \
- -c sha2.c || die "compiling pw-sha2 failed"
- "${lt}" --mode=compile --tag=CC \
- "${CC}" \
- -I"${BUILD_DIR}"/include \
- -I../../../../include \
- ${CFLAGS} \
- -o slapd-sha2.lo \
- -c slapd-sha2.c || die "compiling pw-sha2 failed"
- einfo "Linking contrib-module: pw-sha2"
- "${lt}" --mode=link --tag=CC \
- "${CC}" -module \
- ${CFLAGS} \
- ${LDFLAGS} \
- -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
- 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}" \
- -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"
- # 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" 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
- 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 \
- -I../../../include \
- ${CFLAGS} \
- -fPIC \
- ${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
- fi
-}
-
-multilib_src_install() {
- local lt="${BUILD_DIR}/libtool"
- emake DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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
- einfo "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}" || 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 || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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"
- 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
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
-
- # If built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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
-
- if ! use static-libs ; then
- find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
- 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
- tmpfiles_process slapd.conf
-
- # 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
- 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://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}/"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.4.59-r3.ebuild b/net-nds/openldap/openldap-2.4.59-r3.ebuild
deleted file mode 100644
index db3dbdeb8d07..000000000000
--- a/net-nds/openldap/openldap-2.4.59-r3.ebuild
+++ /dev/null
@@ -1,936 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools db-use flag-o-matic multilib multilib-minimal preserve-libs ssl-cert toolchain-funcs systemd tmpfiles
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-
-# 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 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="crypt samba tcpd experimental minimal"
-IUSE_BACKEND="+berkdb"
-IUSE_OVERLAY="overlays perl"
-IUSE_OPTIONAL="gnutls iodbc sasl ssl odbc debug ipv6 +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}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( berkdb )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-# 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 4.8}"
-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
-COMMON_DEPEND="
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-0.9.18:=
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- berkdb? (
- <sys-libs/db-6.0:=
- || ( ${BDB_PKGS} )
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- cxx? ( dev-libs/cyrus-sasl:= )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-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
-
- # fix some compiler warnings
- "${FILESDIR}"/${PN}-2.4.47-warnings.patch
-
- # Atexit segfault
- "${FILESDIR}"/${PN}-2.4.59-atexit-fix.patch
-
- # implicit function defs
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.4.59-implicit-function.patch
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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}$(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
- # 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=$(ver_cut 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" ]] && [[ -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}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # ensure correct SLAPI path by default
- sed -e 's,\(#define LDAPI_SOCK\).*,\1 "'"${EPREFIX}"'/var/run/openldap/slapd.sock",' \
- -i include/ldap_defaults.h || die
-
- default
- rm -r libraries/liblmdb || 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 \
- -e 's|/bin/sh|/bin/bash|g' \
- -i tests/scripts/* || die "sed failed"
-
- if test -e configure.in -a ! -e configure.ac ; then
- mv -f configure.in configure.ac
- fi
-
- # Required for autoconf-2.70 #765043
- sed 's@^AM_INIT_AUTOMAKE.*@AC_PROG_MAKE_SET@' -i configure.ac || die
- AT_NOEAUTOMAKE=yes eautoreconf
-}
-
-build_contrib_module() {
- # <dir> <sources> <outputname>
- 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="$(LC_ALL=C tr '[:lower:]' '[:upper:]' <<< "SLAPD_OVER_${1}")"
- "${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"
- popd &>/dev/null || die
-}
-
-src_configure() {
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- # The configure scripts make some assumptions that aren't valid in newer GCC.
- # https://bugs.gentoo.org/920380
- append-flags $(test-flags-CC -Wno-error=implicit-int)
- # conftest.c:113:16: error: passing argument 1 of 'pthread_detach' makes
- # integer from pointer without a cast [-Wint-conversion]
- append-flags $(test-flags-CC -Wno-error=int-conversion)
- # error: passing argument 3 of ‘ldap_bv2rdn’ from incompatible pointer type
- # [-Wincompatible-pointer-types]
- # expected ‘char **’ but argument is of type ‘const char **’
- append-flags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-
- 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)
- --disable-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
- CONFIG_SHELL="/bin/sh" \
- 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
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- 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}"
- popd &>/dev/null || die
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="${CC}" AR="${AR}" SHELL="${EPREFIX}"/bin/sh
- 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
- 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"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- 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
- 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}" \
- -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"
- popd &>/dev/null || die
- fi
-
- if use pbkdf2; then
- 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}" \
- -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"
- popd &>/dev/null || die
- fi
-
- if use sha2 ; then
- 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}" \
- -I"${BUILD_DIR}"/include \
- -I../../../../include \
- ${CFLAGS} \
- -o sha2.lo \
- -c sha2.c || die "compiling pw-sha2 failed"
- "${lt}" --mode=compile --tag=CC \
- "${CC}" \
- -I"${BUILD_DIR}"/include \
- -I../../../../include \
- ${CFLAGS} \
- -o slapd-sha2.lo \
- -c slapd-sha2.c || die "compiling pw-sha2 failed"
- einfo "Linking contrib-module: pw-sha2"
- "${lt}" --mode=link --tag=CC \
- "${CC}" -module \
- ${CFLAGS} \
- ${LDFLAGS} \
- -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
- 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}" \
- -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"
- # comp_match: really complex, adds new external deps, questionable demand
- # build_contrib_module "comp_match" "comp_match.c" "comp_match"
- 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" 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
- 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 \
- -I../../../include \
- ${CFLAGS} \
- -fPIC \
- ${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
- fi
-}
-
-multilib_src_install() {
- local lt="${BUILD_DIR}/libtool"
- emake DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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
- einfo "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}" || 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 || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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"
- 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
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
-
- # If built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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
-
- if ! use static-libs ; then
- find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
- 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
- tmpfiles_process slapd.conf
-
- # 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
- 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://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}/"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.3$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.5.14.ebuild b/net-nds/openldap/openldap-2.5.14.ebuild
deleted file mode 100644
index ff2ade1e6dfe..000000000000
--- a/net-nds/openldap/openldap-2.5.14.ebuild
+++ /dev/null
@@ -1,864 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc ipv6 odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext debug sasl )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.30
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.4-clang16.patch
- "${FILESDIR}"/${PN}-2.6.4-libressl.patch #903001
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.6.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(
- sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die
- )
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- -e '/MKDIR.*.(DESTDIR).*.(runstatedir)/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- $(use_enable ipv6)
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- )
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- $(multilib_native_use_with sasl cyrus-sasl)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( lloadd mdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || 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 || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- 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,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.5.18.ebuild b/net-nds/openldap/openldap-2.5.18.ebuild
deleted file mode 100644
index 1f7293a48c87..000000000000
--- a/net-nds/openldap/openldap-2.5.18.ebuild
+++ /dev/null
@@ -1,875 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc ipv6 odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext debug sasl )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.33
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
- #"${FILESDIR}"/${PN}-2.6.x-slapd-pointer-types.patch # needs backport
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.6.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(
- sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die
- )
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- -e '/MKDIR.*.(DESTDIR).*.(runstatedir)/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- $(use_enable ipv6)
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- )
-
- # The configure scripts make some assumptions that aren't valid in newer GCC.
- # https://bugs.gentoo.org/920380
- append-flags $(test-flags-CC -Wno-error=implicit-int)
- # conftest.c:113:16: error: passing argument 1 of 'pthread_detach' makes
- # integer from pointer without a cast [-Wint-conversion]
- append-flags $(test-flags-CC -Wno-error=int-conversion)
- # error: passing argument 3 of ‘ldap_bv2rdn’ from incompatible pointer type
- # [-Wincompatible-pointer-types]
- # expected ‘char **’ but argument is of type ‘const char **’
- #append-flags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- $(multilib_native_use_with sasl cyrus-sasl)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( lloadd mdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake -Onone "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || 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 || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- 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,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.5.16.ebuild b/net-nds/openldap/openldap-2.5.19.ebuild
index 6f2d254cf7f4..8a6b89fc30b7 100644
--- a/net-nds/openldap/openldap-2.5.16.ebuild
+++ b/net-nds/openldap/openldap-2.5.19.ebuild
@@ -1,12 +1,13 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
# Re cleanups:
# 2.5.x is an LTS release so we want to keep it for a while.
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs ssl-cert toolchain-funcs systemd tmpfiles
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
MY_PV="$(ver_rs 1-2 _)"
@@ -17,15 +18,16 @@ BIS_P="${BIS_PN}-${BIS_PV}"
DESCRIPTION="LDAP suite of application and development tools"
HOMEPAGE="https://www.openldap.org/"
SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
mirror://gentoo/${BIS_P}
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
LICENSE="OPENLDAP GPL-2"
# Subslot added for bug #835654
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
IUSE_OVERLAY="overlays perl autoca"
@@ -33,15 +35,17 @@ IUSE_OPTIONAL="debug gnutls iodbc ipv6 odbc sasl ssl selinux static-libs +syslog
IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="cxx? ( sasl )
+REQUIRED_USE="
+ cxx? ( sasl )
pbkdf2? ( ssl )
- test? ( cleartext debug sasl )
+ test? ( cleartext sasl debug )
autoca? ( !gnutls )
?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
RESTRICT="!test? ( test )"
-SYSTEM_LMDB_VER=0.9.31
+SYSTEM_LMDB_VER=0.9.33
# openssl is needed to generate lanman-passwords required by samba
COMMON_DEPEND="
kernel_linux? ( sys-apps/util-linux )
@@ -78,19 +82,23 @@ COMMON_DEPEND="
)
)
"
-DEPEND="${COMMON_DEPEND}
+DEPEND="
+ ${COMMON_DEPEND}
sys-apps/groff
"
-RDEPEND="${COMMON_DEPEND}
+RDEPEND="
+ ${COMMON_DEPEND}
selinux? ( sec-policy/selinux-ldap )
"
# The user/group are only used for running daemons which are
# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
+BDEPEND="
+ !minimal? (
acct-group/ldap
acct-user/ldap
-)
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
"
# for tracking versions
@@ -140,6 +148,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
"${FILESDIR}"/${PN}-2.6.1-cloak.patch
"${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
)
openldap_filecount() {
@@ -331,6 +340,12 @@ pkg_setup() {
fi
}
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
src_prepare() {
# The system copy of dev-db/lmdb must match the version that this copy
# of OpenLDAP shipped with! See bug #588792.
@@ -386,8 +401,10 @@ build_contrib_module() {
einfo "Compiling contrib-module: $1"
local target="${2:-all}"
emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
"${target}"
popd &>/dev/null || die
}
@@ -519,7 +536,8 @@ multilib_src_configure() {
tc-export AR CC CXX
- ECONF_SOURCE="${S}" econf \
+ ECONF_SOURCE="${S}" \
+ econf \
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
--localstatedir="${EPREFIX}"/var \
--runstatedir="${EPREFIX}"/run \
@@ -555,13 +573,17 @@ src_configure_cxx() {
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[@]}"
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ econf \
+ "${myconf_ldapcpp[@]}"
popd &>/dev/null || die "popd contrib/ldapc++"
}
multilib_src_compile() {
tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh
if ! use minimal && multilib_is_native_abi ; then
if use cxx ; then
@@ -599,8 +621,9 @@ multilib_src_compile() {
pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
emake \
+ CC="$(tc-getCC)" \
LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
popd &>/dev/null || die
fi
@@ -680,8 +703,11 @@ multilib_src_test() {
}
multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ install
if ! use minimal && multilib_is_native_abi; then
# openldap modules go here
@@ -710,7 +736,7 @@ multilib_src_install() {
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}"
+ -i "${configfile}" || die
use prefix || fowners root:ldap /etc/openldap/slapd.conf
fperms 0640 /etc/openldap/slapd.conf
cp "${configfile}" "${configfile}".default || die
diff --git a/net-nds/openldap/openldap-2.6.4-r3.ebuild b/net-nds/openldap/openldap-2.6.4-r3.ebuild
deleted file mode 100644
index 349d7af97c4d..000000000000
--- a/net-nds/openldap/openldap-2.6.4-r3.ebuild
+++ /dev/null
@@ -1,867 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
-inherit ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext sasl )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.30
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libevent:=
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.patch
- "${FILESDIR}"/${PN}-2.6.4-clang16.patch
- "${FILESDIR}"/${PN}-2.6.4-libressl.patch #903001
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die)
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- --enable-ipv6
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- $(multilib_native_use_with sasl cyrus-sasl)
- )
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
- myconf+=( --enable-balancer=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( plloadd pmdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || die
- done
- sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
- -i "${configfile}" || die
- use prefix || fowners root:ldap /etc/openldap/slapd.conf
- fperms 0640 /etc/openldap/slapd.conf
- cp "${configfile}" "${configfile}".default || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- 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,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.6.4-r4.ebuild b/net-nds/openldap/openldap-2.6.4-r4.ebuild
deleted file mode 100644
index 12920fbbf6fc..000000000000
--- a/net-nds/openldap/openldap-2.6.4-r4.ebuild
+++ /dev/null
@@ -1,870 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
-inherit ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext sasl debug )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.30
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libevent:=
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="!minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
- "${FILESDIR}"/${PN}-2.6.4-clang16.patch
- "${FILESDIR}"/${PN}-2.6.4-libressl.patch #903001
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die)
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Workaround for bug #923334, #938553, #946816
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- --enable-ipv6
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- $(multilib_native_use_with sasl cyrus-sasl)
- )
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
- myconf+=( --enable-balancer=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( plloadd pmdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || die
- done
- sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
- -i "${configfile}" || die
- use prefix || fowners root:ldap /etc/openldap/slapd.conf
- fperms 0640 /etc/openldap/slapd.conf
- cp "${configfile}" "${configfile}".default || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- 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,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.6.6-r2.ebuild b/net-nds/openldap/openldap-2.6.6-r2.ebuild
deleted file mode 100644
index 76db88d237e2..000000000000
--- a/net-nds/openldap/openldap-2.6.6-r2.ebuild
+++ /dev/null
@@ -1,874 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
-inherit ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="
- cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext sasl debug )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )
-"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.31
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libevent:=
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="
- ${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="
- ${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="
- !minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.patch
- "${FILESDIR}"/${PN}-2.6.6-fix-type-mismatch-lloadd.patch
- "${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
- "${FILESDIR}"/${PN}-2.6.x-slapd-pointer-types.patch
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die)
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- --enable-ipv6
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- $(multilib_native_use_with sasl cyrus-sasl)
- )
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
- myconf+=( --enable-balancer=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( plloadd pmdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake -Onone "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || die
- done
- sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
- -i "${configfile}" || die
- use prefix || fowners root:ldap /etc/openldap/slapd.conf
- fperms 0640 /etc/openldap/slapd.conf
- cp "${configfile}" "${configfile}".default || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
- docinto rfc ; dodoc doc/rfc/*.txt
- rmdir -p "${D}"/var/openldap-lloadd # Created but not used by any part of current codebase.
-}
-
-pkg_preinst() {
- # keep old libs if any
- preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.6.6-r3.ebuild b/net-nds/openldap/openldap-2.6.6-r3.ebuild
deleted file mode 100644
index 66fd46cecdc3..000000000000
--- a/net-nds/openldap/openldap-2.6.6-r3.ebuild
+++ /dev/null
@@ -1,877 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Re cleanups:
-# 2.5.x is an LTS release so we want to keep it for a while.
-
-inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
-inherit ssl-cert toolchain-funcs systemd tmpfiles
-
-MY_PV="$(ver_rs 1-2 _)"
-
-BIS_PN=rfc2307bis.schema
-BIS_PV=20140524
-BIS_P="${BIS_PN}-${BIS_PV}"
-
-DESCRIPTION="LDAP suite of application and development tools"
-HOMEPAGE="https://www.openldap.org/"
-SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
- mirror://gentoo/${BIS_P}
-"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
-
-LICENSE="OPENLDAP GPL-2"
-# Subslot added for bug #835654
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
-
-IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
-IUSE_OVERLAY="overlays perl autoca"
-IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
-IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
-IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
-IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
-REQUIRED_USE="
- cxx? ( sasl )
- pbkdf2? ( ssl )
- test? ( cleartext sasl )
- autoca? ( !gnutls )
- ?? ( test minimal )
- kerberos? ( ?? ( kinit smbkrb5passwd ) )
-"
-RESTRICT="!test? ( test )"
-
-SYSTEM_LMDB_VER=0.9.31
-# openssl is needed to generate lanman-passwords required by samba
-COMMON_DEPEND="
- kernel_linux? ( sys-apps/util-linux )
- ssl? (
- !gnutls? (
- >=dev-libs/openssl-1.0.1h-r2: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? (
- dev-libs/libevent:=
- dev-libs/libltdl
- sys-fs/e2fsprogs
- >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
- argon2? ( app-crypt/argon2:= )
- crypt? ( virtual/libcrypt:= )
- tcpd? ( sys-apps/tcp-wrappers )
- odbc? ( !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc ) )
- perl? ( dev-lang/perl:=[-build(-)] )
- samba? (
- dev-libs/openssl:0=
- )
- smbkrb5passwd? (
- dev-libs/openssl:0=
- kerberos? ( app-crypt/heimdal )
- )
- kerberos? (
- virtual/krb5
- kinit? ( !app-crypt/heimdal )
- )
- )
-"
-DEPEND="
- ${COMMON_DEPEND}
- sys-apps/groff
-"
-RDEPEND="
- ${COMMON_DEPEND}
- selinux? ( sec-policy/selinux-ldap )
-"
-
-# The user/group are only used for running daemons which are
-# disabled in minimal builds, so elide the accounts too.
-BDEPEND="
- !minimal? (
- acct-group/ldap
- acct-user/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
-)
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
- "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
- "${FILESDIR}"/${PN}-2.6.1-cloak.patch
- "${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
- "${FILESDIR}"/${PN}-2.6.6-fix-type-mismatch-lloadd.patch
- "${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
- "${FILESDIR}"/${PN}-2.6.x-slapd-pointer-types.patch
-)
-
-openldap_filecount() {
- local dir="$1"
- find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
-}
-
-openldap_find_versiontags() {
- # scan for all datadirs
- 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_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="${EROOT}$(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
- # 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=$(ver_cut 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.
- # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
- 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}')"
- local fail=0
-
- # This will not cover detection of cn=Config based configuration, but
- # it's hopefully good enough.
- if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted away from backend shell!"
- echo
- fail=1
- fi
- if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
- eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
- eerror " You will need to migrate per upstream's migration notes"
- eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
- eerror " Your existing database will not be accessible until it is"
- eerror " converted to mdb!"
- echo
- fail=1
- elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
- :
- # Nothing wrong here.
- 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}" ]] && [[ -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() {
- local d l i
- 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/slapd stop"
- eerror " 2. slapcat -l ${i}"
- eerror " 3. grep -E -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
-}
-
-src_prepare() {
- # The system copy of dev-db/lmdb must match the version that this copy
- # of OpenLDAP shipped with! See bug #588792.
- #
- # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
- # the bundled lmdb's header to find out the version.
- local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
- libraries/liblmdb/lmdb.h || die)
- printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
-
- if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
- eerror "Source lmdb version: ${bundled_lmdb_version}"
- eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
- die "Ebuild needs to update SYSTEM_LMDB_VER!"
- fi
-
- rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
-
- local filename
- for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
- iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
- mv "${filename}.utf8" "${filename}"
- done
-
- default
-
- sed -i \
- -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
- -e '/MKDIR.*.(DESTDIR)\/run/d' \
- servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
-
- 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 remove too early stripping"
- popd &>/dev/null || die
-
- # Fails with OpenSSL 3, bug #848894
- # https://bugs.openldap.org/show_bug.cgi?id=10009
- rm tests/scripts/test076-authid-rewrite || die
-
- eautoreconf
- multilib_copy_sources
-}
-
-build_contrib_module() {
- # <dir> [<target>]
- pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
- einfo "Compiling contrib-module: $1"
- local target="${2:-all}"
- emake \
- LDAP_BUILD="${BUILD_DIR}" prefix="${EPREFIX}/usr" \
- CC="${CC}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
- "${target}"
- popd &>/dev/null || die
-}
-
-multilib_src_configure() {
- # Workaround for bug #923334, #938553, #946816
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- # Optional Features
- myconf+=(
- --enable-option-checking
- $(use_enable debug)
- --enable-dynamic
- $(use_enable syslog)
- --enable-ipv6
- --enable-local
- )
-
- # Optional Packages
- myconf+=(
- --without-fetch
- $(multilib_native_use_with sasl cyrus-sasl)
- )
-
- if use experimental ; then
- # connectionless ldap per bug #342439
- # connectionless is a unsupported feature according to Howard Chu
- # see https://bugs.openldap.org/show_bug.cgi?id=9739
- # (see also bug #892009)
- append-flags -DLDAP_CONNECTIONLESS
- fi
-
- if ! use minimal && multilib_is_native_abi; then
- # SLAPD (Standalone LDAP Daemon) Options
- # overlay chaining requires '--enable-ldap' #296567
- # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
- myconf+=(
- --enable-ldap=yes
- --enable-slapd
- $(use_enable cleartext)
- $(use_enable crypt)
- $(multilib_native_use_enable sasl spasswd)
- --disable-slp
- $(use_enable tcpd wrappers)
- )
- if use experimental ; then
- myconf+=(
- --enable-dynacl
- # ACI build as dynamic module not supported (yet)
- --enable-aci=yes
- )
- fi
-
- for option in modules rlookups slapi; do
- myconf+=( --enable-${option} )
- done
-
- # static SLAPD backends
- for backend in mdb; do
- myconf+=( --enable-${backend}=yes )
- done
-
- # module SLAPD backends
- for backend in asyncmeta dnssrv meta null passwd relay sock; do
- # missing modules: wiredtiger (not available in portage)
- myconf+=( --enable-${backend}=mod )
- done
-
- use perl && myconf+=( --enable-perl=mod )
-
- if use odbc ; then
- myconf+=( --enable-sql=mod )
- if use iodbc ; then
- myconf+=( --with-odbc="iodbc" )
- append-cflags -I"${EPREFIX}"/usr/include/iodbc
- else
- myconf+=( --with-odbc="unixodbc" )
- fi
- fi
-
- use overlays && myconf+=( --enable-overlays=mod )
- use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
- # compile-in the syncprov
- myconf+=( --enable-syncprov=yes )
-
- # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
- myconf+=( --enable-balancer=yes )
-
- # SLAPD Password Module Options
- myconf+=(
- $(use_enable argon2)
- )
-
- # Optional Packages
- myconf+=(
- $(use_with systemd)
- )
- else
- myconf+=(
- --disable-backends
- --disable-slapd
- --disable-mdb
- --disable-overlays
- --disable-autoca
- --disable-syslog
- --without-systemd
- )
- fi
-
- # Library Generation & Linking Options
- myconf+=(
- $(use_enable static-libs static)
- --enable-shared
- --enable-versioning
- --with-pic
- )
-
- # 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
- if use gnutls ; then
- myconf+=( --with-tls="gnutls" )
- else
- # disable MD2 hash function
- append-cflags -DOPENSSL_NO_MD2
- myconf+=( --with-tls="openssl" )
- fi
- else
- myconf+=( --with-tls="no" )
- fi
-
- tc-export AR CC CXX
-
- ECONF_SOURCE="${S}" econf \
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
- --localstatedir="${EPREFIX}"/var \
- --runstatedir="${EPREFIX}"/run \
- --sharedstatedir="${EPREFIX}"/var/lib \
- "${myconf[@]}"
-
- # argument '--runstatedir' seems to have no effect therefore this workaround
- sed -i \
- -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
- configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
-
- sed -i \
- -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
- doc/guide/admin/security.sdf || die 'could not fix run path in doc'
-
- emake depend
-}
-
-src_configure_cxx() {
- # This needs the libraries built by the first build run.
- # we have to run it AFTER the main build, not just after the main configure
- local myconf_ldapcpp=(
- --with-libldap="${E}/lib"
- --with-ldap-includes="${S}/include"
- )
-
- mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
-
- local LDFLAGS="${LDFLAGS}"
- local 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[@]}"
- popd &>/dev/null || die "popd contrib/ldapc++"
-}
-
-multilib_src_compile() {
- tc-export AR CC CXX
- emake CC="$(tc-getCC)" SHELL="${EPREFIX}"/bin/sh
-
- if ! use minimal && multilib_is_native_abi ; then
- if use cxx ; then
- einfo "Building contrib library: ldapc++"
- src_configure_cxx
- pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
- emake
- popd &>/dev/null || die
- fi
-
- if use smbkrb5passwd ; then
- einfo "Building contrib-module: smbk5pwd"
- pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
-
- 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}" \
- libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
- popd &>/dev/null || die
- fi
-
- if use overlays ; then
- einfo "Building contrib-module: samba4"
- pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
-
- emake \
- LDAP_BUILD="${BUILD_DIR}" \
- CC="$(tc-getCC)" libexecdir="${EPREFIX}/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
- build_contrib_module "passwd" "pw-kerberos.la"
- fi
-
- if use pbkdf2; then
- build_contrib_module "passwd/pbkdf2"
- fi
-
- if use sha2 ; then
- build_contrib_module "passwd/sha2"
- fi
-
- # We could build pw-radius if GNURadius would install radlib.h
- build_contrib_module "passwd" "pw-netscape.la"
-
- #build_contrib_module "acl" "posixgroup.la" # example code only
- #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
- build_contrib_module "addpartial"
- build_contrib_module "allop"
- build_contrib_module "allowed"
- build_contrib_module "autogroup"
- build_contrib_module "cloak"
- # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
- build_contrib_module "denyop"
- build_contrib_module "dsaschema"
- build_contrib_module "dupent"
- build_contrib_module "lastbind"
- # lastmod may not play well with other overlays
- build_contrib_module "lastmod"
- build_contrib_module "noopsrch"
- #build_contrib_module "nops" https://bugs.gentoo.org/641576
- #build_contrib_module "nssov" RESO:LATER
- build_contrib_module "trace"
- # build slapi-plugins
- pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
- einfo "Building contrib-module: addrdnvalues plugin"
- $(tc-getCC) -shared \
- -I"${BUILD_DIR}"/include \
- -I../../../include \
- ${CPPFLAGS} \
- ${CFLAGS} \
- -fPIC \
- ${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
- pwd
-
- # Increase various test timeouts/delays, bug #894012
- # We can't just double everything as there's a cumulative effect.
- export SLEEP0=2 # originally 1
- export SLEEP1=10 # originally 7
- export SLEEP2=20 # originally 15
- export TIMEOUT=16 # originally 8
-
- # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
- # emake partests => runs ALL of the tests in parallel
- # wt/WiredTiger is not supported in Gentoo
- TESTS=( plloadd pmdb )
- #TESTS+=( pldif ) # not done by default, so also exclude here
- #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
-
- emake -Onone "${TESTS[@]}"
- fi
-}
-
-multilib_src_install() {
- emake CC="$(tc-getCC)" \
- DESTDIR="${D}" SHELL="${EPREFIX}"/bin/sh install
-
- 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.6.3-slapd-conf slapd.conf
- configfile="${ED}"/etc/openldap/slapd.conf
-
- # populate with built backends
- einfo "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}" || die
- done
- sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
- -i "${configfile}" || die
- use prefix || fowners root:ldap /etc/openldap/slapd.conf
- fperms 0640 /etc/openldap/slapd.conf
- cp "${configfile}" "${configfile}".default || die
-
- # install our own init scripts and systemd unit files
- einfo "Install init scripts"
- 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.6.1 slapd
-
- if use systemd; then
- # The systemd unit uses Type=notify, so it is useless without USE=systemd
- einfo "Install systemd service"
- rm -rf "${ED}"/{,usr/}lib/systemd
- sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
- systemd_dounit "${T}"/slapd.service
- systemd_install_serviced "${FILESDIR}"/slapd.service.conf
- newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
- fi
-
- # if built without SLP, we don't need to be before avahi
- sed -i \
- -e '/before/{s/avahi-daemon//g}' \
- "${ED}"/etc/init.d/slapd \
- || die
-
- 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="${EPREFIX}/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
- libtool --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-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
-
- 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() {
- dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
- docinto rfc ; dodoc doc/rfc/*.txt
- rmdir -p "${D}"/var/openldap-lloadd # Created but not used by any part of current codebase.
-}
-
-pkg_preinst() {
- # keep old libs if any
- preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(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
- if use systemd; then
- tmpfiles_process slapd.conf
- fi
-
- # 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
- 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://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
- fi
-
- preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
-}
diff --git a/net-nds/openldap/openldap-2.6.8-r1.ebuild b/net-nds/openldap/openldap-2.6.8-r1.ebuild
index dcd8bb68c6da..a001cc4d9e3f 100644
--- a/net-nds/openldap/openldap-2.6.8-r1.ebuild
+++ b/net-nds/openldap/openldap-2.6.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -26,7 +26,7 @@ S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
LICENSE="OPENLDAP GPL-2"
# Subslot added for bug #835654
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
IUSE_OVERLAY="overlays perl autoca"
@@ -148,9 +148,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.6.1-cloak.patch
"${FILESDIR}"/${PN}-2.6.1-flags.patch
"${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
- #"${FILESDIR}"/${PN}-2.6.6-fix-type-mismatch-lloadd.patch
"${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
- #"${FILESDIR}"/${PN}-2.6.x-slapd-pointer-types.patch # included upstream
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
)
openldap_filecount() {
@@ -423,10 +422,6 @@ multilib_src_configure() {
$(multilib_native_use_with sasl cyrus-sasl)
)
- # error: passing argument 3 of ‘ldap_bv2rdn’ from incompatible pointer type [-Wincompatible-pointer-types]
- # expected ‘char **’ but argument is of type ‘const char **’
- #append-flags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-
if use experimental ; then
# connectionless ldap per bug #342439
# connectionless is a unsupported feature according to Howard Chu
diff --git a/net-nds/openldap/openldap-2.6.8.ebuild b/net-nds/openldap/openldap-2.6.9.ebuild
index 292b1747d736..b6bac7149c3e 100644
--- a/net-nds/openldap/openldap-2.6.8.ebuild
+++ b/net-nds/openldap/openldap-2.6.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ EAPI=8
# 2.5.x is an LTS release so we want to keep it for a while.
inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
-inherit ssl-cert toolchain-funcs systemd tmpfiles
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
MY_PV="$(ver_rs 1-2 _)"
@@ -18,15 +18,17 @@ BIS_P="${BIS_PN}-${BIS_PV}"
DESCRIPTION="LDAP suite of application and development tools"
HOMEPAGE="https://www.openldap.org/"
SRC_URI="
- https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
mirror://gentoo/${BIS_P}
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
"
-S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
+#S="${WORKDIR}"/${P}
LICENSE="OPENLDAP GPL-2"
# Subslot added for bug #835654
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
IUSE_OVERLAY="overlays perl autoca"
@@ -37,7 +39,7 @@ IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${
REQUIRED_USE="
cxx? ( sasl )
pbkdf2? ( ssl )
- test? ( cleartext sasl )
+ test? ( cleartext sasl debug )
autoca? ( !gnutls )
?? ( test minimal )
kerberos? ( ?? ( kinit smbkrb5passwd ) )
@@ -98,6 +100,7 @@ BDEPEND="
acct-group/ldap
acct-user/ldap
)
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
"
# for tracking versions
@@ -147,10 +150,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
"${FILESDIR}"/${PN}-2.6.1-cloak.patch
"${FILESDIR}"/${PN}-2.6.1-flags.patch
- "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.patch
- #"${FILESDIR}"/${PN}-2.6.6-fix-type-mismatch-lloadd.patch
- "${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
- #"${FILESDIR}"/${PN}-2.6.x-slapd-pointer-types.patch # included upstream
+ "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
)
openldap_filecount() {
@@ -342,6 +343,12 @@ pkg_setup() {
fi
}
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
src_prepare() {
# The system copy of dev-db/lmdb must match the version that this copy
# of OpenLDAP shipped with! See bug #588792.
@@ -404,6 +411,9 @@ build_contrib_module() {
}
multilib_src_configure() {
+ # Workaround for bug #923334, #938553, #946816
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
# Optional Features
myconf+=(
--enable-option-checking
@@ -420,10 +430,6 @@ multilib_src_configure() {
$(multilib_native_use_with sasl cyrus-sasl)
)
- # error: passing argument 3 of ‘ldap_bv2rdn’ from incompatible pointer type [-Wincompatible-pointer-types]
- # expected ‘char **’ but argument is of type ‘const char **’
- #append-flags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-
if use experimental ; then
# connectionless ldap per bug #342439
# connectionless is a unsupported feature according to Howard Chu