#!/bin/sh # Slackware build script for dhcpcd # Copyright 2008,2009 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 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 AUTHOR 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. PKGNAM=dhcpcd VERSION=3.2.3 BUILD=1 . /etc/pkghelpers pkghelpers_env rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf dhcpcd-$VERSION tar xvf $CWD/dhcpcd-$VERSION.tar.bz2 cd dhcpcd-$VERSION pkghelpers_permissions # This changes the default locations where *.pid and other files are # written - instead of various locations, use /etc/dhcpc # The latter directory was long traditional, and (more importantly) # you can't be sure that /var is mounted yet when dhcpcd is invoked. zcat $CWD/patches/config.h.diff.gz | patch -p1 || exit 1 # Fixup the sample dhcpcd.sh script to reflect our changes zcat $CWD/patches/dhcpcd.sh.diff.gz | patch -p1 || exit 1 # Fix a typo in the manpage zcat $CWD/patches/dhcpcd.8.in.diff.gz | patch -p1 || exit 1 # Disable zeroconf support # I'm not sure if this is necessary, to be honest. If we do this though, # I think we'll want to edit the man page to remove references to it. #sed -i 's%#define ENABLE_IPV4LL%#undef ENABLE_IPV4LL%' config.h CFLAGS="$SLKCFLAGS" \ make \ INFODIR=/etc/dhcpc \ || exit 1 # We'll install this manually, as the only thing "make install" actually # installs is the executable and the man page, and the man page goes to # the wrong place :-) mkdir -p $PKG/sbin cp -a dhcpcd $PKG/sbin mkdir -p $PKG/usr/man/man8 gzip -9c dhcpcd.8 > $PKG/usr/man/man8/dhcpcd.8.gz # This script (or its equivalent) has been installed non-executable for # several dhcpcd releases leading me to believe this is intentional on the # part of the developers. Indeed, the script is called a "sample" in the # included comments, and there's been at least one security issue related # to its use in the past, so it's probably a safer bet to not install it so # that it works "out of the box". However, making it non-executable is not # the best solution for this as it leads to error messages in the system # logs which I hear about from time to time. Instead, we'll make it # executable, but will give it a suffix of -sample so that dhcpcd won't # attempt to run it unless the admin specifically configure it to do so. # As far as I can tell it does nothing more than add some extra verbosity # to the logs anyway, and rc.inet1 already does that. There's really no # need that I can see to enable the script. mkdir -p $PKG/etc/dhcpc cp -a dhcpcd.sh $PKG/etc/dhcpc/dhcpcd.sh-sample chmod 755 $PKG/etc/dhcpc/dhcpcd.sh-sample mkdir -p $PKG/usr/doc/dhcpcd-$VERSION cp -a README $PKG/usr/doc/dhcpcd-$VERSION zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/dhcpcd-$VERSION/COPYRIGHT mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG pkghelpers_fixup pkghelpers_makepkg