| Message ID | 20260421155925.1430423-1-quaresma.jose@gmail.com |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [meta-oe] networkmanager: re-implement the vala detection | expand |
This ends in trouble with valac | Compiler for C supports link arguments -Wl,--gc-sections: YES | Compiler for C supports arguments -Wcast-align=strict: NO | Compiler for C supports arguments -Wdeclaration-after-statement: YES | Compiler for C supports arguments -Wfloat-equal: YES | Compiler for C supports arguments -Wformat-nonliteral: YES | Compiler for C supports arguments -Wformat-security: YES | Compiler for C supports arguments -Wimplicit-function-declaration: YES | Compiler for C supports arguments -Wimplicit-int: YES | Compiler for C supports arguments -Winit-self: YES | Compiler for C supports arguments -Wint-conversion: YES | Compiler for C supports arguments -Wlogical-op: NO | Compiler for C supports arguments -Wmissing-declarations: YES | Compiler for C supports arguments -Wmissing-include-dirs: YES | Compiler for C supports arguments -Wmissing-prototypes: YES | Compiler for C supports arguments -Wold-style-definition: YES | Compiler for C supports arguments -Wparentheses-equality: YES | Compiler for C supports arguments -Wpointer-arith: YES | Compiler for C supports arguments -Wshadow: YES | Compiler for C supports arguments -Wshift-negative-value: YES | Compiler for C supports arguments -Wstrict-prototypes: YES | Compiler for C supports arguments -Wtypedef-redefinition: YES | Compiler for C supports arguments -Wundef: YES | Compiler for C supports arguments -Wunknown-attributes: YES | Compiler for C supports arguments -Wvla: YES | Compiler for C supports arguments -Wno-duplicate-decl-specifier: YES | Compiler for C supports arguments -Wno-format-truncation: YES | Compiler for C supports arguments -Wno-format-y2k: YES | Compiler for C supports arguments -Wno-gnu-variable-sized-type-not-at-end: YES | Compiler for C supports arguments -Wno-missing-field-initializers: YES | Compiler for C supports arguments -Wno-pragmas: YES | Compiler for C supports arguments -Wno-sign-compare: YES | Compiler for C supports arguments -Wno-tautological-constant-out-of-range-compare: YES | Compiler for C supports arguments -Wno-unknown-pragmas: YES | Compiler for C supports arguments -Wno-unused-parameter: YES | Compiler for C supports arguments -fno-strict-aliasing: YES | Compiler for C supports arguments -Wimplicit-fallthrough: YES | Checking if "-Werror=implicit-fallthrough" compiles: NO | Found pkg-config: YES (/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot-native/usr/bin/pkg-config) 2.5.1 | Run-time dependency uuid found: YES 2.41.3 | Found CMake: NO | Run-time dependency libelogind found: NO (tried pkgconfig and cmake) | Run-time dependency libudev found: YES 259 | Run-time dependency dbus-1 found: YES 1.16.2 | Run-time dependency libndp found: YES 1.9 | Run-time dependency jansson found: NO (tried pkgconfig and cmake) | Run-time dependency libsystemd found: YES 259 | Run-time dependency libsystemd-login found: NO (tried pkgconfig and cmake) | Run-time dependency systemd found: YES 259 | Run-time dependency gio-unix-2.0 found: YES 2.88.0 | Run-time dependency gmodule-2.0 found: YES 2.88.0 | Library dl found: YES | Run-time dependency gobject-introspection-1.0 found: YES 1.86.0 | Run-time dependency nss found: YES 3.122 | Run-time dependency gnutls found: NO (tried pkgconfig and cmake) | Run-time dependency bluez found: YES 5.86 | Program netconfig /usr/netconfig /usr/sbin/netconfig /usr/local/sbin/netconfig found: NO | Program /sbin/ip6tables found: YES (/sbin/ip6tables) | Program modprobe /sbin/modprobe /usr/sbin/modprobe found: NO | Run-time dependency libcurl found: YES 8.19.0 | Run-time dependency libedit found: YES 3.1 | ../sources/networkmanager-1.56.0/meson.build:883: WARNING: add_languages is missing native:, assuming languages are wanted for both host and build. | Compiler for language vala for the host machine not found. | Compiler for language vala for the build machine not found. | | ../sources/networkmanager-1.56.0/meson.build:884:4: ERROR: Assert failed: vala is required to build. Use -Dvapi=false to disable it | | A full log can be found at /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-logs/meson-log.txt | | Last 10 lines of meson-log.txt: | Command line: `aarch64-yoe-linux-clang -mcpu=cortex-a72+crc+nocrypto --dyld-prefix=/usr -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-private/tmphbe49qc1/testfile.c -o /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-private/tmphbe49qc1/output.obj -c -O2 -g -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/sources/networkmanager-1.56.0=/usr/src/debug/networkmanager/1.56.0 -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build=/usr/src/debug/networkmanager/1.56.0 -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot= -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot-native= -pipe -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -std=gnu11` -> 0 | ../sources/networkmanager-1.56.0/meson.build:883: WARNING: add_languages is missing native:, assuming languages are wanted for both host and build. | ----------- | Detecting compiler via: `valac --version` -> [Errno 2] No such file or directory: 'valac' | Compiler for language vala for the host machine not found. | ----------- | Detecting compiler via: `valac --version` -> [Errno 2] No such file or directory: 'valac' | Compiler for language vala for the build machine not found. | | ../sources/networkmanager-1.56.0/meson.build:884:4: ERROR: Assert failed: vala is required to build. Use -Dvapi=false to disable it | | ERROR: meson setup failed | WARNING: /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181:174 exit 1 from 'exit 1' | WARNING: Backtrace (BB generated script): | #1: bbfatal_log, /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, line 174 | #2: meson_do_configure, /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, line 163 | #3: do_configure, /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, line 150 | #4: main, /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, line 187 NOTE: recipe networkmanager-1.56.0-r0: task do_configure: Failed ERROR: Task (/mnt/b/yoe/mut/sources/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb:do_configure) failed with exit code '1' NOTE: Tasks Summary: Attempted 6551 tasks of which 6548 didn't need to be rerun and 1 failed. NOTE: Writing buildhistory NOTE: Writing buildhistory took: 7 seconds NOTE: Build completion summary: NOTE: do_create_recipe_spdx: 0.0% sstate reuse(0 setscene, 1 scratch) Summary: 1 task failed: /mnt/b/yoe/mut/sources/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb: do_configure On Tue, Apr 21, 2026 at 8:59 AM Jose Quaresma via lists.openembedded.org <quaresma.jose=gmail.com@lists.openembedded.org> wrote: > The introduction of DISTRO_FEATURES_OPTED_OUT allows rewriting the > DISTRO_FEATURES by removing whatever is in DISTRO_FEATURES_OPTED_OUT > from DISTRO_FEATURES. > > Thus, the logic of vala can be negated, and it can changed be to > see if gobject-introspection-data is available in DISTRO_FEATURES. > > Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> > --- > .../networkmanager/networkmanager_1.56.0.bb | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta-networking/recipes-connectivity/networkmanager/ > networkmanager_1.56.0.bb > b/meta-networking/recipes-connectivity/networkmanager/ > networkmanager_1.56.0.bb > index 2cc0b76676..138d7118eb 100644 > --- a/meta-networking/recipes-connectivity/networkmanager/ > networkmanager_1.56.0.bb > +++ b/meta-networking/recipes-connectivity/networkmanager/ > networkmanager_1.56.0.bb > @@ -76,7 +76,7 @@ PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli \ > ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', > d)} \ > ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit ppp', d)} \ > ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', > '', d)} \ > - ${@bb.utils.contains('DISTRO_FEATURES_OPTED_OUT', > 'gobject-introspection-data', '', 'vala', d)} \ > + ${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', > 'vala', '', d)} \ > " > > inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)} > -- > 2.53.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#126536): > https://lists.openembedded.org/g/openembedded-devel/message/126536 > Mute This Topic: https://lists.openembedded.org/mt/118939974/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
Khem Raj <raj.khem@gmail.com> escreveu (terça, 21/04/2026 à(s) 18:40): > This ends in trouble with valac > It builds on my side but I haven't tried it with nodistro/poky. I'll check again tomorrow. Jose > > | Compiler for C supports link arguments -Wl,--gc-sections: YES > | Compiler for C supports arguments -Wcast-align=strict: NO > | Compiler for C supports arguments -Wdeclaration-after-statement: YES > | Compiler for C supports arguments -Wfloat-equal: YES > | Compiler for C supports arguments -Wformat-nonliteral: YES > | Compiler for C supports arguments -Wformat-security: YES > | Compiler for C supports arguments -Wimplicit-function-declaration: YES > | Compiler for C supports arguments -Wimplicit-int: YES > | Compiler for C supports arguments -Winit-self: YES > | Compiler for C supports arguments -Wint-conversion: YES > | Compiler for C supports arguments -Wlogical-op: NO > | Compiler for C supports arguments -Wmissing-declarations: YES > | Compiler for C supports arguments -Wmissing-include-dirs: YES > | Compiler for C supports arguments -Wmissing-prototypes: YES > | Compiler for C supports arguments -Wold-style-definition: YES > | Compiler for C supports arguments -Wparentheses-equality: YES > | Compiler for C supports arguments -Wpointer-arith: YES > | Compiler for C supports arguments -Wshadow: YES > | Compiler for C supports arguments -Wshift-negative-value: YES > | Compiler for C supports arguments -Wstrict-prototypes: YES > | Compiler for C supports arguments -Wtypedef-redefinition: YES > | Compiler for C supports arguments -Wundef: YES > | Compiler for C supports arguments -Wunknown-attributes: YES > | Compiler for C supports arguments -Wvla: YES > | Compiler for C supports arguments -Wno-duplicate-decl-specifier: YES > | Compiler for C supports arguments -Wno-format-truncation: YES > | Compiler for C supports arguments -Wno-format-y2k: YES > | Compiler for C supports arguments > -Wno-gnu-variable-sized-type-not-at-end: YES > | Compiler for C supports arguments -Wno-missing-field-initializers: YES > | Compiler for C supports arguments -Wno-pragmas: YES > | Compiler for C supports arguments -Wno-sign-compare: YES > | Compiler for C supports arguments > -Wno-tautological-constant-out-of-range-compare: YES > | Compiler for C supports arguments -Wno-unknown-pragmas: YES > | Compiler for C supports arguments -Wno-unused-parameter: YES > | Compiler for C supports arguments -fno-strict-aliasing: YES > | Compiler for C supports arguments -Wimplicit-fallthrough: YES > | Checking if "-Werror=implicit-fallthrough" compiles: NO > | Found pkg-config: YES > (/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot-native/usr/bin/pkg-config) > 2.5.1 > | Run-time dependency uuid found: YES 2.41.3 > | Found CMake: NO > | Run-time dependency libelogind found: NO (tried pkgconfig and cmake) > | Run-time dependency libudev found: YES 259 > | Run-time dependency dbus-1 found: YES 1.16.2 > | Run-time dependency libndp found: YES 1.9 > | Run-time dependency jansson found: NO (tried pkgconfig and cmake) > | Run-time dependency libsystemd found: YES 259 > | Run-time dependency libsystemd-login found: NO (tried pkgconfig and > cmake) > | Run-time dependency systemd found: YES 259 > | Run-time dependency gio-unix-2.0 found: YES 2.88.0 > | Run-time dependency gmodule-2.0 found: YES 2.88.0 > | Library dl found: YES > | Run-time dependency gobject-introspection-1.0 found: YES 1.86.0 > | Run-time dependency nss found: YES 3.122 > | Run-time dependency gnutls found: NO (tried pkgconfig and cmake) > | Run-time dependency bluez found: YES 5.86 > | Program netconfig /usr/netconfig /usr/sbin/netconfig > /usr/local/sbin/netconfig found: NO > | Program /sbin/ip6tables found: YES (/sbin/ip6tables) > | Program modprobe /sbin/modprobe /usr/sbin/modprobe found: NO > | Run-time dependency libcurl found: YES 8.19.0 > | Run-time dependency libedit found: YES 3.1 > | ../sources/networkmanager-1.56.0/meson.build:883: WARNING: add_languages > is missing native:, assuming languages are wanted for both host and build. > | Compiler for language vala for the host machine not found. > | Compiler for language vala for the build machine not found. > | > | ../sources/networkmanager-1.56.0/meson.build:884:4: ERROR: Assert > failed: vala is required to build. Use -Dvapi=false to disable it > | > | A full log can be found at > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-logs/meson-log.txt > | > | Last 10 lines of meson-log.txt: > | Command line: `aarch64-yoe-linux-clang -mcpu=cortex-a72+crc+nocrypto > --dyld-prefix=/usr -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 > -Wformat -Wformat-security -Werror=format-security > --sysroot=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-private/tmphbe49qc1/testfile.c > -o > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build/meson-private/tmphbe49qc1/output.obj > -c -O2 -g > -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/sources/networkmanager-1.56.0=/usr/src/debug/networkmanager/1.56.0 > -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/build=/usr/src/debug/networkmanager/1.56.0 > -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot= > -ffile-prefix-map=/mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/recipe-sysroot-native= > -pipe -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration > -Werror=unknown-warning-option -Werror=unused-command-line-argument > -Werror=ignored-optimization-argument -std=gnu11` -> 0 > | ../sources/networkmanager-1.56.0/meson.build:883: WARNING: add_languages > is missing native:, assuming languages are wanted for both host and build. > | ----------- > | Detecting compiler via: `valac --version` -> [Errno 2] No such file or > directory: 'valac' > | Compiler for language vala for the host machine not found. > | ----------- > | Detecting compiler via: `valac --version` -> [Errno 2] No such file or > directory: 'valac' > | Compiler for language vala for the build machine not found. > | > | ../sources/networkmanager-1.56.0/meson.build:884:4: ERROR: Assert > failed: vala is required to build. Use -Dvapi=false to disable it > | > | ERROR: meson setup failed > | WARNING: > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181:174 > exit 1 from 'exit 1' > | WARNING: Backtrace (BB generated script): > | #1: bbfatal_log, > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, > line 174 > | #2: meson_do_configure, > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, > line 163 > | #3: do_configure, > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, > line 150 > | #4: main, > /mnt/b/yoe/mut/build/tmp/work/cortexa72-yoe-linux/networkmanager/1.56.0/temp/run.do_configure.1181, > line 187 > NOTE: recipe networkmanager-1.56.0-r0: task do_configure: Failed > ERROR: Task > (/mnt/b/yoe/mut/sources/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb:do_configure) > failed with exit code '1' > NOTE: Tasks Summary: Attempted 6551 tasks of which 6548 didn't need to be > rerun and 1 failed. > NOTE: Writing buildhistory > NOTE: Writing buildhistory took: 7 seconds > NOTE: Build completion summary: > NOTE: do_create_recipe_spdx: 0.0% sstate reuse(0 setscene, 1 scratch) > > Summary: 1 task failed: > > /mnt/b/yoe/mut/sources/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb: > do_configure > > On Tue, Apr 21, 2026 at 8:59 AM Jose Quaresma via lists.openembedded.org > <quaresma.jose=gmail.com@lists.openembedded.org> wrote: > >> The introduction of DISTRO_FEATURES_OPTED_OUT allows rewriting the >> DISTRO_FEATURES by removing whatever is in DISTRO_FEATURES_OPTED_OUT >> from DISTRO_FEATURES. >> >> Thus, the logic of vala can be negated, and it can changed be to >> see if gobject-introspection-data is available in DISTRO_FEATURES. >> >> Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> >> --- >> .../networkmanager/networkmanager_1.56.0.bb | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/meta-networking/recipes-connectivity/networkmanager/ >> networkmanager_1.56.0.bb >> b/meta-networking/recipes-connectivity/networkmanager/ >> networkmanager_1.56.0.bb >> index 2cc0b76676..138d7118eb 100644 >> --- a/meta-networking/recipes-connectivity/networkmanager/ >> networkmanager_1.56.0.bb >> +++ b/meta-networking/recipes-connectivity/networkmanager/ >> networkmanager_1.56.0.bb >> @@ -76,7 +76,7 @@ PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli \ >> ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', >> d)} \ >> ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit ppp', d)} \ >> ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', >> '', d)} \ >> - ${@bb.utils.contains('DISTRO_FEATURES_OPTED_OUT', >> 'gobject-introspection-data', '', 'vala', d)} \ >> + ${@bb.utils.contains('DISTRO_FEATURES', >> 'gobject-introspection-data', 'vala', '', d)} \ >> " >> >> inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)} >> -- >> 2.53.0 >> >> >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> View/Reply Online (#126536): >> https://lists.openembedded.org/g/openembedded-devel/message/126536 >> Mute This Topic: https://lists.openembedded.org/mt/118939974/1997914 >> Group Owner: openembedded-devel+owner@lists.openembedded.org >> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ >> raj.khem@gmail.com] >> -=-=-=-=-=-=-=-=-=-=-=- >> >>
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb index 2cc0b76676..138d7118eb 100644 --- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb +++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.56.0.bb @@ -76,7 +76,7 @@ PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit ppp', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES_OPTED_OUT', 'gobject-introspection-data', '', 'vala', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', 'vala', '', d)} \ " inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
The introduction of DISTRO_FEATURES_OPTED_OUT allows rewriting the DISTRO_FEATURES by removing whatever is in DISTRO_FEATURES_OPTED_OUT from DISTRO_FEATURES. Thus, the logic of vala can be negated, and it can changed be to see if gobject-introspection-data is available in DISTRO_FEATURES. Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> --- .../networkmanager/networkmanager_1.56.0.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)