]> git.draconx.ca Git - gentoo-draconx.git/commitdiff
gnome-extra/evolution-mapi: Bump.
authorNick Bowler <nbowler@draconx.ca>
Fri, 9 Sep 2022 00:27:05 +0000 (20:27 -0400)
committerNick Bowler <nbowler@draconx.ca>
Fri, 9 Sep 2022 00:27:05 +0000 (20:27 -0400)
The eclass this package depends on was punted from the tree so we need
to update it.  This would be easy enough, except that it is no longer
possible to build libmapi against current samba versions.

We can patch it so at least it can be installed, but I no longer have
any way to test this against a real Exchange server.

12 files changed:
dev-util/pidl/Manifest [new file with mode: 0644]
dev-util/pidl/pidl-4.15.7.ebuild [new file with mode: 0644]
gnome-extra/evolution-mapi/Manifest
gnome-extra/evolution-mapi/evolution-mapi-3.24.5-r1.ebuild [deleted file]
gnome-extra/evolution-mapi/evolution-mapi-3.44.2.ebuild [moved from gnome-extra/evolution-mapi/evolution-mapi-3.30.5.ebuild with 72% similarity]
gnome-extra/evolution-mapi/files/evolution-mapi-3.24-libical-3.patch [deleted file]
net-libs/libmapi/Manifest
net-libs/libmapi/files/libmapi-2.3-configure-bashisms.patch [new file with mode: 0644]
net-libs/libmapi/files/libmapi-2.3-fix-pidl-compilation.patch [new file with mode: 0644]
net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch [new file with mode: 0644]
net-libs/libmapi/files/libmapi-2.3-update-ndr-api.patch [new file with mode: 0644]
net-libs/libmapi/libmapi-2.3-r1.ebuild [moved from net-libs/libmapi/libmapi-2.3.ebuild with 71% similarity]

