tallence / push-notification-kafka-plugin

A driver for Dovecot's Push Notification Framework for publishing push notification events to a Kafka broker.
Other
6 stars 4 forks source link

Plugin does not build with Dovecot 2.3.11 #16

Open peter-mauritius opened 3 years ago

peter-mauritius commented 3 years ago

Build with Dovecvot 2.3.11 fails because: 'struct push_notification_txn_msg' has no member named 'seq'

rizkyfaza20 commented 1 year ago

did you guys have found the solving? i'm also having issue build the source code by using dovecot-dev 2.3.19.2 here's the log build :

lib-test/push-notification-kafka-event-test.c:179:26: error: macro "DOVECOT_PREREQ" requires 3 arguments, but only 2 given
 #if ! DOVECOT_PREREQ(2, 3)
                          ^
lib-test/push-notification-kafka-event-test.c:180:8: error: 'struct push_notification_txn_msg' has no member named 'seq'
   event.seq = 1;
        ^
lib-test/push-notification-kafka-event-test.c: In function 'write_flags_event_test':
lib-test/push-notification-kafka-event-test.c:220:26: error: macro "DOVECOT_PREREQ" requires 3 arguments, but only 2 given
 #if ! DOVECOT_PREREQ(2, 3)
                          ^
lib-test/push-notification-kafka-event-test.c:221:8: error: 'struct push_notification_txn_msg' has no member named 'seq'
   event.seq = 1;
        ^
lib-test/push-notification-kafka-event-test.c: In function 'write_event_messagenew_test':
lib-test/push-notification-kafka-event-test.c:318:26: error: macro "DOVECOT_PREREQ" requires 3 arguments, but only 2 given
 #if ! DOVECOT_PREREQ(2, 3)
                          ^
lib-test/push-notification-kafka-event-test.c:319:6: error: 'struct push_notification_txn_msg' has no member named 'seq'
   msg.seq = 1;
      ^
lib-test/push-notification-kafka-event-test.c: In function 'write_event_messageappend_test':
lib-test/push-notification-kafka-event-test.c:376:26: error: macro "DOVECOT_PREREQ" requires 3 arguments, but only 2 given
 #if ! DOVECOT_PREREQ(2, 3)
                          ^
lib-test/push-notification-kafka-event-test.c:377:6: error: 'struct push_notification_txn_msg' has no member named 'seq'
   msg.seq = 1;
      ^
Makefile:633: recipe for target 'lib-test/test_kafka_event-push-notification-kafka-event-test.o' failed
make[2]: *** [lib-test/test_kafka_event-push-notification-kafka-event-test.o] Error 1
make[2]: Leaving directory '/etc/dovecot/push-notification-kafka-plugin/src'
Makefile:469: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/etc/dovecot/push-notification-kafka-plugin'
Makefile:401: recipe for target 'all' failed
make: *** [all] Error 2

kinda wait for the reply, thx in advance

jrse commented 1 year ago

seems to be a problem with the internal dovecot api and macros we are using in our tests to create the testenv.

define DOVECOT_PREREQ(maj, min) changed to #define DOVECOT_PREREQ(maj, min, micro).

as a quick workaround you can disable the compilation of those testcases by editing src/Makefile.am line 27-51 and see if the plugin works. However it looks like some other internal apis have changed, will have a look and provide a fix.

rizkyfaza20 commented 1 year ago

hi, @jrse, thanks for the tip, i will try to discuss with my team on this solution. will update later.

jrse commented 1 year ago

the solution will be a new version of the plugin with tests enabled and fully tested, hope i can build it in the next days.

jrse commented 1 year ago

fixed and merged to develop