Compatibility with libgpiod 2.0
See https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/NEWS#n5
Seems eg25-manager needs some changes to work with the new API since it doesn't compile now.
../src/gpio.c: In function 'gpio_sequence_poweron':
../src/gpio.c:45:5: warning: implicit declaration of function 'gpiod_line_set_value'; did you mean 'g_key_file_set_value'? [-Wimplicit-function-declaration]
45 | gpiod_line_set_value(manager->gpio_out[GPIO_OUT_PWRKEY], 1);
| ^~~~~~~~~~~~~~~~~~~~
| g_key_file_set_value
../src/gpio.c: In function 'gpio_sequence_wake':
../src/gpio.c:84:9: warning: implicit declaration of function 'gpiod_line_get_value'; did you mean 'g_key_file_get_value'? [-Wimplicit-function-declaration]
84 | if (gpiod_line_get_value(manager->gpio_out[GPIO_OUT_DTR])) {
| ^~~~~~~~~~~~~~~~~~~~
| g_key_file_get_value
../src/gpio.c: In function 'gpio_get_output_line':
../src/gpio.c:108:17: warning: implicit declaration of function 'gpiod_chip_get_line'; did you mean 'gpiod_chip_get_info'? [-Wimplicit-function-declaration]
108 | gpio_line = gpiod_chip_get_line(manager->gpiochip[chip], line);
| ^~~~~~~~~~~~~~~~~~~
| gpiod_chip_get_info
../src/gpio.c:108:15: warning: assignment to 'struct gpiod_line *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
108 | gpio_line = gpiod_chip_get_line(manager->gpiochip[chip], line);
| ^
../src/gpio.c:112:9: warning: implicit declaration of function 'gpiod_line_request_output'; did you mean 'gpiod_line_request_get_fd'? [-Wimplicit-function-declaration]
112 | if (gpiod_line_request_output(gpio_line, "eg25manager", 0) < 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_fd
../src/gpio.c:113:9: warning: implicit declaration of function 'gpiod_line_release'; did you mean 'gpiod_line_request_release'? [-Wimplicit-function-declaration]
113 | gpiod_line_release(gpio_line);
| ^~~~~~~~~~~~~~~~~~
| gpiod_line_request_release
../src/gpio.c: In function 'gpio_get_input_line':
../src/gpio.c:124:15: warning: assignment to 'struct gpiod_line *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
124 | gpio_line = gpiod_chip_get_line(manager->gpiochip[chip], line);
| ^
../src/gpio.c:128:9: warning: implicit declaration of function 'gpiod_line_request_input'; did you mean 'gpiod_line_request_get_fd'? [-Wimplicit-function-declaration]
128 | if (gpiod_line_request_input(gpio_line, "eg25manager") < 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~
| gpiod_line_request_get_fd
../src/gpio.c: In function 'gpio_init':
../src/gpio.c:172:36: warning: implicit declaration of function 'gpiod_chip_open_by_label'; did you mean 'gpiod_chip_info_get_label'? [-Wimplicit-function-declaration]
172 | manager->gpiochip[i] = gpiod_chip_open_by_label(data.u.s);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| gpiod_chip_info_get_label
../src/gpio.c:172:34: warning: assignment to 'struct gpiod_chip *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
172 | manager->gpiochip[i] = gpiod_chip_open_by_label(data.u.s);
| ^
../src/gpio.c:188:56: warning: implicit declaration of function 'gpiod_chip_num_lines'; did you mean 'gpiod_chip_request_lines'? [-Wimplicit-function-declaration]
188 | if (!line.ok || line.u.i < 0 || line.u.i > gpiod_chip_num_lines(manager->gpiochip[chip.u.i]))
| ^~~~~~~~~~~~~~~~~~~~
| gpiod_chip_request_lines
../src/gpio.c:223:30: warning: assignment to 'struct gpiod_chip *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
223 | manager->gpiochip[0] = gpiod_chip_open_by_label(GPIO_CHIP1_LABEL);
| ^
../src/gpio.c:227:30: warning: assignment to 'struct gpiod_chip *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
227 | manager->gpiochip[1] = gpiod_chip_open_by_label(GPIO_CHIP2_LABEL);
| ^
[17/18] Linking static target src/libgdbofono/libgdbofono.a
[18/18] Linking target src/eg25-manager
ninja: job failed: gcc -o src/eg25-manager src/eg25-manager.p/at.c.o src/eg25-manager.p/config.c.o src/eg25-manager.p/gpio.c.o src/eg25-manager.p/manager.c.o src/eg25-manager.p/ofono-iface.c.o src/eg25-manager.p/suspend.c.o src/eg25-manager.p/toml.c.o src/eg25-manager.p/udev.c.o src/eg25-manager.p/gnss.c.o src/eg25-manager.p/mm-iface.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--as-needed,-O1,--sort-common -Os -fomit-frame-pointer -Os -fomit-frame-pointer -Wl,--start-group src/libgdbofono/libgdbofono.a /usr/lib/libglib-2.0.so /usr/lib/libintl.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libgudev-1.0.so /usr/lib/libgpiod.so /usr/lib/libusb-1.0.so /usr/lib/libcurl.so /usr/lib/libmm-glib.so -Wl,--end-group
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_poweron':
gpio.c:(.text+0x1d): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x38): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_shutdown':
gpio.c:(.text+0x74): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_suspend':
gpio.c:(.text+0xb7): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_resume':
gpio.c:(.text+0xf1): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_wake':
gpio.c:(.text+0x12a): undefined reference to `gpiod_line_get_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x140): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_sequence_sleep':
gpio.c:(.text+0x188): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_get_output_line':
gpio.c:(.text+0x1ca): undefined reference to `gpiod_chip_get_line'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x1e5): undefined reference to `gpiod_line_request_output'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x1f5): undefined reference to `gpiod_line_release'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_get_input_line':
gpio.c:(.text+0x228): undefined reference to `gpiod_chip_get_line'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x242): undefined reference to `gpiod_line_request_input'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x252): undefined reference to `gpiod_line_release'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_init':
gpio.c:(.text+0x3a7): undefined reference to `gpiod_chip_open_by_label'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x4da): undefined reference to `gpiod_chip_num_lines'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x635): undefined reference to `gpiod_chip_num_lines'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x68c): undefined reference to `gpiod_chip_open_by_label'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x6c4): undefined reference to `gpiod_chip_open_by_label'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_check_poweroff':
gpio.c:(.text+0x823): undefined reference to `gpiod_line_get_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x848): undefined reference to `gpiod_line_set_value'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: src/eg25-manager.p/gpio.c.o: in function `gpio_destroy':
gpio.c:(.text+0x879): undefined reference to `gpiod_line_release'
/usr/lib/gcc/i586-alpine-linux-musl/12.2.1/../../../../i586-alpine-linux-musl/bin/ld: gpio.c:(.text+0x895): undefined reference to `gpiod_line_release'
collect2: error: ld returned 1 exit status