**** BEGIN LOGGING AT Tue Nov 08 02:59:57 2011 Nov 08 04:29:05 build #99 of cobalt is complete: Success [build successful] Build details are at http://buildbot.openwrt.org:8010/builders/cobalt/builds/99 Nov 08 05:13:22 can any help in solving this error : Nov 08 05:13:24 libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr': Nov 08 05:13:25 _fpmaxtostr.c:(.text+0xc4): undefined reference to `__nedf2' Nov 08 05:13:27 _fpmaxtostr.c:(.text+0xe8): undefined reference to `__eqdf2' Nov 08 05:13:56 this error comes while compiling backfire using gcc4.4.3 and uclibc 0.9.30.1 Nov 08 05:14:32 jow_laptop: can you help in fixing this error ? Nov 08 06:17:16 can any help in solving this error : libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr': Nov 08 06:29:40 build #77 of etrax is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/etrax/builds/77 Nov 08 07:01:43 Any one has compiled backfire for ARM-AT91-RM9200 ?? Nov 08 08:12:39 build #73 of gemini is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/gemini/builds/73 Nov 08 08:45:22 Any one has compiled backfire for ARM-AT91-RM9200 ?? or can contribute something for its compilation? Nov 08 08:58:06 linuxpc1: you can try asking at the mailing list Nov 08 09:00:56 already posted by some one but it has no replies Nov 08 09:07:48 linuxpc1: then you should stop spaming on irc every 30 minutes Nov 08 09:10:50 luka12345|wiik: Thanks for yr support :/ Nov 08 10:13:00 nbd * r28854 /trunk/package/netifd/Makefile: netifd: fix compile error when both libnl and libnl-tiny are built Nov 08 11:45:00 nbd * r28855 /branches/backfire/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c: ar71xx: enable the ar7240 switch driver on the ubnt nanostation m (fixes #10373) Nov 08 12:43:51 build #75 of ep93xx is complete: Success [build successful] Build details are at http://buildbot.openwrt.org:8010/builders/ep93xx/builds/75 Nov 08 13:35:23 . Nov 08 13:36:51 {Nico}: W.r.t feeds/packages/net/subversion, I did a 'make dirclean; make' and it still segfaults on my Seagate DockStar. You said that your build works. Can you try to rebuild it from scratch (after a 'make dirclean')? Nov 08 13:38:32 <{Nico}> mazilo: do you have the latest packages/neon changes? Nov 08 13:39:43 {Nico}: I am not aware of Neo. However, I believe when I did a 'svn up; make package/symlinks', the Neon package should get updated to the latest. Nov 08 13:40:56 <{Nico}> mazilo: are you using trunk or backfire? Nov 08 13:40:57 {Nico}: The feeds/packages/libs/neon/Makefile I have shows "PKG_VERSION:=0.29.6" and "PKG_RELEASE:=2". Nov 08 13:41:05 {Nico}: Trunk. Nov 08 13:43:07 <{Nico}> mazilo: are you sure apr, apr-utils, neon & subversion are all at latest rev? Nov 08 13:44:12 {Neon}: I am not sure. But, like I said before, I did a 'svn up; make package/symlinks' and all the packages should be updated to the latest, right? Nov 08 13:45:25 <{Nico}> mazilo: did you 'svn up' your packages feed as well? Nov 08 13:46:00 <{Nico}> mazilo: and check that you don't have local modifications there with 'svn status' Nov 08 13:46:44 {Nico}: If you take a look at OpenWRT main Makefile, 'make package/symlinks' does it. Nov 08 13:49:06 {Nico}: When I do a 'svn status', what should I look for, i.e. apr, apr-utils, neon, uhttpd? Nov 08 13:49:42 {Nico}: And, I don't see any of apr, apr-utils, neon, uhttpd from the output of 'svn status'. Nov 08 13:50:52 {Nico}: I don't suppose adding "src-git qi git://projects.qi-hardware.com/openwrt-packages.git" to my feeds.conf.default file will cause subversions segfaults, right? Nov 08 13:50:54 <{Nico}> mazilo: svn status feeds/packages/ Nov 08 13:51:59 {Nico}: I did a 'svn status feeds/packages' and no outputs from apr, apr-utils, neon, and subversion packages. Nov 08 13:53:45 <{Nico}> mazilo: is you qi feed before your regular packages feed? Nov 08 13:54:17 {Nico}: No. It is the 2nd last. The last entry is my local feeds. Nov 08 13:58:02 <{Nico}> mazilo: can you get a core dump? Nov 08 13:58:34 {NIco}: How? I can use 'strace' to execute it. Nov 08 13:59:03 build #72 of rdc is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/rdc/builds/72 Nov 08 13:59:33 <{Nico}> mazilo: ok, pastebin an strace then Nov 08 14:01:07 nico * r28856 /trunk/include/kernel.mk: include/kernel.mk: enhance built-in/missing modules detection when packaging kmods Nov 08 14:02:41 {Nico}: Holly cow! After all we talks, now the svn on my DockStar (from last night build r28851) is working! Sorry for all the troubles. Nov 08 14:04:40 <{Nico}> mazilo: no worry, that's why i was inquisitive, knowing you have been fighting with different revs and settings Nov 08 14:04:58 {Nico}: Thanks. Nov 08 14:15:00 nico * r28857 /trunk/package/base-files/ (4 files in 3 dirs): package/base-files: move /etc/functions.sh to /lib/functions.sh Nov 08 14:23:30 jow * r28858 /trunk/package/hostapd/files/wpa_supplicant.sh: [package] hostapd: add code to prevent accidentally bridging non-wds sta mode interfaces Nov 08 14:24:32 jow * r28859 /branches/backfire/package/hostapd/files/wpa_supplicant.sh: [backfire] hostapd: merge r28858 Nov 08 14:43:29 jow * r28860 /trunk/package/base-files/ (Makefile files/sbin/wifi): [package] base-files: properly handle wifi ifaces with no network attached, useful for unmanaged interfaces like used for batman or monitoring Nov 08 14:44:25 jow * r28861 /branches/backfire/package/base-files/ (Makefile files/sbin/wifi): [backfire] base-files: merge r28860 Nov 08 17:31:52 build #68 of octeon is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/octeon/builds/68 Nov 08 18:49:11 jow * r28862 /trunk/package/base-files/ (Makefile files/lib/upgrade/common.sh): [package] base-files: do not assume that "top" is busybox' top, but try to call the applet explicitely Nov 08 19:15:27 jow * r28863 /trunk/package/base-files/files/lib/upgrade/common.sh: [package] base-files: do not kill udhcpc on sysupgrade, it will tear down the interface if terminated Nov 08 19:20:52 build #110 of brcm63xx is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/brcm63xx/builds/110 Nov 08 19:36:47 nbd: ping Nov 08 19:41:23 anyone can help with libubus? Nov 08 19:55:19 * luka12345|wiik finds out that he does not need libubus, he looks at libubox Nov 08 21:48:59 luka12345|wiik: still need any help? Nov 08 21:49:22 nbd: yes Nov 08 21:49:29 i got so lost :( Nov 08 21:50:14 so i'm writing tr069 client, i used ucimap till now Nov 08 21:50:29 btw, i got the client working Nov 08 21:50:49 now i'm trying to rewrite config handling to be like in netifd Nov 08 21:51:06 o Nov 08 21:51:06 ok Nov 08 21:51:53 is there any other example except netifd? Nov 08 21:52:03 no Nov 08 21:52:20 netifd was my first attempt at handling config stuff in a different way Nov 08 21:52:28 i still haven't moved the config conversion code into a library Nov 08 21:52:58 config conversion, you mean like all? Nov 08 21:53:06 i mean the part that converts uci to blobmsg Nov 08 21:53:16 and the code bits that handle various reload aspects Nov 08 21:53:18 e.g. the vlist Nov 08 21:54:02 hmmm, i will need to look some more at the code until i can ask something Nov 08 21:54:16 i can give you a general overview of the different parts if you like Nov 08 21:54:30 just a sec Nov 08 21:54:32 http://nbd.name/gitweb.cgi?p=luci2/netifd.git;a=blob;f=config.c;h=5a2e439b9294381a38ad6a7f6579ba26eb7bb433;hb=HEAD Nov 08 21:54:40 line 340 Nov 08 21:55:03 shouldn't this be config and not network? Nov 08 21:55:11 no Nov 08 21:55:14 the config file is /etc/config/network Nov 08 21:55:19 uci_load loads a specific package Nov 08 21:55:25 which in this case is "network" Nov 08 21:57:33 but on line 384 you call that function with the string "network" Nov 08 21:57:48 oh, now i see what you mean Nov 08 21:57:53 yeah Nov 08 21:58:05 minor detail, right now only one config file is used anyway Nov 08 21:58:14 ah, ok Nov 08 21:58:46 could you give me general tour of how stuff works in new uci and blob stuff Nov 08 21:59:13 so when i read the code it makes a bit more sence :) Nov 08 21:59:41 to understand it you first have to understand the blobmsg stuff Nov 08 22:00:01 it's basically a json-like format packaged as binary data that's easy to parse and generate Nov 08 22:00:27 any chunk of data, regardless of how deep it nests, is basically just one contiguous chunk of memory Nov 08 22:01:19 to be able to properly keep snapshots of the config state and to make parsing easier, i use that as an intermediate format for representing uci data Nov 08 22:01:29 sometimes with a few modifications or additions added by config.c Nov 08 22:01:35 (for legacy compatibility) Nov 08 22:02:02 for the conversion i have the uci_to_blob() function, which takes an attribute list (necessary to derive the type of the attributes), the uci section, and the buffer to append the data to Nov 08 22:02:16 this is part of the code that i'm going to move to a separate library Nov 08 22:02:21 because it's quite generic Nov 08 22:02:47 so when handling interface configuration, the general flow is like this: Nov 08 22:03:00 the vlist manages a list of interfaces with no duplicates (based on the interface name) Nov 08 22:03:19 vlist? Nov 08 22:03:23 on every load or reload it increments the version of that list and creates interfaces from every single section that it finds Nov 08 22:03:34 yeah, it's a wrapper around the avl data structure Nov 08 22:03:41 which has a callback that handles insert, delete or update Nov 08 22:03:53 and versions its elements Nov 08 22:04:13 so whenever you change the list, you increment the version, push in all new elements, then flush it Nov 08 22:04:26 flushing it removes all old entries from the list that were not updated Nov 08 22:04:37 that is in ram, not in file system right? Nov 08 22:04:43 it's just a data structure in ram Nov 08 22:04:48 ok Nov 08 22:05:06 it's useful for running the initial config load and any subsequent config reload through the same codepath Nov 08 22:05:10 to make config reload less of a special case Nov 08 22:05:47 to be able to handle that, the callback provided to the vlist needs to be able to handle the update properly, which means it gets the old interface structure, and the new one in the same call Nov 08 22:05:59 and ensures that the state gets updated Nov 08 22:11:31 does that make sense to you? Nov 08 22:11:38 or still confused? Nov 08 22:12:30 still confused Nov 08 22:12:48 ok, but do you understand what the vlist is for? Nov 08 22:13:16 not right now, but i will get it later Nov 08 22:13:35 just like when you explained to me stuff few days ago Nov 08 22:13:35 maybe it helps if i give you a more specific example Nov 08 22:13:44 so suppose you have one interface "lan" in the config Nov 08 22:13:49 on the initial load, the vlist is empty Nov 08 22:13:54 so it finds the lan section Nov 08 22:13:59 creates a struct interface from it Nov 08 22:14:02 adds it to the vlist Nov 08 22:14:08 callback is called with only a new element and not an old one Nov 08 22:14:11 because it's a regular insert Nov 08 22:14:15 so now we do a config reload Nov 08 22:14:29 it finds the "lan" section again, creates another struct interface, adds it to the vlist Nov 08 22:14:35 vlist code finds the existing section Nov 08 22:14:45 and runs the callback and provides both the existing section and the new one Nov 08 22:14:54 moo Nov 08 22:14:57 so the callback then has to either remove the old one and use the new one Nov 08 22:15:06 or transfer the config from the new one to the old one Nov 08 22:15:15 so it can compare the config state between the two Nov 08 22:15:19 aha, now i see Nov 08 22:15:36 makes more sence now Nov 08 22:15:47 and if i then empty the config and issue a reload, the flush will find that the "lan" interface wasn't updated and run the callback for deleting it Nov 08 22:16:57 can you explain how do i map specific config sections, for example file interface-ip.c lines 27-35 Nov 08 22:17:39 what do you mean with "map"? Nov 08 22:17:46 i put all my config definitions in config.h, why is it better to put it in separate file Nov 08 22:18:15 so this is a list of all the attributes that it accepts for a route Nov 08 22:18:26 only that source file needs the details Nov 08 22:18:42 this attribute list is used in two ways Nov 08 22:18:53 one way is for uci_to_blob to convert uci to the json-like blobmsg format Nov 08 22:19:03 that doesn't work without such a list, because blobmsg has more type information than uic Nov 08 22:19:07 uci Nov 08 22:19:41 the other way it's used is to process a blob of config data and get pointers to all relevant attributes Nov 08 22:19:57 that's why there's an enum in addition to the route_attr array Nov 08 22:20:15 you can make an on-stack array of blobmsg attribute pointers with the size of __ROUTE_MAX Nov 08 22:20:21 and then access the individual attributes through the enum Nov 08 22:20:28 instead of making a loop iterating over all existing attributes Nov 08 22:22:44 do i need just libubox and uci to run it on my host pc? Nov 08 22:23:03 netifd also needs ubus Nov 08 22:23:24 but for the whole config stuff only libubox and uci are necessary Nov 08 22:23:38 ok Nov 08 22:24:14 i also saw function uloop_run in main.c Nov 08 22:24:26 yeah, uloop is part of libubox Nov 08 22:24:46 just a generic event loop Nov 08 22:24:50 is it something like g_main_loop_new in glib Nov 08 22:25:03 to make it easy to do timers, processes, socket callbacks, etc. Nov 08 22:25:12 it allows you to make your program event driven Nov 08 22:25:49 is there a function to call some function every x seconds Nov 08 22:26:02 you can just make a timer and re-arm the timer in the callback Nov 08 22:26:10 struct uloop_timeout Nov 08 22:26:34 you can add as many timeouts, sockets or processes as you like Nov 08 22:26:43 just make sure that nothing in your program blocks Nov 08 22:26:51 blocks? Nov 08 22:26:58 yeah, like blocking read from a socket Nov 08 22:27:12 uloop assumes that you're using non-blocking i/o Nov 08 22:27:19 it doesn't use signals or threads for timers Nov 08 22:27:41 aha Nov 08 22:27:59 you did nice job with this stuff Nov 08 22:28:10 On the Alix 6F2 there's a GPIO line that drives the RFKILL input on the miniPCI-e (well, USB really) slot. what's the normal OS abstraction for handling that? I know there's an RFKILL input for the switch, but what about as an output? Fake it as an LED? Nov 08 22:28:12 thanks Nov 08 22:28:33 i've been thinking a lot on how to solve the things that i kept rewriting over and over again for different programs Nov 08 22:28:54 without introducing complex layers of abstractions or excessive bloat Nov 08 22:29:45 next thing on my list is a layer around uloop to take care of buffering for non-blocking stream i/o Nov 08 22:30:31 that's another thing that i had to write too many times for different programs Nov 08 22:31:03 i dont even know why would i need that functionality... Nov 08 22:32:14 since i'm bugging you can you explain is it possible to "hook" on some network event Nov 08 22:32:22 for example interace gets ip Nov 08 22:32:46 owsip starts to connect ... Nov 08 22:34:11 you could monitor rtnetlink events Nov 08 22:34:18 i don't have all the details on that though Nov 08 22:34:28 netifd has some examples that you can use Nov 08 22:34:37 but you may need to register to different rtnl groups Nov 08 22:34:44 rtnetlink? Nov 08 22:34:48 http://nbd.name/gitweb.cgi?p=luci2/netifd.git;a=blob;f=DESIGN;h=4d58bcff5f8b67eef0b3cd253ccec4b08180e071;hb=HEAD Nov 08 22:34:48 though you can reuse the event based trigger Nov 08 22:34:59 rtnetlink is the linux kernel api for interacting with the network stack Nov 08 22:35:16 or in your case it would probably be better to abstract this Nov 08 22:35:23 and listen for ubus events or signals instead Nov 08 22:35:29 so that it doesn't have to look at the low level stuff Nov 08 22:35:49 any example for this in netifd? Nov 08 22:36:10 i would need this for two things: owsip & freecwmp Nov 08 22:39:52 i'm not sure it's a good idea to put low level interface details into those Nov 08 22:40:13 why do you want to hook on the network events directly? Nov 08 22:41:13 well, router boots and starts owsip; owsip starts to connect to sip server Nov 08 22:41:48 i'm afraid it will timeout or something before interface comes up Nov 08 22:42:31 so i thought that it might be good to make it event driven Nov 08 22:42:45 or am i wrong? Nov 08 22:43:28 i mean i could check manually if there is ip on interface Nov 08 22:43:57 but for example if i unplug dsl cable, there is no connectivity anymore Nov 08 22:44:22 leds will still keep blinking like everything is ok Nov 08 22:44:29 it can simply keep on trying to connect Nov 08 22:44:38 i think trying to figure out if an interface is there or not is the wrong approach Nov 08 22:47:01 ok, it makes stuff more simple if i dont check those things Nov 08 22:48:07 nbd: thanks for the chat, i'm going to try make it work now Nov 08 22:48:14 nico * r28864 /trunk/package/base-files/files/ (etc/rc.common lib/functions.sh): package/base-files: move service* functions from /etc/rc.common to /lib/functions.sh Nov 08 22:48:21 you're welcome. let me know how it goes Nov 08 22:48:22 nico * r28865 /trunk/package/base-files/ (Makefile files/lib/functions.sh): Nov 08 22:48:22 package/base-files: enhance & cleanup service wrappers Nov 08 22:48:22 * add service_check function for checking if a process is alive Nov 08 22:48:22 * add service_signal for sending arbitrary signals to a process Nov 08 22:48:23 * change service_stop to send a TERM signal first, wait for the process to die and send a KILL signal if it doen't Nov 08 22:48:23 * have service_kill print a warning on STDERR stating it has been deprecated Nov 08 22:48:27 nico * r28866 /trunk/package/base-files-network/ (Makefile files/lib/network/config.sh): package/base-files-network: use new service wrappers Nov 08 22:48:33 nico * r28867 /trunk/package/linux-atm/ (Makefile files/br2684ctl): package/linux-atm: use new service wrappers Nov 08 22:48:37 i will Nov 08 22:48:38 nico * r28868 /trunk/package/ppp/ (Makefile files/ppp.sh): package/ppp: use new service wrappers Nov 08 22:48:44 nico * r28869 /trunk/package/relayd/files/relay.sh: package/relayd: use new service wrappers Nov 08 22:53:21 make sure you read up on the details about non-blocking i/o Nov 08 22:53:25 it can be a bit tricky at first Nov 08 23:19:00 build #97 of ps3 is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/ps3/builds/97 Nov 08 23:35:47 nico * r28870 /trunk/package/base-files/files/lib/functions.sh: package/base-files: /lib/functions.sh: let service_stop exit early if no matching process to stop where found Nov 08 23:47:31 build #100 of lantiq is complete: Failure [failed compile_6] Build details are at http://buildbot.openwrt.org:8010/builders/lantiq/builds/100 Nov 09 00:24:32 nico * r28871 /trunk/package/base-files/files/lib/functions.sh: package/base-files: /lib/functions.sh: add {group,user}_{add,exists} functions Nov 09 02:59:46 jow * r28872 /packages/utils/usb-modeswitch/ (Makefile files/modeswitch.hotplug): Nov 09 02:59:46 usb-modeswitch: Fix a condition to compare default product id and switched product id on startup. Nov 09 02:59:46 These default product id and switched product id are hex string variables, so this comparison operator should be '='. Nov 09 02:59:46 Signed-off-by: Kentaro Matsuyama **** ENDING LOGGING AT Wed Nov 09 02:59:57 2011