+ case "${usergroup_phase}" in + local run_cmd + run_cmd=run_su + shift + run_su /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/newsraft-0.29nb1/work.log + su pbulk -c '"$@"' make /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/newsraft-0.29nb1/work.log ===> Building for newsraft-0.29nb1 --- newsraft --- cc -std=c99 -O3 `pkg-config --cflags libcurl 2>/dev/null` -I/opt/pkg/include `pkg-config --cflags expat 2>/dev/null` `pkg-config --cflags gumbo 2>/dev/null` `pkg-config --cflags sqlite3 2>/dev/null` `pkg-config --cflags yajl 2>/dev/null` -Isrc -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -o newsraft src/newsraft.c `pkg-config --libs libcurl 2>/dev/null || echo '-lcurl'` -lncurses `pkg-config --libs expat 2>/dev/null || echo '-lexpat'` `pkg-config --libs gumbo 2>/dev/null || echo '-lgumbo'` `pkg-config --libs sqlite3 2>/dev/null || echo '-lsqlite3'` `pkg-config --libs yajl 2>/dev/null || echo '-lyajl'` -lpthread In file included from src/newsraft.c:11: src/dates.c: In function 'get_cfg_date': src/dates.c:84:62: warning: implicit declaration of function 'localtime_r'; did you mean 'localtime'? [-Wimplicit-function-declaration] 84 | str->len = strftime(str->ptr, str->lim, format->ptr, localtime_r((time_t *)&date, &timedata)); | ^~~~~~~~~~~ | localtime src/dates.c:84:62: warning: passing argument 4 of 'strftime' makes pointer from integer without a cast [-Wint-conversion] 84 | str->len = strftime(str->ptr, str->lim, format->ptr, localtime_r((time_t *)&date, &timedata)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | int In file included from /usr/include/time.h:40, from /home/pbulk/build/news/newsraft/work/.buildlink/include/curl/curl.h:75, from src/newsraft.c:3: /usr/include/iso/time_iso.h:102:9: note: expected 'const struct tm * restrict' but argument is of type 'int' 102 | const struct tm *_RESTRICT_KYWD); | ^ In file included from src/newsraft.c:4: src/db.c: In function 'db_get_date_from_feeds_table': src/db.c:228:30: error: expected ')' before 'PRId64' 228 | INFO("%s of %s is %" PRId64, column, url->ptr, date); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:12: src/db.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db.c:228:9: note: in expansion of macro 'INFO' 228 | INFO("%s of %s is %" PRId64, column, url->ptr, date); | ^~~~ src/db.c: In function 'db_update_feed_int64': src/db.c:266:46: error: expected ')' before 'PRId64' 266 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/db.c:266:46: note: 'PRId64' is defined in header ''; did you forget to '#include '? 266 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db.c:266:17: note: in expansion of macro 'INFO' 266 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~ src/db-items.c: In function 'db_find_item_by_rowid': src/db-items.c:7:46: error: expected ')' before 'PRId64' 7 | INFO("Looking for item with rowid %" PRId64 "...", rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:13: src/db-items.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db-items.c:7:9: note: in expansion of macro 'INFO' 7 | INFO("Looking for item with rowid %" PRId64 "...", rowid); | ^~~~ src/db-items.c:14:42: error: expected ')' before 'PRId64' 14 | WARN("Item with rowid %" PRId64 " is not found!", rowid); | ^~~~~~ src/newsraft.h:25:37: note: in definition of macro 'WARN' 25 | #define WARN(...) log_write("WARN", __VA_ARGS__) | ^~~~~~~~~~~ src/db-items.c:14:42: note: 'PRId64' is defined in header ''; did you forget to '#include '? 14 | WARN("Item with rowid %" PRId64 " is not found!", rowid); | ^~~~~~ src/newsraft.h:25:37: note: in definition of macro 'WARN' 25 | #define WARN(...) log_write("WARN", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:25:28: note: to match this '(' 25 | #define WARN(...) log_write("WARN", __VA_ARGS__) | ^ src/db-items.c:14:17: note: in expansion of macro 'WARN' 14 | WARN("Item with rowid %" PRId64 " is not found!", rowid); | ^~~~ src/db-items.c:18:34: error: expected ')' before 'PRId64' 18 | INFO("Item with rowid %" PRId64 " is found.", rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/db-items.c:18:34: note: 'PRId64' is defined in header ''; did you forget to '#include '? 18 | INFO("Item with rowid %" PRId64 " is found.", rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db-items.c:18:9: note: in expansion of macro 'INFO' 18 | INFO("Item with rowid %" PRId64 " is found.", rowid); | ^~~~ src/db-items.c: In function 'db_set_item_int': src/db-items.c:25:82: error: expected ')' before 'PRId64' 25 | INFO("Updating column \"%s\" with integer \"%d\" of item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/db-items.c:25:82: note: 'PRId64' is defined in header ''; did you forget to '#include '? 25 | INFO("Updating column \"%s\" with integer \"%d\" of item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db-items.c:25:9: note: in expansion of macro 'INFO' 25 | INFO("Updating column \"%s\" with integer \"%d\" of item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~ src/downloader.c: In function 'prepare_feed_update_state_for_download': src/downloader.c:208:71: error: expected ')' before 'PRId64' 208 | INFO("Attached header - If-Modified-Since: %" PRId64 " (it was converted to date string).", last_modified); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:14: src/downloader.c:2:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? 1 | #include +++ |+#include 2 | #include src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/downloader.c:208:25: note: in expansion of macro 'INFO' 208 | INFO("Attached header - If-Modified-Since: %" PRId64 " (it was converted to date string).", last_modified); | ^~~~ src/downloader.c: In function 'downloader_worker': src/downloader.c:315:52: error: expected ')' before 'PRIu64' 315 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/downloader.c:315:52: note: 'PRIu64' is defined in header ''; did you forget to '#include '? 315 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/downloader.c:315:25: note: in expansion of macro 'INFO' 315 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~ In file included from src/newsraft.c:23: src/interface.c: In function 'run_menu_loop': src/interface.c:97:16: error: variable 'idling' has initializer but incomplete type 97 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~~~ src/interface.c:97:35: warning: excess elements in struct initializer 97 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^ src/interface.c:97:35: note: (near initialization for 'idling') src/interface.c:97:38: warning: excess elements in struct initializer 97 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~ src/interface.c:97:38: note: (near initialization for 'idling') src/interface.c:97:25: error: storage size of 'idling' isn't known 97 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~ src/interface.c:106:25: warning: implicit declaration of function 'nanosleep' [-Wimplicit-function-declaration] 106 | nanosleep(&idling, NULL); // Avoids CPU cycles waste while awaiting termination | ^~~~~~~~~ In file included from src/newsraft.c:28: src/interface-status.c: At top level: src/interface-status.c:17:21: error: variable 'input_polling_period' has initializer but incomplete type 17 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^~~~~~~~ src/interface-status.c:17:54: warning: excess elements in struct initializer 17 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^ src/interface-status.c:17:54: note: (near initialization for 'input_polling_period') src/interface-status.c:17:57: warning: excess elements in struct initializer 17 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^~~~~~~~ src/interface-status.c:17:57: note: (near initialization for 'input_polling_period') src/interface-status.c: In function 'get_input': src/interface-status.c:224:50: error: expected ')' before 'SCNu32' 224 | if (sscanf(count_buf, "%" SCNu32, &count_value) != 1) { | ~ ^~~~~~~ | ) src/interface-status.c:1:1: note: 'SCNu32' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/items-pager.c: In function 'item_pager_loop': src/items-pager.c:61:56: error: expected ')' before 'PRId64' 61 | INFO("Trying to view an item with the rowid %" PRId64 "...", items_menu->items->ptr[item_id].rowid); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:35: src/items-pager.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/items-pager.c:61:9: note: in expansion of macro 'INFO' 61 | INFO("Trying to view an item with the rowid %" PRId64 "...", items_menu->items->ptr[item_id].rowid); | ^~~~ In file included from src/newsraft.c:37: src/load_config/config-parse.c: In function 'parse_config_file': src/load_config/config-parse.c:168:28: warning: implicit declaration of function 'getline'; did you mean 'getwin'? [-Wimplicit-function-declaration] 168 | for (ssize_t len = getline(&line, &size, f); len >= 0; len = getline(&line, &size, f)) { | ^~~~~~~ | getwin src/load_config/config-parse.c:168:9: error: declaration of non-variable 'getline' in 'for' loop initial declaration 168 | for (ssize_t len = getline(&line, &size, f); len >= 0; len = getline(&line, &size, f)) { | ^~~ In file included from src/newsraft.c:40: src/log.c: In function 'log_write': src/log.c:34:24: error: variable 't' has initializer but incomplete type 34 | struct timespec t = {0}; | ^~~~~~~~ src/log.c:34:38: warning: excess elements in struct initializer 34 | struct timespec t = {0}; | ^ src/log.c:34:38: note: (near initialization for 't') src/log.c:34:33: error: storage size of 't' isn't known 34 | struct timespec t = {0}; | ^ src/log.c:35:17: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration] 35 | clock_gettime(CLOCK_REALTIME, &t); | ^~~~~~~~~~~~~ src/log.c:35:31: error: 'CLOCK_REALTIME' undeclared (first use in this function) 35 | clock_gettime(CLOCK_REALTIME, &t); | ^~~~~~~~~~~~~~ src/log.c:35:31: note: each undeclared identifier is reported only once for each function it appears in In file included from src/newsraft.c:47: src/parse_xml/format-rss.c: In function 'rss_ttl_end': src/parse_xml/format-rss.c:137:48: error: expected ')' before 'SCNd64' 137 | if (sscanf(data->text->ptr, "%" SCNd64, &minutes) != 1) { | ~ ^~~~~~~ | ) src/parse_xml/format-rss.c:1:1: note: 'SCNd64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/queue.c: In function 'queue_updates': src/queue.c:154:55: error: expected ')' before 'PRId64' 154 | INFO("Feed %s update attempt date: %" PRId64, feeds[i]->link->ptr, feeds[i]->update_date); | ^~~~~~ src/newsraft.h:24:37: note: in definition of macro 'INFO' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:51: src/queue.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include "newsraft.h" src/newsraft.h:24:28: note: to match this '(' 24 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/queue.c:154:17: note: in expansion of macro 'INFO' 154 | INFO("Feed %s update attempt date: %" PRId64, feeds[i]->link->ptr, feeds[i]->update_date); | ^~~~ src/queue.c: In function 'queue_wait_finish': src/queue.c:179:16: error: variable 'check_period' has initializer but incomplete type 179 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~ src/queue.c:179:41: warning: excess elements in struct initializer 179 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^ src/queue.c:179:41: note: (near initialization for 'check_period') src/queue.c:179:44: warning: excess elements in struct initializer 179 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~ src/queue.c:179:44: note: (near initialization for 'check_period') src/queue.c:179:25: error: storage size of 'check_period' isn't known 179 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~~~~ In file included from src/newsraft.c:55: src/render_data/render-text-html.c: In function 'url_mark_handler': src/render_data/render-text-html.c:142:25: warning: implicit declaration of function 'swprintf'; did you mean 'snprintf'? [-Wimplicit-function-declaration] 142 | int index_len = swprintf(index, 100, L"[%" PRId64, link_index + 1); | ^~~~~~~~ | snprintf src/render_data/render-text-html.c:142:51: error: expected ')' before 'PRId64' 142 | int index_len = swprintf(index, 100, L"[%" PRId64, link_index + 1); | ~ ^~~~~~~ | ) src/render_data/render-text-html.c:3:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? 2 | #include +++ |+#include 3 | #include "render_data.h" src/render_data/render-text-html.c: In function 'html_table_get_cells_count_from_tag_attribute': src/render_data/render-text-html.c:339:44: error: expected ')' before 'SCNd8' 339 | if (sscanf(attr->value, "%" SCNd8, &result) == 1) { | ~ ^~~~~~ | ) src/render_data/render-text-html.c:339:45: note: 'SCNd8' is defined in header ''; did you forget to '#include '? 339 | if (sscanf(attr->value, "%" SCNd8, &result) == 1) { | ^~~~~ In file included from src/newsraft.c:56: src/render_data/render-text-plain.c: In function 'render_text_plain': src/render_data/render-text-plain.c:13:36: warning: implicit declaration of function 'wcsstr'; did you mean 'winstr'? [-Wimplicit-function-declaration] 13 | wchar_t *divider = wcsstr(i, L"://"); | ^~~~~~ | winstr src/render_data/render-text-plain.c:13:36: warning: initialization of 'wchar_t *' {aka 'int *'} from 'int' makes pointer from integer without a cast [-Wint-conversion] src/render_data/render-text-plain.c:24:59: error: expected ')' before 'PRId64' 24 | if (swprintf(url_mark, 100, L" [%" PRId64 "]", url_index + 1) > 0) { | ~ ^~~~~~~ | ) src/render_data/render-text-plain.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include In file included from src/newsraft.c:57: src/sections.c: In function 'print_unread_items_count': src/sections.c:282:28: error: expected ')' before 'PRId64' 282 | fprintf(stdout, "%" PRId64 "\n", count); | ~ ^~~~~~~ | ) src/sections.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include In file included from src/newsraft.c:63: src/threads.c: In function 'threads_take_a_nap': src/threads.c:41:16: error: variable 'wake_up_time' has initializer but incomplete type 41 | struct timespec wake_up_time = {0}; | ^~~~~~~~ src/threads.c:41:41: warning: excess elements in struct initializer 41 | struct timespec wake_up_time = {0}; | ^ src/threads.c:41:41: note: (near initialization for 'wake_up_time') src/threads.c:41:25: error: storage size of 'wake_up_time' isn't known 41 | struct timespec wake_up_time = {0}; | ^~~~~~~~~~~~ src/threads.c:42:23: error: 'CLOCK_REALTIME' undeclared (first use in this function) 42 | clock_gettime(CLOCK_REALTIME, &wake_up_time); | ^~~~~~~~~~~~~~ src/interface-status.c: At top level: src/interface-status.c:17:30: error: storage size of 'input_polling_period' isn't known 17 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^~~~~~~~~~~~~~~~~~~~ *** [newsraft] Error code 1 bmake: stopped making "all" in /home/pbulk/build/news/newsraft/work/newsraft bmake: 1 error bmake: stopped making "all" in /home/pbulk/build/news/newsraft/work/newsraft *** Error code 2 Stop. bmake[1]: stopped making "all" in /data/jenkins/workspace/pkgsrc-upstream-trunk/news/newsraft *** Error code 1 Stop. bmake: stopped making "all" in /data/jenkins/workspace/pkgsrc-upstream-trunk/news/newsraft