00:00:01 think so 00:00:12 I was thinking you would do shell expansion once 00:00:14 setupconfig cd's to the configs dir to build its list of configs 00:00:27 that need to be revised now that there can be more than one dir 00:00:28 (not a special test for $HOME) 00:00:31 shell expansion? 00:00:46 * jmkasunich is NOT a unix/shell guru or even veteran 00:00:55 yeah, so I can use $HOME or ~ or anything else 00:01:09 how do I do dat? 00:01:24 ummmm 00:02:35 durn tcl 00:03:07 I have no idea 00:03:17 in bash it would just work 00:04:29 will it be expanded before passed to tcl? 00:05:09 no, it has to be expanded at runtime for $HOME etc to work 00:06:19 oh I see what you mean I think, it can be expanded in emc 00:06:41 yeah 00:06:57 yeah, it works 00:07:03 at least from the cmd line 00:07:10 I wrote a tcl prog that just prints argv 00:07:22 test.tcl foo $HOME bar 00:07:26 yeah the shell will expand it before it runs test.tcl 00:07:39 args are: 00:07:39 foo /home/John bar 00:07:39 end of args 00:07:53 dunno about when invoking it from a scripot 00:07:53 we have to make sure emc.in expands it (it's a quoting issue) 00:08:14 likewise we have to make sure configure does NOT expand it 00:08:25 such fun 00:11:42 ok don't worry about expansion in any of the tcl 00:11:59 we'll expand right when invoking the tcl, and never before 00:12:05 hah, I decided that 5 mins ago 00:12:19 ok I'm talking to myself then 00:12:36 I'm going to resolve ./, ../, and symlinks tho 00:12:38 and it was only 3 minutes 00:12:49 symlinks? 00:12:57 default 00:13:12 oh wait, that won't be in the path, that will be an actual config name 00:13:49 should we accept symlinks in the path? (is it a security hole or anything?) 00:14:58 I think you don't know the difference and don't care 00:15:03 ok 00:15:15 I like that kind of answer, less work for me 00:15:38 let symlinks do their job, don't treat them in a special way (this goes for "default" too) 00:15:52 ok 00:17:05 I still don't think you need to do anything to the paths 00:17:46 I want to make sure that everything mentioned in the path is actually a dir 00:17:57 cause later I'm gonna be searching those dirs for subdirs 00:18:22 yeah, you just try to cd to each one, look for emc configs (a dir with an ini and maybe other things in it?) 00:18:23 or am I just making things harder than they need to be? 00:19:11 maybe so 00:19:27 before, when there was only one, I cd'd to it, and did foreach dir_name [ glob */ ] { look for ini files in dir_name } 00:19:42 I think your algorithm is: for each thing in the path, look under it for emc configs 00:19:53 once I cd'd to the config dir I stayed there 00:19:54 yeah same thing, with another foreach around it 00:20:12 now that there are multiples, I'm tempted to use absolute paths 00:20:24 cause once I cd to one, how do I get to the next one if it is relative? 00:20:41 and later on, I need to cd to a specific one 00:21:02 I guess you should not cd 00:21:30 maybe something like foreach dirname [ glob $onedirinpath/*/ ] 00:21:36 yep 00:22:23 foreach onedirinpath $listofpathdirs { foreach dirname [ glob $onedirinpath/*/ ] { check for ini } } 00:22:28 the configs you collect will be full paths, relative or absolute doesn't matter, you'll return one, emc will cd into it 00:23:09 yes I think you want something like that 00:23:44 and it should work even if one of the path dirs is "." 00:23:51 exactly 00:23:58 as long as neither I nor emc cd prior to the search 00:24:26 now, do I need to verify that onedirinpath is actually a dir before I do the glob? 00:25:12 (need as in "will it crash or print a confusing message if I don't") 00:25:36 % set a [glob /dev/null/*/] 00:25:36 no files matched glob pattern "/dev/null/*/" 00:25:36 % set a 00:25:36 can't read "a": no such variable 00:26:03 but also, "should I tell the user he has a bogus path, or silently fail?" 00:26:31 well if we put /usr/local/etc/emc2 in the glob path, we don't want to error if there's nothing there yet 00:26:32 if he makes a typo, should I leave him wondering where his config are, or say "etc/emcc is not a directory" 00:26:46 same for ~/emc2-configs or whatever 00:26:46 glob -nocomplain 00:26:50 (or something like that) 00:27:06 so if the path is invalid somehow, just don't find anything there, and go on 00:27:12 yeah 00:27:17 I guess thats ok 00:27:30 the path won't normally be entered by a user anyway 00:27:37 it comes from the calling script 00:27:47 similarly it's not an error to add /nonexistent to my PATH - I don't expect a warning from my shell every time I run a command 00:28:05 ok - that is good reasoning 00:28:07 it's just a search path, just like we have 00:32:06 ok, one more check that maybe isn't needed 00:32:20 what if they don't specify the --configs-path at all? 00:32:36 complain at them, or just display a list of zero configs? 00:32:37 "they" is the emc script, so it will 00:33:12 unix principle - when you write a program, it will be called by folks that you didn't expect to call it 00:33:18 if you don't find any configs for whatever reason, maybe spew an error to stderr, and exit with a failure exit code I guess 00:33:47 I agree giving an empty list to the user and expecting him to do something useful with it is kind of silly 00:34:32 right now it pops up a dialog "ERROR: blah, blah hit OK to exit", then returns failure 00:34:40 is stedrr better or worse? 00:34:50 stderr even 00:35:07 if they invoke from a icon or menu, they'll never see stderr 00:35:09 I guess I have no preference 00:35:30 that could be good or bad ;-) (the fact that they don't see it, not your lack of preference) 00:35:33 if they invoke from the menu, you'll be coming from the emc script 00:35:48 if they invoke bogusly from the shell, either error method is fine 00:35:59 stderr is less bloaty then 00:36:12 ok 00:36:34 and return 1 00:36:43 starving, off to make dinner 00:36:48 1 or -1? 00:37:06 another convention I'm not familiar about, I was using -1 to indicate failure 00:37:26 in the shell, 0 is success, >0 is failure 00:37:36 so 1 is preferred 00:37:37 ? 01:14:25 back 01:15:05 1 is usually used as a basic error result, but you can use other numbers if you have multiple error types to report 01:15:36 sometimes I use a different small integer at every place my program can return an error 02:10:41 ok, here is one of those "is it overengineering?" questions 02:11:04 it looks for the logo in three places 02:11:23 if it isn't in any of those places, it just blindly continues 02:11:42 later one, it crashes with a "can't read logo, no such variable" 02:11:55 IMO, not finding the logo should be tested for 02:12:24 granted, if I was running it installed, and from the right place, the search would probably succeed 02:12:29 should not finding the logo be fatal? 02:12:43 dunno 02:13:01 doesn't seem like it should, the world won't end if there's no logo ;-) 02:13:31 but it certainly shouldn't crash 02:14:35 I agree 02:18:06 probalbly shoud create a blank image if it doesn't find the one its looking for 02:18:37 OTOH if it just fails, we'll get an error report and we can fix the logo installation problem 02:19:31 assuming the user reports the error instead of grumbling and saying "this is shit" and walking away 02:19:45 anyway, not what I should concentrate on right now 02:19:50 well we'll test it in our packages 02:19:54 when I run it from the right place it works 02:20:00 ok 02:22:08 but that is a typical example - should we assume that it will be run from the right place, and let it crash if not 02:22:22 or should we add error detection and handling code and bloat it? 02:23:05 if our script is always going to run it, and an error means there's a problem with our script that needs to be fixed, we should allow the error. 02:23:14 ok 02:23:32 if the user is meant to run it, and he runs it incorrectly, we should tell him what he's done wrong 02:23:52 I think its the former case 02:24:01 if the user digs around and runs things we don't intend him to do, and they break, he gets to keep both pieces 02:24:20 heh 02:24:26 without giving it much thought, I think this is how we should decide 02:28:18 sounds good to me 02:49:18 we never decided what to do if there were configs with the same name in more than one dir in the path 02:49:33 if we've been asked to find config "foo" we return the first foo 02:49:44 but if I'm making a list for the user to choose from? 02:50:23 I guess you'll have to show the directory somehow 02:50:30 but in a listbox that's going to be janky 02:50:31 ick 02:51:09 it is tempting to suppress duplicates, but that might confuse people 02:51:20 displaying both with nothing to distinguish sucks too 02:51:40 yeah. 02:51:48 hmm, when you click on one it displays the details (README file) 02:51:58 I could also display the full path to the selected on 02:51:59 one 02:52:13 that's true 02:52:40 you know, they could be in a tree like halconfig has 02:52:42 so you might have two "foo"s, but click on one and it shows /etc/emc2/foo, click the other it shows /home/John/emc2/foo 02:53:00 it would default to all the nodes being open 02:53:10 each path item would be a node 02:53:25 (no idea how hard this is) 02:53:36 that means I have to learn how to use that bwidget thing 02:53:37 but that's a way to show a heirarchy 02:53:45 this is limited to one level anyway 02:54:25 you could show and hide different parts of the path 02:54:33 lemme see what it would look like: 02:54:44 /etc/emc2 02:54:46 foo 02:54:48 bar 02:54:49 blat 02:55:01 /home/John/emcdev/emc2head/configs 02:55:06 foo 02:55:08 stepper 02:55:10 sim 02:55:38 except it would do a better job of column alignment 02:55:42 haha 02:56:38 are the configs installed directly in /etc/emc2/ ? or below, like /etc/emc2/configs/ ? 02:57:06 /etc/emc2/configname/config.ini 02:57:17 so directly in emc2 02:57:25 I consider each subdir a config 02:57:31 I'm just rewriting that - should we change it? 02:57:37 dunno 02:57:44 there is currently other crap in /etc/emc2 02:57:54 it would be nice if you could get the names of the configs with one glob 02:58:01 I just was looking at my tree sample, and thought it might be nice if the dir was /etc/emc2/samples 02:58:15 I can sure do that 02:58:17 let's do 02:58:29 should it be samples or sample-configs? 02:58:38 up to you 02:58:45 samples might be g-code samples 02:58:52 (unless they are elsewhere) 02:59:02 true 02:59:06 /etc/emc2/sample-configs 02:59:35 I really don't want to learn that tree widget tho :-/ 03:01:21 I bet it's not too bad as long as you only have to populate it once, and get a string out of it when you click 03:01:24 I'll help if you want 03:01:33 I think I've (painstakingly) finished make install 03:01:50 I never turn down help 03:02:03 give me a minute to finish this up and check it in 03:06:21 darnit, now everyone will know I understand the new Makefile too 03:18:08 you know we're gonna have a shitstorm for the next few days from all the folks who have been experimenting with RIP 03:19:02 yes, but I refuse to stop progress just so we never briefly break anything 03:19:27 we should have "semi-stable" tarballs or tags 03:19:40 I have debs... 03:19:57 will they work on skunkworks box? 03:20:04 I dunno what he has 03:20:10 maybe that is the answer for him 03:20:23 whatever he was running yesterday is probably his answer 03:20:36 I think he deleted that 03:23:25 we could have a FRIDAY tag that we move along every week :-) 03:24:20 heh 03:24:36 hmm, I guess there's no point since you can specify a date 03:24:41 forget it 03:24:47 how about (seriously) USABLE 03:25:03 or something like that 03:25:08 yeah, we could sure do that if we intended to break it soon 03:25:28 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/extint.ko not found (supposed to put it in emc2) 03:25:29 we always intend to break it soon 03:25:31 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/fifotask.ko not found (supposed to put it in emc2) 03:25:34 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/master.ko not found (supposed to put it in emc2) 03:25:37 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/shmemtask.ko not found (supposed to put it in emc2) 03:25:40 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/slave.ko not found (supposed to put it in emc2) 03:25:43 dh_movefiles: debian/tmp/usr/realtime-2.6.12-magma/modules/emc2/timertask.ko not found (supposed to put it in emc2) 03:25:46 do you know if these are used? 03:26:07 those look like the RTPAI examples 03:26:21 ok, I don't think we're building them right now 03:26:35 before the rebuild, make didn't build them, you had to do make examples 03:26:40 I suspect that is still true 03:27:05 "rebuild" = jeplers changes 03:27:27 now there are no rules to build them, since as far as I could tell they weren't used 03:27:41 bummer 03:27:42 SMOP to fix that though 03:28:04 jepler: don't touch the makefile right now 03:28:17 jepler: almost done with make install 03:28:21 cradek: ok 03:28:24 "for god's sake man, don't touch it!!!" 03:28:39 * jepler commits before chris, leaving him with tons of conflicts 03:28:48 I guess it would be no big deal, but it would be better to wait an hour 03:29:17 dh_movefiles: debian/tmp/usr/bin/fifousr not found (supposed to put it in emc2) 03:29:19 for some reason an image of the mad scientist guy from Back to the Future flashed thru my head 03:29:19 not planning to do anything more to emc tonight 03:29:21 dh_movefiles: debian/tmp/usr/bin/hal_parport not found (supposed to put it in emc2) 03:29:24 dh_movefiles: debian/tmp/usr/bin/hal_skeleton not found (supposed to put it in emc2) 03:29:27 dh_movefiles: debian/tmp/usr/bin/shmemusr not found (supposed to put it in emc2) 03:29:30 how about these? 03:29:32 are they used? 03:29:42 parport and skeleton are user space versions of the drivers 03:29:50 I grepped them in scripts/, didn't find them used 03:30:01 again, I didn't write the rules to build them 03:30:06 they were an exercise to prove that you can make user and rt hal modules from the same source 03:30:10 not used by emc at this time 03:30:29 shmemusr sounds like the user space part of the RTAPI shmem example 03:30:52 jepler: I'm not getting librs274.a either 03:30:57 cradek: oops, it's now .so 03:31:05 ah, np 03:31:37 jepler: it would be nice to have a rule for skeleton 03:32:01 (as a sample for folks who do want to make a dual mode hal component 03:32:11 skeleton is intended as an example 03:32:21 maybe we should put that stuff in a different makefile 03:32:36 this one's getting big enough without stuff that is not strictly needed for building emc 03:32:59 well in the long run it might be a good idea to move all of rtapi out of emc and into the kernel package 03:33:06 but that isn't something to do in 2.0 03:33:42 or something to do without a lot of thought about the implications of the move 03:34:30 how much does hal_skeleton add to the makefile? its a one-sourcefile program? 03:34:32 jmkasunich: good point (there is a 'Submakefile.skel', but that's geared towards building a userspace thing) 03:34:59 the userspace one is the one that was missing I think 03:35:12 debian/tmp/usr/bin/hal_skeleton 03:35:46 the RT version is a kernel module, I bet its already getting built 03:36:03 with all the other HAL RT modules 03:36:11 src/Submakefile.skel is an example of making a userspace file which links with libemc and libnml 03:36:28 oh, that has nothing to do with hal_skeleton 03:37:19 dpkg-deb: building package `emc2' in `../emc2_2.0.0-alpha17_i386.deb'. 03:37:19 dpkg-deb: building package `emc2-dev' in `../emc2-dev_2.0.0-alpha17_i386.deb'. 03:37:19 hal_skeleton is in src/hal/drivers 03:37:24 ahhhhhh 03:37:29 we have debs again 03:37:29 everything in there is built into kernel modules 03:37:42 but skeleton and parport can also be built as userspace programs 03:38:02 the new make was probably unaware of that 03:38:21 obj-$(CONFIG_HAL_SKELETON) += hal_skeleton.o 03:38:21 hal_skeleton-objs := hal/drivers/hal_skeleton.o 03:38:35 I do build hal-skeleton the realtime module 03:38:47 thought so 03:38:53 but not the user version 03:39:20 does the user version require special flags or libraries? 03:39:25 the difference is -DRTAPI vs -DULAPI 03:39:58 ALL RT code should have -DRTAPI, and all user code that might use HAL or RTAPI APIs should have -DULAPI 03:40:49 the user skeleton links with rtapi and hal libs 03:41:04 (not really libs, just objs) 03:42:19 objects/hal/drivers/hal_skeleton.o: In function `main': 03:42:19 hal/drivers/hal_skeleton.c:261: undefined reference to `hal_init' 03:42:19 here is the old rule for building them: 03:42:23 # rule to link single module binaries (user space versions of drivers) 03:42:24 $(BIN_DIR)/% : $(TMP_DIR)/%.o $(LIB_DIR)/ulapi.o $(LIB_DIR)/hal_lib.o 03:42:24 @ echo "Linking user space driver $@" 03:42:25 $(CC) $(CFLAGS) $(ULFLAGS) $^ -o $@ 03:42:29 ah, hal_lib 03:42:52 $ ../bin/hal_skeleton 03:42:52 SKELETON: ERROR: could not get I/O permission 03:43:05 yeah, it does ioperm, needs to run sudo 03:43:30 like I say, we don't actually use it, its an educational tool 03:43:51 the kernel module version has no probs getting IO access ;-) 03:50:23 -rwsr-x--- root/root 5820 2006-02-11 21:49:23 ./usr/bin/emc_module_helper 03:50:54 looks like I'll have to install 4755 for the deb since it changes it to root/root 04:01:48 didn't even realize I was on the main channel 04:01:53 I have one item in my tree now 04:01:57 woot! 04:02:52 ok, a strange mix of rays code and the web example, and I think I see how to build 04:03:04 cool 04:03:11 I finally found "Tree" in the code hahaha 04:03:13 I get a crash on shutdown, probalby not destroying something properly 04:03:36 set treew [ Tree blah blah? 04:03:58 line 402 04:04:17 I copied those 6 lines and changed a few names 04:04:27 no idea what it actually does, I hate that 04:04:40 also had to copy proc sSlide 04:05:39 absolutely no idea what "$treew bindText {workMode }" is all about 04:07:05 I bet that means when you click on the text with the left button, it calls workMode 04:07:18 could be 04:07:36 trying a loop to add the configs now 04:07:38 yes that's it 04:10:16 how do you get the path part of a filename 04:10:21 file tail gets you the name 04:10:31 file split gets you all the pieces 04:10:33 file dirname 04:10:38 duh 04:10:57 * cradek figured out how to install the tcl manpages 04:12:00 drat, it doesn't like duplicate nodenames 04:12:32 solved - use the complete name for the nodename, the tail for -text 04:12:45 ok, I got a tree 04:12:48 wow 04:12:59 defaults to closed, I want it open 04:13:07 and I'm not properly shutting it down 04:13:21 I close the window (click the upper right X) and it crashes 04:13:40 inside Tree:L_destroy 04:13:51 Tree::_destroy 04:14:33 dunno if the scrolling is right, I'm just sticking it in my main window right now, plenty of space 04:15:43 $tree insert end ..... -open 1 04:16:47 that worked 04:17:26 how does it look? 04:17:50 not bad 04:17:51 you know, if you sometimes have multiple inis, you do have another level in the tree 04:18:14 yeah 04:18:27 it is gonna be a little interesting dealing with user clicks 04:18:36 if they click a config, display the details (readme) 04:18:37 as soon as the right thing (a leaf on the tree) is clicked, you can highlight it, then ungray the OK button 04:18:42 but what if they click a directory? 04:18:48 don't do anything 04:19:20 or open/close it (I'm not sure how trees with unselectable things usually work) 04:19:21 oh, I need to do the hightlight myself 04:19:26 yeah probably 04:19:42 ok (the previous one used a listbox, it had selection built in) 04:19:46 ah 04:20:00 the previous one was keyboardable too, which was nice 04:20:09 but that's phase II if it isn't built in 04:20:52 right now there is a top level entry for every dir inthe path even if the dir has no configs in it 04:21:01 (even if the dir doesn't exist) 04:21:08 I could probably fix that 04:21:25 gotta get the basics down first 04:21:33 if [ file doesn't exist ] { continue } 04:21:36 or something 04:21:53 well right now I have two lists, one of dirs, another of configs 04:21:54 wonder what causes your crash 04:22:17 I'm probably not shutting the event loop down right 04:22:35 you did find file:///usr/share/doc/bwidget/html/Tree.html right? 04:22:57 it's their sorry excuse for not having a man page 04:22:58 bet it reads alot like http://tcllib.sourceforge.net/BWman/Tree.html 04:23:07 I bet you're right 04:23:22 I found the -open same time as you did ;-) 04:24:12 right now I'm using the top window generation code that jepler added to setupconfig 04:24:24 (fixed size window, chips on the left) 04:24:56 I don't think I want to use my wizard_page thing 04:25:09 I'm not gonna be running thru a sequence of pages here 04:25:13 cool 04:25:24 one fixed window is nice and simple 04:25:27 but I'm kinda at a loss hat to do instead 04:25:36 what part? 04:26:03 I need to display the tree, and a box for the readme info 04:26:13 and some messages 04:26:20 "please pick a configuration to run" 04:26:49 if I use don't use another tree level to handle multiple inis in a config, then I need another screen to do that 04:27:01 I think you definitely want to use another tree level 04:27:12 the tree lets you browse everything in a familiar way 04:27:36 so then the actual config names would NOT be clickable, only the ini names below them 04:27:47 yes 04:27:55 or, if there's only one, you might choose not to show it 04:28:06 and make the config name clickable 04:28:10 I can handle that 04:28:14 but by highlighting only when a valid thing is chosen, the user learns through exploration how it works 04:28:49 the readme display won't change if you click stepper_inch, then stepper_mm 04:28:56 but if they are named right thats ok 04:29:02 if they are named dumb, too bad 04:29:03 agreed 04:29:25 we know ours are named well; if the user does differently it's his own dumb fault 04:29:32 actually, if there are multiple inis, the readme should explain them 04:30:06 ouch I want to get off on a tangent 04:30:06 ok, I'm gonna redo my "build a list of configs" code 04:30:08 ouch ouch ouch 04:30:19 ouch? 04:30:33 that's me trying not to complain about the inch/mm inis 04:30:50 mechanism, not policy 04:31:05 I'll save it for another day 04:31:07 this tool will display them if they're there, thats all 04:31:07 sorry 04:31:27 on the good side - setupconfig will use the same tree to select the template 04:31:46 that means you must select a specific ini as a template, so your new config will have only one 04:31:50 that will be nice 04:31:55 unless you go outside the system to put another in there 04:32:03 also it removes a whole window 04:32:08 window/step 04:32:13 yes 04:32:23 I really like the idea of using another tree level 04:32:26 me too 04:32:35 this is a clever solution to the mess we started with 04:32:52 now I just have to figure out how to split the window up for messages/instructions, tree, and readme display 04:33:30 in general, you have to make frames, pack them with the packer, put widgets in them 04:33:41 or do you know that? I'm not sure which part you're asking about 04:33:43 yeah, I did that on setupconfig 04:34:07 but I never tried to say "use 1/3 of the screen for this, and 1/2 for that, and 1/6 for this" 04:34:21 ah I see 04:34:22 I just let tk resize to fit the contents 04:34:35 jepler is the one who made it fixed size 04:34:44 and I haven't looked at it much since he did that 04:35:05 I'm starting to get the hang of tcl, but tk is still iffy 04:35:16 installing tk man pages now... 04:36:21 I think things have a requested dimension 04:36:29 you can make them bigger with pack -expand and pack -fill 04:36:52 so you don't have to set sizes, you just have to say which things should be expanded larger than their minimum requested size 04:37:30 I want fixed fractions of the window 04:37:40 say top 1/4 for messages/instructions 04:37:47 middle 1/2 for the tree 04:37:58 bottom 1/4 for the readme 04:38:11 I don't think that's what you want - if you make the window taller, you want only the tree to expand 04:38:13 and the fifth fourth for the buttons ;-) 04:38:27 you sure don't want the size around the buttons to expand, for instance 04:38:28 jepler made the main window fixed size 04:38:37 so I don't have to worry about that 04:38:51 (I think he did it to match the picture of chips) 04:38:58 yes, probably 04:39:09 this is the main window code: 04:39:14 # make a toplevel and a master frame. 04:39:14 wm title . [msgcat::mc "EMC2 Configuration Selector"] 04:39:14 set logo [label .logo -image $logo] 04:39:15 set top [frame .main -borderwidth 0 -relief flat ] 04:39:15 # want these too, but on windoze they cause an error? -padx 10 -pady 10 ] 04:39:16 pack $logo -side left -anchor nw 04:39:17 pack $top -side left -expand yes -fill both 04:39:18 wm geo . 780x480 04:39:21 wm resiz . 0 0 04:39:33 that pads line should go away 04:39:47 that is a vestige of me developing on my doze box at work 04:39:54 are you going to have the same logo? 04:40:00 yes 04:40:20 changed the window title from Configuration Manager to Configuration Selector, but otherwise the same 04:42:06 I don't think I want to show dirs in the path if they have no configs in them 04:42:23 I agree that would be confusing 04:43:14 if you really want fixed sizes, I think you can use place instead of pack 04:43:30 I'm not sure 04:43:48 I decided to fix the tree build code to handle inis, then go back to the screen layout 04:44:54 you could even leave that for jepler, he'll be unable to leave it alone if it's ugly 04:45:03 lol 04:45:07 I like that 04:45:10 oh no, is he still in the channel? crap 04:45:11 haha 04:45:41 now he'll know my secret 05:04:31 ok, I got the tree to build right 05:04:35 after much swirling 05:04:37 allright 05:04:48 I don't think I'll ever get used to $ and set 05:05:15 yeah 05:05:26 it's different in perl, it's different in sh, it's different in make 05:12:06 gotta admit the tree widget it nice 05:12:19 wish I could pop up a screenshot for you to see 05:12:44 yeah I wish you had working dcc 05:12:53 email it to me? 05:17:15 http://home.att.net/~jmkasunich/Pics/picker_screenshot_1.png 05:17:30 clicking on any entry returns the path 05:17:37 if it ends in .ini, then it is legit 05:17:51 if not, its a dir and they need to click at a lower level 05:18:09 cool! 05:18:27 I bet we can put some icons in there to help explain it 05:18:30 should sort the entries 05:18:32 like folders 05:18:55 we'll let jepler do that ;-) 05:19:02 right, of course 05:19:25 buttons.... what buttons should this have 05:19:31 ok and cancel? 05:19:38 OK/Cancel 05:19:41 ok becomes enabled when they click a usable one 05:19:52 yeah 05:20:00 as well as highlighting it (setting its background color) 05:20:00 ok, buttons at the bottom 05:20:15 above that the text box (scrollable) for the readme 05:20:16 yes, bottom right 05:20:21 above that the tree, also scrollable 05:20:31 on top a box for messages/instructions 05:20:49 the tree could stay where it is 05:20:55 the messages might be static (I originally thought it would be a multi-step process 05:21:09 I am not sure a message/instruction is required 05:21:27 this is the very first thing a user will see 05:21:34 including an aunt tillie user 05:21:42 ok 05:22:16 I guess the cancel button should be next 05:22:25 fix that crash on close 05:22:54 bind $cancel {system kill -9 $$} 05:23:07 sorry 05:23:15 getting late 05:23:21 it is 05:24:05 bind . {button_pushed OK} 05:24:05 bind . {button_pushed OK} 05:24:13 is that how he made the keyboard work? 05:24:26 wm protocol . WM_DELETE_WINDOW {button_pushed OK} 05:24:34 and that handles the X in the top right? 05:25:04 yes 05:25:17 but you don't want it to call the thing that Cancel calls 05:25:19 err 05:25:24 but you want it to call the thing that Cancel calls 05:25:26 I do want it to call cancel 05:26:56 hmm, new stuff... 05:27:05 button_depends_on_variable 05:35:56 ok, I got a couple buttons 05:36:13 but for some reason the tree now gets scrunched into a small box 05:36:36 (I expected it to squish vertically, but it is also squished horizontally) 05:36:40 must have the frames/expands/fills wrong 05:37:05 maybe you need a -fill x somewhere 05:37:16 # build the tree widgets left side 05:37:16 set treew [Tree $f1.t -width 10 -yscrollcommand "sSlide $f1" ] 05:37:16 set str $f1.sc 05:37:17 scrollbar $str -orient vert -command "$treew yview" 05:37:18 pack $str -side right -fill y 05:37:18 pack $treew -side right -fill both -expand yes 05:37:18 $treew bindText { node_clicked } 05:37:21 pack $f1 05:37:53 I bet I need fill and expand on the pack f1 05:37:55 $f1 configure -fill x 05:38:04 yeah whatever the format is 05:38:33 better 05:41:39 [Global Notice] Hi all. If you're interested in tracking the near term winter storms and blizzard conditions in the northern US, you might try ##earth .... it's not that busy at the moment, but you can make it so. :) 05:41:58 hmm, it almost looks better with the tree on the side instead of above the readme box 05:42:29 I thought it might (that's the main thing jepler changed on the old setupconfig) 05:42:55 I think screens with a wide aspect ratio (like our monitors) are generally more pleasing 05:43:42 and a left-to-right flow is just as natural as top-to-bottom 05:44:54 also trees are usually on the left, think of any modern mailreader, windows explorer, the firefox bookmark manager, etc 05:45:00 right 05:45:07 doing that now 05:51:49 ok, got tree on left, text box on right 05:51:54 but the tree is too narrow 05:53:31 Tree -width xxx 05:53:40 Specifies the desired width for the tree in units of 8 pixels. 05:54:54 better 05:56:09 ok, tree is wide enough 05:56:23 both tree and text box are only about 1/3 of the window high 06:00:36 better 06:00:47 you keep saying that - it must be really good by now 06:02:47 against all odds, my cvs tree compiles and runs 06:02:56 against all odds? 06:03:23 yeah, I kind of feel that way, we've changed so much lately 06:03:39 I still want to change halcmd, but was sidetracked 06:08:22 http://home.att.net/~jmkasunich/Pics/picker_screenshot_2.png 06:08:35 just need to add instructions on top 06:08:51 wow, that's looking great 06:09:10 button locations OK? or should they be to the right? 06:09:21 I think they should be at the right 06:10:59 fixed ;-) 06:12:20 is it almost done? looks like you have most things working already 06:12:28 only the shiny parts 06:12:36 the greasy parts still need work 06:12:55 (making things happen when you click for instance) 06:13:01 ah right 06:19:13 from the man page for -wraplength: 06:19:14 The value may be specified in any of the standard forms for screen distances. 06:19:21 do you know what the standard forms are? 06:19:34 what's wraplength? 06:19:38 never mind, figured it out 06:19:46 word wrapping inside labels 06:20:07 no, no idea 06:33:56 I'm off to bed john... talk to you tomorrow 06:34:06 wait one sec 06:34:19 ok 06:34:31 http://home.att.net/~jmkasunich/Pics/picker_screenshot_3.png 06:34:45 what do you think of the wording? 06:36:25 the only change I would suggest would be to pick Choose/chosen or Select/selected and be consistent 06:36:43 good point 06:36:47 Select? 06:37:04 I have no preference 06:37:10 select it is 06:37:46 also you may want to lose the first "to run" 06:38:04 goodnight, and thanks for all the help 06:38:06 yes 06:38:11 I stumble on the sentence a bit with that in there 06:38:22 and you say "to run" later 06:38:29 agreed 06:39:01 goodnight, and you're welcome - I think this is looking great 06:39:03 the first time the wordwrapping just happended to coincide with sentences 06:39:21 now that the first is shorter, the word Details appears on the first line 06:39:35 think I'll add a newline between the sentences 06:39:49 I think all the text might be better left-justified, not centered 06:39:50 any thoughts on centered vs left justified? 06:39:55 lol 06:39:55 haha 06:40:16 left and wordwrap, or left and one sentence per line? 06:40:28 not sure, would have to see it 06:40:36 tomorrow then 06:40:38 you pick 06:40:39 ok 06:40:49 goodnight, really now 06:40:53 heh 06:40:55 night 06:41:02 I need to crash soon too 11:53:28 morning 12:05:48 morning 12:31:53 hi anders 12:31:58 how's it going? 12:48:14 it's going pretty ok 12:48:16 being busy :/ 12:48:41 but that's a good thing :) 12:50:17 right 12:57:53 food time 12:57:55 bbl 14:42:09 rayh has joined #emc-devel 14:42:29 morning ray 14:43:05 Hi Alex. How you doing today? 14:44:06 hi Ray 14:45:07 pretty ok 14:45:21 but I'm leaving on a business trip tomorrow, not very eager to do that 14:46:19 I heard you mention that you were going away for a week. 14:46:31 not a full week, till thursday night I hope 14:46:52 Ah. At least you will have the next weekend at home to recover. 14:46:59 heh - I guess it's contagious, I'm headed for LAX tomorrow :) 14:48:27 the funny thing is, a ticket to LA is the same price as a ticket to Warsaw 14:48:33 go figure 14:48:39 * alex_joni goes 14:49:25 Why not got to Warsaw then, SWPadnos 14:50:50 well - I'm headed there in September 14:50:58 the LA trip is for work 14:52:23 Sept. should be a fun month - Poland fora week or so at the beginning, then Germany for a week or so at the end 14:52:37 Fantastic. 14:52:53 I hope so. Got a friend getting married in Poland - that shold be fun 14:53:08 If you get around dortmund you should let me introduce you to my kids. 14:53:26 Dortmund - I've been through there, what is it near? 14:53:32 (can't remember) 14:54:21 North of koln. 14:54:30 ah - that's exactly where I'm headed 14:54:41 cologne, but not very near 14:54:42 between Koln and Dusseldorf, right 14:54:58 Somewhere there. 14:54:58 well.. depends on your definition of near anyway 14:55:11 or maybe that was the train destination - take the Dortmund train to get to Dusseldorf 14:55:13 * rayh reaches for the shell atlas. 14:55:16 heh 14:55:32 I'm going to the photokina trade show (I think), which is at the Koln Messe 14:55:54 Okay. 14:56:41 We were in the cathedral a few years ago when they were testing the new pipe organ. 14:56:50 that's a very cool place 14:56:53 That is an awesome sound. 14:58:41 ok - breakfast time. be back in a little bit 14:58:49 see you. 15:30:44 rayh has quit 15:46:37 * jmkasunich is awake (barely) 15:47:44 welcome to the club 15:54:53 seems I'm making a habit of missing Ray by a few mins 15:55:09 he must be a precog ;) 15:55:37 jepler around? 15:56:13 he was earlier, but I may have scared him away by pointing out that "good morning" is an oxymoron :) 15:59:09 http://home.att.net/~jmkasunich/Pics/picker_screenshot_4.png 15:59:26 cool! 15:59:35 I'm building right now 15:59:48 the picker doesn't actually work yet 16:00:01 no problem - maybe we can fix that today 16:00:06 yeah 16:00:15 thats why I was looking for jepler 16:00:20 halconfig needs the same stuff that the config pocker needs as well 16:00:27 leaf detection for clicks on the tree 16:00:53 he added stuff to setuoconfig that greys buttons when its not appropriate to push them 16:01:01 but I don't understand it 16:01:11 jepler? 16:02:18 I thought so, he's the one who changed it from all differnet sized windows to fixed size with the picture and did lots of other cleanup 16:02:25 right 16:03:38 ok - all those $b configure -state disabled 16:03:44 or -state normal 16:03:45 the tree works right when clicked, but not when you arrow up and down in it 16:04:06 I'm hoping for help with that too 16:04:36 so it detects the fact that the tree node isn't a leaf? 16:04:41 the clicked node 16:04:51 if you click on a line, I get a callback and can decide whether or not to hightlight the line (only if it is a usable config), and prints the details 16:04:58 hello 16:05:17 ok - that's good 16:05:29 but you can arrow the highlight up and down all day and I never get the callback (in spite of trying a wide variety of bindText options) 16:05:31 the same needs to be in halconfig, so it can *not* add a watch fro e.g. ppmc.0 16:05:32 hi alex 16:06:00 I decided based on the name of the node 16:06:19 if it ends in .ini, then highlight (and enable the OK button, once I know how to do that) 16:06:20 ok - if it has no / then it's a leaf (or something like that) 16:06:23 ok 16:06:33 for ones like " 16:06:35 oops 16:06:50 like "stepper" that aren't leaves, but do have descriptions, I check the parent 16:07:12 if the parent is "root", then I know its a top level like configs/, and blank the "details" box 16:07:23 if the parent is not root, then its a config, and I print the README 16:09:52 if it's there 16:10:18 yeah 16:10:32 if not, I print a message like "No details available" 16:10:45 there should be some indication of the number of children a particular node has 16:11:25 I haven't read all the docs on the Tree widget, there probably is 16:11:41 heh - I'm not sure anyone wawnts to read all the docs ;) 16:12:50 especially tk or tcl 16:14:01 "nodes" will return a list of the children 16:14:32 llength [ $tree nodes $node ] should tell you how many children $node has 16:14:52 ok - that would be good for halconfig 16:15:16 if you just want to know if there are any children you could do 16:15:40 if { [ $tree nodes $node 0 ] == "" } 16:15:54 SWPadnos: yes? 16:16:04 hi jepler 16:16:11 * jmkasunich pounces 16:16:12 was asking jmk if he meant you ;) 16:16:17 oh 16:16:23 oh well, now he knows I'm here. 16:16:31 now you're in trouble 16:16:34 16:16:53 I need help 16:17:00 have some specific questions? 16:17:04 * jepler scrolls back a bit 16:17:21 trying to understand the "enable/disable a button" magic you worked on setupconfig 16:17:31 working on pickconfig 16:17:35 take a look at http://home.att.net/~jmkasunich/Pics/picker_screenshot_4.png 16:18:36 pickconfig is based on setupconfig (with much trimming) 16:19:08 last night it was too late and my brain wasn't functioning well enough to figure out the buttons 16:19:16 this morning it is too early ;-) 16:19:44 For listboxes, I create a binding on the event <> which calls a command that enables or disables the button depending whether anything is selected in the listbox. 16:20:12 proc button_depends_on_listbox creates the binding, and proc button_listbox_changed is called when the <> event is generated 16:20:21 I don't know if bwidget's tree has anything like <> 16:20:35 in my case, I don't need the binding, I already have a proc that makes the decision, I need to turn the button on and off tho 16:20:48 can you do a cvs up? the code is in CVS 16:20:54 if {[condition]} { $button configure -state normal } else { $button configure -state disabled } 16:20:58 tcl/bin/pickconfig.tcl 16:21:10 thats it? 16:21:36 You have to get $button and {[condition]} right, but basically yes. 16:22:03 so "button_depends_on_listbox" aren't directly involved in turning on and off, they are the bound functions? 16:22:22 I thought they were some kind of callback from the button widget that handled the enable/disable 16:22:23 duh 16:22:25 button_depends_on_listbox creates the binding, but you say you don't need to create a binding, you're already calling a proc sometimes 16:22:40 ok, I think I understand 16:23:04 I do have another place where I want a binding, but that is related to Tree, so I dunno if you'd know or not 16:23:07 b_d_o_l creates the binding, then calls it manually once just to make sure the button starts out the right way 16:23:13 I haven't used Tree 16:23:39 $tree bindText { node_clicked } 16:23:42 did you find the documentation for it? /usr/share/doc/bwidget/html/Tree.html on my debian system 16:23:48 yes 16:24:07 the line above binds a proc so that when you click on a node the proc is called 16:24:09 works fine 16:24:16 but you can also keyboard to a node 16:24:33 I've tried a bunch of other bind variations, can't seem to capture that 16:25:19 so you click on node "stepper_inch.ini" and it displays the details, highlights it (and soon, enables the OK button) 16:25:38 then you up-arrow to some other node, the highlight moves, but OK and the details don't change 16:26:12 $tree bindText { node_clicked } 16:26:12 $tree bindText { node_clicked } 16:26:13 $tree bindText { node_clicked } 16:26:18 some of the ones I've tried 16:29:26 cool, button enable/disable works, that was easier than I expected 16:30:07 staggerlytom has joined #emc-devel 16:31:03 good morning 16:31:38 morning tom 16:34:43 morning 16:40:09 "$tree bindText <> { node_clicked }" didn't cause an error, so TreeSelect must be a valid event (I think) 16:40:19 but it also didn't seem to capture anything 16:40:29 jmkasunich: <> is accepted without error checking 16:40:51 <> works when clicking but not when using the keyboard. I don't understand if this is intentional or not, but it sure disagrees with what I would expect. 16:41:01 Key-XK_Up wasn't ;-) 16:41:20 is error checked, <> isn't. 16:41:25 oh 16:42:06 <> doesn't work with clicking (at least not here)( 16:42:37 (comment out the , that one does work with clicking) 16:43:41 where would the source for bwidget be? 16:44:04 the docs don't list the events it defines, I want to see if I can find them 16:44:12 I think I have a patch that works ... 16:44:30 feel free to commit it 16:44:50 or if its only a couple of lines, paste it here 16:46:05 bwidget source is /usr/lib/bwidget1.7.0/ 16:46:17 committed 16:47:06 I commented out "$tree selection clear" because it seemed to make the keyboard navigation get "stuck" when it reached a non-leaf node 16:47:27 hmm 16:47:56 what do all those extrea {} around node do? 16:48:06 proc node_clicked { {node {}} } { 16:48:06 here? 16:48:12 yeah 16:48:22 It means 'node is an optional argument. If it's not specified, its default value is {} (the empty string' 16:48:57 before, the selcted node was passed in by bindText, but it's not there for <> 16:49:01 ok, thats so "node_clicked" can be invoked multiple ways 16:49:07 right 16:49:15 it really only needs one way, since it's only called from <> 16:49:42 like this (untested): 16:49:43 proc node_clicked {} { 16:49:43 global tree detail_box 16:49:43 set node [$tree selection get] 16:49:43 if {$node == ""} return 16:50:09 I think I get it 16:50:22 bit of a bummer about not being able to clear the selection 16:50:29 (aka the highlight) 16:50:40 I wanted to highlight only usable configs, not directlry entries 16:51:20 but I guess turning the OK button on and off is enough to indicate which ones are usable and which ones are just navigation 16:52:30 KeyPress-Up 16:52:39 does that means up arrow? 16:52:51 Yes .. (not the keypad one) 16:53:26 who has a keypad anyways ;) 16:53:30 I do 16:53:40 and I use it instead of the arrows 90% of the time 16:53:42 KeyRelease (and KeyRelease-xxx) if you want to detect that 16:53:50 no need 16:54:14 at first I thought we'd need to detect left and right (expand/collapse tree) but not needed 16:54:16 in the tree, I think this gives better names: 16:54:16 set parts [file split $inifile] 16:54:16 $tree insert end $dir $inifile -text [lindex $parts end-1] -open 1 16:54:34 chinamill has joined #emc-devel 16:54:37 I had several 'sim.ini' all in different folders 16:54:41 and I couldn't tell the difference 16:55:04 thats why its a tree 16:55:35 /etc/emc2/sim-AXIS/sim.ini 16:55:36 /etc/emc2/sim/sim.ini 16:55:36 /etc/emc2/mysim/sim.ini 16:55:55 oh 16:56:02 because there's only one ini in each of these folders, they were displayed directly as children of /etc/emc2 16:56:12 but it says 'sim.ini', not 'sim-AXIS' etc 16:56:23 with my change, it says 'sim-AXIS etc 16:56:41 the ones I'm testing with obey the convention that .ini file name matches dir name (if theres only one) 16:56:46 Hello, did anyone noticed axis displayes planned path and actual path with (a guess) a scaling problem? (axis from BDI 4.38) 16:56:49 but we shouldn't rely on that 16:57:09 (when running metric ini) 16:58:03 chinamill: You shold probably upgrade to a newer version of axis 16:58:20 jepler: ok 16:58:22 chinamill: first, you have to follow the instructions to rebuild the version of emc on bdi, then follow the instructions to rebuild axis. 16:58:35 chinamill: hold on, I'll find you some URLs with directions 16:58:48 chinamill: this is also a great opportunity to step up to emc2 16:59:04 jepler: shh 16:59:07 chinamill: rebuilding the version of emc on bdi: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?BDI-4_Install 16:59:19 I like to be braindead ;) 16:59:28 chinamill: building axis: http://axis.unpy.net/installing 16:59:42 ok, thanks, maybe I'll will have alook at it 16:59:52 chinamill: building emc2 on bdi: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?BDI-4_38_Compile_EMC2 17:00:00 jepler, can you cvs up (to get my OK button changes), then commit your tree change 17:00:24 chinamill: If you want new versions of axis on bdi, please tell paul_c on the new discussion lists for bdi. They're at http://ourproject.org/moin/projects/bdi4emc 17:00:50 Good idea! 17:03:44 chinamill: and if, after installing axis 1.1.1 or 1.2a2, you still have a problem with metric and axis, please contact me on the emc-users list or at . 17:04:16 odd way of development 17:04:23 at least by reading the commit logs 17:04:38 what do you mean? 17:04:43 jmkasunich: you first submitted an initial version, and afterwards you took out parts till it works right 17:04:46 ROFL 17:04:51 lol 17:05:09 I copied a much larger program, kept that parts I wanted, and chopped the rest 17:05:09 ok, at least jepler seems to have added something 17:05:15 theres still more chopping to be done 17:05:18 I am kidding 17:05:21 I know 17:05:26 alex_joni: surely that approach to development will work, if you start with a large enough file... 17:05:33 lol 17:05:43 cat /dev/random > foo.file 17:05:46 might just work 17:05:58 right - get a million monkeys to write the code, and one developer to take out the parts that don't work 17:06:24 that's MicroSoft's approach I think 17:07:33 when combined with test-driven development, I don't see why it wouldn't work. 17:07:56 ok, now we either have to fake .ini at the end of the directory ones, or delete the .ini from the other ones (and remove the bit about .ini in the message) 17:08:13 (not the big nasty message about "don't use it", the real one that is right before that) 17:08:22 I think I favor the latter, drop .ini entirely 17:08:28 I think that's fine 17:09:09 I'm also tempted to not display details if its not a leaf node 17:09:19 (in addition to blanking the OK button) 17:09:45 you know, this is gonna confuse people who actually look at the directories 17:10:03 motenc is a file inside motenc/ 17:10:13 stepper_inch is a file inside stepper/ 17:10:19 but they are displayed differently 17:11:37 * alex_joni sees more droppings ;) 17:12:23 I thought about always displaying the dir, with the files at the next level, even if there is only one 17:12:32 but that nearly doubles the tree length 17:13:05 we really want to encourage the case of one .ini per directory anyway, so always displaying dir and filename is bad 17:13:07 show sim/sim.ini all in one entry? 17:13:20 how about absolute path? 17:13:36 like: /path/to/foo/sim/sim.ini 17:13:48 then why bother with a tree? 17:13:55 not sure.. ;) 17:14:04 might save you some problems though 17:14:10 we might want to make the top level ones absolute tho 17:14:54 I kinda like jepler's idea 17:15:03 if multiple inis: 17:15:05 dir 17:15:11 ---ini 17:15:15 if only one 17:15:16 dir/ini 17:15:37 but the existing layout is so much prettier ;-/ 17:16:49 screw it, I like the way it is now 17:17:02 no .ini cluttering up the tree 17:17:27 okie, you're the boss on this one :P 17:18:00 I think the shiny parts are pretty good now, time to make the greasy parts work 17:18:26 hi all 17:18:27 what's up with you (machinists) and greasy ? 17:18:30 hey chris 17:18:59 shiny: GUI elements (think car sheet metal) greasy: internals that actually do stuff (car engine) 17:19:29 hi chris 17:19:29 car engine shouldn't be greasy.. you need to clean it up once in a while if it is ;-) 17:19:54 but I know what you mean 17:20:36 should we allow --config /some/long/path/to/a/dir/that/isn't/even/in/configs-path ? 17:20:40 I think no 17:20:49 just --configs 17:20:55 oops 17:21:00 just --configs somename 17:21:16 where somename must be a subdir in one of the configs-path dirs 17:21:43 the emc script shouldn't even call pickconfig if it's given a path to a unique config 17:22:01 what chris said 17:22:28 currently (with setupconfig) the script calls it to validate the path (make sure an ini file exists in the specified directory, for example) 17:22:30 oh, and I just remembered (I read the logs from last night), imho we should have pickconfig not executable 17:22:42 but have a helper app (just like emc-config) in PATH 17:22:52 in due time, right now it needs to be so I can test it 17:23:06 so any users running from the shell (even if they are not supposed to) can run with the proper params 17:24:28 hey, woah, wait -- not supposed to run emc from the shell? 17:24:48 I meant configpicker 17:24:55 or pickerconfig or whatever 17:25:06 surely you can run emc from the shell 17:25:37 but you can't expect a user running /usr/emc2/share/tcl/bin/pickconfig.tcl to supply the proper args 17:26:05 OK, I take back my shock and outrage. 17:26:21 example: /usr/emc2/share/tcl/bin/pickconfig.tcl --configs-dir /etc/emc2/configs:/usr/emc2/share/configs:~/emc2/configs 17:26:46 cradek: still there? 17:26:59 yes 17:26:59 * alex_joni gets a weird error when apt-get update'ing 17:28:03 I see no reason for someone to run pickconfig from the shell. It's a program that scans some dirs and spits out a pathname 17:28:09 GPG error: http://security.ubuntu.com breezy-security Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key 17:28:32 cradek: the only reason is the one that applies right now - we're testing it 17:28:45 agreed 17:28:57 and we don't need a wrapper for that 17:29:00 then I take it back 17:29:09 get the cmd line right one time, then use bash history 17:29:31 cradek: any idea if the GPG has changed for the Ubuntu signing ? 17:29:32 alex_joni: interesting, they must have messed something up 17:29:48 btw alex, its no longer --configs-dir its --configs-path 17:29:57 alex_joni: not that I've heard, but I wouldn't have heard if so 17:29:57 I'll fix the script that calls it once its done 17:30:16 ok, I confused it, setupconfig has (had?) --configs-dir 17:30:25 yes, back when it was one dir 17:30:34 alex_joni: I don't get that error. You must have a bad download. 17:30:35 (and still does, it hasn't been updated yet) 17:30:52 I tried again, got no error this time 17:30:54 eventually, setupconfig will also use --configs-path 17:31:09 and will use the tree based picker for picking a template config, etc 17:31:18 right 17:31:19 alex_joni: good to know it recovers from a bad download 17:31:26 it seems to 17:31:51 no new debs for me today :) 17:32:18 now I can build them again! 17:32:37 yeah, I noticed 17:32:40 nice job, btw 17:32:48 thanks 17:32:55 * alex_joni even understands it 17:33:00 time for lunch, back in a bit 17:33:01 when jmk gets configgerpickerator done I'll make a new one 17:33:16 hrmm.. I still get the error 17:33:20 the GPG error 17:33:28 but I have slightly more sources 17:33:41 I enabled universe & multiverse & a few more 17:34:22 maybe you should ask google about the error 17:34:31 or try removing some stuff in /var/lib/apt/lists 17:35:07 I don't really care about it.. just pointed it out 17:36:24 ok, google has the answer as always: 17:36:25 At the moment the Release file at 17:36:25 `archive.ubuntu.com/ubuntu/dists/breezy/Release' is broken (therefore 17:36:26 `BADSIG'). If you take a look at the file it seems to be incomplete. 17:36:54 yay gpg 17:37:01 The good thing is, it seems to be more a technical than a security problem atm. 17:37:04 So this problem should be visible by everyone having a breezy line in 17:37:06 their `sources.list' (except those using mirrors that haven't synced 17:37:09 yet). The only thing you can do about it is to wait until this problem 17:37:11 is fixed. 17:37:36 probably my server is slow on sync, and only now has the problem, yours might already have the fix 17:37:38 funny I don't get it 17:37:42 yeah maybe 17:47:13 pickconfig is looking really good, guys 17:48:34 i have 6 8255 chips on 2 pci cards. 17:48:38 I wrote a driver for a single chip, 17:48:47 its 3 ports and 1 control register. 17:48:57 The call is rtload hal_zio chipbase=0x28c0 dio="IOio" 17:49:02 Can I call it once for each chip? 17:49:10 (Like Hall would track the multiples ) 17:49:17 I saw that jmk answered your questions on the list 17:49:21 or must I isntance them all at once? 17:49:30 all at once 17:49:45 hmm, delay in the package delivery... 17:49:48 and I saw the answer too 17:52:44 ok, got it, some name space conflict and use an array, ok 17:54:04 I would use: 17:54:39 rtload hal_zio board_addr=0x28c0,0x29c0 dio="IOio","OIoi" 17:54:44 or something like that 17:54:53 maybe even a num_boards=2 17:55:29 yep, num_boards follows your num_channels in the stg model 17:55:56 probably :) 17:56:43 oh my.. this really WORKS great 17:56:47 jepler: hats off 17:56:57 I had it configured for make install, and compiled 17:57:05 I reconfigured for run-in-place 17:57:12 recompiled (which was only 1 file) 17:57:16 and it ran perfectly 17:57:29 hey I did that part 17:57:32 heh 17:57:34 but actually it's a bug 17:57:47 how come? 17:57:48 because when you reconfigured, you may have specified a different CC etc 17:57:54 so it should have rebuilt everything 17:57:57 no I didn't ;) 17:58:08 right, but it doesn't know that, and CC is in Makefile.inc 17:58:18 and probably lost 17:58:31 because of the rewrite 17:58:43 so assuming you only change run-in-place, it's fine the way it is 17:58:43 leave it like this 17:59:03 if someone does configure --change-CC then they probably know how to do a make clean 17:59:05 but you can make changes with configure that show the dependencies are insufficient 17:59:29 cradek: so could editing the depends files 17:59:41 but we're not trying to outsmart every ill-willed user 17:59:58 alex_joni: slow-but-right is usually better than fast-but-wrong 18:00:29 alex_joni: but I agree maybe it's ok in this case 18:00:47 we'll worry when we hear the first feedback that soemthing wrong happened 18:00:53 but I guess that will never happen 18:01:14 I'll look at Makefile.inc with a critical eye and maybe see other things that should reasonably depend on it 18:01:27 ok 18:01:52 or you can :-) 18:02:07 or I can, just fixing some typos in a presentation first 18:02:09 then I will 18:18:13 bye all 18:18:16 staggerlytom has quit 18:48:07 anyone still around? 18:48:25 sort of 18:48:30 * jmkasunich is here 18:48:32 heh :) 18:48:45 got a message from a german user complaining there's no probing in emc2 18:49:01 but I guess we'll worry for the next release.. right? 18:49:37 yeah 18:49:52 ok. jmk since you're here I have an idea 18:49:54 ask him to submit a feature request ;-) 18:50:02 regarding emc-config 18:50:20 emc-config could supply the path/to/runscript to setupconfig.tcl 18:50:47 that way setupconfig might even run a new/modified/duplicated config 18:51:19 IOW, setupconfig could have a run button? 18:51:30 it does now.. doesn't it? 18:51:50 yes 18:52:03 if you follow the path to make a new config, at the end it asks you if you want to run it 18:52:13 but I wasn't sure it would later 18:52:28 ok.. 18:52:38 but think I like that idea 18:52:40 if it's needed, it's easy to do 18:52:51 just say so.. 18:53:15 it asks you if you want to run, and if so, calls the runscript, and passes the exact name of the config to run, so the run picker never pops up 18:53:25 right 18:53:34 that's what I thought 19:04:53 can you guys put pickconfig thru its paces? 19:05:28 it's done, for some value of "done" 19:05:59 pickconfig: 409 lines, setupconfig: 1775 19:06:06 a little bloat in setupconfig 19:06:16 for a multi-ini config dir, I wonder if the text window should clear if you don't select a leaf 19:06:27 I was thinking about that 19:06:35 right now, the OK button grays out and it might be confusing 19:06:50 IOW, the make the text window track the OK button 19:06:53 yes 19:07:11 I can do that ;-) 19:07:20 right now it seems like there are three things you can select: things that are configs, things that aren't, and things that are sort of in between 19:07:29 yeah 19:07:37 things that are not - dirs in configs-path 19:07:38 (judging only by the feedback from the disabled things on the screen) 19:07:49 inbetween, config subdirs with more than one ini 19:08:02 right 19:10:23 * alex_joni tries it 19:11:43 looks good 19:11:55 abuse it (try using keyboard, etc) 19:11:56 only thing it returns OK, not the config chosen 19:12:07 you must have an old version 19:12:10 cvs up 19:12:36 oh, my latest cvs up was in src/ ;) 19:13:28 hmm.. this is unexpected 19:13:45 I moved with the keyboard on stepper (which is a dir, with 2 ini's in it) 19:13:50 hitting Enter, exists 19:14:04 was the OK button grayed out? 19:14:08 yes 19:14:14 but enter worked anyway? 19:14:18 yes 19:14:24 I thought I tested that 19:15:02 jmkasunich: if you click it, Enter is disabled; if you use the arrows to get there, it's not 19:15:13 hmm 19:15:34 update before you change something - I committed a change 19:15:41 not true, I was able to click it, and still could press Enter 19:15:43 the arrows work strangely, I'm not sure I entirely understand them 19:16:06 wait I think I know what's wrong 19:16:10 at least user-wise 19:16:10 cradek: I hope you aren't doing the "don't display text for dirs" 19:16:15 cause I'm doing that 19:16:17 no, just cosmetic things 19:16:30 when I click an ok entry, then enter gets enabled 19:16:43 when I afterwards click an not-ok entry, it never gets disabled again 19:16:43 off to find ... uh, breakfast 19:16:46 same for keys 19:16:54 cradek: hunt a chicken 19:17:10 or a henn, get her eggs ;) 19:17:22 ok, clicking on an invalid tree item, hitting enter, its disabled 19:17:40 yup, click one that's valid, then repeat the procedure 19:17:40 click on a valid one, then and invalid, and hit enter, it exits 19:17:53 yup, probably some bad checking somewhere 19:17:56 when I see a valid one I bind to 19:18:07 when I see an invalid I'm supposed to unbind 19:18:14 bet its not happening 19:18:15 yup 19:19:01 I think I see the prob 19:19:15 yep, that fixed it 19:19:22 mistake on the bind call 19:22:01 committed 19:22:34 that's much better 19:23:50 agreed 19:25:22 I'm starting to make the changes to hook it to the emc script 19:25:55 EMC2_CONFIG_DIR=$sysconfdir/emc2 19:26:03 do we want that to have multiple dirs now? 19:26:11 and if so, how do they get set? 19:29:03 I think it will be a deb policy 19:29:26 works for debs, what about make install? 19:30:26 looking now 19:30:59 hmm, seems I made a mistake when I spec'ed the interface to pickconfig 19:31:15 I did --config --ini 19:31:52 for ubuntu (and other debians) we would have /etc/emc2 and /usr/local/etc/emc2 19:31:59 but emc is passing which might be a complete path to an ini file, or might be total nonsense 19:32:31 only the later for make install 19:32:52 how does that get into "emc" 19:33:17 @EMC2_CONFIG_DIR@ ? 19:33:49 yes 19:34:27 ok, we need a discussion: 19:34:40 which of the following should be legal (and what should they do)? 19:34:42 emc 19:34:45 emc foo 19:34:47 emc foo.ini 19:34:57 emc /foo.ini 19:35:04 emc /foo 19:35:21 I think only : emc and emc absolute_path/foo.ini should be valid 19:35:43 anything else starts the picker, maybe with the entry already selected (but that's matter of taste) 19:36:48 the picker is intended to validate a name that it is passed (and not pop the GUI if the name is OK) 19:37:14 so how does it deal with decision processes? 19:37:20 say I want to run sim 19:37:28 for example, picker --configs-path ./configs --config foo will return ./configs/foo/foo.ini if such a thing exists 19:37:28 but there are 5 sim.ini 19:37:38 first one in the path 19:38:11 if path is ~/emc2/configs:/usr/local/emc2/:/etc/emc2, and all have a sim, and you call: 19:38:33 picker --configs-path ~/emc2/configs:/usr/local/emc2/:/etc/emc2 --config sim 19:38:50 it will return ~/emc2/configs/sim/sim.ini (if there is one) 19:39:02 if no sim in that dir, it will check the next one, and so on 19:39:49 note that picker will never return something outside the path that it is given 19:40:12 (unless you trick it with --config ../../../somewhere/else/sim 19:45:18 should we remove all validation from pickconfig (and also all args to it except the path) 19:45:46 let the run script validate anything passed on the cmd line, and have pickconfig always pop the GUI? 19:46:15 hrmm.. that's tough to call 19:46:36 things like validation are probably easier to do in tcl 19:46:45 I agree with alex_joni that we should allow "emc" (picker runs) or "emc path/to/an/ini" (picker doesn't run) 19:46:52 but we need to get our sh*t straight aboyt what we pass to the picker 19:46:56 explicit is better than implicit 19:47:11 emc sim is bad imho 19:47:15 what about defaults? 19:47:25 emc 19:47:38 I forgot about defaults, but the emc script can check for them when called with no args 19:47:40 if default is there, picker returns path/to/default.ini 19:47:44 yesterday we were gonna have emc call picker with --config default --ini default 19:47:45 or script 19:47:54 if they exist, picker will return them, if not it will pop the GUI 19:48:12 jmkasunich: what if I have two configs named default? 19:48:12 * alex_joni is lost on --config default --ini default 19:48:37 first in PATH I guess 19:48:38 --config foo --ini bar 19:48:47 what's --config and what's --ini ? 19:49:03 things passed to the picker 19:49:34 ############################################################### 19:49:34 # 19:49:34 # usage: 19:49:34 # pickconfig [options] 19:49:35 # 19:49:36 # Validates a desired emc2 config or asks the user to choose 19:49:38 # one, then prints the complete path to the ini file. 19:49:40 # 19:49:42 # options: 19:49:44 # --configs-path [:] 19:49:46 # 19:49:48 # Required - if not supplied, exits with an error 19:49:50 # Colon separated list of directorys in which to search 19:49:53 # for configurations. 19:49:54 # 19:49:56 # --config 19:49:58 # 19:50:00 # Desired configuration name. If specified, pickconfig 19:50:02 # will search the configs-path and use the first sub- 19:50:04 # directory that matches. If there is no match, or if 19:50:06 # this option was not specified, it will display a list 19:50:08 # of all configurations and ask the user to choose one. 19:50:10 # 19:50:12 # --ini 19:50:14 # 19:50:16 # Desired ini file name. If specified, and if a matching 19:50:18 # one is found in the chosen config, it will be used. If 19:50:20 # no match exists, or if this option was not specified, 19:50:22 # and the chosen config contains more than one ini file 19:50:24 # it will list all the ini files and ask the user to choose 19:50:26 # one. If the chosen config contains only one ini file, 19:50:28 # that file will be used regardless of any -ini option. 19:50:30 # 19:50:32 ############################################################### 19:50:40 we agreed on that yesterday before I started coding 19:50:42 you might have been gone already 19:52:03 while I remember agreeing to this, I'm not so sure anymore 19:52:12 I think --config and --ini are unnecessary complexity 19:52:14 ok, lets come up with something better 19:52:47 if we don't care about defaults, then I agree 19:52:52 I'm just trying to figure out where to put the default 19:53:04 emc runs that path, emc runs the picker 19:53:12 but how do you get a default in that case? 19:53:13 right 19:53:16 I don't know 19:53:38 the idea was that emc would invoke picker with --config default --ini default 19:54:04 so IF those existed, they would be invoked with no GUI, if not, the GUI would pop up 19:54:12 defaults could sure be specified in e.g. ~/.emc2rc 19:54:41 .emc2rc contains the absolute path 19:54:51 let emc parse that, and call picker if and only if it needs a GUI (aka input from the user) 19:54:52 setupconfig writes it/deletes it 19:54:52 or /etc/emcrc 19:55:08 jmkasunich: yes 19:55:12 ok, suits me 19:55:18 that much more code I can delete 19:55:28 IMO the less done in tcl the better 19:55:37 lol 19:55:45 I was thinking the less done in bash the better 19:56:02 tcl is cleaner and easier to read for things like manipulating filenames and such 19:56:21 haha, I do NOT agree 19:56:33 the picker restarts itself with wish, right? 19:56:41 look at line 228 in the picker 19:56:52 228 thru 259 19:57:01 in bash I think that would be a lot worse 19:57:09 but maybe I just suck at bash 19:57:22 that's a common affliction 19:57:43 jmkasunich: I think it would be about the same, except for punctuation 19:57:58 ok, then I'll rip it out 19:58:32 instead of writing if { [ file isdirectory $subdir ] == 1 } you write if [ -d $subdir ] 19:58:36 etc 19:58:37 --config, --ini, and all code associated with them (which is basically those lines, plus 189-220) 19:58:47 mostly it would be much shorter 19:59:01 cool, I think that's great 19:59:12 what about file join, file dirname, etc 19:59:34 A=$a/$b 19:59:39 A=$(dirname $a) 19:59:42 or basename and dirname 19:59:48 you're probably right tho, its a matter of syntax and familiarity 19:59:57 I just find bash harder to read 20:00:13 wouldn't that be $a=$(dirname $A) 20:00:18 decision made, stand by for commit ;-) 20:00:20 SWPadnos: no 20:00:46 jmkasunich: just wait until I make a directory named {}[][]]} and run your tcl program 20:00:55 jmkasunich: (same applies for sh though) 20:01:02 hmm, as in "if A is a/b, then dirname(A) will be a" 20:01:15 SWPadnos: the two statements weren't related 20:01:22 ok, one more question 20:01:24 SWPadnos: but your $a= syntax was wrong 20:01:37 picker now has only one "option", --configs-path 20:01:45 and its not optional, you must supply a path 20:01:53 good question 20:01:54 so I think I should just lose the option 20:02:03 probably so 20:02:16 loose it 20:02:16 usage "pickconfig " 20:02:28 * alex_joni hides from cradek 20:02:42 now, should path be :: or just a space separated list of dirs? 20:03:05 probably : separated still 20:03:06 probably keep the :, so it can be stuck in a shell variable without quoting? 20:03:13 it will come from configure as one option 20:03:18 ok 20:04:09 tcl/bin/pickconfig.tcl --configs-path '~/emc2/configs' 20:04:16 when I do this, then pick one, the ~ gets expanded 20:04:19 what expands it? 20:04:26 bash I think 20:04:31 I don't 20:04:36 no, not bash 20:04:40 that's what the '' prevent 20:04:41 tcl? 20:05:17 without the '' it is expanded before pickconfig (and shows up in the tree expanded) 20:05:57 maybe tcl's file join does it 20:07:18 where are you seeing the sxpansion? 20:07:23 I see ~/ in the tree 20:07:25 the result printed back 20:07:29 yes the output 20:07:33 ok 20:07:41 I do want ~ in the tree 20:08:45 it's not a full sh expansion because if I change it to $HOME I get nothing 20:09:06 oh well 20:09:10 "it's a feature" 20:09:12 is the expansion in the output a problem? 20:09:22 no, it's arguably what we want 20:09:25 ok, here's the new spec for pickconfig: 20:09:29 ############################################################### 20:09:30 # 20:09:30 # usage: 20:09:30 # pickconfig 20:09:31 # 20:09:32 # is one or more directories (separated with 20:09:32 # colons) in which pickconfig should search for configs 20:09:34 # 20:09:36 ############################################################### 20:09:40 I just don't understand it 20:09:45 I like that spec better 20:09:47 is that what we want? 20:13:43 I'm itching to make a new deb... 20:13:57 and axis 1.2a2 20:14:15 and? 20:14:30 a new emc2 deb with pickconfig 20:14:34 and axis 1.2a2 20:14:54 glob does the expansion (in case anyone's still wondering) 20:15:11 ah 20:15:18 so it must handle ~ but not $ etc 20:15:34 jmkasunich: like the spec too 20:15:35 could be 20:15:47 I like the spec - the only thing missing is what you get out of it ;) 20:16:02 ah good idea 20:16:12 (printed config location, changes to /etc/emcrc, changes to ~/.emcrc) 20:16:30 no, this doesn't read or write those files 20:16:58 ok - the "prints config location" line is above that stuff, in the version IHave 20:17:05 ############################################################### 20:17:06 # 20:17:06 # usage: 20:17:07 # pickconfig 20:17:07 # 20:17:08 # is one or more directories (separated with 20:17:08 # colons) in which pickconfig should search for configs. 20:17:10 # pickconfig will open a GUI window displaying all configs 20:17:12 # that it finds and ask the user to choose one, then print 20:17:14 # the path to the chosen config and exit. 20:17:16 # 20:17:18 ############################################################### 20:17:26 cool by me 20:17:44 ... and on cancel it prints nothing and returns an error exit code 20:17:54 are there any plans for a non-graphical UI (like keystick) for emc2? 20:18:05 keystick should work 20:18:22 but obviously on a non-X box, emc can't invoke keystick 20:18:24 oops 20:18:29 can't invoke pickconfig 20:18:31 right 20:18:42 yeah that's why we don't want to REQUIRE tcl for anything 20:19:25 some day I want to revive xemc too - it's the best way to run on slow boxes (I had one) 20:19:28 there is tclsh 20:19:42 cradek: how about a stripped version of axis? 20:19:42 it's TK that gets you 20:19:51 would that be slower than xemc? 20:19:59 alex_joni: yes, it's interpreted 20:20:03 say you disable the plot at compile time 20:20:05 oh.. ok 20:20:11 you can probably not get faster than xemc 20:20:19 how about a GTK based GUI? 20:20:20 keystick? 20:20:21 ;-) 20:20:21 :D 20:20:28 with pacifiers: | / - \ - | ... 20:21:09 you want fast - make a Windows Vista interface using Aero Glass - that'll scream 20:21:11 (in agony) 20:21:14 I tried both keystick and xemc on my underpowered machine, and preferred xemc 20:21:27 what video card? 20:21:35 I prefer ssh -X from a faster machine 20:21:36 I don't remember - slow 20:21:54 should pickconfig return error if the user says cancel, or just print nothing? 20:22:04 well anyway, I still have it in the back of my head that we should not REQUIRE tcl/tk 20:22:14 jmkasunich: it should simply exit with an error code 20:22:18 (it returns error if invoked without a path, but currently returns success and prints nothing on cancel) 20:22:22 ok - there's very little that will be faster than text prints (unless you're in framebuffer mode), but a reasonable old Matrox card can blit text glyphs pretty fast 20:22:53 even though all of our guis *currently* use tk 20:23:13 jmkasunich: be sure that error goes to stderr and you return >0 20:23:29 jmkasunich: but IMO the user hitting cancel is not an error condition 20:23:41 no path: print to stderr, exit 1 20:23:47 cancel print nothing, exit 0 20:23:54 ok print result, exit 0 20:24:12 thats what it does now, if you want a change speak quick! 20:24:14 looks fine to me 20:24:47 alex? (you get to call it from the run script, you can live with that? ;-) 20:25:11 * alex_joni can live 20:25:26 btw, if you call it with a non-existant path, or one that contains no configs, you get a blank tree, and only Cancel is enabled 20:25:48 I think a blank tree is an error condition 20:25:50 I dunno if that case needs more intelligent handling 20:26:15 so print to stderr "no configs found in path", exit 1 20:26:22 ? 20:26:50 yup 20:27:08 hmm, if there's only one config in the path, should I just print it and exit 0? 20:27:21 no 20:27:27 why not? 20:27:33 no choice for the user to make 20:27:35 if you go that way, to handle special cases it'll never get done 20:27:46 well, I guess there is, he can choose to cancel 20:27:53 right 20:28:28 if he really wants to skip the picker, tell emc what to run 20:28:34 agreed 20:28:47 damn, math in tcl sucks 20:29:07 I want "n++" ;-) 20:29:14 jmkasunich: cat /usr/share/dict/words | while read; do echo $i in tcl sucks; done 20:29:20 there's a command "incr" 20:29:21 n=$(($n+1)) 20:29:42 lol 20:29:52 % set i 3 20:29:52 3 20:29:52 % incr i 20:29:52 4 20:29:52 % set i 20:29:54 4 20:30:05 thanks 20:30:08 ok that's better than sh 20:30:40 but way less readable than C (i++ or i+=1) :) 20:30:57 (setq n (1+ n)) 20:31:46 if (--i++ > n) {foo} 20:31:57 heh - never used that one, might have to sometime ;) 20:32:57 jepler: read a || a=y doesn't work to set a default 20:33:54 new version is 100 lines shorter ;-) 20:35:04 jepler: fixed 20:38:43 cradek: read || wasn't mine, but thanks for fixing it 20:38:50 oh, I removed the -t 5 20:39:01 yeah that was a timeout default thing 20:39:14 drat 20:39:20 cradek: the read || a=y was yours 20:39:21 BDI-4.20 is no longer building 20:39:26 huh? 20:39:37 http://www.linuxcnc.org/compile_farm/ 20:40:05 worked at 22:55 utc yesterday, broken at 00:11 today 20:40:10 KDIR seems to be missing 20:40:23 * alex_joni looks 20:40:59 I don't think you can build against headers on 4.20 20:41:16 I think it had the full kernel source tree 20:41:21 all these commits to pickconfig have been putting the farm thru its paces, it has no clue that the tcl doesn't need compiled 20:41:45 what changed in that 2-3 hour period? 20:42:05 I remember some commit from jepler about KDIR 20:42:48 -KDIR := $(shell cd /lib/modules/$(shell uname -r)/build; /bin/pwd) 20:42:48 +KDIR := $(shell cd $(KERNELDIR); /bin/pwd) 20:43:02 nothing wrong there imho 20:44:06 where does KERNELDIR come from? 20:44:19 KERNELDIR = /usr/src/kernel-headers-2.6.10-adeos 20:44:24 from Makefile.inc 20:44:37 but it seems it finds the headers, not the sources 20:44:46 I bet /lib/modules/2.6.10-adeos/build -> /usr/src/kernel-source/2.6.10-adeos 20:44:55 yup 20:44:57 alex_joni: it *should* find the headers, not the source 20:45:10 alex_joni: but the headers are busted on 4.20 20:45:15 so you should be able to compile against the headers always? 20:45:16 same error on this box (BDI-4.27) 20:45:29 looks the same anyway 20:45:31 just change it back...? 20:45:32 well, when they are not busted 20:45:43 Compiling module_helper/module_helper.c -Wall -Werror -DRIP_MODULEDIR="/home/John/emcdev/emc2head/rtlib" 20:45:43 Makefile:529: /usr/src/kernel-headers-2.6.10-adeos/arch/i386/Makefile: No such file or directory 20:45:44 make[1]: *** No rule to make target `/usr/src/kernel-headers-2.6.10-adeos/arch/i386/Makefile'. Stop. 20:45:49 yes you should always be able to compile against just headers - my ubuntu packages work that way 20:46:29 and $RTS --linux-dir returns the right thing in my packages 20:50:48 "fixed" (put it back) 20:51:07 jmkasunich: can you kick it again? 20:51:53 doing a build on my 4.27 box now for a faster answer, but yes 20:52:00 worked here 20:52:03 ok 20:52:14 got the warning about warning: passing arg 2 of `rt_task_init_cpuid' from incompatible pointer type 20:52:34 yeah, that must be different in different rtai versions 20:53:21 restarted slots 4 and 5 20:53:32 (not bothering with 2 & 3, we know they don't work) 20:54:30 alex_joni: are you integrating pickconfig/emc.in? 20:54:36 I started that 20:54:41 ok 20:54:45 give me a few mins 20:54:51 I'll go make tea 20:56:00 make me some too 20:56:18 If I change emc.in, all I need to do is re-run ./configure, right? 20:56:42 jmkasunich: ./config.status regenerates emc from emc.in 20:56:53 jmkasunich: doesn't even need to go through all the configure steps again 20:57:16 ok 20:57:29 works for rip 20:57:47 and for install, but you need to make install too 20:58:20 I meant "my changes to emc.in work for rip" 20:58:25 need to test installed now 20:58:44 oh, what changes? 20:58:48 regarding picker? 20:58:50 to use the picker 20:58:53 commit them 20:59:33 ok 20:59:39 got a problem with installed 20:59:44 I'll make a deb and test it 20:59:49 permissions on picker aren't right 21:00:00 John@main:~/emcdev/emc2head/src$ sudo make install 21:00:00 Installing in with prefix /usr/local 21:00:00 John@main:~/emcdev/emc2head/src$ emc 21:00:02 /usr/local/bin/emc: line 1: /usr/local/share/emc/tcl/bin/pickconfig.tcl: Permission denied 21:00:03 yes, you'll have to change make install 21:00:23 what should I change? 21:00:42 or should I commit the emc.in changes and let you do the make ones? 21:00:47 you - alex or cradek 21:02:04 huh none of tcl/bin is installed executable 21:02:07 should they all be 21:02:08 ? 21:02:16 cradek: yes 21:02:21 $(FILE) $(TCL_BIN) $(DESTDIR)$(tcldir)/bin 21:02:28 on this line just change FILE to EXE 21:02:28 * alex_joni can try that 21:02:34 jmkasunich: just commit 21:04:38 committed 21:08:26 hmm.. sudo make install gives an error 21:08:49 I thought the inis were sorted 21:09:01 but mine aren't now 21:09:01 alex_joni: what error? 21:09:03 no, the problem is sample-configs/ppmc 21:09:10 you mean in pickconfig? 21:09:10 yeah, it's empty 21:09:11 they were before 21:09:12 jmkasunich: yes 21:09:15 which usually is not there (but I ran cvs up -d last time) 21:09:17 they're not sorted, I need to fix that 21:09:22 if cvs up -dP then it's ok 21:09:29 alex_joni: right, I had that too 21:09:30 harder to do when you retrieve from multiple dirs 21:09:43 gonna sort on each dir 21:09:45 alex_joni: I didn't want to make $(INSTALL_CONFIGS) even more complex so I ignored it 21:09:53 ah - that's easy then 21:09:54 the dirs will be listed in the order they appear in the path 21:10:39 cradek: probably the sanes choice 21:11:01 ok, running /usr/local/bin/emc gives an ERROR: no configurations found in path 21:11:05 * alex_joni investigates more 21:11:33 same here 21:11:44 I think emc.in is passing the wrong path to picker 21:11:54 just modded picker to echo the path in the error msg 21:12:21 '/usr/local/etc/emc2' 21:12:28 oh, the problem is with sample-configs 21:12:47 it should be /usr/local/etc/emc2/sample-configs 21:12:51 right 21:12:52 oh yeah, I never finished that 21:12:54 no 21:12:54 * alex_joni modifies configure for that 21:13:01 cradek: no? 21:13:05 /etc/emc2/sample-configs /usr/local/etc/emc2/configs 21:13:15 with a colon ;-) 21:13:18 well, I did a default make install 21:13:30 which installs to /usr/local/etc/emc2/ 21:13:34 not to /etc/emc2 21:13:34 oh 21:13:39 ok right 21:13:41 hmm 21:13:50 there should still be two dirs in the path 21:13:54 one for samples 21:13:56 right 21:13:57 we'll have to allow configure --with-configs-path=... 21:13:59 the other for the users configs 21:14:15 and the user one should be first 21:14:17 or, I bet it could be based on $prefix 21:14:37 I like --with-configs-path 21:14:41 there is a $sysconfdir (the sample-configs one) 21:14:52 that one is figured out by configure 21:14:52 ok right 21:14:54 some folks might want to include $HOME, others wont, 21:15:26 ~/emc2/configs:/usr/local/etc/emc2/configs:$sysconfdir/emc2/sample-configs 21:15:28 we could have the second one specified by ${prefix}/share/emc2/ or something 21:15:45 ok, then ${prefix}/etc/emc2/configs 21:16:02 no, that'll give you /usr/etc 21:16:05 you don't want that 21:16:23 I think just what I typed is the answer 21:16:32 and have it fixed? 21:16:36 yes 21:16:41 /usr/local/etc/emc2/configs ? 21:16:55 so if you install with --prefix=/usr --sysconfdir=/etc you still get /usr/local/etc/emc2/configs 21:17:07 the debian resource guide says you CAN do that 21:17:12 but also /etc/emc2/sample-configs 21:17:19 ok, I can live with that 21:17:23 you can't put files in /usr/local/etc, but you can create a directory there so the user knows where to put something 21:17:23 * alex_joni does it 21:17:49 basicly configure will be untouched 21:17:58 I'm glad you guys know what you are doing 21:18:06 jmkasunich: are you talking to us?? 21:18:09 yes 21:18:13 lol 21:18:16 we just seem to know 21:18:18 lol 21:18:39 just committed a version of picker that prints the path it searched if it finds nothing 21:18:40 we alternately pretend to know what we're doing, and play along when someone else pretends 21:18:52 cvs up, it might help straighten this out 21:18:55 jmkasunich: hope it still errors 21:19:11 well if it doesn't, then the problem is fixed, right? 21:19:19 don't want the runscript to take off with that path 21:19:29 prints to stderr 21:19:31 no, I mean the returncode 21:19:34 ok then 21:20:26 darn, cvs is slow today 21:20:28 at least here 21:22:23 probably overloaded from all these committs 21:23:06 give me 2 more mins to test 21:23:29 5 BDI-4.20 (2.6.10-adeos) 02/12/06 21:13:24 PASSED 21:23:39 yay 21:23:41 jmk - you may be able to simplify the tree code by using the -selectable attribute 21:24:02 though it wouldn't help for printing "pick something" messages 21:24:04 I would like it if non-leaves are not selectable (don't highlight) 21:24:13 I agree 21:24:15 now you tell me 21:24:18 heh 21:24:20 I agree tho 21:24:21 but jepler said that messes up keyboard navigation 21:24:28 just looking through the BWidget docs now 21:25:11 there's also a "takefocus" attribute 21:25:17 hrmm.. some more issues we needto resolve 21:25:39 ok, sorting is sorted ;-) 21:25:44 cradek: I get a permission denied on /etc/init.d/realtime 21:25:45 one line... 21:25:58 one word, plus some brackets, I imagine ;) 21:26:15 set subdir_list [ lsort $subdir_list ] 21:26:40 you can do that in the assignment: set subdir_list [lsort [glob ... ] ] 21:26:57 I'm not gonna worry about sorting multiple inis in one config, we're gonna discourage that practice anyway 21:27:11 yeah, I could 21:27:22 don't like heavy nesting tho 21:27:25 heh 21:27:42 not like performance will be a big issue there 21:28:25 this stuff so very much screams for an xml-like config mechanism 21:28:34 one file per config, instead of one dir 21:28:59 makes the configs/common thing harder to do 21:29:17 true 21:29:33 damn, that reminds me 21:29:47 my work is never done - now gotta make setupconfig work with the new layout 21:29:52 heh 21:30:04 cp pickconfig setupconfig ;) 21:30:09 jmkasunich: pickconfig looks *great* 21:30:28 I don't think it ever worked with installed, esp. the new function - permission issues, etc 21:30:31 thanks 21:30:49 (and thanks to all who helped with code, and comments) 21:31:30 ok, emc should work now with the new picker on installed 21:31:46 * alex_joni digs up the permission denied problem 21:31:47 farm BDI-4.20 slot is happy now! 21:33:58 darn, stupid typo again 21:34:18 ERROR: no configurations found in path '/home/John/emc2/configs:/usr/local/etc/emc2/configs:sample-configs' 21:34:22 that typo? 21:34:30 the last one, yes 21:35:03 it should be /usr/local/etc/emc2/sample-configs 21:35:08 not only 'sample-configs' 21:35:30 too many things I'm working on right now :) 21:36:00 cradek: still there? 21:36:04 yes 21:36:21 I have a question. any reason to install /etc/init.d/realtime as $(FILE) not $(EXE) ? 21:36:36 you're right, it needs to be EXE 21:36:42 ERROR: no configurations found in path '/home/John/emc2/configs:/usr/local/etc/emc2/configs:=/usr/local/etc/emc2/sample-configs' 21:36:56 jmkasunich: you're joking 21:36:56 := ???? 21:36:57 whats with the :=? 21:37:24 cvs up -dP ; cd src ; ./configure ; make ; sudo make install ; emc 21:37:33 hang on a minute 21:37:34 aren't you doing that before you commit? 21:37:49 make/sudo make install; /usr/local/bin/emc 21:37:59 but I get configs from all 3 locations 21:38:22 so if the last is missing I don't notice right away :( 21:38:22 EMC2_CONFIG_DIR==${sysconfdir}/emc2/sample-configs 21:38:24 another typo 21:38:52 will someone else please fix that, I can't do it properly 21:38:55 :((( 21:38:58 I'll do it 21:39:14 thanks.. I need a closer position to my monitor 21:39:44 done 21:40:08 one more time I test 21:40:36 YES! 21:40:43 damn... 21:40:54 something fishy with the realtime script 21:40:56 realtime not exe? 21:40:58 and location of modules 21:41:05 argh 21:41:09 /usr/local/etc/emc2/sampld-configs is wider than the tree window 21:41:14 (cosmetic only) 21:41:38 cradek: /usr/realtime-2.6.12-magma/modules/rtapi.ko no such file or directory 21:41:59 should be modules/emc2/ 21:42:30 I think rtapi.conf doesn't get found, or is wrong looking now 21:43:03 when I try it I get "missing rtapi.conf. Did you run 'make rtapi'" 21:43:08 there's crappy code in realtime to locate rtapi.conf 21:43:11 MODPATH=/usr/realtime-2.6.12-magma/modules 21:43:25 yeah, that can go away now, that configure makes it 21:44:51 does configure know where rtapi.conf is? 21:45:02 it can assume 21:45:04 I hope so 21:45:13 because it goes to $sysconfdir 21:45:13 it's in $sysconfdir I guess 21:45:26 ok who is fixing realtime? 21:46:48 it's not realtime 21:46:57 the Submakefile that makes rtapi.conf 21:47:00 * alex_joni is fixing it 21:47:09 well realtime is also broken 21:48:13 I wonder why INSMOD and RMMOD get replaced differently in realtime 21:48:22 howso? 21:48:29 hang on, pasting 21:49:17 INSMOD="/usr/local/bin/emc_module_helper insert" 21:49:18 RMMOD="${exec_prefix}/bin/emc_module_helper remove" 21:49:46 I have never seen that 21:50:11 ok, seems the code in configure is different 21:50:20 I guess I did change it all recently 21:50:25 me too 21:50:28 but not both 21:51:39 aargh, CVS is soo slow 21:52:20 it's taking about 20 seconds to prompt for pass 21:55:45 it's been like that for me for the past couple of weeks 21:55:49 maybe 10-15 seconds 21:57:01 cradek: let me do the configure part 21:57:20 I only changed realtime.in 21:57:24 seen that 21:57:26 to honor RUN_IN_PLACE 21:57:31 chris@buster2:/usr/src/emc2$ time cvs diff directory.map 21:57:31 real 0m5.170s 21:57:45 cvs response is pretty good here 21:58:32 real 0m24.801s 21:58:37 for the same one 21:59:17 ouch 21:59:33 now you can see why I'm bothered 22:00:07 but it's only cvs that's slow 22:01:16 chinamill has quit 22:02:21 hmmm - there's got to be a way to get the vertical scrollbar to be line-based rather than character-based (when determining the scrollbar handle size) 22:02:46 you mean how it changes size as you scroll? 22:02:47 it's a little disconcerting to have the size of the handle change as you scroll ;) 22:02:49 yep 22:02:57 yeah, sucks, doesn't it 22:03:01 yeah 22:03:09 I like the program otherwise, though 22:03:16 which program is that? 22:03:21 tk has had that bug for many years 22:03:23 though double-click isn't working 22:03:30 pickconfig 22:03:37 jmkasunich: any text that's line-wrapped and has a scrollbar 22:06:18 cradek: RTLIB is still wrong 22:06:37 or rtapi.conf 22:06:57 I used to generate a new rtapi.conf for the installed version 22:07:50 if you look at Makefile.inc I think the directories on top are wrong 22:08:25 alex_joni: I don't know what those are used for 22:08:34 alex_joni: they point to my source tree, even though I configured non-rip 22:08:45 they were used fo rbuilding 22:08:53 * alex_joni hacks them 22:09:24 * cradek stands back 22:09:33 I might break something.. 22:11:28 that's fine 22:11:28 indeed I did 22:11:41 rtapi/rtai_ulapi.c:73:48: rtai_shm.h: No such file or directory 22:12:50 ok, I know what :) 22:13:57 hal/utils/m5i20cfg.c: In function `findpcicard': 22:13:57 hal/utils/m5i20cfg.c:447: warning: implicit declaration of function `getline' 22:14:03 did someone recently cause this? 22:14:43 the last change in m5i20 was over 1 month ago 22:15:44 logger_devel has joined #emc-devel 22:15:44 topic is: "Welcome to the Enhanced Machine Control development place. | Regular Developers' meetings 24/7 !" 22:15:44 Users on #emc-devel: logger_devel LawrenceG jmkasunich steve_stallings jepler cradek jtr_ anonimasu alex_joni @ChanServ SWPadnos 22:16:34 would be nice if jepler was around 22:16:52 anything I can help with? 22:16:59 there are still some Makefiles 22:17:04 in rtapi/examples 22:17:10 and hal/soemthing/vcp 22:17:29 and I was wondering what variables from Makefile.inc is he still using 22:17:40 I've seen $(LIB_DIR) 22:17:48 proabbly $(INCLUDE_DIR) too 22:18:06 err.. INC_DIR 22:18:20 not sure about TMP_DIR and RTTMP_DIR 22:18:41 there is a Makefile.lib in src/libnml 22:18:48 does that still work? 22:19:05 I don't know 22:19:16 see, jepler would be best now :) 22:19:30 * alex_joni is slowely working through this 22:19:35 slowly even 22:19:58 but it's compiling again 22:20:29 can I check in a change to emc.in? 22:20:32 sure 22:23:06 if I apt-get source emc2 (on ubuntu), will that also grab everything needed to build emc2? 22:23:13 yes 22:23:25 including kernel 22:23:32 ok - cool. I may blow away the BDI 4.2 on my laptop and switch to ubuntu there 22:23:34 or you can use apt-get build-dep emc2 22:23:39 ok 22:23:48 if you just want to use the cvs version, for instance 22:24:05 well - I may want to fiddle with some stuff on the plane tomorrow 22:24:08 so cvs-able is good 22:24:42 let me know how it goes... reports have been really good lately 22:24:53 cradek: total silence? 22:25:01 ok. I may have to download an ubuntu ISO - I may have only the AMD64 version 22:25:17 SWPadnos: bittorent better 22:25:17 alex_joni: the people with problems said my last kernel fixed them, other than that, not much 22:25:28 cradek: coo 22:25:42 ok, commiting soon, then I need to crash 22:26:22 cradek: can you take over if it's still not 100% ? 22:26:48 umm 22:26:50 I can try 22:27:03 but I'm not exactly sure what you're doing 22:28:27 fixing rtapi.conf 22:28:48 ok 22:29:07 another commit on the Submakefile, and I'm done 22:30:04 ask if you have any questions 22:30:11 I tried to comment as much as possible 22:30:19 in Makefile.inc.in 22:30:22 does it work now? :-) 22:30:47 building for the 10th time now :) 22:32:42 /usr/src/emc2/bin/milltask: error while loading shared libraries: librs274.so: cannot open shared object file: No such file or directory 22:32:46 _shm.c 238: shmget(1001(0x3E9),8192,0) failed: (errno = 2): No such file or directory 22:32:49 (rip) 22:33:12 /usr/local/bin/emc: line 436: /bin/emc_module_helper: No such file or directory 22:33:32 /usr/local/bin/halcmd: error while loading shared libraries: libnml.so: cannot open shared object file: No such file or directory 22:35:17 why the hell is halcmd trying to access libnml? 22:35:22 ok, fixed the first one 22:35:32 for inifind I think 22:35:34 oh 22:35:52 that's stupid, inifind has nothing whatsoever to do with NML 22:36:14 libnml should be NML, and nothing else 22:36:26 (my 2 cents, I'll shut up now) 22:36:34 ok :) 22:36:40 but I might agree 22:37:57 ok, I'll fix emc.in (I know how), but I'm clueless on libnml.so 22:38:15 did it get put in /usr/local/lib? 22:38:35 hang on 22:39:04 fscking cvs again 22:40:53 yes, it's there 22:42:25 cradek: can you look what's wrong with the libnml.so ? 22:42:32 looking 22:42:52 try running ldconfig /usr/local/lib 22:43:10 lol, cvs ate my ${prefix} and ${exec_prefix} from teh commit message 22:43:56 did you type the message on the commandline? 22:44:00 or use an editor? 22:44:04 works now 22:44:09 ok 22:44:20 that fixes the libnml problem? 22:44:23 although tkemc is not executable 22:44:25 yes 22:44:48 I'll fix both 22:45:06 I know the later 22:45:09 but I'll let you 22:45:41 * alex_joni goes to bed 22:45:59 goodnight 22:46:03 night all 22:46:04 see you after the trip 22:46:41 rip emc barfs on pickconfig 22:46:48 because we have the same dir twice 22:47:18 ok, I'm really gone.. catch you guys later 22:47:20 bye 22:47:28 bye 22:48:06 jmkasunich: this means it's up to us... 22:49:33 cradek, can you listen to a short feature request for axis? 22:49:33 hmm, this means it's up to me 22:49:36 heh 22:49:47 hmm, this means it's up to me and SWPadnos 22:49:55 urk - I'm packing for a trip ;) 22:50:01 what feature? 22:50:24 put a draggable splitter between the G-code listing and the plot/control areas 22:50:39 so I can resize the listing 22:50:45 we had that in 1.2 but it was buggy so we took it out 22:50:57 ok - well, I'd prefer it withoug the bugs 22:51:00 without 22:51:04 unfortunately it seems the tk widget that does that is flaky 22:51:13 ok 22:51:16 but fwiw we both want that feature too 22:51:19 bummer 22:51:22 ok 22:51:32 maybe we'll work on it again sometime 22:51:50 well - I can help a little bit (on pickconfig). I'm waiting for a download and a video capture to complete 22:51:56 or whatever needs work now 22:53:13 incidentally, I read an interesting thread regarding the use of .cvsignore file (for BSD, I think) 22:53:44 they don't allow them, because make clean is supposed to return the tree to the pristine state, as though it was just untarred 22:54:04 .cvsignore hides it when that doesn't happen 23:04:25 ok I think it's working right now 23:04:35 well - glad I could help ;) 23:05:11 it's amazing how th ehoney-do list grows when you're about to leave town 23:11:39 ok - so I have a problem running this on BDI 4.2(something) 23:11:54 rip or installed? 23:11:58 rip 23:12:09 what problem? 23:12:24 one sec - gotta copy by hand ;) 23:13:26 /Project/emc2/bin/io: relocation error: /Project/emc2/bin/io: undefined symbol: _ZN7InifileC1EV 23:13:37 that C1EV may be ClEV (ell vs one) 23:13:46 wtf 23:13:57 did you make clean and rebuild everything? 23:14:01 this may have to do with jmk's comments about nml and inifile being separate entities 23:14:08 it's a clean checkout 23:14:21 is there an error above this one? 23:14:24 ./configure --enable-run-in-place / make 23:14:30 no 23:14:34 not at run time 23:14:40 I can make clean / make if you like 23:15:18 the checkout is newer than 14 mins? I just fixed some of this 23:15:19 I may need to update though, I checked out 25 minutes ago ;) 23:15:23 ok 23:15:38 and make sure you do a developer checkout 23:15:46 yep, always do 23:15:55 do I need to re-configure? 23:16:00 can't hurt 23:16:23 ok, so ./configure / make clean / make (or is there a "more efficient" way?) 23:16:29 no that's it 23:16:32 ok 23:16:35 don't forget --enable-run-in-place 23:16:40 then you need sudo make setuid at the end 23:16:42 oops 23:17:11 good thing the laptop is significantly faster than my real emc machine 23:27:55 ok - that worked 23:28:19 great 23:28:47 thanks, once I install axis, I'll be all set 23:28:57 who knows what I can do on a 5 hour flight 23:29:08 (who knows what I should do on a 5 hour flight?) 23:29:10 wish you had more battery, probably 23:29:51 may be ;) 23:30:01 I just might end up with a power jack though 23:30:35 I actually get close to 4 hours with my big old laptop (with the 1400x1050 15" screen) 23:47:25 wow - there's got to be something that changed in stepgen or emc2 in general 23:47:45 the slowdown with BASE_PERIOD=50 uS is amazing 23:48:12 on the phone, but we should talk about that 23:48:28 ok - I'll be out for a bit, but I'll let you when I'm back 23:51:26 I need to eat too 23:51:39 yep - going to get take-out ;) (haven't left yet)