File audiveris.spec of Package audiveris
#
# spec file for package audiveris
#
# Copyright (c) 2026 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/
#
Name: audiveris
Version: 5.10.1
Release: 0
Summary: Optical Music Recognition software
License: GPL-3.0-or-later
URL: https://github.com/audiveris/audiveris
Source0: https://github.com/audiveris/audiveris/archive/refs/tags/%{name}-%{version}.tar.gz
Source1: https://services.gradle.org/distributions/gradle-9.1.0-bin.zip
Source2: dependencies.tar.gz
Source3: audiveris.xml
Source4: org.audiveris.audiveris.metainfo.xml
Patch0: fix-flatpak.patch
Patch1: fix-packaging.patch
Patch2: fix-git.patch
Patch3: fix-repositories.patch
Patch4: fix-schemas-repo.patch
BuildRequires: appstream-glib
BuildRequires: dejavu-fonts
BuildRequires: desktop-file-utils
BuildRequires: fontconfig
BuildRequires: git
BuildRequires: hicolor-icon-theme
BuildRequires: java-devel >= 25
BuildRequires: shared-mime-info
BuildRequires: unzip
BuildRequires: zip
BuildArch: noarch
%description
An Optical Music Recognition (OMR) application, featuring an OMR engine coupled with a dedicated editor.
It recognizes music from digitized images and converts it into computer-readable symbolic format.
This enables further music processing by any external notation editor, most notably: digital playback,
transposition and arrangement.
%prep
%setup -q
unzip %{SOURCE1} -d gradle-dist
tar -xzf %{SOURCE2}
%patch -P 0
%patch -P 1
%patch -P 2
%patch -P 3
%patch -P 4
%build
export GRADLE_HOME=$PWD/gradle-dist/gradle-9.1.0
export PATH=$GRADLE_HOME/bin:$PATH
gradle build
gradle installDist
%install
# Copy distributions (bin + lib)
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -a app/build/install/app/* %{buildroot}%{_datadir}/%{name}/
# Remove windows script
rm -r %{buildroot}%{_datadir}/audiveris/bin/Audiveris.bat
# Prevent potential-bashisms
sed -i '1s|^#!/bin/sh|#!/bin/bash|' %{buildroot}%{_datadir}/audiveris/bin/Audiveris
# Rimuove il Class-Path dai manifest di tutti i jar
for jar in %{buildroot}%{_datadir}/audiveris/lib/*.jar; do
sed -i '/Class-Path:/d' META-INF/MANIFEST.MF 2>/dev/null || :
# Se il metodo sopra non basta, si usa zip per rimuovere il manifest e ricrearlo pulito
# ma solitamente su openSUSE si usa un approccio più brutale se necessario:
zip -d "$jar" META-INF/MANIFEST.MF || :
done
# Wrapper in /usr/bin
mkdir -p %{buildroot}%{_bindir}/
ln -s %{_datadir}/audiveris/bin/Audiveris %{buildroot}%{_bindir}/Audiveris
chmod 755 %{buildroot}%{_datadir}/%{name}/bin/Audiveris
#Desktop file
mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-validate flatpak/res/org.audiveris.audiveris.desktop
cp -a flatpak/res/org.audiveris.audiveris.desktop %{buildroot}%{_datadir}/applications/
# Icon
install -D -m 0644 app/res/icon-256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/org.audiveris.audiveris.png
install -D -m 0644 app/res/icon-64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/org.audiveris.audiveris.png
# Mime Type
mkdir -p %{buildroot}%{_datadir}/mime/packages
cp -a %{SOURCE3} %{buildroot}%{_datadir}/mime/packages/
# AppStream
install -D -m 0644 %{SOURCE4} %{buildroot}%{_datadir}/metainfo/org.audiveris.audiveris.metainfo.xml
# Doc
mkdir -p %{buildroot}%{_datadir}/doc/%{name}-%{version}
cp -a README.md LICENSE %{buildroot}%{_datadir}/doc/%{name}-%{version}/
%check
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.xml
%files
%{_bindir}/Audiveris
%{_datadir}/%{name}
%{_datadir}/doc/%{name}-%{version}
%{_datadir}/applications/org.audiveris.audiveris.desktop
# MIME type
%{_datadir}/mime/packages/audiveris.xml
%{_datadir}/icons/hicolor/*/apps/org.audiveris.audiveris.png
%{_datadir}/metainfo/org.audiveris.audiveris.metainfo.xml
%changelog