diff --git a/dev-util/pidl/Manifest b/dev-util/pidl/Manifest
new file mode 100644 (file)
index 0000000..ffec1fa
--- /dev/null
@@ -0,0 +1,2 @@
+DIST samba-4.15.7.tar.gz 19290930 BLAKE2B 4a295f79d38212d4c6917ed61a22e4204b5ea3d5e26f30b65d1e7e81842e92405870dd40fd4d05ec1126a532bdb1ddea300848387a4c64370ba5c2c1354ee8e5 SHA512 beffb09b5bcd62991398d39c7a8aec5fed0c51d550e2f0fb42b2e0a09094f4c6a8f29adf708c4969db12329f5c7343d2debd04315107b79bef59e99a4a7e4ce4
+EBUILD pidl-4.15.7.ebuild 489 BLAKE2B b0b8e03c120d35f7cf7833a104b4e22a5413822a03c96136794d3d61396af3fe13948f542c46086ad1d1dd8887b98874027016dcee62fe2d76acd763cbf4fc8c SHA512 a55f239dac52c6d2bffd4442918b505895010f73b9e90db6d5a7511e472e7d3cd307104ed75cc6b9d115d971019c8a2bd5cb955a4c7a0ae2ab49d0e19a93c388
diff --git a/dev-util/pidl/pidl-4.15.7.ebuild b/dev-util/pidl/pidl-4.15.7.ebuild
new file mode 100644 (file)
index 0000000..0778fa3
--- /dev/null
@@ -0,0 +1,20 @@
+# Copyright © 2022 Nick Bowler
+# License GPLv3+: GNU General Public License version 3 or any later version.
+# This is free software: you are free to change and redistribute it.
+# There is NO WARRANTY, to the extent permitted by law.
+
+EAPI=8
+
+inherit perl-module
+
+MY_P=samba-$PV
+
+DESCRIPTION="An IDL compiler written in perl."
+HOMEPAGE="https://wiki.samba.org/index.php/Pidl"
+SRC_URI="mirror://samba/stable/$MY_P.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+S=$WORKDIR/$MY_P/pidl
index 8a83ffd9eff8e73431f0d2a86bfcaa41ee435e7e..b4b9c7e335b7266ab6cc09b144936870d7cdf209 100644 (file)
@@ -1,5 +1,2 @@
-AUX evolution-mapi-3.24-libical-3.patch 2430 BLAKE2B 2b2894d4751fd5de1bd8fdeda7330657c6050cd4546a143d21943e2b57646d8b0212ba274f73b05a68a4cbe3da37958959c59e5f8e061e0106c7c6f827e3bda5 SHA512 6d353545b5081e7d4c7ae5c58fed91344240b9b0b65a9b1e3fbabb120717eefd2c1089f04a4eafc319f4c3b373ec6ae1dd0bb676ad513a634f3f9dce21a798c7
-DIST evolution-mapi-3.24.5.tar.xz 416504 BLAKE2B 0bbe6100ef5990d813b7fb0a6d8f45293fc077e2c62ff928a7073df877404da43e21cb748e8d3dafeb0a09d8a70c903fb75846e080718b346e7c9d7d5a09ad82 SHA512 df541e36fdab0054961f820deaeb10277069f5e2d977c3e8799cab10dc300d8a61d2090bdf1bb6ce4e03a4550d666607a57422f01cfaafdafcc634746ae8ef92
-DIST evolution-mapi-3.30.5.tar.xz 410036 BLAKE2B 7f54d896b36bbe39ce1e0d0f86da506afa9a43436ae7153e70d9b4ab301ea9e7d1ecfed1ab984d33f9acd31d8fe3862764418efe7d6c5f0a0e5d16d7c481c638 SHA512 44cc1a2c1d106168e890a64dc04e96f459212b28ba30f99173cd3ffd19bfd5572979f3bc7b7994952310e0f4d1c9d62a88486028a69f9ddb63d5bac65fe8a174
-EBUILD evolution-mapi-3.24.5-r1.ebuild 1068 BLAKE2B e022347557612723724c8dff77ae2d8efb98669c40269407400a7ee992108282c63127da03b2a34a9ff2dd088bc5894ec480379be855fa7955982235ffc8009a SHA512 0f5f82bb6250b4f490a922380dfea2aa5ecbd6f80fcb0934a7c5373b0148f0fe7b4b55a35a611a572be11a3f40ad085fddcaeb6b73c6df2c8f3e89f0091c6b04
-EBUILD evolution-mapi-3.30.5.ebuild 1017 BLAKE2B 273102e10b1f7605dd600bf444c3ec69f82c521fa0e36a532e9d4e0f4e9260f07764c5e3e25bda1ff5f79683a6705fe69e0b7bbc8eeb672e20a06c3c0df8c670 SHA512 235aafc9b296b3e5c46b4bccc6f22780b55600afe90377a83c7f8c94279f2a50f0f1ead67bc6d6504e283fc3831788e410d000ebcd94d8c0fdab01bbc6fa764a
+DIST evolution-mapi-3.44.2.tar.xz 423864 BLAKE2B e3a56ffb52725947fecb45e530bd9a8538715125dc708d82ac96309e0f5ab2ba2fb72a1eb42a0be936fe716603fd51f10f05eb353d64e4438b9a9d1842e1af46 SHA512 31c4167140bf2a84ff4710b6c2877a771e852e21368eb1a0952a460090bfc7e4c3f4f6ef6a2443b6fc34e5218d18a9ef834300628bea89e0cf1aa7693b1bd664
+EBUILD evolution-mapi-3.44.2.ebuild 902 BLAKE2B 6684e4d2a7d3ac34c4f46765a7c68689e52b9d6295f3103c74ecccc435da5359561dbb9da386084b962a59c15faf770642a20244ffc80f72e4cd8c66ef0d0784 SHA512 ddeabf90ca40f966208f9e1ca44251feec3bf32aa781bac145ea7b411ce970d25aac7f17fd4866ffbbb35ec5897dea2d35e39c3f88696412157368be22fd0a49
diff --git a/gnome-extra/evolution-mapi/evolution-mapi-3.24.5-r1.ebuild b/gnome-extra/evolution-mapi/evolution-mapi-3.24.5-r1.ebuild
deleted file mode 100644 (file)
index 676c7da..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright © 2016, 2018-2019 Nick Bowler
-# License GPLv3+: GNU General Public License version 3 or any later version.
-# There is NO WARRANTY, to the extent permitted by law.
-
-EAPI=6
-
-inherit cmake-utils gnome2
-
-DESCRIPTION="Evolution module for connecting to Microsoft Exchange"
-HOMEPAGE="https://wiki.gnome.org/Apps/Evolution"
-
-LICENSE="LGPL-3"
-KEYWORDS="~amd64"
-SLOT="0"
-
-RDEPEND=">=gnome-extra/evolution-data-server-$PV:0=
-       >=mail-client/evolution-$PV:2.0
-       >=net-libs/libmapi-2
-       dev-libs/libical:="
-
-DEPEND="$RDEPEND
-       virtual/pkgconfig"
-
-PATCHES=(
-       "$FILESDIR/$PN-3.24-libical-3.patch"
-)
-
-src_prepare () {
-       cmake-utils_src_prepare
-
-       # Both cmake-utils_src_prepare and gnome2_src_prepare call default, which
-       # means patches get applied twice and that doesn't end well.  So redefine
-       # default to do nothing here, since it's already been run...
-       default () { :; }
-       gnome2_src_prepare
-}
-
-src_configure () {
-       cmake-utils_src_configure
-}
-
-src_compile () {
-       cmake-utils_src_compile
-}
-
-src_test () {
-       cmake-utils_src_test
-}
-
-src_install () {
-       cmake-utils_src_install
-}
similarity index 72%
rename from gnome-extra/evolution-mapi/evolution-mapi-3.30.5.ebuild
rename to gnome-extra/evolution-mapi/evolution-mapi-3.44.2.ebuild
index bb5d3ae50f6bdbe71c0a070dbef2b2fc47f901b4..909031ac41446437094837733dca1ca0662c3918 100644 (file)
@@ -1,10 +1,11 @@
-# Copyright © 2016, 2018-2019 Nick Bowler
+# Copyright © 2016, 2018-2019, 2022 Nick Bowler
 # License GPLv3+: GNU General Public License version 3 or any later version.
