metaproxy-moved-to-github.git
17 years agoMake rule for PDF generated by jade (metaproxyj.pdf)
Adam Dickmeiss [Thu, 25 Jan 2007 10:35:05 +0000 (10:35 +0000)]
Make rule for PDF generated by jade (metaproxyj.pdf)

17 years agoFix link
Adam Dickmeiss [Thu, 25 Jan 2007 10:34:27 +0000 (10:34 +0000)]
Fix link

17 years agoConfigurations assume current working directory is sibling to etc/xml; such
Adam Dickmeiss [Thu, 25 Jan 2007 10:28:06 +0000 (10:28 +0000)]
Configurations assume current working directory is sibling to etc/xml; such
as src, bin or etc itself.

17 years agoadded chapter on SRU server
Marc Cromme [Thu, 18 Jan 2007 12:39:41 +0000 (12:39 +0000)]
added chapter on SRU server

17 years agoadded cql_rpn module docs
Marc Cromme [Thu, 18 Jan 2007 11:32:42 +0000 (11:32 +0000)]
added cql_rpn module docs
added section on XInclude
updated all module headers to be more conformant in apprearence
included common XML entities in all XMl files

17 years agosession_shared
Adam Dickmeiss [Thu, 18 Jan 2007 09:39:38 +0000 (09:39 +0000)]
session_shared

17 years agopreable updated with SRU
Marc Cromme [Thu, 18 Jan 2007 09:24:47 +0000 (09:24 +0000)]
preable updated with SRU
Cvs: ----------------------------------------------------------------------

17 years agoFor PDF documentation, use dblatex instead of pdfjadetex
Adam Dickmeiss [Thu, 18 Jan 2007 09:20:52 +0000 (09:20 +0000)]
For PDF documentation, use dblatex instead of pdfjadetex

17 years agoDocument session_shared
Adam Dickmeiss [Thu, 18 Jan 2007 09:12:00 +0000 (09:12 +0000)]
Document session_shared

17 years agofixing bug #822 SRU diagnostic missing when making CQL-to-PQF errors
Marc Cromme [Wed, 17 Jan 2007 14:59:18 +0000 (14:59 +0000)]
fixing bug #822 SRU diagnostic missing when making CQL-to-PQF errors
factorizing dignostic code into new function bool z3950_to_srw_diagnostics_ok(...)

17 years agoadded record conversion filter to sru server config setup
Marc Cromme [Tue, 16 Jan 2007 10:00:06 +0000 (10:00 +0000)]
added record conversion filter to sru server config setup

17 years agoupdated XML RelaxNG schema with filter 'cql_rpn' section
Marc Cromme [Tue, 16 Jan 2007 09:23:24 +0000 (09:23 +0000)]
updated XML RelaxNG schema with filter 'cql_rpn' section
simplified SRU server config file

17 years agoremoved unneeded yaz log messages and yaz.h header inclusion
Marc Cromme [Tue, 16 Jan 2007 09:04:54 +0000 (09:04 +0000)]
removed unneeded yaz log messages and yaz.h header inclusion

17 years agothrowing out 9 unused header files and many lines of out-commented
Marc Cromme [Tue, 16 Jan 2007 08:49:05 +0000 (08:49 +0000)]
throwing out 9 unused header files and many lines of out-commented
unused code

17 years agorenamed methods and restructured code to follow coding guidelines set in filter-templ...
Marc Cromme [Mon, 15 Jan 2007 15:07:59 +0000 (15:07 +0000)]
renamed methods and restructured code to follow coding guidelines set in filter-template.cpp
added 'cql_rpn' filter to sru server config
added cql2pqf.txt text based config file
still missing documentation
still missing removing of unused, commented-out code in implementation file

17 years agoFix various link to reference. Added partinfo element for reference
Adam Dickmeiss [Fri, 12 Jan 2007 15:43:00 +0000 (15:43 +0000)]
Fix various link to reference. Added partinfo element for reference
introduction. It is needed, but only jade complains.

17 years agoAdded filter_cql_to_rpn.obj
Adam Dickmeiss [Fri, 12 Jan 2007 10:24:25 +0000 (10:24 +0000)]
Added filter_cql_to_rpn.obj

17 years agoAdded quick comment about config
Adam Dickmeiss [Fri, 12 Jan 2007 10:17:23 +0000 (10:17 +0000)]
Added quick comment about config

