## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 76;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%global apiver 2.6
%global so_version 1

%bcond autoreconf 1

# Doxygen HTML help is not suitable for packaging due to a minified JavaScript
# bundle inserted by Doxygen itself. See discussion at
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555.
#
# We can enable the Doxygen PDF documentation as a substitute.
#
# We still generate the HTML documentation, but strip out all the JavaScript
# that causes policy issues. This degrades it in the browser, but is sufficient
# to keep the Devhelp documentation working.
%bcond doc_pdf 1

Name:           gconfmm26
Version:        2.28.3
Release:        %autorelease
Summary:        C++ wrapper for GConf2

# Source files under other licenses belong to the build system or to unpackaged
# tools, and do not contribute to the license of the binary RPMs.
License:        LGPL-2.1-or-later
URL:            https://gtkmm.org/
%global majmin %(echo %{version} | cut -d . -f -2)
Source:         https://download.gnome.org/sources/gconfmm/%{majmin}/gconfmm-%{version}.tar.xz

# Do not wrap “#include <gconf/gconf-schema.h>” in “extern "C" {  }” to prevent
# “error: template with C linkage”
#
# See:
#   https://lists.fedoraproject.org/archives/list/
#     devel@lists.fedoraproject.org/thread/
#     J3P4TRHLWNDIKXF76OLYZNAPTABCZ3U5/#6QDPOFWECGRT42AQFD2IO6U33PN3K4GF
# as well as the discussion at:
#   https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1935
#
# Note that gconfmm was archived in the migration to Gnome GitLab, and has been
# considered deprecated by upstream for ten years or so as of 2021, so there is
# no longer an upstream to receive such patches.
Patch:          gconfmm26-2.28.3-no-extern-c-glib-includes.patch

BuildRequires:  gcc-c++
BuildRequires:  make

%if %{with autoreconf}
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  mm-common
%endif

BuildRequires:  pkgconfig(glibmm-2.4)
BuildRequires:  pkgconfig(gconf-2.0)

# For the documentation:
BuildRequires:  doxygen
BuildRequires:  perl-interpreter
BuildRequires:  perl(Getopt::Long)
# dot
BuildRequires:  graphviz
# xsltproc
BuildRequires:  libxslt
BuildRequires:  pkgconfig(mm-common-libstdc++)
BuildRequires:  pkgconfig(sigc++-2.0)
# Already a BR above:
#BuildRequires:  pkgconfig(glibmm-2.4)
BuildRequires:  pkgconfig(cairomm-1.0)
# Font specified for use in dot diagrams
BuildRequires:  font(freesans)
%if %{with doc_pdf}
BuildRequires:  doxygen-latex
BuildRequires:  make
%endif

%description
This package provides a C++ interface for GConf2. It is a sub-package of the
GTKmm project. The interface provides a convenient interface for C++
programmers to create Gnome GUIs with GTK+'s flexible object-oriented
framework.


%package devel
Summary:        Headers for developing programs that will use gconfmm

Requires:       gconfmm26%{?_isa} = %{version}-%{release}

Requires:       glibmm24-devel%{?_isa}
Requires:       GConf2-devel%{?_isa}

%description devel
This package contains the headers that programmers will need to develop
applications which will use gconfmm, part of GTKmm, the C++ interface to the
GTK+.


%package        doc
Summary:        Documentation for gconfmm26
BuildArch:      noarch

%description    doc
Documentation for gconfmm26 can be viewed through the devhelp documentation
browser.


%prep
%autosetup -n gconfmm-%{version} -p1

# We want to rebuild the documentation, so we remove the pre-built
# XML too. Note that we will still install the HTML documentation, since the
# devhelp XML requires it, but we will strip out the JavaScript, which will
# degrade the documentation in a web browser.
rm docs/reference/gconfmm-%{apiver}.devhelp2
rm docs/reference/gconfmm-%{apiver}.tag
rm -rf docs/reference/html
%if %{with doc_pdf}
# We enable the Doxygen PDF documentation as a substitute. We must
# enable GENERATE_LATEX and LATEX_BATCHMODE; the rest are precautionary and
# should already be set as we like them.
sed -r -i \
    -e "s/^([[:blank:]]*(GENERATE_LATEX|LATEX_BATCHMODE|USE_PDFLATEX|\
PDF_HYPERLINKS)[[:blank:]]*=[[:blank:]]*)NO[[:blank:]]*/\1YES/" \
    -e "s/^([[:blank:]]*(LATEX_TIMESTAMP)\
[[:blank:]]*=[[:blank:]]*)YES[[:blank:]]*/\1NO/" \
    docs/reference/Doxyfile.in
