Update to upstream 4.0.4 release.

- Split subpackages requiring junit at runtime:
  byteman-dtest, byteman-bmunit
- Fix filtering of asm requirements. They
  shouldn't be there since asm gets bundled.
- java-headless >= 1:1.9 would get generated, but byteman 4.x
  runs on JDK 6+. Require >= JDK 8
- Properly install structure for jboss-modules-plugin to work:
  bminstall -m
This commit is contained in:
Severin Gehwolf 2018-07-11 10:32:11 +02:00
parent bfb4d668ca
commit d197d727fe
3 changed files with 69 additions and 9 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
/byteman-3.0.6/
/4.0.2.tar.gz
/4.0.3.tar.gz
/4.0.4.tar.gz

View File

@ -1,16 +1,25 @@
%global javacup_or_asm java_cup:java_cup|org.ow2.asm:asm-all
%global __requires_exclude ^.*mvn\\(%{javacup_or_asm}\\)$
# Note to the interested reader:
# fedpkg mockbuild --without tests
# will make mvn_build macro skip tests.
# See: https://github.com/fedora-java/javapackages/issues/62
%global javacup_or_asm java_cup:java_cup|org\\.ow2\\.asm:asm.*
# Don't have generated mvn()-style requires for java_cup or asm
%global mvn_javacup_or_asm_matcher .*mvn\\(%{javacup_or_asm}\\)
# Don't have generated requires for java-headless >= 1:1.9
%global java_headless_matcher java-headless >= 1:(1\\.9|9)
%global __requires_exclude ^%{mvn_javacup_or_asm_matcher}|%{java_headless_matcher}$
%global homedir %{_datadir}/%{name}
%global bindir %{homedir}/bin
Name: byteman
Version: 4.0.3
Release: 2%{?dist}
Version: 4.0.4
Release: 1%{?dist}
Summary: Java agent-based bytecode injection tool
License: LGPLv2+
URL: http://www.jboss.org/byteman
# wget -O 4.0.3.tar.gz https://github.com/bytemanproject/byteman/archive/4.0.3.tar.gz
# wget -O 4.0.4.tar.gz https://github.com/bytemanproject/byteman/archive/4.0.4.tar.gz
Source0: https://github.com/bytemanproject/byteman/archive/%{version}.tar.gz
BuildArch: noarch
@ -38,8 +47,11 @@ BuildRequires: testng
# JBoss modules byteman plugin requires it
BuildRequires: mvn(org.jboss.modules:jboss-modules)
Provides: bundled(objectweb-asm) = 6.1.1
Provides: bundled(objectweb-asm) = 6.2
Provides: bundled(java_cup) = 1:0.11b-8
# We are filtering java-headless >= 1:1.9 requirement. Add
# JDK 8 requirement here explicitly which shouldn't match the filter.
Requires: java-headless >= 1:1.8
# Related pieces removed via pom_xpath_remove macros
Patch1: remove_submit_integration_test_verification.patch
@ -67,6 +79,21 @@ Summary: Maven plugin for checking Byteman rules.
%description rulecheck-maven-plugin
This package contains the Byteman rule check maven plugin.
%package bmunit
Summary: TestNG and JUnit integration for Byteman.
%description bmunit
The Byteman bmunit jar provides integration of Byteman into
TestNG and JUnit tests.
%package dtest
Summary: Remote byteman instrumented testing.
%description dtest
The Byteman dtest jar supports instrumentation of test code executed on
remote server hosts and validation of assertions describing the expected
operation of the instrumented methods.
%prep
%setup -q -n byteman-%{version}
@ -103,8 +130,12 @@ sed -i "s|java-cup|java_cup|" tests/pom.xml
%pom_remove_plugin -r :maven-javadoc-plugin
%pom_xpath_remove 'pom:execution[pom:id="make-javadoc-assembly"]' byteman
# Put maven plugin into a separate package
# Put byteman-rulecheck-maven-plugin into a separate package
%mvn_package ":byteman-rulecheck-maven-plugin" rulecheck-maven-plugin
# Put byteman-bmunit/byteman-dtest into a separate packages since they
# runtime require junit
%mvn_package ":byteman-bmunit" bmunit
%mvn_package ":byteman-dtest" dtest
%build
export JAVA_HOME=/usr/lib/jvm/java-10-openjdk
@ -141,10 +172,21 @@ for m in bmunit dtest install sample submit; do
ln -s %{_javadir}/byteman/byteman-${m}.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman-${m}.jar
done
# Create contrib/jboss-module-system structure since bminstall expects it
# for the -m option.
install -d -m 755 $RPM_BUILD_ROOT%{homedir}/contrib
install -d -m 755 $RPM_BUILD_ROOT%{homedir}/contrib/jboss-modules-system
ln -s %{_javadir}/byteman/byteman-jboss-modules-plugin.jar $RPM_BUILD_ROOT%{homedir}/contrib/jboss-modules-system/byteman-jboss-modules-plugin.jar
ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
%files -f .mfiles
%{homedir}/*
%{homedir}/lib/byteman.jar
%{homedir}/lib/byteman-install.jar
%{homedir}/lib/byteman-sample.jar
%{homedir}/lib/byteman-submit.jar
%{homedir}/contrib/*
%{bindir}/*
%{_bindir}/*
%doc README
%license docs/copyright.txt
@ -155,7 +197,24 @@ ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
%files rulecheck-maven-plugin -f .mfiles-rulecheck-maven-plugin
%license docs/copyright.txt
%files bmunit -f .mfiles-bmunit
%license docs/copyright.txt
%{homedir}/lib/byteman-bmunit.jar
%files dtest -f .mfiles-dtest
%license docs/copyright.txt
%{homedir}/lib/byteman-dtest.jar
%changelog
* Tue Jul 10 2018 Severin Gehwolf <sgehwolf@redhat.com> - 4.0.4-1
- Update to latest upstream 4.0.4 release.
- Split junit-dependent packages into sub-packages:
byteman-dtest, byteman-bmunit
- Fix automatically generated requirements:
- ASM is BR-only and bundled.
- java-headless >= 1:1.9 would get generated, but byteman 4.x
runs on JDK 8 too (would even work for JDK 6)
* Thu Jul 05 2018 Severin Gehwolf <sgehwolf@redhat.com> - 4.0.3-2
- Don't use maven-javadoc-plugin. Use XMvn instead.

View File

@ -1 +1 @@
SHA512 (4.0.3.tar.gz) = 9d8692e3464fde26cd28bbc6a268d8e9125104c792a577f13183159fb3d42cc9bdc5c157c42f67735c882dcdd24f6b9e3251c18761097ba4534eb0c075d87709
SHA512 (4.0.4.tar.gz) = 1d6b45dfa535a6c2a4615db679c1dcc51cfd84923ac2c1ba97716572af2baece0b39119aff7b3266e9d1838dc8b47f678b7efc5bbaf9500329728e982dd7774c