17 years agoImplemented cql_to_rpn filter. Requires new yazpp from today's CVS.
Adam Dickmeiss [Fri, 12 Jan 2007 10:16:21 +0000 (10:16 +0000)]
Implemented cql_to_rpn filter. Requires new yazpp from today's CVS.

17 years agoFixed problem introduced in configure.ac 1.44 regarding --with-boost
Adam Dickmeiss [Thu, 11 Jan 2007 13:56:29 +0000 (13:56 +0000)]
Fixed problem introduced in configure.ac 1.44 regarding --with-boost
option.

17 years agoMP version in bookinfo
Adam Dickmeiss [Thu, 11 Jan 2007 13:23:09 +0000 (13:23 +0000)]
MP version in bookinfo

17 years agoFix win32 compilation by removing macro 'max' if already defined
Adam Dickmeiss [Thu, 11 Jan 2007 12:55:09 +0000 (12:55 +0000)]
Fix win32 compilation by removing macro 'max' if already defined
(defined later in <limits>).

17 years agoAdded for win32.
Adam Dickmeiss [Thu, 11 Jan 2007 12:29:47 +0000 (12:29 +0000)]
Added for win32.

17 years agoMore fixes for win32 fnames
Adam Dickmeiss [Thu, 11 Jan 2007 12:29:02 +0000 (12:29 +0000)]
More fixes for win32 fnames

17 years agoupdated XML framework to reflect move of SRU explain from zeerex_explain filter to...
Marc Cromme [Mon, 8 Jan 2007 13:07:38 +0000 (13:07 +0000)]
updated XML framework to reflect move of SRU explain from zeerex_explain filter to sru_z3950 filter

17 years agoupdates zeerex_explain and sru_z3950 filter docs to reflect the move of SRU explain...
Marc Cromme [Mon, 8 Jan 2007 12:27:27 +0000 (12:27 +0000)]
updates zeerex_explain and sru_z3950 filter docs to reflect the move of SRU explain functionality to the later

17 years agoincluded SRU explain functionality in sru_z3950 filter
Marc Cromme [Mon, 8 Jan 2007 11:10:06 +0000 (11:10 +0000)]
included SRU explain functionality in sru_z3950 filter
removed unnecessary debug output statements

17 years agoadded example explain record
Marc Cromme [Mon, 8 Jan 2007 10:17:45 +0000 (10:17 +0000)]
added example explain record

17 years agoAdded output of XML config dom tree to SRU explain. Still need to merge zeerex_explai...
Marc Cromme [Sun, 7 Jan 2007 15:55:02 +0000 (15:55 +0000)]
Added output of XML config dom tree to SRU explain. Still need to merge zeerex_explain and sru_z3950 filter into one filter.

17 years agoupdated news entry for filters load_balance, zeerex_explain, sru_z3950, record_transf...
Marc Cromme [Sun, 7 Jan 2007 15:52:50 +0000 (15:52 +0000)]
updated news entry for filters load_balance, zeerex_explain, sru_z3950, record_transform, added news entry for RNC, RNG and XML Schemas, added entry for XSLT ressources

17 years agoupdated windows build to include the filters zeerex_explain and load_balance
Marc Cromme [Sun, 7 Jan 2007 15:48:26 +0000 (15:48 +0000)]
updated windows build to include the filters zeerex_explain and load_balance

17 years agomore work on SRU explain filters
Marc Cromme [Sun, 7 Jan 2007 00:41:18 +0000 (00:41 +0000)]
more work on SRU explain filters
let SRU explain packages pass through sru_z3950 filter
catch SRU explain packages in zeerex_explain filter
depreciate build_simple_explain() function
introduced build_sru_explain() function which does it all
introduced SRUServerInfo class used to determine SRU database, host and port _before_ parsing of SRU request did succeed, as one has to know which of multiple databases expain to send in case that SRU request is unparsable
still missing actual dump of XML dom explain from correct database
recognized that splitting SRU explain in zeerex_explain filter and SRU searchRetrieve in sru_z3950 filter is a bad idea, as double work is needed to parse the same explain XML dom info, but for sake of this checkin these are kept separated. planned to move SRU explain to sru_z3950 filter, and use zeerex_explain filter for z3950 packages zeerex explain operation only (maybe making mapping from explain classic to zeerex explain ??)

