Package Details: wine-valve-git 5.0-1

Git Clone URL: https://aur.archlinux.org/wine-valve-git.git (read-only, click to copy)
Package Base: wine-valve-git
Description: A compatibility layer for running Windows programs (Valve version)
Upstream URL: https://github.com/ValveSoftware/wine.git
Licenses: LGPL
Conflicts: bin32-wine, wine, wine-staging, wine-staging-git, wine-wow64
Provides: bin32-wine, wine, wine-valve, wine-wow64
Replaces: bin32-wine
Submitter: Forty-Bot
Maintainer: None
Last Packager: PrinceMachiavell
Votes: 10
Popularity: 0.000000
First Submitted: 2018-11-11 06:14 (UTC)
Last Updated: 2020-03-10 16:29 (UTC)

Required by (307)

Sources (3)

Pinned Comments

PrinceMachiavell commented on 2019-11-18 17:04 (UTC) (edited on 2019-11-18 17:04 (UTC) by PrinceMachiavell)

@skjnldsv, filthyAUR Seems there is an issues somewhere in the LDFLAGS. A temporary fix is to add '!buildflags', to the options array in the PKGBUILD. I just want to figure out what & how to fix the LDFLAGS. I'm guessing something needs -fPIC but in my experience adding that globally can cause other issues.

Latest Comments

kescherAUR commented on 2020-11-26 05:25 (UTC)

Proton 5.13 is available now. The fix for GCC 10 is still needed.

Nigholith commented on 2020-06-07 21:28 (UTC)

@kescherAUR Editing the PKGBUILD to append the -fcommon flag solved the hInstance definition problem for me perfectly. Thanks.

For people like me using yay: run "yay -S wine-valve-git --editmenu" to edit the PKGBUILD when prompted, then append -fcommon to the export CFLAGS line as kescherAUR outlines.

kescherAUR commented on 2020-06-05 23:25 (UTC)

@junaru @hwaiting @silversilva I suggest you read this: https://gcc.gnu.org/gcc-10/porting_to.html#c and upgrade back to the latest version of GCC right afterwards.

In short, upstream uses some tentative definitions in header files, which GCC's linker used to ignore, but now, a default option has changed to -fno-common, so we have to specify -fcommon until upstream either decides to recommend this as well, or until they fix it. I suggest CFLAGS to be temporarily appended (or prepended, git diff below shows appended variant) with -fcommon in the PKGBUILD.

Git diff:

diff --git a/PKGBUILD b/PKGBUILD
index fa4d536..eb6082b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
 # Conttributor: xiretza <xiretza+aur@gmail.com>

 pkgname=wine-valve-git
-pkgver=5.0
+pkgver=5.0.r649.g76dd491924
 pkgrel=1
 pkgdesc='A compatibility layer for running Windows programs (Valve version)'
 arch=('i686' 'x86_64')
