Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Archlinux fails to build

Open
#74 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
arch-linux, c, linux

Research direction

Start with DesktopUI/Makefile and the tray build commands shown in the report, then inspect tray/zt_desktop_tray.c and tray/tray.h around the missing GTK header and ayatana-appindicator3 pkg-config lookup. Re-run make ZT_OFFICIAL_RELEASE=1 after investigating the Arch Linux dependency setup; done means the official build completes without the tray compilation error.

Written by the indexing model from the issue text.

Description

Ask if more info is needed

make ZT_OFFICIAL_RELEASE=1
make[1]: Entering directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI'
rm -rf libui-ng/build
cd libui-ng ; CFLAGS="-O" meson setup build --buildtype=release --default-library=static --backend=ninja
The Meson build system
Version: 1.10.0
Source dir: /home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/libui-ng
Build dir: /home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/libui-ng/build
Build type: native build
Project name: libui
Project version: undefined
C compiler for the host machine: cc (gcc 15.2.1 "cc (GCC) 15.2.1 20260103")
C linker for the host machine: cc ld.bfd 2.45.1
C++ compiler for the host machine: c++ (gcc 15.2.1 "c++ (GCC) 15.2.1 20260103")
C++ linker for the host machine: c++ ld.bfd 2.45.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: YES (/usr/sbin/pkg-config) 2.5.1
Run-time dependency gtk+-3.0 found: YES 3.24.51
Library m found: YES
Library dl found: YES
Run-time dependency threads found: YES
Build targets in project: 8
NOTICE: Future-deprecated features used:
 * 0.56.0: {'gui_app arg in executable'}

libui undefined

  User defined options
    backend        : ninja
    buildtype      : release
    default_library: static

