User:Mef/SopranoSesame

The new stuff
Going back to first principles -- and patching spring (and its crazy dependency chain) out of the process -- I've managed as of today (24/11/2009) to create a SRPM of sesame that builds on my computer. There are a number of dependencies, most of them supporting packages from aduna-commons and aduna-appbase. There are also a number of existing Fedora packages which need minor updates in order for Sesame (or its dependencies) to build successfully against them.

The following graph shows the dependency chain. The colour scheme is as follows: red indicates a package which is pending in Fedora (under review or awaiting CVS); blue indicates an existing Fedora package which needs an update; and dotted lines indicate dependencies which I have patched out. Click the image for a fullsize version.

You can also download the dependency graph in various other forms if the .png file isn't useful:
 * [[Media:Sesame-Dependencies.pdf]]
 * [[Media:Sesame-Dependencies.svg]]

Links to SRPMs and spec files
I've put all of the relevant SRPMs and specs here: http://www.macs.hw.ac.uk/~mef3/soprano-sesame/ This includes unofficial versions of many of the Fedora packages which need modification, and a modified version of the soprano-backend-sesame SRPM from kde-redhat that uses the system sesame (see below).

Packages under review

 * xml-security: https://bugzilla.redhat.com/show_bug.cgi?id=532535 (probably duplicate of https://bugzilla.redhat.com/show_bug.cgi?231305 -- stalled old review)
 * aduna-commons-io: https://bugzilla.redhat.com/show_bug.cgi?id=563477 -- submitted on 10/2/2010
 * aduna-commons-i18n: https://bugzilla.redhat.com/show_bug.cgi?id=563481 -- submitted on 10/2/2010
 * aduna-commons-lang: https://bugzilla.redhat.com/show_bug.cgi?id=563483 -- submitted on 10/2/2010
 * aduna-commons-xml: https://bugzilla.redhat.com/show_bug.cgi?id=567951 -- submitted on 24/2/2010
 * aduna-commons-net: https://bugzilla.redhat.com/show_bug.cgi?id=567952 -- submitted on 24/2/2010
 * aduna-commons-collections: https://bugzilla.redhat.com/show_bug.cgi?id=567949 -- submitted on 24/2/2010
 * aduna-commons-iteration: https://bugzilla.redhat.com/show_bug.cgi?id=567950 -- submitted on 24/2/2010