%endif

for fn in AUTHORS README
do
  iconv --from=ISO-8859-1 --to=UTF-8 "${fn}" > "${fn}.iconv"
  touch -r "${fn}" "${fn}.iconv"
  chmod -v --reference="${fn}" "${fn}.iconv"
  mv -f "${fn}.iconv" "${fn}"
done

%if %{with autoreconf}
# AC_PROG_LIBTOOL is obsolete
sed -r -i 's/AC_PROG_LIBTOOL/LT_INIT/' configure.ac
%endif

if [ "$(sha256sum -b < COPYING)" = "$(sha256sum -b < COPYING.LIB)" ]
then
  # The license files are identical; replace one with a symbolic link.
  ln -svf COPYING COPYING.LIB
fi


%conf
%if %{with autoreconf}
NOCONFIGURE=1 ./autogen.sh
%endif
%configure --enable-warnings=max


%build
%make_build

%if %{with doc_pdf}
%make_build -C 'docs/reference/latex'
%endif


%install
%make_install
find %{buildroot} -type f -name '*.la' -print -delete

install -t %{buildroot}%{_datadir}/doc/gconfmm-%{apiver} -m 0644 -p \
    AUTHORS ChangeLog NEWS README

# Strip out bundled and/or pre-minified JavaScript; this degrades the browser
# experience, but the HTML is still usable for devhelp.
find '%{buildroot}%{_docdir}/gconfmm-%{apiver}/reference/html' \
    -type f \( -name '*.js' -o -name '*.js.*' \) -print -delete
%if %{with doc_pdf}
install 'docs/reference/latex/refman.pdf' -p -m 0644 \
    '%{buildroot}%{_docdir}/gconfmm-%{apiver}/reference/gconfmm-%{apiver}.pdf'
%endif


%files
%license COPYING COPYING.LIB
%{_libdir}/libgconfmm-%{apiver}.so.%{so_version}{,.*}


%files devel
%{_includedir}/gconfmm-%{apiver}/
%{_libdir}/gconfmm-%{apiver}/
%{_libdir}/libgconfmm-%{apiver}.so
%{_libdir}/pkgconfig/gconfmm-%{apiver}.pc


%files doc
%license COPYING COPYING.LIB
# Note: JavaScript has been removed from HTML reference manual, degrading the
# browser experience. It is still needed for Devhelp support.
%doc %{_datadir}/doc/gconfmm-%{apiver}/
%doc %{_datadir}/devhelp/


%changelog
## START: Generated by rpmautospec
* Fri Nov 01 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-76
- Invoke autoreconf and configure in %%conf rather than in %%build

* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-75
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Wed Mar 20 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-74
- Install a symbolic link instead of a duplicate license file

* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-72
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-71
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-70
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Sun Jun 18 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-69
- Use new (rpm 4.17.1+) bcond style

* Mon Jan 23 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-67
- Revert "Work around missing dependency on texlive-wasy"

* Thu Jan 19 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-66
- Work around missing dependency on texlive-wasy

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-65
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Tue Dec 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-64
- Slightly simplify a files list

* Tue Dec 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-63
- Indicate dirs. in files list with trailing slashes

* Thu Aug 04 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-62
- Update License to SPDX (LGPLv2+ → LGPL-2.1-or-later)

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-61
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Sat Apr 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-60
- Stop numbering patches

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-59
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Sat Nov 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-58
- Tweak a spec file comment

* Sat Oct 09 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-57
- Fix unreadable AUTHORS and README files

* Sat Oct 02 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-56
- Re-enable Doxygen HTML, stripping JS, for devhelp

* Mon Sep 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-55
- Package PDF instead of HTML documentation

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-54
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Thu Feb 25 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-25
- Switch URLs to HTTPS
- Switch from bz2 tarball to xz tarball

* Mon Feb 15 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-24
- Just use cairomm-doc, not cairomm1.0-doc, as a dependency, since cairomm will
  only provide the 1.0 API/ABI series after all; see
  https://src.fedoraproject.org/rpms/pangomm/pull-request/2 for discussion

* Sun Feb 14 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-23
- Improve comment about upstream status

