Timestamps are in GMT/BST.
| 00:04:36 | raptor | Watusimoto: i think i like the music - should replace the old one? (game.ogg) |
| 00:04:48 | Watusimoto | yes |
| 00:05:15 | Watusimoto | but not sure how to remove that file during install |
| 00:05:50 | raptor | i can probably figure that out... ugh, i forgot about update directives and how tedious they are.. |
| 00:17:26 | | koda Quit (Quit: you can't say 'hello' without saying 'hell') |
| 00:22:25 | raptor | huh, maybe that song isn't as quiet as i thought... maybe i just had office noise around at the time |
| 00:40:59 | raptor | man, some of these linux rootkits are clever... i think i would enjoy coming up with some of it.. |
| 00:41:15 | raptor | too bad i probably could be legally paid for it |
| 00:41:20 | raptor | *couldn't |
| 00:54:05 | raptor | finished a second round of listening to the music |
| 01:06:14 | sam686 | Just came back.. problem with ssh bitfighter server or what? |
| 01:07:15 | raptor | hi sam686 |
| 01:07:32 | raptor | yeah master server had 1 or more rootkits installed |
| 01:07:35 | sam686 | Forgot I left my ssh up, but my ssh only shows: Login as: sam686@bitfighter.org's password: Last login: Thu Oct 25 06:39:52 2012 from host-190-22-107-208.midco.net [sam686@bitfighter ~]$ _ (I probably think my computer did nothing) |
| 01:07:42 | raptor | ok |
| 01:07:49 | raptor | i had killed the session anyways... |
| 01:08:04 | raptor | i still don't know what the attack vector on the server was |
| 01:08:20 | sam686 | which user was rootkit running in as? |
| 01:08:32 | raptor | something got in (not via ssh) on Oct 16, and got root access somehow |
| 01:08:49 | raptor | and they changed the iptables rules and ssh config to allow anyone to ssh in |
| 01:09:06 | sam686 | maybe HTTP? (check apache log) |
| 01:09:47 | raptor | I think it was http (maybe with php) |
| 01:10:04 | raptor | then they probably exploited a kernel bug to get root access |
| 01:10:38 | raptor | i think i finally cleaned it all up by this morning |
| 01:11:12 | sam686 | or maybe a HTTP -> PHP -> MYSQL hack? (mysql runs as ROOT user, but PHP usually runs as "Apache" user) |
| 01:11:16 | raptor | they scraped any password found in php files, so database access passwords were gotten from phpbb, etc |
| 01:11:30 | raptor | sam686: that may be... does mysql really run as root?? |
| 01:11:54 | sam686 | actually not sure, but probably is run at Root.. |
| 01:12:49 | raptor | i sent you your ssh password in a private query window, please change it fast |
| 01:13:42 | sam686 | ok, password worked.. |
| 01:13:45 | | Watusimoto Quit (Ping timeout: 264 seconds) |
| 01:14:06 | raptor | looks like mysqld is running as user 'mysql', but musqld_safe runs as root |
| 01:14:12 | raptor | *mysqld_safe |
| 01:15:19 | raptor | did you get my message in the terminal? |
| 01:16:05 | sam686 | yes, but I often do a "Sudo su root" or "sudo su master" from my user instead of using those passwords.. |
| 01:16:49 | raptor | oh yeah... i forgot about that |
| 01:16:55 | raptor | ok, good |
| 01:18:02 | sam686 | also, even before I log in, got a ssh warning about its ssh keys got changed.. |
| 01:18:11 | raptor | yes, i regenerated teh host keys |
| 01:18:25 | raptor | they installed their own ssh server |
| 01:18:57 | raptor | ok, i'm heading home. i'll be back on later |
| 01:19:01 | sam686 | ok.. |
| 01:20:36 | | raptor Quit () |
| 01:21:39 | sam686 | maybe your iptables never worked in the first place, i think (or it was entered as "ROOT" username instead of "root" to bypass iptables, i think) |
| 01:40:59 | amgine1234567890 | hmm |
| 01:51:05 | | raptor has joined |
| 01:51:05 | | ChanServ sets mode +o raptor |
| 01:52:57 | raptor | i disallowed root logins with ssh |
| 01:53:07 | raptor | and everythign is case-sensitive |
| 02:16:01 | sam686 | the HTTPD log file is mostly filled with "GET /bitfighterStatus.json" |
| 02:20:21 | raptor | look for POST data |
| 02:20:26 | raptor | or PUT |
| 02:22:19 | raptor | look fro something on oct 16 |
| 02:24:07 | sam686 | there is 1512 "POST " which is mostly forum from regular users posting in a topic.. |
| 02:27:13 | raptor | do you use opera? |
| 02:27:40 | sam686 | there is no "PUT " but this like is unusual, [14/Nov/2012:03:29:32 +0300] "POST /comment/reply/50 HTTP/1.1" 302 - "/comment/reply/50#comment-form" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)" (probably other bots tried to hack but failed) |
| 02:28:06 | sam686 | I use Chrome, but there is similar, nearly the same chromium in linux |
| 02:28:33 | sam686 | has a search (ctrl+f) showing how many it finds.. I use it finding a .txt file |
| 02:28:45 | raptor | because on 16 oct, there is an opera user posting to the control panel |
| 02:30:07 | raptor | take a look at /var/log/httpd/temp.txt (i just created it) |
| 02:30:14 | raptor | everything but GET |
| 02:30:17 | sam686 | if its just a forum posting control panel, theres nothing unusual about it, i find some others like that.. |
| 02:30:38 | sam686 | its users changing / submitting data on control panel about their own user settings. |
| 02:30:50 | sam686 | which does a "POST" too |
| 02:32:17 | sam686 | don't go back way too far over to October either.., unless we can't find nothing recent on logs.. |
| 02:32:49 | raptor | i know that one exploit that scanned all of our php files for passwords took place on the 16th of October |
| 02:34:29 | sam686 | is there any hint the password happen to be correct? (as in it starts submitting other data) |
| 02:36:03 | raptor | this is the archive of data i got from the password scan: http://sam6.25u.com/upload/named.hacked.do_not_run_only_open.tar.gz |
| 02:36:16 | raptor | DO NOT RUN ANY OF THE SCRIPTS INSIDE... :) |
| 02:37:56 | sam686 | "POST http://vlad-tepes.bofh.it/freenode-proxy-checker.txt HTTP/1.0" 404 3371 "-" "-"... I remembered back then I put in fake .txt, but until a few days, my apache server (hosted in my computer) starts getting overloaded from random request (mostly ads spam) where those bots thinking my http server was a proxy.. |
| 02:40:23 | sam686 | obviously windows users can't run those scripts in .tar.gz, expecially not with the default install of windows (or even extract them, 7-Zip needed for windows). |
| 02:42:50 | raptor | there are a lot of posts to /comment/reply/... |
| 02:43:11 | raptor | i wonder if drupal was exploited, too.. |
| 02:44:21 | sam686 | http://bitfighter.org/comment/reply/50 ... looks like thats part of drupal.. |
| 02:46:03 | sam686 | oh maybe look at sudo log (i wonder if sudo logs every command when doing "sudo blah_blah_blah" |
| 02:46:39 | raptor | one of the first things done was to turn off syslogd |
| 02:46:49 | raptor | and replace it with a hacked one.. |
| 02:47:00 | raptor | i've been unable to find logging.. |
| 03:14:46 | sam686 | I looked at /var/log/messages (and .1 .2 ...) looking for "Accepted password".., I wonder if it got hacked by logging in (maybe ssh, but not sure) as "master"... |
| 03:17:08 | sam686 | I see 2 times of "Accepted password for master", which is also the same IP address of guessing other username and passwords... |
| 03:17:57 | sam686 | we have a user "master" mostly to run the master server though... maybe we should also block "master" (while keeping "root" blocked) |
| 03:21:34 | sam686 | I can only guess what it went from a password guessing bot logging in as "master" user, it might have hack its way to root somwhow... |
| 03:25:25 | raptor | yes, did you see my e-mail? |
| 03:25:42 | raptor | there was a hack before that that opened up the ssh daemon |
| 03:26:22 | raptor | only you, me, and wat could log in; but after a hack, the ssh config was changed so anyone could - then they got access to master |
| 03:27:25 | sam686 | not sure, maybe our "master" user had a weak password.. |
| 03:27:49 | raptor | it did |
| 03:28:07 | raptor | but the server was already hacked before |
| 03:30:05 | sam686 | how do you know it is hacked before November 3? |
| 03:30:26 | raptor | because on 0ct 16th that password scraper was run |
| 03:30:39 | raptor | and the ssh daemon was restarted several times on that day as well |
| 03:31:20 | raptor | the server was already hacked, that's how the ssh config was changed to allow the master user to log in |
| 03:36:52 | sam686 | maybe we should rename syslogd into something else.. Or maybe we should have some kind of un-delete or recover deleted file system.... |
| 03:37:12 | raptor | i coult make the file immutable.. |
| 03:43:10 | raptor | ok, i made them immutable |
| 03:43:30 | raptor | they cannot be deleted unless the 'immutable' filesystem flag is removed from them |
| 03:56:25 | raptor | oh well, i can't find anything still about how the hack started |
| 04:08:43 | raptor | heading to bed early... |
| 04:09:10 | raptor | good ngiht |
| 04:09:20 | sam686 | night |
| 04:11:17 | | raptor Quit () |
| 04:20:36 | | amgine1234567890 Quit (Quit: Page closed) |
| 06:13:58 | | kodaws has joined |
| 06:20:48 | | kodaws Quit (Ping timeout: 245 seconds) |
| 08:01:05 | | kodaws has joined |
| 08:57:03 | | watusimoto has joined |
| 08:57:03 | | ChanServ sets mode +o watusimoto |
| 09:49:04 | kodaws | hey |
| 09:49:18 | kodaws | there is the possibility of having a few students under the gci program |
| 09:49:32 | kodaws | which is different than gsoc |
| 09:49:47 | kodaws | as it is composed of small tasks rather than a single big project |
| 09:49:58 | kodaws | would you be interested in it? |
| 10:46:49 | watusimoto | hi |
| 10:47:07 | watusimoto | sure, yes, that would be great |
| 10:50:17 | watusimoto | is this it? |
| 10:50:17 | watusimoto | http://code.google.com/opensource/gci/2012/index.html |
| 11:42:18 | | Watusimoto_ has joined |
| 12:48:43 | | Watusimoto_ Quit (Ping timeout: 245 seconds) |
| 14:19:48 | | raptor has joined |
| 14:19:48 | | ChanServ sets mode +o raptor |
| 14:21:24 | raptor | buenos |
| 14:23:23 | watusimoto | hi |
| 14:23:26 | raptor | hi |
| 14:23:58 | watusimoto | why is it that in llinux, the standard symbols font is almost completely devoid of symbols??? |
| 14:24:26 | watusimoto | just food for thought |
| 14:24:27 | raptor | heh |
| 14:24:38 | raptor | you have to install extra fonts... |
| 14:26:42 | raptor | sam686: i just killed your long running ssh session again |
| 14:26:49 | raptor | maybe i should institute a atimeout |
| 14:31:18 | raptor | this is going to be a cold winter.. |
| 14:32:43 | raptor | did i kill the wiki?? |
| 14:32:46 | raptor | argh |
| 14:53:55 | watusimoto | I'm guessing you changed the pw in the database, and wiki can no longer access |
| 14:54:02 | raptor | yeah, fixed it |
| 14:54:07 | raptor | sigh |
| 14:54:20 | watusimoto | I now know none of the pws, so I'm rather helpless :-) |
| 14:54:33 | raptor | i don't know them either |
| 14:54:37 | watusimoto | I forgot to send my keyfile lastnight |
| 14:54:40 | raptor | they're autogenerated |
| 14:54:43 | raptor | oh |
| 14:54:44 | watusimoto | good |
| 14:55:13 | raptor | if you're in a place to log in, i can give you your temporary ssh password |
| 14:55:20 | watusimoto | sure |
| 14:55:30 | watusimoto | username still wat? |
| 14:55:34 | raptor | yes |
| 14:55:42 | watusimoto | whenever |
| 14:55:51 | raptor | awnt via private msg |
| 14:55:55 | raptor | *sent |
| 14:57:21 | watusimoto | sorry -- hope my message went through flood control on the private channel |
| 14:57:33 | raptor | haha |
| 14:57:55 | watusimoto | did it make it? |
| 14:57:56 | raptor | yeah, i regenerated the host keys so you'll have to remove it from your client-side 'known_hosts' file |
| 14:58:07 | watusimoto | ok, no worries then |
| 14:58:24 | raptor | yeah, just runt he command it tells you to, to remove the offending key |
| 14:59:50 | watusimoto | ok, in |
| 15:00:14 | raptor | great. please change the pw |
| 15:00:27 | watusimoto | doing that, all my pws are rejected |
| 15:00:31 | watusimoto | like what the heck |
| 15:00:50 | watusimoto | this wasn't myt pw, but why would oopoopoo be rejected? |
| 15:00:56 | watusimoto | that's a good pass! |
| 15:01:07 | watusimoto | long(ish) |
| 15:01:15 | raptor | hahaha |
| 15:01:16 | watusimoto | not in the dictionary (at least not the ones I know of) |
| 15:01:23 | raptor | you can change to root to change it whatever you want |
| 15:01:27 | watusimoto | BAD PASSWORD: it does not contain enough DIFFERENT characters |
| 15:01:32 | watusimoto | this is a bad rule |
| 15:01:39 | raptor | haha |
| 15:02:07 | watusimoto | like rainbow crackers would check words like oopoopoo before h3ll0? |
| 15:02:41 | watusimoto | BAD PASSWORD: it is based on a dictionary word |
| 15:02:44 | watusimoto | is not! |
| 15:02:55 | raptor | change to root first |
| 15:03:07 | watusimoto | ok, then opoopoo will work! |
| 15:03:09 | raptor | ok, let me sent you a message on the terminal |
| 15:03:15 | raptor | can you change to root? |
| 15:04:16 | watusimoto | got it |
| 15:04:19 | raptor | ok |
| 15:04:23 | watusimoto | am now root |
| 15:04:38 | raptor | then: passwd wat |
| 15:04:46 | watusimoto | waaay ahead of you! |
| 15:04:47 | raptor | and oopoopoo can be yours! |
| 15:04:56 | watusimoto | BAD PASSWORD: it does not contain enough DIFFERENT characters |
| 15:05:02 | raptor | it doesn't matter |
| 15:05:09 | watusimoto | oh shit |
| 15:05:10 | raptor | enter it agasin and it will accept |
| 15:05:24 | raptor | hahahaha |
| 15:05:46 | raptor | i'll... strike that from the logs... |
| 15:05:56 | watusimoto | no matter -- will never use that again |
| 15:05:59 | watusimoto | and never have before |
| 15:07:22 | watusimoto | back to oopoopoo |
| 15:07:47 | watusimoto | ok |
| 15:07:50 | watusimoto | done |
| 15:07:55 | watusimoto | and no warnings this time |
| 15:08:09 | raptor | great |
| 15:08:11 | raptor | thanks |
| 15:08:16 | watusimoto | wow |
| 15:08:23 | watusimoto | I haven;t laughted that hard for a while |
| 15:08:43 | watusimoto | now to relogin to make sure I remember it |
| 15:09:16 | watusimoto | so even after removing the line from my ssh file, I see this warning |
| 15:09:17 | watusimoto | 987654123 |
| 15:09:22 | watusimoto | Warning: the RSA host key for 'bitfighter.org' differs from the key for the IP address '199.192.229.168' |
| 15:09:41 | watusimoto | should I just ignore? |
| 15:09:47 | raptor | yes, remove that key, too |
| 15:09:59 | raptor | it should tell you what line it is one |
| 15:10:14 | raptor | on |
| 15:10:28 | raptor | open the .ssh/known_hosts file and delete that line |
| 15:11:42 | watusimoto | well, except the error is on line 7, and there is only one line in known_hosts |
| 15:12:10 | raptor | not on the remote server |
| 15:12:17 | raptor | on your local box |
| 15:12:21 | watusimoto | duh... just figured that out |
| 15:12:27 | watusimoto | it's been a looooong day |
| 15:12:55 | watusimoto | ok, everything is sort of under control |
| 15:13:05 | raptor | yay |
| 15:13:30 | raptor | and just to double check, that string of numbers you typed above didn't have anything to do with a password, did it? |
| 15:13:38 | watusimoto | no |
| 15:13:43 | raptor | ok good |
| 15:13:46 | watusimoto | not anymore |
| 15:13:53 | raptor | :) |
| 15:14:12 | watusimoto | I'v probbaly dumped 6 or 7 pws into this window over the past year |
| 15:14:23 | watusimoto | my general strategy is to retire them quietly and not draw attention |
| 15:14:46 | raptor | good idea |
| 15:14:52 | raptor | ok, i'm off to work |
| 15:14:59 | watusimoto | ok, thanks for your help |
| 15:15:00 | raptor | back later |
| 15:15:05 | raptor | sure, thank you |
| 15:15:13 | watusimoto | ok, when you get back see kodas question from this morning |
| 15:15:20 | raptor | ok |
| 15:15:23 | watusimoto | ciao |
| 15:15:23 | | raptor Quit () |
| 16:39:33 | | kodaws Quit (Ping timeout: 245 seconds) |
| 17:07:10 | | raptor has joined |
| 17:07:10 | | ChanServ sets mode +o raptor |
| 17:07:16 | | kodaws has joined |
| 17:07:28 | raptor | sooo... google code in? |
| 17:10:22 | raptor | watusimoto: for the php error issue - i had checked those values in the php.ini as well, which is why i am now confused. i do remember that sam686 has made wiki changes in the past, so i wonder if he set something |
| 17:13:37 | | kodaws Quit (Read error: Connection reset by peer) |
| 17:28:49 | | Watusimoto_ has joined |
| 17:53:18 | watusimoto | out of here.... |
| 17:53:24 | watusimoto | on later |
| 17:53:25 | raptor | later |
| 17:57:40 | | watusimoto Quit (Read error: Operation timed out) |
| 18:19:28 | Watusimoto_ | https://code.google.com/p/bitfighter/issues/detail?id=175 |
| 18:19:42 | Watusimoto_ | raptor: I'm leaving again, but this may be the key to fixing your testitem glitch |
| 18:19:47 | raptor | ello |
| 18:20:01 | Watusimoto_ | it would, I think, at least address the glitches I've seen, which I'm hoping are the same as the ones you've seen |
| 18:20:05 | Watusimoto_ | ok, out of here again |
| 18:20:14 | raptor | bye |
| 18:24:42 | | Watusimoto_ Quit (Ping timeout: 260 seconds) |
| 19:46:24 | | LordDVG has joined |
| 20:11:31 | | Watusimoto has joined |
| 20:11:51 | Watusimoto | hi |
| 20:11:56 | raptor | hello |
| 20:12:17 | Watusimoto | what can you tell me about this bug? |
| 20:12:18 | Watusimoto | (Mac) Cursor disappears when pressing <ESC> in a game to access the menus. Possible SDL2 problem? seems to happen when alt-tab away first on 10.6 |
| 20:12:27 | Watusimoto | is this fixable? |
| 20:12:52 | raptor | that it is ok to ignore for release - not that big a problem... |
| 20:12:54 | raptor | but |
| 20:13:00 | raptor | SDL2 problem |
| 20:13:12 | raptor | not sure if i can fix it - i've tried a couple times already |
| 20:13:32 | raptor | i had another stroke of genius regarding it one day.. but forgot to write it down |
| 20:13:45 | raptor | have to think... |
| 20:15:06 | raptor | actually i should test that again to se if it is still an issue.. |
| 20:16:10 | Watusimoto | should I remove it or do you want to do it after your test? |
| 20:16:41 | raptor | well, I'll move it to a defer list after my test |
| 20:17:15 | Watusimoto | ok |
| 20:17:45 | Watusimoto | what about this one? |
| 20:17:49 | Watusimoto | /idle command timer is wholly client-side - open to hack |
| 20:19:25 | raptor | yeah |
| 20:19:45 | Watusimoto | what does that mean? |
| 20:19:48 | raptor | so the idle timer just waits 5 seconds client-side only to allow you to respawn |
| 20:20:20 | Watusimoto | what is the idle timer? the thing that brings up the hit any key screen? |
| 20:20:28 | raptor | so someone with a hacked client could just do /idle command and respawn instantly, no penalty |
| 20:20:44 | raptor | i added the /idle command |
| 20:21:13 | raptor | it spawn delays you without penalty in the game, but requires you to wait 5 seconds before returning to play |
| 20:22:32 | Watusimoto | what's the use case? you are going to walk the dog, so you /idle yourself? |
| 20:22:47 | raptor | yes |
| 20:23:01 | Watusimoto | and does it take effect immediately? or after your next death? |
| 20:23:07 | raptor | immediately |
| 20:23:18 | raptor | there was a discussiona bout it somewhere.. |
| 20:23:32 | Watusimoto | ah, so the abuse potential is that a user can hack their client, and return to game immediately |
| 20:23:37 | raptor | yes |
| 20:23:43 | Watusimoto | I do remember discussing it |
| 20:23:49 | Watusimoto | /afk |
| 20:23:55 | Watusimoto | and all that |
| 20:24:06 | raptor | yes |
| 20:24:09 | raptor | that's it |
| 20:24:28 | Watusimoto | just thinking aloud here, but maybe /idle shoudl kick in after next death? |
| 20:24:45 | Watusimoto | then we could merge it with chatting and other mechanisms, and abuse potential is gone |
| 20:26:32 | raptor | the idea was to not penalize your team in team bitmatch, or help the opponent in normal bitmatch |
| 20:27:12 | Watusimoto | but this was at a time when the only options were to quit or to remain in game to be killed 100x |
| 20:27:45 | Watusimoto | remain and be killed isn;t even an option any more |
| 20:28:29 | raptor | well, it was added in 018, after teh spawn-delay stuff in 017 |
| 20:30:18 | Watusimoto | I thought spawn-delay was new to 018. ok, well I see 3 options for clearing the bug. 1) reimplemetn the delay server-side; 2) remove the feature as possibly redundant; or 3) ignore |
| 20:31:25 | raptor | i'd go with ignore for now, but we should probably rediscuss this - i don't remember everything about why it was ultimately added |
| 20:32:13 | Watusimoto | my recollection is that it was added as a way for players to remove themselves from the action (for dog walking) without quitting the game. |
| 20:32:47 | Watusimoto | if we were discussing it now, I'd say the feature is totally redundant. That I didn't say that before suggests that the things that make it redundant were not yet in the game |
| 20:33:15 | raptor | well, it was done since 017b.. |
| 20:33:20 | Watusimoto | because now, you'd just enter a chat screen, or hit esc to be afk |
| 20:33:38 | raptor | ah yes - we added that, too since |
| 20:33:44 | raptor | maybe that is enough, then |
| 20:33:50 | Watusimoto | or hell, just walk away, suffer one or two kills, and be safe for aslong as you wanted (being spawn-delayed and all) |
| 20:34:22 | raptor | i think some people were complaining that they didn't want *any* penalty |
| 20:37:21 | raptor | mac bug still there - let me try and update SDL to see if it has gone |
| 20:46:15 | Watusimoto | ok, maybe I'm just in a ornery mood, but I am now opposed to this feature. I know I supported it in the past. However, it looks relatively easy to make the timer work on the server. |
| 20:46:35 | Watusimoto | so maybe I'll dislike it less if I have more investment in it |
| 20:47:21 | raptor | i'm ok with whatever you decide |
| 20:47:35 | raptor | i'm working on the mac issue.. |
| 21:02:44 | raptor | argh xcode |
| 21:02:57 | raptor | it's so crazy aggressive with redoing all of your indentation |
| 21:06:50 | Watusimoto | so are you in favor of the music selections? |
| 21:06:54 | raptor | yes |
| 21:07:06 | raptor | good choices from that artist |
| 21:07:18 | raptor | and the style consistency is good |
| 21:07:30 | raptor | although i'm already getting sick of 'dreams'* |
| 21:07:35 | raptor | :) |
| 21:09:00 | Watusimoto | sam686: have you listened to any of the music? |
| 21:09:32 | Watusimoto | sick of it because you don't like it, or you;ve overplayed it? |
| 21:09:39 | raptor | overplayed |
| 21:09:46 | raptor | because those were some early picks |
| 21:09:50 | Watusimoto | yes |
| 21:10:02 | Watusimoto | I think I included 2 of the 3 early picks |
| 21:10:12 | Watusimoto | it's catchy! |
| 21:10:25 | Watusimoto | which one had the volume issue? |
| 21:10:40 | raptor | adk |
| 21:10:59 | raptor | but i listened to it again, and maybe it was just the office noise at the time that made me think it was too soft |
| 21:19:20 | raptor | found a workaround to the mac bug |
| 21:19:27 | raptor | posting on the sdl bugzilla.. |
| 21:21:42 | Watusimoto | ah.... did tsec-hot play for you? |
| 21:21:47 | Watusimoto | or faraway? |
| 21:21:50 | raptor | yes |
| 21:21:53 | raptor | all of them did |
| 21:22:09 | raptor | wait |
| 21:22:14 | raptor | i didn't test them all in-game |
| 21:22:22 | Watusimoto | tsec-hot isn't playing in vlc nor will it load into my xm editor, and faraway seems to be missing half the voices |
| 21:22:23 | Watusimoto | odd |
| 21:22:27 | Watusimoto | let me try foobar |
| 21:22:35 | raptor | qmmp plays them nicely |
| 21:23:12 | Watusimoto | foobar won't play xm files |
| 21:27:59 | | LordDVG Quit (Remote host closed the connection) |
| 21:30:32 | Watusimoto | there's at least one file bf won't play |
| 21:32:08 | Watusimoto | ah, it tries to play music.txt |
| 21:32:16 | Watusimoto | rather credits.txt |
| 21:32:19 | raptor | haha |
| 21:32:40 | Watusimoto | that pretty much kills the music system |
| 21:33:04 | raptor | really? it shouldn't |
| 21:34:23 | raptor | haha, it tries to complay my compressed file in the directory, too |
| 21:34:46 | raptor | it loads it as a .mod because that is the fallback (and it doesn't have defined file headers) |
| 21:35:49 | raptor | haha, bitfighter is a better player than vlc! |
| 21:39:30 | | BFLogBot Commit: ee94b8eb352a | Author: buckyballreaction | Message: Workaround for SDL2 issue with losing mouse cursor in-game if you CMD+TAB to another application |
| 21:39:31 | raptor | fixed mac bug |
| 21:44:27 | raptor | our list is getting small! |
| 21:48:35 | Watusimoto | yes |
| 21:48:38 | Watusimoto | oh, great |
| 21:48:41 | Watusimoto | good fix |
| 21:48:47 | raptor | such a hack |
| 21:48:53 | Watusimoto | do you have a list of music types that we can play? |
| 21:49:03 | Watusimoto | ogg, xm, ... |
| 21:49:15 | raptor | so |
| 21:49:52 | raptor | the thing to understand is: the ALURE library that I used to play files has a bunch of codecs |
| 21:50:27 | raptor | it will analyze a file (independent of the extension) and see if it matches a given codec, then it attempts to play it |
| 21:50:31 | raptor | however |
| 21:51:19 | raptor | two of the codecs, mp3 and modplug, are fallback codecs and will attempt to play the file no matter what |
| 21:51:54 | raptor | this is because .mp3 and .mod do not have a defined header standard and there's no real way to tell if the file is one of those |
| 21:52:27 | raptor | the codecs i compiled in are: wav/aiff, vorbis (ogg), modplug (.xm, .it, .mod, .s3m, ...) |
| 21:53:08 | raptor | but i've never actually had it crash the game when attempting to play any sort of file |
| 21:53:14 | raptor | is it crashing for you? |
| 21:53:17 | Watusimoto | ok, so I'll only load files with those extensions, rather than anything in the file |
| 21:53:24 | Watusimoto | no, but music stops dead |
| 21:53:34 | raptor | actually |
| 21:53:37 | Watusimoto | and I can't restart with mnext or mprev |
| 21:53:43 | raptor | what!? |
| 21:53:48 | raptor | can you give me that file? |
| 21:53:54 | Watusimoto | credits.txt |
| 21:54:03 | Watusimoto | is the problem |
| 21:54:10 | raptor | i don't have it.. |
| 21:54:19 | Watusimoto | I suspect any txt file will do |
| 21:54:21 | Watusimoto | but |
| 21:55:01 | Watusimoto | http://pastie.org/5379349 |
| 21:55:33 | raptor | i've 'played' text files before without problem... |
| 21:55:53 | Watusimoto | maybe its a windows thing |
| 21:56:04 | Watusimoto | seems better to filter out non-music anyway, no? |
| 21:56:09 | raptor | the better solution may be to alter the ALURE libraries to not fallback on mod decoding unless the file has extension .mod |
| 21:56:29 | raptor | yes |
| 21:56:36 | Watusimoto | if we ever wanted to show a playlist, we wouldn't want to have text files in it! |
| 21:56:50 | Watusimoto | it would make us look like clowns |
| 21:56:55 | raptor | shoudl filter out non-music... but module files come in like 35 different formats |
| 21:58:27 | Watusimoto | so how about for now we say we support ".wav", ".ogg", ".xm", ".it", ".mod", ".s3m" files |
| 22:01:20 | Watusimoto | maybe also .ned, .mo3, .mtm, and .umx? |
| 22:01:32 | Watusimoto | .ned (Nerd Tracker II) |
| 22:01:34 | Watusimoto | love that |
| 22:02:23 | raptor | sure |
| 22:02:26 | raptor | a prefilter |
| 22:02:34 | Watusimoto | yes |
| 22:02:39 | raptor | yeah we support nerdtracker, i think |
| 22:02:49 | raptor | oooo |
| 22:02:50 | raptor | .umx |
| 22:02:56 | raptor | unreal tournament! |
| 22:02:58 | Watusimoto | and those others as well? any idea? |
| 22:04:50 | raptor | it's in one of the alure cpp files |
| 22:06:30 | raptor | wait wait... it's in libmodplug itself... |
| 22:06:32 | raptor | looking |
| 22:09:20 | raptor | see here: http://modplug-xmms.git.sourceforge.net/git/gitweb.cgi?p=modplug-xmms/modplug-xmms;a=blob;f=libmodplug/src/sndfile.cpp;h=c630ce2f99845d87418d25780b3ef551417b3207;hb=HEAD#l139 |
| 22:11:04 | Watusimoto | lots of midi formats |
| 22:11:45 | raptor | yeah, i actually just realized that i could have compiled it with MODPLUG_BASIC_SUPPORT and we could have just used the common formats |
| 22:11:56 | raptor | notice how ReadMod is last? |
| 22:12:05 | Watusimoto | yes |
| 22:12:09 | raptor | that's because it has no headers |
| 22:12:27 | Watusimoto | do you think all those ReadXXX functions can be interpreted as XXX beign a file extension? |
| 22:12:40 | raptor | oh yes |
| 22:12:44 | Watusimoto | wow |
| 22:12:45 | Watusimoto | ok |
| 22:12:52 | raptor | but i'll look on the website for the appropriate list |
| 22:13:04 | Watusimoto | this is a job for sublime multiedit! |
| 22:13:06 | raptor | you may wish to prefilter case-insensitive... |
| 22:15:23 | Watusimoto | no nerd tracker in that list... |
| 22:15:28 | raptor | see: http://modplug-xmms.git.sourceforge.net/git/gitweb.cgi?p=modplug-xmms/modplug-xmms;a=blob;f=libmodplug/README;h=1eb4c82ebfde09b08bd18d5ff4784b19ecc95ffd;hb=HEAD#l36 |
| 22:16:02 | raptor | wait... you're right! |
| 22:16:08 | raptor | i thought i saw that one before.. |
| 22:17:22 | Watusimoto | really... no one will ever try |
| 22:17:35 | Watusimoto | ogg maybe, wav possibly, maybe xm and it |
| 22:19:45 | raptor | the tracker world is crazy fractured... |
| 22:20:44 | Watusimoto | that's not the f word that came to my mind... |
| 22:20:52 | raptor | haha |
| 22:20:54 | Watusimoto | but who am i to judge? |
| 22:21:28 | raptor | i think 'fractured' is a reasonable assessment |
| 22:29:25 | Watusimoto | const string extList[] = { ".669", ".ABC", ".AMF", ".AMS", ".DBM", ".DMF", ".DSM", ".FAR", ".IT", |
| 22:29:25 | Watusimoto | ".MDL", ".Med", ".MID", ".MOD", ".MT2", ".MTM", ".OKT", ".OGG", ".PAT", |
| 22:29:25 | Watusimoto | ".PSM", ".PTM", ".S3M", ".STM", ".Ult", ".UMX", ".Wav", ".XM" }; |
| 22:29:40 | Watusimoto | that's a big list of nothing |
| 22:29:51 | raptor | haha |
| 22:30:06 | Watusimoto | I guess the cost is low |
| 22:30:17 | raptor | just a start-up cost |
| 22:30:25 | Watusimoto | and no support cost |
| 22:30:58 | Watusimoto | and now the format list is (somewhat) documented somewhere |
| 22:31:37 | raptor | you forgot compressed formats! |
| 22:31:44 | raptor | (i don't really care..) |
| 22:38:20 | raptor | do you have plans to let the author of the music know we enjoyed it enough to put in our game? |
| 22:48:42 | Watusimoto | ok, they all play |
| 22:48:49 | raptor | yay! |
| 22:48:53 | Watusimoto | I have no plans either way |
| 22:49:20 | Watusimoto | I'm nervous he'd be unhappy for some reason |
| 22:49:29 | Watusimoto | not a rational fear |
| 22:50:02 | raptor | so.. forgiveness instead of permission? |
| 22:50:28 | Watusimoto | yes |
| 22:50:36 | Watusimoto | unless you have a different opinion |
| 22:50:42 | raptor | nope :) |
| 22:50:53 | Watusimoto | well, we don't need permission, and I don;t think he could rescind it |
| 22:51:07 | Watusimoto | but I don;t want to feel like a jerk |
| 23:06:41 | Watusimoto | ok, music is all done; only need to make sure it's installed for linux and mac |
| 23:07:04 | Watusimoto | we should find a way to delete old music file during upgrade, shouldn;t we |
| 23:07:05 | Watusimoto | sigh |
| 23:07:22 | raptor | so |
| 23:07:32 | raptor | that falls under the category of 'update directives' |
| 23:08:10 | raptor | right now that is handled in the linux script and internally in a custom class koda wrote for mac |
| 23:08:52 | raptor | some update directives, like INI changes, are handled in 'checkIfThisIsAnUpdate()' in main.cpp |
| 23:09:21 | raptor | we should probably pull it under one roof - probably in the code |
| 23:09:28 | raptor | maybe |
| 23:09:46 | raptor | because maintaining separate scripts for each environment wears me down a bit.. |
| 23:12:48 | Watusimoto | as for deleting music.ogg, if we put that in the installer, and someone adds a file called music.ogg, it will be dleeted when they next update |
| 23:13:35 | Watusimoto | maybe I misunderstood your "under one roof" comment |
| 23:13:43 | Watusimoto | was that referring to deleting the music file? |
| 23:13:52 | raptor | yes |
| 23:13:56 | Watusimoto | ok |
| 23:13:58 | raptor | sort of |
| 23:14:08 | Watusimoto | maybe that;s the place to do it... idk |
| 23:14:22 | raptor | i *think* we should handle update directives in the code |
| 23:14:41 | raptor | but currently we are not, we handling it special on each platform |
| 23:14:43 | Watusimoto | I could see an arugment for that |
| 23:14:46 | raptor | which is a lot of work |
| 23:14:59 | Watusimoto | most update directives are handled in code, no? |
| 23:15:03 | raptor | heh |
| 23:15:11 | raptor | about half and half |
| 23:15:22 | Watusimoto | what;s an example of one handled outside of bf.exe? |
| 23:15:36 | raptor | pulling that up.. |
| 23:16:01 | raptor | so see here: https://build.opensuse.org/package/view_file?expand=1&file=bitfighter.sh.for_deb&package=bitfighter&project=games |
| 23:16:16 | raptor | that is the linux wrapper script |
| 23:16:32 | raptor | it looks for something signature in each release to tell if it needs to do something special |
| 23:17:14 | raptor | for instance, the signature for 015a was that s_bot was added; so it looks for s_bot, if it is missing, it copies in |
| 23:17:39 | raptor | in 017 section we upgrade s_bot |
| 23:18:20 | Watusimoto | why does this need a specific directove? |
| 23:18:21 | Watusimoto | cp "$datadir/robots/s_bot.bot" "$userdatadir/robots/" |
| 23:18:36 | raptor | yes, that is another problem |
| 23:18:37 | Watusimoto | ah, so as to not clobber existing s_bot? |
| 23:18:45 | Watusimoto | I think we'd always want to clobber |
| 23:18:48 | raptor | on linux, each user has their own game resources |
| 23:19:04 | raptor | no, we clobebr it |
| 23:19:06 | raptor | clobber |
| 23:19:33 | raptor | that's just saying if sbot.bot isn't found, then copy it over |
| 23:19:44 | Watusimoto | we want to copy it over even if it is found |
| 23:19:52 | raptor | yes, i do that in the 017 section |
| 23:19:55 | Watusimoto | regardless of version |
| 23:20:06 | raptor | well |
| 23:20:15 | raptor | that's if you're on a singler user system |
| 23:20:22 | Watusimoto | I understand what the script is doing, but really not why it does what it does |
| 23:20:35 | raptor | it's a multi user problem |
| 23:20:46 | raptor | the game is correctly installed to a system location |
| 23:20:47 | raptor | but |
| 23:21:18 | raptor | on start-up it copies certain resources to the user's settings directory |
| 23:21:44 | raptor | so |
| 23:21:54 | Watusimoto | is this both installer and startup script combined? |
| 23:21:54 | raptor | it copies things like levels to the user's directory |
| 23:22:20 | raptor | the installer -> installs to system |
| 23:22:31 | Watusimoto | ah, ok |
| 23:22:33 | raptor | start-up script -> creates user settings dir and copies resources |
| 23:22:45 | raptor | because the user doesn't have root access |
| 23:22:46 | Watusimoto | so if resources have already been copied, don;t copy again |
| 23:22:52 | raptor | exactly |
| 23:22:55 | raptor | the problem being |
| 23:23:17 | raptor | we install some level files into the system BUT we want a user to be able to edit them and add to them |
| 23:23:30 | raptor | and they can't do that into a root-owned directory (same on Mac) |
| 23:23:46 | raptor | so, the current solution is to copy all the resources to the user's directory |
| 23:23:54 | Watusimoto | we do that in win too |
| 23:24:08 | Watusimoto | I think that on upgrade any mods are clobbered |
| 23:24:22 | raptor | exactly, but i try my best to not do so... |
| 23:24:37 | Watusimoto | but we want to clobber for things like s_bot |
| 23:24:43 | Watusimoto | otherwise upgrade is impossible |
| 23:24:43 | raptor | yes |
| 23:25:00 | raptor | if you see in that same script (under 017) i clobber s_bot |
| 23:25:06 | Watusimoto | so you look for tricks with every upgrade |
| 23:25:09 | raptor | yes |
| 23:25:25 | Watusimoto | well, I was going to suggest we "institutionalize" this a bit |
| 23:25:35 | raptor | yes! |
| 23:25:36 | Watusimoto | create a version-lockfile or something |
| 23:25:42 | | koda has joined |
| 23:25:44 | raptor | we have something similar |
| 23:25:47 | Watusimoto | so the script can see when its an upgrade and copy everything |
| 23:25:54 | Watusimoto | .version017b |
| 23:25:55 | raptor | in main.cpp, checkIfThisIsAnUpdate() |
| 23:25:59 | Watusimoto | yes |
| 23:26:02 | raptor | it scans the INI |
| 23:26:14 | Watusimoto | but that can't handle upgrading versions of s_bot very well |
| 23:26:18 | raptor | i believe there is were we need to do a settingsDirectoryUpgrade() |
| 23:26:19 | Watusimoto | at least not in windows |
| 23:26:28 | raptor | well |
| 23:26:44 | raptor | the solution to that: allow resource loading from two categories of directories |
| 23:26:58 | raptor | system directories, and user directories |
| 23:27:02 | Watusimoto | levels in the system folder as well as the user folder |
| 23:27:08 | raptor | yes! |
| 23:27:30 | Watusimoto | the real answer is playlists |
| 23:27:40 | raptor | thos two things (dual resource directory loading and in-code update directives) will help a lot with this madness |
| 23:27:54 | Watusimoto | dual resouce folders seem fine for me |
| 23:28:16 | Watusimoto | well, actually |
| 23:28:19 | raptor | koda already converted this script to code |
| 23:28:22 | raptor | for mac |
| 23:28:39 | koda | o/ |
| 23:28:46 | raptor | hi koda! |
| 23:28:46 | Watusimoto | but I think it would be simple to do the following logic: |
| 23:28:52 | Watusimoto | if upgrade, copy everything |
| 23:28:55 | Watusimoto | else |
| 23:28:55 | Watusimoto | don't |
| 23:29:19 | Watusimoto | then that script could remain constant |
| 23:29:37 | raptor | see zap/Directory.mm for koda's work |
| 23:29:48 | raptor | ok |
| 23:29:55 | koda | objc magic |
| 23:30:01 | raptor | i think that's actually what koda did... |
| 23:30:04 | raptor | right koda? |
| 23:30:20 | koda | regarding what? |
| 23:30:31 | raptor | converting my ugly script to code |
| 23:30:50 | koda | it was not ugly |
| 23:31:06 | koda | and did a pretty good job considering that your main env is not osx |
| 23:31:13 | raptor | i'm trying to remember how you call the stuff in Directory.mm... |
| 23:31:30 | koda | basically i just check which bitfighter version is installed |
| 23:31:39 | Watusimoto | directory.mm is unfamilliar and frightening |
| 23:31:52 | koda | if this info is absent or the version is older, copy everything |
| 23:32:21 | Watusimoto | so if we do the same for linux, that would ease the upgrade scripting |
| 23:32:43 | Watusimoto | the only question is whether this would be better done in code, or in the running script itself |
| 23:33:45 | Watusimoto | but it seems clear we should handle the removal of game.ogg in the code |
| 23:33:49 | Watusimoto | not in the installer |
| 23:33:50 | raptor | .mm is indeed frightening |
| 23:34:01 | raptor | yes |
| 23:34:03 | raptor | so |
| 23:34:06 | | koda is tempted to show some lines of haskell... |
| 23:34:22 | raptor | oh my goodness haskell... |
| 23:34:53 | raptor | koda: from where do you actually call the copy resources? on bitfighter start-up somewhere? |
| 23:35:03 | raptor | i'm trying to find the method call... |
| 23:35:24 | raptor | oh, haha |
| 23:35:27 | raptor | found it |
| 23:35:32 | raptor | right in main() |
| 23:35:35 | koda | yes |
| 23:36:14 | raptor | ok Watusimoto, so we have two types of update directives: 1. file manipulation, 2. INI changes |
| 23:36:37 | Watusimoto | yes |
| 23:36:54 | raptor | INI changes are done in checkIfThisIsAnUpdate() |
| 23:37:08 | raptor | file ones are done (only for Mac) above it in main() |
| 23:37:19 | Watusimoto | ok |
| 23:37:38 | Watusimoto | but for things like removing the outdated music file, we shoudl do that in checkIfThisIsAnUpdate() |
| 23:37:49 | Watusimoto | which is completely platform independent |
| 23:37:50 | raptor | so maybe we should combine them |
| 23:38:03 | raptor | yes |
| 23:38:13 | Watusimoto | I don;t think the mac way would play nice with windows |
| 23:38:20 | Watusimoto | because we don;t do any of this there |
| 23:38:37 | Watusimoto | when we upgrade, the installer copies files |
| 23:38:46 | Watusimoto | then that;s it |
| 23:39:19 | Watusimoto | though, admittedly, the installer won;t work well on multiuser systems... not sure really what would happen if two windows users wanted to install the game |
| 23:39:24 | Watusimoto | no, not sure at all |
| 23:39:35 | raptor | koda, how do you tell if we need to re-copy resources to the users settings directory? |
| 23:39:44 | koda | i trust the user defaults |
| 23:39:58 | koda | a standard way of setting/getting default options on osx |
| 23:40:01 | raptor | so... that means... you don't? |
| 23:40:16 | koda | :D |
| 23:40:17 | koda | no |
| 23:40:23 | | BFLogBot Commit: abc11fb0b692 | Author: watusimoto | Message: Remove unneeded reference to "this" |
| 23:40:25 | | BFLogBot Commit: 25e79f274a22 | Author: watusimoto | Message: Update music credits |
| 23:40:26 | | BFLogBot Commit: a0a431c9a819 | Author: watusimoto | Message: Music plays in arbitrary order, no? |
| 23:40:28 | | BFLogBot Commit: a06f8fa0e8dd | Author: watusimoto | Message: Down homey, homey. |
| 23:40:29 | koda | i check for the existance of version information |
| 23:40:29 | | BFLogBot Commit: c1fc6b4e5218 | Author: watusimoto | Message: Only load music we can play |
| 23:40:31 | | BFLogBot Commit: 9000a24a238e | Author: watusimoto | Message: Add new music |
| 23:40:32 | | BFLogBot Commit: 2e76007347a3 | Author: watusimoto | Message: Remove old music |
| 23:40:34 | | BFLogBot Commit: c86cceb675e4 | Author: watusimoto | Message: Update credits |
| 23:40:35 | | BFLogBot Commit: f247392c14cb | Author: watusimoto | Message: Windows installer includes all music files |
| 23:40:37 | | BFLogBot Commit: f39e37edb680 | Author: watusimoto | Message: Merge |
| 23:40:37 | koda | if i don't find it i obviously add it |
| 23:40:50 | raptor | ah ha! |
| 23:41:07 | raptor | ia that what this is?: NSString *trackingVersion = [userDefaults stringForKey:@"BitfighterVersion"]; |
| 23:41:42 | raptor | is that like a Mac system registry?? |
| 23:41:48 | koda | that gets the info,yes |
| 23:42:28 | koda | well more like associated xml properties that get orderly created for each application |
| 23:42:41 | raptor | haha |
| 23:42:47 | raptor | soo... a registry |
| 23:42:51 | raptor | ish |
| 23:42:55 | raptor | hmm |
| 23:43:02 | koda | noooo it's not a registry :(((( |
| 23:43:29 | Watusimoto | I didn't know osx had a registry! |
| 23:43:37 | | koda screams running away |
| 23:43:41 | Watusimoto | ha! |
| 23:44:08 | raptor | ok, so |
| 23:44:26 | raptor | i guess if we detect we're an updated version, re-copy over all resources |
| 23:44:40 | raptor | to the user's preference dir |
| 23:45:06 | raptor | that can be handled in code for each platform, i think |
| 23:49:34 | raptor | brb |
| 23:50:53 | koda | guys, did you read my posts of a few hours ago by any chance regarding gci? |
| 23:51:01 | Watusimoto | so koda what do you know about that gci? |
| 23:51:12 | Watusimoto | did you post anything beyond asking if we were interested? |
| 23:51:33 | koda | well no one was around at that time >.< |
| 23:51:48 | Watusimoto | I replied that yes, i was interested |
| 23:51:55 | Watusimoto | so yes. interested. |
| 23:52:06 | koda | gci is where students of young age come and do |
| 23:52:10 | koda | very small tasks |
| 23:52:12 | Watusimoto | (I was around, but not looking at chat window!) |
| 23:52:19 | Watusimoto | perfect -- we have lots of those |
| 23:52:25 | koda | like changing a few lines of code |
| 23:52:34 | koda | or producing some amount of stuff |
| 23:52:39 | koda | like documentation or similar |
| 23:53:00 | koda | the risk of gci is being swarmed by lotsa student crying |
| 23:53:06 | koda | WHERE IS THIS IN THE CODE |
| 23:53:09 | koda | (all caps) |
| 23:53:22 | koda | which is highly unmanageable |
| 23:53:26 | Watusimoto | one idea was to have them modify lua constructors to accept arguments; we have a good model to copy, and it's a bunch of bite sized chunks |
| 23:53:58 | Watusimoto | I suspect its somewhat luck of the draw |
| 23:54:15 | koda | however this year they relaxed the rules a bit and made it so few students could try and stick with a project they like |
| 23:54:33 | Watusimoto | ah, beofre you would hop from project to project> |
| 23:54:34 | Watusimoto | ? |
| 23:54:43 | koda | last year it was like that yes |
| 23:55:06 | koda | also they made it possible to update the list of tasks more often |
| 23:55:26 | koda | so to better handle the quantity of work available |
| 23:55:45 | koda | (eg if you are very busy with 5 tasks you can put off publishing new tasks) |
| 23:55:52 | Watusimoto | I see |
| 23:55:53 | koda | (and publish them when you ahve more free time) |
| 23:56:04 | Watusimoto | how long does the program last? |
| 23:58:12 | koda | so |
| 23:58:17 | koda | it starts in 10 days |
| 23:58:38 | koda | and goes until jan 14 |
| 23:58:40 | koda | th |
| 23:59:59 | koda | one of the cool thing of this year |