Requested updates to existing Fedora packages
Note that I have requested provenpackager status on 2/12/2009 (edit: and was granted it the same day, wow!) in an effort to make the (mostly trivial) required changes in existing packages (https://fedorahosted.org/fesco/ticket/283). As of 6/1/2010, there are no more outstanding issues!

Completed bugs

 * janino: https://bugzilla.redhat.com/show_bug.cgi?id=530986 -- queued as an update on 27/11/2009, http://admin.fedoraproject.org/updates/janino-2.5.15-3.fc11 and http://admin.fedoraproject.org/updates/janino-2.5.15-3.fc12
 * postgresql-jdbc: https://bugzilla.redhat.com/show_bug.cgi?id=538487 -- updated package pushed to testing on 25/11/2009, http://admin.fedoraproject.org/updates/F12/FEDORA-2009-12186
 * mysql-connector-java: https://bugzilla.redhat.com/show_bug.cgi?id=538493 -- testing request created on 4/12/2009, http://admin.fedoraproject.org/updates/mysql-connector-java-5.1.8-2.fc12 and http://admin.fedoraproject.org/updates/mysql-connector-java-5.1.8-2.fc11
 * jakarta-commons-modeler: https://bugzilla.redhat.com/show_bug.cgi?id=542730 (causes https://bugzilla.redhat.com/show_bug.cgi?id=542735) -- pushed to testing
 * jakarta-commons-pool: https://bugzilla.redhat.com/show_bug.cgi?id=538483 -- testing requested on 11/12/009
 * jetty: https://bugzilla.redhat.com/show_bug.cgi?id=543081 -- maintainer pushed update in December
 * jakarta-commons-fileupload: https://bugzilla.redhat.com/show_bug.cgi?id=540447 (add Maven metadata), https://bugzilla.redhat.com/show_bug.cgi?id=543446 (update to more recent upstream version) -- testing requested on 6/1/2010, http://admin.fedoraproject.org/updates/jakarta-commons-fileupload-1.2.1-1.fc12
 * geronimo-specs: https://bugzilla.redhat.com/show_bug.cgi?id=530088 -- this package is a big horrible thing, and it turns out I can work around the issue in it for now
 * javamail: https://bugzilla.redhat.com/show_bug.cgi?id=543480 -- approved; testing requested on 11/1/2010 https://admin.fedoraproject.org/updates/javamail-1.4.3-2.fc12
 * logback: https://bugzilla.redhat.com/show_bug.cgi?id=540986 -- approved on 12/1/2010, shortly coming to testing
 * aduna-root-poms: https://bugzilla.redhat.com/show_bug.cgi?id=540984 -- approved on 2/2/2010
 * aduna-commons-pom: https://bugzilla.redhat.com/show_bug.cgi?id=561439 -- approved on 10/2/2010
 * aduna-commons-text: https://bugzilla.redhat.com/show_bug.cgi?id=563479 -- approved on 24/2/2010
 * aduna-commons-concurrent: https://bugzilla.redhat.com/show_bug.cgi?id=563480 -- approved on 24/2/2010

Modifications to soprano-backend-sesame2
I've successfully patched the soprano-backend-sesame2 SRPM from kde-redhat to build against this version of sesame, and it appears to work when I run it. Here are the spec-file diffs:

--- soprano-backend-sesame2.spec       2009-11-02 19:38:37.000000000 +0000 +++ soprano-backend-sesame2.spec.mef   2009-11-24 15:54:55.987342313 +0000 @@ -4,7 +4,7 @@                                                                                                   Summary: Sesame2 Backend for Soprano Name:   soprano-backend-sesame2 Version: 2.3.67 -Release: 0.1.%{snap}%{?dist} +Release: 0.2.%{snap}%{?dist} Group:  System Environment/Libraries License: LGPLv2+ @@ -12,6 +12,7 @@                                                                                                 Source0: soprano-%{snap}svn.tar.bz2 Source1: soprano-svn_checkout.sh                                                                                +Patch0:  soprano-sesame-classpath.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExcludeArch: ppc ppc64 @@ -22,9 +23,15 @@                                                                                                BuildRequires: redland-devel BuildRequires: raptor-devel BuildRequires: qt4-devel +BuildRequires: sesame, aduna-commons-iteration +# We may not need all of the aduna-commons-* stuff in practice +Requires: sesame +Requires: aduna-appbase-core, aduna-appbase-logging, aduna-commons-collections +Requires: aduna-commons-concurrent, aduna-commons-i18n, aduna-commons-io +Requires: aduna-commons-iteration, aduna-commons-lang, aduna-commons-net +Requires: aduna-commons-platform, aduna-commons-text, aduna-commons-xml Requires: java-1.6.0 -#Requires: java-1.6.0-openjdk%{?_isa} Requires: soprano%{?_isa} = %{version}
 * 1) Source0: http://downloads.sf.net/soprano/soprano-%{version}.tar.bz2

@@ -41,9 +48,13 @@ %prep %setup -q -n soprano%{!?snap:-%{version}}
 * 1) pkg rename

+find. -name "*.jar" | xargs rm -f +find. -name "*.class" | xargs rm -f +%patch0 -p1 +

%build -export JAVA_HOME=%{_jvmdir}/java +export JAVA_HOME=%{java_home} mkdir -p %{_target_platform} pushd %{_target_platform} %{cmake} \ @@ -55,6 +66,9 @@

make %{?_smp_mflags} -C %{_target_platform}/backends/sesame2

