7e0314
%global homedir %{_datadir}/%{name}
7e0314
%global bindir %{homedir}/bin
7e0314
%global hash 373601b4e608ea622b2fec947824b99cd0edb124
7e0314
%global __requires_exclude ^mvn\(.*\)$
7e0314
7e0314
Name:             byteman
7e0314
Version:          2.1.4.1
7e0314
Release:          3%{?dist}
7e0314
Summary:          Java agent-based bytecode injection tool
7e0314
License:          LGPLv2+
7e0314
URL:              http://www.jboss.org/byteman
7e0314
Source0:          https://github.com/bytemanproject/byteman/archive/%{hash}.tar.gz
7e0314
7e0314
BuildArch:        noarch
7e0314
7e0314
BuildRequires:    jpackage-utils
7e0314
BuildRequires:    javapackages-tools
7e0314
BuildRequires:    java-devel
7e0314
BuildRequires:    maven-local
7e0314
BuildRequires:    maven-shade-plugin
7e0314
BuildRequires:    maven-failsafe-plugin
7e0314
BuildRequires:    maven-jar-plugin
7e0314
BuildRequires:    maven-surefire-plugin
7e0314
BuildRequires:    maven-surefire-provider-testng
7e0314
BuildRequires:    maven-surefire-provider-junit4
7e0314
BuildRequires:    maven-verifier-plugin
7e0314
BuildRequires:    java_cup
7e0314
BuildRequires:    jarjar
7e0314
BuildRequires:    objectweb-asm
7e0314
BuildRequires:    junit4
7e0314
BuildRequires:    testng
7e0314
7e0314
Requires:         jpackage-utils
7e0314
Requires:         java-devel
7e0314
7e0314
# Bundled at build time
7e0314
Provides:         bundled(java_cup) = 1:0.11a-16
7e0314
Provides:         bundled(objectweb-asm) = 0:3.3.1-9
7e0314
7e0314
%description
7e0314
Byteman is a tool which simplifies tracing and testing of Java programs.
7e0314
Byteman allows you to insert extra Java code into your application,
7e0314
either as it is loaded during JVM startup or even after it has already
7e0314
started running. The injected code is allowed to access any of your data
7e0314
and call any application methods, including where they are private.
7e0314
You can inject code almost anywhere you want and there is no need to
7e0314
prepare the original source code in advance nor do you have to recompile,
7e0314
repackage or redeploy your application. In fact you can remove injected
7e0314
code and reinstall different code while the application continues to execute.
7e0314
7e0314
%package javadoc
7e0314
Summary:          Javadocs for %{name}
7e0314
7e0314
%description javadoc
7e0314
This package contains the API documentation for %{name}.
7e0314
7e0314
%prep
7e0314
%setup -q -n byteman-%{hash}
7e0314
7e0314
# Fix the gid:aid for java_cup
7e0314
sed -i "s|net.sf.squirrel-sql.thirdparty-non-maven|java_cup|" agent/pom.xml
7e0314
sed -i "s|java-cup|java_cup|" agent/pom.xml
7e0314
7e0314
# com.sun:tools dependency has scope "system", which should not used
7e0314
# in RHEL.
7e0314
%pom_remove_dep com.sun:tools
7e0314
7e0314
%pom_xpath_inject  "pom:plugin[pom:artifactId = 'maven-javadoc-plugin']/pom:configuration" "<additionalparam>\${doclintparam}</additionalparam>"
7e0314
%pom_xpath_inject  "pom:profiles" "<profile>
7e0314
        <id>disable-java-8-doclint</id>
7e0314
        <activation>
7e0314
            <jdk>[1.8,)</jdk>
7e0314
        </activation>
7e0314
        <properties>
7e0314
            <doclintparam>-Xdoclint:none</doclintparam>
7e0314
        </properties>
7e0314
      </profile>"
