##
##  daemontools.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 information
Name:         daemontools
Summary:      Service Monitoring and Logging Utilities
URL:          http://cr.yp.to/daemontools.html
Vendor:       D. J. Bernstein
Packager:     OpenPKG Project
Distribution: OpenPKG Community
Class:        EVAL
Group:        System
License:      Open Source
Version:      0.76
Release:      20081007

#   list of sources
Source0:      http://cr.yp.to/daemontools/daemontools-%{version}.tar.gz
Source1:      http://smarden.org/pape/djb/manpages/daemontools-%{version}-man-20020131.tar.gz
Source2:      rc.daemontools
Patch0:       daemontools.patch

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

%description
    Daemontools is a small set of utilities for controlling processes
    and maintaining logfiles.

%track
    prog daemontools = {
        version   = %{version}
        url       = http://cr.yp.to/daemontools/install.html
        regex     = daemontools-(__VER__)\.tar.gz
    }

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

%build
    #   build programs
    ( cd admin/daemontools-%{version}
      echo "%{l_cc} %{l_cflags -O}" >conf-cc
      echo "%{l_cc} %{l_ldflags}"   >conf-ld
      echo "%{l_prefix}"            >conf-home
      ./package/compile
    ) || exit $?

%install
    #   create installation hierarchy
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/bin \
        $RPM_BUILD_ROOT%{l_prefix}/man/man8 \
        $RPM_BUILD_ROOT%{l_prefix}/var/daemontools/service

    #   install programs
    ( cd admin/daemontools-%{version}/command
      %{l_shtool} install -c -s -m 755 \
          envdir envuidgid fghack multilog pgrphack readproctitle setlock \
          setuidgid softlimit supervise svc svok svscan svstat tai64n tai64nlocal \
          $RPM_BUILD_ROOT%{l_prefix}/bin/
      %{l_shtool} install -c -m 755 \
          svscanboot $RPM_BUILD_ROOT%{l_prefix}/bin/
    ) || exit $?

    #   install manual pages
    %{l_shtool} install -c -m 644 \
        daemontools-man/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/

    #   install run-command script
    %{l_shtool} mkdir -f -p -m 755 \
        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
    %{l_shtool} install -c -m 755 %{l_value -s -a} \
        %{SOURCE rc.daemontools} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/

    #   determine installation files
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean

%post
    #   after upgrade, restart service
    [ $1 -eq 2 ] || exit 0
    eval `%{l_rc} daemontools status 2>/dev/null`
    [ ".$daemontools_active" = .yes ] && %{l_rc} daemontools restart
    exit 0

%preun
    #   before erase, stop service
    [ $1 -eq 0 ] || exit 0
    %{l_rc} daemontools stop 2>/dev/null
    exit 0

