Files
reactfx/reactfx.spec

92 lines
2.7 KiB
RPMSpec

#
# spec file for package reactfx
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global version_main 2.0
%global version_suffix M5
%global version_maven %{version_main}-%{version_suffix}
Name: reactfx
Version: %{version_main}~%{version_suffix}
Release: 0
Summary: Reactive event streams, observable values and more for JavaFX
License: BSD-2-Clause
Group: Development/Libraries/Java
URL: https://github.com/TomasMikula/ReactFX
Source0: %{url}/archive/refs/tags/v%{version_maven}.tar.gz
Source1: https://repo1.maven.org/maven2/org/%{name}/%{name}/%{version_maven}/%{name}-%{version_maven}.pom
BuildRequires: fdupes
BuildRequires: maven-local
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.openjfx:javafx.base)
BuildRequires: mvn(org.openjfx:javafx.controls)
BuildRequires: mvn(org.openjfx:javafx.graphics)
BuildArch: noarch
%description
ReactFX is an exploration of (functional) reactive programming techniques for
JavaFX. These techniques usually result in more concise code, less side effects
and less inversion of control, all of which improve the readability of code.
%package javadoc
Summary: API documentation for %{name}
Group: Documentation/HTML
%description javadoc
API documentation for %{name}.
%prep
%autosetup -n ReactFX-%{version_maven}
cp %{SOURCE1} %{name}/pom.xml
%pom_add_dep org.openjfx:javafx.base %{name}
%pom_add_dep org.openjfx:javafx.controls %{name}
%pom_add_dep org.openjfx:javafx.graphics %{name}
%pom_xpath_inject pom:project '<packaging>bundle</packaging>' %{name}
%pom_add_plugin org.apache.felix:maven-bundle-plugin %{name} \
'<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>org.%{name}</Bundle-SymbolicName>
<Bundle-Name>%{name}</Bundle-Name>
</instructions>
</configuration>'
%{mvn_file} : %{name}
%build
pushd %{name}
%{mvn_build} -f
popd
%install
pushd %{name}
%mvn_install
%fdupes %{buildroot}%{_javadocdir}/%{name}
popd
%files -f %{name}/.mfiles
%license LICENSE
%doc README.md
%files javadoc -f %{name}/.mfiles-javadoc
%license LICENSE
%changelog