[13:58:51] <prometheanfire> dstufft: seems to work, I'm at the openstack conf but will pass it off to floppym
[13:58:55] <prometheanfire> floppym: 13:46 < dstufft > Oh, for anyone who is in here and who wasn't following the issue, try curl -L -I https://pypi.io/packages/source/p/packaging/packaging-16.7.tar.gz /cc prometheanfire gchristensen tdsmith
[13:59:09] <prometheanfire> floppym: seems to work so we might want to add that as an option
[13:59:16] <gchristensen> prometheanfire: here in austin?
[13:59:30] <dstufft> As a reminder: "once Warehouse is ready to go live pypi.io is going to be the new PyPI URL and pypi.python.org will redirect to it, however pypi.io is currently pre-production grade so we don't have any alerting on if it goes down and if it's broken I won't stay up all night to fix it etc"
[13:59:55] <dstufft> if someone feels like tangling with the eldritch horror that is legacy pypi's code base I'm happy to review a PR... but I really don't feel motivated to do that
[14:00:31] <gchristensen> dstufft: hey, thank you for all your work on pypi and resolving the bugs about re-uploads.
[14:02:05] <prometheanfire> gchristensen: I'm sitting waiting for the keynotes to start
[14:03:26] <prometheanfire> mgedmin: given that you should be verifying hashes and the like :P
[14:12:41] <floppym> dstufft: I'm guessing that I probably shouldn't point our ebuilds at https://pypi.io/ ? Will that eventually become pypi.python.org?
[14:13:03] <dstufft> [09:51:53] <dstufft> As a reminder: "once Warehouse is ready to go live pypi.io is going to be the new PyPI URL and pypi.python.org will redirect to it, however pypi.io is currently pre-production grade so we don't have any alerting on if it goes down and if it's broken I won't stay up all night to fix it etc"
[14:13:29] <floppym> dstufft: Oh, sorry. Thank you for the work!
[14:20:28] <dstufft> floppym: so you're free to use pypi.io now, just if you do, do it with the knowledge that It may go up and down (although generally it's pretty stable)
[14:21:44] <floppym> Yeah, I'll think on it. We (Gentoo) have our own mirroring system that will mostly hide any outages.
[14:35:43] <FRidh> floppym: having sha256 hashes is already a nice reason to just go straight for pypi.io ;-)
[15:00:58] <dstufft> I'm sure this is a preview of what it's going to be like when I cut over warehouse to be the main pypi deployment where I find out all the ways people had relied in some weird thing in PyPI.
[15:01:55] <J1m> Well, this pretty well hoses buildout's bootstrap.py.
[15:02:24] <J1m> Not sure why this is considered "weird" behavior.
[15:02:41] <prometheanfire> dstufft: so, just to be clear, the old format will be at pypi.io, the new format will be where?
[15:03:52] <dstufft> J1m: Sorry, I didn't specifically mean this thing was weird, just that one of the things I've been afraid of whens witching is that lots of weird things are going to come out :]
[15:04:27] <dstufft> https://bootstrap.pypa.io/bootstrap-buildout.py doesn't seem to reference /packages/ at all
[15:05:06] <dstufft> it appears to just use setuptools, which should work fine
[15:07:07] <J1m> BTW, wget on my mac is telling me that bootstrap.pypa.io's certificate has expired.
[15:33:28] <dstufft> the whole goal behind that was to make it so everyone has a ``pip`` command they can us eto install wahtever it is they want, even another installer :]
[15:36:21] <dstufft> ngoldbaum: they'll either patch their local copies of stuff to use not-openssl, or they'll keep it around in a private palce. For stuff not distributed by Apple it'll just be static linking or what not
[16:12:13] <dstufft> ensurepip is fixed in versions of Ubuntu > 14.04
[16:13:25] <ThiefMaster> hey, it looks like ez_setup.py fails with the latest setuptools version: https://gist.github.com/ThiefMaster/6c4251948f093d347f41615409c25e3e
[16:15:57] <ThiefMaster> any ETA? this is breaking some build script we have (and if it'll be fixed e.g. tomorrow i won't spend time changing an old script that'll be replaced soon-ish anyway)
[16:16:00] <dstufft> it's true, a 404 is not a valid zip file
[17:38:47] <oberstet> Is it possible to set env vars in universal wheels? Like when having a dependency on PyNaCl, and I'd like to set SODIUM_INSTALL=bundled ?
[18:17:17] <dstufft> oberstet: Um, I'm not sure what you mean. You have a thing foo that depends on PyNaCl, and you want to set an envvar when PyNaCl gets installed?
[18:20:52] <dstufft> not even related to wheels, installs are isolated from each other generally
[18:22:09] <oberstet> mmh. we just moved Crossbar.io (the "foo" thing) to universal wheels (as itself, it is pure Python) .. because wheels are nice, and also because of pinning deps (and hashin)
[18:23:01] <oberstet> that means, users will now have to do: SODIUM_INSTALL=bundled LMDB_FORCE_CFFI=1 PYUBJSON_NO_EXTENSION=1 pip install crossbar
[18:23:19] <oberstet> and that isn't as nice as "pip install crossbar" obviously
[18:24:10] <oberstet> we managed to get away of all conditional deps (as these don't work also when combined with hashin)
[18:24:49] <oberstet> now we have https://github.com/crossbario/crossbar/blob/master/requirements.txt - but now the env vars .. dunno how to do it
[18:26:33] <oberstet> effectively, that means eg: nothing that depends on PyNaCl, and is packaged as a wheel, can use the bundled NaCl for PyNaCl
[18:27:17] <oberstet> dstufft: is there anything we can do?
[18:28:59] <dstufft> doesn't PyNaCl default to bundled? (not that it helps the other side of those things)
[18:30:00] <oberstet> no, it defaults to searching for a system NaCl, and when it fails to find one, it bails out (that is, it doesn't automatically fall back to bundled)
[18:30:21] <dstufft> oberstet: did this work before? I don't think that crossbar's setup.py can force an environment variable on another install..
[18:31:04] <oberstet> it did work when we only published source dists, since our setup.py contains this: https://github.com/crossbario/crossbar/blob/master/setup.py#L77
[18:31:19] <dstufft> oberstet: I don't think that's right either. Looking at https://github.com/pyca/pynacl/blob/master/setup.py i'm pretty sure it uses the bundled by default unless you specify SODIUM_INSTALL or the system is good enough
[18:31:43] <oberstet> well, I just tested it on a system without NaCl. it bails out ..
[18:39:20] <oberstet> that system does not have nacl .. and we'd like to use the bundled nacl (for Crossbar.io) _always_ regardless whether there is a system nacl or not (for reasons)
[18:39:49] <dstufft> oberstet: what does https://bpaste.net/show/4ad71e4807e5 print?
[18:43:25] <dstufft> oberstet: fundamentally here though, crossbar isn't allowed to control how it's dependencies get installed (the fact it could set ane nvironment variable wasn't intentional, it was overlooked)
[18:45:01] <dstufft> oberstet: speaking as someone who works on PyNaCl (but not much lately), I personally wouldn't be super opposed to the idea that we should just always use the bundled copy unless explicitly instructed otherwise
[18:46:17] <oberstet> I am still trying to verify that the system has a sodium.so somewhere ..
[18:46:52] <oberstet> rgd that specific case of pynacl, I think there are good arguments (security, repeatability) to always use bundled
[18:47:30] <oberstet> do you know whether cffi can tell me the absolute path to the *.so it loaded?
[18:48:52] <oberstet> also: if cffi can find one, the why does pip install pynacl fail?
[18:50:14] <dstufft> presumably you're missing the dev headers
[18:50:24] <dstufft> you have the .so but not the headers
[18:51:16] <oberstet> alright. the system does have a sodium.so. sorry: https://gist.github.com/oberstet/da485d08a2b9c32905939e2a20d0e144
[18:51:26] <oberstet> I presume this is the one cffi finds
[18:52:55] <oberstet> right. its a debian/ubuntu, and it does indeed have libsodium (not sure where from), but _not_ the dev package
[18:53:32] <oberstet> ok. this is that. pynacl looks for headers, and bails out, not falls back to bundled
[18:54:13] <dstufft> yea, so PyNaCl detects it has an appropiate versioned sodium.so and attempts to compile, but you're missing the dev headers so it bombs out. Arguably either we should also test that the headers exist or we should just use the bundled unless otherwise instructed
[18:54:44] <oberstet> but I'd also welcome inverting the option
[18:55:11] <oberstet> SODIUM_INSTALL=system to force system, otherwise _always_ use bundled.
[18:55:28] <oberstet> why rely on outdated distro packages for security sensitive stuff?
[18:56:21] <oberstet> it would solve one of our three problems;)
[18:57:36] <oberstet> eg take PyUBJSON: it is slower on PyPy using extension; it increases the attack surface (cython based extension)
[18:59:53] <oberstet> rgd pynacl .. here is another argument (if I get this right) - on windows/osx, it'll install from the binary wheels. which bundle nacl/sodium. not so on Linux. doesn't that make the latter "2nd citizen"?
[19:00:18] <oberstet> given the lack of linux binary wheels ..
[19:01:34] <J1m> I'd like to provide a (at least partial) fix for ez_setup.py.
[19:02:53] <ionelmc> oberstet: UBJSON woot ... why does that exist when we have msgpack and cbor?
[19:02:55] <dstufft> oberstet: well we have binary wheels on Linux now too ;) but yea, I'd personally be down for that
[19:03:25] <dstufft> oberstet: for PyUBJSON, it sounds like something that could be fixed with a PR to PyUBJSON to disable compilation of their extension on PyPy
[19:04:50] <oberstet> dstufft: ok. I'll file an issue for pynacl, and see how far that gets us (while talking to other deps). thanks for your help!
[19:05:16] <oberstet> dstufft: whaat? did I just read "we have binary wheels on Linux" ?
[21:19:06] <oberstet> ionelmc: because;) seriously, Crossbar.io support any of JSON, MessagePack, CBOR and UBJSON now
[21:19:41] <oberstet> and we wanted it for bringing AutobahnC, which extends WAMP to MCUs, and in particular RIOT-OS based ones - and the latter has a nice UBJSON library built in
[21:22:37] <oberstet> rgd PyUBJSON - thing is, we (as in Crossbar.io) want to have the pure Python version even on CPython (on PyPy for sure) - because, security. No Cython things. I have been burned by ujson -- which is supposed to be faster than stdlib (which is true), but comes with instability and memory leaks
[21:23:47] <ionelmc> my question was more about the format
[21:23:48] <dstufft> oberstet: yea, but you're not installing PyUBJSON for _just_ yourself, you're installing it for any other thing that then requests PyUBJSON in your user's environment
[21:24:14] <oberstet> ionelmc: in my opinion/experience, CBOR is the most awesome, then MessagePack
[21:24:29] <ionelmc> since msgpack-v2 and cbor are practically the same thing
[21:25:02] <oberstet> dstufft: Crossbar.io is supposed to be installed in its own, dedicated virtualenv - we now pin all deps (direct and indirect) to point versions, and even hashin
[21:25:35] <ionelmc> everyone say that, like i'm going to pip install the rfc :)
[21:25:56] <dstufft> oberstet: I mean, that may be true of how you want crossbar to be installed, but pip doesn't have any way of knowing that :)
[21:26:13] <oberstet> and, on PyPy, it is also slightly faster - "pip install rfc6455" =) haha. I have to remember that .. but "pip install autobahn" sounds .. cooler? ;)
[21:27:33] <oberstet> both bin packages (deb/rpm/pkg) come with pypy bundled and not only that, but _everything_ down to openssl
[21:28:00] <oberstet> its the only real working way to make sure users have exactly the same bits running
[21:28:31] <oberstet> I will look if we can make the manylinux1 work .. this is awesome news!
[21:30:11] <dstufft> oberstet: if you run into problems, the wheel builders mailing list probably has the people most knowledgable about manylinux1 and building things for it
[21:31:09] <oberstet> oh, thanks for that! subscribing ..
[21:32:04] <dstufft> oberstet: crossbar.io always looked cool to me btw :) Never actually got a chance to _use_ it for anything but it looks really interesting
[21:32:48] <oberstet> dstufft: we have only started;)
[21:33:41] <oberstet> dstufft: if you use buildbot, you'll be using Crossbar.io/Autobahn upcoming;)
[21:34:05] <oberstet> if you use Mozilla autopush, you are using Autobahn (which is one that is really exciting)