/srv/irclogs.ubuntu.com/2012/09/22/#bzr.txt

jelmervila: it doesn't really matter what bzr-svn is compatible with, but what subvertpy is compatible with01:15
jelmer1.4 is almost certainly too old though01:16
_kbulgrienhmm... bzr+ssh doesn't load user environment on far end?  I get prompt for password then get `bash: bzr: command not found03:16
_kbulgrienbzr: ERROR: Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist.`03:16
_kbulgrienHmm... BZR_REMOTE_PATH...03:21
_kbulgrienok, that helps, but doesn't get by needing PYTHONPATH set to point to where bzrlib is on the remote.03:36
_kbulgrienI had to load bzr and bzrlib in my home directory on a web host. Now I can't seem to get bzr+ssh to work there because the remote bzr can't find its bzrlib because PYTHONPATH in .bash_profile on the remote isn't loaded.  Is there a way to work around this other than, for example, putting the repo in an ftp space and avoiding the smart server?03:42
_kbulgriensftp:// works.03:59
_kbulgrienls03:59
vilajelmer: right, so next question is: if SamB_MacG5 can find a subvertpy version old enough to support svn 1.4, will bzr-svn.trunk be still compatible ?09:29
vila_kbulgrien, too bad you left. The trick to address your issues is to use a local wrapper so you can set anything you want.09:32
vila_kbulgrien: After that bzr_remote_path in locations.conf (so you can set it differently for different hosts) and you're done09:36
vila_kbulgrien: the wrapper I use is: '#!/bin/sh \n python /path/to/bzr $*'09:38
vila_kbulgrien: In locations.conf I have: '[bzr+ssh://myhost.local] \n bzr_remote_path = /path/on.myhost.local/to/wrapper09:39
fullermdOr fix his shell config.10:12
fullermdvila: and you want "$@" not $*10:15
fullermd(well, and 'exec' for cleanliness, but...)10:16
vilafullermd: ha, thanks for the tips. (shell is one of those languages I never took the time to master (I know make even better than shell...)).12:32
vilafullermd: so, even reading the doc didn't give me the feeling that one is better than the other in practice. Any caveat to be aware of ? "$@" is always safer than "$*" ?12:33
fullermd$@ keeps the borders between the arguments.  $* resplits.12:41
fullermdRather "$@" does.  Both unquoted end up resplitting, but * quoted is a single.12:43
fullermdvila: e.g.: http://pastebin.com/42tNmcBi12:45
fullermdUpshot being that the $* will fail to DTRT any time there are single args with spaces in them.  Filenames, paths, a `-m "log message"`, etc.12:46
vilafullermd: right, so to be on the safe side, the rule is to always use "$@" then right ?12:54
vilaargh, mgz effect, sentence too long with the same word at the beginning and the end ;)12:54
fullermdIf the goal is "pass args through as if we were aliasing to this other command", yeah.12:55
vilayup, which is the case I care the most about12:56
vilaI think I always missed to read the right part in bash help as $@ == make target12:57
vilain my mind and I just couldn't use that in shell12:58
fullermdLet's not go there.  It'll bring up memories of the awk scripts I wrote to handle bmake vs gmake...12:58
vilaurgh, suffering already :)12:58
fullermdSomeday, I'll get the time to finish my make replacement, and I won't have to deal with any of that crap again.12:59
vilaha, the adage (haha) about the small and beautiful language hidden in the monster  applies to make IMHO13:01
fullermdI dunno.  Hidden inside the monster of make, there's a language that's small, beautiful, and completely incompetent.13:02
vilathe fact that it allowed creating such awful results should be used against it13:02
fullermd... as opposed to the whole, which is large, terrifying, and still pretty incompetent...13:02
vilanah, there are some drawbacks (like in any other) but there are also sane ways to use it right13:02
vilabut I reckon I rarely saw clean and light makefiles :-/13:03
vilaerr, not reckon,13:03
vilarecognize ? confess ? concede ? yeah, probably concede13:03
fullermdSpend some time in the bowels of the ports system sometime; that'll teach you how many clean light makefiles there are out there   ;p13:03
fullermd'reckon' would work too.  Especially down here.13:04
vilaexactly my point then13:04
vilafor example, how many makefiles truly support -j ?13:04
fullermdAll of the ones I write, and most of the ones I deal with  ;p13:05
vilaoh, that wasn't ironic ?13:05
fullermdLife is too short to wait for serial compiles...13:06
vilaYou really mean the ports makefiles are correct ? Worth having a look one day then. But you're not talking about the makefiles provided by the packages then right ?13:06
vila(Which are the ones I have the most exposure too)13:06
fullermdWell, the compilation is [almost] never part of ports itself; that would come from the upstreams.  And I know a fair number of those are broken stupidity (even before we consider they came from automake).  But I don't so much deal with those, as just tolerate them temporarily untarred on my system during the build.13:07
vila(yeah, let's exclude automake, that's clearly outside of this discussion ;)13:09
vilaok, so we seem to agree now that the context is a bit clearer ;)13:10
fullermdBut ports itself is an excellent object lesson in the terrors and horrors that away in an almost-competent language.  By the time you realize how wrong a choice it is, it's far too late to change and you have to bull ahead anyway.13:10
fullermds/that away/that await/13:10
vilaha, 'far too late to change'... the weight of compatibility... 'be ready to throw it, you will' or whatever he said ;)13:11
fullermdIn practice, anything nontrivial in "make" winds up really just being a framework for calling a giant pile of unrelated obfuscated inline sh(1), with demonic contortions to get the data from A to B.13:17
vilaright, don't do that in make then is my attempt to answer13:17
fullermdWhich is why doing anything in ports involves calling fork() about a thousand times.13:17
fullermdRight.  But *way* too late for that  ;p13:17
vilaI mean, make manages dependencies, it has limited support for complex actions13:18
vilaindeed13:18
vilaor not13:18
vilathat's the point, it's an organizational choice not something the tool is really blamable for13:18
vila(and I'm not saying I have the magic bullet either...)13:19
fullermdYeah, but the tool being almost-competent ensures that it will continue to be chosen and then the organization is left to force the last 10% by hook or crook.13:19
fullermdThe "solution" is to have tools that are fully competent and tools that are so weak as to be almost worthless.  Which is stupid too.13:19
fullermdSo the end of life-as-we-know-it is really the best solution, as I've said all along.  No software problem is so intractable it can't be solved by a good supernova.13:20
vilayeah, it's a well known fact that things are always simpler when you cool down a bit13:21
vilaso when you coll down a lot, they have to be even simpler13:22
vilacool13:22
vilaspurious tyop, joke alert13:22
fullermdIt don't get much cooler than 2.725 Kelvin   ;p13:22
vilahehe13:23
fullermdSome day I'll write up and submit a patch to make(1) to allow it to read email.  Just to see if I can get it accepted.13:25
vilahehe, BCc me ;)13:26
vila<vila> _kbulgrien, too bad you left. The trick to address your issues is to use a local wrapper so you can set anything you want.14:39
vila<vila> _kbulgrien: After that bzr_remote_path in locations.conf (so you can set it differently for different hosts) and you're done14:39
vila<vila> _kbulgrien: the wrapper I use is: '#!/bin/sh \n exec python /path/to/bzr "$@"'14:39
vila<vila> _kbulgrien: In locations.conf I have: '[bzr+ssh://myhost.local] \n bzr_remote_path = /path/on.myhost.local/to/wrapper14:39
=== yofel_ is now known as yofel
_kbulgrienOh, ok... that makes sense... almost feels like a doh moment...14:42
_kbulgrienI did figure out the locations.conf part.14:43
_kbulgrienhmm.  I'll have to dink with it. My first few attempts to add PYTHONPATH aren't working, but then I've not used fancy hashbangs like that before.15:01
_kbulgriendoh.15:06
_kbulgrienI read \n as literal but then with a little grey matter applied... that didn't make sense.15:09
_kbulgrienI got it working.  Thanks vila15:10
vila_kbulgrien: PYTHONPATH shouldn't be needed, the bzr script arranges to call its associated bzrlib15:14
_kbulgrienit doesn't actually... PYTHONPATH is required in this situation as bzr barfs up with bzrlib not found without it ( http://pastebin.com/pYrVQNjw )15:31
_kbulgrienAdding "export PYTHONPATH=${PYTHONPATH}:${HOME}/lib64/python" to the wrapper fixes that error.15:32
vilahmm, weird, I haven't needed that but then the various .rc involved when you connect this way and that left me... discouraged15:39
_kbulgrienof course the webhost only has 2.3.4 because of the old version of python, so maybe this was improved in a later version?15:40
_kbulgrienI had to manually install bzr in my home directory since it was not pre-installed.15:41
vilaurgh, stuck with python 2.4 ?15:48
SamB_MacG5vila: oh, I've got an old enough version of subvertpy15:56
SamB_MacG56.533  bzr-svn: using Subversion 1.4.4 (), subvertpy 0.8.115:57
vilaSamB_MacG5: with bzr-svn trunk ?15:58
SamB_MacG5vila: no, doesn't work with trunk15:58
vilaSamB_MacG5: which version then ?15:58
SamB_MacG51.1.0, but the test code is broken ...15:59
vilaha too bad :-/15:59
SamB_MacG5maybe I should try and fix subvertpy15:59
vilaSamB_MacG5: check with jelmer for details there, I'm not sure the tests have been thoroughly and regularly run on osx16:00
SamB_MacG5vila: I meant *besides* the breakage due to missed URL escaping wrt TMPDIR16:01
vilabut there ought to be a combination of bzr-svn/subertpy that works for your case (config.py in the installers may be a good start too (sorry I didn't mention that earlier))16:01
vila^_o16:01
vilaTMPDIR URL escaping ?16:02
SamB_MacG5iMac:pyprof2calltree user$ printenv TMPDIR16:02
SamB_MacG5/var/folders/4b/4b+Qm+OQFj8f23emq17tBU+++TM/-Tmp-/16:02
SamB_MacG5I get a bunch of "tests tried to escape" complaints16:03
vilaha crap16:03
SamB_MacG5due to the plus signs16:03
vilaI did a fix for that in bzrlib involving using realpath or something16:04
vilaI'm not sure it's caused by the plus signs, I'd rather bet on some symlink being resolved or not when needed16:04
vilaIt took quite a long time and several shots to get them all, not sure all of them are in 2.316:05
vilagrepping for osx in bzrlib/tests should get you there16:05
* SamB_MacG5 checks for sure16:06
SamB_MacG5https://gist.github.com/a4eff1160a82eb92602d16:07
* SamB_MacG5 blames his IRC client this time16:07
* SamB_MacG5 wonders how his IRC client knew how to authenticate itself as him with github, anyway16:09
SamB_MacG5vila: okay, it's also possible that the URL got fully escaped, but was then unescaped before being checked against the list ...16:10
vilaI don't think so, I'm pretty sure the isolation stuff is encoding neutralassume it receives the urls in the right encoding16:11
vilaI don't think so, I'm pretty sure the isolation stuff is encoding neutral16:11
vilagree16:11
vilagrrrrrRR16:11
vilathere may a way to temporarily disable the isolation check too16:12
vila*may be16:13
SamB_MacG5well, it's easier to just add "TMPDIR=/tmp" at the beginning of the commandline16:13
vilaoh yeah, far easier ! :)16:14
vilaperfect work-around, you can pretty safely ignore the isolation errors, the check is here to guarantee we don't introduce new leaks16:15
vilabut all existing tests have passed that check countless times now16:15
SamB_MacG5actually, there seems to be more code that doesn't quite work ...16:15
SamB_MacG5outside the test harness16:15
vilaha, less good, you really need jelmer there then16:15
SamB_MacG5so obviously fixing up subvertpy is better ...16:16
vilaor search launchpad for later fixes16:16
vilaprobably16:16
vilaSamB_MacG5: did you try a more recent python version by the way ? (just curious)16:17
SamB_MacG5oh, no, not yet ...16:17
vilaok, let me know about the end result if/when you do16:17
SamB_MacG5but that probably wouldn't help a whole lot with bzr-svn?16:17
vilaI can't answer that, sorry16:18
vilain theory, it could be better as well as worse, so the theory isn't really helpful there, you need the expert's specific knowledge ;)16:19
SamB_MacG5well, subvertpy trunk will still need fixing to make it build with SVN 1.4...16:19
vilaSamB_MacG5: and you really need bzr-svn *there* ? (As opposed to another host where you could use recent stuff and publish with bzr+ssh)16:20
SamB_MacG5oh, and about config.py, I know it's supposed to have all the right versions listed, but it had issues even *before* I merged from lp:bzr-mac-installlers16:21
SamB_MacG5I'm still trying to sort out the right versions of everything to make things mostly work16:22
vilaeerk, don't ever merge from lp:b-m-i, you should only work on top of lp:b-m-i/2.316:22
SamB_MacG5it had some nice-looking infrastructure improvements16:22
vilahmm16:23
vilathere are two things here16:23
vilaone is config.py, use only the lp:/2.3,16:23
vilathe other is everything else probably which should be safe to use but has never been tried so may have introduced regressions ?16:24
vilabut config.py, wow, be extra conservative there or you'll run into an endless maze of compat issues16:24
SamB_MacG5it's kind of annoying that launchpad download URLs include the series ...16:25
vilawhy ?16:25
SamB_MacG5then it would be simple to build the URL from a template and the version number16:27
SamB_MacG5I mean, if they didn't16:27
SamB_MacG5anyway ... yeah, I knew I would have to revert a lot of the version numbers in config.py when I did the merge16:28
vilaerr, you mean 'bzr lp:<project. -rtag:<version>' vs 'lp:<project>/<series>' ?16:28
SamB_MacG5vila: no, I meant the tarball URLs16:28
vilaWell, I thought config,py used a format and some params and build the URL from that no ?16:29
SamB_MacG5it seems to just run % on all of the strings with the dict as right-hand argument16:30
vilathe series is often part of the version16:30
SamB_MacG5yes, but sometimes the series has varying length ...16:31
vilaso if you have 'series' and 'version' as parameters or 'minor_version' stuff like that16:31
SamB_MacG5well, I suppose that could be done, yes16:31
SamB_MacG5though some of these projects are actually rather irregular in their series usage16:32
SamB_MacG5so you basically have to just look up the URL anyway...16:32
* SamB_MacG5 thinks he's thinking of bzrtools16:32
vilayeah, so tweaking config.py at release time was generally light enough to never itch enough ;)16:32
SamB_MacG5anyhow, yeah, I know about config.py and am, in fact, trying to prepare it for a release ;-)16:33
* SamB_MacG5 wonders how to disable lazy imports16:35
vilayeah, so the rules when doing releases (up to you to follow them or not) was to push for plugins trunks for beta releases, freeze at 2.x.0 time, update only to dedicated series for plugins providing them otherwise stay frozen16:35
vilawhich is another way to say: if you want to do a 2.3.n+1 release, stick with whatever was in 2.3.n *unless* plugins like qbzr released 2.3 targeted point releases16:37
vilalooking at the history of config.py should give you the most precise view of it, including divergences from these rules ;)16:37

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!