##
##  expect.spec -- OpenPKG RPM Package Specification
##  Copyright (c) 2000-2025 OpenPKG Project <http://openpkg.org/>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package versions
%define       V_expect_tar  5.43.0
%define       V_expect_dir  5.43
%define       V_tcl         8.4.19

#   package information
Name:         expect
Summary:      Send/Expect Scripting Language
URL:          http://expect.nist.gov/
Vendor:       NIST
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        BASE
Group:        Language
License:      GPL
Version:      %{V_expect_tar}
Release:      20160305

#   list of sources
Source0:      http://expect.nist.gov/src/expect-%{V_expect_tar}.tar.gz
Source1:      http://download.sourceforge.net/tcl/tcl%{V_tcl}-src.tar.gz
Patch0:       expect.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101
PreReq:       OpenPKG, openpkg >= 20160101

%description
    Expect is a tool for automating interactive applications such as
    telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes
    this stuff trivial. Expect is also useful for testing these same
    applications.

%track
    prog expect:expect = {
        disabled
        comment   = "rse: 5.44.x was withdrawn and failed to build anyway"
        version   = %{version}
        url       = http://expect.nist.gov/src/
        regex     = expect-(__VER__)\.tar\.gz
    }
    prog expect:tcl = {
        disabled
        version   = %{V_tcl}
        url       = http://sourceforge.net/projects/tcl/files/
        regex     = tcl(8\.4\.\d+)-src\.tar\.gz
    }

%prep
    %setup -q -c
    %setup -q -T -D -a 1
    %patch -p0

%build
    ( cd tcl%{V_tcl}/unix
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      ./configure \
          --prefix=%{l_prefix} \
          --includedir=%{l_prefix}/include/expect/tcl \
          --libdir=%{l_prefix}/lib/expect/tcl \
          --disable-threads \
          --disable-load \
          --disable-shared
      %{l_make} %{l_mflags -O}
    ) || exit $?
    ( cd expect-%{V_expect_dir}
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      ./configure \
          --prefix=%{l_prefix} \
          --with-tcl=../tcl%{V_tcl}/unix \
          --without-x \
          --disable-load \
          --disable-shared
      %{l_make} %{l_mflags -O} expect
    ) || exit $?

%install
    ( cd tcl%{V_tcl}/unix
      %{l_make} %{l_mflags} install INSTALL_ROOT=$RPM_BUILD_ROOT
      rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man3
      rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/mann
      rm -f  $RPM_BUILD_ROOT%{l_prefix}/man/man1/tclsh.1
      rm -f  $RPM_BUILD_ROOT%{l_prefix}/bin/tclsh*
      rm -rf $RPM_BUILD_ROOT%{l_prefix}/include/expect
      rm -f  $RPM_BUILD_ROOT%{l_prefix}/lib/expect/tcl/libtcl*
    ) || exit $?
    ( cd expect-%{V_expect_dir}
      %{l_shtool} mkdir -f -p -m 755 \
          $RPM_BUILD_ROOT%{l_prefix}/bin \
          $RPM_BUILD_ROOT%{l_prefix}/man/man1
      %{l_shtool} install -c -s -m 755 \
          expect $RPM_BUILD_ROOT%{l_prefix}/bin/
      %{l_shtool} install -c -m 644 \
          expect.man $RPM_BUILD_ROOT%{l_prefix}/man/man1/expect.1
    ) || exit $?
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