* Sat Feb 13 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.28.3-22
- Whitespace and ordering changes
- Drop obsolete %%ldconfig_scriptlets macro
- Use much stricter file globs
- Properly install both necessary license files, and do so using the %%license
  macro
- Split documentation into a -doc subpackage
- Commit AUTHORS file to UTF-8
- Do not wrap “#include <gconf/gconf-schema.h>” in “extern "C" {  }” to prevent
  “error: template with C linkage”
- Switch library BR’s to pkgconfig(…), and drop unused gtkmm24 BR (and -devel
  dependency)
- Make -devel dependencies arch-specific
- Simplify find-and-remove command for unwanted .la files
- Do not remove the buildroot in %%install
- Drop “--disable-static --enable-shared” options to configure script, as these
  are the defaults anyway
- Use %%make_build/%%make_install macros
- Rebuild autotools-generated files
- Enable more compiler warnings
- Rebuild documentation rather than using the pre-built documentation from the
  source tarball
- Replace obsolete AC_PROG_LIBTOOL macro in configure.ac with LT_INIT
- BR FreeSans font for dot diagrams

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.3-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.28.3-9
- Rebuilt for GCC 5 C++11 ABI change

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Fri Jul 27 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.3-2
- Rebuilt for glibc bug#747377

* Sat Oct 22 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 2.28.3-1
- upstream 2.28.3
- fix documentation build with glibmm 2.28+

* Tue Oct 18 2011 Haïkel Guémar <hguemar@fedoraproject.org> - 2.28.2-3
- fix FTBFS (patch from kalev)

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.28.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Thu Sep 30 2010 Haïkel Guémar <hguemar@fedoraproject.org> - 2.28.2-1
- Update to upstream 2.28.2
- Rename spec file according guidelines
- Rpmlint fixes

* Fri Sep 25 2009 Denis Leroy <denis@poolshark.org> - 2.28.0-1
- Update to upstream 2.28.0

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.24.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.24.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Sep 24 2008 Denis Leroy <denis@poolshark.org> - 2.24.0-1
- Update to upstream 2.24.0

* Wed Mar 12 2008 Denis Leroy <denis@poolshark.org> - 2.22.0-1
- Update to upstream 2.22.0

* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.20.0-2
- Autorebuild for GCC 4.3

* Mon Sep 17 2007 Denis Leroy <denis@poolshark.org> - 2.20.0-1
- Update to new stable 2.20.0

* Thu Mar 15 2007 Denis Leroy <denis@poolshark.org> - 2.18.0-1
- Update to Gnome 2.18, to follow GConf2 version

* Mon Aug 28 2006 Denis Leroy <denis@poolshark.org> - 2.16.0-2
- FE6 Rebuild

* Mon Aug 21 2006 Denis Leroy <denis@poolshark.org> - 2.16.0-1
- Update to 2.16.0

* Sun Jun 25 2006 Denis Leroy <denis@poolshark.org> - 2.14.2
- Update to 2.14.2
- Added dist postfix to release field

* Mon Mar 20 2006 Denis Leroy <denis@poolshark.org> - 2.14.0-1
- Update to 2.14.0

* Tue Feb 28 2006 Denis Leroy <denis@poolshark.org> - 2.12.0-3
- Rebuild

* Fri Nov 25 2005 Denis Leroy <denis@poolshark.org> - 2.12.0-2
- Removed static libraries

* Mon Sep 19 2005 Denis Leroy <denis@poolshark.org> - 2.12.0-1
- Update to 2.12.0

* Sat May  7 2005 Denis Leroy <denis@poolshark.org> - 2.10.0-2
- Added patch to fix x86_64 compile

* Thu Apr 28 2005 Denis Leroy <denis@poolshark.org> - 2.10.0-1
- Upgrade to 2.10.0
- Added patch to fix gcc4 warning

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

* Mon Jun 27 2004 Denis Leroy <denis@poolshark.org> - 0:2.6.1-0.fdr.1
- Upgrade to 2.6.1

* Fri Oct 31 2003 Michael Koziarski <michael@koziarski.org> - 2.0.1-0.fdr.2
- Fix BuildRequires
- Add specific version numbers to GConf dependency.

* Sat Oct 18 2003 Michael Koziarski <michael@koziarski.org> - 2.0.1-0.fdr.1
- Initial RPM creation

## END: Generated by rpmautospec