+# This is free software: you are free to change and redistribute it.
 # There is NO WARRANTY, to the extent permitted by law.
 
-EAPI=6
+EAPI=8
 
-inherit cmake-utils gnome2
+inherit gnome2 cmake
 
 DESCRIPTION="Evolution module for connecting to Microsoft Exchange"
 HOMEPAGE="https://wiki.gnome.org/Apps/Evolution"
@@ -22,7 +23,7 @@ DEPEND="$RDEPEND
        virtual/pkgconfig"
 
 src_prepare () {
-       cmake-utils_src_prepare
+       cmake_src_prepare
 
        # Both cmake-utils_src_prepare and gnome2_src_prepare call default, which
        # means patches get applied twice and that doesn't end well.  So redefine
@@ -30,19 +31,3 @@ src_prepare () {
        default () { :; }
        gnome2_src_prepare
 }
-
-src_configure () {
-       cmake-utils_src_configure
-}
-
-src_compile () {
-       cmake-utils_src_compile
-}
-
-src_test () {
-       cmake-utils_src_test
-}
-
-src_install () {
-       cmake-utils_src_install
-}
diff --git a/gnome-extra/evolution-mapi/files/evolution-mapi-3.24-libical-3.patch b/gnome-extra/evolution-mapi/files/evolution-mapi-3.24-libical-3.patch
deleted file mode 100644 (file)
index 6f08e59..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From 092a148dd27dafbe9493aada43c1141ff5f691e2 Mon Sep 17 00:00:00 2001
-From: Milan Crha <mcrha@redhat.com>
-Date: Wed, 4 Oct 2017 12:01:39 +0200
-Subject: [PATCH] Use icaltime_is_utc() instead of icaltimetype::is_utc
-
-The structure member is going to be removed from libical in the next release
-and the function is available for a long time, thus it's safe to replace
-the usage in the code.
----
- src/libexchangemapi/e-mapi-cal-tz-utils.c |  2 +-
- src/libexchangemapi/e-mapi-cal-utils.c    | 15 ++++++++++++---
- 2 files changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/src/libexchangemapi/e-mapi-cal-tz-utils.c b/src/libexchangemapi/e-mapi-cal-tz-utils.c
-index 72abe0cae993..af0b1a4fa071 100644
---- a/src/libexchangemapi/e-mapi-cal-tz-utils.c
-+++ b/src/libexchangemapi/e-mapi-cal-tz-utils.c
-@@ -94,7 +94,7 @@ e_mapi_tm_to_icaltimetype (struct tm *tm,
-       itt.month = dst ? 6 : 1;
-       itt.year = tm->tm_year + 1900;
--      itt.is_utc = 0;
-+      itt.zone = NULL;
-       itt.is_date = 0;
-       return itt;
-diff --git a/src/libexchangemapi/e-mapi-cal-utils.c b/src/libexchangemapi/e-mapi-cal-utils.c
-index 2b1bb536e5b9..18afdcb38828 100644
---- a/src/libexchangemapi/e-mapi-cal-utils.c
-+++ b/src/libexchangemapi/e-mapi-cal-utils.c
-@@ -2177,20 +2177,29 @@ e_mapi_cal_utils_comp_to_object (EMapiConnection *conn,
-                       prop = icalcomponent_get_first_property (ical_comp, ICAL_COMPLETED_PROPERTY);
-                       completed = icalproperty_get_completed (prop);
--                      completed.hour = completed.minute = completed.second = 0; completed.is_date = completed.is_utc = 1;
-+                      completed.hour = completed.minute = completed.second = 0;
-+                      completed.is_date = 1;
-+                      completed.zone = utc_zone;
-+
-                       tt = icaltime_as_timet (completed);
-                       set_timet_value (PidLidTaskDateCompleted, tt);
-               }
-               /* Start */
--              dtstart.hour = dtstart.minute = dtstart.second = 0; dtstart.is_date = dtstart.is_utc = 1;
-+              dtstart.hour = dtstart.minute = dtstart.second = 0;
-+              dtstart.is_date = 1;
-+              dtstart.zone = utc_zone;
-+
-               tt = icaltime_as_timet (dtstart);
-               if (!icaltime_is_null_time (dtstart)) {
-                       set_timet_value (PidLidTaskStartDate, tt);
-               }
-               /* Due */
--              dtend.hour = dtend.minute = dtend.second = 0; dtend.is_date = dtend.is_utc = 1;
-+              dtend.hour = dtend.minute = dtend.second = 0;
-+              dtend.is_date = 1;
-+              dtend.zone = utc_zone;
-+
-               tt = icaltime_as_timet (dtend);
-               if (!icaltime_is_null_time (dtend)) {
-                       set_timet_value (PidLidTaskDueDate, tt);
--- 
-2.19.2
-
index ebba52725a38c2a0dc2117862f92a2dbb4a08705..9245b3659ebd98180ea8ace4434c980b43080a16 100644 (file)
@@ -1,6 +1,10 @@
-AUX libmapi-2.3-no-automake.patch 347 SHA256 9dfda412acc7773f483441f0077ef2db6809115a7ddea7fd0f30cec85860b0af SHA512 d32502573c43d38286c6ed6f11952ecc7b98d7af67d29d27fcb53a26769b654c6235651c972f04b938d31b28259c90cd3725e7a842b9835eca6e14d26b9dbb4a WHIRLPOOL 5747b6cb691ef24e56352604353b0b14df2fe17c8313f1962362985d69ea965362b097dc713cb2b310ef74a6d0da5411e2fd430e9b9603aa6e229a18d2a47bb9
-AUX libmapi-2.3-no-build-tests.patch 471 SHA256 fed418a71f77180f58afd18c74c0c1d4aa86e7a6b27feb9d522f2736d90f7a52 SHA512 17d551d50f09214fef116ea30e6a1ac38bd00c03b777305158ff4baaf31422af2216c395d347f8e7acc851fabfb13ab7cd683e4b77a3e250aed671b8394c094f WHIRLPOOL 1054effd420f92deb3e681c543d20e23a2c69f6bb29981cc1e5d27482b6324b73f98918b4b6a686c48f39bee6e419983b245de086c1485c7fcde2bf4a1651b32
-AUX libmapi-2.3-no-recompile-on-install.patch 395 SHA256 3032b65c375663cdf65aa27e99ad08501c8b7072bfd69946909301aa5ae9b573 SHA512 98628be533d4446bd9cfa5739db75dbe473f3897ec0a59bf30fea7169c8d80aae2c759becd6341e39d40fc2f3fbc7243571a7e8a5e5ad28686431eb1d9924817 WHIRLPOOL 3e8a06a726aac79945ed3879f1efb6d119e2c1d1e54b1e4ce6999391de85e46005859861239b00d60b5b77650820dcf4428447bf93165c86a2696a46024fccdf
-AUX libmapi-2.3-no-useless-cflags.patch 477 SHA256 2b398499ee60a488c0c935b4c3b4054ec4f58eabe3be57a65494579126f918ed SHA512 e986780be300ca52202b1a183f66513a8061a0260cd0b65c5ef1441946eb5b6091da05d47d570929dbc718df006db54d58fa2988976bbf26b68038722359b78a WHIRLPOOL 961392b0e1f149b6c648483344498dd26566fb2978161b6d86f21b040ad2290a05f4b30e1faca938410a30bb271ac38a7b62dfdfa9917c25be62db341d40549d
-DIST openchange-2.3-VULCAN.tar.gz 2088008 SHA256 46ffdc779bb7bf6a823f6d1a78c5ca3f5548b981ad90164214a68279b403a05e SHA512 e157699e04836c5ff52250480ca94834052e4e1848c843495b8e5af4926bdf17a15f0e0e08b71aadaf6502b5af4b8725ce6bb08193cece5a80ecdb7af6ab574b WHIRLPOOL d74c89217128702da58cf7779c57ba9bde2c97977e56aa7136f328da79d809c37661e4d59c3a3cbe618b1f55b862d11658fc63691b591074457c0a4d1cc860e3
-EBUILD libmapi-2.3.ebuild 1089 SHA256 688f8ff5713811987d0de250fd60c2e75fecab386fc7233826ba9368357787b3 SHA512 a7191a0641d75d259ce6c24c697b6e2751273a3eac8ff68bf7ead3687dfbf267b5fc1a0c74f9123d54c2f85fcf8a32c194856d8a51a292032536040304deb7cb WHIRLPOOL b7bc90eb4057e7a7b81726aa68e3a6f0bc0bdff37388938151496fa88b93c9ecc4e001aa78fb20a21d858207dc7231cbbca0e291e0df7753adbad61b23a113aa
+AUX libmapi-2.3-configure-bashisms.patch 528 BLAKE2B 40de159db59eb8dd7cc7f3873f7f16e416c7128d39619ba521e0346b6618d9266b9e255606eca6e17bcca271c8d43ef358f1f84db4e5b97aad9fc5b019e1f989 SHA512 7f30bea39537e4fa1adeacacf66b6e5cace0b04b21a0177d037d3a326b5ef317e0086d7de284ba4659fe21ea23148f621ee3a970e47abdce6f055cbb7e3c359d
+AUX libmapi-2.3-fix-pidl-compilation.patch 1650 BLAKE2B ae2981c8df05ee2266c5a2c5e09e46ffe1d694534fcb00673ae466f758b0064a0bca5f2293d07563f6c405051151dc6fbbd46fc71b8d0b2d345dc6df23af04ee SHA512 ea8920859a8e424873943927648b0b08e65d54a09eb033de71e57d1bcc157e990335f88c5594235f80de05016459e848539f8ea18cb1538d2918752d3273363a
+AUX libmapi-2.3-no-automake.patch 347 BLAKE2B ce04e39959c97dbaa8c870c2d3db3da5fcf0ae0e0b37b6c3ac98bb70bc661cdb96935f46b69f491d046ed3205277131ddc412b0616e25b261e77d8cd6803b8c6 SHA512 d32502573c43d38286c6ed6f11952ecc7b98d7af67d29d27fcb53a26769b654c6235651c972f04b938d31b28259c90cd3725e7a842b9835eca6e14d26b9dbb4a
+AUX libmapi-2.3-no-build-tests.patch 471 BLAKE2B 2927bb7f096194c07ce24fe103be66a7056298069dd7aae7dd79f1a8425a19c2792822346b20a529c5fbe8e018163220760d938970dc2bf73f7fd9a6fd9585ce SHA512 17d551d50f09214fef116ea30e6a1ac38bd00c03b777305158ff4baaf31422af2216c395d347f8e7acc851fabfb13ab7cd683e4b77a3e250aed671b8394c094f
+AUX libmapi-2.3-no-recompile-on-install.patch 395 BLAKE2B 1207a6fb7e824712f5e27a88dba50fb4efd261d7dcc3cfe2136a5d83852dd3c65db37ef4f660849179e1f435cb3f9bf725971d3167dbc051cb8fb7d341ad7328 SHA512 98628be533d4446bd9cfa5739db75dbe473f3897ec0a59bf30fea7169c8d80aae2c759becd6341e39d40fc2f3fbc7243571a7e8a5e5ad28686431eb1d9924817
+AUX libmapi-2.3-no-useless-cflags.patch 477 BLAKE2B b763dd78d322e091fdbf22d015dfddda4accc5648f09d9f6e3250129549a6b7ffa5a240be6624659dda9aa1acd83855d95a9c58ced9c017c9deb0ee3e430e5ca SHA512 e986780be300ca52202b1a183f66513a8061a0260cd0b65c5ef1441946eb5b6091da05d47d570929dbc718df006db54d58fa2988976bbf26b68038722359b78a
+AUX libmapi-2.3-update-credentials-api.patch 3021 BLAKE2B 523631a8fae0b05ff24bbd42ed5eed908cf0adc6dbdd487d513a61dc55c6ffd54b57e1536dd3ccdc40be48674f6a72c9de7c36319f6edb913278b865feef9255 SHA512 c64a98adab9081d308b4eab271ce47f7a7da72a8572cddf148d2b92b7151805d41f6331a2dfc464cfe12594110bc88911d5e34650df84f43328ea5c850f6a1b5
+AUX libmapi-2.3-update-ndr-api.patch 4382 BLAKE2B 2ab0f6de235cab04c586e1aebfeb82ad725cfe38087c36ba3c056f67f83d29097dd3a15a749fe95ecbdbc35e620f283cd6ee2f9182ebdf8e5d5e3dbb96e763ce SHA512 26031d4e6f3aeebd07c8ad2df5717c3488d723bb30f47a7a1701f539d1c174721853bc44ac6c417b0947698e1de5de7148c84ef21267753b6792c50d1cb1cc0e
+DIST openchange-2.3-VULCAN.tar.gz 2088008 BLAKE2B 3ee4e5fd1b215fd17412b27d6f7c1d38d2cc8db21c0108cfa3c23f0212e5f67545cf266d2da4d11874f08b630b7a06378c64020be8672c5dc2c668ad42403251 SHA512 e157699e04836c5ff52250480ca94834052e4e1848c843495b8e5af4926bdf17a15f0e0e08b71aadaf6502b5af4b8725ce6bb08193cece5a80ecdb7af6ab574b
+EBUILD libmapi-2.3-r1.ebuild 1357 BLAKE2B 8e7b9687a4ec5ae12eb6f37713c50f7e14d7210f0fdf06e1637e0300819b4a2a2a498c0676de4b12d822a6510da73d9e1ede51e5dd87c0037675114b4e1f24c1 SHA512 de90ad3c235f5f94d5bde7dda1e9078cc3677bee11acbe4857221e436119fa07554accc1376c4f8273eddf76e98b972435ba2ff47ca3b74a7434d80539544171
diff --git a/net-libs/libmapi/files/libmapi-2.3-configure-bashisms.patch b/net-libs/libmapi/files/libmapi-2.3-configure-bashisms.patch
new file mode 100644 (file)
index 0000000..027f767
--- /dev/null
@@ -0,0 +1,18 @@
+diff --git a/configure.ac b/configure.ac
+index ed27ceda64f7..97e1d35594ca 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,11 +35,11 @@ AC_PREPROC_IFELSE(
+   big_endian=1)
+-if test x"$endian" != "xbig" -a x"$endian" != "xlittle"; then
++if test x"$endian" != "xbig" && test x"$endian" != "xlittle"; then
+   AC_MSG_ERROR([Can't determine endianness; is endian.h present?])
+ fi
+-if test "$little_endian" == 1; then
++if test "$little_endian" = 1; then
+    ENDIAN="-DHAVE_LITTLE_ENDIAN"
+ else
+    ENDIAN="-DHAVE_BIG_ENDIAN"
diff --git a/net-libs/libmapi/files/libmapi-2.3-fix-pidl-compilation.patch b/net-libs/libmapi/files/libmapi-2.3-fix-pidl-compilation.patch
new file mode 100644 (file)
index 0000000..80ffa22
--- /dev/null
@@ -0,0 +1,54 @@
+From fab721a44b25bb4a6efcce792c8f6b33b6e48889 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 8 Sep 2022 17:45:43 -0400
+Subject: [PATCH 3/3] Fix PIDL compilation
+
+---
+ exchange.idl | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/exchange.idl b/exchange.idl
+index 9847b4d..008aa88 100644
+--- a/exchange.idl
++++ b/exchange.idl
+@@ -465,12 +465,12 @@ System Attendant Private Interface
+          would otherwise break the data alignment on wire operations.
+          However, they must be defined here as they make use of the same array types. */
+-      typedef [nopush,nopull,noprint] struct {
++      typedef struct {
+               [range(0,100000)] uint32        cValues;
+               [size_is(cValues)] hyper        *lpui8; 
+       } UI8Array_r;
+-      typedef [switch_type(uint32),nopush,nopull,noprint] union {
++      typedef [switch_type(uint32)] union {
+               [case(PT_I2)]                   uint16                  i;
+               [case(PT_LONG)]                 uint32                  l;
+               [case(PT_DOUBLE)]               double                  dbl;
+@@ -495,19 +495,19 @@ System Attendant Private Interface
+               [case(PT_OBJECT)]               uint32                  object;
+       } SPropValue_CTR;
+-      typedef [public,noprint,nopush,nopull] struct {
++      typedef [public] struct {
+               MAPITAGS ulPropTag;
+               uint32 dwAlignPad;
+               [switch_is(ulPropTag & 0xFFFF)] SPropValue_CTR value; 
+       } SPropValue;
+       
+-      typedef [public,noprint,nopush,nopull] struct {
++      typedef [public] struct {
+               uint32                          ulAdrEntryPad;
+               [range(0,100000)] uint32        cValues;
+               [size_is(cValues)]SPropValue    *lpProps;
+       } SRow;
+-      typedef [public,noprint,nopush,nopull] struct {
++      typedef [public] struct {
+               [range(0,100000)] uint32        cRows;
+               [size_is(cRows)] SRow           aRow[];
+       } SRowSet;
+-- 
+2.35.1
+
diff --git a/net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch b/net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch
new file mode 100644 (file)
index 0000000..d83487f
--- /dev/null
@@ -0,0 +1,85 @@
+From 47852d453f3119c4232a75a81c61a1af57aa6381 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 8 Sep 2022 16:35:03 -0400
+Subject: [PATCH 1/3] Adapt for Credentials API changes in Samba.
+
+---
+ configure.ac         | 39 +++++++++++++++++++++++++++++++++++++++
+ libmapi/IProfAdmin.c | 11 +++++++++++
+ 2 files changed, 50 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 97e1d35..65793e9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -473,6 +473,45 @@ DCERPC_SERVER_MODULESDIR=`$PKG_CONFIG --variable=modulesdir dcerpc_server`
+ AC_SUBST(DCERPC_SERVER_MODULESDIR)
+ AC_MSG_RESULT($DCERPC_SERVER_MODULESDIR)
++# Probe for samba credentials.h incompatible change
++
++AC_CACHE_CHECK([whether Samba defines CRED_USE_KERBEROS_xxx],
++[oc_cv_samba_cred_use_kerberos],
++[oc_save_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++AC_COMPUTE_INT([val],
++  [CRED_USE_KERBEROS_DISABLED | CRED_USE_KERBEROS_DESIRED | CRED_USE_KERBEROS_REQUIRED],
++  [#include <credentials.h>],
++  [val=0])
++AS_CASE([$val],
++  [0], [oc_cv_samba_cred_use_kerberos=no],
++  [oc_cv_samba_cred_use_kerberos=yes])
++CFLAGS=$oc_save_CFLAGS])
++
++AS_CASE([$oc_cv_samba_cred_use_kerberos],
++  [yes], [AC_DEFINE([SAMBA_CRED_USE_KERBEROS], [1],
++    [Define to 1 if Samba provides new-style CRED_USE_KERBEROS constants])])
++
++AC_CACHE_CHECK([for Samba cli_credentials_set_kerberos_state],
++[oc_cv_samba_cli_credentials_flavour],
++[oc_cv_samba_cli_credentials_flavour=no
++oc_save_CFLAGS=$CFLAGS oc_save_LIBS=$LIBS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++LIBS="$LIBS $SAMBA_LIBS"
++AC_LINK_IFELSE(
++  [AC_LANG_PROGRAM([#include <credentials.h>],
++      [return cli_credentials_set_kerberos_state(0, 0, 0)])],
++  [oc_cv_samba_cli_credentials_flavour="3-arg (new-style)"],
++  [AC_LINK_IFELSE(
++    [AC_LANG_PROGRAM([#include <credentials.h>],
++      [return cli_credentials_set_kerberos_state(0, 0)])],
++    [oc_cv_samba_cli_credentials_flavour="2-arg (old-style)"])])
++CFLAGS=$oc_save_CFLAGS LIBS=$oc_save_LIBS])
++
++AS_CASE([$oc_cv_samba_cli_credentials_flavour],
++  [*new*], [AC_DEFINE([SAMBA_CRED_NEW_STYLE_SET_STATE], [1],
++    [Define to 1 if Samba cli_credentials_set_kerberos_state take 3 arguments])])
++
+ dnl ---------------------------------------------------------------------------
+ dnl Finally add libmapi to the library list
+ dnl ---------------------------------------------------------------------------
+diff --git a/libmapi/IProfAdmin.c b/libmapi/IProfAdmin.c
+index 6b853a9..a0c02d9 100644
+--- a/libmapi/IProfAdmin.c
++++ b/libmapi/IProfAdmin.c
+@@ -24,6 +24,17 @@
+ #include <ldb_errors.h>
+ #include <ldb.h>
++#if SAMBA_CRED_USE_KERBEROS
++#  define CRED_AUTO_USE_KERBEROS CRED_USE_KERBEROS_DESIRED
++#  define CRED_DONT_USE_KERBEROS CRED_USE_KERBEROS_DISABLED
++#  define CRED_MUST_USE_KERBEROS CRED_USE_KERBEROS_REQUIRED
++#endif
++
++#if SAMBA_CRED_NEW_STYLE_SET_STATE
++#define cli_credentials_set_kerberos_state(a, b) \
++      cli_credentials_set_kerberos_state(a, b, CRED_SPECIFIED)
++#endif
++
+ /**
+    \file IProfAdmin.c
+-- 
+2.35.1
+
diff --git a/net-libs/libmapi/files/libmapi-2.3-update-ndr-api.patch b/net-libs/libmapi/files/libmapi-2.3-update-ndr-api.patch
new file mode 100644 (file)
index 0000000..03bb4d6
--- /dev/null
@@ -0,0 +1,144 @@
+From d9fee28b67dcee387654151a24ebe2547d18156a Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 8 Sep 2022 17:29:28 -0400
+Subject: [PATCH 2/3] Adapt for NDR API changes in Samba.
+
+---
+ configure.ac               | 38 ++++++++++++++++++++++++++
+ libmapi/socket/interface.c |  4 +++
+ ndr_mapi.c                 | 55 ++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 97 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 65793e9..20fa171 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -512,6 +512,44 @@ AS_CASE([$oc_cv_samba_cli_credentials_flavour],
+   [*new*], [AC_DEFINE([SAMBA_CRED_NEW_STYLE_SET_STATE], [1],
+     [Define to 1 if Samba cli_credentials_set_kerberos_state take 3 arguments])])
++# Probe for samba ndr.h incompatible change
++
++AC_CACHE_CHECK([whether Sabma ndr_token_peek returns error code],
++[oc_cv_samba_ndr_token_peek_errors],
++[oc_save_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++AC_COMPILE_IFELSE(
++  [AC_LANG_PROGRAM([#include <ndr.h>
++enum ndr_err_code ndr_token_peek();],
++    [return ndr_token_peek(0, 0, 0)])],
++  [oc_cv_samba_ndr_token_peek_errors=yes],
++  [oc_cv_samba_ndr_token_peek_errors=no])
++CFLAGS=$oc_save_CFLAGS])
++
++AS_CASE([$oc_cv_samba_ndr_token_peek_errors],
++  [yes], [AC_DEFINE([SAMBA_NDR_TOKEN_PEEK_ERRORS], [1],
++    [Define to 1 if Samba ndr_token_peek returns an error code])])
++
++AC_CACHE_CHECK([for Samba NDR_ZERO_STRUCT],
++[oc_cv_samba_have_ndr_zero_struct],
++[oc_save_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++AC_COMPILE_IFELSE(
++  [AC_LANG_PROGRAM([#include <ndr.h>],
++    [struct foo { int x; } bar; NDR_ZERO_STRUCT(bar);])],
++  [oc_cv_samba_have_ndr_zero_struct=yes],
++  [oc_cv_samba_have_ndr_zero_struct=no])
++CFLAGS=$oc_save_CFLAGS])
++
++AS_CASE([$oc_cv_samba_have_ndr_zero_struct],
++  [yes], [AC_DEFINE([SAMBA_HAVE_NDR_ZERO_STRUCT], [1],
++    [Define to 1 if Samba provides NDR_ZERO_STRUCT(P) macros])])
++
++oc_save_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++AC_CHECK_FUNCS([ndr_push_get_switch_value ndr_pull_get_switch_value ndr_print_get_switch_value])
++CFLAGS=$oc_save_CFLAGS
++
+ dnl ---------------------------------------------------------------------------
+ dnl Finally add libmapi to the library list
+ dnl ---------------------------------------------------------------------------
+diff --git a/libmapi/socket/interface.c b/libmapi/socket/interface.c
+index f1b3258..bc0d69a 100644
+--- a/libmapi/socket/interface.c
++++ b/libmapi/socket/interface.c
+@@ -23,6 +23,10 @@
+ #include "libmapi/libmapi_private.h"
+ #include <param.h>
++#if SAMBA_HAVE_NDR_ZERO_STRUCT
++#     define ZERO_STRUCTPN(x) NDR_ZERO_STRUCT(*x)
++#endif
++
+ #define ALLONES  ((uint32_t)0xFFFFFFFF)
+ /*
+   address construction based on a patch from fred@datalync.com
+diff --git a/ndr_mapi.c b/ndr_mapi.c
+index c177556..1b78c4b 100644
+--- a/ndr_mapi.c
++++ b/ndr_mapi.c
+@@ -27,6 +27,61 @@
+ #define MIN(a,b) ((a)<(b)?(a):(b))
++#if SAMBA_NDR_TOKEN_PEEK_ERRORS
++static uint32_t wrap_ndr_token_peek(struct ndr_token_list *list, const void *key)
++{
++      uint32_t ret;
++
++      ndr_token_peek(list, key, &ret);
++      return ret;
++}
++#define ndr_token_peek(a, b) wrap_ndr_token_peek(a, b)
++
++static uint32_t wrap_ndr_get_array_size(struct ndr_pull *ndr, const void *p)
++{
++      uint32_t ret;
++
++      ndr_get_array_size(ndr, p, &ret);
++      return ret;
++}
++#define ndr_get_array_size(a, b) wrap_ndr_get_array_size(a, b)
++
++static uint32_t wrap_ndr_get_array_length(struct ndr_pull *ndr, const void *p)
++{
++      uint32_t ret;
++
++      ndr_get_array_length(ndr, p, &ret);
++      return ret;
++}
++#define ndr_get_array_length(a, b) wrap_ndr_get_array_length(a, b)
++#endif
++
++#if SAMBA_HAVE_NDR_ZERO_STRUCT
++#     define ZERO_STRUCT(x) NDR_ZERO_STRUCT(x)
++#     define ZERO_STRUCTP(x) NDR_ZERO_STRUCTP(x)
++#endif
++
++#if !HAVE_NDR_PRINT_GET_SWITCH_VALUE
++static uint32_t ndr_print_get_switch_value(struct ndr_print *ndr, const void *p)
++{
++      return ndr_token_peek(&ndr->switch_list, p);
++}
++#endif
++
++#if !HAVE_NDR_PUSH_GET_SWITCH_VALUE
++static uint32_t ndr_push_get_switch_value(struct ndr_push *ndr, const void *p)
++{
++      return ndr_token_peek(&ndr->switch_list, p);
++}
++#endif
++
++#if !HAVE_NDR_PULL_GET_SWITCH_VALUE
++static uint32_t ndr_pull_get_switch_value(struct ndr_pull *ndr, const void *p)
++{
++      return ndr_token_peek(&ndr->switch_list, p);
++}
++#endif
++
+ _PUBLIC_ void obfuscate_data(uint8_t *data, uint32_t size, uint8_t salt)
+ {
+       uint32_t i;
+-- 
+2.35.1
+
similarity index 71%
rename from net-libs/libmapi/libmapi-2.3.ebuild
rename to net-libs/libmapi/libmapi-2.3-r1.ebuild
index 788e8c177a52007074d3db31aa476b580ae9bf27..07a7fd17def543bfb95f136cf8528230af3b5853 100644 (file)
@@ -1,8 +1,9 @@
-# Copyright © 2016 Nick Bowler
-# License GPLv3+: GNU General Public License version 3 or later.
+# Copyright © 2016, 2022 Nick Bowler
+# License GPLv3+: GNU General Public License version 3 or any later version.
+# This is free software: you are free to change and redistribute it.
 # There is NO WARRANTY, to the extent permitted by law.
 
-EAPI=6
+EAPI=8
 
 inherit autotools
 
@@ -18,13 +19,18 @@ IUSE="cxx"
 SLOT="0"
 
 RDEPEND=">=net-fs/samba-4"
-DEPEND="$RDEPEND"
+DEPEND="dev-util/pidl
+       $RDEPEND"
 
 PATCHES=(
        "$FILESDIR/$P-no-automake.patch"
        "$FILESDIR/$P-no-useless-cflags.patch"
        "$FILESDIR/$P-no-recompile-on-install.patch"
        "$FILESDIR/$P-no-build-tests.patch"
+       "$FILESDIR/$P-configure-bashisms.patch"
+       "$FILESDIR/$P-update-credentials-api.patch"
+       "$FILESDIR/$P-update-ndr-api.patch"
+       "$FILESDIR/$P-fix-pidl-compilation.patch"
 )
 
 S=$WORKDIR/openchange-$MY_P