Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37707030
en ru br
Репозитории ALT
5.1: 1.3.4-alt2_2jpp5
4.1: 0.9.6-alt1_2jpp5.0
4.0: 0.9.6-alt1_2jpp5.0
www.altlinux.org/Changes

Группа :: Разработка/Java
Пакет: findbugs

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%def_without mdkmenu
%def_without legacymenu
BuildRequires: /proc
BuildRequires: jpackage-1.5-compat
# Copyright (c) 2000-2005, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name of the JPackage Project nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

%define gcj_support 0


%define menus %{!?_without_menus:1}%{?_without_menus:0}

Name: findbugs
Version: 0.9.6
Release: alt1_2jpp5.0
Epoch: 0
Summary: A Bug Pattern Detector for Java
License: LGPL
URL: http://findbugs.sourceforge.net/
Group: Development/Java
Source0: http://download.sourceforge.net/findbugs/findbugs-0.9.6-source.tar.bz2
Source1: %{name}-script
Source2: %{name}-16x16.png
Source3: %{name}-32x32.png
Source4: %{name}-48x48.png
Source5: %{name}.desktop
Source6: findbugs-lib-findbugs-0.9.6.pom
Source7: findbugs-lib-findbugs-ant-0.9.6.pom
Source8: findbugs-plugin-coreplugin-0.9.6.pom
Source9: findbugs-lib-annotations-0.9.6.pom

Patch0: findbugs-SortedBugCollection.patch
Patch1: findbugs-build_xml.patch
Requires: dom4j
Requires: jaxen
Requires: jpackage-utils >= 0:1.6
BuildRequires: ant >= 0:1.6
BuildRequires: dom4j
BuildRequires: jaxen
BuildRequires: jpackage-utils >= 0:1.6
%if %{gcj_support}
BuildRequires: java-gcj-compat-devel
Requires(post): java-gcj-compat
Requires(postun): java-gcj-compat
%endif
%if ! %{gcj_support}
BuildArch:      noarch
%endif

%description
FindBugs is a program to find bugs in Java programs. It looks for
instances of ``bug patterns''---code instances that are likely to be
errors.

%if %{menus}
%if_with mdkmenu
%package mdkmenu
Summary: Mandriva menu entry for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}
%endif #mdkmenu

%if_with mdkmenu
%description mdkmenu
%{summary}.
%endif #mdkmenu

%if_with legacymenu
%package legacymenu
Summary: Legacy menu entry for %{name}
Group: Development/Java
Requires: %{name} = %{epoch}:%{version}
Conflicts: redhat-menus
%endif #legacymenu

%if_with legacymenu
%description legacymenu
%{summary}.
%endif
%endif #legacymenu

%package javadoc
Summary: Javadoc for %{name}
Group: Development/Documentation

%description javadoc
%{summary}.

%package manual
Summary: Documents for %{name}
Group: Development/Documentation

%description manual
%{summary}.

%prep
%setup -q
for j in $(find . -name "*.jar" -a ! -name "bcel.jar"); do
   mv $j $j.no
done
%__perl -p -i -e 's|<taskdef resource="clovertasks"/>\n||' build.xml

%patch0 -b .sav
%patch1 -b .sav

