+ 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.30/work.log + su pbulk -c '"$@"' make /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/newsraft-0.30/work.log ===> Building for newsraft-0.30 --- 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` -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'` -lpthread In file included from src/newsraft.c:12: 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); | ^ src/dates.c: At top level: src/dates.c:93:1: error: return type is an incomplete type 93 | newsraft_get_monotonic_time(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ src/dates.c:93:1: error: conflicting types for 'newsraft_get_monotonic_time'; have 'void(void)' In file included from src/newsraft.c:4: src/newsraft.h:428:17: note: previous declaration of 'newsraft_get_monotonic_time' with type 'struct timespec(void)' 428 | struct timespec newsraft_get_monotonic_time(void); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ src/dates.c: In function 'newsraft_get_monotonic_time': src/dates.c:95:16: error: variable 't' has initializer but incomplete type 95 | struct timespec t = {}; | ^~~~~~~~ src/dates.c:95:25: error: storage size of 't' isn't known 95 | struct timespec t = {}; | ^ src/dates.c:96:9: warning: implicit declaration of function 'clock_gettime' [-Wimplicit-function-declaration] 96 | clock_gettime(CLOCK_MONOTONIC, &t); | ^~~~~~~~~~~~~ src/dates.c:96:23: error: 'CLOCK_MONOTONIC' undeclared (first use in this function) 96 | clock_gettime(CLOCK_MONOTONIC, &t); | ^~~~~~~~~~~~~~~ src/dates.c:96:23: note: each undeclared identifier is reported only once for each function it appears in src/dates.c:97:16: warning: 'return' with a value, in function returning void 97 | return t; | ^ src/dates.c:93:1: note: declared here 93 | newsraft_get_monotonic_time(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ src/dates.c: In function 'newsraft_get_pretty_time_diff': src/dates.c:104:30: error: invalid use of undefined type 'struct timespec' 104 | int64_t diff_s = stop->tv_sec - start->tv_sec; | ^~ src/dates.c:104:46: error: invalid use of undefined type 'struct timespec' 104 | int64_t diff_s = stop->tv_sec - start->tv_sec; | ^~ src/dates.c:105:31: error: invalid use of undefined type 'struct timespec' 105 | int64_t diff_ns = stop->tv_nsec - start->tv_nsec; | ^~ src/dates.c:105:48: error: invalid use of undefined type 'struct timespec' 105 | int64_t diff_ns = stop->tv_nsec - start->tv_nsec; | ^~ src/dates.c:117:35: error: expected ')' before 'PRId64' 117 | str_appendf(s, "%" PRId64 " ns", diff_ns); | ~ ^~~~~~~ | ) src/dates.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/db.c: In function 'db_get_date_from_feeds_table': src/db.c:328:30: error: expected ')' before 'PRId64' 328 | INFO("%s of %s is %" PRId64, column, url->ptr, date); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:13: src/db.c:3:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? 2 | #include +++ |+#include 3 | #include "newsraft.h" src/newsraft.h:23:28: note: to match this '(' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db.c:328:9: note: in expansion of macro 'INFO' 328 | INFO("%s of %s is %" PRId64, column, url->ptr, date); | ^~~~ src/db.c: In function 'db_update_feed_int64': src/db.c:366:46: error: expected ')' before 'PRId64' 366 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/db.c:366:46: note: 'PRId64' is defined in header ''; did you forget to '#include '? 366 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:23:28: note: to match this '(' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/db.c:366:17: note: in expansion of macro 'INFO' 366 | INFO("Setting %s of %s to %" PRId64, column_name, url->ptr, value); | ^~~~ src/db.c: In function 'db_perform_user_edit': src/db.c:403:16: error: variable 'start' has initializer but incomplete type 403 | struct timespec start = newsraft_get_monotonic_time(); | ^~~~~~~~ src/db.c:403:25: error: storage size of 'start' isn't known 403 | struct timespec start = newsraft_get_monotonic_time(); | ^~~~~ src/db.c:460:32: error: variable 'stop' has initializer but incomplete type 460 | struct timespec stop = newsraft_get_monotonic_time(); | ^~~~~~~~ src/db.c:460:41: error: storage size of 'stop' isn't known 460 | struct timespec stop = newsraft_get_monotonic_time(); | ^~~~ 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:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:14: src/db-items.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/newsraft.h:23:28: note: to match this '(' 23 | #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:24:37: note: in definition of macro 'WARN' 24 | #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:24:37: note: in definition of macro 'WARN' 24 | #define WARN(...) log_write("WARN", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:24:28: note: to match this '(' 24 | #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:23:37: note: in definition of macro 'INFO' 23 | #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:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:23:28: note: to match this '(' 23 | #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:75: error: expected ')' before 'PRId64' 25 | INFO("Updating column \"%s\" with \"%d\" for item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/db-items.c:25:75: note: 'PRId64' is defined in header ''; did you forget to '#include '? 25 | INFO("Updating column \"%s\" with \"%d\" for item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:23:28: note: to match this '(' 23 | #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 \"%d\" for item with rowid \"%" PRId64 "\".", column, value, rowid); | ^~~~ src/downloader.c: In function 'prepare_feed_update_state_for_download': src/downloader.c:197:71: error: expected ')' before 'PRId64' 197 | INFO("Attached header - If-Modified-Since: %" PRId64 " (it was converted to date string).", last_modified); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:15: src/downloader.c:2:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? 1 | #include +++ |+#include 2 | #include src/newsraft.h:23:28: note: to match this '(' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/downloader.c:197:25: note: in expansion of macro 'INFO' 197 | 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:304:52: error: expected ')' before 'PRIu64' 304 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/downloader.c:304:52: note: 'PRIu64' is defined in header ''; did you forget to '#include '? 304 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ src/newsraft.h:23:28: note: to match this '(' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/downloader.c:304:25: note: in expansion of macro 'INFO' 304 | INFO("Downloader stats: %" PRIu64 " curl performances, %d still running, %d msgs left", | ^~~~ In file included from src/newsraft.c:24: src/interface.c: In function 'run_menu_loop': src/interface.c:95:16: error: variable 'idling' has initializer but incomplete type 95 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~~~ src/interface.c:95:35: warning: excess elements in struct initializer 95 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^ src/interface.c:95:35: note: (near initialization for 'idling') src/interface.c:95:38: warning: excess elements in struct initializer 95 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~ src/interface.c:95:38: note: (near initialization for 'idling') src/interface.c:95:25: error: storage size of 'idling' isn't known 95 | struct timespec idling = {0, 100000000}; // 0.1 seconds | ^~~~~~ src/interface.c:104:25: warning: implicit declaration of function 'nanosleep' [-Wimplicit-function-declaration] 104 | nanosleep(&idling, NULL); // Avoids CPU cycles waste while awaiting termination | ^~~~~~~~~ In file included from src/newsraft.c:29: src/interface-status.c: At top level: src/interface-status.c:19:21: error: variable 'input_polling_period' has initializer but incomplete type 19 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^~~~~~~~ src/interface-status.c:19:54: warning: excess elements in struct initializer 19 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^ src/interface-status.c:19:54: note: (near initialization for 'input_polling_period') src/interface-status.c:19:57: warning: excess elements in struct initializer 19 | static const struct timespec input_polling_period = {0, 30000000}; // 0.03 seconds | ^~~~~~~~ src/interface-status.c:19:57: note: (near initialization for 'input_polling_period') src/interface-status.c: In function 'get_input': src/interface-status.c:227:50: error: expected ')' before 'SCNu32' 227 | 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:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:36: src/items-pager.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include src/newsraft.h:23:28: note: to match this '(' 23 | #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:38: src/load_config/config-parse.c: In function 'parse_config_file': src/load_config/config-parse.c:165:28: warning: implicit declaration of function 'getline'; did you mean 'getwin'? [-Wimplicit-function-declaration] 165 | for (ssize_t len = getline(&line, &size, f); len >= 0; len = getline(&line, &size, f)) { | ^~~~~~~ | getwin src/load_config/config-parse.c:165:9: error: declaration of non-variable 'getline' in 'for' loop initial declaration 165 | for (ssize_t len = getline(&line, &size, f); len >= 0; len = getline(&line, &size, f)) { | ^~~ In file included from src/newsraft.c:41: src/log.c: In function 'log_write': src/log.c:32:24: error: variable 't' has initializer but incomplete type 32 | struct timespec t = {0}; | ^~~~~~~~ src/log.c:32:38: warning: excess elements in struct initializer 32 | struct timespec t = {0}; | ^ src/log.c:32:38: note: (near initialization for 't') src/log.c:32:33: error: storage size of 't' isn't known 32 | struct timespec t = {0}; | ^ src/log.c:33:31: error: 'CLOCK_REALTIME' undeclared (first use in this function) 33 | clock_gettime(CLOCK_REALTIME, &t); | ^~~~~~~~~~~~~~ In file included from src/newsraft.c:48: src/parse_xml/format-rss.c: In function 'rss_ttl_end': src/parse_xml/format-rss.c:101:48: error: expected ')' before 'SCNd64' 101 | 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:150:55: error: expected ')' before 'PRId64' 150 | INFO("Feed %s update attempt date: %" PRId64, feeds[i]->link->ptr, feeds[i]->update_date); | ^~~~~~ src/newsraft.h:23:37: note: in definition of macro 'INFO' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^~~~~~~~~~~ In file included from src/newsraft.c:53: src/queue.c:1:1: note: 'PRId64' is defined in header ''; did you forget to '#include '? +++ |+#include 1 | #include "newsraft.h" src/newsraft.h:23:28: note: to match this '(' 23 | #define INFO(...) log_write("INFO", __VA_ARGS__) | ^ src/queue.c:150:17: note: in expansion of macro 'INFO' 150 | 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:171:16: error: variable 'check_period' has initializer but incomplete type 171 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~ src/queue.c:171:41: warning: excess elements in struct initializer 171 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^ src/queue.c:171:41: note: (near initialization for 'check_period') src/queue.c:171:44: warning: excess elements in struct initializer 171 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~ src/queue.c:171:44: note: (near initialization for 'check_period') src/queue.c:171:25: error: storage size of 'check_period' isn't known 171 | struct timespec check_period = {0, 100000000}; // 0.1 seconds | ^~~~~~~~~~~~ In file included from src/newsraft.c:57: 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:331:44: error: expected ')' before 'SCNd8' 331 | if (sscanf(attr->value, "%" SCNd8, &result) == 1) { | ~ ^~~~~~ | ) src/render_data/render-text-html.c:331:45: note: 'SCNd8' is defined in header ''; did you forget to '#include '? 331 | if (sscanf(attr->value, "%" SCNd8, &result) == 1) { | ^~~~~ In file included from src/newsraft.c:58: 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:59: src/sections.c: In function 'print_unread_items_count': src/sections.c:254:28: error: expected ')' before 'PRId64' 254 | 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:65: 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:19:30: error: storage size of 'input_polling_period' isn't known 19 | 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