Update to 1.9.2.

This commit is contained in:
Alexander Kurtakov 2009-08-18 15:19:05 +00:00
parent 61805bd412
commit eb9c86972d
6 changed files with 340 additions and 167 deletions

View File

@ -1 +1,2 @@
qdox-1.6.1-src.tar.gz qdox-1.6.1-src.tar.gz
qdox-1.9.2-src.tar.gz

BIN
build.xml.tar.gz Normal file

Binary file not shown.

153
qdox-1.8-jpp-depmap.xml Normal file
View File

@ -0,0 +1,153 @@
<dependencies>
<!--
<dependency>
<maven>
<groupId>jetty</groupId>
<artifactId>jetty</artifactId>
<version>4.2.10</version>
</maven>
<jpp>
<groupId>JPP/jetty5</groupId>
<artifactId>jetty5</artifactId>
<version>5.1.12</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>servletapi</groupId>
<artifactId>servletapi</artifactId>
<version>2.3</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>servlet_2_4_api</artifactId>
<version>2.4</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>org.nanocontainer</groupId>
<artifactId>nanocontainer</artifactId>
<version>1.1</version>
</maven>
<jpp>
<groupId>JPP/nanocontainer</groupId>
<artifactId>container</artifactId>
<version>1.1</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.0</version>
</maven>
<jpp>
<groupId>JPP/objectweb-asm</groupId>
<artifactId>asm</artifactId>
<version>3.1</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>asm</groupId>
<artifactId>asm-parent</artifactId>
<version>2.2.3</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>asm2-parent</artifactId>
<version>2.2.3</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>asm</groupId>
<artifactId>asm-tree</artifactId>
<version>2.2.3</version>
</maven>
<jpp>
<groupId>JPP/asm2</groupId>
<artifactId>asm2-tree</artifactId>
<version>2.2.3</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.9</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.9</version>
</jpp>
</dependency>
-->
<dependency>
<maven>
<groupId>slide</groupId>
<artifactId>slide-webdavlib</artifactId>
<version>2.1</version>
</maven>
<jpp>
<groupId>JPP/slide</groupId>
<artifactId>slide-webdavclient-webdavlib</artifactId>
<version>2.1</version>
</jpp>
</dependency>
<!--
<dependency>
<maven>
<groupId>avalon-framework</groupId>
<artifactId>avalon-framework</artifactId>
<version>4.1.3</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>avalon-framework</artifactId>
<version>4.3.1</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>logkit</groupId>
<artifactId>logkit</artifactId>
<version>1.0.1</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>avalon-logkit</artifactId>
<version>2.2.1</version>
</jpp>
</dependency>
<dependency>
<maven>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
<version>1.1</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>jms_1_1_api</artifactId>
<version>1.1</version>
</jpp>
</dependency>
-->
<dependency>
<maven>
<groupId>xpp3</groupId>
<artifactId>xpp3_min</artifactId>
<version>1.1.3.4.O</version>
</maven>
<jpp>
<groupId>JPP</groupId>
<artifactId>xpp3-minimal</artifactId>
<version>1.1.3.8</version>
</jpp>
</dependency>
</dependencies>

47
qdox-settings.xml Normal file
View File

@ -0,0 +1,47 @@
<settings>
<profiles>
<profile>
<id>JPP</id>
<repositories>
<repository>
<id>internal</id>
<layout>jpp</layout>
<url>__JPP_URL_PLACEHOLDER__</url>
</repository>
<repository>
<id>external</id>
<layout>jpp</layout>
<url>__JAVADIR_PLACEHOLDER__</url>
</repository>
<repository>
<id>local</id>
<layout>jpp</layout>
<url>__MAVENREPO_DIR_PLACEHOLDER__</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>plugins-internal</id>
<name>plugins-internal</name>
<layout>jpp</layout>
<url>__JPP_URL_PLACEHOLDER__</url>
</pluginRepository>
<pluginRepository>
<id>plugins-external</id>
<name>plugins-external</name>
<layout>jpp</layout>
<url>__JAVADIR_PLACEHOLDER__</url>
</pluginRepository>
<pluginRepository>
<id>plugins-maven</id>
<name>plugins-maven</name>
<layout>jpp</layout>
<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>JPP</activeProfile>
</activeProfiles>
</settings>