17 years agomore work on zeerez_explain filter
Marc Cromme [Fri, 5 Jan 2007 12:27:23 +0000 (12:27 +0000)]
more work on zeerez_explain filter

17 years agomore work on zeerex explain filter, to be continued
Marc Cromme [Fri, 5 Jan 2007 12:26:50 +0000 (12:26 +0000)]
more work on zeerex explain filter, to be continued

17 years agoallowing any content in zeerex_explain filter
Marc Cromme [Fri, 5 Jan 2007 11:28:48 +0000 (11:28 +0000)]
allowing any content in zeerex_explain filter
need to write a nice zeerex explain RelaxNG syntax, but not now ..

17 years agoadded zeerex_explain config filter section
Marc Cromme [Fri, 5 Jan 2007 10:58:30 +0000 (10:58 +0000)]
added zeerex_explain config filter section

17 years agoadded documentation on zeerex_explain filter
Marc Cromme [Fri, 5 Jan 2007 10:56:17 +0000 (10:56 +0000)]
added documentation on zeerex_explain filter

17 years agoremoved unnecessary debug output statements
Marc Cromme [Thu, 4 Jan 2007 13:22:56 +0000 (13:22 +0000)]
removed unnecessary debug output statements

17 years agochanged back to z38.50 client backend
Marc Cromme [Thu, 4 Jan 2007 13:22:16 +0000 (13:22 +0000)]
changed back to z38.50 client backend

17 years agocounting dead connections correctly
Marc Cromme [Thu, 4 Jan 2007 13:03:17 +0000 (13:03 +0000)]
counting dead connections correctly

17 years agocounting dead backends correctly
Marc Cromme [Wed, 3 Jan 2007 16:25:24 +0000 (16:25 +0000)]
counting dead backends correctly
still never decreasing count on dead backends, which means they will be
less and less accessed over time.

17 years agoadded documentation on new filter load_balance
Marc Cromme [Wed, 3 Jan 2007 15:34:50 +0000 (15:34 +0000)]
added documentation on new filter load_balance

17 years agofirst working version of load balancing filter
Marc Cromme [Wed, 3 Jan 2007 15:03:55 +0000 (15:03 +0000)]
first working version of load balancing filter
still needs testing for race conditions and wrong mutex locks
there seems to be a slight error in the counting of dead connections, needs improvement
also removing of debug output is needed

17 years agoadded first shot on load balance filter which removes all but one vhost from Z39...
Marc Cromme [Tue, 2 Jan 2007 15:35:36 +0000 (15:35 +0000)]
added first shot on load balance filter which removes all but one vhost from Z39.50 init package based on nice load balancing algorithm.
Missing is still the gathering of workload data and the implementatin of the nice algorithm, but the framework is up and running

17 years agoadded a sketch of some unified config stuff for yaz-frontend, zebra, metaproxy, retri...
Marc Cromme [Sat, 30 Dec 2006 23:41:16 +0000 (23:41 +0000)]
added a sketch of some unified config stuff for yaz-frontend, zebra, metaproxy, retrievalinfo, etc .. very experimental yet ..

17 years agoadded zeerex-explain filter part
Marc Cromme [Fri, 29 Dec 2006 15:11:20 +0000 (15:11 +0000)]
added zeerex-explain filter part

17 years agoadded first version of ZeeRex Explain filter for SRU explain
Marc Cromme [Thu, 28 Dec 2006 14:59:43 +0000 (14:59 +0000)]
added first version of ZeeRex Explain filter for SRU explain
need much more configuration work to be done

17 years agomoved common SRU functionality from SRU_to_Z3950 class methods to sru_util.hpp and...
Marc Cromme [Thu, 28 Dec 2006 13:26:06 +0000 (13:26 +0000)]
moved common SRU functionality from SRU_to_Z3950 class methods to sru_util.hpp and sru_util.cpp general functions

17 years agoremoved debug output print statements
Marc Cromme [Thu, 28 Dec 2006 12:18:01 +0000 (12:18 +0000)]
removed debug output print statements

17 years agodefault database port 9999
Marc Cromme [Thu, 28 Dec 2006 12:17:43 +0000 (12:17 +0000)]
default database port 9999

