# If you want to skip building the firmware subpackage, define the macro
# _without_firmware to 1. This is not the actual firmware itself 
# (see alsa-firmware), it is some complementary tools.
# Do *NOT* set it to zero or have a commented out define here, or it will not
# work. (RPM spec file voodoo)

%ifarch ppc ppc64
# sb16_csp doesn't build on PPC; see bug #219010
%{?!_without_tools:     %define builddirstools as10k1 echomixer envy24control hdspconf hdspmixer rmedigicontrol sbiload sscape_ctl us428control }
%else
%{?!_without_tools:     %define builddirstools as10k1 echomixer envy24control hdspconf hdspmixer rmedigicontrol sbiload sb16_csp sscape_ctl us428control }
%endif

%{?!_without_firmware:  %define builddirsfirmw hdsploader mixartloader usx2yloader vxloader }

# The source tarball has been pruned to remove the "ac3dec" directory, due
# to legal concerns that the contents might be subject to patent claims

# Note that the Version is intended to coincide with the version of ALSA
# included with the Fedora kernel, rather than necessarily the very latest
# upstream version of alsa-tools

Summary:        Specialist tools for ALSA
Name:           alsa-tools
Version:        1.1.0
Release:        2%{?_dist_release}

# Checked at least one source file from all the sub-projects contained in
# the source tarball and they are consistent GPLv2+ - TJ 2007-11-15
License:        GPLv2+
Group:          Applications/Multimedia
URL:            http://www.alsa-project.org/
Source0:        %{name}-%{version}.tar.bz2

# The icons below were created by Tim Jackson from screenshots of the
# apps in question. They suck, a lot. Better alternatives welcome!
Source1:        envy24control.desktop
Source2:        envy24control.png
Source3:        echomixer.desktop
Source4:        echomixer.png
Source5:        90-alsa-tools-firmware.rules
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires:  alsa-lib-devel >= 1.0.26
%if 0%{!?_without_tools:1}
BuildRequires:  gtk2-devel
BuildRequires:  gtk3-devel
BuildRequires:  fltk-devel
Buildrequires:  desktop-file-utils
Requires:       xorg-x11-fonts-misc
%endif


%description
This package contains several specialist tools for use with ALSA, including
a number of programs that provide access to special hardware facilities on
certain sound cards.

* as10k1 - AS10k1 Assembler
%ifnarch ppc ppc64
* cspctl - Sound Blaster 16 ASP/CSP control program
%endif
* echomixer - Mixer for Echo Audio (indigo) devices
* envy24control - Control tool for Envy24 (ice1712) based soundcards
* hdspmixer - Mixer for the RME Hammerfall DSP cards
* rmedigicontrol - Control panel for RME Hammerfall cards
* sbiload - An OPL2/3 FM instrument loader for ALSA sequencer
* sscape_ctl - ALSA SoundScape control utility
* us428control - Control tool for Tascam 428


%package firmware
Summary:        ALSA tools for uploading firmware to some soundcards
Group:          Applications/System
Requires:       eudev
Requires:       alsa-firmware
Requires:       fxload


%description firmware
This package contains tools for flashing firmware into certain sound cards.
The following tools are available:

* hdsploader   - for RME Hammerfall DSP cards
* mixartloader - for Digigram miXart soundcards
* vxloader     - for Digigram VX soundcards
* usx2yloader  - second phase firmware loader for Tascam USX2Y USB soundcards


%prep
%setup -q -n %{name}-%{version}


%build
mv seq/sbiload . ; rm -rf seq
for i in %{?builddirstools:%builddirstools} %{?builddirsfirmw:%builddirsfirmw}
do
  cd $i ; %configure
  %{__make} %{?_smp_mflags} || exit 1
  cd ..
done


%install
%{__rm} -rf $RPM_BUILD_ROOT

mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/{pixmaps,applications}

for i in %{?builddirstools:%builddirstools} %{?builddirsfirmw:%builddirsfirmw}
do
  case $i in
    echomixer)
      (cd $i ; %makeinstall ; install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/pixmaps/ ; install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_datadir}/applications/ ) || exit 1
      ;;
    envy24control)
      (cd $i ; %makeinstall ; install -m 644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/ ; install -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_datadir}/applications/ ) || exit 1
      ;;
    hdspconf)
      (cd $i ; %makeinstall pixmapdir=${RPM_BUILD_ROOT}%{_datadir}/pixmaps desktopdir=${RPM_BUILD_ROOT}%{_datadir}/applications ) || exit 1
      ;;
    hdspmixer)
      (cd $i ; %makeinstall pixmapdir=${RPM_BUILD_ROOT}%{_datadir}/pixmaps desktopdir=${RPM_BUILD_ROOT}%{_datadir}/applications ) || exit 1
      ;;
    usx2yloader)
      (cd $i ; %makeinstall hotplugdir=${RPM_BUILD_ROOT}%{_sysconfdir}/hotplug/usb) || exit 1
      ;;
    *) (cd $i ; %makeinstall) || exit 1
   esac
   if [[ -s "${i}"/README ]]
   then
      if [[ ! -d "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}" ]]
      then
         mkdir -p "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}"
      fi
      cp "${i}"/README "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}"
   fi
   if [[ -s "${i}"/COPYING ]]
   then
      if [[ ! -d "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}" ]]
      then
         mkdir -p "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}"
      fi
      cp "${i}"/COPYING "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}/${i}"
   fi
   if [[ -s ${RPM_BUILD_ROOT}%{_datadir}/applications/${i}.desktop ]] ; then
      desktop-file-install --vendor vine \
        --add-category "HardwareSettings" \
        --delete-original \
        --dir $RPM_BUILD_ROOT%{_datadir}/applications \
        ${RPM_BUILD_ROOT}%{_datadir}/applications/${i}.desktop
   fi
done

# convert hotplug stuff to udev
rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/hotplug/usb/tascam_fw.usermap
mkdir -p ${RPM_BUILD_ROOT}/lib/udev
mv ${RPM_BUILD_ROOT}%{_sysconfdir}/hotplug/usb/* ${RPM_BUILD_ROOT}/lib/udev
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d
install -m 644 %{SOURCE5} ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d

%clean
%{__rm} -rf $RPM_BUILD_ROOT

%if 0%{!?_without_tools:1}
%files
%defattr(-,root,root,-)
%dir %{_docdir}/%{name}-%{version}
%doc %{_docdir}/%{name}-%{version}/as10k1
%doc %{_docdir}/%{name}-%{version}/echomixer
%doc %{_docdir}/%{name}-%{version}/envy24control
%doc %{_docdir}/%{name}-%{version}/hdspconf
%doc %{_docdir}/%{name}-%{version}/hdspmixer
%doc %{_docdir}/%{name}-%{version}/rmedigicontrol
%doc %{_docdir}/%{name}-%{version}/sbiload
%{_bindir}/as10k1
%{_bindir}/echomixer
%{_bindir}/envy24control
%{_bindir}/hdspconf
%{_bindir}/hdspmixer
%{_bindir}/rmedigicontrol
%{_bindir}/sbiload
%{_bindir}/sscape_ctl
%{_bindir}/us428control
%{_datadir}/applications/vine-echomixer.desktop
%{_datadir}/applications/vine-envy24control.desktop
%{_datadir}/applications/vine-hdspconf.desktop
%{_datadir}/applications/vine-hdspmixer.desktop
%{_datadir}/man/man1/envy24control.1.gz
%{_datadir}/pixmaps/echomixer.png
%{_datadir}/pixmaps/envy24control.png
%{_datadir}/pixmaps/hdspconf.png
%{_datadir}/pixmaps/hdspmixer.png
%{_datadir}/sounds/

# sb16_csp stuff which is excluded for PPCx
%ifnarch ppc ppc64
%doc %{_docdir}/%{name}-%{version}/sb16_csp
%{_bindir}/cspctl
%{_datadir}/man/man1/cspctl.1.gz
%endif

%endif

%if 0%{!?_without_firmware:1}
%files firmware
%defattr(-,root,root,-)
%doc %{_docdir}/%{name}-%{version}/hdsploader
%doc %{_docdir}/%{name}-%{version}/mixartloader
%doc %{_docdir}/%{name}-%{version}/usx2yloader
%doc %{_docdir}/%{name}-%{version}/vxloader
%config(noreplace) %{_sysconfdir}/udev/rules.d/*.rules
/lib/udev/tascam_fpga
/lib/udev/tascam_fw
%{_bindir}/hdsploader
%{_bindir}/mixartloader
%{_bindir}/usx2yloader
%{_bindir}/vxloader
%endif

%changelog
* Thu Jun 30 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.1.0-2
- rebuild with gcc-5.4.0

* Sun May 15 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.1.0-1
- new upstream release

* Sat Jul 11 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.0.29-1
- new upstream release
- remove BuildRequires: gtk+-devel

* Sun Jul 20 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.0.28-1
- new upstream release
- change Requires: eudev instead of udev

* Sat Oct 13 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.0.26.1-1
- new upstream release
- add BuildRequires: gtk3-devel

* Sun Jul 29 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.0.25-1
- new upstream release

* Mon Jun 25 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.0.23-3
- rebuild with fltk-1.3

* Sun Apr 17 2011 Shu KONNO <owa@bg.wakwak.com> - 1.0.23-2
- rebuilt with rpm-4.8.1-3

* Fri May 28 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.0.23-1
- new upstream release

* Thu Oct  8 2009 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.0.21-1
- new upstream release

* Thu Jul  2 2009 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.0.20-1
- new upstream release

* Thu Feb 19 2009 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.0.19-1
- initial build for Vine Linux

* Sat Jan 24 2009 Tim Jackson <rpm@timj.co.uk> - 1.0.19-1
- Update to version 1.0.19
- Mark udev rules as config

* Fri Dec  5 2008 Jon McCann <jmccann@redhat.com> - 1.0.17-2
- Convert hotplug stuff to udev

* Thu Jul 17 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.17-1
- Update to version 1.0.17

* Mon May 19 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.16-4
- Make it build cleanly on ppc and ppc64 by excluding sb16_csp

* Sun May 18 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.16-3
- Really enable firmware subpackage

* Sun May 18 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.16-2
- Enable firmware subpackage - the accompanying alsa-firmware package is
  finally in Fedora

* Sat Mar 01 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.16-1
- Update to upstream 1.0.16 (fixes #434473)

* Wed Feb 20 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.0.15-3
- Autorebuild for GCC 4.3

* Sat Jan 05 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.15-2
- Update License tag to GPLv2+
- ExcludeArch ppc64 (bug #219010)

* Sat Jan 05 2008 Tim Jackson <rpm@timj.co.uk> - 1.0.15-1
- Update to upstream 1.0.15
- Add icon for envy24control
- Build echomixer

* Sat Dec 09 2006 Tim Jackson <rpm@timj.co.uk> - 1.0.12-4
- ExcludeArch ppc (#219010)

* Sun Nov 26 2006 Tim Jackson <rpm@timj.co.uk> - 1.0.12-3
- Add gtk2-devel BR

* Sun Nov 26 2006 Tim Jackson <rpm@timj.co.uk> - 1.0.12-2
- Own our docdir explicitly

* Sat Nov 25 2006 Tim Jackson <rpm@timj.co.uk> - 1.0.12-1
- Update to 1.0.12
- Resubmit to Fedora Extras 6
- Replace hotplug requirement with udev

* Mon Feb 13 2006 Thorsten Leemhuis <fedora[AT]leemhuis.info>
- Rebuild for Fedora Extras 5

* Tue Dec 06 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 1.0.10-1
- Update to 1.0.10

* Fri May 06 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 1.0.9-1
- Update to 1.0.9
- Use disttag
- Remove gcc4 patch

* Fri May 06 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 1.0.8-3
- prune ac3dec from sources

* Thu May 05 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 1.0.8-2
- don't build ac3dec -- use a52dec instead

* Wed Apr 06 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 1.0.8-1
- Update to 1.0.8

* Tue Mar 29 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 0:1.0.6-2
- Add "--without tools" and "--with firmware" options
- Drop unneeded BR: automake

* Sun Jan 02 2005 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 0:1.0.6-0.fdr.1
- Update to 1.0.6 for FC3
- add new files in {_datadir}/sounds/
- add patch0 for as10k1 

* Sat Apr 03 2004 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 0:1.0.4-0.fdr.1
- Update to 1.0.4

* Fri Jan 16 2004 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 0:1.0.1-0.fdr.2
- Integrate Michaels patch that fixes:
- fix desktop files for fedora.us, adds buildreq desktop-file-utils
- fix %%install section for short-circuit installs

* Fri Jan 09 2004 Thorsten Leemhuis <fedora[AT]leemhuis.info> - 0:1.0.1-0.fdr.1
- Update to 1.0.1

* Sun Dec 14 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.3.rc2
- exit if error during build or install
- fix install errors hdspconf, hdspmixer, usx2yloader
- Split package in alsa-tools and alsa-tools-firmware
- Integrate more docs

* Sat Dec 06 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.2.rc2
- Update to 1.0.0rc2
- some minor corrections in style

* Thu Dec 04 2003 Thorsten Leemhuis <fedora[AT]leemhuis.info> 1.0.0-0.fdr.0.1.rc1
- Update to 1.0.0rc1
- Remove firmware files -- extra package now.
- Add description

* Wed Aug 13 2003 Dams <anvil[AT]livna.org> 0:tools-0.fdr.1
- Initial build.