294
qdox.spec
View File

@ -1,4 +1,4 @@
# Copyright (c) 2000-2008, JPackage Project # Copyright (c) 2000-2009, JPackage Project
# All rights reserved. # All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -28,64 +28,58 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# #
%define with() %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}} # If you don't want to build with maven, and use straight ant instead,
%define without() %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}} # give rpmbuild option '--without maven'
%define bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
%define bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
%bcond_with maven %define with_maven 0
%define without_maven 1
%define _with_gcj_support 1
%define gcj_support %{?_with_gcj_support:1}%{!?_with_gcj_support:%{?_without_gcj_support:0}%{!?_without_gcj_support:%{?_gcj_support:%{_gcj_support}}%{!?_gcj_support:0}}}
%define section free %define section free
Name: qdox
Version: 1.6.1
Release: 7.2%{?dist}
Epoch: 0
Summary: Extract class/interface/method definitions from sources Summary: Extract class/interface/method definitions from sources
Name: qdox
Version: 1.9.2
Release: 1%{?dist}
Epoch: 0
License: ASL 2.0 License: ASL 2.0
URL: http://qdox.codehaus.org/ URL: http://qdox.codehaus.org/
Group: Development/Libraries/Java Group: Development/Libraries
# svn co https://svn.codehaus.org/qdox/tags/QDOX_1_6_1/qdox Source0: %{name}-%{version}-src.tar.gz
# tar czvf qdox-1.6.1-src.tar.gz qdox # svn export http://svn.codehaus.org/qdox/tags/qdox-1.8/
Source0: qdox-1.6.1-src.tar.gz
Source1: pom-maven2jpp-depcat.xsl Source1: build.xml.tar.gz
Source2: pom-maven2jpp-newdepmap.xsl Source2: qdox-settings.xml
Source3: pom-maven2jpp-mapdeps.xsl Source3: qdox-1.8-jpp-depmap.xml
Source4: qdox-1.6-jpp-depmap.xml
Source5: qdox-LocatedDef.java BuildRequires: jpackage-utils >= 0:1.7.4
Source6: qdox-build.xml BuildRequires: java-devel = 0:1.5.0
Patch0: qdox-1.6.1-byaccj.patch
Patch1: qdox-1.6.1-jflex.patch
Patch2: qdox-1.6.1-test.patch
BuildRequires: jpackage-utils >= 0:1.6
%if %with maven
BuildRequires: maven >= 0:1.1
BuildRequires: maven-plugins-base
BuildRequires: maven-plugin-license
BuildRequires: maven-plugin-test
BuildRequires: maven-plugin-xdoc
BuildRequires: saxon
BuildRequires: saxon-scripts
BuildRequires: jmock >= 0:1.0
BuildRequires: mockobjects >= 0:0.09
%endif
BuildRequires: ant >= 0:1.6 BuildRequires: ant >= 0:1.6
BuildRequires: ant-junit >= 0:1.6 BuildRequires: ant-junit >= 0:1.6
BuildRequires: junit >= 0:3.8.1 BuildRequires: junit >= 0:3.8.1
BuildRequires: byaccj BuildRequires: byaccj
BuildRequires: java_cup
BuildRequires: jflex BuildRequires: jflex
%if ! %{gcj_support} %if %{with_maven}
BuildArch: noarch BuildRequires: maven2 >= 2.0.7
BuildRequires: maven2-plugin-ant
BuildRequires: maven2-plugin-antrun
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-dependency
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-release
BuildRequires: maven2-plugin-resources
BuildRequires: maven2-plugin-surefire
BuildRequires: jmock >= 0:1.0
%endif %endif
Requires: java >= 0:1.5.0
Requires(post): jpackage-utils >= 0:1.7.4
Requires(postun): jpackage-utils >= 0:1.7.4
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
%endif
%description %description
QDox is a high speed, small footprint parser QDox is a high speed, small footprint parser
@ -96,72 +90,70 @@ generators or documentation tools.
%package javadoc %package javadoc
Summary: Javadoc for %{name} Summary: Javadoc for %{name}
Group: Development/Documentation Group: Documentation
%description javadoc %description javadoc
%{summary}. %{summary}.
%if %{with_maven}
%package manual
Summary: Documents for %{name}
Group: Documentation
%description manual
%{summary}.
%endif
%prep %prep
%setup -q -n %{name} %setup -q -n %{name}
chmod -Rf a+rX,u+w,g-w,o-w bootstrap for j in $(find . -name "*.jar"); do
rm -r bootstrap mv $j $j.no
%patch0 -p1 done
%patch1 -p1 rm bootstrap/yacc.linux
%patch2 -p1 ln -s /usr/bin/byaccj bootstrap/yacc.linux
cp -p %{SOURCE5} src/java/com/thoughtworks/qdox/parser/structs/LocatedDef.java ln -s $(build-classpath jflex) bootstrap
sed -e "s/@VERSION@/%{version}/g" %{SOURCE6} > build.xml #ln -s $(build-classpath java-cup) bootstrap
mkdir -p .m2/repository/JPP/maven2/default_poms
tar xzf %{SOURCE1}
rm src/test/com/thoughtworks/qdox/directorywalker/DirectoryScannerTest.java \ cp %{SOURCE2} settings.xml
src/test/com/thoughtworks/qdox/parser/MockBuilder.java \ sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
src/test/com/thoughtworks/qdox/parser/MockLexer.java \ sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" settings.xml
src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java \ sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/.m2/repository</url>|g" settings.xml
src/test/com/thoughtworks/qdox/parser/ParserTest.java
%build %build
%if %with maven %if %{with_maven}
export DEPCAT=$(pwd)/qdox-1.6-depcat.new.xml mkdir external_repo
echo '<?xml version="1.0" standalone="yes"?>' > $DEPCAT ln -s %{_javadir} external_repo/JPP
echo '<depset>' >> $DEPCAT
for p in $(find . -name project.xml); do export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository
pushd $(dirname $p) mkdir -p $MAVEN_REPO_LOCAL
%{_bindir}/saxon project.xml %{SOURCE1} >> $DEPCAT
popd mvn-jpp \
done -e \
echo >> $DEPCAT -s settings.xml \
echo '</depset>' >> $DEPCAT -Dmaven2.jpp.depmap.file=%{SOURCE3} \
%{_bindir}/saxon $DEPCAT %{SOURCE2} > qdox-1.6-depmap.new.xml -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
for p in $(find . -name project.xml); do ant:ant install javadoc:javadoc
pushd $(dirname $p)
cp project.xml project.xml.orig
%{_bindir}/saxon -o project.xml project.xml.orig %{SOURCE3} map=%{SOURCE4}
popd
done
export MAVEN_HOME_LOCAL=$(pwd)/.maven
export CLASSPATH=$(build-classpath junit)
maven \
-Dmaven.repo.remote=file:/usr/share/maven-1.0/repository \
-Dmaven.home.local=$MAVEN_HOME_LOCAL \
-Dqdox.byaccj.executable=byaccj \
jar javadoc
%else %else
export OPT_JAR_LIST="junit ant/ant-junit" mkdir -p src/java/com/thoughtworks/qdox/parser/impl
mkdir -p target/src/java/com/thoughtworks/qdox/parser/impl export CLASSPATH=$(build-classpath jmock jflex):target/classes:target/test-classes
export CLASSPATH=`pwd`/target/classes:`pwd`/target/test-classes:$(build-classpath java_cup jflex junit) java JFlex.Main \
%{java} JFlex.Main \
-d src/java/com/thoughtworks/qdox/parser/impl \ -d src/java/com/thoughtworks/qdox/parser/impl \
src/grammar/lexer.flex src/grammar/lexer.flex
pushd target pushd src
%{_bindir}/byaccj \ byaccj \
-Jnorun \ -Jnorun \
-Jnoconstruct \ -Jnoconstruct \
-Jclass=Parser \ -Jclass=Parser \
-Jsemantic=Value \ -Jsemantic=Value \
-Jpackage=com.thoughtworks.qdox.parser.impl \ -Jpackage=com.thoughtworks.qdox.parser.impl \
../src/grammar/parser.y grammar/parser.y
popd popd
mv target/Parser.java src/java/com/thoughtworks/qdox/parser/impl mv src/Parser.java src/java/com/thoughtworks/qdox/parser/impl
ant -Dbuild.sysclasspath=only jar javadoc #TODO reenable test when jmock is imported
ant -Dbuild.sysclasspath=only -Dmaven.test.skip=true -Dmaven.mode.offline=true jar javadoc
%endif %endif
%install %install
@ -173,115 +165,95 @@ cp -p target/%{name}-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) (cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
%add_to_maven_depmap %{name} %{name} %{version} JPP %{name}
%add_to_maven_depmap com.thoughtworks.qdox qdox %{version} JPP %{name}
# poms
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -m 644 pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}.pom
# javadoc # javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}
%if %{gcj_support} # manual
%{_bindir}/aot-compile-rpm mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp LICENSE.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%if %{with_maven}
rm -rf target/site/apidocs
cp -pr target/site $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%endif %endif
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%if %{gcj_support}
%post %post
if [ -x %{_bindir}/rebuild-gcj-db ] %update_maven_depmap
then
%{_bindir}/rebuild-gcj-db
fi
%postun %postun
if [ -x %{_bindir}/rebuild-gcj-db ] %update_maven_depmap
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%files %files
%defattr(0644,root,root,0755) %defattr(0644,root,root,0755)
%doc LICENSE.txt %doc %{_docdir}/%{name}-%{version}/LICENSE.txt
%{_javadir}/%{name}.jar %{_javadir}/%{name}.jar
%{_javadir}/%{name}-%{version}.jar %{_javadir}/%{name}-%{version}.jar
%if %{gcj_support} %{_datadir}/maven2/poms/*
%dir %{_libdir}/gcj/%{name} %{_mavendepmapfragdir}/*
%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-%{version}.jar.*
%endif
%files javadoc %files javadoc
%defattr(0644,root,root,0755) %defattr(0644,root,root,0755)
%{_javadocdir}/%{name}-%{version} %doc %{_javadocdir}/%{name}-%{version}
%{_javadocdir}/%{name} %doc %{_javadocdir}/%{name}
%if %{with_maven}
%files manual
%defattr(0644,root,root,0755)
%doc %{_docdir}/%{name}-%{version}/site
%endif
%changelog %changelog
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.6.1-7.2 * Tue Aug 18 2009 Alexander Kurtakov <akurtako@redhat.com> 0:1.9.2-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - Update to 1.9.2.
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:1.6.1-6.2 * Fri Apr 03 2009 Ralph Apel <r.apel at r-apel.de> 0:1.8-1.jpp5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - 1.8 as qdox18 because of qdox frozen at 1.6.1 in JPP-5
* Fri Oct 24 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-5.2 * Tue Jul 01 2008 Ralph Apel <r.apel at r-apel.de> 0:1.6.3-5.jpp5
- Fedora-specific: enable GCJ support - Restore to devel
- Drop mockobjects BR
* Fri Oct 24 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-5.1 * Fri Jun 13 2008 Ralph Apel <r.apel at r-apel.de> 0:1.6.3-4.jpp5
- Fedora-specific: remove repolib - Add com.thoughtworks.qdox groupId to depmap frag
- Fedora-specific: use java_cup not java-cup
- Fedora-specific: don't use jmock
* Tue Jul 29 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-5 * Tue Feb 26 2008 Ralph Apel <r.apel at r-apel.de> 0:1.6.3-3jpp
- remove bootstrap binaries - Add settings file
- patch build for newer jflex - Fix pom marking jmock dependency as of scope test
- patch build to disable failing tests on JDK6 - Fix -jpp-depmap.xml for asm2-parent
- BuildRequires: jmock
- fix version in ant build.xml
- fix location of byaccj and jflex output files
- fix apidoc location
- correctly set CLASSPATH and OPT_JAR_LIST
* Mon Jul 28 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-4 * Mon Nov 26 2007 Ralph Apel <r.apel at r-apel.de> 0:1.6.3-2jpp
- fix jflex part of build - Fix maven macro value
- GCJ fixes
- fix javadoc Requires
* Sat Jul 26 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-3 * Thu Nov 22 2007 Ralph Apel <r.apel at r-apel.de> 0:1.6.3-1jpp
- build without maven - Upgrade to 1.6.3
- fix repolib permissions
* Thu May 29 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-2.jpp5 * Wed May 30 2007 Ralph Apel <r.apel at r-apel.de> 0:1.6.2-1jpp
- remove spurious gnu-crypto dependency - Upgrade to 1.6.2
- fix empty scriptlets - Activate tests while building with ant
- fix License - Make Vendor, Distribution based on macro
- use %%{_bindir} - Install depmap frags, poms
* Fri Apr 18 2008 David Walluck <dwalluck@redhat.com> 0:1.6.1-1jpp.ep1.5
- patch for byaccj
- place junit on CLASSPATH
- remove javadoc scriptlets
* Thu Mar 22 2007 Vivek Lakshmanan <vivekl@redhat.com> 0:1.6.1-1jpp.ep1.4 * Thu Mar 22 2007 Vivek Lakshmanan <vivekl@redhat.com> 0:1.6.1-1jpp.ep1.4
- Rebuild with fixed component-info.xml - Rebuild with fixed component-info.xml
* Thu Mar 22 2007 Vivek Lakshmanan <vivekl@redhat.com> 0:1.6.1-1jpp.ep1.3
- Add repository.jboss.com as a prefix for repodir
* Thu Mar 22 2007 Fernando Nasser <fnasser@redhat.com> 0:1.6.1-1jpp.ep1.2
- Add repolib subpackage
* Thu Mar 22 2007 Fernando Nasser <fnasser@redhat.com> 0:1.6.1-1jpp.ep1.1
- Merge with upstream for upgrade
* Fri Mar 16 2007 Fernando Nasser <fnasser@redhat.com> 0:1.6.1-1jpp
- Upgrade to 1.6.1
* Fri Feb 23 2007 Ralph Apel <r.apel at r-apel.de> 0:1.5-3jpp * Fri Feb 23 2007 Ralph Apel <r.apel at r-apel.de> 0:1.5-3jpp
- Add option to build without maven - Add option to build without maven
- Omit tests when building without maven - Omit tests when building without maven
- Add gcj_support option - Add gcj_support option
* Tue Feb 21 2006 Fernando Nasser <fnasser@redhat.com> - 0:1.5-2jpp_1rh
- First Red Hat build
* Mon Feb 20 2006 Ralph Apel <r.apel at r-apel.de> - 0:1.5-2jpp * Mon Feb 20 2006 Ralph Apel <r.apel at r-apel.de> - 0:1.5-2jpp
- Rebuild for JPP-1.7, adapting to maven-1.1 - Rebuild for JPP-1.7, adapting to maven-1.1

View File

@ -1 +1 @@
21aec355b29e6ba2743ed90db643dbfc qdox-1.6.1-src.tar.gz 1d61cb18731aa74a60d9dd04029b9884 qdox-1.9.2-src.tar.gz