17 years agorecord retrieval test updated to reflect new <retrievalinfo> element syntax
Marc Cromme [Tue, 12 Dec 2006 14:48:13 +0000 (14:48 +0000)]
record retrieval test updated to reflect new <retrievalinfo> element syntax

17 years agoupdated XML config files to use Xinclude, and to conform to new <retrievalinfo>...
Marc Cromme [Tue, 12 Dec 2006 11:01:40 +0000 (11:01 +0000)]
updated XML config files to  use Xinclude, and to conform to new <retrievalinfo> format
updated recordtransform filter to accept new format
updated master schemas to reflect changes

17 years agochanged filter query rewrite config syntax from <xslt>pqf2pqf.xsl</xslt>
Marc Cromme [Fri, 1 Dec 2006 12:37:26 +0000 (12:37 +0000)]
changed  filter query rewrite config syntax from <xslt>pqf2pqf.xsl</xslt>
to  <xslt stylesheet="etc/pqf2pqf.xsl"/> to make it equal to YAZ retrievalinfo syntax.
changed config files path from 'pqf2pqf.xsl' to 'etc/pqf2pqf.xsl' to make metaproxy run when started from metaproxy cvs root dir

17 years agofixing relaxng-to-xmlschema translation error by new namespace for retirevalinfo
Marc Cromme [Thu, 30 Nov 2006 23:10:26 +0000 (23:10 +0000)]
fixing relaxng-to-xmlschema translation error by new namespace for retirevalinfo
and by choice between root elements metaproxy and retrievalinfo

17 years agoadded Xinclude restricted to localhost for partitioning of XML config files
Marc Cromme [Wed, 29 Nov 2006 22:37:08 +0000 (22:37 +0000)]
added Xinclude restricted to localhost for partitioning of XML config files

17 years agofixed typo with respect to version number
Marc Cromme [Wed, 29 Nov 2006 21:45:04 +0000 (21:45 +0000)]
fixed typo with respect to version number

17 years agosplit config file into retrievalinfo part and common metaproxy config part
Marc Cromme [Wed, 29 Nov 2006 21:43:37 +0000 (21:43 +0000)]
split config file into retrievalinfo part and common metaproxy config part

17 years agosplitted metaproxy relaxng compact into metaproxy and retrieval compact schema
Marc Cromme [Wed, 29 Nov 2006 14:49:20 +0000 (14:49 +0000)]
splitted metaproxy relaxng compact into metaproxy and retrieval compact schema

17 years agochanged config file root element from <yp2 ... > to
Marc Cromme [Wed, 29 Nov 2006 13:00:53 +0000 (13:00 +0000)]
changed config file root element from <yp2 ... > to
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
adjusted all sources, config files, documentation and schemas according to this change
updated sources to generate better error messages when incorrect XML is provided in config files

17 years agoadded XSLT stylesheet to compute CQL-to-PQF config from Zeerex explain record
Marc Cromme [Wed, 29 Nov 2006 11:28:18 +0000 (11:28 +0000)]
added XSLT stylesheet to compute CQL-to-PQF config from Zeerex explain record

18 years agoAdded filter_record_transform.obj. METAPROXY.1.0.7
Adam Dickmeiss [Fri, 17 Nov 2006 17:58:07 +0000 (17:58 +0000)]
Added filter_record_transform.obj.

18 years agoTowards 1.0.7
Adam Dickmeiss [Fri, 17 Nov 2006 17:30:52 +0000 (17:30 +0000)]
Towards 1.0.7

18 years agoAdded 'timeout' setting for filter frontend_net which specifies the number
Adam Dickmeiss [Fri, 17 Nov 2006 14:03:45 +0000 (14:03 +0000)]
Added 'timeout' setting for filter frontend_net which specifies the number
of seconds a session is idle before it is closed. Default timeout is
300 (5 minutes).

18 years agoNew
Mike Taylor [Tue, 31 Oct 2006 12:49:12 +0000 (12:49 +0000)]
New

18 years agoIgnore generated schemata
Mike Taylor [Tue, 31 Oct 2006 12:48:42 +0000 (12:48 +0000)]
Ignore generated schemata

18 years agoIgnore three more generated binaries.
Mike Taylor [Tue, 31 Oct 2006 12:47:22 +0000 (12:47 +0000)]
Ignore three more generated binaries.