+%{javac} -cp `build-classpath sesame/repository sesame/model aduna-commons-iteration` \ +      -d backends/sesame2 backends/sesame2/*.java +

%install rm -rf $RPM_BUILD_ROOT @@ -91,6 +105,9 @@

%changelog +* Tue Nov 24 2009 Mary Ellen Foster  2.3.67-0.2.20091102 +- Build against system sesame instead of using the included jar files + * Mon Nov 02 2009 Rex Dieter  2.3.67-0.1.20091102 - soprano-2.3.67 (20091102 snapshot)

And here is the patch file referred to above -- this CLASSPATH is probably overkill, but it works, and since the main symptom of an inadequate CLASSPATH is that nepomuk segfaults, I'm leaving it like this for now. :)

diff -ur soprano-2.3.1/backends/sesame2/CMakeLists.txt soprano-2.3.1.new/backends/sesame2/CMakeLists.txt --- soprano-2.3.1/backends/sesame2/CMakeLists.txt      2009-06-25 08:44:09.000000000 +0100 +++ soprano-2.3.1.new/backends/sesame2/CMakeLists.txt  2009-11-24 14:37:39.441280419 +0000 @@ -53,9 +53,6 @@ endif(WIN32)

install(FILES - openrdf-sesame-2.2.4-onejar.jar -  slf4j-api-1.5.5.jar -  slf4j-simple-1.5.5.jar   SopranoSesame2Wrapper.class   DESTINATION share/soprano/sesame2   ) diff -ur soprano-2.3.1/backends/sesame2/sesame2-config.h.cmake soprano-2.3.1.new/backends/sesame2/sesame2-config.h.cmake --- soprano-2.3.1/backends/sesame2/sesame2-config.h.cmake      2009-06-25 08:44:09.000000000 +0100 +++ soprano-2.3.1.new/backends/sesame2/sesame2-config.h.cmake  2009-11-24 14:39:34.208280016 +0000 @@ -1 +1 @@ -#define SESAME2_CLASSPATH "${CMAKE_INSTALL_PREFIX}/share/soprano/sesame2/openrdf-sesame-2.2.4-onejar.jar:${CMAKE_INSTALL_PREFIX }/share/soprano/sesame2/slf4j-api-1.5.5.jar:${CMAKE_INSTALL_PREFIX}/share/soprano/sesame2/slf4j-simple-1.5.5.jar:${CMAKE_INSTALL _PREFIX}/share/soprano/sesame2/" +#define SESAME2_CLASSPATH "/usr/share/java/aduna-commons-collections.jar:/usr/share/java/aduna-commons-concurrent.jar:/usr/shar e/java/aduna-commons-i18n.jar:/usr/share/java/aduna-commons-io.jar:/usr/share/java/aduna-commons-iteration.jar:/usr/share/java/a duna-commons-lang.jar:/usr/share/java/aduna-commons-net.jar:/usr/share/java/aduna-commons-platform/info.jar:/usr/share/java/adun a-commons-platform/desktop.jar:/usr/share/java/aduna-commons-text.jar:/usr/share/java/aduna-commons-xml.jar:/usr/share/java/sesa me/queryresultio-text.jar:/usr/share/java/sesame/rio-turtle.jar:/usr/share/java/sesame/rio-trig.jar:/usr/share/java/sesame/runti me.jar:/usr/share/java/sesame/queryresultio-api.jar:/usr/share/java/sesame/rio-ntriples.jar:/usr/share/java/sesame/repository-da taset.jar:/usr/share/java/sesame/repository-sail.jar:/usr/share/java/sesame/repository-manager.jar:/usr/share/java/sesame/rio-rd fxml.jar:/usr/share/java/sesame/repository-http.jar:/usr/share/java/sesame/sail-inferencer.jar:/usr/share/java/sesame/queryresul tio-binary.jar:/usr/share/java/sesame/model.jar:/usr/share/java/sesame/queryalgebra-evaluation.jar:/usr/share/java/sesame/rio-ap i.jar:/usr/share/java/sesame/queryparser-sparql.jar:/usr/share/java/sesame/sail-rdbms.jar:/usr/share/java/sesame/rio-n3.jar:/usr /share/java/sesame/queryparser-serql.jar:/usr/share/java/sesame/queryparser-api.jar:/usr/share/java/sesame/repository-api.jar:/u sr/share/java/sesame/repository-event.jar:/usr/share/java/sesame/queryresultio-sparqlxml.jar:/usr/share/java/sesame/sail-nativer df.jar:/usr/share/java/sesame/http-client.jar:/usr/share/java/sesame/rio-trix.jar:/usr/share/java/sesame/queryresultio-sparqljso n.jar:/usr/share/java/sesame/queryalgebra-model.jar:/usr/share/java/sesame/console.jar:/usr/share/java/sesame/query.jar:/usr/sha re/java/sesame/sail-api.jar:/usr/share/java/sesame/repository-contextaware.jar:/usr/share/java/sesame/sail-memory.jar:/usr/share /java/sesame/http-protocol.jar:/usr/share/java/slf4j/simple.jar:/usr/share/java/slf4j/api.jar"

Older stuff
I'm keeping around the rest of the page because it could potentially be interesting, even if it's not relevant at the current time -- for example, if we decide to package Spring later on.

Review requests
'' Please do not review any of these packages until further notice -- turns out I didn't do a good enough job of searching for existing packages/review requests before filing them. I'm in the process of cleaning up the list. Sorry about that. :(''
 * aopalliance - Java/J2EE AOP standards https://bugzilla.redhat.com/show_bug.cgi?id=532519
 * Duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=479598; currently blocking on a legal/licensing issue
 * derby - An open source database implemented entirely in Java https://bugzilla.redhat.com/show_bug.cgi?id=532520
 * Bug https://bugzilla.redhat.com/show_bug.cgi?id=252059 duplicated to it (previous dead review request)
 * jarjar - Jar Jar Links https://bugzilla.redhat.com/show_bug.cgi?id=532523
 * Review in progress -- a couple of TODOs and it should be good
 * gnu-trove - High performance collections for Java https://bugzilla.redhat.com/show_bug.cgi?id=532521
 * Closed as duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=504891 -- live review that looks almost completed
 * hessian - Binary web service protocol https://bugzilla.redhat.com/show_bug.cgi?id=532522
 * https://bugzilla.redhat.com/show_bug.cgi?id=252095 duplicated to it -- previous dead review
 * jcifs - Common Internet File System Client in 100% Java https://bugzilla.redhat.com/show_bug.cgi?id=532524
 * jexcelapi - A Java API to read, write and modify Excel spreadsheets https://bugzilla.redhat.com/show_bug.cgi?id=532525
 * jrexx - Automaton based regular expression API for Java https://bugzilla.redhat.com/show_bug.cgi?id=532526
 * Package is dead.package'd -- check out whether it's really needed
 * junit-addons - JUnitX helper classes for JUnit https://bugzilla.redhat.com/show_bug.cgi?id=532527
 * ldapsdk - Enables applications to manage information stored in an LDAP directory https://bugzilla.redhat.com/show_bug.cgi?id=532528
 * nanoxml - A small XML parser for Java https://bugzilla.redhat.com/show_bug.cgi?id=532529
 * Duplicated to https://bugzilla.redhat.com/show_bug.cgi?id=532315, in progress
 * ognl - Object-Graph Navigation Language https://bugzilla.redhat.com/show_bug.cgi?id=532530
 * serp - Bytecode manipulation framework https://bugzilla.redhat.com/show_bug.cgi?id=532531
 * vafer-dependency - Analyse and modify class dependencies https://bugzilla.redhat.com/show_bug.cgi?id=532532
 * wsdl4j - Web Services Description Language Toolkit for Java https://bugzilla.redhat.com/show_bug.cgi?id=532533
 * Already in Fedora (oops!!!)
 * xml-security - Implementation of W3C security standards for XML https://bugzilla.redhat.com/show_bug.cgi?id=532535
 * Probably duplicate of https://bugzilla.redhat.com/show_bug.cgi?231305 -- stalled review
 * xml-im-exporter - XML Im-/Exporter https://bugzilla.redhat.com/show_bug.cgi?id=532534
 * Previous stalled review https://bugzilla.redhat.com/show_bug.cgi?id=252048 duplicated to this bug

Unmet dependencies from the jpackage version of spring
I'm keeping this list for posterity, but note that most of this is not actually needed for sesame if I patch out the http-server-spring subpackage.


 * annotation_1_0_api -- Not sure
 * aopalliance -- UP FOR REVIEW
 * apache-ibatis-sqlmap >= 0:2.3.2 -- needs cglib, derby, db-ojb
 * derby: UP FOR REVIEW
 * db-ojb: apache-jdo-1.1*, other stuff ...
 * apache-jdo-2.0-api -- probably just needs renaming of dependencies
 * NO: Building the newest version (2.2) needs geronimo-jpa_3.0_spec-1.0, which is not in current Fedora geronimo-specs package
 * aspectj >= 0:1.5.3 -- jpackage, in progress (seems to want an old JDK (< 0:1.5.0, investigate)
 * bsh2 -- Fedora has bsh v.1
 * burlap >= 0:3.0.8 -- needs caucho-services, hessian
 * caucho-services: builds fine is it current? the SRPM uses a gentoo source bundle ...
 * c3p0 >= 0:0.9.0 -- no deps, build issues -- doesn't work with the 1.6 version of javax.sql; can I make it use 1.5?
 * cglib -- needs (aspeckwerkz and) jarjar
 * aspectwerkz: jarjar, jrexx, piccolo, gnu-trove
 * jrexx: UP FOR REVIEW
 * piccolo: includes very old bundled libraries; don't really need it
 * gnu-trove: UP FOR REVIEW
 * commonj_1_1_apis -- Not sure
 * easymock-classextension -- needs cglib
 * ehcache >= 0:1.3.0 -- jpackage has 1.3.0, which requires many things including spring v1 (WTF?). Maybe try updating to 1.5.0 for Fedora
 * ejb_3_0_api -- Not sure
 * el_1_0_api -- Not sure
 * geronimo-interceptor-3.0-api -- Not sure
 * glassfish-javamail >= 0:1.4.0 -- needs glassfish-jaf
 * glassfish-jaf: builds fine
 * glassfish-jstl -- needs jbossweb (urgh)
 * glassfish-persistence-impl -- should be fine
 * groovy15 -- needs cglib, jarjar, jmock, mockobjects, openejb1, xstream
 * jmock: needs cglib
 * mockobjects: no extra deps; VERY VERY old and may not be worth patching
 * openejb: needs a bunch of maven stuff (probably just package name issues), along with castor0
 * castor0: needs cglib, ldapsdk, mockejb, tyrex
 * ldapsdk: UP FOR REVIEW
 * mockejb: aspectj, cglib, jakarta-cactus
 * jakarta-cactus: aspectj, cargo, maven stuff
 * cargo: needs ITSELF (?!?!), jmock, gnu-trove, jakarta-commons-vfs
 * jakarta-commons-vfs: jakarta-slide-webdavclient, jcifs
 * jakarta-slide-webdavclient: jakarta-commons-transaction, xml-im-exporter
 * jakarta-commons-transaction: builds cleanly
 * xml-im-exporter: UP FOR REVIEW
 * jcifs: UP FOR REVIEW
 * tyrex: castor0(?!) ldapsdk, openorb, openorb-tns
 * openorb*: avalon stuff (package name issue only), excalibur-configuration (is obsolete! may need to patch openorb)
 * xstream: needs cglib, jettison, jmock, wstx
 * jettison: needs jakarta-slide-webdavclient
 * wstx: no extra dependencies; builds nicely, nearly done -- dead old review request
 * hessian -- UP FOR REVIEW (investigate "hessian-nodep" though)
 * hibernate3 -- needs cglib jboss-cache jboss-common ehcache oscache swarmcache c3p0 proxool docbook-xsl-saxon
 * jboss*: I really don't want to package this too ... :(
 * oscache: ivy hibernate3(?!) jakarta-commons-logging >= 1.1
 * ivy: builds clean; project seems defunct
 * jakarta-commons-logging: Fedora has 1.0
 * swarmcache: builds cleanly
 * proxool: no extra dependencies, but jpackage SRPM seems corrupt
 * docbook-xsl-saxon: builds cleanly
 * hibernate3-annotations -- needs cglib, hibernate3, hibernate3-ejb-persistence-3.0-api
 * hibernate3-ejb-persistence-3.0-api: no deps, builds cleanly
 * hibernate3-entitymanager -- cglib, hibernate3, hibernate3-annotations, hibernate3-ejb-persistence-3.0-api, jboss-common
 * j2ee_connector_1_5_api -- Not sure
 * jakarta-cactus -- needs aspectj, cargo, maven stuff
 * cargo: needs ITSELF (?!?!), jmock, gnu-trove, jakarta-commons-vfs
 * jakarta-commons-attributes -- no deps, build failure
 * jakarta-poi >= 0:2.5.1 -- needs commons-logging > 1.1 (Fedora has 1.0)
 * jamonapi -- needs interceptor_3_0_api (not sure)
 * jarjar -- UP FOR REVIEW
 * jasperreports >= 0:2.0.4 -- needs jakarta-commons-javaflow jakarta-poi
 * jakarta-commons-javaflow: needs junit-addons maven2-default-skin mojo-maven2-plugin-taglist jakarta-commons-jci
 * maven2-default-skin: not sure on deps
 * mojo-maven2-plugin-taglist: from huge mojo-maven-plugins SRPM
 * jakarta-commons-jci: groovy15 vafer-dependency
 * vafer-dependency: UP FOR REVIEW
 * jboss4-common -- not sure where this comes from
 * jexcelapi -- UP FOR REVIEW
 * jmock -- needs cglib
 * jotm -- needs carol howl-logger jonathan-core jonathan-jeremie openorb-ots kilim1
 * carol (NB: jpackage version (2.2.7) seems newer than anything I'm currently able to download from http://carol.ow2.org/): carol-irmi carol-cmi jonathan-core jonathan-jeremie monolog kilim1 nanoxml-lite
 * carol-irmi: no deps, builds fine
 * carol-cmi: probably fine, just dep names -- not a separate package any more?
 * monolog: p6spy
 * p6spy: needs jboss :(
 * jonathan-core: kilim1 monolog nanoxml-lite
 * jonathan-jeremie: jonathan-core kilim1 monolog
 * kilim1: nanoxml-lite
 * nanoxml-lite: UP FOR REVIEW (as part of nanoxml package)
 * jpa_3_0_api -- Not sure
 * jruby >= 0:1.1.1 -- requires jarjar joni jruby-bytelist jvyamlb retroweaver; there's a dead Fedora package that could be resurrected
 * joni: no deps
 * jvyamlb: jruby-bytelist
 * retroweaver (may not be needed actually): wants a lot of JREs(?)
 * jruby-bytelist: no extra deps, builds clean
 * jsf_1_2_api -- Not sure
 * junit44 >= 0:4.4 -- Fedora has a 3.x version
 * junit-addons -- UP FOR REVIEW
 * ognl -- UP FOR REVIEW
 * openjpa >= 0:1.0.1 -- needs derby docbkx docbook-xml serp
 * docbkx: maven stuff, avalon stuff (renaming), and xslthl
 * xlslthl: builds clean
 * docbook-xml: nodeps, builds clean
 * portlet-1.0-api -- needs maven stuff (plugin name issues)
 * NO: Newer version on website needs extra Maven love to compile
 * quartz16 -- needs lots of APIs and jboss :(
 * saaj_1_3_api -- Not sure
 * serp: UP FOR REVIEW (although it's probably obsolete ...
 * struts >= 0:1.3.8 -- Fedora has 1.2.9
 * struts-tiles >= 0:1.3.8 -- See if this is in the Fedora package
 * testng -- needs bsh2 and qdox18
 * qdox18: maven2-plugin-release jmock jakarta-slide-webdavclient xsite
 * xsite: maven-release nanocontainer sitemesh xstream
 * nanocontainer: aopalliance bsh2 cglib1(really?) dynaop groovy15 jakarta-commons-logging >= 1.1 jakarta-commons-vfs jmock jruby picocontainer proxytoys rhino16 xstream
 * dynaop: cglib1 bsh2
 * picocontainer: cglib jakarta-slide-webdavclient jmock prefuse proxytoys xstream
 * prefuse: lucene1 (ick ...)
 * proxytoys: jmock cglib xstream
 * rhino16: xmlbeans
 * xmlbeans: saxon8 saxon8-dom saxon8-xpath
 * saxon8 (all same SRPM): no outstanding deps; may be better to get existing saxon(v6) package upgraded
 * tiles -- needs maven stuff, portlet_1.0_api, shale-test
 * shale-test: srpm is "shale", requires lots of stuff, hopefully it's just for running tests and can be patched out
 * velocity >= 0:1.5 -- Fedora has 1.4
 * velocity-tools -- needs struts >= 0:1.3.8, struts-taglib, struts-tiles, velocity-dvsl, mojo-maven-plugin-taglist, maven2-default-skin
 * velocity-dvsl: needs velocity >= 0:1.5, mojo-maven-plugin-taglist, maven2-default-skin
 * ws_metadata_2_0_api -- Not sure
 * xapool -- needs carol, jotm, p6spy