byte-buddy/byte-buddy.spec

172 lines
5.5 KiB
RPMSpec
Raw Normal View History

2018-12-04 11:02:03 +00:00
# Byte Buddy requires itself to build, so set this flag
# to break the bootstrap cycle
2018-12-04 11:25:08 +00:00
%bcond_with bootstrap
2018-12-04 11:02:03 +00:00
2018-11-30 10:01:39 +00:00
Name: byte-buddy
2018-12-04 11:02:03 +00:00
Version: 1.9.5
2018-12-05 17:55:23 +00:00
Release: 3%{?dist}
2018-11-30 10:01:39 +00:00
Summary: Runtime code generation for the Java virtual machine
License: ASL 2.0
URL: http://bytebuddy.net/
Source0: https://github.com/raphw/byte-buddy/archive/%{name}-%{version}.tar.gz
2018-12-04 11:02:03 +00:00
# Patch out use of a unixsocket lib that is not in Fedora
Patch0: no-unixsocket.patch
# Patch the build to avoid bundling inside shaded jars
Patch1: avoid-bundling-asm.patch
BuildRequires: maven-local
%if %{without bootstrap}
2018-12-05 17:55:23 +00:00
BuildRequires: mvn(junit:junit)
2018-12-04 11:02:03 +00:00
BuildRequires: mvn(net.bytebuddy:byte-buddy)
2018-12-05 17:55:23 +00:00
BuildRequires: mvn(net.bytebuddy:byte-buddy-dep)
2018-12-04 11:02:03 +00:00
BuildRequires: mvn(net.bytebuddy:byte-buddy-maven-plugin)
2018-12-05 17:55:23 +00:00
BuildRequires: mvn(org.apache.maven:maven-compat)
BuildRequires: mvn(org.apache.maven.plugin-testing:maven-plugin-testing-harness)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.ow2.asm:asm-analysis)
BuildRequires: mvn(org.ow2.asm:asm-util)
2018-12-04 11:02:03 +00:00
%endif
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven:maven-core)
BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.eclipse.aether:aether-api)
BuildRequires: mvn(org.eclipse.aether:aether-util)
BuildRequires: mvn(org.ow2.asm:asm)
BuildRequires: mvn(org.ow2.asm:asm-commons)
2018-11-30 10:01:39 +00:00
BuildArch: noarch
%description
Byte Buddy is a code generation library for creating Java classes during the
runtime of a Java application and without the help of a compiler. Other than
the code generation utilities that ship with the Java Class Library, Byte Buddy
allows the creation of arbitrary classes and is not limited to implementing
interfaces for the creation of runtime proxies.
%package agent
2018-12-04 11:02:03 +00:00
Summary: Byte Buddy Java agent
2018-11-30 10:01:39 +00:00
%description agent
2018-12-04 11:02:03 +00:00
The Byte Buddy Java agent allows to access the JVM's HotSwap feature.
2018-11-30 10:01:39 +00:00
2018-12-04 11:02:03 +00:00
%package maven-plugin
Summary: Byte Buddy Maven plugin
2018-11-30 10:01:39 +00:00
2018-12-04 11:02:03 +00:00
%description maven-plugin
A plugin for post-processing class files via Byte Buddy in a Maven build.
2018-11-30 10:01:39 +00:00
%package parent
2018-12-04 11:02:03 +00:00
Summary: Byte Buddy parent POM
2018-11-30 10:01:39 +00:00
%description parent
The parent artifact contains configuration information that
concern all modules.
%package javadoc
2018-12-04 11:02:03 +00:00
Summary: Javadoc for %{name}
2018-11-30 10:01:39 +00:00
%description javadoc
2018-12-04 11:02:03 +00:00
This package contains API documentation for %{name}.
2018-11-30 10:01:39 +00:00
%prep
%setup -q -n %{name}-%{name}-%{version}
2018-12-04 11:02:03 +00:00
%patch0
%patch1
# Remove pre-built jars
find -name *.jar -delete
find -name *.class -delete
# Cause pre-compiled stuff to be re-compiled
mv byte-buddy-dep/src/precompiled/java/net/bytebuddy/build/*.java \
byte-buddy-dep/src/main/java/net/bytebuddy/build
2018-12-05 17:55:23 +00:00
mkdir -p byte-buddy-dep/src/test/java/net/bytebuddy/test/precompiled/
mv byte-buddy-dep/src/precompiled/java/net/bytebuddy/test/precompiled/*.java \
byte-buddy-dep/src/test/java/net/bytebuddy/test/precompiled/
2018-12-04 11:02:03 +00:00
# Don't ship android or benchmark modules
%pom_disable_module byte-buddy-android
%pom_disable_module byte-buddy-benchmark
# Don't ship gradle plugin
%pom_disable_module byte-buddy-gradle-plugin
# Remove check plugins unneeded by RPM builds
%pom_remove_plugin :jacoco-maven-plugin
%pom_remove_plugin :license-maven-plugin
%pom_remove_plugin :pitest-maven
%pom_remove_plugin :coveralls-maven-plugin
%pom_remove_plugin :spotbugs-maven-plugin
%pom_remove_plugin :jitwatch-jarscan-maven-plugin
%pom_remove_plugin :clirr-maven-plugin
%pom_remove_plugin :maven-release-plugin
# Drop build dep on findbugs annotations, used only by the above check plugins
%pom_remove_dep :findbugs-annotations
sed -i -e '/SuppressFBWarnings/d' $(grep -lr SuppressFBWarnings)
# Plugin for generating Java 9 module-info file is not in Fedora
%pom_remove_plugin -r :modulemaker-maven-plugin
%if %{with bootstrap}
# Remove circular self-dependency to allow bootstrapping
%pom_remove_plugin :byte-buddy-maven-plugin byte-buddy-dep
%endif
2018-11-30 10:01:39 +00:00
%build
2018-12-05 17:55:23 +00:00
%if %{with bootstrap}
# Cannot run the test suite in bootstrap mode due to circular dep
# on self and mockito
2018-12-04 11:02:03 +00:00
%mvn_build -s -f -- -P'java8,!checks'
2018-12-05 17:55:23 +00:00
%else
# Ignore test failures, there seems to be something different about the
# bytecode of our recompiled test resources, expect 6 test failures in
# the byte-buddy-dep module
%mvn_build -s -- -P'java8,!checks' -Dsourcecode.test.version=1.8 -Dmaven.test.failure.ignore=true
%endif
2018-11-30 10:01:39 +00:00
%install
%mvn_install
2018-12-04 11:02:03 +00:00
%files -f .mfiles-%{name} -f .mfiles-%{name}-dep
2018-11-30 10:01:39 +00:00
%doc README.md release-notes.md
2018-12-04 11:02:03 +00:00
%license LICENSE NOTICE
2018-11-30 10:01:39 +00:00
%files agent -f .mfiles-%{name}-agent
2018-12-04 11:02:03 +00:00
%license LICENSE NOTICE
2018-11-30 10:01:39 +00:00
2018-12-04 11:02:03 +00:00
%files maven-plugin -f .mfiles-%{name}-maven-plugin
2018-11-30 10:01:39 +00:00
%files parent -f .mfiles-%{name}-parent
2018-12-04 11:02:03 +00:00
%license LICENSE NOTICE
2018-11-30 10:01:39 +00:00
%files javadoc -f .mfiles-javadoc
2018-12-04 11:02:03 +00:00
%license LICENSE NOTICE
2018-11-30 10:01:39 +00:00
%changelog
2018-12-05 17:55:23 +00:00
* Wed Dec 05 2018 Mat Booth <mat.booth@redhat.com> - 1.9.5-3
- Enable test suites
2018-12-04 11:25:08 +00:00
* Tue Dec 04 2018 Mat Booth <mat.booth@redhat.com> - 1.9.5-2
- Full, non-bootstrap build
2018-12-04 11:02:03 +00:00
* Fri Nov 30 2018 Mat Booth <mat.booth@redhat.com> - 1.9.5-1
- Update to latest upstream release
- Add a bootstrap mode to break circular self-dependency
- Patch out use of optional external unixsocket library that is not present
in Fedora
- Patch to avoid bundling ASM inside the shaded jar
2018-11-30 10:01:39 +00:00
* Wed May 25 2016 gil cattaneo <puntogil@libero.it> 1.3.19-1
- update to 1.3.19
* Tue Dec 22 2015 gil cattaneo <puntogil@libero.it> 0.7.7-1
- initial rpm