18 years agoNew
Mike Taylor [Sat, 14 Oct 2006 10:46:57 +0000 (10:46 +0000)]
New

18 years agoMention trang as requirement for CVS version
Adam Dickmeiss [Fri, 13 Oct 2006 10:31:54 +0000 (10:31 +0000)]
Mention trang as requirement for CVS version

18 years agoEnabled docdir setting again. Autotools does not set it on FreeBSD
Adam Dickmeiss [Fri, 13 Oct 2006 10:21:58 +0000 (10:21 +0000)]
Enabled docdir setting again. Autotools does not set it on FreeBSD

18 years agoSupport --with-boost=PREFIX option. Check for -lpthread before Boost is
Adam Dickmeiss [Fri, 13 Oct 2006 09:54:30 +0000 (09:54 +0000)]
Support --with-boost=PREFIX option. Check for -lpthread before Boost is
checked.

18 years agoUpdates for FreeBSD
Adam Dickmeiss [Fri, 13 Oct 2006 09:53:51 +0000 (09:53 +0000)]
Updates for FreeBSD

18 years agoadded missing Makefile.am
Marc Cromme [Fri, 13 Oct 2006 08:17:40 +0000 (08:17 +0000)]
added missing Makefile.am

18 years agochopped obsolete future directions out
Marc Cromme [Thu, 12 Oct 2006 12:04:23 +0000 (12:04 +0000)]
chopped obsolete future directions out

18 years agofixed typo's
Marc Cromme [Thu, 12 Oct 2006 12:02:19 +0000 (12:02 +0000)]
fixed typo's

18 years agoremoved Mike's brain-dead statements about C++ and LaTeX
Marc Cromme [Thu, 12 Oct 2006 11:52:24 +0000 (11:52 +0000)]
removed Mike's brain-dead statements about C++ and LaTeX
fixed typo's

18 years agore-ordered in lexicographical order
Marc Cromme [Thu, 12 Oct 2006 11:34:07 +0000 (11:34 +0000)]
re-ordered in lexicographical order

18 years agoadded documentation for the sru_z3950 filter
Marc Cromme [Thu, 12 Oct 2006 11:31:11 +0000 (11:31 +0000)]
added documentation for the sru_z3950 filter

18 years agoadded documentaton for filter_record_transform
Marc Cromme [Thu, 12 Oct 2006 08:27:35 +0000 (08:27 +0000)]
added documentaton for filter_record_transform

18 years agoadded suport for 'make distcheck' target using no GNU make extentions at all
Marc Cromme [Wed, 11 Oct 2006 13:21:51 +0000 (13:21 +0000)]
added suport for 'make distcheck' target using no GNU make extentions at all

18 years agoadded XML syntax checking to 'make check' target
Marc Cromme [Tue, 10 Oct 2006 15:41:51 +0000 (15:41 +0000)]
added XML syntax checking to 'make check' target

18 years agoadded full RelaxNG based config file syntax checking
Marc Cromme [Tue, 10 Oct 2006 15:10:16 +0000 (15:10 +0000)]
added full RelaxNG based  config file syntax checking
which checks every filter according to it's own rules.
These are exported by the 'make' target to RelaxNG XML and XML Schema instances using the nifty 'trang' utility.
added check of all config files in etc dir according to both RelaxNG XML and XML Schema instances.
check targets are 'make check_xsd' and 'make check_rng' when standing in 'etc' directory.
Still missing to integrate XML checks into 'make check' target.

18 years agoadapting lower-case convention
Marc Cromme [Tue, 10 Oct 2006 14:20:16 +0000 (14:20 +0000)]
adapting lower-case convention

18 years agofilter_backend_test checks for element set name . None, "B" and "F"
Adam Dickmeiss [Tue, 10 Oct 2006 09:47:50 +0000 (09:47 +0000)]
filter_backend_test checks for element set name . None, "B" and "F"
are supported.

18 years agoFirst functional record transform filter. There is still work to do
Adam Dickmeiss [Tue, 10 Oct 2006 09:17:24 +0000 (09:17 +0000)]
First functional record transform filter. There is still work to do
WRT error handling from a backend.

18 years agopretty-formatting
Marc Cromme [Fri, 6 Oct 2006 22:51:40 +0000 (22:51 +0000)]
pretty-formatting

