mirror of
https://github.com/mumble-voip/mumble.git
synced 2026-03-03 00:46:56 -05:00
Build of static mumble 1.2.18 64bit failed #1089
Labels
No labels
GlobalShortcuts
Hacktoberfest
accessibility
acl
asio
audio
bonjour
bsd
bug
build
certificate
ci
client
code
documentation
external-bug
feature-request
gRPC
github
good first issue
help wanted
help-needed
ice
installer
linux
macOS
needs-ckeck-with-latest-version
needs-more-input
overlay
positional audio
priority/P0 - Blocker
priority/P1 - Critical
priority/P2 - Important
priority/P3 - Somewhat important
priority/P4 - Low
public-server-registration
qt
recording
release-management
server
stale-no-response
stale-support
support
task
test
theme
translation
triage
ui
windows
wontfix
x64
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/mumble-mumble-voip#1089
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @karstengit on GitHub (Jan 6, 2017).
The version of mumble that i have compiled as regular version can be started.
So i would say everything that is needed to run mumble and murmur is installed within my Debian Jessie system.
But trying to compile a static version failed.
This time i have no idea what is missing?
make[2]: Entering directory '/srv/test/mumble/mumble/src/murmur'
g++ -m64 -std=c++98 -Wl,-z,relro -Wl,-z,now -static -Wl,-O1 -o ../../release/murmurd release/ACL.o release/Group.o release/Channel.o release/Connection.o release/HTMLFilter.o release/User.o release/Timer.o release/CryptState.o release/OSInfo.o release/Net.o release/SSL.o release/Version.o release/SSLCipherInfo.o release/License.o release/LogEmitter.o release/main.o release/Server.o release/ServerUser.o release/ServerDB.o release/Register.o release/Cert.o release/Messages.o release/Meta.o release/RPC.o release/PBKDF2.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o release/BonjourServiceRegister.o release/BonjourServer.o release/moc_ACL.o release/moc_Channel.o release/moc_Connection.o release/moc_LogEmitter.o release/moc_Server.o release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o release/moc_DBus.o release/moc_MurmurIce.o release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o -L../../release -L/opt/Ice-3.3/lib -L/usr/lib/x86_64-linux-gnu -lmumble_proto -lcap -lIce -lIceUtil -lbz2 -lmurmur_ice -lprotobuf -pthread -lz -lssl -lcrypto -ldl -ldns_sd -lavahi-common -lavahi-client -lpthread -lQtDBus -lQtSql -lQtXml -lQtNetwork -lQtCore
/usr/bin/ld: cannot find -lIce
/usr/bin/ld: cannot find -lIceUtil
release/SSL.o: In function
MumbleSSL::qsslSanityCheck()': SSL.cpp:(.text+0x1e5): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/bin/ld: cannot find -lQtDBus /usr/bin/ld: cannot find -lQtSql /usr/bin/ld: cannot find -lQtXml /usr/bin/ld: cannot find -lQtNetwork /usr/bin/ld: cannot find -lQtCore release/UnixMurmur.o: In functionUnixMurmur::setuid()':UnixMurmur.cpp:(.text+0x748): warning: Using 'initgroups' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
release/Meta.o: In function `MetaParams::read(QString)':
Meta.cpp:(.text+0x4623): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
Meta.cpp:(.text+0x46ba): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
collect2: error: ld returned 1 exit status
Makefile.Release:199: recipe for target '../../release/murmurd' failed
make[2]: *** [../../release/murmurd] Error 1
make[2]: Leaving directory '/srv/test/mumble/mumble/src/murmur'
Makefile:34: recipe for target 'release' failed
make[1]: *** [release] Error 2
make[1]: Leaving directory '/srv/test/mumble/mumble/src/murmur'
Makefile:335: recipe for target 'sub-src-murmur-make_default-ordered' failed
make: *** [sub-src-murmur-make_default-ordered] Error 2
@mkrautz commented on GitHub (Jan 6, 2017):
Seems like you're missing static Ice libs?
Anyway, we don't really use or test CONFIG(static) for Murmur on Linux. On Linux, we distribute a dynamic Murmur packed with Magic Ermine.
@karstengit commented on GitHub (Jan 6, 2017):
Sorry, I have no idea what is needed to build the package, because there is no description for it.
How Magic Ermine should be used?
I will have a look at the existant Debian packages.
Maybe i can extrapolate how this release have to be installed regulary.
@mkrautz commented on GitHub (Jan 6, 2017):
I am not sure why you're building a static version if you want the equivalent of the Debian packages. Those aren't static.
Could you please explain what you're trying to achieve? Thanks!
@karstengit commented on GitHub (Jan 6, 2017):
The static package of the client is interesting until i can make a deb package for regular installation.
Up to now i have the compiled files, but i can't distribute them to other clients.
@karstengit commented on GitHub (Jan 6, 2017):
I could build packages for Debian Jessie (stable) now.
They can be downloaded here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850433
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850434
@mkrautz commented on GitHub (Jan 19, 2017):
I'll close this for now.
We don't support building Mumble statically on Linux.
We'd like to support AppImage/FlatPak/snaps in the future.
@karstengit commented on GitHub (Jan 20, 2017):
Then please update the documentation to avoid misunderstanding.
@mkrautz commented on GitHub (Jan 20, 2017):
@karstengit The documentation doesn't say we support it. Where did you get that impression?
@lexesv commented on GitHub (Mar 1, 2017):
Sorry for the reopening of the issue, but I was able to build a statically linking Murmurd .
I busied this recently, so it requires a lot of improvements.
https://github.com/lexesv/static-murmurd
Perhaps you may be interested.
Built at Alpine Linux x86_64, and checked on Debian 8 x86_64.
@mkrautz commented on GitHub (Mar 1, 2017):
@lexesv
Hi! We're very interested.
Maybe you're interested in getting the recipes included in mumble-releng?
For our binary builds, we use the build environments in mumble-releng.
They allow us to use the 100% same dependencies on all OSes. All dependencies have the same patches applied across OSes. This ensures our builds are as similar as they possibly can be, and it also allows us to promptly respond to security problems in dependencies across all OSes.
Right now, the "static" builds we have on mumble.info are built via https://github.com/mumble-voip/mumble-releng/tree/master/buildenv/1.3.x/centos-ermine
It produces are shared murmurd, and is packed (along with all deps) via Margic Ermine to produce a single binary that works across a wide variety of distros. It's not really static, but for end users, it's mostly close enough.
I'd be happy to have your Alpine-based static build be another environment in mumble-releng. That way we could ensure all the deps match up, and so on.
However, I'd be wary of doing official builds via the environment until we can provide good reproducibility of the environment. That is, preferably, building the "static" environment would produce the same build each time, regardless of the packages installed on your Alpine system. In practice, that'd mean we'd have to build all dependencies from source. This is what we do already for centos-ermine.
Of course, the static environment wouldn't need to do that from the start, but I'd like to end up there at one point. :-)
Thanks
@lexesv commented on GitHub (Mar 1, 2017):
Hi!
Thank you for interested.
First, I need to do a complete build (currently CONFIG + = "static no-bonjour no-dbus no-client")
There are task to build a 32 bit version.
After I try to create an environment in which to build Murmur, regardless of packages installed in the OS.
But for me the difficulty is, what tools (Qt, Zeroc, etc) will be updated for new versions of Mumble. They require new deps and those require more... :)
Another bad thing is that the file size of the output is more than 60Mb (12,8Mb in 7zip).
Ermine creates less. If packing UPX - segfault or illegal instruction.
https://github.com/lexesv/static-murmurd/blob/master/distro/murmurd.linux.x64.7z
Also, I had to change the file SSL.cpp.
Because function void MumbleSSL::qsslSanityCheck() checks the dynamic load OpenSSL, which in statically linking can not be.
https://github.com/lexesv/static-murmurd/blob/master/script/murmurd.sh
PS . Sorry for my bad English)
@karstengit commented on GitHub (Mar 2, 2017):
Thank you for the solution lexesv.
@lexesv commented on GitHub (Mar 2, 2017):
@karstengit
You are welcome. If you have any questions, please contact.