Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mosquitto-dev] 2.1.0rc1 available for testing

I got a build failure with plugins.  I wonder if this is some C std newer than
C99?

[1/506] Building C object plugins/persist-sqlite/CMakeFiles/mosquitto_persist_sqlite.dir/init.c.o
FAILED: [code=1] plugins/persist-sqlite/CMakeFiles/mosquitto_persist_sqlite.dir/init.c.o 
/tmp/work/net/mosquitto/work/.cwrapper/bin/gcc -DCMAKE -DOPENSSL_API_COMPAT=0x10100000L -DVERSION=\"2.1.0\" -DWITH_MEMORY_TRACKING -DWITH_SOCKS -DWITH_THREADING -DWITH_TLS -DWITH_TLS_PSK -DWITH_UNIX_SOCKETS -Dmosquitto_persist_sqlite_EXPORTS -I/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1 -I/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/common -I/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/include -I/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/deps -isystem /tmp/work/net/mosquitto/work/.buildlink/include -O2 -pthread -I/usr/include -I/usr/pkg/include -I/usr/pkg/include/python3.13 -std=gnu99 -fPIC -Wall -Wextra -Wconversion -MD -MT plugins/persist-sqlite/CMakeFiles/mosquitto_persist_sqlite.dir/init.c.o -MF plugins/persist-sqlite/CMakeFiles/mosquitto_persist_sqlite.dir/init.c.o.d -o plugins/persist-sqlite/CMakeFiles/mosquitto_persist_sqlite.dir/init.c.o -c /tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/plugins/persist-sqlite/init.c
/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/plugins/persist-sqlite/init.c: In function 'create_tables':
/tmp/work/net/mosquitto/work/mosquitto-2.1.0rc1/plugins/persist-sqlite/init.c:243:73: error: macro "memcpy" passed 5 arguments, but takes just 3
  243 |   memcpy(db_schema_version, (int[3]){1, 0, 0}, sizeof(db_schema_version));


I have worked around that by avoiding array-literal-as-expression:

--- plugins/persist-sqlite/init.c.orig	2026-01-20 18:42:26.053291912 +0000
+++ plugins/persist-sqlite/init.c
@@ -240,7 +240,9 @@ static int create_tables(struct mosquitt
 		if(rc){
 			goto fail;
 		}
-		memcpy(db_schema_version, (int[3]){1, 0, 0}, sizeof(db_schema_version));
+		db_schema_version[0] = 1;
+		db_schema_version[1] = 0;
+		db_schema_version[2] = 0;
 	}
 	if(db_schema_version[0] == 1){
 		/* 1.0.x needs to be upgraded to 1.1 */
@@ -249,7 +251,9 @@ static int create_tables(struct mosquitt
 			if(rc){
 				goto fail;
 			}
-			memcpy(db_schema_version, (int[3]){1, 1, 0}, sizeof(db_schema_version));
+			db_schema_version[0] = 1;
+			db_schema_version[1] = 1;
+			db_schema_version[2] = 0;
 		}
 		/* 1.1.x  is the current DB-Schema version */
 		if(db_schema_version[1] == 1){


Now, tests are doing much better:

  96% tests passed, 17 tests failed out of 402

  Total Test time (real) = 863.99 sec

  The following tests FAILED:
           13 - apps-passwd-changes (Failed)
           16 - broker-01-bad-initial-packets (Failed)
           55 - broker-02-subpub-qos2-max-inflight-bytes (Failed)
          194 - broker-09-plugin-evt-tick (Failed)
          221 - broker-14-dynsec-client-invalid (Failed)
          228 - broker-14-dynsec-group-invalid (Failed)
          237 - broker-16-config-huge (Failed)
          267 - broker-22-http-api-acl (Failed)
          268 - broker-22-http-api-api (Failed)
          269 - broker-22-http-api-auth (Failed)
          270 - broker-22-http-api-file (Failed)
          271 - broker-22-http-api-tls (Failed)
          275 - broker-15-persist-bridge-queue-persist_sqlite (Failed)
          276 - broker-15-persist-client-drop-expired-messages-persist_sqlite (Failed)
          277 - broker-15-persist-client-expired-session-persist_sqlite (Failed)
          280 - broker-15-persist-client-msg-modify-acl-persist_sqlite (Failed)
          306 - client-02-subscribe-format (Failed)


I'll start looking into those, but I wanted to send the partial report,
especially with the release clock ticking.



Has anyone else tested, especially other packagers, on other than the OS
tri-opoly, with older compilers, or environments veering on embedded?  I
feel like I'm behind but haven't seen anything else.



Back to the top