[package - main-powerpc64le-default][audio/dragonfly-reverb-lv2] Failed for dragonfly-reverb-3.2.10_2 in build

From: <pkg-fallout_at_FreeBSD.org>
Date: Sat, 17 Feb 2024 02:09:50 UTC
You are receiving this mail as a port that you maintain
is failing to build on the FreeBSD package build server.
Please investigate the failure and submit a PR to fix
build.

Maintainer:     yuri@FreeBSD.org
Log URL:        https://pkg-status.freebsd.org/foul2/data/main-powerpc64le-default/pfcb5f1215dc0_s4347ef6050/logs/dragonfly-reverb-3.2.10_2.log
Build URL:      https://pkg-status.freebsd.org/foul2/build.html?mastername=main-powerpc64le-default&build=pfcb5f1215dc0_s4347ef6050
Log:

=>> Building audio/dragonfly-reverb-lv2
build started at Sat Feb 17 02:03:27 UTC 2024
port directory: /usr/ports/audio/dragonfly-reverb-lv2
package name: dragonfly-reverb-3.2.10_2
building for: FreeBSD main-powerpc64le-default-job-08 15.0-CURRENT FreeBSD 15.0-CURRENT 1500008 powerpc
maintained by: yuri@FreeBSD.org
Makefile datestamp: -rw-r--r--  1 root wheel 1707 Feb  8 01:02 /usr/ports/audio/dragonfly-reverb-lv2/Makefile
Ports top last git commit: fcb5f1215d
Ports top unclean checkout: no
Port dir last git commit: 8fbf807416
Port dir unclean checkout: no
Poudriere version: poudriere-git-3.4.1
Host OSVERSION: 1500000
Jail OSVERSION: 1500008
Job Id: 08




!!! Jail is newer than host. (Jail: 1500008, Host: 1500000) !!!
!!! This is not supported. !!!
!!! Host kernel must be same or newer than jail. !!!
!!! Expect build failures. !!!



---Begin Environment---
SHELL=/bin/sh
OSVERSION=1500008
UNAME_v=FreeBSD 15.0-CURRENT 1500008
UNAME_r=15.0-CURRENT
BLOCKSIZE=K
MAIL=/var/mail/root
MM_CHARSET=UTF-8
LANG=C.UTF-8
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
MAKE_OBJDIR_CHECK_WRITABLE=0
LOCALBASE=/usr/local
USER=root
POUDRIERE_NAME=poudriere-git
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.4.1
MASTERMNT=/usr/local/poudriere/data/.m/main-powerpc64le-default/ref
LC_COLLATE=C
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=
OUTPUT_REDIRECTED_STDERR=4
OUTPUT_REDIRECTED=1
PWD=/usr/local/poudriere/data/.m/main-powerpc64le-default/08/.p
OUTPUT_REDIRECTED_STDOUT=3
P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS
MASTERNAME=main-powerpc64le-default
SCRIPTPREFIX=/usr/local/share/poudriere
SCRIPTNAME=bulk.sh
OLDPWD=/usr/local/poudriere/data/.m/main-powerpc64le-default/ref/.p/pool
POUDRIERE_PKGNAME=poudriere-git-3.4.1
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---

---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
MAKE_ARGS=
---End Poudriere Port Flags/Env---

---Begin OPTIONS List---
===> The following configuration options are available for dragonfly-reverb-3.2.10_2:
     APPS=on: Install apps instantiating effects in Jack sound server
     VST=on: Install VST plugins
===> Use 'make config' to modify these settings
---End OPTIONS List---

--MAINTAINER--
yuri@FreeBSD.org
--End MAINTAINER--

--CONFIGURE_ARGS--

--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
MAKE=gmake PKG_CONFIG=pkgconf XDG_DATA_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.cache  HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CMAKE_PREFIX_PATH="/usr/local"
--End CONFIGURE_ENV--

--MAKE_ENV--
XDG_DATA_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.cache  HOME=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing "  CPP="cpp" CPPFLAGS="-isystem /usr/local/include"  LDFLAGS=" -fstack-protector-strong " LIBS="-L/usr/local/lib"  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -I
 /usr/ports/audio/dragonfly-reverb-lv2/files -isystem /usr/local/include " BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444"
--End MAKE_ENV--

--PLIST_SUB--
 APPS="" NO_APPS="@comment " VST="" NO_VST="@comment " OSREL=15.0 PREFIX=%D LOCALBASE=/usr/local  RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/dragonfly-reverb"  EXAMPLESDIR="share/examples/dragonfly-reverb"  DATADIR="share/dragonfly-reverb"  WWWDIR="www/dragonfly-reverb"  ETCDIR="etc/dragonfly-reverb"
--End PLIST_SUB--

