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
openSUSE Build Service is sponsored by