5 Star 1 Fork 1

OpenCloudOS Stream/tomcat

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
tomcat.spec 15.36 KB
一键复制 编辑 原始数据 按行查看 历史
doriscchao 提交于 2024-06-24 17:59 . fix changelog error
# Copyright (c) 2000-2008, JPackage Project
# https://github.com/fedora-java/javapackages/blob/master/LICENSE
%global jspspec 2.3
%global major_version 9
%global minor_version 0
%global micro_version 86
%global packdname apache-tomcat-%{version}-src
%global servletspec 4.0
%global elspec 3.0
%global tcuid 53
%global native_version 1.2.21
Summary: Apache Servlet/JSP Engine, RI for Servlet %{servletspec}/JSP %{jspspec} API
Name: tomcat
Version: %{major_version}.%{minor_version}.%{micro_version}
Release: 1%{?dist}
License: ASL 2.0
URL: http://tomcat.apache.org/
Source0: http://www.apache.org/dist/tomcat/tomcat-%{major_version}/v%{version}/src/%{packdname}.tar.gz
Source1: %{name}-%{major_version}.%{minor_version}.conf
Source2: %{name}-%{major_version}.%{minor_version}.sysconfig
Source3: %{name}-%{major_version}.%{minor_version}.wrapper
Source4: %{name}-%{major_version}.%{minor_version}.logrotate
Source5: %{name}-%{major_version}.%{minor_version}-digest.script
Source6: %{name}-%{major_version}.%{minor_version}-tool-wrapper.script
Source7: %{name}-%{major_version}.%{minor_version}.service
Source8: tomcat-functions
Source9: tomcat-preamble
Source10: tomcat-server
Source11: tomcat-named.service
Source12: java-9-start-up-parameters.conf
Patch3000: %{name}-%{major_version}.%{minor_version}-bootstrap-MANIFEST.MF.patch
Patch3001: %{name}-%{major_version}.%{minor_version}-tomcat-users-webapp.patch
Patch3002: %{name}-build.patch
Patch3003: %{name}-%{major_version}.%{minor_version}-catalina-policy.patch
Patch3004: rhbz-1857043.patch
Patch3005: %{name}-%{major_version}.%{minor_version}-JDTCompiler.patch
Patch3006: %{name}-%{major_version}.%{minor_version}-bnd-annotation.patch
BuildRequires: ant ecj findutils java-devel javapackages-local aqute-bnd aqute-bndlib systemd
Requires: java-headless javapackages-tools
Requires: %{name}-lib = %{version}-%{release}
Requires(pre): shadow-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Provides: %{name}-log4j = %{version}-%{release}
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
%description
The Apache Tomcat® software is an open source implementation
of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression
Language, Jakarta WebSocket, Jakarta Annotations and Jakarta
Authentication specifications. These specifications are part
of the Jakarta EE platform.
%package admin-webapps
Summary: The host-manager and manager web applications for Apache Tomcat
Requires: %{name} = %{version}-%{release}
%description admin-webapps
The host-manager and manager web applications for Apache Tomcat.
%package docs-webapp
Summary: The docs web application for Apache Tomcat
Requires: %{name} = %{version}-%{release}
%description docs-webapp
The docs web application for Apache Tomcat.
%package jsp-%{jspspec}-api
Summary: Apache Tomcat JavaServer Pages v%{jspspec} API Implementation Classes
Provides: jsp = %{jspspec}
Requires: %{name}-servlet-%{servletspec}-api = %{version}-%{release}
Requires: %{name}-el-%{elspec}-api = %{version}-%{release}
%description jsp-%{jspspec}-api
Apache Tomcat JSP API Implementation Classes.
%package lib
Summary: Libraries needed to run the Tomcat Web container
Requires: %{name}-jsp-%{jspspec}-api = %{version}-%{release}
Requires: %{name}-servlet-%{servletspec}-api = %{version}-%{release}
Requires: %{name}-el-%{elspec}-api = %{version}-%{release}
Requires: ecj
Requires(preun): coreutils
%description lib
Libraries needed to run the Tomcat Web container.
%package servlet-%{servletspec}-api
Summary: Apache Tomcat Java Servlet v%{servletspec} API Implementation Classes
Provides: servlet = %{servletspec}
Provides: servlet6 servlet3
%description servlet-%{servletspec}-api
Apache Tomcat Servlet API Implementation Classes.
%package el-%{elspec}-api
Summary: Apache Tomcat Expression Language v%{elspec} API Implementation Classes
Provides: el_api = %{elspec}
%description el-%{elspec}-api
Apache Tomcat EL API Implementation Classes.
%package webapps
Summary: The ROOT web application for Apache Tomcat
Requires: %{name} = %{version}-%{release}
%description webapps
The ROOT web application for Apache Tomcat.
%prep
%autosetup -n %{packdname} -p0
find . -type f \( -name "*.bat" -o -name "*.class" -o -name Thumbs.db -o -name "*.gz" -o \
-name "*.jar" -o -name "*.war" -o -name "*.zip" \) -delete
rm -rf java/org/apache/naming/factory/webservices
%mvn_package ":tomcat-el-api" tomcat-el-api
%mvn_alias "org.apache.tomcat:tomcat-el-api" "org.eclipse.jetty.orbit:javax.el"
%mvn_package ":tomcat-jsp-api" tomcat-jsp-api
%mvn_alias "org.apache.tomcat:tomcat-jsp-api" "org.eclipse.jetty.orbit:javax.servlet.jsp"
%mvn_package ":tomcat-servlet-api" tomcat-servlet-api
%build
export OPT_JAR_LIST="xalan-j2-serializer"
touch HACK
%{ant} -Dbase.path="." \
-Dbuild.compiler="modern" \
-Dcommons-daemon.jar="HACK" \
-Dcommons-daemon.native.src.tgz="HACK" \
-Djdt.jar="$(build-classpath ecj/ecj)" \
-Dtomcat-native.tar.gz="HACK" \
-Dtomcat-native.home="." \
-Dcommons-daemon.native.win.mgr.exe="HACK" \
-Dnsis.exe="HACK" \
-Djaxrpc-lib.jar="HACK" \
-Dwsdl4j-lib.jar="HACK" \
-Dbnd.jar="$(build-classpath aqute-bnd/biz.aQute.bnd)" \
-Dbnd-annotation.jar="$(build-classpath aqute-bnd/biz.aQute.bnd.annotation)" \
-Dversion="%{version}" \
-Dversion.build="%{micro_version}" \
deploy
rm output/build/bin/commons-daemon.jar output/build/lib/ecj.jar
rm -rf output/build/webapps/examples
%install
install -d -m 0755 %{buildroot}%{_bindir}
install -d -m 0755 %{buildroot}%{_sbindir}
install -d -m 0755 %{buildroot}/lib/systemd/system
install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d
install -d -m 0755 %{buildroot}%{_sysconfdir}/sysconfig
install -d -m 0755 %{buildroot}%{_var}/lib/%{name}/webapps
install -d -m 0755 %{buildroot}%{_datadir}/%{name}/bin
install -d -m 0775 %{buildroot}%{_sysconfdir}/%{name}
install -d -m 0775 %{buildroot}%{_sysconfdir}/%{name}/Catalina/localhost
install -d -m 0775 %{buildroot}%{_sysconfdir}/%{name}/conf.d
/bin/echo "Place your custom *.conf files here. Shell expansion is supported." > %{buildroot}%{_sysconfdir}/%{name}/conf.d/README
install -d -m 0755 %{buildroot}%{_javadir}/%{name}
install -d -m 0775 %{buildroot}%{_var}/log/%{name}
install -d -m 0775 %{buildroot}%{_localstatedir}/lib/tomcats
install -d -m 0775 %{buildroot}%{_datadir}/%{name}
install -d -m 0775 %{buildroot}%{_var}/cache/%{name}/temp
install -d -m 0775 %{buildroot}%{_var}/cache/%{name}/work
install -d -m 0755 %{buildroot}%{_unitdir}
install -d -m 0755 %{buildroot}%{_libexecdir}/%{name}
pushd output/build
cp -a bin/*.{jar,xml} %{buildroot}%{_datadir}/%{name}/bin
cp -a conf/*.{policy,properties,xml,xsd} %{buildroot}%{_sysconfdir}/%{name}
cp -a lib/*.jar %{buildroot}%{_javadir}/%{name}
cp -a webapps/* %{buildroot}%{_var}/lib/%{name}/webapps
popd
sed -e "s|\@\@\@TCHOME\@\@\@|%{_datadir}/%{name}|g" \
-e "s|\@\@\@TCTEMP\@\@\@|%{_var}/cache/%{name}/temp|g" \
-e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \
> %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
sed -e "s|\@\@\@TCHOME\@\@\@|%{_datadir}/%{name}|g" \
-e "s|\@\@\@TCTEMP\@\@\@|%{_var}/cache/%{name}/temp|g" \
-e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE2} \
> %{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -m 0644 %{SOURCE3} %{buildroot}%{_sbindir}/%{name}
install -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/%{name}.service
sed -e "s|\@\@\@TCLOG\@\@\@|%{_var}/log/%{name}|g" %{SOURCE4} \
> %{buildroot}%{_sysconfdir}/logrotate.d/%{name}.disabled
sed -e "s|\@\@\@TCHOME\@\@\@|%{_datadir}/%{name}|g" \
-e "s|\@\@\@TCTEMP\@\@\@|%{_var}/cache/%{name}/temp|g" \
-e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE5} \
> %{buildroot}%{_bindir}/%{name}-digest
sed -e "s|\@\@\@TCHOME\@\@\@|%{_datadir}/%{name}|g" \
-e "s|\@\@\@TCTEMP\@\@\@|%{_var}/cache/%{name}/temp|g" \
-e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \
> %{buildroot}%{_bindir}/%{name}-tool-wrapper
install -m 0644 %{SOURCE8} %{buildroot}%{_libexecdir}/%{name}/functions
install -m 0755 %{SOURCE9} %{buildroot}%{_libexecdir}/%{name}/preamble
install -m 0755 %{SOURCE10} %{buildroot}%{_libexecdir}/%{name}/server
install -m 0644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}@.service
install -m 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/%{name}/conf.d/
sed -i \
"s,el-api.jar,%{name}-el-%{elspec}-api.jar,;
s,servlet-api.jar,%{name}-servlet-%{servletspec}-api.jar,;
s,jsp-api.jar,%{name}-jsp-%{jspspec}-api.jar,;" \
%{buildroot}%{_datadir}/%{name}/bin/catalina-tasks.xml
pushd %{buildroot}%{_javadir}
mv %{name}/jsp-api.jar %{name}-jsp-%{jspspec}-api.jar
ln -s %{name}-jsp-%{jspspec}-api.jar %{name}-jsp-api.jar
mv %{name}/servlet-api.jar %{name}-servlet-%{servletspec}-api.jar
ln -s %{name}-servlet-%{servletspec}-api.jar %{name}-servlet-api.jar
mv %{name}/el-api.jar %{name}-el-%{elspec}-api.jar
ln -s %{name}-el-%{elspec}-api.jar %{name}-el-api.jar
popd
pushd output/build
%{_bindir}/build-jar-repository lib ecj 2>&1
popd
pushd %{buildroot}%{_javadir}/%{name}
ln -s ../../java/%{name}-jsp-%{jspspec}-api.jar .
ln -s ../../java/%{name}-servlet-%{servletspec}-api.jar .
ln -s ../../java/%{name}-el-%{elspec}-api.jar .
ln -s $(build-classpath ecj/ecj) jasper-jdt.jar
popd
pushd %{buildroot}%{_datadir}/%{name}
ln -s %{_var}/lib/%{name}/webapps webapps
ln -s %{_sysconfdir}/%{name} conf
ln -s %{_javadir}/%{name} lib
ln -s %{_var}/log/%{name} logs
ln -s %{_var}/cache/%{name}/temp temp
ln -s %{_var}/cache/%{name}/work work
popd
pushd res/maven
for pom in tomcat-el-api.pom tomcat-jsp-api.pom tomcat-servlet-api.pom; do
sed -i 's/@MAVEN.DEPLOY.VERSION@/%{version}/g' $pom
done
popd
%mvn_artifact res/maven/tomcat-el-api.pom output/build/lib/el-api.jar
%mvn_artifact res/maven/tomcat-jsp-api.pom output/build/lib/jsp-api.jar
%mvn_artifact res/maven/tomcat-servlet-api.pom output/build/lib/servlet-api.jar
%mvn_install
%pre
getent group tomcat >/dev/null || %{_sbindir}/groupadd -f -g %{tcuid} -r tomcat
if ! getent passwd tomcat >/dev/null ; then
if ! getent passwd %{tcuid} >/dev/null ; then
%{_sbindir}/useradd -r -u %{tcuid} -g tomcat -d %{_datadir}/%{name} -s /sbin/nologin -c "Apache Tomcat" tomcat
fi
fi
exit 0
%post
%systemd_post %{name}.service
%post jsp-%{jspspec}-api
%{_sbindir}/update-alternatives --install %{_javadir}/jsp.jar jsp \
%{_javadir}/%{name}-jsp-%{jspspec}-api.jar 20200
%post servlet-%{servletspec}-api
%{_sbindir}/update-alternatives --install %{_javadir}/servlet.jar servlet \
%{_javadir}/%{name}-servlet-%{servletspec}-api.jar 30000
%post el-%{elspec}-api
%{_sbindir}/update-alternatives --install %{_javadir}/elspec.jar elspec \
%{_javadir}/%{name}-el-%{elspec}-api.jar 20300
%preun
rm -rf %{_var}/cache/%{name}/work/* %{_var}/cache/%{name}/temp/*
%systemd_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
%postun jsp-%{jspspec}-api
if [ "$1" = "0" ]; then
%{_sbindir}/update-alternatives --remove jsp \
%{_javadir}/%{name}-jsp-%{jspspec}-api.jar
fi
%postun servlet-%{servletspec}-api
if [ "$1" = "0" ]; then
%{_sbindir}/update-alternatives --remove servlet \
%{_javadir}/%{name}-servlet-%{servletspec}-api.jar
fi
%postun el-%{elspec}-api
if [ "$1" = "0" ]; then
%{_sbindir}/update-alternatives --remove elspec \
%{_javadir}/%{name}-el-%{elspec}-api.jar
fi
%files
%license LICENSE
%doc NOTICE RELEASE*
%defattr(0664,root,tomcat,0755)
%attr(0755,root,root) %{_bindir}/%{name}-digest
%attr(0755,root,root) %{_bindir}/%{name}-tool-wrapper
%attr(0755,root,root) %{_sbindir}/%{name}
%attr(0644,root,root) %{_unitdir}/%{name}.service
%attr(0644,root,root) %{_unitdir}/%{name}@.service
%attr(0755,root,root) %dir %{_libexecdir}/%{name}
%attr(0755,root,root) %dir %{_localstatedir}/lib/tomcats
%attr(0644,root,root) %{_libexecdir}/%{name}/functions
%attr(0755,root,root) %{_libexecdir}/%{name}/preamble
%attr(0755,root,root) %{_libexecdir}/%{name}/server
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}.disabled
%attr(0755,root,tomcat) %dir %{_var}/lib/%{name}
%attr(0755,root,tomcat) %dir %{_sysconfdir}/%{name}
%defattr(0664,tomcat,root,0770)
%attr(0770,tomcat,root) %dir %{_var}/log/%{name}
%defattr(0664,root,tomcat,0770)
%attr(0770,root,tomcat) %dir %{_var}/cache/%{name}
%attr(0770,root,tomcat) %dir %{_var}/cache/%{name}/temp
%attr(0770,root,tomcat) %dir %{_var}/cache/%{name}/work
%defattr(0644,root,tomcat,0775)
%attr(0775,root,tomcat) %dir %{_var}/lib/%{name}/webapps
%attr(0775,root,tomcat) %dir %{_sysconfdir}/%{name}/Catalina
%attr(0775,root,tomcat) %dir %{_sysconfdir}/%{name}/Catalina/localhost
%attr(0755,root,tomcat) %dir %{_sysconfdir}/%{name}/conf.d
%{_sysconfdir}/%{name}/conf.d/README
%{_sysconfdir}/%{name}/conf.d/java-9-start-up-parameters.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%config(noreplace) %{_sysconfdir}/%{name}/*.policy
%config(noreplace) %{_sysconfdir}/%{name}/*.properties
%config(noreplace) %{_sysconfdir}/%{name}/context.xml
%config(noreplace) %{_sysconfdir}/%{name}/server.xml
%attr(0640,root,tomcat) %config(noreplace) %{_sysconfdir}/%{name}/tomcat-users.xml
%attr(0664,root,tomcat) %{_sysconfdir}/%{name}/tomcat-users.xsd
%attr(0664,root,tomcat) %config(noreplace) %{_sysconfdir}/%{name}/jaspic-providers.xml
%attr(0664,root,tomcat) %{_sysconfdir}/%{name}/jaspic-providers.xsd
%config(noreplace) %{_sysconfdir}/%{name}/web.xml
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/bin/bootstrap.jar
%{_datadir}/%{name}/bin/catalina-tasks.xml
%{_datadir}/%{name}/lib
%{_datadir}/%{name}/temp
%{_datadir}/%{name}/webapps
%{_datadir}/%{name}/work
%{_datadir}/%{name}/logs
%{_datadir}/%{name}/conf
%files admin-webapps
%defattr(0664,root,tomcat,0755)
%{_var}/lib/%{name}/webapps/host-manager
%{_var}/lib/%{name}/webapps/manager
%files docs-webapp
%{_var}/lib/%{name}/webapps/docs
%files lib
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/*.jar
%{_javadir}/*.jar
%{_datadir}/%{name}/bin/tomcat-juli.jar
%exclude %{_javadir}/%{name}/%{name}-el-%{elspec}-api.jar
%exclude %{_javadir}/%{name}-servlet-%{servletspec}*.jar
%exclude %{_javadir}/%{name}-el-%{elspec}-api.jar
%exclude %{_javadir}/%{name}-jsp-%{jspspec}*.jar
%files jsp-%{jspspec}-api -f .mfiles-tomcat-jsp-api
%{_javadir}/%{name}-jsp-%{jspspec}*.jar
%files servlet-%{servletspec}-api -f .mfiles-tomcat-servlet-api
%doc LICENSE
%{_javadir}/%{name}-servlet-%{servletspec}*.jar
%files el-%{elspec}-api -f .mfiles-tomcat-el-api
%doc LICENSE
%{_javadir}/%{name}-el-%{elspec}-api.jar
%{_javadir}/%{name}/%{name}-el-%{elspec}-api.jar
%files webapps
%defattr(0644,tomcat,tomcat,0755)
%{_var}/lib/%{name}/webapps/ROOT
%changelog
* Mon Jun 24 2024 Doris Chao <doriscchao@tencent.com> - 9.0.86-1
- [Type] security
- [DESC] Update to apache-tomcat-9.0.86 to fix CVEs,include CVE-2024-23672 and CVE-2024-24549
* Wed Nov 8 2023 Doris Chao <doriscchao@tencent.com> - 9.0.82-1
- Update to apache-tomcat-9.0.82 to fix the CVE-2023-45648,CVE-2023-42795,CVE-2023-41080
and CVE-2023-28709
* Fri Sep 08 2023 OpenCloudOS Release Engineering <releng@opencloudos.tech> - 9.0.71-3
- Rebuilt for OpenCloudOS Stream 23.09
* Fri Apr 28 2023 OpenCloudOS Release Engineering <releng@opencloudos.tech> - 9.0.71-2
- Rebuilt for OpenCloudOS Stream 23.05
* Mon Apr 24 2023 Miaojun Dong <zoedong@tencent.com> - 9.0.71-1
- initial build
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/opencloudos-stream/tomcat.git
git@gitee.com:opencloudos-stream/tomcat.git
opencloudos-stream
tomcat
tomcat
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891