7e0314
7e0314
%build
7e0314
%mvn_build
7e0314
7e0314
%install
7e0314
%mvn_install
7e0314
7e0314
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}
7e0314
7e0314
install -d -m 755 $RPM_BUILD_ROOT%{homedir}
7e0314
install -d -m 755 $RPM_BUILD_ROOT%{homedir}/lib
7e0314
install -d -m 755 $RPM_BUILD_ROOT%{bindir}
7e0314
7e0314
install -m 755 bin/bmsubmit.sh $RPM_BUILD_ROOT%{bindir}/bmsubmit
7e0314
install -m 755 bin/bminstall.sh  $RPM_BUILD_ROOT%{bindir}/bminstall
7e0314
install -m 755 bin/bmjava.sh  $RPM_BUILD_ROOT%{bindir}/bmjava
7e0314
install -m 755 bin/bmcheck.sh  $RPM_BUILD_ROOT%{bindir}/bmcheck
7e0314
7e0314
for f in bmsubmit bmjava bminstall bmcheck; do
7e0314
cat > $RPM_BUILD_ROOT%{_bindir}/${f} << EOF
7e0314
#!/bin/sh
7e0314
7e0314
export BYTEMAN_HOME=/usr/share/byteman
7e0314
export JAVA_HOME=/usr/lib/jvm/java
7e0314
7e0314
\$BYTEMAN_HOME/bin/${f} \$*
7e0314
EOF
7e0314
done
7e0314
7e0314
chmod 755 $RPM_BUILD_ROOT%{_bindir}/*
7e0314
7e0314
for m in bmunit dtest install sample submit; do
7e0314
  ln -s %{_javadir}/byteman/byteman-${m}.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman-${m}.jar
7e0314
done
7e0314
7e0314
ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
7e0314
7e0314
%files -f .mfiles
7e0314
%dir %{_javadir}/%{name}
7e0314
%{homedir}/*
7e0314
%{_bindir}/*
7e0314
%doc README docs/ProgrammersGuide.pdf docs/copyright.txt
7e0314
7e0314
%files javadoc -f .mfiles-javadoc
7e0314
%doc docs/copyright.txt
7e0314
7e0314
%changelog
7e0314
* Mon Jul 02 2018 Severin Gehwolf <sgehwolf@redhat.com> - 2.1.4.1-3
7e0314
- Allow rebuild with JDK-8.
7e0314
7e0314
* Wed Jun 06 2018 Severin Gehwolf <sgehwolf@redhat.com> - 2.1.4.1-2
7e0314
- Don't filter provides. Update bundled java_cup and
7e0314
  asm versions.
7e0314
7e0314
* Wed May 30 2018 Severin Gehwolf <sgehwolf@redhat.com> - 2.1.4.1-1
7e0314
- Rebase to version 2.1.4.1. Resolves RHBZ#1408898.
7e0314
7e0314
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2.0.4-5
7e0314
- Mass rebuild 2013-12-27
7e0314
7e0314
* Wed Nov 13 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.4-4
7e0314
- Remove system-scoped dependency on tools.jar
7e0314
7e0314
* Thu Apr 25 2013 Marek Goldmann <mgoldman@redhat.com> - 2.0.4-3
7e0314
- Fixes to the launch scripts
7e0314
7e0314
* Wed Apr 24 2013 Marek Goldmann <mgoldman@redhat.com> - 2.0.4-2
7e0314
- Added bmsubmit, bminstall and bmjava scripts, RHBZ#951560
7e0314
7e0314
* Thu Feb 21 2013 Marek Goldmann <mgoldman@redhat.com> - 2.0.4-1
7e0314
- Upstream release 2.0.4
7e0314
- Switched to Maven
7e0314
- Bundling java_cup and objectweb-asm (fpc#226)
7e0314
7e0314
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.2-6
7e0314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
7e0314
7e0314
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.2-5
7e0314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
7e0314
7e0314
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5.2-4
7e0314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
7e0314
7e0314
* Tue Sep 20 2011 Marek Goldmann <mgoldman@redhat.com> 1.5.2-3
7e0314
- Removed binary files from src.rpm
7e0314
7e0314
* Mon Sep 19 2011 Marek Goldmann <mgoldman@redhat.com> 1.5.2-2
7e0314
- Cleaned spec file
7e0314
7e0314
* Wed Jul 27 2011 Marek Goldmann <mgoldman@redhat.com> 1.5.2-1
7e0314
- Upstream release: 1.5.2
7e0314
7e0314
* Thu Jul 21 2011 Marek Goldmann <mgoldman@redhat.com> 1.5.1-1
7e0314
- Initial packaging
7e0314