--- /dev/null
+DIST samba-4.15.7.tar.gz 19290930 BLAKE2B 4a295f79d38212d4c6917ed61a22e4204b5ea3d5e26f30b65d1e7e81842e92405870dd40fd4d05ec1126a532bdb1ddea300848387a4c64370ba5c2c1354ee8e5 SHA512 beffb09b5bcd62991398d39c7a8aec5fed0c51d550e2f0fb42b2e0a09094f4c6a8f29adf708c4969db12329f5c7343d2debd04315107b79bef59e99a4a7e4ce4
+EBUILD pidl-4.15.7.ebuild 489 BLAKE2B b0b8e03c120d35f7cf7833a104b4e22a5413822a03c96136794d3d61396af3fe13948f542c46086ad1d1dd8887b98874027016dcee62fe2d76acd763cbf4fc8c SHA512 a55f239dac52c6d2bffd4442918b505895010f73b9e90db6d5a7511e472e7d3cd307104ed75cc6b9d115d971019c8a2bd5cb955a4c7a0ae2ab49d0e19a93c388
--- /dev/null
+# 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
-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
+++ /dev/null
-# 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
-}
-# 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"
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
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
-}
+++ /dev/null
-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
-
-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
--- /dev/null
+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"
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
-# 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
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