diff --git a/.gitignore b/.gitignore index e69de29..d5dbddd 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,4 @@ +/results_* +/*.src.rpm + +/servlet-api-5.0.0.tar.gz diff --git a/jakarta-servlet.spec b/jakarta-servlet.spec new file mode 100644 index 0000000..cd5a2df --- /dev/null +++ b/jakarta-servlet.spec @@ -0,0 +1,104 @@ +%global srcname servlet-api + +Name: jakarta-servlet +Version: 5.0.0 +Release: 4%{?dist} +Summary: Server-side API for handling HTTP requests and responses +# most of the project is EPL-2.0 or GPLv2 w/exceptions, +# but some files still have Apache-2.0 license headers: +# https://github.com/eclipse-ee4j/servlet-api/issues/347 +License: (EPL-2.0 or GPLv2 with exceptions) and ASL 2.0 + +URL: https://github.com/eclipse-ee4j/servlet-api +Source0: %{url}/archive/%{version}-RELEASE/%{srcname}-%{version}.tar.gz + +BuildArch: noarch + +BuildRequires: maven-local +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) + +# package renamed in fedora 33, remove in fedora 35 +Provides: glassfish-servlet-api = %{version}-%{release} +Obsoletes: glassfish-servlet-api < 3.1.0-21 + +%description +Jakarta Servlet defines a server-side API for handling HTTP requests +and responses. + + +%package javadoc +Summary: Javadoc for %{name} + +# package renamed in fedora 33, remove in fedora 35 +Provides: glassfish-servlet-api-javadoc = %{version}-%{release} +Obsoletes: glassfish-servlet-api-javadoc < 3.1.0-21 + +%description javadoc +This package contains the API documentation for %{name}. + + +%prep +%setup -q -n %{srcname}-%{version}-RELEASE + +# remove unnecessary dependency on parent POM +%pom_remove_parent . api + +# do not build specification documentation +%pom_disable_module spec + +# Copy to old package name +# TODO: Remove when all dependencies are migrated from javax.servlet to jakarta.servlet +cp -pr api/src/main/java/jakarta api/src/main/java/javax +sed -i -e 's/jakarta\./javax./g' $(find api/src/main/java/javax -name *.java) +%pom_xpath_replace pom:instructions/pom:Export-Package \ + 'jakarta.servlet.*,javax.servlet.*;version="4.0.0"' api + +# do not install useless parent POM +%mvn_package jakarta.servlet:servlet-parent __noinstall + +# remove unnecessary maven plugins +%pom_remove_plugin -r :formatter-maven-plugin +%pom_remove_plugin -r :impsort-maven-plugin +%pom_remove_plugin -r :maven-enforcer-plugin +%pom_remove_plugin -r :maven-javadoc-plugin +%pom_remove_plugin -r :maven-source-plugin + +# add maven artifact coordinate aliases for backwards compatibility +%mvn_alias jakarta.servlet:jakarta.servlet-api \ + javax.servlet:javax.servlet-api \ + javax.servlet:servlet-api + +# add compat symlink for packages constructing the classpath manually +%mvn_file :{*} %{name}/@1 glassfish-servlet-api + + +%build +%mvn_build + + +%install +%mvn_install + + +%files -f .mfiles +%license LICENSE.md NOTICE.md +%doc README.md + +%files javadoc -f .mfiles-javadoc +%license LICENSE.md NOTICE.md + + +%changelog +* Thu Aug 20 2020 Mat Booth - 5.0.0-4 +- Correct mvn_file macro invokation + +* Wed Aug 19 2020 Fabio Valentini - 5.0.0-3 +- Add compat symlink for packages constructing the classpath manually. + +* Wed Aug 19 2020 Mat Booth - 5.0.0-2 +- Also ship the API in the old javax namespace to aid transition + +* Thu Aug 13 2020 Fabio Valentini - 5.0.0-1 +- Initial package renamed from glassfish-servlet-api. + diff --git a/sources b/sources new file mode 100644 index 0000000..b554b24 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (servlet-api-5.0.0.tar.gz) = ff6ab67d99ea06d2fdbe6ea15224009481b280deb62ae552c430d7233838d980d23ea8eb042be2344433eca7e2741d2495ceffe231ba6ab23243860a158b32db