diff --git a/Makefile b/Makefile deleted file mode 100644 index 1e82363..0000000 --- a/Makefile +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/make -f -# Makefile for pgl - -# -# General settings -# -PKGNAME = pgl -VERSION = 2.1.3 -SHELL = /bin/sh - -# Compilation settings -CFLAGS=-Wall -OPTFLAGS=-Os - -# -# Set which pgl modules shall be built -# -MAKE_PGLD ?= yes -MAKE_PGLCMD ?= yes -MAKE_PGLGUI ?= yes - -# -# Configuration settings -# - -# Set DBUS to yes if you want to be able to use DBUS. -DBUS ?= yes - -# Set ZLIB to yes if you want pgld to be able to load compressed blocklists. -ZLIB ?= yes - -# LOWMEM disables storing of textual range descriptions in RAM. -# Set to yes if you are building a version for embedded devices -# like router or NAS box. -LOWMEM ?= no - -# Want to run gprof? -PROFILE ?= no - -# Want to use gdb on the target binary? -DEBUG ?= yes - - -# -# Path settings -# -# Note: the pgld/logrotate and pglcmd/logrotate files need to be adapted -# manually if you change things here. -prefix ?= /usr -# PATH is already set, so use custom PATHS as variable name. -PATHS ?= /usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin -BINDIR ?= $(prefix)/bin -SBINDIR ?= $(prefix)/sbin -PIDDIR ?= /var/run -LOGDIR ?= /var/log/pgl -CONFDIR ?= /etc/pgl -LIBDIR ?= $(prefix)/lib/pgl -PLUGINDIR ?= $(prefix)/lib/pgl -TMPDIR ?= /tmp -BLOCKLISTS_DIR ?= /var/spool/pgl -MASTER_BLOCKLIST_DIR ?= /var/lib/pgl -LOCAL_BLOCKLIST_DIR ?= $(CONFDIR)/blocklists.local -DBUSCONFDIR ?= /etc/dbus-1/system.d -# Debian packaging uses /etc/network/if-up.d instead. -IFUPDIR ?= /etc/NetworkManager/dispatcher.d -CRONDIR ?= /etc/cron.daily -INITDIR ?= /etc/init.d -LOGROTATEDIR ?= /etc/logrotate.d -# If LSB file does not exist or variable is set to an empty value (default), -# pglcmd's builtin LSB init functions are used. -#LSB ?= /lib/lsb/init-functions - - -# Evaluate which components are to be built -ifeq ($(MAKE_PGLD),yes) -MODULES_ALL+=pgld_all -MODULES_INSTALL+=pgld_install -MODULES_INSTALLSTRIP+=pgld_install-strip -MODULES_CLEAN+=pgld_clean -MODULES_DIST+=pgld_dist -endif -ifeq ($(MAKE_PGLCMD),yes) -MODULES_ALL+=pglcmd_all -MODULES_INSTALL+=pglcmd_install -MODULES_CLEAN+=pglcmd_clean -MODULES_DIST+=pglcmd_dist -endif -ifeq ($(MAKE_PGLGUI),yes) -MODULES_ALL+=pgl-gui_all -MODULES_INSTALL+=pgl-gui_install -MODULES_INSTALLSTRIP+=pgl-gui_install-strip -MODULES_CLEAN+=pgl-gui_clean -MODULES_DIST+=pgl-gui_dist -endif - -RELEASEFILE:=$(PKGNAME)-$(VERSION).tar.gz - -DISTDIR = $(PKGNAME)-$(VERSION) - -DISTFILES = \ - ChangeLog \ - Makefile \ - README \ - debian/changelog \ - debian/compat \ - debian/control \ - debian/copyright \ - debian/patches/series \ - debian/patches/use-systemwide-LSB-init-functions.patch \ - debian/pglcmd.config \ - debian/pglcmd.dirs \ - debian/pglcmd.examples \ - debian/pglcmd.install \ - debian/pglcmd.links \ - debian/pglcmd.postinst \ - debian/pglcmd.postrm \ - debian/pglcmd.preinst \ - debian/pglcmd.templates \ - debian/pgld.dirs \ - debian/pgld.docs \ - debian/pgld.install \ - debian/pgld.manpages \ - debian/pgl-gui.install \ - debian/pgl-gui.links \ - debian/po/POTFILES.in \ - debian/po/templates.pot \ - debian/README.Debian \ - debian/rules \ - debian/source/format \ - debian/watch \ - docs/AUTHORS \ - docs/BUGS \ - docs/COPYING \ - docs/iptables-custom-insert.sh \ - docs/iptables-custom-remove.sh \ - docs/pgld.1 \ - docs/README \ - docs/README.blocklists \ - docs/README.pgl-gui \ - docs/THANKS \ - docs/TODO - -all: $(MODULES_ALL) - -install: $(MODULES_INSTALL) - -install-strip: $(MODULES_INSTALLSTRIP) - -clean: $(MODULES_CLEAN) - rm -rf *~ debian/*~ docs/*~ $(DISTDIR) - -dist: $(MODULES_DIST) - mkdir -p $(DISTDIR) $(DISTDIR)/debian $(DISTDIR)/debian/patches $(DISTDIR)/debian/po $(DISTDIR)/debian/source $(DISTDIR)/docs - for I in $(DISTFILES) ; do cp "$$I" $(DISTDIR)/$$I ; done - chmod +x debian/rules - tar cvzf $(RELEASEFILE) $(DISTDIR) - rm -rf $(DISTDIR) - -$(MODULES_ALL): - $(MAKE) -C $(subst _all,,$@) all - -$(MODULES_INSTALL): - $(MAKE) -C $(subst _install,,$@) install - -$(MODULES_INSTALLSTRIP): - $(MAKE) -C $(subst _install-strip,,$@) install-strip - -$(MODULES_CLEAN): - $(MAKE) -C $(subst _clean,,$@) clean - -$(MODULES_DIST): - $(MAKE) -C $(subst _dist,,$@) dist - -# Simply by being mentioned as a target, this tells make to export all variables to child processes by default. -.EXPORT_ALL_VARIABLES: - -.PHONY: all $(MODULES_ALL) \ - install $(MODULES_INSTALL) \ - install-strip $(MODULES_INSTALLSTRIP) \ - clean $(MODULES_CLEAN) \ - dist $(MODULES_DIST) diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..951e9a6 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,16 @@ +BLOCKLISTS_DIR = @BLOCKLISTS_DIR@ +LOCAL_BLOCKLIST_DIR = @LOCAL_BLOCKLIST_DIR@ +MASTER_BLOCKLIST_DIR = @MASTER_BLOCKLIST_DIR@ + +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS = \ + docs \ + pglcmd \ + pgld \ + $(QT_SUB) + +install-data-local: + @mkdir -p $(DESTDIR)$(MASTER_BLOCKLIST_DIR) + @mkdir -p $(DESTDIR)$(BLOCKLISTS_DIR) + @mkdir -p $(DESTDIR)$(LOCAL_BLOCKLIST_DIR) diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..cd4e181 --- /dev/null +++ b/configure.ac @@ -0,0 +1,248 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.68]) +AC_INIT([pgl], [2.1.3], [http://sourceforge.net/tracker/?group_id=131687&atid=721926]) +AC_CONFIG_SRCDIR([pgld/src/pgld.c]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) +AM_INIT_AUTOMAKE([-Wall]) +LT_INIT([shared]) + +# Checks for programs. +AC_PROG_CXX +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +# Checks for header files. +AC_CHECK_HEADERS([arpa/inet.h inttypes.h limits.h netinet/in.h stdlib.h string.h sys/time.h syslog.h unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_INLINE +AC_TYPE_SIZE_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FORK +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([memchr memmove memset strdup strerror strstr]) + +# unset some vars +QT_SUB= + +## +# let user specify initddir +AC_ARG_WITH([initddir], + [AS_HELP_STRING([--with-initddir=DIR], + [path to init script directory (default: sysconfdir/init.d)])], + [INITDIR="$withval"], + [INITDIR="$sysconfdir/init.d"]) + +# let user specify LOGDIR +AC_ARG_WITH([logdir], + [AS_HELP_STRING([--with-logdir=DIR], + [path to log directory (default: localstatedir/log/pgl)])], + [LOGDIR="$withval"], + [LOGDIR="$localstatedir/log/$PACKAGE"]) + +# let user specify PIDDIR +AC_ARG_WITH([piddir], + [AS_HELP_STRING([--with-piddir=DIR], + [path to PID directory (default: localstatedir/run)])], + [PIDDIR="$withval"], + [PIDDIR="$localstatedir/run"]) + +# let user specify TMPDIR +AC_ARG_WITH([tmpdir], + [AS_HELP_STRING([--with-tmpdir=DIR], + [path to TMP directory (default: /tmp)])], + [TMPDIR="$withval"], + [TMPDIR="/tmp"]) + +# let user specify BLOCKLISTS_DIR +AC_ARG_WITH([blocklists], + [AS_HELP_STRING([--with-blocklists=DIR], + [path to blocklists directory (default: /var/spool/pgl)])], + [BLOCKLISTS_DIR="$withval"], + [BLOCKLISTS_DIR="/var/spool/$PACKAGE"]) + +# let user specify LOCAL_BLOCKLIST_DIR +AC_ARG_WITH([localblocklist], + [AS_HELP_STRING([--with-localblocklist=DIR], + [path to local blocklist directory (default: sysconfdir/pgl/blocklists.local)])], + [LOCAL_BLOCKLIST_DIR="$withval"], + [LOCAL_BLOCKLIST_DIR="$sysconfdir/$PACKAGE/blocklists.local"]) + +# let user specify MASTER_BLOCKLIST_DIR +AC_ARG_WITH([masterblocklist], + [AS_HELP_STRING([--with-masterblocklist=DIR], + [path to master blocklist directory (default: /var/lib/pgl)])], + [MASTER_BLOCKLIST_DIR="$withval"], + [MASTER_BLOCKLIST_DIR="/var/lib/$PACKAGE"]) + +# let user specify LSB +AC_ARG_WITH([lsb], + [AS_HELP_STRING([--with-lsb=DIR], + [path to lsb file (default: none)])], + [LSBFILE="$withval"], + [LSBFILE=""]) + +# configure-switch for logrotate +AC_ARG_ENABLE([logrotate], + [AS_HELP_STRING([--enable-logrotate], + [enable support logrotate (default: enable)])], + enable_logrotate=$enableval, + enable_logrotate="yes") + +AM_CONDITIONAL(LOGROTATEMAKE, [test "x$enable_logrotate" = "xyes"]) + +# configure-switch for cron +AC_ARG_ENABLE([cron], + [AS_HELP_STRING([--enable-cron], + [enable support for cron services (default: enable)])], + enable_cron=$enableval, + enable_cron="yes") + +AM_CONDITIONAL(CRONMAKE, [test "x$enable_cron" = "xyes"]) + +# configure-switch for NetworkManager +AC_ARG_ENABLE([networkmanager], + [AS_HELP_STRING([--enable-networkmanager], + [enable support for NetworkManager (default: disable)])], + enable_networkmanager=$enableval, + enable_networkmanager="no") + +AM_CONDITIONAL(NETWORKMANAGERMAKE, [test "x$enable_networkmanager" = "xyes"]) + +## +# initial PGLD_flags +# pkg-config module check, generates $1_LIBS and $1_CFLAGS vars +PKG_CHECK_MODULES([libnetfilterqueue],[libnetfilter_queue]) +PGLD_CFLAGS="" +PGLD_CPPFLAGS="-DVERSION=\\\"$VERSION\\\" -DPACKAGE_NAME=\\\"$PACKAGE\\\" -DPIDFILE=\\\"${localstatedir}/run/${PACKAGE}d.pid\\\"" +PGLD_LDFLAGS="$libnetfilterqueue_LIBS" + +# configure-switch for zlib +AC_ARG_ENABLE([zlib], + [AS_HELP_STRING([--enable-zlib], + [enable support for zlib compressed blocklists (default: enable)])], + enable_zlib=$enableval, + enable_zlib="yes") + +# modify flags if zlib is enabled +AS_IF([test "x$zlib_dbus" = "xyes"], + [PKG_CHECK_MODULES([ZLIB], + [zlib]) + PGLD_CFLAGS="$PGLD_CFLAGS $ZLIB_CFLAGS -DHAVE_ZLIB" + PGLD_LDFLAGS="$PGLD_LDFLAGS $ZLIB_LIBS"]) + +# configure-switch for dbus +AC_ARG_ENABLE([dbus], + [AS_HELP_STRING([--enable-dbus], + [enable dbus support (default: enable)])], + enable_dbus=$enableval, + enable_dbus="yes") + +# check if dbus is enabled in general +AM_CONDITIONAL(DBUSMAKE, [test "x$enable_dbus" = "xyes"]) + +# modify PGLD_flags if dbus is enabled +AS_IF([test "x$enable_dbus" = "xyes"], + [PKG_CHECK_MODULES([DBUS], + [dbus-1]) + PGLD_CFLAGS="$PGLD_CFLAGS $DBUS_CFLAGS -fPIC" + PGLD_CPPFLAGS="$PGLD_CPPFLAGS -DHAVE_DBUS -DPLUGINDIR=\\\"${libdir}/pgl\\\"" + PGLD_LDFLAGS="$PGLD_LDFLAGS $DBUS_LIBS -Wl,-export-dynamic -ldl"]) + +## +# configure-switch for qt4 +AC_ARG_WITH([qt4], + [AS_HELP_STRING([--without-qt4], + [build without gui])], + with_qt4="$withval", + with_qt4="yes") # this only reflects the default ("if not given") + +# modify QT4_flags if qt4 enabled and +# include pgl-gui as subdir in Makefile.am (QT_SUB) +AS_IF([test "x$with_qt4" = "xyes"], + AS_IF([test "x$enable_dbus" = "xyes"], + [PKG_CHECK_MODULES([QT4DBUS], [QtDBus])], + [AC_MSG_ERROR([qt4 needs dbus!])]) + AC_CHECK_QT4(["4.3.0"]) # from qt4.m4 + PKG_CHECK_MODULES([QT4], [QtCore QtGui]) + AC_SEARCH_LIBS([pthread_create], [pthread]) # adds -lpthread to LIBS + QT_CXXFLAGS="$QT4_CFLAGS $QT4DBUS_CFLAGS" + QT_CPPFLAGS="-D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED" + QT_LDFLAGS="$QT4_LIBS $QT4DBUS_LIBS" + QT_SUB="pgl-gui") + +# targets +AC_CONFIG_FILES([Makefile + docs/Makefile + pgld/Makefile + pglcmd/Makefile + pgl-gui/Makefile]) + +# finally substitute several variables +AC_SUBST([QT_SUB]) # ref in Makefile.am +AC_SUBST([INITDIR]) +AC_SUBST([PIDDIR]) +AC_SUBST([LOGDIR]) +AC_SUBST([TMPDIR]) +AC_SUBST([BLOCKLISTS_DIR]) +AC_SUBST([LOCAL_BLOCKLIST_DIR]) +AC_SUBST([MASTER_BLOCKLIST_DIR]) +AC_SUBST([LSBFILE]) + +AC_SUBST([PGLD_CFLAGS]) +AC_SUBST([PGLD_CPPFLAGS]) +AC_SUBST([PGLD_LDFLAGS]) + +AC_SUBST([QT_CXXFLAGS]) +AC_SUBST([QT_CPPFLAGS]) +AC_SUBST([QT_LDFLAGS]) + +AC_SUBST([AM_CFLAGS]) +AC_SUBST([AM_CXXFLAGS]) +AC_SUBST([AM_CPPFLAGS]) +AC_SUBST([AM_LDFLAGS]) + + +AC_OUTPUT + +# give some nice output +echo +echo +echo pgl.......................................... : Version $VERSION +echo +echo Prefix....................................... : $prefix +if test "x$with_qt4" = "xyes"; then +echo QT-gui....................................... : yes +else +echo QT-gui....................................... : no +fi +if test "x$enable_dbus" = "xyes"; then +echo dbus......................................... : yes +else +echo dbus......................................... : no +fi +echo +echo ............................................. +echo "default flags to append:" +echo "PGLD_CFLAGS: $PGLD_CFLAGS" +echo "PGLD_CPPFLAGS: $PGLD_CPPFLAGS" +echo "PGLD_LDFLAGS: $PGLD_LDFLAGS" +echo "QT_CXXFLAGS: $QT_CXXFLAGS" +echo "QT_CPPFLAGS: $QT_CPPFLAGS" +echo "QT_LDFLAGS: $QT_LDFLAGS" +echo ............................................. +echo +echo Homepage http://peerguardian.sourceforge.net/ +echo +echo diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..ad51e84 --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1,7 @@ +man_MANS = pgld.1 + +install-data-local: + $(INSTALL_DATA) -D $(abs_srcdir)/iptables-custom-insert.sh \ + $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/examples/iptables-custom-insert.sh + $(INSTALL_DATA) -D $(abs_srcdir)/iptables-custom-remove.sh \ + $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/examples/iptables-custom-remove.sh diff --git a/m4/qt4.m4 b/m4/qt4.m4 new file mode 100644 index 0000000..5245d5c --- /dev/null +++ b/m4/qt4.m4 @@ -0,0 +1,209 @@ +dnl file://qt4.m4 +dnl ----------------------------------------------------------------------- +dnl Author: Juergen Heinemann http://www.hjcms.de, (C) 2007-2009 dnl +dnl dnl +dnl Copyright (C) 2004 by Juergen Heinemann dnl +dnl nospam __AT__ hjcms (DOT) de dnl +dnl dnl +dnl This program is free software; you can redistribute it and/or modify dnl +dnl it under the terms of the GNU General Public License as published by dnl +dnl the Free Software Foundation; either version 2 of the License, or dnl +dnl (at your option) any later version. dnl +dnl dnl +dnl This program is distributed in the hope that it will be useful, dnl +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl +dnl GNU General Public License for more details. dnl +dnl dnl +dnl You should have received a copy of the GNU General Public License dnl +dnl along with this program; if not, write to the dnl +dnl Free Software Foundation, Inc., dnl +dnl 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl +dnl ------------------------------------------------------------------------ + +dnl ----------------------------------------------- +dnl Phonon >= 4.2* http://www.kde.org +dnl ----------------------------------------------- + +AC_DEFUN([AC_CHECK_PHONON], +[ +AC_REQUIRE([AC_PROG_MAKE_SET]) dnl +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl + +dnl ----------------------------------------------- +dnl Minimal Version +dnl ----------------------------------------------- +PHONON_REQUIRED_VERSION=m4_default([$1], [4.2.70]) +AC_SUBST(PHONON_REQUIRED_VERSION) dnl + +PKG_CHECK_MODULES([PHONON],[phonon >= $PHONON_REQUIRED_VERSION], + AC_DEFINE(HAVE_PHONON,[1],[phonon exists]), + AC_MSG_ERROR([phonon >= $QT_REQUIRED_VERSION not found!]) +) + +]) + +dnl ----------------------------------------------- +dnl Qt >= 4.* and gettext Dependeces +dnl ----------------------------------------------- +AC_DEFUN([FUN_TYPE_BOOL], +[ + AC_REQUIRE([AC_PROG_CXX]) dnl + AC_LANG_PUSH(C++) dnl + AC_CHECK_TYPE(bool, ac_check_bool=yes, ac_check_bool=no) + AC_LANG_POP(C++) dnl + if test "x$ac_check_bool" = "xyes" ; then + AC_DEFINE(HAVE_BOOL,[],[define if bool is a built-in type]) + fi + + AH_BOTTOM([#ifndef HAVE_BOOL]) + AH_BOTTOM([enum booltyp { false, true }; typedef enum booltyp bool;]) + AH_BOTTOM([#endif]) +]) dnl FUN_TYPE_BOOL + +dnl ----------------------------------------------- +dnl Find Qt4 Program +dnl @example AC_CHECK_QT4_PROG([qhelpconverter]) +dnl @generate QHELPCONVERTER = qhelpconverter +dnl ----------------------------------------------- +m4_define([_QT_PROG_DEFUN],[m4_toupper([$1])]) + +AC_DEFUN([AC_CHECK_QT4_PROG], +[ + AC_REQUIRE([AC_ARG_PROGRAM]) dnl + AC_CHECK_PROGS(_QT_PROG_DEFUN($1),[$1 $14 $1-qt4]) dnl + test -n "$_QT_PROG_DEFUN($1)" || AC_MSG_WARN([can not find $1 for build subs]) +]) + +dnl ----------------------------------------------- +dnl Qt >= 4.* http://www.trolltech.com +dnl ----------------------------------------------- + +AC_DEFUN([AC_CHECK_QT4], +[ +AC_REQUIRE([AC_PROG_AWK]) dnl +AC_REQUIRE([AC_PROG_MAKE_SET]) dnl +AC_REQUIRE([AC_ARG_PROGRAM]) dnl +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl +AC_REQUIRE([FUN_TYPE_BOOL]) dnl + +dnl ----------------------------------------------- +dnl Minimal Version +dnl ----------------------------------------------- +QT_REQUIRED_VERSION=m4_default([$1], [4.4.0]) +AC_SUBST(QT_REQUIRED_VERSION) dnl + +dnl ----------------------------------------------- +dnl Required pkg-config Files +dnl ----------------------------------------------- +QT_REQUIRED_CONFIG=m4_default([$2], ["QtCore"]) +AC_SUBST(QT_REQUIRED_CONFIG) dnl + +dnl ----------------------------------------------- +dnl error if fail Section +dnl ----------------------------------------------- +PKG_CHECK_MODULES([QT],[$QT_REQUIRED_CONFIG >= $QT_REQUIRED_VERSION], + AC_DEFINE(HAVE_QT,[1],[$QT_REQUIRED_CONFIG exists]), + AC_MSG_ERROR([$QT_REQUIRED_CONFIG >= $QT_REQUIRED_VERSION not found!]) +) + +dnl ----------------------------------------------- +dnl check for moc compiler +dnl ----------------------------------------------- +AC_CHECK_PROGS([MOC],[moc moc4 moc-qt4]) +if test ! -n "$MOC" ; then + MOC="`$PKG_CONFIG --variable=moc_location QtCore`" + test -x "$MOC" || AC_MSG_ERROR([Qt moc MOC::Compiler not found!]) + AC_SUBST([MOC]) dnl +fi + +dnl ----------------------------------------------- +dnl check for uic +dnl ----------------------------------------------- +AC_CHECK_PROGS([UIC],[uic uic4 uic-qt4]) +if test ! -n "$UIC" ; then + UIC="`$PKG_CONFIG --variable=uic_location QtCore`" + test -x "$UIC" || AC_MSG_ERROR([Qt uic UI::Compiler not found!]) + AC_SUBST([UIC]) dnl +fi + +dnl ----------------------------------------------- +dnl check for rcc +dnl ----------------------------------------------- +AC_CHECK_PROGS([RCC],[rcc rcc4 rcc-qt4]) +if test ! -n "$RCC" ; then + RCC="rcc" + test -x "$RCC" || AC_MSG_ERROR([Qt rcc QRC::Compiler not found!]) + AC_SUBST([RCC]) dnl +fi + +dnl ----------------------------------------------- +dnl check for lupdate +dnl ----------------------------------------------- +AC_CHECK_PROGS([LUPDATE],[lupdate lupdate4 lupdate-qt4]) +test -n "$LUPDATE" || AC_MSG_ERROR([Qt lupdate Compiler not found!]) + +dnl ----------------------------------------------- +dnl check for lrelease +dnl ----------------------------------------------- +AC_CHECK_PROGS([LRELEASE],[lrelease lrelease4 lrelease-qt4]) +test -n "$LRELEASE" || AC_MSG_ERROR([Qt lrelease Compiler not found!]) + +dnl ----------------------------------------------- +dnl check for qmake +dnl ----------------------------------------------- +AC_CHECK_PROGS([QMAKE],[qmake qmake4 qmake-qt4]) +test -n "$QMAKE" || AC_MSG_ERROR([No QT3 to QT4 Support on this System]) dnl + +dnl ----------------------------------------------- +dnl set include dir +dnl ----------------------------------------------- +Q_INCLUDE_DIR="`$QMAKE -query QT_INSTALL_HEADERS`" +AC_SUBST(Q_INCLUDE_DIR) dnl + +dnl ----------------------------------------------- +dnl set include dir +dnl ----------------------------------------------- +Q_LIB_DIR="`$QMAKE -query QT_INSTALL_LIBS`" +AC_SUBST(Q_LIB_DIR) dnl + +dnl ----------------------------------------------- +dnl set plugin dir +dnl ----------------------------------------------- +Q_PLUGIN_DIR="`$QMAKE -query QT_INSTALL_PLUGINS`" +AC_SUBST(Q_PLUGIN_DIR) dnl + +dnl ----------------------------------------------- +dnl set tr locale dir +dnl ----------------------------------------------- +Q_LOCALE_DIR="`$QMAKE -query QT_INSTALL_TRANSLATIONS`" +AC_SUBST(Q_LOCALE_DIR) dnl + +dnl ----------------------------------------------- +dnl set tr locale dir +dnl ----------------------------------------------- +Q_DATA_DIR="`$QMAKE -query QT_INSTALL_DATA`" +AC_SUBST(Q_DATA_DIR) dnl + +dnl ----------------------------------------------- +dnl set mkspecs dir +dnl ----------------------------------------------- +Q_MKSPEC_DIR="`$QMAKE -query QT_INSTALL_DATA`/mkspecs" +AC_SUBST(Q_MKSPEC_DIR) dnl + +]) + +dnl ----------------------------------------------- +dnl Find Qt4 Library with pkg-config +dnl @example AC_CHECK_QT4_PKG([QtXml]) +dnl @generate QTXML_CFLAGS and QTXML_LIBS +dnl ----------------------------------------------- +AC_DEFUN([AC_CHECK_QT4_PKG], +[ +AC_REQUIRE([AC_CHECK_QT4]) dnl +PKG_CHECK_MODULES(_QT_PROG_DEFUN($1),[$1 >= $QT_REQUIRED_VERSION]) +]) + +dnl ----------------------------------------------- +dnl eof + diff --git a/pgl-gui/Makefile b/pgl-gui/Makefile deleted file mode 100644 index 20cef1a..0000000 --- a/pgl-gui/Makefile +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/make -f -# Makefile for pgl component pgl-gui -# This Makefile gets executed by the main pgl Makefile. Don't execute it directly! -# TODO: check this: ifeq (0,${MAKELEVEL}) - -CC=g++ -MOC=moc -UIC=uic -RCC=rcc - -# CFLAGS += \ -# LDFLAGS += \ - -QTDIR:=/usr/share/qt4 -QTINC:=$(QTDIR)/include -INCPATH:=\ - -I$(QTINC) \ - -I$(QTINC)/QtCore \ - -I$(QTINC)/QtGui \ - -I$(QTINC)/QtDBus\ - -I. \ - -Isrc \ - -Iui - -ifeq ($(LOWMEM),yes) -DBUS=no -# CFLAGS+=-DLOWMEM -endif - -# from pgld Makefile: -# ifeq ($(DBUS),yes) -# CFLAGS+=-DHAVE_DBUS \ -# `pkg-config dbus-1 --cflags --libs` \ -# -fPIC -# LIBS+=-ldl -# endif - -ifeq ($(PROFILE),yes) -CFLAGS+=-pg -LDFLAGS+=-pg -endif - -ifeq ($(DEBUG),yes) -CFLAGS+=-ggdb3 -LDFLAGS+=-ggdb3 -OPTFLAGS=-O0 -endif - -CFLAGS+=$(OPTFLAGS) - -# source (.cpp files) with header (.h) file in folder src/ -# so main.cpp is missing here because it has no header file -SOURCESDIR := src -SOURCES := $(addprefix $(SOURCESDIR)/, \ - add_exception_dialog.cpp \ - file_transactions.cpp \ - gui_options.cpp \ - peerguardian.cpp \ - peerguardian_info.cpp \ - pglcmd.cpp \ - pgl_lists.cpp \ - pgl_settings.cpp \ - pgl_whitelist.cpp \ - proc_thread.cpp \ - settings.cpp \ - super_user.cpp \ - utils.cpp \ - ) - -# forms (.ui files) in folder ui/ -FORMSDIR := ui -FORMS := $(addprefix $(FORMSDIR)/, \ - add_exception.ui \ - main_window.ui \ - settings.ui \ - ) - -# prepare some filenames with "foreach" from the above variables -MOC_SOURCES := $(foreach SOURCE, $(SOURCES), $(SOURCESDIR)/moc_$(notdir $(SOURCE))) -MOC_SOURCES_OBJECTS = $(foreach SOURCE, $(SOURCES), $(SOURCESDIR)/moc_$(notdir $(SOURCE:cpp=o))) -FORMS_HEADERS := $(foreach FORM, $(FORMS), $(FORMSDIR)/ui_$(notdir $(FORM:ui=h))) - - -all: pgl-gui - -# pgl-gui binary -# prequisites: objects of src/main.cpp, SOURCES, MOC_SOURCES and qrc_images -# original qmake recipe: -# g++ -# -o pgl-gui -# build/obj/file_transactions.o build/obj/main.o build/obj/peerguardian_info.o build/obj/pgl_lists.o build/obj/peerguardian_log.o build/obj/pgl_settings.o build/obj/moblock_settings.o build/obj/peerguardian.o build/obj/super_user.o build/obj/pglcmd.o build/obj/settings.o build/obj/whois.o build/obj/list_add.o build/obj/settings_manager.o build/obj/status_dialog.o build/obj/ip_whitelist.o build/obj/ip_remove.o build/obj/proc_thread.o build/obj/utils.o build/obj/add_exception_dialog.o build/obj/pgl_whitelist.o build/obj/gui_options.o -# build/obj/moc_pglcmd.o build/obj/moc_peerguardian_info.o build/obj/moc_peerguardian_log.o build/obj/moc_peerguardian.o build/obj/moc_super_user.o build/obj/moc_settings.o build/obj/moc_whois.o build/obj/moc_list_add.o build/obj/moc_settings_manager.o build/obj/moc_status_dialog.o build/obj/moc_ip_whitelist.o build/obj/moc_ip_remove.o build/obj/moc_proc_thread.o build/obj/moc_add_exception_dialog.o -# build/obj/qrc_images.o -# -L/usr/lib -lQtGui -lQtNetwork -lQtCore -lpthread -pgl-gui: $(SOURCESDIR)/main.o $(SOURCES:cpp=o) $(MOC_SOURCES_OBJECTS) qrc_images.o - $(CC) \ - $(SOURCESDIR)/main.o \ - $(SOURCES:cpp=o) \ - $(MOC_SOURCES_OBJECTS) \ - qrc_images.o \ - -L/usr/lib -lQtDBus -lQtGui -lQtCore -lpthread \ - -o $@ - -# objects of main and SOURCES -# target pattern: STEM.o -# STEM is e.g. "src/add_exception_dialog" -# prerequisite: STEM.cpp and perhaps FORMS_HEADERS -# example of original qmake recipe: -# g++ -# -c -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -# -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Ibuild/moc -Iui -# -o build/obj/add_exception_dialog.o -# src/add_exception_dialog.cpp -$(SOURCESDIR)/main.o $(SOURCES:cpp=o): %.o: %.cpp $(FORMS_HEADERS) - $(CC) \ - -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED \ - $(INCPATH) \ - -c $< \ - -o $@ - -# moc source of SOURCES headers -# target-pattern: src/moc_STEM.cpp -# STEM is e.g. "add_exception_dialog" -# prerequisite is src/STEM.h -# example of original qmake recipe: -# /usr/bin/moc-qt4 -# -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -# -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Ibuild/moc -Iui -# src/add_exception_dialog.h -# -o build/moc/moc_add_exception_dialog.cpp -$(MOC_SOURCES): $(SOURCESDIR)/moc_%.cpp: $(SOURCESDIR)/%.h - $(MOC) \ - -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED \ - $(INCPATH) \ - $< \ - -o $@ - -# object of moc source of SOURCES headers -# target-pattern: src/moc_STEM.o -# STEM is e.g. "add_exception_dialog" -# prerequisite: src/moc_STEM.cpp and perhaps FORMS_HEADERS -# example of original qmake recipe: -# g++ -# -c -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -# -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Ibuild/moc -Iui -# -o build/obj/moc_add_exception_dialog.o -# build/moc/moc_add_exception_dialog.cpp -$(MOC_SOURCES_OBJECTS): $(SOURCESDIR)/moc_%.o: $(SOURCESDIR)/moc_%.cpp $(FORMS_HEADERS) - $(CC) \ - -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED \ - $(INCPATH) \ - -c $< \ - -o $@ - -# headers of FORMS -# target pattern is ui/ui_STEM.h -# STEM is e.g. "add_exception" -# prerequisite is ui/STEM.ui -# example of original qmake recipe: -# /usr/bin/uic-qt4 -# ui/add_exception.ui -# -o ui/ui_add_exception.h -$(FORMS_HEADERS): $(FORMSDIR)/ui_%.h: $(FORMSDIR)/%.ui - $(UIC) \ - $< \ - -o $@ - -# original qmake recipe: -# g++ -# -c -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -# -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Isrc -Ibuild/moc -Iui -# -o build/obj/qrc_images.o -# qrc_images.cpp -qrc_images.o: qrc_images.cpp - $(CC) \ - -pipe -g -D_REENTRANT -Wall -W -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED \ - $(INCPATH) \ - -c qrc_images.cpp \ - -o qrc_images.o - -# original qmake recipe: /usr/bin/rcc -name images images/images.qrc -o qrc_images.cpp -qrc_images.cpp: images/images.qrc - $(RCC) \ - -name images images/images.qrc -o qrc_images.cpp - -############################################################################### - -DISTDIR = ../$(PKGNAME)-$(VERSION)/pgl-gui - -# These files are added to file releases. -# TODO: add e.g. new images -DISTFILES = \ - Makefile \ - src/main.cpp \ - $(SOURCES) \ - $(SOURCES:cpp=h) \ - $(FORMS) \ - images/backup.png \ - images/blocklist.png \ - images/cancel.png \ - images/editdelete.png \ - images/error.png \ - images/exit.png \ - images/forward.png \ - images/images.qrc \ - images/incoming.png \ - images/info.png \ - images/list_add.png \ - images/list_remove.png \ - images/log.png \ - images/ok.png \ - images/outgoing.png \ - images/pgl-gui.png \ - images/play.png \ - images/reload.png \ - images/restart.png \ - images/run.png \ - images/save.png \ - images/settings.png \ - images/stop.png \ - images/tray_disabled.png \ - images/tray.png \ - images/warning.png \ - other/pgl-gui.desktop - -# Not distributed, because they are only there as last resort for the -# developers, in case this Makefile is broken: -# INSTALL -# pgl-gui.pro - - -install: - install -D -m 755 pgl-gui $(DESTDIR)/$(BINDIR)/pgl-gui - install -D -m 644 other/pgl-gui.desktop $(DESTDIR)/$(prefix)/share/applications/pgl-gui.desktop - install -D -m 644 images/pgl-gui.png $(DESTDIR)/$(prefix)/share/pixmaps/pgl-gui.png - -install-strip: install - strip $(DESTDIR)/$(BINDIR)/pgl-gui - -clean: - rm -f *~ src/*~ \ - pgl-gui \ - $(SOURCESDIR)/*.o \ - $(MOC_SOURCES) \ - $(FORMS_HEADERS) \ - qrc_images.cpp \ - qrc_images.o - -dist: - mkdir -p $(DISTDIR) $(DISTDIR)/images $(DISTDIR)/other $(DISTDIR)/src $(DISTDIR)/ui - for I in $(DISTFILES) ; do cp "$$I" $(DISTDIR)/$$I ; done - sed -i "s|#define VERSION_NUMBER.*|#define VERSION_NUMBER \"$(VERSION)\"|" $(DISTDIR)/src/peerguardian.h - -.PHONY: all install install-strip clean dist diff --git a/pgl-gui/Makefile.am b/pgl-gui/Makefile.am new file mode 100644 index 0000000..58c1808 --- /dev/null +++ b/pgl-gui/Makefile.am @@ -0,0 +1,79 @@ +# QT tools +RCC = @RCC@ +UIC = @UIC@ +MOC = @MOC@ + +# flags +AM_CXXFLAGS = @QT_CXXFLAGS@ +AM_CPPFLAGS = \ + @QT_CPPFLAGS@ \ + -I./ui +AM_LDFLAGS = @QT_LDFLAGS@ + +# autotools and QT is a pain +MOCS = \ + src/moc_add_exception_dialog.cpp \ + src/moc_file_transactions.cpp \ + src/moc_gui_options.cpp \ + src/moc_peerguardian.cpp \ + src/moc_peerguardian_info.cpp \ + src/moc_pglcmd.cpp \ + src/moc_pgl_lists.cpp \ + src/moc_pgl_settings.cpp \ + src/moc_pgl_whitelist.cpp \ + src/moc_proc_thread.cpp \ + src/moc_settings.cpp \ + src/moc_super_user.cpp \ + src/moc_utils.cpp +FORMSDIR = ui +FORMSHEADERS = \ + $(FORMSDIR)/ui_add_exception.h \ + $(FORMSDIR)/ui_main_window.h \ + $(FORMSDIR)/ui_settings.h + +src/moc_%.cpp: src/%.h + $(MOC) $(AM_CPPFLAGS) "$<" -o "$@" + +$(FORMSDIR)/ui_%.h: $(FORMSDIR)/%.ui + $(UIC) $< -o $@ + +qrc_images.cpp: images/images.qrc + $(RCC) \ + -name images images/images.qrc -o qrc_images.cpp + +$(pgl_gui_OBJECTS) : $(MOCS) $(FORMSHEADERS) qrc_images.cpp + + +# sources for pgl_gui binary +pgl_gui_SOURCES = \ + src/add_exception_dialog.cpp src/add_exception_dialog.h \ + src/file_transactions.cpp src/file_transactions.h \ + src/gui_options.cpp src/gui_options.h \ + src/peerguardian.cpp src/peerguardian.h \ + src/peerguardian_info.cpp src/peerguardian_info.h \ + src/pglcmd.cpp src/pglcmd.h \ + src/pgl_lists.cpp src/pgl_lists.h \ + src/pgl_settings.cpp src/pgl_settings.h \ + src/pgl_whitelist.cpp src/pgl_whitelist.h \ + src/proc_thread.cpp src/proc_thread.h \ + src/settings.cpp src/settings.h \ + src/super_user.cpp src/super_user.h \ + src/utils.cpp src/utils.h \ + \ + src/main.cpp \ + qrc_images.cpp \ + $(MOCS) + +bin_PROGRAMS = pgl_gui + +# .desktop file rules +desktopdir = $(datadir)/applications +desktop_DATA = other/pgl-gui.desktop + +# icon +iconsdir = $(datadir)/pixmaps +icons_DATA = images/pgl-gui.png + +# for distribution, not sure on that +EXTRA_DIST = src/main.cpp \ + $(icons_DATA) diff --git a/pgl-gui/other/pgl-gui.desktop b/pgl-gui/other/pgl-gui.desktop index 12f1b19..8661a18 100755 --- a/pgl-gui/other/pgl-gui.desktop +++ b/pgl-gui/other/pgl-gui.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=pgl-gui Type=Application -Exec=/usr/bin/pgl-gui +Exec=pgl_gui Icon=pgl-gui.png Comment=Graphical User Interface of PeerGuardian Linux StartupNotify=true diff --git a/pglcmd/Makefile b/pglcmd/Makefile deleted file mode 100644 index 1a141a4..0000000 --- a/pglcmd/Makefile +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/make -f -# Makefile for pgl component pglcmd -# This Makefile gets executed by the main pgl Makefile. Don't execute it directly! -# TODO: check this: ifeq (0,${MAKELEVEL}) - -DISTDIR = ../$(PKGNAME)-$(VERSION)/pglcmd - -DISTFILES = \ - allow.p2p \ - blockcontrol2pglcmd.sh \ - blocklists.list \ - cron.daily \ - if-up \ - init \ - logrotate \ - Makefile \ - pglcmd \ - pglcmd.conf \ - pglcmd.defaults \ - pglcmd.lib \ - pglcmd.main \ - pglcmd.wd - -all: - cat pglcmd.defaults | \ - sed "s|^PATH=.*|PATH=\"$(PATHS)\"|" | \ - sed "s|^BINDIR=.*|BINDIR=\"$(BINDIR)\"|" | \ - sed "s|^SBINDIR=.*|SBINDIR=\"$(SBINDIR)\"|" | \ - sed "s|^PIDDIR=.*|PIDDIR=\"$(PIDDIR)\"|" | \ - sed "s|^LOGDIR=.*|LOGDIR=\"$(LOGDIR)\"|" | \ - sed "s|^CONFDIR=.*|CONFDIR=\"$(CONFDIR)\"|" | \ - sed "s|^LIBDIR=.*|LIBDIR=\"$(LIBDIR)\"|" | \ - sed "s|^TMPDIR=.*|TMPDIR=\"$(TMPDIR)\"|" | \ - sed "s|^BLOCKLISTS_DIR=.*|BLOCKLISTS_DIR=\"$(BLOCKLISTS_DIR)\"|" | \ - sed "s|^LOCAL_BLOCKLIST_DIR=.*|LOCAL_BLOCKLIST_DIR=\"$(LOCAL_BLOCKLIST_DIR)\"|" | \ - sed "s|^MASTER_BLOCKLIST_DIR=.*|MASTER_BLOCKLIST_DIR=\"$(MASTER_BLOCKLIST_DIR)\"|" | \ - sed "s|^LSB=.*|LSB=\"$(LSB)\"|" > pglcmd.defaults.install.tmp - -ifeq ($(DBUS),yes) - cat pglcmd.defaults.install.tmp | \ - sed "s|^DBUS=.*|DBUS=\"1\"|" > pglcmd.defaults.install -else - cat pglcmd.defaults.install.tmp | \ - sed "s|^DBUS=.*|DBUS=\"0\"|" > pglcmd.defaults.install -endif - rm pglcmd.defaults.install.tmp - - cat pglcmd.main | \ - sed "s|^CMD_DEFAULTS=.*|CMD_DEFAULTS=\"$(LIBDIR)/pglcmd.defaults\"|" > pglcmd.main.install - - for FILE in blockcontrol2pglcmd.sh pglcmd pglcmd.wd cron.daily init ../debian/pglcmd.postinst if-up ; do \ - cat $$FILE | \ - sed "s|^CONTROL_MAIN=.*|CONTROL_MAIN=\"$(LIBDIR)/pglcmd.main\"|" > $$FILE.install ; \ - done - # Not clean because the original file is changed here. The debian/pglcmd.postinst should be handled by the debian/rules file. - # Just doing this here to avoid to forget this. Normally this file shouldn't change anyway. - -install: - install -D -m 755 blockcontrol2pglcmd.sh.install $(DESTDIR)/$(BINDIR)/blockcontrol2pglcmd.sh - install -D -m 755 pglcmd.install $(DESTDIR)/$(BINDIR)/pglcmd - install -D -m 644 pglcmd.main.install $(DESTDIR)/$(LIBDIR)/pglcmd.main - install -D -m 644 pglcmd.defaults.install $(DESTDIR)/$(LIBDIR)/pglcmd.defaults - install -D -m 644 pglcmd.lib $(DESTDIR)/$(LIBDIR)/pglcmd.lib - install -D -m 755 pglcmd.wd.install $(DESTDIR)/$(SBINDIR)/pglcmd.wd - install -D -m 644 allow.p2p $(DESTDIR)/$(CONFDIR)/allow.p2p - install -D -m 644 pglcmd.conf $(DESTDIR)/$(CONFDIR)/pglcmd.conf - install -D -m 644 blocklists.list $(DESTDIR)/$(CONFDIR)/blocklists.list - # if-up gets executed by Network Manager. Debian packaging installs to - # /etc/network/if-up.d/pglcmd instead (no NM needed.) - install -D -m 755 if-up.install $(DESTDIR)/$(IFUPDIR)/20pglcmd - install -D -m 755 cron.daily.install $(DESTDIR)/$(CRONDIR)/pglcmd - install -D -m 755 init.install $(DESTDIR)/$(INITDIR)/pgl - install -D -m 644 logrotate $(DESTDIR)/$(LOGROTATEDIR)/pglcmd - install -d $(DESTDIR)/$(MASTER_BLOCKLIST_DIR) - install -d $(DESTDIR)/$(LOCAL_BLOCKLIST_DIR) - install -d $(DESTDIR)/$(BLOCKLISTS_DIR) - -clean: - rm -f *~ \ - *.install \ - ../debian/pglcmd.postinst.install -dist: - mkdir -p $(DISTDIR) - for I in $(DISTFILES) ; do cp "$$I" $(DISTDIR)/$$I ; done - sed -i "s|^VERSION=.*|VERSION=\"$(VERSION)\"|" $(DISTDIR)/pglcmd.defaults - chmod +x cron.daily if-up init pglcmd pglcmd.wd - -.PHONY: all clean dist install diff --git a/pglcmd/Makefile.am b/pglcmd/Makefile.am new file mode 100644 index 0000000..44cb671 --- /dev/null +++ b/pglcmd/Makefile.am @@ -0,0 +1,71 @@ +PIDDIR = @PIDDIR@ +LOGDIR = @LOGDIR@ +TMPDIR = @TMPDIR@ +BLOCKLISTS_DIR = @BLOCKLISTS_DIR@ +LOCAL_BLOCKLIST_DIR = @LOCAL_BLOCKLIST_DIR@ +MASTER_BLOCKLIST_DIR = @MASTER_BLOCKLIST_DIR@ +LSB = @LSBFILE@ + +if DBUSMAKE +DBUS_SET = 1 +else +DBUS_SET = 0 +endif + +if LOGROTATEMAKE +logdir = $(sysconfdir)/logrotate.d +log_DATA = logrotate/pglcmd +endif + +if CRONMAKE +crondir = $(sysconfdir)/cron.daily +cron_SCRIPTS = cron.daily/pglcmd +endif + +if NETWORKMANAGERMAKE +netdir = $(sysconfdir)/NetworkManager/dispatcher.d +net_SCRIPTS = networkmanager/20pglcmd +endif + +initddir = @INITDIR@ +initd_SCRIPTS = init/pgl + +pglcmddir = $(bindir) +pglcmd_SCRIPTS = pglcmd blockcontrol2pglcmd.sh + +pglcmdwddir = $(sbindir) +pglcmdwd_SCRIPTS = pglcmd.wd + +pgletcdir = $(sysconfdir)/$(PACKAGE_NAME) +pgletc_DATA = \ + allow.p2p \ + blocklists.list \ + pglcmd.conf + +pgllibdir = $(libdir)/$(PACKAGE_NAME) +pgllib_DATA = \ + pglcmd.defaults \ + pglcmd.lib \ + pglcmd.main + +all-local: + cat pglcmd.defaults | \ + $(SED) "s|^PATH=.*|PATH=\"$(PATH)\"|" | \ + $(SED) "s|^BINDIR=.*|BINDIR=\"$(bindir)\"|" | \ + $(SED) "s|^SBINDIR=.*|SBINDIR=\"$(sbindir)\"|" | \ + $(SED) "s|^PIDDIR=.*|PIDDIR=\"$(PIDDIR)\"|" | \ + $(SED) "s|^LOGDIR=.*|LOGDIR=\"$(LOGDIR)\"|" | \ + $(SED) "s|^CONFDIR=.*|CONFDIR=\"$(pgletcdir)\"|" | \ + $(SED) "s|^LIBDIR=.*|LIBDIR=\"$(libdir)/$(PACKAGE_NAME)\"|" | \ + $(SED) "s|^TMPDIR=.*|TMPDIR=\"$(TMPDIR)\"|" | \ + $(SED) "s|^BLOCKLISTS_DIR=.*|BLOCKLISTS_DIR=\"$(BLOCKLISTS_DIR)\"|" | \ + $(SED) "s|^LOCAL_BLOCKLIST_DIR=.*|LOCAL_BLOCKLIST_DIR=\"$(LOCAL_BLOCKLIST_DIR)\"|" | \ + $(SED) "s|^MASTER_BLOCKLIST_DIR=.*|MASTER_BLOCKLIST_DIR=\"$(MASTER_BLOCKLIST_DIR)\"|" | \ + $(SED) "s|^LSB=.*|LSB=\"$(LSB)\"|" | \ + $(SED) "s|^DBUS=.*|DBUS=\"$(DBUS_SET)\"|" > pglcmd.defaults.install + mv -f pglcmd.defaults.install pglcmd.defaults + $(SED) -i -e "s|^CMD_DEFAULTS=.*|CMD_DEFAULTS=\"$(pgllibdir)/pglcmd.defaults\"|" pglcmd.main + for FILE in blockcontrol2pglcmd.sh pglcmd pglcmd.wd cron.daily/pglcmd init/pgl ../debian/pglcmd.postinst networkmanager/20pglcmd ; do \ + cat $$FILE | \ + $(SED) -i -e "s|^CONTROL_MAIN=.*|CONTROL_MAIN=\"$(pgllibdir)/pglcmd.main\"|" $$FILE ; \ + done diff --git a/pglcmd/cron.daily b/pglcmd/cron.daily deleted file mode 100644 index f7c7835..0000000 --- a/pglcmd/cron.daily +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# cron - update the blocklists with pglcmd -# -# Copyright (C) 2005 - 2011 jre -# -# This file is part of pgl. -# -# pgl is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# pgl is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - diff --git a/pgld/Makefile b/pgld/Makefile deleted file mode 100644 index ad41a4f..0000000 --- a/pgld/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/make -f -# Makefile for pgl component pgld -# This Makefile gets executed by the main pgl Makefile. Don't execute it directly! -# TODO: check this: ifeq (0,${MAKELEVEL}) - -CC=gcc -CFLAGS+= \ - -DVERSION=\"$(VERSION)\" \ - -DPACKAGE_NAME=\"$(PKGNAME)\" \ - -DPIDFILE=\"$(PIDDIR)/$(PKGNAME)d.pid\" - -OBJS = \ - src/pgld.o \ - src/stream.o \ - src/blocklist.o \ - src/parser.o - -LIBS = \ - -lnetfilter_queue \ - -lnfnetlink - -ifeq ($(LOWMEM),yes) -DBUS=no -CFLAGS+=-DLOWMEM -endif - -ifeq ($(ZLIB),yes) -CFLAGS+=-DHAVE_ZLIB -LIBS+=-lz -endif - -ifeq ($(DBUS),yes) -CFLAGS+=-DHAVE_DBUS \ - `pkg-config dbus-1 --cflags --libs` \ - -fPIC \ - -DPLUGINDIR=\"$(PLUGINDIR)\" -LDFLAGS+=-Wl,-export-dynamic -LIBS+=-ldl -endif - -ifeq ($(PROFILE),yes) -CFLAGS+=-pg -LDFLAGS+=-pg -endif - -ifeq ($(DEBUG),yes) -CFLAGS+=-ggdb3 -LDFLAGS+=-ggdb3 -OPTFLAGS=-O0 -endif - -CFLAGS+=$(OPTFLAGS) - -DISTDIR = ../$(PKGNAME)-$(VERSION)/pgld - -DISTFILES = \ - Makefile \ - src/pgld.c src/pgld.h \ - src/blocklist.c src/blocklist.h \ - src/parser.c src/parser.h \ - src/stream.c src/stream.h \ - src/dbus.c src/dbus.h \ - org.netfilter.pgl.conf \ - logrotate - -ifeq ($(DBUS),yes) -all: src/pgld src/dbus.so -else -all: src/pgld -endif - -.c.o: - $(CC) -c -o $@ $< $(CFLAGS) - -src/pgld: $(OBJS) - $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(LIBS) - -src/dbus.so: src/dbus.o - $(CC) -o $@ $^ $(CFLAGS) -shared - -clean: - rm -rf *~ \ - src/*~ \ - src/*.o \ - src/pgld \ - src/dbus.so \ - $(DISTDIR) - -install: - install -D -m 755 src/pgld $(DESTDIR)/$(SBINDIR)/pgld - install -D -m 644 logrotate $(DESTDIR)/$(LOGROTATEDIR)/pgld -ifeq ($(DBUS),yes) - install -D -m 644 org.netfilter.pgl.conf $(DESTDIR)/$(DBUSCONFDIR)/org.netfilter.pgl.conf - install -D -m 644 src/dbus.so $(DESTDIR)/$(PLUGINDIR)/dbus.so -endif - -install-strip: install - strip $(DESTDIR)/$(SBINDIR)/pgld -ifeq ($(DBUS),yes) - strip $(DESTDIR)/$(PLUGINDIR)/dbus.so -endif - -dist: - mkdir -p $(DISTDIR) $(DISTDIR)/src - for I in $(DISTFILES) ; do cp "$$I" $(DISTDIR)/$$I ; done - -.PHONY: all clean dist install install-strip diff --git a/pgld/Makefile.am b/pgld/Makefile.am new file mode 100644 index 0000000..3404788 --- /dev/null +++ b/pgld/Makefile.am @@ -0,0 +1,28 @@ +AM_CFLAGS = @PGLD_CFLAGS@ +AM_CPPFLAGS = @PGLD_CPPFLAGS@ +AM_LDFLAGS = @PGLD_LDFLAGS@ + +pgld_SOURCES = \ + src/pgld.c src/pgld.h \ + src/stream.c src/stream.h \ + src/blocklist.c src/blocklist.h \ + src/parser.c src/parser.h + +sbin_PROGRAMS = pgld + +# build dbus library for --enable-dbus +if DBUSMAKE +libdbusdir = $(libdir)/$(PACKAGE_NAME) +libdbus_LTLIBRARIES = libdbus.la +libdbus_la_SOURCES = src/dbus.c src/dbus.h +pgld_LDADD = ./libdbus.la + +dbusdir = $(sysconfdir)/dbus-1/system.d +dbus_DATA = org.netfilter.pgl.conf +endif + +if LOGROTATEMAKE +logdir = $(sysconfdir)/logrotate.d +log_DATA = logrotate/pgld +endif + diff --git a/pgld/src/pgld.c b/pgld/src/pgld.c index 255db8a..7de2ff4 100644 --- a/pgld/src/pgld.c +++ b/pgld/src/pgld.c @@ -147,7 +147,7 @@ static int open_dbus() { char *err; - dbus_lh = dlopen(PLUGINDIR "/dbus.so", RTLD_NOW); + dbus_lh = dlopen(PLUGINDIR "/libdbus.so", RTLD_NOW); if (!dbus_lh) { do_log(LOG_ERR, "ERROR: dlopen() failed: %s", dlerror()); return -1;