mtytel / helm

Helm - a free polyphonic synth with lots of modulation
http://tytel.org/helm
GNU General Public License v3.0
2.34k stars 201 forks source link

Helm rpm builds? #291

Open Pinjontall94 opened 3 years ago

Pinjontall94 commented 3 years ago

I, and it looks like a couple others, have taken the time to package Helm as an rpm--is there anywhere I can help out to make that an officially supported version downloadable from the site?

I saw in #212 that @metal3d actually hosted their package in a COPR. But unless someone already knew about that issue, one could easily make the mistake of assuming Helm doesn't run on their RPM-based distro and give up before they ever make it to github!

Is there someway I can help with the build process, maybe? I don't know how @metal3d's process went, but it was fairly easy to generate a working rpm from the official deb package.

Thank you for the great synth by the way! :)

metal3d commented 3 years ago

I don't maintain the package anymore (no time :( ) But I can share the spec file if needed :)

Pinjontall94 commented 3 years ago

Sure, that would be great! Thanks :)

metal3d commented 3 years ago

I'm trying to find it, it's been a while...

metal3d commented 3 years ago

OK, this is the spec file:

Name:           helm
Version:        0.9.0 
Release:        1%{?dist}
Summary:        Helm is a free polyphonic synth with lots of modulation

License:        GPL-3.0
URL:            http://tytel.org/helm
Source0:        https://github.com/mtytel/%{name}/archive/v%{version}.tar.gz
Source1:        %{name}.appdata.xml

BuildRequires:  lv2-devel libX11-devel alsa-lib-devel libXext-devel libXinerama-devel freetype-devel libcurl-devel mesa-libGL-devel jack-audio-connection-kit-devel libXcursor-devel gcc-c++ libappstream-glib
Requires:       freetype libXext mesa-libGL

%package -n lv2-%{name}
Summary:        Helm LV2 plugin is a free polyphonic synth with lots of modulation
Requires:       lv2 freetype libXext mesa-libGL

%description
Helm is a free, cross-platform, polyphonic synthesizer that runs on GNU/Linux,
Mac, and Windows as a standalone program and as a LV2/VST/AU/AAX plugin.
You can install helm (standalone), or lv2-helm that is LV2 plugin.

%description -n lv2-%{name}
Helm is a free, cross-platform, polyphonic synthesizer that runs on GNU/Linux,
Mac, and Windows as a standalone program and as a LV2/VST/AU/AAX plugin.
This package installs the LV2 plugin.

%prep
%autosetup

%build
%configure
%make_build standalone
%make_build lv2

%install
rm -rf $RPM_BUILD_ROOT
%make_install standalone
%make_install lv2
mkdir -p $RPM_BUILD_ROOT/%{_libdir}

# doesn't need that at this time, maybe later ?
rm -rf $RPM_BUILD_ROOT/usr/lib/debug
rm -rf $RPM_BUILD_ROOT/usr/lib/lxvst

# helm badly installs lv2 in /usr/lib, we prefer /usr/lib64 on x86_64
%ifarch x86_64
cp -ra $RPM_BUILD_ROOT/usr/lib/* $RPM_BUILD_ROOT/%{_libdir}
rm -rf $RPM_BUILD_ROOT/usr/lib
%endif

# install appdata file
install -D -m 0644 %{SOURCE1} %{buildroot}%{_metainfodir}/%{name}.appdata.xml
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml

%files -n lv2-%{name}
%doc %{_mandir}
%{_libdir}/lv2
%{_datadir}/doc
%{_datadir}/helm
%{_datadir}/applications
%{_metainfodir}/%{name}.appdata.xml

%files
%doc %{_mandir}
%{_datadir}/doc
%{_datadir}/helm
%{_datadir}/applications
%{_datadir}/icons
%{_bindir}/helm
%{_metainfodir}/%{name}.appdata.xml

%changelog
* Thu Oct 25 2018 Patrice Ferlet <metal3d_at_gmail.com>
- initial release
- appdata file created

This builds 2 packages:

You probably need the helm.appdata.xml:

<?xml version="1.0" encoding="UTF-8"?>
 <!-- Copyright 2018 Patrice Ferlet --> 
<component type="desktop-application">
  <id>helm.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>GPL-3</project_license>
  <name>Helm</name>
  <summary>Helm - a free polyphonic synth with lots of modulation</summary>
  <summary xml:lang="fr">Helm - synthétiseur polyphonique avec plusieurs modulations</summary>
  <description>
    <p>
        Helm is a free, cross-platform, polyphonic synthesizer that runs on GNU/Linux, 
        Mac, and Windows as a standalone program and as a LV2/VST/AU/AAX plugin.
    </p>
    <p xml:lang="fr">
        Helm est un synthétiseur polyphonique, libre et fonctionnant sur GNU/Linux, Mac et
        Windows mais aussi comme plugin LV2/VSR/AU/AAX.
    </p>
  </description>
  <categories>
      <category>Audio</category>
      <category>Music</category>
      <category>Midi</category>
  </categories>
  <screenshots>
    <screenshot type="default">
      <image>https://tytel.org/static/images/helm_screenshot.png</image>
    </screenshot>
  </screenshots>
  <url type="homepage">https://tytel.org/helm/</url>
  <update_contact>metal3d_at_gmail.com</update_contact>
</component>

This allow to have some screenshots, translations, and so on...

metal3d commented 3 years ago

just one note, it could be problematic when someone will package https://helm.sh that is made for Kubernetes, so be careful about name conflicts. Maybe it's preferable to name the package "helm-synth" (and "lv2-helm-synth)

foursixnine commented 3 years ago

After bashing my own head to try to compile this for openSUSE (I started 9 months ago surprisingly, but never picked up for more than an hour)... I got to this point thanks to #274 but to not bash my head more with this... I found that for my distro (openSUSE Tumbleweed), this is already built https://build.opensuse.org/package/show/home:geekositalia:daw/helm-synth it's already there :) and also the specfile

teervo commented 3 years ago

For anyone else on Fedora, I've updated metal3d's spec file and repackaged Helm for F33/F34. The Copr repo is teervo/helm-synth