--SUB_LIST--
 APPS="" NO_APPS="@comment " VST="" NO_VST="@comment " PREFIX=/usr/local LOCALBASE=/usr/local  DATADIR=/usr/local/share/dragonfly-reverb DOCSDIR=/usr/local/share/doc/dragonfly-reverb EXAMPLESDIR=/usr/local/share/examples/dragonfly-reverb  WWWDIR=/usr/local/www/dragonfly-reverb ETCDIR=/usr/local/etc/dragonfly-reverb
--End SUB_LIST--

---Begin make.conf---
USE_PACKAGE_DEPENDS=yes
BATCH=yes
WRKDIRPREFIX=/wrkdirs
PORTSDIR=/usr/ports
PACKAGES=/packages
DISTDIR=/distfiles
PACKAGE_BUILDING=yes
PACKAGE_BUILDING_FLAVORS=yes
####  ####
# XXX: We really need this but cannot use it while 'make checksum' does not
# try the next mirror on checksum failure.  It currently retries the same
# failed mirror and then fails rather then trying another.  It *does*
# try the next if the size is mismatched though.
#MASTER_SITE_FREEBSD=yes
# Build ALLOW_MAKE_JOBS_PACKAGES with 3 jobs
MAKE_JOBS_NUMBER=3
#### Misc Poudriere ####
.include "/etc/make.conf.ports_env"
GID=0
UID=0
---End make.conf---
--Resource limits--
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  89999
open files                      (-n)  8192
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
socket buffer size       (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited
kqueues                         (-k)  unlimited
umtx shared locks               (-o)  unlimited
--End resource limits--
=======================<phase: check-sanity   >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  License GPLv3 accepted by the user
===========================================================================
=======================<phase: pkg-depends    >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===>   dragonfly-reverb-3.2.10_2 depends on file: /usr/local/sbin/pkg - not found
===>   Installing existing package /packages/All/pkg-1.20.9_1.pkg
[main-powerpc64le-default-job-08] Installing pkg-1.20.9_1...
[main-powerpc64le-default-job-08] Extracting pkg-1.20.9_1: .......... done
===>   dragonfly-reverb-3.2.10_2 depends on file: /usr/local/sbin/pkg - found
===>   Returning to build of dragonfly-reverb-3.2.10_2
===========================================================================
=======================<phase: fetch-depends  >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===========================================================================
=======================<phase: fetch          >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  License GPLv3 accepted by the user
===> Fetching all distfiles required by dragonfly-reverb-3.2.10_2 for building
===========================================================================
=======================<phase: checksum       >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  License GPLv3 accepted by the user
===> Fetching all distfiles required by dragonfly-reverb-3.2.10_2 for building
=> SHA256 Checksum OK for michaelwillis-dragonfly-reverb-3.2.10_GH0.tar.gz.
=> SHA256 Checksum OK for DISTRHO-DPF-63dfb76_GH0.tar.gz.
=> SHA256 Checksum OK for DISTRHO-pugl-844528e_GH0.tar.gz.
===========================================================================
=======================<phase: extract-depends>============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===========================================================================
=======================<phase: extract        >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  License GPLv3 accepted by the user
===> Fetching all distfiles required by dragonfly-reverb-3.2.10_2 for building
===>  Extracting for dragonfly-reverb-3.2.10_2
=> SHA256 Checksum OK for michaelwillis-dragonfly-reverb-3.2.10_GH0.tar.gz.
=> SHA256 Checksum OK for DISTRHO-DPF-63dfb76_GH0.tar.gz.
=> SHA256 Checksum OK for DISTRHO-pugl-844528e_GH0.tar.gz.
===========================================================================
=======================<phase: patch-depends  >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===========================================================================
=======================<phase: patch          >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  Patching for dragonfly-reverb-3.2.10_2
===>  Applying FreeBSD patches for dragonfly-reverb-3.2.10_2 from /usr/ports/audio/dragonfly-reverb-lv2/files
===========================================================================
=======================<phase: build-depends  >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===>   dragonfly-reverb-3.2.10_2 depends on package: lv2>0 - not found
===>   Installing existing package /packages/All/lv2-1.18.10.pkg
[main-powerpc64le-default-job-08] Installing lv2-1.18.10...
[main-powerpc64le-default-job-08] `-- Installing at-spi2-core-2.50.1...
[main-powerpc64le-default-job-08] |   `-- Installing dbus-1.14.10_4,1...
[main-powerpc64le-default-job-08] |   | `-- Installing expat-2.5.0_1...
[main-powerpc64le-default-job-08] |   | `-- Extracting expat-2.5.0_1: .......... done
[main-powerpc64le-default-job-08] |   | `-- Installing libICE-1.1.0_2,1...
<snip>
[main-powerpc64le-default-job-08] `-- Installing webrtc-audio-processing0-0.3.1_3...
[main-powerpc64le-default-job-08] `-- Extracting webrtc-audio-processing0-0.3.1_3: .......... done
===> Creating groups.
Creating group 'pulse' with gid '563'.
Creating group 'pulse-access' with gid '564'.
Creating group 'pulse-rt' with gid '557'.
===> Creating users
Creating user 'pulse' with uid '563'.
[main-powerpc64le-default-job-08] Extracting pulseaudio-16.1_2: .......... done
=====
Message from duktape-lib-2.7.0:

--
===>   NOTICE:

The duktape-lib port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://docs.freebsd.org/en/articles/contributing/#ports-contributing
=====
Message from pulseaudio-16.1_2:

--
Pulseaudio tries to determine default values for FreeBSD OSS driver at first
start, based on /dev/sndstat output. The hw.snd.default_unit sysctl may affect
these values, but restart of the Pulseaudio might be needed to rescan it again,
e.g. `pacmd exit`.

Pulseaudio has separate input and output configure lines. You can change them
with using following commands:

To change the default sink (output):
# pacmd set-default-sink 3
To change the default source (input):
# pacmd set-default-source 3

This can also be set in /usr/local/etc/pulse/default.pa

Replace the number '3' with the new default you want to set.

The audio/freedesktop-sound-theme is needed if the default sound files
are uncommented in the /usr/local/etc/pulse/default.pa file.
===>   dragonfly-reverb-3.2.10_2 depends on shared library: libpulse.so - found (/usr/local/lib/libpulse.so)
===>   Returning to build of dragonfly-reverb-3.2.10_2
===>   dragonfly-reverb-3.2.10_2 depends on shared library: libjack.so - not found
===>   Installing existing package /packages/All/jackit-1.9.22_2.pkg
[main-powerpc64le-default-job-08] Installing jackit-1.9.22_2...
[main-powerpc64le-default-job-08] `-- Installing libsysinfo-0.0.3_3...
[main-powerpc64le-default-job-08] `-- Extracting libsysinfo-0.0.3_3: ......... done
[main-powerpc64le-default-job-08] `-- Installing py39-dbus-1.3.2...
[main-powerpc64le-default-job-08] |   `-- Installing pydbus-common-1.3.2...
[main-powerpc64le-default-job-08] |   `-- Extracting pydbus-common-1.3.2: .......... done
[main-powerpc64le-default-job-08] `-- Extracting py39-dbus-1.3.2: .......... done
[main-powerpc64le-default-job-08] Extracting jackit-1.9.22_2: .......... done
=====
Message from jackit-1.9.22_2:

--
The new JACK server comes with a DBUS control interface:

$ jack_control help
$ jack_control ds oss
$ jack_control dp
$ jack_control dps rate 48000
$ jack_control dps wordlength 16
$ jack_control dps capture /dev/dsp0
$ jack_control dps playback /dev/dsp0
$ jack_control eps realtime False
$ jack_control start

To use real-time priority for JACK server and clients, load the mac_priority(4)
module and add the JACK user to the realtime group.

Memory locking has to be allowed in /etc/login.conf or ~/.login_conf. Set the
resource limit ":memorylocked=unlimited:" and don't forget to run

# cap_mkdb /etc/login.conf

It's still possible to start JACK server as an RC service for a dedicated user.
Note that only one JACK server can be run at a time. An /etc/rc.conf example:

jackd_enable="YES"
jackd_user="joe"
jackd_args="--no-realtime -doss -r48000 -p1024 -w16 \
            --capture /dev/dsp0 --playback /dev/dsp0"

Official JACK example clients and tools are available as jack-example-tools.

JACK 1.9.22 introduces a latency correction fix.
Latency correction parameters have to be measured again after an update.
===>   dragonfly-reverb-3.2.10_2 depends on shared library: libjack.so - found (/usr/local/lib/libjack.so)
===>   Returning to build of dragonfly-reverb-3.2.10_2
===>   dragonfly-reverb-3.2.10_2 depends on shared library: libGL.so - found (/usr/local/lib/libGL.so)
===========================================================================
=======================<phase: configure      >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  Configuring for dragonfly-reverb-3.2.10_2
===========================================================================
=======================<phase: build          >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  Building for dragonfly-reverb-3.2.10_2
gmake[1]: Entering directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10'
gmake -C dpf/dgl FILE_BROWSER_DISABLED=true
gmake -C dpf/utils/lv2-ttl-generator
gmake[2]: Entering directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/dpf/dgl'
gmake[2]: Entering directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/dpf/utils/lv2-ttl-generator'
cc lv2_ttl_generator.c -Wall -Wextra -pipe -MD -MP -fPIC -DPIC -DNDEBUG -O3 -ffast-math -fdata-sections -ffunction-sections -fvisibility=hidden -std=gnu99 -O2 -pipe  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -o ../lv2_ttl_generator -fdata-sections -ffunction-sections -Wl,-O1,--as-needed,--gc-sections -Wl,--strip-all  -fstack-protector-strong  -Wl,--no-undefined -ldl
Compiling src/Application.cpp
Compiling src/ApplicationPrivateData.cpp
gmake[2]: Leaving directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/dpf/utils/lv2-ttl-generator'
Compiling src/Color.cpp
Compiling src/EventHandlers.cpp
Compiling src/Geometry.cpp
Compiling src/ImageBase.cpp
Compiling src/ImageBaseWidgets.cpp
Compiling src/Layout.cpp
Compiling src/Resources.cpp
Compiling src/SubWidget.cpp
Compiling src/SubWidgetPrivateData.cpp
Compiling src/TopLevelWidget.cpp
Compiling src/TopLevelWidgetPrivateData.cpp
Compiling src/Widget.cpp
Compiling src/WidgetPrivateData.cpp
Compiling src/Window.cpp
Compiling src/WindowPrivateData.cpp
Compiling src/Cairo.cpp (Cairo variant)
Compiling src/pugl.cpp (Cairo variant)
Compiling src/OpenGL.cpp (OpenGL variant)
Compiling src/NanoVG.cpp (OpenGL variant)
Compiling src/pugl.cpp (OpenGL variant)
Compiling src/pugl.cpp
Creating libdgl-cairo.a
Creating libdgl-stub.a
Creating libdgl-opengl.a
Symlinking libdgl.a
gmake[2]: Leaving directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/dpf/dgl'
gmake all -C plugins/dragonfly-hall-reverb
gmake[2]: Entering directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/plugins/dragonfly-hall-reverb'
Compiling DSP.cpp
Compiling ../../common/kiss_fft/kiss_fft.c
Compiling ../../common/kiss_fft/kiss_fftr.c
Compiling ../../common/freeverb/allpass.cpp
Compiling ../../common/freeverb/biquad.cpp
Compiling ../../common/freeverb/comb.cpp
Compiling ../../common/freeverb/delay.cpp
Compiling ../../common/freeverb/delayline.cpp
Compiling ../../common/freeverb/earlyref.cpp
Compiling ../../common/freeverb/efilter.cpp
Compiling ../../common/freeverb/nrev.cpp
Compiling ../../common/freeverb/nrevb.cpp
Compiling ../../common/freeverb/progenitor.cpp
Compiling ../../common/freeverb/progenitor2.cpp
Compiling ../../common/freeverb/revbase.cpp
Compiling ../../common/freeverb/slot.cpp
Compiling ../../common/freeverb/strev.cpp
Compiling ../../common/freeverb/utils.cpp
Compiling ../../common/freeverb/zrev.cpp
Compiling ../../common/freeverb/zrev2.cpp
Compiling Plugin.cpp
Compiling Artwork.cpp
Compiling UI.cpp
Compiling AbstractUI.cpp
Compiling ../../common/LabelledKnob.cpp
Compiling ../../common/Selection.cpp
Compiling ../../common/Spectrogram.cpp
Compiling ../../common/Bitstream_Vera_Sans_Regular.cpp
Compiling DistrhoPluginMain.cpp (JACK)
Compiling DistrhoUIMain.cpp (JACK)
Compiling DistrhoPluginMain.cpp (LV2)
Compiling DistrhoUIMain.cpp (LV2)
Compiling DistrhoPluginMain.cpp (VST2)
Compiling DistrhoUIMain.cpp (VST2)
Compiling DistrhoPluginMain.cpp (VST3)
Compiling DistrhoUIMain.cpp (VST3)
Compiling DistrhoPluginMain.cpp (CLAP)
Compiling DistrhoUIMain.cpp (CLAP)
Creating JACK standalone for DragonflyHallReverb
Creating LV2 plugin library for DragonflyHallReverb
Creating LV2 plugin UI for DragonflyHallReverb
Creating VST2 plugin for DragonflyHallReverb
Creating VST3 plugin for DragonflyHallReverb
ld: error: version script assignment of 'global' to symbol 'VSTPluginMain' failed: symbol not defined
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[2]: *** [../../dpf/Makefile.plugins.mk:644: ../../bin/DragonflyHallReverb-vst.so] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: Leaving directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10/plugins/dragonfly-hall-reverb'
gmake[1]: *** [Makefile:23: plugins] Error 2
gmake[1]: Leaving directory '/wrkdirs/usr/ports/audio/dragonfly-reverb-lv2/work/dragonfly-reverb-3.2.10'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/dragonfly-reverb-lv2