-
peach34
I just tried building Monero and got this error:
-
peach34
[100%] Linking CXX executable ../../bin/monero-wallet-rpc/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::~gssapi_client_t()':(.text+0x5d): undefined reference to `gss_release_cred'/usr/bin/ld:
-
peach34
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::process_next_token(zmq::msg_t*) [clone .part.0]':(.text+0x246): undefined reference to `gss_release_name'/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in
-
peach34
function `zmq::gssapi_client_t::~gssapi_client_t()':(.text+0x780): undefined reference to `gss_release_cred'/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::initialize_context()':(.text+0x7fd): undefined reference to `gss_init_sec_context'/usr/bin/ld:
-
peach34
(.text+0x84d): undefined reference to `gss_import_name'/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::produce_next_token(zmq::msg_t*)':(.text+0x8a0): undefined reference to `gss_release_buffer'/usr/bin/ld: (.text+0x8c2): undefined reference to
-
peach34
`gss_release_buffer'/usr/bin/ld: (.text+0x8ce): undefined reference to `gss_release_name'/usr/bin/ld: (.text+0x8e2): undefined reference to `gss_release_name'/usr/bin/ld: (.text+0x8f7): undefined reference to `gss_delete_sec_context'
-
peach34
Does anyone know what is going on? This is Ubuntu 18/20 with fully up to date dependencies
-
peach34
I think it's caused by the latest libzmq3-dev
-
sethsimmons
What branch are you building against? I'm on Ubuntu 20.04 and can test.
-
peach34
Perhaps another version of gssapi is linked earlier in the chain and so the interface is different
-
peach34
maybe needs another -lgssapi link or something
-
peach34
master branch @seth
-
peach34
here are all of the versions of my packages
-
sethsimmons
Ok, building now.
-
peach34
Note, selecting 'libunwind-dev' instead of 'libunwind8-dev'Note, selecting 'libreadline-dev' instead of 'libreadline6-dev'build-essential is already the newest version (12.8ubuntu1).cmake is already the newest version (3.16.3-1ubuntu1).libexpat1-dev is already the newest version (2.2.9-1build1).liblzma-dev is already the newest version
-
peach34
(5.2.4-1).libreadline-dev is already the newest version (8.0-4).libsodium-dev is already the newest version (1.0.18-1).libssl-dev is already the newest version (1.1.1f-1ubuntu2).libunwind-dev is already the newest version (1.2.1-9build1).pkg-config is already the newest version (0.29.1-0ubuntu4).doxygen is already the newest version
-
peach34
(1.8.17-0ubuntu2).graphviz is already the newest version (2.42.2-3build2).libboost-all-dev is already the newest version (1.71.0.0ubuntu2).libldns-dev is already the newest version (1.7.0-4.1ubuntu1).libpgm-dev is already the newest version (5.2.122~dfsg-3ubuntu1).libzmq3-dev is already the newest version (4.3.2-2ubuntu1).libunbound-dev is already
-
peach34
the newest version (1.9.4-2ubuntu1.1).
-
peach34
I tried compiling some other forks of Monero and I get the same
-
sethsimmons
Worked perfectly for me from Master
-
sethsimmons
`libzmq3-dev is already the newest version (4.3.2-2ubuntu1).`
-
sethsimmons
gcc = 9.3.0
-
peach34
Me too, 9.3
-
sethsimmons
boost = 1.71
-
peach34
Are you in vm ?
-
sethsimmons
nope, bare metal
-
peach34
We had no issues inside a vm, but a clean install of Ubuntu doesn't work
-
peach34
can you try installing all of the dependencies with apt-get
-
sethsimmons
Anything out of date/missing if you run this: `sudo apt update && sudo apt install build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev qttools5-dev-tools libhidapi-dev libusb-dev libprotobuf-dev protobuf-compiler`
-
peach34
sudo apt update && sudo apt install build-essential cmake pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev doxygen graphviz libpgm-dev qttools5-dev-tools libhidapi-dev libusb-dev libprotobuf-dev protobuf-compiler
-
-
peach34
also please run sudo apt-get upgrade
-
sethsimmons
I'm on Matrix, let me know if the above came through
-
sethsimmons
I'm already up to date.
-
moneromooo
It says: * sethsimmons sent a long message: <
matrix.org/_matrix/media....
-
moneromooo
So it's basically invisible unless somee goes see the link.
-
peach34
thanks Seth will check those dependencies now
-
sethsimmons
Good to know
-
sethsimmons
Thanks moneromooo
-
peach34
Nah I can see it all moneromooo
-
sethsimmons
Always wondered how MD comes through from matrix
-
peach34
oh sorry
-
peach34
yeah following link i can see it
-
sethsimmons
makes sense :)
-
peach34
seth does it work for release-static-linux-x86_64
-
peach34
that is what i'm trying
-
sethsimmons
Oh I'm just building release
-
sethsimmons
Not static
-
sethsimmons
trying that now
-
sethsimmons
I don't normally do static builds
-
asymptotically
maybe the ubuntu version of libzmq is built to depend on some extra guff, that just works with the shared libs. but the static libs might not know about it since they don't say what they depend on
-
moneromooo
I blame cmake, likely wouldn't happen with pkg-config.
-
asymptotically
can't cmake read the zmq pkgconfig file?
-
moneromooo
It can.
-
peach34
The strangest thing is when I run inside of CLion IDE, and do a cmake-debug, It compiles fine
-
moneromooo
But it likely doesn't. It relies on "recipes" that ship with cmake. Recipe for being old and inflexible.
-
peach34
We have the same set of dependencies Seth
-
moneromooo
It's like systemd. "I will rewrite it all just because it's fun, and then inflict misery on others".
-
peach34
I didn't think that Monero had a zmq pkgconfig file
-
asymptotically
looks like we just use find_library (just search paths for .a or .so) instead of find_package for their recipies
-
moneromooo
Sorry, by "It" above, I meant "cmake".
-
asymptotically
peach34: it comes with zmq. try looking through dpkg -L libzmq-dev
-
moneromooo
Anyway, I'll butt out since I'm just complaining ^_^
-
peach34
chris@chrispc:~/monero$ dpkg -L libzmq-devdpkg-query: package 'libzmq-dev' is not installedUse dpkg --contents (= dpkg-deb --contents) to list archive files contents.
-
peach34
do i need the 3 after zmq
-
asymptotically
peach34: as a hack you could try adding -DCMAKE_EXE_LINKER_FLAGS='-lgssapi' to the cmake arguments, or whatever else zmq wants
-
peach34
sethsimmons I found it here: /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc
-
peach34
Why is it that cmake-debug inside of the Clion IDE works and compiling from terminal doesn't?
-
sethsimmons
static bbilt fine for me as well
-
sethsimmons
*built
-
peach34
I will try putting that line into the top level cmakelists.txt
-
peach34
I'm wondering moneromooo if it works with CLion but not the terminal because CLion uses a different version of cmake that is bundled
-
moneromooo
Could be. cmake uses those modules it ships itself, so is bound to be out of date all the time.
-
sethsimmons
Did you see that mine built fine, peach34
-
moneromooo
I guess you can compare the modules for that deal with 0mq and gss.
-
peach34
Yeah thanks sethsimmons
-
sethsimmons
`cmake version 3.16.3`
-
moneromooo
Though IIRC the zmq stuff is from the monero tree...
-
peach34
Clion uses cmake 3.17.3 and works
-
moneromooo
Ah, it's manual. It just finds libraries. Might not be cmake's fault after all.
-
moneromooo
Maybe add a gss line after: find_library(NORM_LIBRARY norm)
-
peach34
it built fine after linking to gssapi
-
moneromooo
Probavly something like :find_libary(GSS_LIBRARY gss) (assuming it has the usual name)
-
moneromooo
Add add GSS_LIBRARY to the zmq libs
-
moneromooo
Oh, good.
-
peach34
shall I PR this ^
-
moneromooo
Sure.
-
peach34
just adding to the linker flags?
-
peach34
Or what you suggested
-
moneromooo
Whatever builds.
-
peach34
Ok
-
asymptotically
we could use pkgconfig to find zmq instead, the libzmq i have installed doesn't depend on any gssapi kerberos scary stuff
-
peach34
Actually, I found that make -j4 works, but release-static doesn't
-
peach34
I had put the code in another fork of Monero lol, two secs
-
peach34
is this the right line?
-
peach34
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgssapi")
-
peach34
I got an error that the linker couldn't find it
-
peach34
same for gss
-
peach34
sorry i dced
-
peach34
Do I need more than the line
-
peach34
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgssapi") or gss, because the linker cant find it
-
asymptotically
have a look at that package config file you found earlier. it might be named something else like '-lgssapi_krb5'
-
peach34
should I include the name of the .pc file
-
peach34
asymptotically
-
peach34
chris@chrispc:~/electroneum$ locate gssapi | grep "pc"/usr/include/gssrpc/auth_gssapi.h/usr/include/mit-krb5/gssrpc/auth_gssapi.h/usr/lib/x86_64-linux-gnu/pkgconfig/krb5-gssapi.pc/usr/lib/x86_64-linux-gnu/pkgconfig/mit-krb5-gssapi.pc/usr/lib/x86_64-linux-gnu/pkgconfig/mit-krb5/krb5-gssapi.pc
-
peach34
sorry bad formatting
-
peach34
I get three .pc files with a similar name
-
asymptotically
`pkg-config --static --libs libzmq` should spit them out
-
peach34
thanks very much. why is it that we feed libzmq rather than libzmq3 into pkg-config?
-
asymptotically
just because that's the name of the .pc file. 3 is just the name of the debian package, maybe you can choose between installing multiple versions
-
peach34
Thanks
-
peach34
Ok I've managed to do it with that thanks
-
moneromooo
You want to detect libgssapi. It might not be present in some systems, and not needed. And electroneum is a scam if you did not know (no coders, just advertisers).
-
moneromooo
And their miner didn't actually mine.
-
moneromooo
Scams really need to die, and they won't until people stop buying them, making themselves complicit in the process.
-
moneromooo
The really shitty thing is that regulation will come down hard on people trying to keep thier privacy, not on people helping scams. Fucked world.
-
peach34
moneromooo they aren't a scam at all, just not as blockchain dev heavy
-
peach34
They have built a custodial wallet system, a huge freelancing platform & have lots of real world adoption
-
peach34
Fully regulated , KYC/AML compliant
-
peach34
They have many coders and infrastructure guys I can assure you of that
-
peach34
Scam is the opposite of what they are, honestly. Their mobile mining was marketing to get people interested yes, and they were open about that from the start
-
moneromooo
Maybe they got coders since then, but at the start it was definitely no coders and a miner that didn't mine.
-
moneromooo
I guess they'd have the money to get coders now, after the original scam :)
-
moneromooo
Doesn't change the fact that whitewashing after the fact will incentivize scams if they can be forgiven later.
-
peach34
Nah they were always open that it didn't mine, that it was simulated.
-
moneromooo
For the same project anyway. If they were to start a different honest one, maybe.
-
peach34
And originally they had many coders, but only one blockchain guy
-
peach34
They are and have always been legitimate. The most legitimate out there believe it or not.
-
moneromooo
While I have no inside info, I seriously doubt that. I remember one guy asking a quesiton, didn't even know how to use a compiler.
-
moneromooo
The most ? Dude. You're doing yourself no favours here.
-
peach34
Yeah I think they started off knowing very little about blockchain and c++
-
moneromooo
< peach34> And originally they had many coders
-
peach34
They mainly had PHP developers
-
moneromooo
Well, I guess could be javsscript coders.
-
moneromooo
o_O
-
dsc_
current main repo resembles a ghost town
-
peach34
lol well yeah, I just don't think they're as bad as you think they are
-
moneromooo
Anyway, in my view, marketing heavy == scam anyway, regardless of whether they had an army of PHP coders.
-
peach34
But I get it
-
peach34
I understand why you'd be annoyed by them
-
peach34
moneromooo for this zmq issue, what is the best way to detect the library
-
peach34
I have my line find_library(GSSAPI gssapi_krb5)
-
moneromooo
Same as the existing tests for pgm and.. er.. another.
-
moneromooo
Looks like it, yes.
-
moneromooo
And the link line (or the zmq libs line, can't recall) needs to reference this new var.
-
peach34
I just used set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgssapi_krb5")
-
peach34
for the link line
-
peach34
But it seems doing find_library(GSSAPI gssapi_krb5) does not find the library
-
moneromooo
That'd change all the binaries. Not sure tha'ts what you want. Let me look now.
-
peach34
I wrapped it in a conditional
-
moneromooo
A bit after find_library, you see:
-
moneromooo
if(NORM_LIBRARY) set(ZMQ_LIB "${ZMQ_LIB};${NORM_LIBRARY}")
-
moneromooo
endif()
-
peach34
if(GSSAPI) link
-
moneromooo
Do the same. then anything that links aginst libzmq will also link against libgssapi_krb5 when found.
-
peach34
got you
-
peach34
So the colon separated ZMQ_LIB list means whenever lib zmq is found, link against norm, proto etc?
-
peach34
semicolon seperated*
-
moneromooo
It means: append the lib, if it was found. Done for each lib.
-
moneromooo
So yes.
-
peach34
Right, thanks.
-
peach34
moneromooo are we not at risk of duplicate definitions for those without this issue by adding a gssapi link like this?
-
moneromooo
I doubt it, unless you point out a particular reason why.
-
moneromooo
You can tpyically use -lfoo several times, that's not a problem unless you're linking against different symbols with the same name.
-
moneromooo
Which could happen if you link against two versions of libgss_krb5.
-
peach34
You usually can, if you link in groups
-
peach34
^ exactly
-
moneromooo
You can do what ? And I don't know what groups are in this context.
-
peach34
You can usually link the same file more than once
-
peach34
I guess here there is no chance of linking against two different libgss_krb5 right
-
moneromooo
Right.
-
moneromooo
For no == very small.
-
peach34
yeah
-
xmr-pr
grcasanova opened issue #6759: View-only wallet creation leads to an avalanche of warnings and errors
-
xmr-pr
-
moneromooo
Oh, I have something for the fork :) I'd forgot, but someone wanted to make the coinbase amount so miners can't ask for less.
-
moneromooo
Never did it, so I'll do it now. Trivial IIRC.
-
hyc
why does the current code allow miners to ask for less? and why remove that ability?
-
moneromooo
Because it made pre-rct coinbase txes sdmaller. Because it's not pointless and removes a potential fingerprinting vector.
-
moneromooo
ffs
-
moneromooo
Why do I always make this not/now typo...
-
moneromooo
It's now pointless.
-
xmr-pr
moneromooo-monero opened pull request #6760: enforce claiming maximum coinbase amount
-
xmr-pr
-
hyc
ah ok makes sense
-
moneromooo
hyc: btw you might want to check 6757, up your alley.
-
hyc
ok
-
hyc
bah. whatever changes github made recently to their site's JS scripts, no longer works in my browser
-
hyc
no page updating, have to do manual reload on everything
-
doktoro
exit
-
hyc
huh, there's really code calling threadpool wait() with the wrong tpool? how?
-
moneromooo
No. Just with no pool, which was useless.
-
hyc
because of an exception handler?
-
moneromooo
No, run would exit (due to the exception), so wait would hang waiting.
-
moneromooo
The fix is the try/catch in run. The rest is armour plating just in case of other bug.
-
hyc
ok
-
endogenic
question- should ec_point in monero core not be declared as containing unsigned chars instead of just chars?
-
hyc
oh I read the commits in reverse order
-
moneromooo
I'd say whichever needs the fewest casts :)
-
endogenic
fewest cats? nioc?
-
moneromooo
I don't think anything really cares about signedness (ie, implicit promotion) outside the crypto-ops.c file, but that would need double checking.
-
moneromooo
C casts.
-
endogenic
i know :P
-
moneromooo
rct uses the other signednes, which is a pain.
-
moneromooo
I'd be surprised if this didn't need a number of cast changes tbh.
-
endogenic
does it make any more or less sense to use a particular signedness in the remainder of the application code in any way?
-
endogenic
(is the followup question i'd ask if i were working on that!)
-
moneromooo
Typically user level code will see those as a black box really.
-
moneromooo
So it doesn't really matter I think.
-
endogenic
hrm *sits down* whatre best practices?
-
moneromooo
I'd use whatever needs fewer casts to interface with whatever API I use.
-
endogenic
yeah
-
endogenic
the API
-
endogenic
🙏 thank you!
-
endogenic
i mean
-
endogenic
mooooooo
-
hyc
bytes are bytes
-
moneromooo
Even on PDP-11.
-
moneromooo
Wait. Was that the one with 9 bit bytes ? I forget.
-
moneromooo
36 bit words. I think it was one of the PDPs.
-
moneromooo
Ah, was the 9 and 10.
-
hyc
yeah. and the DEC-10
-
endogenic
hyc: but apis are non fungible