Initial import

This commit is contained in:
Boohbah
2015-07-06 21:22:03 +00:00
commit 141ea963b5
3 changed files with 144 additions and 0 deletions

20
.SRCINFO Normal file
View File

@@ -0,0 +1,20 @@
pkgbase = eggdrop
pkgdesc = The world's most popular Open Source IRC bot.
pkgver = 1.6.21
pkgrel = 5
url = http://www.eggheads.org/
arch = i686
arch = x86_64
license = GPL2
depends = sh
depends = tcl>=8.3
depends = zlib
options = !makeflags
backup = etc/eggdrop.conf
source = http://ftp.eggheads.org/pub/eggdrop/source/1.6/eggdrop1.6.21.tar.bz2
source = dlopen.c
sha256sums = 75bd5573a609eac3940c0b6ca8251c3f38ea5d54b520e1cad93c650b4bc21754
sha256sums = d1758f84a69173a852e598fa55e69df0d73b8b62c6993b0ba04aa21d539213e6
pkgname = eggdrop

96
PKGBUILD Normal file
View File

@@ -0,0 +1,96 @@
# Maintainer: Boohbah <boohbah at gmail.com>
# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
# Contributor: Mantas Mikulėnas <grawity at gmail.com>
pkgname=eggdrop
pkgver=1.6.21
pkgrel=5
pkgdesc="The world's most popular Open Source IRC bot."
arch=('i686' 'x86_64')
url="http://www.eggheads.org/"
license=('GPL2')
depends=('sh' 'tcl>=8.3' 'zlib')
source=("http://ftp.eggheads.org/pub/$pkgname/source/1.6/$pkgname$pkgver.tar.bz2"
'dlopen.c')
backup=("etc/$pkgname.conf")
options=('!makeflags')
sha256sums=('75bd5573a609eac3940c0b6ca8251c3f38ea5d54b520e1cad93c650b4bc21754'
'd1758f84a69173a852e598fa55e69df0d73b8b62c6993b0ba04aa21d539213e6')
# Want multiple *unique* installations? Change the pkgname, it will just work.
_sharedir="/usr/share"
_modulesdir="/usr/lib/$pkgname"
_scriptsdir="$_sharedir/$pkgname/scripts"
_helpdir="$_sharedir/$pkgname/help"
_bin="/usr/bin/$pkgname"
_mandir="$_sharedir/man/man1"
readonly -a _sharedir _modulesdir _scriptsdir _helpdir _bin _mandir
build() {
cd "$srcdir/$pkgname$pkgver"
# Don't complain about language files on startup.
sed -i "s|\"./language\"|\"$_sharedir/$pkgname/language\"|g" src/eggdrop.h
./configure --with-tcllib='/usr/lib/libtcl8.6.so' \
--with-tclinc='/usr/include/tcl.h'
make config
# Include LDFLAGS.
sed -i "s|-L/usr/lib|${LDFLAGS}|g" Makefile
make
}
check() {
cd "$srcdir/$pkgname$pkgver"
# If this fails, theres a rather good chance something is broken.
gcc -O2 "$srcdir/dlopen.c" -o dlopen -ldl
for module in *.so ; do
if ! env LD_PRELOAD='' ./dlopen "${module}" ; then
error "Sanity check failed: "${module}" cannot be loaded. Proceeding anyway.."
fi
done
rm dlopen
}
package() {
readonly eggtmp="$pkgdir/tmp"
mkdir -p -m 0755 "$eggtmp"
# This is ugly..
cd "$srcdir/$pkgname$pkgver"
make DEST="$eggtmp" install
find "$eggtmp" -name 'CONTENTS' -exec rm {} +
mkdir -p -m 0755 "$pkgdir/etc" \
"$pkgdir/usr/"{bin,lib} \
"$pkgdir/$_sharedir/"{$pkgname,doc,man/man1}
mv "$eggtmp/modules-$pkgver" "$pkgdir/$_modulesdir"
mv "$eggtmp/eggdrop-$pkgver" "$pkgdir/$_bin"
mv "$eggtmp/doc/man1/$pkgname.1" "$pkgdir/$_mandir/$pkgname.1"
rm -r "$eggtmp/doc/man1"
mv "$eggtmp/doc" "$pkgdir/$_sharedir/doc/$pkgname-$pkgver"
for d in language scripts help text; do
mv "$eggtmp/${d}" "$pkgdir/$_sharedir/$pkgname"
done
sed -e '2d' \
-e "1s@^.*@#!$_bin@" \
-e "s@scripts/@$_scriptsdir/@g" \
-e "s@help/@$_helpdir@g" \
-e "s@modules/@$_modulesdir/@g" \
eggdrop.conf > "$pkgdir/etc/$pkgname.conf"
rm -r "$eggtmp"
find "$pkgdir/$_sharedir" -type f -exec chmod 0444 {} +
}
# vim:set ts=2 sw=2 et:

28
dlopen.c Normal file
View File

@@ -0,0 +1,28 @@
#include <dlfcn.h>
#include <stdio.h>
#include <limits.h>
#include <sys/stat.h>
/* Simple program to see if dlopen() would succeed. */
int main(int argc, char **argv)
{
int i;
struct stat st;
char buf[PATH_MAX];
for (i = 1; i < argc; i++) {
if (dlopen(argv[i], RTLD_NOW)) {
fprintf(stdout, "dlopen() of \"%s\" succeeded.\n",
argv[i]);
} else {
snprintf(buf, sizeof(buf), "./%s", argv[i]);
if ((stat(buf, &st) == 0) && dlopen(buf, RTLD_NOW)) {
fprintf(stdout, "dlopen() of \"./%s\" "
"succeeded.\n", argv[i]);
} else {
fprintf(stdout, "dlopen() of \"%s\" failed: "
"%s\n", argv[i], dlerror());
return 1;
}
}
}
return 0;
}