@@ -120,7 +120,7 @@ build() {
     # workaround for FS#55128
     # https://bugs.archlinux.org/task/55128
     # https://bugs.winehq.org/show_bug.cgi?id=43530
-    export CFLAGS="${CFLAGS/-fno-plt/}"
+    export CFLAGS="${CFLAGS/-fno-plt/} -fcommon"
     export LDFLAGS="${LDFLAGS/,-z,now/}"

     # build wine 64-bit

attila123 commented on 2020-06-01 14:10 (UTC) (edited on 2020-06-01 14:10 (UTC) by attila123)

Hi, wanted to install it with yay wine-valve-git. My system is fully updated. It was not a trivial search on the Internet, am not a winebuild/GAS expert, so raising this here. It fails with:

make[1]: Entering directory '/home/avangel/.cache/yay/wine-valve-git/src/wine-valve-git-64-build/dlls/dinput'
gcc -m64 -c -o data_formats.o ../../../wine-valve-git/dlls/dinput/data_formats.c -I. \
  -I../../../wine-valve-git/dlls/dinput -I../../include -I../../../wine-valve-git/include \
  -I/usr/include/SDL2 -D__WINESRC__ -D_REENTRANT -DDIRECTINPUT_VERSION=0x0700 -D_REENTRANT -fPIC \
  -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \
  -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wno-packed-not-aligned \
  -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla \
  -Wwrite-strings -Wpointer-arith -Wlogical-op -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong  -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
../../tools/winebuild/winebuild -w --implib -o libdinput.a -m64 --export \
  ../../../wine-valve-git/dlls/dinput/dinput.spec data_formats.o
flag provided but not defined: -64

GAS - Go AST Scanner

Gas analyzes Go source code to look for common programming mistakes that
can lead to security problems.

USAGE:
<then it prints the usage ...>

junaru commented on 2020-05-18 23:19 (UTC)

Ran into this exact same issue while trying to build older wine source from 2019. Timestamps on @silversilva, @hwaiting suggest it started happening recently and there was gcc-10 update at May 8th. Downgrading gcc gcc-ada and gcc-libs worked for me. I went with versions from late 2019 to match my codebase but im pretty sure more recent 9.3.0 would work too.

$ pacman -U https://archive.archlinux.org/packages/g/gcc/gcc-9.2.0-4-x86_64.pkg.tar.xz https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-9.2.0-4-x86_64.pkg.tar.xz https://archive.archlinux.org/packages/g/gcc-ada/gcc-ada-9.2.0-4-x86_64.pkg.tar.xz

Hope it helps.

kescherAUR commented on 2020-05-18 12:35 (UTC) (edited on 2020-05-18 12:36 (UTC) by kescherAUR)

@hwaiting, are you building in a clean chroot? I occasionally get build errors on my running system as well, but to date, none in a fresh chroot.

hwaiting commented on 2020-05-18 12:11 (UTC)

On my desktop I receive the same error as silversilva, but on my laptop it does build successfully.

kescherAUR commented on 2020-05-17 09:02 (UTC)

@silversilva, Ota-Coder This does not happen in a clean chroot for me. Can you retry in a clean chroot with all the neccessary AUR dependencies installed beforehand?

silversilva commented on 2020-05-17 04:48 (UTC)

I am getting these error messages when i try to run makepkg -si

usr/bin/ld: chain.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: collectionstore.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: context.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: crl.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: ctl.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: decode.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: encode.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: filestore.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: main.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: msg.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: object.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: oid.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: proplist.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: provstore.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: regstore.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: rootstore.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: serialize.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: sip.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: store.o:(.bss+0x20): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
/usr/bin/ld: str.o:(.bss+0x0): multiple definition of `hInstance'; cert.o:(.bss+0x0): first defined here
winebuild: /usr/bin/ld failed with status 1
winegcc: ../../tools/winebuild/winebuild failed
make[1]: *** [Makefile:887: crypt32.dll.so] Error 2
make: *** [Makefile:8574: dlls/crypt32] Error 2
make: *** Waiting for unfinished jobs....
==> ERROR: A failure occurred in build().

Ota-Coder commented on 2020-05-13 12:32 (UTC)

I don't know if it's just me but I've tried countless times, removing first proton versions, wine, winetricks among others and these are the last few lines I get whenever I build the package ("airi" is the name of the computer):

 ../../dlls/uuid/libuuid.cross.a ../../dlls/dxgi/libdxgi.cross.a \
  ../../dlls/wined3d/libwined3d.cross.a  -Wl,--file-alignment,4096
make[1]: Leaving directory '/var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-32-build/dlls/d3d11'
/var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-64-build/tools/winegcc/winegcc -o crtdll.dll.so \
  --wine-objdir ../.. --winebuild \
  /var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-64-build/tools/winebuild/winebuild \
  -m32 -fno-PIC -fasynchronous-unwind-tables -shared ../../../wine-valve-git/dlls/crtdll/crtdll.spec \
  console.o cpp.o ctype.o data.o dir.o environ.o errno.o except.o except_arm.o except_arm64.o \
  except_i386.o except_x86_64.o exit.o file.o heap.o locale.o lock.o main.o math.o mbcs.o misc.o \
  process.o scanf.o string.o thread.o time.o undname.o wcs.o -ladvapi32 -luser32 \
  ../../libs/port/libwine_port.a -Wl,-delayload,advapi32.dll -Wl,-delayload,user32.dll -Wl,-O1,--sort-common,--as-needed,-z,relro 
/var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-64-build/tools/winegcc/winegcc -o crtdll.dll.fake \
  --wine-objdir ../.. --winebuild \
  /var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-64-build/tools/winebuild/winebuild \
  -m32 -fno-PIC -fasynchronous-unwind-tables -shared ../../../wine-valve-git/dlls/crtdll/crtdll.spec \
  console.o cpp.o ctype.o data.o dir.o environ.o errno.o except.o except_arm.o except_arm64.o \
  except_i386.o except_x86_64.o exit.o file.o heap.o locale.o lock.o main.o math.o mbcs.o misc.o \
  process.o scanf.o string.o thread.o time.o undname.o wcs.o -ladvapi32 -luser32 \
  ../../libs/port/libwine_port.a -Wl,-delayload,advapi32.dll -Wl,-delayload,user32.dll -Wl,-O1,--sort-common,--as-needed,-z,relro 
make[1]: Leaving directory '/var/tmp/pamac-build-airi/wine-valve-git/src/wine-valve-git-32-build/dlls/crtdll'
==> ERROR: A failure occurred in build().
    Aborting...

pagdot commented on 2020-05-08 14:27 (UTC)

It seems like the mentioned issue could be fixed with

diff --git a/PKGBUILD b/PKGBUILD
index 09a5c1e..d4a29ac 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -21,7 +21,7 @@ source=("https://github.com/ValveSoftware/Proton/archive/$pkgname-$_pkgver.tar.g
 prepare() {
        cd "Proton-$pkgname-$_pkgver"
        #git clone --recurse-submodules https://github.com/ValveSoftware/Proton.git
-       sed -i 's,wined3d-interop.h,wine/wined3d-interop.h,g' vrclient_x64/vrclient_x64/*
+       sed -i 's,wined3d-interop.h,wine/wined3d-interop.h,g' vrclient_x64/vrclient_x64/*.{h,c,cpp}
 }

 build() {

But this opens a new issue:

winegcc -c -march=x86-64 -mtune=generic -O2 -pipe -fno-plt  -I. -DSTEAM_API_EXPORTS  -o steamclient_main.o steamclient_main.c
steamclient_main.c:13:10: fatal error: wine/list.h: No such file or directory
   13 | #include "wine/list.h"
      |          ^~~~~~~~~~~~~
compilation terminated.
winegcc: gcc failed

It seems like proton now requires at least list.h from wine. Maybe wine-valve could fix this issue by also including list.h in the include dir of the installation

commented on 2020-04-08 03:55 (UTC)

weird message i am getting.... i have 1tb of space left on the disk and 60gb of ram free.. /usr/bin/ld: wldap32.a4LHK3.o: final close failed: No space left on device winebuild: /usr/bin/ld failed with status 1 winegcc: /home/nico/.cache/yay/wine-valve-git/src/wine-valve-git-64-build/tools/winebuild/winebuild failed make[1]: [Makefile:630: wldap32.dll.so] Error 2 make[1]: Leaving directory '/home/nico/.cache/yay/wine-valve-git/src/wine-valve-git-32-build/dlls/wldap32' make: [Makefile:7960: dlls/wldap32] Error 2

kescherAUR commented on 2020-03-09 12:59 (UTC)

Please adjust the PKGBUILD:

  • use valve's vkd3d modification (vkd3d-valve-git)
  • switch to proton 5.0 branch
  • Remove !buildflags from options array again

kescherAUR commented on 2020-01-14 21:04 (UTC) (edited on 2020-01-14 21:07 (UTC) by kescherAUR)

If you install vkd3d-valve-git, this package will build again. Note that it will replace the current version of vkd3d on your system. I recommend also installing lib32-vkd3d-valve-git if you do already use lib32-vkd3d.

If you still have a 32-bit system and only want to build the 32-bit version (e.g. if you're using Arch Linux 32), replace vkd3d in the PKGBUILD with lib32-vkd3d-valve-git

kescherAUR commented on 2019-12-25 19:57 (UTC)

@risyasin

You are checking out a very old version. In fact, the last version that built successfully for me seems to have the commit hash 213905a322620eb326b655ab89fbca07316e6357, so perhaps check that out instead.

risyasin commented on 2019-12-23 20:53 (UTC)

Hey latest build problem mentioned by filthyAUR at 2019-12-13 indeed exists. But I could able to compile it by editing pkgbuild. Checking out 3bf7473b880eea which wine 4.16 in github is enough. Edit your prepare function to check out correct release tag with this command. git checkout 3bf7473b880eea8b8dcaa43487afda2d7b1fbd03 You may also change make line to match to your thread count with -j8 etc. Becuase it takes really long.

ekce commented on 2019-12-21 17:27 (UTC)

I can confirm the new build issue that filthyAUR mentioned on 2019-12-13.

commented on 2019-12-16 20:21 (UTC)

Can reproduce the symbol error.

kescherAUR commented on 2019-12-13 18:21 (UTC)

It seems there is indeed a new build issue:

/usr/bin/ld: d3d12_main.o: in function `D3D12CreateVersionedRootSignatureDeserializer':
d3d12_main.c:(.text+0x19d8): undefined reference to `vkd3d_create_versioned_root_signature_deserializer'
/usr/bin/ld: d3d12_main.o: in function `D3D12SerializeVersionedRootSignature':
d3d12_main.c:(.text+0x1c3e): undefined reference to `vkd3d_serialize_versioned_root_signature'
collect2: error: ld returned 1 exit status

kescherAUR commented on 2019-12-08 16:52 (UTC) (edited on 2019-12-08 16:52 (UTC) by kescherAUR)

@firekage

Just change the line with

options=('staticlibs')

to say

options=('staticlibs' '!buildflags')

Seems to work fine for me.

firekage commented on 2019-12-08 10:47 (UTC)

Could somebody explain in more details what exacly add? I tried adding !buildflags and could not compile it anyway.

Achilleus commented on 2019-12-04 11:37 (UTC)

I get this issue when trying to build

/home/zbyszek/AUR/wine-valve/wine-valve-git/src/wine-valve-git-64-build/tools/winegcc/winegcc -o wldap32.dll.so \ -B/home/zbyszek/AUR/wine-valve/wine-valve-git/src/wine-valve-git-64-build/tools/winebuild \ --sysroot=../.. -m32 -fno-PIC -fasynchronous-unwind-tables -shared \ ../../../wine-valve-git/dlls/wldap32/wldap32.spec add.o ber.o bind.o compare.o control.o delete.o \ dn.o error.o extended.o init.o main.o misc.o modify.o modrdn.o option.o page.o parse.o rename.o \ search.o value.o wldap32.res -luser32 ../../libs/port/libwine_port.a -lldap_r -llber -Wl,-O1,--sort-common,--as-needed,-z,relro /home/zbyszek/AUR/wine-valve/wine-valve-git/src/wine-valve-git-64-build/tools/winegcc/winegcc -o wldap32.dll.fake \ -B/home/zbyszek/AUR/wine-valve/wine-valve-git/src/wine-valve-git-64-build/tools/winebuild \ --sysroot=../.. -m32 -fno-PIC -fasynchronous-unwind-tables -shared \ ../../../wine-valve-git/dlls/wldap32/wldap32.spec add.o ber.o bind.o compare.o control.o delete.o \ dn.o error.o extended.o init.o main.o misc.o modify.o modrdn.o option.o page.o parse.o rename.o \ search.o value.o wldap32.res -luser32 ../../libs/port/libwine_port.a -lldap_r -llber -Wl,-O1,--sort-common,--as-needed,-z,relro make[1]: Opuszczenie katalogu '/home/zbyszek/AUR/wine-valve/wine-valve-git/src/wine-valve-git-32-build/dlls/wldap32'

kescherAUR commented on 2019-11-18 18:27 (UTC)

A clue might be that it only happens on the 32 bit builds, if I exclude them, the package builds fine.

PrinceMachiavell commented on 2019-11-18 17:04 (UTC) (edited on 2019-11-18 17:04 (UTC) by PrinceMachiavell)

@skjnldsv, filthyAUR Seems there is an issues somewhere in the LDFLAGS. A temporary fix is to add '!buildflags', to the options array in the PKGBUILD. I just want to figure out what & how to fix the LDFLAGS. I'm guessing something needs -fPIC but in my experience adding that globally can cause other issues.

skjnldsv commented on 2019-11-16 11:04 (UTC)

@filthyAUR same here

kescherAUR commented on 2019-11-14 08:45 (UTC)

Build currently failing on two different machines:

/usr/bin/ld: dxvk/config.o: direct GOT relocation R_386_GOT32X against `_Znwj@@GLIBCXX_3.4' without base register can not be used when making a shared object
/usr/bin/ld: dxvk/dxvk.o: direct GOT relocation R_386_GOT32X against `_ZN4dxvk6Config13getUserConfigEv' without base register can not be used when making a shared object
/usr/bin/ld: final link failed: nonrepresentable section on output

kekonn commented on 2019-09-30 19:21 (UTC)

I've created a patch that pulls in the much newer proton_4.11 branch: https://gist.github.com/bloodsplatter/646f5acfce841c67b45259385891a8a7

gandl commented on 2019-06-10 09:39 (UTC)

I had to install https://www.archlinux.org/packages/community/x86_64/vkd3d/

gandl commented on 2019-06-10 08:01 (UTC)

I'm trying to build this package and it quits with a message, saying that vkd3d.h is missing:

cc -m32 -c -o d3d12_main.o ../../../wine-valve-git/dlls/d3d12/d3d12_main.c -I. \ -I../../../wine-valve-git/dlls/d3d12 -I../../include -I../../../wine-valve-git/include \ -I/usr/include/vkd3d -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wno-packed-not-aligned \ -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla \ -Wwrite-strings -Wpointer-arith -Wlogical-op -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 ../../../wine-valve-git/dlls/d3d12/d3d12_main.c:35:10: schwerwiegender Fehler: vkd3d.h: Datei oder Verzeichnis nicht gefunden #include <vkd3d.h> ^~~~~~~~~

PrinceMachiavell commented on 2019-03-11 20:32 (UTC)

I've removed the harmony font patch and updated the pkgver() function as the upstream repo seems to no longer have tags (perhaps it never did). Anyway it does compile now. Any suggestions are welcome as this package has quite a complex system of makedepends so simplifying would be nice.

Also, I have no idea how upstream is doing versioning and/or tracking Wine upstream. I've taken to just using 3.16.$LAST_COMMIT_DATE. If this causes any issues, let me know.

datafox commented on 2019-03-09 21:01 (UTC)

I just checked why the patch doesn't work and it seems like the new source from Valve has included parts that look similar to the patch to some areas of the code and while I'm not that fluent in C to confirm that it has been fixed upstream, at least something has changed. I'll try removing the patch from the PKGBUILD and report back with my findings.

polensky commented on 2019-02-08 15:39 (UTC)

@MollyMillions I have the exact same problem.

MollyMillions commented on 2019-01-18 13:42 (UTC)

Seems like patches are somewhat out of date, or is it something with my setup?

==> Retrieving sources... -> Found harmony-fix.diff -> Found 30-win32-aliases.conf -> Found wine-binfmt.conf ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Creating working copy of wine-valve-git git repo... Cloning into 'wine-valve-git'... done. Checking out files: 100% (7666/7666), done. ==> Starting prepare()... patching file dlls/gdi32/freetype.c Hunk #1 FAILED at 996. Hunk #2 FAILED at 7271. Hunk #3 FAILED at 7357. Hunk #4 FAILED at 7439. 4 out of 4 hunks FAILED -- saving rejects to file dlls/gdi32/freetype.c.rej ==> ERROR: A failure occurred in prepare(). Aborting... ==> ERROR: Build failed, check /var/lib/aurbuild/x86_64/molly/build

Forty-Bot commented on 2018-11-29 13:13 (UTC)

Hm, that's not how every other wine variant packages it's stuff. If you submit a patch I'll merge it I suppose.

yannleretaille commented on 2018-11-29 11:03 (UTC)

I can no longer use wine-staging to run programs like office because of bugs like https://bugs.archlinux.org/task/58607 that have been fixed recently (downgrading is also not an an option because it conflicts with wine-staging, but is required for proton). Wouldn't it make more sense to have wine-valve point to its own set of executables instead of fully replacing mainline wine?

bulletproof commented on 2018-11-24 19:59 (UTC)

Please update, if possible.

Forty-Bot commented on 2018-11-14 04:44 (UTC)

This is the version of wine valve ships with proton. If you want it to be updated, pester upstream about it :P

bulletproof commented on 2018-11-14 04:33 (UTC)

Why not 3.20 wine version or same updates contain than wine 3.20 version?

Forty-Bot commented on 2018-11-11 15:35 (UTC)

Ok, thanks for that. I've had some trouble getting this to work due to the very long build time, and because wine already has tons of errors in namcap.

xiretza commented on 2018-11-11 13:01 (UTC)

Build fails on dinput8.dll.so in clean chroot because /usr/bin/ld: cannot find -lSDL2. I added sdl2 and lib32-sdl2 to _depends, which fixed it, but I don't know if both are actually needed.