##
##  ksh.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_pkg   20120801
%define       V_ksh   2012-08-01
%define       V_init  2012-08-01

#   package information
Name:         ksh
Summary:      The Original AT&T Korn Shell
URL:          http://www.kornshell.com/
Vendor:       David G. Korn, AT&T Bell Labs
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        BASE
Group:        Shell
License:      EPL
Version:      %{V_pkg}
Release:      20120808

#   list of sources
Source0:      http://I%20accept%20www.opensource.org%2flicenses%2fcpl:.@www.research.att.com/~gsf/download/tgz/ast-ksh.%{V_ksh}.tgz
Source1:      http://I%20accept%20www.opensource.org%2flicenses%2fcpl:.@www.research.att.com/~gsf/download/tgz/INIT.%{V_init}.tgz
Patch0:       ksh.patch

#   build information
BuildPreReq:  OpenPKG, openpkg >= 20160101, gcc
PreReq:       OpenPKG, openpkg >= 20160101
Provides:     KSH
Conflicts:    pdksh

%description
    The KornShell language was designed and developed by David G. Korn
    at AT&T Bell Laboratories. It is an interactive command language
    that provides access to the UNIX system and to many other systems,
    on the many different computers and workstations on which it is
    implemented. This is Ksh93 which is intended to conform to the Shell
    Language Standard developed by the IEEE POSIX 1003.2 Shell and
    Utilities Language Committee.

%track
    prog ksh = {
        version   = %{V_init}
        url       = http://www.research.att.com/~gsf/cgi-bin/download.cgi?action=list&name=ast-ksh
        regex     = ast-ksh\.([\d-]+)\.tgz
    }
    prog ksh:init = {
        version   = %{V_init}
        url       = http://www.research.att.com/~gsf/cgi-bin/download.cgi?action=list&name=INIT
        regex     = INIT\.([\d-]+)\.tgz
    }

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

%build
    #   the supplied Mamfiles work only for standard UNIX environment
    #   because they are no regenerated by us (no "nmake" available)
    case "%{l_platform -t}" in
        *-sunos5.6* ) ;;
        *-sunos* )
            %{l_shtool} subst \
                -e '/^exec.*-o ksh/s/\(\${mam_libm}\)/\1 -lsecdb/' \
                src/cmd/ksh93/Mamfile
            ;;
        sparc*-linux* )
            %{l_shtool} subst \
                -e '/^exec.*-o ksh/s/\(\${mam_libm}\)/\1 -ldll/' \
                src/cmd/ksh93/Mamfile
            ;;
        sparc64-netbsd* )
            %{l_shtool} subst \
                -e '/^probe_pic=/s/-fpic/-fPIC -fpic/' \
                -e '/^probe_PIC=/s/-fpic -fPIC/-fPIC -fpic/' \
                src/cmd/INIT/make.probe
            ;;
    esac
    SHELL=/bin/sh; export SHELL
    $SHELL -c './bin/package "read" || true'
    $SHELL -c './bin/package "make" CC="%{l_cc}"'

%install
    %{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 \
        arch/*/bin/ksh $RPM_BUILD_ROOT%{l_prefix}/bin/ksh
    %{l_shtool} install -c -m 644 \
        arch/*/man/man1/sh.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/ksh.1
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

%post
    if [ ".$1" = .1 ]; then
        if [ -f /etc/shells ]; then
            if [ ".`grep $RPM_INSTALL_PREFIX/bin/ksh /etc/shells`" = . ]; then
                ( echo "Hint: To use $RPM_INSTALL_PREFIX/bin/ksh as the login"
                  echo "shell for users, please add this path to /etc/shells."
                ) | %{l_rpmtool} msg -b -t notice
            fi
        fi
    fi

