%global __requires_exclude ^perl\\(Autom4te::
%global __provides_exclude ^perl\\(Autom4te::

Name:           autoconf
Version:        2.71
Release:        6
Summary:        An extensible package to automatically configure software source code packages
License:        GPLv2+ and GPLv3+ and GFDL-1.3-only
URL:            https://www.gnu.org/software/%{name}/
Source0:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
Source1:        config.site
Source2:        autoconf-el.el

Patch1:         backport-_AC_PROG_CXX_STDCXX_EDITION_TRY-fix-typo-in-variable.patch

Patch9000:      skip-one-test-at-line-1616-of-autotest.patch

BuildArch:      noarch

BuildRequires:  m4 emacs perl perl-generators help2man gcc-c++
Requires:       m4 emacs-filesystem perl
Requires(post): info
Requires(preun):info

%package_help

%description
Autoconf is an extensible package of M4 macros that produce shell scripts to automatically
configure software source code packages. These scripts can adapt the packages to many kinds
of UNIX-like systems without manual user intervention. Autoconf creates a configuration script
for a package from a template file that lists the operating system features that the package
can use, in the form of M4 macro calls.

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

%build
export EMACS=%{_bindir}/emacs
%configure --with-lispdir=%{_emacs_sitelispdir}/autoconf
%make_build

%check
echo 'main() {}' | g++ -E -v - > g++.log 2>&1
grep -rn -m 1 COLLECT_GCC_OPTIONS g++.log > option.log
GCC_OPTION=`cat option.log`
if [[ $GCC_OPTION != *"fsigned-char"* ]];then
  sed -i "s|((char) -1) < 0|((unsigned char) -1) < 0|g" lib/autoconf/c.m4
fi
rm -rf g++.log option.log
make %{?_smp_mflags} check

%install
%make_install
install -p -D %{SOURCE1} %{buildroot}%{_datadir}
install -p -D %{SOURCE2} %{buildroot}%{_emacs_sitestartdir}/autoconf-el.el

%post help
/sbin/install-info %{_infodir}/autoconf.info %{_infodir}/dir || :

%preun help
if [ "$1" = 0 ]; then
    /sbin/install-info --delete %{_infodir}/autoconf.info %{_infodir}/dir || :
fi

%files
%doc  ChangeLog README THANKS
%license COPYING* AUTHORS doc/autoconf.info
%{_bindir}/*
%{_datadir}/autoconf/
%{_datadir}/config.site
%{_datadir}/emacs/site-lisp/*
%exclude %{_infodir}/standards*

%files help
%doc NEWS TODO
%{_infodir}/autoconf.info*
%{_mandir}/man1/*
%exclude %{_infodir}/dir


%changelog
* Wed Jun 12 2024 fuanan <fuanan3@h-partners.com> - 2.71-6
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:License compliance rectification

* Tue Jun 04 2024 fuanan <fuanan3@h-partners.com> - 2.71-5
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:Fix Adapt signed-char check macro which lead to python3 testcase failure.

* Fri May 24 2024 fuanan <fuanan3@h-partners.com> - 2.71-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:Adapt signed-char check macro for default unsigned evironment

* Sat Oct 22 2022 yixiangzhike <yixiangzhike007@163.com> - 2.71-3
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:Fix typo in variable name

* Fri Dec 31 2021 wangjie <wangjie375@huawei.com> - 2.71-2
- Type:enhancement
- ID:NA
- SUG:NA
- DESC:Add perl to resolve compilation failure
       Add gcc-c++ to solve test failure

* Thu Dec 2 2021 wangjie <wangjie375@huawei.com> - 2.71-1
- Type:enhancement
- ID:NA
- SUG:NA
- DESC:Update autoconf to 2.71

* Sat Jan 4 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.69-30
- Strengthen sources and patches

* Fri Oct 11 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.69-29
- Package Init