Found ninja-1.13.2 at /usr/sbin/ninja
WARNING: -Dlayout=flat is unsupported and probably broken. It was a failed experiment at making Windows build artifacts runnable while uninstalled, due to PATH considerations, but was untested by CI and anyways breaks reasonable use of conflicting targets in different subdirs. Please consider using `meson devenv` instead. See https://github.com/mesonbuild/meson/pull/9243 for details.
cd libui-ng ; ninja -C build
ninja: Entering directory `build'
[11/93] Compiling C object meson-out/libui.a.p/common_attribute.c.o
../common/attribute.c: In function ‘uiprivAttributeRelease’:
../common/attribute.c:65:90: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
   65 |                 /* TODO implementation bug: we can't release an attribute we don't own */;
      |                                                                                          ^
../common/attribute.c: In function ‘uiFreeAttribute’:
../common/attribute.c:74:79: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
   74 |                 /* TODO user bug: you can't free an attribute you don't own */;
      |                                                                               ^
[13/93] Compiling C object meson-out/libui.a.p/common_attrlist.c.o
../common/attrlist.c: In function ‘uiprivAttrListRemoveAttribute’:
../common/attrlist.c:505:22: warning: variable ‘tailsAt’ set but not used [-Wunused-but-set-variable]
  505 |         struct attr *tailsAt = NULL;
      |                      ^~~~~~~
../common/attrlist.c: In function ‘uiprivAttrListRemoveAttributes’:
../common/attrlist.c:552:22: warning: variable ‘tailsAt’ set but not used [-Wunused-but-set-variable]
  552 |         struct attr *tailsAt = NULL;
      |                      ^~~~~~~
[15/93] Compiling C object meson-out/libui.a.p/unix_alloc.c.o
../unix/alloc.c: In function ‘uninitComplain’:
../unix/alloc.c:27:40: warning: zero-length gnu_printf format string [-Wformat-zero-length]
   27 |                 *str = g_strdup_printf("");
      |                                        ^~
[18/93] Compiling C object meson-out/libui.a.p/unix_cellrendererbutton.c.o
../unix/cellrendererbutton.c: In function ‘cellRendererButton_render’:
../unix/cellrendererbutton.c:226:22: warning: unused variable ‘alignedArea’ [-Wunused-variable]
  226 |         GdkRectangle alignedArea;
      |                      ^~~~~~~~~~~
[20/93] Compiling C object meson-out/libui.a.p/unix_attrstr.c.o
../unix/attrstr.c: In function ‘processAttribute’:
../unix/attrstr.c:90:17: warning: ‘underline’ may be used uninitialized [-Wmaybe-uninitialized]
   90 |                 addattr(p, start, end,
      |                 ^~~~~~~~~~~~~~~~~~~~~~
   91 |                         pango_attr_underline_new(underline));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../unix/attrstr.c:25:24: note: ‘underline’ was declared here
   25 |         PangoUnderline underline;
      |                        ^~~~~~~~~
[28/93] Compiling C object meson-out/libui.a.p/unix_draw.c.o
../unix/draw.c: In function ‘mkbrush’:
../unix/draw.c:41:13: warning: ‘pat’ may be used uninitialized [-Wmaybe-uninitialized]
   41 |         if (cairo_pattern_status(pat) != CAIRO_STATUS_SUCCESS)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
../unix/draw.c:23:26: note: ‘pat’ was declared here
   23 |         cairo_pattern_t *pat;
      |                          ^~~
[37/93] Compiling C object meson-out/libui.a.p/unix_image.c.o
../unix/image.c: In function ‘uiImageAppend’:
../unix/image.c:45:27: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
   45 |                 /* TODO */;
      |                           ^
[42/93] Compiling C object meson-out/libui.a.p/unix_menu.c.o
In function ‘appendMenuItem’,
    inlined from ‘uiprivMakeMenubar’ at ../unix/menu.c:288:5:
../unix/menu.c:265:20: warning: ‘signal’ may be used uninitialized [-Wmaybe-uninitialized]
  265 |         ww->signal = signal;
      |         ~~~~~~~~~~~^~~~~~~~
../unix/menu.c: In function ‘uiprivMakeMenubar’:
../unix/menu.c:250:16: note: ‘signal’ was declared here
  250 |         gulong signal;
      |                ^~~~~~
[45/93] Compiling C object meson-out/tester.p/images.c.o
../test/images.c:663:47: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  663 |         { "andlabs_16x16test_24june2016.png", dat0, 16, 16, 64 },
      |                                               ^~~~
../test/images.c:664:47: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  664 |         { "andlabs_32x32test_24june2016.png", dat1, 32, 32, 128 },
      |                                               ^~~~
../test/images.c:665:69: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  665 |         { "tango-icon-theme-0.8.90_16x16_x-office-spreadsheet.png", dat2, 16, 16, 64 },
      |                                                                     ^~~~
../test/images.c:666:69: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  666 |         { "tango-icon-theme-0.8.90_32x32_x-office-spreadsheet.png", dat3, 32, 32, 128 },
      |                                                                     ^~~~
[47/93] Compiling C object meson-out/tester.p/main.c.o
../test/main.c: In function ‘main’:
../test/main.c:50:16: warning: unused variable ‘page11’ [-Wunused-variable]
   50 |         uiBox *page11, *page12, *page13;
      |                ^~~~~~
../test/main.c:49:48: warning: unused variable ‘page10’ [-Wunused-variable]
   49 |         uiBox *page6, *page7, *page8, *page9, *page10;
      |                                                ^~~~~~
../test/main.c:49:40: warning: unused variable ‘page9’ [-Wunused-variable]
   49 |         uiBox *page6, *page7, *page8, *page9, *page10;
      |                                        ^~~~~
../test/main.c:49:32: warning: unused variable ‘page8’ [-Wunused-variable]
   49 |         uiBox *page6, *page7, *page8, *page9, *page10;
      |                                ^~~~~
[65/93] Compiling C object meson-out/tester.p/page13.c.o
../test/page13.c: In function ‘buttonClicked’:
../test/page13.c:57:24: warning: ISO C forbids conversion of object pointer to function pointer type [-Wpedantic]
   57 |         openTestWindow((uiBox *(*)(void)) data);
      |                        ^
../test/page13.c: In function ‘makePage13’:
../test/page13.c:122:45: warning: ISO C forbids passing argument 3 of ‘uiButtonOnClicked’ between function pointer and ‘void *’ [-Wpedantic]
  122 |         uiButtonOnClicked(b, buttonClicked, uiNewHorizontalBox);
      |                                             ^~~~~~~~~~~~~~~~~~
In file included from ../test/test.h:9,
                 from ../test/page13.c:2:
../test/../ui.h:144:90: note: expected ‘void *’ but argument is of type ‘uiBox * (*)(void)’
  144 | _UI_EXTERN void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *b, void *data), void *data);
      |                                                                                    ~~~~~~^~~~
../test/page13.c:126:45: warning: ISO C forbids passing argument 3 of ‘uiButtonOnClicked’ between function pointer and ‘void *’ [-Wpedantic]
  126 |         uiButtonOnClicked(b, buttonClicked, uiNewVerticalBox);
      |                                             ^~~~~~~~~~~~~~~~
../test/../ui.h:144:90: note: expected ‘void *’ but argument is of type ‘uiBox * (*)(void)’
  144 | _UI_EXTERN void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *b, void *data), void *data);
      |                                                                                    ~~~~~~^~~~
[70/93] Compiling C object meson-out/libui.a.p/unix_table.c.o
../unix/table.c:29:13: warning: ‘setImageSize’ defined but not used [-Wunused-function]
   29 | static void setImageSize(GtkCellRenderer *r)
      |             ^~~~~~~~~~~~
[93/93] Linking target meson-out/cpp-multithread
cd tray ; make clean
make[2]: Entering directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/tray'
Package ayatana-appindicator3-0.1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `ayatana-appindicator3-0.1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ayatana-appindicator3-0.1' not found
Package ayatana-appindicator3-0.1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `ayatana-appindicator3-0.1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ayatana-appindicator3-0.1' not found
rm -f *.o *.a example *.exe *.lib
make[2]: Leaving directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/tray'
cd tray ; make zt_lib
make[2]: Entering directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/tray'
Package ayatana-appindicator3-0.1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `ayatana-appindicator3-0.1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ayatana-appindicator3-0.1' not found
Package ayatana-appindicator3-0.1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `ayatana-appindicator3-0.1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ayatana-appindicator3-0.1' not found
cc -O -DTRAY_APPINDICATOR=1  -std=c99   -c -o zt_desktop_tray.o zt_desktop_tray.c
In file included from zt_desktop_tray.c:16:
tray.h:33:10: fatal error: gtk/gtk.h: No such file or directory
   33 | #include <gtk/gtk.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [<builtin>: zt_desktop_tray.o] Error 1
make[2]: Leaving directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI/tray'
make[1]: *** [Makefile:59: linux] Error 2
make[1]: Leaving directory '/home/builder/.cache/paru/clone/zerotier-desktop-ui-git/src/DesktopUI'
make: *** [Makefile:98: official] Error 2

Dominant language
C
Stars
233
Forks
43
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from zerotier/DesktopUI

All issues in zerotier/DesktopUI

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.