18 years agoupdated wih copyright info
Marc Cromme [Fri, 6 Oct 2006 22:42:24 +0000 (22:42 +0000)]
updated wih copyright info
multifilter configuration validation updated

18 years agoadded specific validating instructions for the filter types
Marc Cromme [Fri, 6 Oct 2006 22:30:01 +0000 (22:30 +0000)]
added specific validating instructions for the filter types
   ( filter_refid
   | filter_auth_simple
   | filter_backend_test
   | filter_bounce
   | filter_frontend_net
   | filter_http_file
   | filter_log
   | filter_multi
   | filter_query_rewrite
   | filter_virt_db
   | filter_z3950_client
   )

18 years agoadded first shot on relaxng schema for metaproxy
Marc Cromme [Fri, 6 Oct 2006 14:28:26 +0000 (14:28 +0000)]
added first shot on relaxng schema for metaproxy
still need to resolve ambiguity in schema

18 years agoprogressing slowly
Marc Cromme [Thu, 5 Oct 2006 20:19:50 +0000 (20:19 +0000)]
progressing slowly

18 years agorecord transformation - encoding of z3950 present package schema and elemname
Marc Cromme [Thu, 5 Oct 2006 12:17:24 +0000 (12:17 +0000)]
record transformation - encoding of z3950 present package schema and elemname
still need to apply correct transformations when presentresponse arrives

18 years agocomputing backend record syntax and elementset name/schema
Marc Cromme [Wed, 4 Oct 2006 14:04:00 +0000 (14:04 +0000)]
computing backend record syntax and elementset name/schema
added helper functions for this computation
added Z3950 package logging of syntax and element set name

18 years agoadded xml ressources - most notably the LOC marc21-toXYZ stylesheets
Marc Cromme [Wed, 4 Oct 2006 11:21:47 +0000 (11:21 +0000)]
added xml ressources - most notably the LOC marc21-toXYZ stylesheets
added correct reading of filter_record_transform XML config files
still need to program record conversion in filter_record_transform

18 years agoadded scaffolding for a Z3950 present record transform filter.
Marc Cromme [Tue, 3 Oct 2006 14:04:22 +0000 (14:04 +0000)]
added scaffolding for a Z3950 present record transform filter.
much to do yet

18 years agomore diagnostics added
Marc Cromme [Tue, 3 Oct 2006 12:31:26 +0000 (12:31 +0000)]
more diagnostics added
scan operation roughly implemented, but protected by diagnostics for now

18 years agofactorizing HTTP specific code out of SRU2Z3950 filter into utils.hpp
Marc Cromme [Tue, 3 Oct 2006 07:57:40 +0000 (07:57 +0000)]
factorizing HTTP specific code out of SRU2Z3950 filter into utils.hpp
correcting record cound requested by present - offset one error corrected
do not request any present of z3950 record out of known range

18 years agofactorizing http utils and sru utild code out of SRUtoZ3959 filter and into util...
Marc Cromme [Mon, 2 Oct 2006 13:44:48 +0000 (13:44 +0000)]
factorizing http utils and sru utild code out of SRUtoZ3959 filter and into util.hpp and sru_util.hpp

18 years agosending explain even when decoding of SRU package failed.
Marc Cromme [Mon, 2 Oct 2006 12:17:54 +0000 (12:17 +0000)]
sending explain even when decoding of SRU package failed.
protecting segfaults by checking pointer to Z_SRW_explainRequest argument

18 years agoadded socket listen_host and listen_port to Origin class
Marc Cromme [Mon, 2 Oct 2006 12:01:06 +0000 (12:01 +0000)]
added socket listen_host and listen_port to Origin class
added parsing of HTTP server_host and server_port
added use of HTTP server_host and server_port in SRU short explain

18 years agocleaning code
Marc Cromme [Fri, 29 Sep 2006 12:24:49 +0000 (12:24 +0000)]
cleaning code
clean implementation of filter::Log::Impl as real Pimpl scenario

18 years agocode cleanup
Marc Cromme [Fri, 29 Sep 2006 09:48:35 +0000 (09:48 +0000)]
code cleanup
renamed true PIMPL implementation SRUtoZ3950::Rep to SRUtoZ3950::Impl
updated true PIMPL Template::Impl