IRC channel logs

2013-10-21.log

back to list of logs

<davexunit>I am trying to package a library, but the only tarballs are on sourceforge, and sourceforge uses a random mirror for downloads. how can I get a usable URL for guix?
<davexunit>will a direct link for any mirror work?
<mark_weaver>davexunit: I'm not sure, but if you search for "sourceforge" in gnu/packages/*.scm, you'll see many URL prefixes like mirror://sourceforge/mad/libmad/
<mark_weaver>I guess you want something like that.
<mark_weaver>IIUC, Guix handles URLs of the form "mirror:..." specially, and apparently already has something set up for sourceforge.
<davexunit>oh neat. should've grepped before asking I suppose.
<davexunit>I'm working on SDL packages but am missing some dependencies.
<mark_weaver>cool :)
<davexunit>SDL not only has 2 versions (the brand new one and the old one that everyone still uses), there are 6 extension libraries.
<davexunit>so I have about 14 packages to write to get everything.
<mark_weaver>yikes. well, it'll be good to have them.
<davexunit>yes indeed.
<davexunit>so far I'm missing 4 other libraries.
<mark_weaver>hmm. according to LFS, glibc doesn't support MIPS properly. does anyone know if that's still the case?
<mark_weaver>(they recommend eglibc instead)
<mark_weaver>well, according to CLFS
<mark_weaver>(it looks like glibc's varargs might be subtly broken on MIPS N32)
<mark_weaver>(I'm not sure about that though. the problem might be limited to glib)
<viric>no idea
<mark_weaver>one of glib's tests is failing, and it seems that the N32 is not being properly respected by something in the glib signal delivery stuff. specifically, a 32-bit uint argument is getting passed incorrectly, I think.
<mark_weaver>the N32 ABI says that 32-bit integer values should be sign-extended into the 64-bit registers, even if the 32-bit value is unsigned. and indeed, GCC generates code that clearly assumes this.
<mark_weaver>but when a glib signal is generated, a 32-bit unsigned integer is getting incorrected extended to 64-bits, I believe.
<viric>I don't know what a 'glib signal' is
<mark_weaver>s/incorrected/incorrectly/
<mark_weaver>well, it might be gobject, not glib. I'm not very familiar with this stuff either.
<mark_weaver>but basically, in glib/gobject, "signals" (nothing to do with POSIX signals) are a way of sending messages between objects that something happened.
<mark_weaver>objects can register callbacks that accept signals of a given type, and then other code can send a signal of a given type to an object.
<mark_weaver>in the gobject test suite, one of the tests involves registering a callback for a signal, and then sending a signal with a whole bunch of arguments (treated as varargs) of various values, and the receiving callback checks to see that everything is correct.
<mark_weaver>one of the values is UINT_MAX-42 (4294967253), passed as a 32-bit unsigned integer.
<mark_weaver>the code on the receiving end simply checks that the 64-bit register contains -43
<mark_weaver>which is correct according to the N32 ABI.
<mark_weaver>(well, the C code isn't written that way, but that's what GCC ends up doing)