%build
#export CLASSPATH=$(build-classpath dom4j jaxen)
%__rm -f src/java/edu/umd/cs/findbugs/gui/OSXAdapter.java
%__rm -f src/java/edu/umd/cs/findbugs/SourceLineAnnotationTest.java
# FIXME: setup is monolithic right now, as especially the ant task
# doesn't read the CLASSPATH
#%__perl -p -i -e 's|^Class-Path:.*\n||g' etc/*.MF
%__perl -p -i -e 's|dom4j-full.jar|dom4j.jar jaxen.jar|g' etc/*.MF
%__perl -p -i -e 's|plastic.jar||g' etc/*.MF
pushd lib
ln -sf $(build-classpath dom4j) .
ln -sf $(build-classpath jaxen) .
ln -sf $(build-classpath junit) .
popd
export JAVA_HOME=/usr/lib/jvm/java-1.5.0
export OPT_JAR_LIST="ant/ant-nodeps ant/ant-junit junit"
ant build apiJavadoc runjunit

%install
%__rm -rf %{buildroot}

# jars

%__mkdir_p %{buildroot}%{_javadir}/%{name}/lib
%__cp -a lib/bcel.jar %{buildroot}%{_javadir}/%{name}/lib
%__cp -a lib/findbugs{,GUI,-ant}.jar %{buildroot}%{_javadir}/%{name}/lib
%__cp -a lib/annotations.jar %{buildroot}%{_javadir}/%{name}/lib
(cd %{buildroot}%{_javadir}/%{name}/lib && %__ln_s %{_javadir}/dom4j.jar dom4j.jar && \
%__ln_s %{_javadir}/jaxen.jar jaxen.jar)
(cd %{buildroot}%{_javadir}/%{name}/lib && for jar in *-%{version}*; do \
%__ln_s ${jar} ${jar/-%{version}/}; done)
%__cp -a plugin %{buildroot}%{_javadir}/%{name}

%__mkdir_p %{buildroot}%{_sysconfdir}/ant.d
%__cat > %{buildroot}%{_sysconfdir}/ant.d/%{name} << EOF
findbugs/lib/findbugs findbugs/lib/findbugs-ant
EOF

# poms

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
install -m 644 %{SOURCE6} \
       $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs.pom
install -m 644 %{SOURCE7} \
       $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.findbugs.lib-findbugs-ant.pom
install -m 644 %{SOURCE8} \
       $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.findbugs.plugin-coreplugin.pom
install -m 644 %{SOURCE9} \
       $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.findbugs.lib-annotations.pom

# script

%__mkdir_p %{buildroot}%{_bindir}
%__cp -a %{SOURCE1} %{buildroot}%{_bindir}/%{name}

# javadoc

%__mkdir_p %{buildroot}%{_javadocdir}/%{name}-%{version}
%__cp -a apiJavaDoc/* %{buildroot}%{_javadocdir}/%{name}-%{version}
(cd %{buildroot}%{_javadocdir} && %__ln_s %{name}-%{version} %{name})

%if %{menus}
# mdk menu entry
%__mkdir_p %{buildroot}%{_menudir}
%__cat >%{buildroot}%{_menudir}/%{name} <<EOF
?package(%{name}):\\
command="%{_bindir}/%{name}"\\
needs="X11"\\
icon="%{name}.png"\\
section="Applications/Development/Tools"\\
title="%{name}"\\
longtitle="Bug Pattern Detector for Java"
EOF

# mdk icons

%__install -D -p -m 644 %{SOURCE2} %{buildroot}%{_miconsdir}/%{name}.png
%__install -D -p -m 644 %{SOURCE3} %{buildroot}%{_iconsdir}/%{name}.png
%__install -D -p -m 644 %{SOURCE4} %{buildroot}%{_liconsdir}/%{name}.png

# freedesktop.org menu entry

%__install -D -p -m 644 %{SOURCE5} \
 %{buildroot}%{_datadir}/applications/jpackage-%{name}.desktop

# icons for freedesktop.org and legacy menu entries

%__install -D -p -m 644 %{SOURCE2} \
 %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
install -D -p -m 644 %{SOURCE3} \
 %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%__install -D -p -m 644 %{SOURCE4} \
 %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%__install -D -p -m 644 %{SOURCE4} \
 %{buildroot}%{_datadir}/pixmaps/%{name}.png

# legacy menu entry

%__install -D -p -m 644 %{SOURCE4} \
 %{buildroot}%{_sysconfdir}/X11/applnk/Development/%{name}.desktop
%endif

# manual

%__mkdir_p %{buildroot}%{_docdir}/%{name}-%{version}
%__cp -a doc/* %{buildroot}%{_docdir}/%{name}-%{version}

%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif

mkdir -p $RPM_BUILD_ROOT`dirname /etc/%name.conf`
touch $RPM_BUILD_ROOT/etc/%name.conf
# fix to report
%__subst 's,Categories=Application;Development;X-JPackage;,Categories=X-JPackage;Java;Development;Debugger;,' $RPM_BUILD_ROOT%_desktopdir/jpackage-%name.desktop

# hack around push_body in %%if_ed posts!!!

%post
%update_menus
%postun
%clean_menus


%clean
%__rm -rf %{buildroot}

%if %{menus}
%if_with mdkmenu
%post mdkmenu
%{update_menus}
%endif #mdkmenu

%if_with mdkmenu
%postun mdkmenu
%{clean_menus}
%endif
%endif #mdkmenu

%post javadoc
%__rm -f %{_javadocdir}/%{name}
%__ln_s %{name}-%{version} %{_javadocdir}/%{name}

%postun javadoc
if [ $1 -eq 0 ]; then
 %__rm -f %{_javadocdir}/%{name}
fi

%if %{gcj_support}
%post
if [ -x %{_bindir}/rebuild-gcj-db ]
then
 %{_bindir}/rebuild-gcj-db
fi
%endif

%if %{gcj_support}
%postun
if [ -x %{_bindir}/rebuild-gcj-db ]
then
 %{_bindir}/rebuild-gcj-db
fi
%endif

%files
%doc LICENSE.txt README.txt bin/* design
%attr(0755,root,root) %{_bindir}/*
%{_javadir}/%{name}
%{_datadir}/maven2/poms/*.pom
%config(noreplace) %{_sysconfdir}/ant.d/%{name}
%if %{gcj_support}
%dir %{_libdir}/gcj/%{name}
%{_libdir}/gcj/%{name}/%{name}*.jar.*
%{_libdir}/gcj/%{name}/coreplugin*.jar.*
%{_libdir}/gcj/%{name}/annotations*.jar.*
%endif

%if %{menus}
%{_datadir}/applications/*-%{name}.desktop
%{_datadir}/icons/*/*/apps/*
%{_datadir}/pixmaps/%{name}.png
%config(noreplace,missingok) /etc/%name.conf

%if_with mdkmenu
%files mdkmenu
%{_menudir}/%{name}
%{_iconsdir}/%{name}.png
%{_miconsdir}/%{name}.png
%{_liconsdir}/%{name}.png
%endif #mdkmenu

%if_with legacymenu
%files legacymenu
%{_sysconfdir}/X11/applnk/Development/*
%endif
%endif #legacymenu

%files javadoc
%dir %{_javadocdir}/%{name}-%{version}
%{_javadocdir}/%{name}-%{version}/*
%ghost %dir %{_javadocdir}/%{name}

%files manual
%dir %{_docdir}/%{name}-%{version}
%doc %{_docdir}/%{name}-%{version}/*

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin