%define _default_patch_fuzz 2

#define snap    r9625
#define _disable_static --disable-static

Summary:  C++ user interface toolkit
Summary(ja):    C++用の軽量GUIライブラリキット
Name:   fltk
Version:  1.3.5
%define subversion 2

%if "%{?snap:1}" == "1"
Release:  1.%{snap}%{?_dist_release}
%else
Release:  1%{?_dist_release}
%endif

# see COPYING (or http://www.fltk.org/COPYING.php ) for exceptions details
License:        LGPLv2+ with exceptions
Group:          System Environment/Libraries
URL:            http://www.fltk.org/
Vendor:         Project Vine
Distribution:   Vine Linux

%if "%{?snap:1}" == "1"
Source0:  http://ftp.easysw.com/pub/fltk/snapshots/fltk-1.3.x-%{snap}.tar.gz
%else
Source0:  https://www.fltk.org/pub/fltk/1.3.5/fltk-%{version}-source.tar.bz2
%endif

## FIXME/TODO: upstream these asap -- Rex
# add lib64 support, drop extraneous libs (bug #708185) and ldflags (#1112930)
Patch1:  fltk-1.3.4-fltk_config.patch

## upstreamable patches
Patch100: fltk-1.3.4-x-fluid_mimetype.patch


BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires:  libICE-devel libSM-devel
BuildRequires:  libXext-devel libXinerama-devel libXft-devel libXt-devel libX11-devel
BuildRequires:  xorg-x11-proto-devel xorg-x11-utils
BuildRequires:  libjpeg-devel
BuildRequires:  zlib-devel
BuildRequires:  libpng-devel
BuildRequires:  libGL-devel libGLU-devel
BuildRequires:  pkgconfig
BuildRequires:  desktop-file-utils
BuildRequires:  man

%description
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit.
It provides modern GUI functionality without the bloat, and supports
3D graphics via OpenGL and its built-in GLUT emulation.


%package devel
Summary:  Development files for %{name}
Summary(ja):  %{name} の開発用ファイル
Group:    Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires:       libX11-devel
Requires:       libXinerama-devel
Requires:       libXft-devel

%description devel
%{summary}.

%package fluid
Summary:  Fast Light User Interface Designer
Group:    Applications/Development
Requires: %{name}-devel = %{version}-%{release}

%description fluid
%{summary}, an interactive GUI designer for %{name}.


%prep
%if "%{?snap:1}" == "1"
%setup -q -n fltk-1.3.x-%{snap}
%else
%setup -q -n %{name}-%{version}
%endif

%patch1 -p1 -b .fltk_config
%patch100 -p1 -b .x-fluid_mimetype

# verbose build output
sed -i.silent '\,^.SILENT:,d' makeinclude.in
autoconf

%build
%configure \
  %{?_disable_static} \
  --with-optim="%{optflags}" \
  --enable-largefile \
  --enable-shared \
  --enable-threads \
  --enable-xdbe \
  --enable-xinerama \
  --enable-xft

make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT

%make_install
make install-linux -C fluid DESTDIR=$RPM_BUILD_ROOT

# omit examples/games:
make -C test uninstall-linux DESTDIR=$RPM_BUILD_ROOT
rm -f  $RPM_BUILD_ROOT%{_mandir}/man?/{blocks,checkers,sudoku}*

desktop-file-install \
    --delete-original \
    --vendor="%{name}" \
    --dir $RPM_BUILD_ROOT%{_datadir}/applications \
    $RPM_BUILD_ROOT%{_datadir}/applications/fluid.desktop

# docs
rm -rf __docs
mv $RPM_BUILD_ROOT%{_docdir}/fltk __docs

## unpackaged files
# errant docs
rm -rf $RPM_BUILD_ROOT%{_mandir}/cat*
# static libs
%if "%{?_disable_static:1}" == "1"
rm -f  $RPM_BUILD_ROOT%{_libdir}/lib*.a
%endif


%check
make test ||:


%clean
rm -rf $RPM_BUILD_ROOT


%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%post fluid
touch --no-create %{_datadir}/icons/hicolor ||:
gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
update-desktop-database >& /dev/null ||:

%postun fluid
touch --no-create %{_datadir}/icons/hicolor ||:
gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||:
update-desktop-database >& /dev/null ||:


%files
%defattr(-,root,root,-)
%license COPYING
%doc ANNOUNCEMENT CHANGES CREDITS README
%{_libdir}/libfltk.so.*
%{_libdir}/libfltk_forms.so.*
#{_libdir}/libfltk_gl.so.*
%{_libdir}/libfltk_images.so.*

%files devel
%defattr(-,root,root,-)
%doc __docs/*
%{_bindir}/fltk-config
%{_includedir}/FL/
%{_libdir}/libfltk.so
%{_libdir}/libfltk_forms.so
#{_libdir}/libfltk_gl.so
%{_libdir}/libfltk_images.so
%if "%{?_disable_static:1}" != "1"
%{_libdir}/libfltk.a
%{_libdir}/libfltk_forms.a
#{_libdir}/libfltk_gl.a
%{_libdir}/libfltk_images.a
%endif
%{_mandir}/man1/fltk-config.1*
%{_mandir}/man3/fltk.3*

%files fluid
%defattr(-,root,root,-)
%{_bindir}/fluid
%{_mandir}/man1/fluid.1*
%{_datadir}/applications/fltk-fluid.desktop
%{_datadir}/icons/hicolor/*/*/*


%changelog
* Mon Mar 09 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.3.5-1
- updated to 1.3.5.

* Sun Sep 02 2018 Toshiaki Ara <ara_t@384.jp> - 1.3.4-1
- update to 1.3.4-2
- remove old patch
- add patches from Fedora

* Mon Oct 24 2016 Toshiaki Ara <ara_t@384.jp> - 1.3.3-3
- add patch1: Fl_XFont_On_Demand.patch
  - fixed: undefined reference to 'Fl_XFont_On_Demand::value()'

* Fri Jul  1 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> - 1.3.3-2
- rebuilt with new toolchain.

* Fri Nov  7 2014 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 1.3.3-1
- update to 1.3.3
- removed duplicated desktop file
- moved fluid subpackage to Applications/Development Group

* Mon Jun 25 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 1.3-1.r9625
- update to 1.3.x-r9625
- remove old patches

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

* Sat May 08 2010 Shu KONNO <owa@bg.wakwak.com> - 1.1.10-2
- fixed duplecate desktop files

* Fri May 07 2010 Shu KONNO <owa@bg.wakwak.com> - 1.1.10-1
- updated fltk to 1.1.10
- added japanese summary

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

* Wed Oct 01 2008 Rex Dieter <rdieter@fedoraproject.org> 1.1.9-1
- fltk-1.1.9

* Sat Mar 29 2008 Rex Dieter <rdieter@fedoraproject.org> 1.1.8-1
- fltk-1.1.8 (final)

* Fri Feb 29 2008 Rex Dieter <rdieter@fedoraproject.org> 1.1.8-0.8.r6027
- fltk-1.1.x-r6027

* Mon Feb 11 2008 Rex Dieter <rdieter@fedoraproject.org> 1.1.8-0.7.r5989 
- respin (gcc43)

* Wed Dec 12 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.6.r5989
- --enable-largefile
- fltk-1.1.x-r5989 snapshot (1.1.8 pre-release)

* Mon Aug 20 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.5.r5750
- License: LGPLv2+ with exceptions

* Sat Aug 11 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.4.r5750
- License: LGPLv2+ (with exceptions)

* Sun Apr 29 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.3.r5750
- *really* fix --rpath issue, using non-empty patch this time (#238284)

* Sun Apr 29 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.2.r5750
- nuke --rpath (#238284)

* Thu Apr 05 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 1.1.8-0.1.r5750
- fltk-1.1.x-r5750 snapshot (1.1.8 pre-release)
- --enable-xinerama
- patch for undefined symbols in libfltk_gl

* Wed Apr  4 2007 Thomas Fitzsimmons <fitzsim@redhat.com> - 1.1.7-9.r5555
- Always apply fltk-config patch (#199656)
- Update fltk-1.1.7-config.patch

* Wed Dec 13 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.1.7-8.r5555
- more 64bit hackage to workaround broken Makefile logic (#219348)

* Wed Dec 13 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.1.7-7.r5555
- fltk-1.1.x-r5555 snapshot, for 64bit issues (#219348)
- restore static libs (they're tightly coupled with fltk-config)
- cleanup %%description's

* Mon Dec 11 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.1.7-6
- move tests to %%check section

* Mon Dec 11 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.1.7-5
- use included icon/.desktop files
- fix up fltk-config (#199656)

* Mon Dec 11 2006 Rex Dieter <rexdieter[AT]users.sf.net> 1.1.7-3
- follow icon spec
- omit static libs

* Wed Sep 06 2006 Michael J. Knox <michael[AT]knox.net.nz> - 1.1.7-2
- rebuild for FC6

* Mon Feb 13 2006 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.7-1
- Upstream update

* Thu Nov 17 2005 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.6-4
- Fixed BR and -devel Requires for modular X

* Sun Nov 13 2005 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.6-3
- Update BuildRequires as well

* Sun Nov 13 2005 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.6-2
- Update Requires for -devel

* Thu Oct 27 2005 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.6-1
- Upstream update

* Thu Aug 18 2005 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 1.1.4-10
- Fixed BR/Requires for x86_64

* Thu Apr  7 2005 Michael Schwendt <mschwendt[AT]users.sf.net>
- rebuilt

* Thu Nov 20 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.8
- Hopefully fixed Xft flags for rh80

* Thu Nov 20 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.7
- Fixed typo

* Thu Nov 20 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.6
- Added xft.pc build dependency
- Added BuildReq:man

* Sun Nov  9 2003 Ville Skyttä <ville.skytta@iki.fi> 0:1.1.4-0.fdr.4
- Spec file cleanup
- Enabled xft and threads

* Tue Oct 28 2003 Dams <anvil[AT]livna.org> - 0:1.1.4-0.fdr.3
- Added missing symlink in includedir

* Wed Oct  1 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.2
- Removed comment after scriptlets

* Wed Oct  1 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.1
- Updated to final 1.1.4

* Wed Sep 24 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.0.4.rc1
- Fixed documentation path in configure

* Fri Aug 29 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.0.3.rc1
- Fixed typo in desktop entry
- Added missing BuildRequires ImageMagick and desktop-file-utils

* Fri Aug 29 2003 Dams <anvil[AT]livna.org> 0:1.1.4-0.fdr.0.2.rc1
- Moved fluid to its own package
- Added missing Requires for devel package

* Sat Aug 16 2003 Dams <anvil[AT]livna.org>
- Initial build.
