IRC log for #koha, 2008-04-22

All times shown according to UTC.

Time S Nick Message
13:17 hdl hi
13:22 owen Hi hdl
13:23 hdl hi owen
13:23 hdl hi gmcharlt and all
13:23 gmcharlt hi hdl
13:24 hdl I have some general questions :
13:26 hdl a) would it be good if we provided a way for ModItem and AddItem and Mod and AddBiblio to disable indexing by means of a parameter.
13:26 hdl With all BatchMods, It is a serious issue.
13:29 gmcharlt hdl: for NoZebra mode, I assume?
13:30 hdl even in zebra mode.
13:30 hdl Becaus it makes many many entries in zebra_queue.
13:30 hdl So that it cramps mysql.
13:31 hdl (at least this is what I experienced some times)
13:31 hdl b) Would it be good if we stored frameworks and authorised_values in a hash in C4::Context rather than using the database for those things.
13:31 hdl In mod_perl this would use more memory.
13:32 hdl but maybe would be more efficient.
13:32 hdl c) I am experiencing some performance problems in page display.
13:32 hdl Is there a solution to that ?
13:32 gmcharlt hdl: I would support some sort of option to *defer* indexing, not disable it outright - disable it, and it would be too easy for either developer or admin to forget to index
13:33 hdl gmcharlt++
13:33 gmcharlt re b), some kind of in-memory storage of frameworks and auth_values would be nice (would need to be careful about updating the cache whenver somebody updates a framework)
13:34 hdl yes.
13:34 hdl it is the case with Lists.
13:34 hdl There is a problem with updating CGI::Session on time
13:34 gmcharlt I think that would be a mod_perl port thing, not a C4::Context thing, as C4::Context woudl end up storing in the whole MARC framework in the sessions table for *each* session
13:35 gmcharlt back to indexing, perhaps we should move to deleting rows from zebraqueue when a record is indexed, not just changing the done column
13:36 gmcharlt re c), have you run any profling?
13:39 hdl not yet.
13:40 acmoore Maybe we can try indicating to zebraque_daemon to not index right now so that we're not fighting it for access to the table during a batch.
13:41 gmcharlt acmoore: dunno, if that were actually actually the problem, we should fix how we're using that table - nothing should be asserting a table-level lock on zebraqueue
14:25 owen Who knows about circ/ ?
14:25 owen Does that list holds which have been transferred to your library and are awaiting pickup?
14:29 owen It says "Holds for your library," but it shows me the same list if I switch libraries
14:39 gmcharlt owen: darrell did some significant work on it - he would give you the quickest answer, I think
14:41 hdl owen did it work ?
14:41 hdl (telepathy ?)
14:41 owen Not yet.
14:43 hdl maybe I can have a look at the code and tell you.
14:47 hdl owen : seems not to be linked with Transfers.
14:47 hdl as far as I can see.
14:49 hdl gmcharlt: MARC format for Zebra indexing (marc21, unimarc) [marc21] unimarc
14:49 hdl Koha supplies Zebra configuration files tuned for searching either English (en) or French (fr) MARC records.
14:49 hdl Primary language for Zebra indexing (en, fr) [en] fr
14:49 hdl What is the difference between those two questions ?
14:50 gmcharlt hdl: difference between MARC format and what sorting rules to use
14:50 gmcharlt i.e., in theory an English-language library could use Unimarc but have different sorting rules
14:51 gmcharlt in practice, probably more like different between (say) Italian and French sorting rules
14:51 hdl Oh... I see...
14:52 hdl It was quite confusing to be asked this.
14:52 hdl I never noticed before.
14:52 hdl But I could not see what were the differences.
14:58 hdl I had an other question :
14:59 hdl When cataloguing we can first search on Catalogue+imported data
14:59 hdl And when on page addbiblio, one can search other databases for importing data into import_biblios
15:00 hdl Would it be a good idea to merge addbooks and z3950search pages ?
15:01 hdl This would allow to have three boxes to search on Title/author/ISBN on imported_records.
15:02 hdl And would require to use asynchronous search on z3950 servers and push the results via Ajax when done... So A bit hard work.
15:02 hdl But
15:03 fbcit g'morning #koha
15:09 gmcharlt hdl: yes, it's interesting :)
15:10 hdl In fact, root of the problem is the ONE big Box for searching import_biblios
15:10 hdl Which prevent from making a good research.
15:10 hdl And sends very poor results.
15:10 hdl I made a patch for a system I installed on Sunday.
15:11 hdl But.... Was quite frustrated because if you type Harry Potter Rowling in the Box, you couldnot find what would be an author, what would be a title
15:12 hdl So I thought that at least 3 boxes were necessary...
15:12 hdl which would have been quite the same as z3950 searches.
15:34 fbcit does anyone know of anything sacred about the text alignment/position on spine labels?
15:34 fbcit or is it just preference?
15:34 fbcit ie call number segmentation, column alignment, etc
15:37 atz center alignment is common, given the small width of many spines
15:38 kados users I mean
15:39 fbcit atz: are there set rules for segmentation of call numbers?
15:40 atz fbcit: not that I know.  that's sortof the point of callnumbers.   they're an entirely local thing.
15:40 gmcharlt except when they do follow rules - DDC call numbers often do have suggested segmentation points, and it's not entirely at random
15:41 fbcit gmcharlt: it seemes some call numbers are segmented before the decimal and others after
15:42 atz any way of knowing whether a call number is DDC or just pseudo-DDC?  
15:42 gmcharlt an 082 in an LC record should be actual DDC
15:43 fbcit I have been using 082 as a starting point and adjusting to fit our collection
15:44 fbcit but ending up with actual DDC
15:44 fbcit I have been wrapping DDC on spine labels based on segmentation which produces labels w/no consistent appearance
15:48 owen ryan around?
15:58 ryan hi owen
15:58 owen Hi ryan. You're finding that you can't check out if a patron has any fine at all?
15:59 ryan yes.
16:00 ryan seems to be an issue with tmpl logic on displaying warnings?
16:00 owen When I try to check out, I do get a dialog asking for confirmation, but it lets me proceed with the checkout
16:01 owen I'm not sure if that dialog is correct--my fine is below the noissuescharge pref value
16:09 ryan when i go to the checkout page (, I get a 'barcode not found' error.
16:10 ryan If i have a charge, I get a confirmation, even though I did not supply a barcode to chekcckout.
16:10 owen ryan, you get a "barcode not found" on by default?
16:10 ryan yes
16:11 owen wow, I'm sure not getting that
16:14 ryan owen: ok, i'm looking for the cause of this now
16:20 acmoore hdl, did you ever take a moment to try out the new testing stuff that I wrote to koha-devel about?
16:21 hdl acmoore: I took it today
16:21 acmoore just wonderig if it failed miserably for anyone before it gets committed.
16:21 hdl It passed all but dates testing
16:22 acmoore hmm. OK, well I can deal with a few testing failures, as long as it built the testing database OK and didn't overwrite your real database or anything.
16:23 acmoore if you get a moment sometime, could you email me the test failures that you saw, please?
16:23 kados hdl: are you OK with me pushing it up? (mr. QA manager sir) :-)
16:23 acmoore Does it seem like an improved method, one that's worth moving towards?
16:24 kados acmoore: does to me, for sure!
16:24 hdl I think anything automated that assures automated testing is a good step.
16:26 hdl I have a problem making test...
16:26 hdl KOHA_CONF=run/etc/koha-conf.xml /usr/bin/prove -v
16:26 hdl database_dependent.......Can't locate C4/ in @INC (@INC contains: /home/koha/Code/koha_dev
16:26 acmoore that C4::Installer module was created by Galen in one of the 5 patches I mentioned. It's not committed yet either.
16:26 acmoore I'll find it...
16:26 hdl It seems that it conflicts with a a version.
16:27 hdl I installed all the patches Galen Sent on a test install
16:27 hdl But it looks in a wrong directory.
16:27 acmoore Is there a /home/koha/code/koha_dev/C4/
16:29 acmoore this patch was supposed to create it:[…]April/000172.html
16:33 hdl is the test not supposed to CREATE a database and then make tests on it and then delete database ?
16:33 kados acmoore: do the results from the test get stored somewhere, or shall I pipe out to a file?
16:34 acmoore hdl, It doesn't delete the database at the end.
16:34 hdl
16:34 hdl here is my log.
16:34 acmoore kados, they don't get stored anywhere. I guess you can redirect them. are there failures?
16:35 kados acmoore: just a few, but none related to the db-specific tests
16:35 hdl It could not create database because the user I used to test was a not-sufficiently priviledged user.
16:36 acmoore hdl, maybe so. when you run 'perl Makefile.PL' in the top-level, you give it authentication information for a mysql user.
16:36 hdl yes.
16:36 acmoore hdl, It's possible that it couldn't find /home/koha/Code/QAManagement/koha_test_install/int​ranet/cgi-bin/installer/data/mysql/kohastructure.sql in order to build the datbase
16:37 acmoore kados, good. You ran 'make test' from the 't' direcotry, right?
16:37 kados acmoore: I see, I missed the question for perl Makefile.PL
16:37 kados acmoore: so do I need to use a different db than the koha db, or can I use the same one?
16:37 acmoore kados, you can use the same one, but it destroys it.
16:38 acmoore kados, you need to run 'perl Makefile.PL' in the top level again. It will ask you questions about which test database to use. Then, you 'cd t' and 'make test'.
16:38 kados acmoore: oh? that's probably something we'll want to warn loudly about
16:38 kados ok, so I reran it
16:38 acmoore kados, I agree. I really don't want to destroy any databases.
16:39 kados now I need to go into t/
16:39 kados make first
16:39 acmoore kados, did it ask you if you wanted to run the database dependet tests and some questions about user and passwords?
16:39 kados acmoore: any reason the make test from root doesn't run the db-dependent tests?
16:39 hdl So I have to make install before getting to t/ to make test
16:39 hdl ?
16:39 kados acmoore: yes, answered those
16:39 acmoore kados, because I don't want to destroy any databases accidently. I plan on integrating it better at some point.
16:40 kados gotcha
16:40 kados so for now, make test from root is the same old tests
16:40 acmoore kados, also, they're not really necessary for an installation, so I don't think  that all users need to run them until we get them a little more stable.
16:40 kados make test from t/ is the new ones
16:40 acmoore kados, yes.
16:40 kados gotcha
16:40 kados ok, make test from root works fine
16:40 acmoore hdl, I don't think you actually have to 'make install'
16:40 kados hmmm, it failed
16:41 kados database_dependent.......Can't locate C4/ in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at line 12.
16:41 hdl acmoore: O Yes, I DO have.
16:41 acmoore hdl, oh. I don't understand why, and that should be fixed.
16:41 kados acmoore: run export KOHA_CONF and same errors
16:41 hdl because  /home/koha/Code/QAManagement/koha_test_install/
16:41 hdl was the directory I wanted to make install.
16:42 acmoore kados, that's odd. are you on arwen? can I look in your directory?
16:42 kados sure
16:42 acmoore hdl, Oh. I'll have to think about that.
16:42 kados acmoore: repo is in /home/jmf/repos/koha-rm-test.git
16:42 kados acmoore: it's a 'dev' target install
16:42 hdl The directory where the "installation package" was was /home/koha/Code/QAManagement/koha_testing
16:43 hdl not ok 71 - we never found all 10 titles even after 30 tries.
16:43 hdl not ok 90 - we never found all 1 titles even after 30 tries.
16:43 gmcharlt acmoore: I think I've found problem - t/Makefile should be setting PERL5LIB, but isn't
16:44 acmoore gmcharlt, good eye.
16:44 acmoore hdl, that's when it waits for your zebra indexing. Do you use zebra?
16:44 hdl maybe those tests are marcflavour dependent.
16:44 hdl yes...
16:45 hdl at least I asked installer to use it.
16:45 acmoore maybe the didn't start right, or the zebra server.
16:45 hdl This is why the test suite is intended for.
16:45 acmoore hdl, they may be marcflavor dependant, but I tried to avoid that. But, I don't understand that part very well.
16:45 acmoore hdl, yep. I consider it a success that you're getting this far. ;)
16:46 kados acmoore: any thoughts on my error?
16:46 hdl Diagnose the problems and then solve them/
16:46 kados acmoore: was this tested with the 'dev' target?
16:46 acmoore kados, gmcharlt suspects that it's because PERL5LIB isn't being exported. I think that's possible.
16:46 acmoore kados, yes. That's the only way I tested it.
16:46 kados I tried doing export KOHA_CONF=/path/to/my koha.conf file
16:47 kados KOHA_CONF=run/etc/koha-conf.xml /usr/bin/prove -v
16:47 kados database_dependent.......Can't locate C4/ in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at line 12.
16:47 kados is a bit more output
16:47 acmoore kados, it should do that for you. It creates a KOHA_CONF in t/run/etc
16:47 kados right
16:47 kados lemme check that one
16:47 gmcharlt the way test suite works, it should be ignoring any KOHA_CONF and PERL5LIB in the external environment, and setting those two itself
16:47 hdl acmoore: Well. half of a success... But still, good thing.
16:47 gmcharlt (otherwise you run risk of big ouchies like scribbling production databases)
16:47 kados koha-conf.xml looks correct
16:47 kados in run/
16:48 acmoore has a 'use lib qw(..)' which is supposed to help it find the C4 libraries. I wonder why that's not in kados's @INC.
16:49 hdl Makefile.PL should warn ppl that in order to use the test suite, user and base should be created or user should be able to create a base and set rights on IT.
16:49 acmoore hdl, OK. I'll note that.
16:50 hdl OtherWise, kados yes, "Mr QA Manager sir" is OK to push that stuff.
16:50 kados hdl: :-)
16:51 acmoore kados, can you 'echo $PERL5LIB' from the command line? I'll bet you don't have that directory in there. I should set it from the
16:51 kados hdl: once I get this prob solved I will
16:51 kados acmoore: yea, that's empty for me
16:51 acmoore kados, OK. I'll do that here and see if I can reproduce that.
16:52 hdl gmcharlt: I had a problem with Installer with dev install.
16:52 gmcharlt acmoore: or PERL5LIB=foo KOHA_CONF=$(TEST_CONF_FILE) $(PROVE) $(PROVE_FLAGS) $(TEST_FILES) in t/Makefile (rather than use lib (..);)
16:52 gmcharlt hdl: details, please
16:53 hdl Installer would require to set correct permissions on /var/ for koha_zebra* scripts to work.
16:53 acmoore gmcharlt, I'd be OK with that. Do you think I should *add* .. to PERL5LIB, or replace it?
16:53 gmcharlt acmoore: replace it
16:53 acmoore gmcharlt, to ensure that we're loading the libraries we think we are?
16:53 gmcharlt exactly
16:53 hdl + I had also to tweak those deamons file in order to edit the environment variable.
16:54 hdl (fresh install on Thursday But also older install)
16:54 acmoore gmcharlt, what if they have prerequisites like Data::Dumper installed in ~user/lib and $PERL5LIB set to find it?
16:54 acmoore hdl, I can believe that. I'll note it, too.
16:55 gmcharlt acmoore: I suppose put in a PERL5LIB_EXTRA or the like in t/Makefile for user to manually edit if need be
16:55 gmcharlt or pull such a setting from t/test-config.txt
16:56 acmoore what about PERL5LIB=..:$PERL5LIB?
16:57 acmoore I guess I still run the risk of loading the wrong libraires.
16:57 gmcharlt acmoore: yep
16:57 gmcharlt test-config.txt should have the full path to the directory that Makefile.PL was run from
16:58 gmcharlt and PERL5LIB can be set from that
16:58 gmcharlt + optional PERL5LIB_EXTRA
17:00 kados oddly my perl5lib isnt set when I log on
17:00 kados acmoore: on arwen, is yours?
17:00 atz kados: on mine, no
17:00 atz cat /home/atz/
17:01 acmoore kados, I added it to my .bashrc.
17:01 atz vs.
17:01 atz cat /home/atz/
17:02 acmoore kados, This should be made to work without that set. I'll have to change it, though.
17:07 acmoore ah. I see the typo. I had 'use lib q( . .. );' and I wanted 'use lib qw( . .. );' go figure.
17:07 acmoore gmcharlt, I guess in light of what we discussed, I should remove that line anyway and make the makefile export a PERL5LIB.
17:08 gmcharlt yeah, that's my preference
17:08 acmoore I'm with you. Let me see if I can get it to work.
17:10 nengard system pref question - this is what we have in the manual-but it's unclear and i need to edit it
17:10 nengard HomeOrHoldingBranch
17:10 nengard When 'IndependentBranches' is turned ON, 'HomeOrHoldingBranch' specifies whether one library is able to check out another library's item when the item is returned... or whether it has to "go home" (to its 'home branch') first!
17:10 nengard IMPORTANT: it is not recommend that this setting be changed after initial installation of Koha
17:10 nengard Circulation to determine which branch of an item to check with independent branches on.
17:10 nengard Values:
17:10 nengard    * holdingbranch = Koha will check the branch an item is being 'held' at
17:10 nengard    * homebranch =
17:10 nengard IMPORTANT: This preference does nothing unless the 'Independent Branches' preference is turned ON.
17:12 atz nengard: what's the question?
17:12 nengard what does this setting actually do? is this worded right? and what's the 'homebranch' setting do?
17:12 nengard basically everything to do with this preference ;) I didn't write this doc, I'm editing it, but it's not complete so i'm a bit lost
17:14 atz the pref. is for IndependentBranches.   it answers the question  "what do we do w/ another branch's returned book?"
17:14 atz "can we check it out again ourselves, or does it have to go back?"
17:15 atz basically w/ "homebranch" set, there is effectively a reserve for each branch on it's own items
17:15 nengard so when a book is returned to a diff branch it gets sent back to the home branch
17:15 nengard got it
17:16 atz the main confusing part is "check the branch" vs. "check in to the branch"
17:17 acmoore gmcharlt, what's the argument for using the absolute path instead of '..' in PERL5LIB? It's sooooo much easier to put a .. there than it is to try to figure out the directory. I'm wiondering if it's worth it.
17:18 acmoore I'm already assuming a 'dev' install with things like ../etc and ../rewrite-config.PL, I think.
17:18 gmcharlt acmoore: not much
17:19 gmcharlt but re 'dev' install - test suite should make no assumptions about the install mode
17:19 gmcharlt since it doesn't need to care
17:19 gmcharlt it only needs to care about the directory that Koha was unpackaged into and the structure under t/run
17:19 acmoore yeah, it shouldn't. But, I just thought of that today when kados mentioned it. So, I haven't tried it
17:19 kados acmoore: lemme know when you have a patch for my issue, I'll test it
17:20 gmcharlt acmoore: ah, gotcha - yeah, worth testing to make sure it doesn't actually care about the isntall mode
17:20 frederic hello
17:23 acmoore kados, I think that you can use the patch in /home/acm/koha/dev/0001-testing-framework​-replacing-PERL5LIB-in-order-to-mo.patch would you like for me to send it to you somehow?
17:24 acmoore hi frederic
17:35 frederic About performance...
17:35 frederic On a Linux Debian box, with Koha Zebra installed, I have always two processes on top of top command list which occupy between 7 and 14% of CPU resources.
17:35 frederic Is it normal? Does others have such idle? Is it a performance issue?
17:36 frederic (My zebraqueue table is almost empty and not task is pending).  
17:36 gmcharlt is zebraqueue_daemon one of the processes?
17:36 hdl atz nengard... About your question, I think that this may also be the case with multiple branches library.
17:36 hdl independent or not.
17:37 nengard good to know - how can we confirm this/
17:37 nengard ?
17:37 hdl The question is to consider homebranch or holding branch.
17:37 hdl Will investiguate.
17:37 nengard thanks!
17:40 frederic gmcharlt: yes. I forgot to say that if I stop zebraqueue_daemon, it solves the issue.
17:41 gmcharlt frederic: ok, looks like I'll need to tune how frequently it checks zebraqueue
17:42 frederic Wouldn't be better to communicate with zebra indexer via messages rather than with entries in a MySQL table?
17:43 hdl nengard: HomeOrHoldingBranc used in line 1233 without a test on IndependantBranches.
17:44 nengard hdl thanks!!
17:57 owen in, does anyone know what this does: <!-- TMPL_IF NAME="messcompa" --> Hold over <!-- /TMPL_IF -->
18:04 atz looks like it is just used by transfers and reserves
18:04 owen Similarly, in <!-- TMPL_IF NAME="messcompa" --> check this transfer<!-- /TMPL_IF -->
18:05 atz it looks like some cludge for dates
18:06 atz               my $calcDate =
18:06 atz                  Date_to_Days( $reserve_year, $reserve_month, $reserve_day );
18:06 atz                my $today   = Date_to_Days(&Today);
18:06 atz                my $warning = ( $today > $calcDate );
18:06 atz                if ( $warning > 0 ) {
18:06 atz                    $getreserv{'messcompa'} = 1;
18:06 atz                }
18:08 atz gives a warning if there is a hold, but it's too late to fill it
18:09 owen I see, so that's what "Hold over" means.
18:09 owen But why would it be too late to fill a hold?
18:09 atz like if it is for a specific class, presentation, whatever
18:10 acmoore maybe paul_  knows[…]April/013787.html
18:11 owen Koha doesn't have any means of placing a hold with an expiration. Is that what you mean atz?
18:12 atz owen: actually, it does
18:12 owen ?
18:12 atz reserves.cancellationdate
18:13 owen To me cancellation is different from expiration
18:14 ryan afaik, code currently assumes that a hold is current && valid iff  isnull(reserves.cancellationdate).
18:14 ryan but perhaps gmcharlt fixed that when adding old_reserves ?
18:19 atz ryan: not finding anything like that in Reserves
18:20 owen It's weird, because my report shows one item and "Hold over" for that item.
18:20 owen When I check the patron record it says the item is on hold and in transit.
18:23 owen Why would a "Transfers to do" report at one library show an item from another library? Is it a report of things each library should be expecting?
18:23 owen Am I wasting my time because paul_'s not here? :)
18:24 atz i think transferstoreceive would fill that role, owen
18:26 atz the only time cancellationdate is in the WHERE part of a query is when cancelling a reserve
18:29 gmcharlt ryan: yes, that changed when old_reserves was created
18:32 atz _FixPriority is used incorrectly most of the time
18:32 atz wrong number of args, order of args
18:39 owen I'm seeing a bunch of these errors in my OPAC log: EXPR:at pos 8: non-initialized variable category
18:39 owen No file name, though
18:40 atz the variable is "category" in an EXPR
18:40 atz probably lists
18:40 gmcharlt owen: any thoughts about the patch for bug 2019, or should I just submit it as is
18:40 atz and probably in (or whatever it is that gets used for everything)
18:42 owen gmcharlt: I'd say submit as is, because it's workable even if it's not ideal. I'm keeping it on my list of things to look at.
18:42 gmcharlt ok, thanks
18:43 owen atz: looks like it's in opac-results and opac-results-grouped
18:43 atz EXPR is trouble
18:44 owen I'm not sure I understand what makes it choke
18:44 atz if you put an var in an EXPR, it has to exist, always
18:44 atz even if that EXPR is deep in a conditional, inside a loop.
18:45 owen regardless of whether the containing conditional evaluated as true?
18:45 atz that var has to exist even when the conditional is false,
18:45 owen Yuck.
18:45 atz basically worthless
18:45 owen Where's the logic in that?
18:46 atz H:T:P wants to stick w/ it's one-pass compile/execute
18:46 atz since that is what gives it good performance
18:46 owen So you couldn't even say <!-- TMPL_IF NAME="foo" --><!-- TMPL_IF EXPR="foo eq 'foo'
18:46 atz unfortunately, it makes the logic suck
18:46 atz owen: exactly
18:47 atz if you have an EXPR comparison, you need to artificially check/populate the variable in all cases where it would be undef
18:47 owen Or we have to avoid using TMPL_EXPR unless we know the variable exists.
18:47 atz right
18:48 atz yeah, it seemed like such a potentially useful thing
18:53 owen Well, at least I know my error log will contain every last instance of the TMPL_EXPR error, since Google's busily crawling my OPAC.
18:53 atz heh
18:55 atz i think I looked at that last week some time
18:55 atz :\
18:57 owen atz, you mean you've seen that problem too, or you've heard me griping about it?
18:57 atz yeah, maybe I just glanced around at your prompting
20:03 atz lol hdl's  "ayatollah of GPL" comment
20:04 hdl atz: :P

Channels | #koha index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary