123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #
- # Copyright (C) 2006-2014 OpenWrt.org
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
-
- include $(TOPDIR)/rules.mk
-
- PKG_NAME:=privoxy
- PKG_VERSION:=3.0.22
- PKG_RELEASE:=1
-
- PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-stable-src.tar.gz
- PKG_SOURCE_URL:=@SF/ijbswa
- PKG_MD5SUM:=aa121751d332a51d37d3c6e4b7594daa
-
- PKG_LICENSE:=GPL-2.0
- PKG_LICENSE_FILES:=LICENSE
-
- PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-stable
- PKG_FIXUP:=autoreconf
- PKG_INSTALL:=1
-
- PKG_MAINTAINER:=christian.schoenebeck@gmail.com
-
- include $(INCLUDE_DIR)/package.mk
-
- define Package/privoxy
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Web Servers/Proxies
- DEPENDS:=+libpcre +libpthread +zlib
- TITLE:=web proxy with advanced filtering capabilities
- URL:=http://www.privoxy.org/
- USERID:=privoxy=8118:privoxy=8118
- endef
-
- define Package/privoxy/description
- Privoxy is a web proxy with advanced filtering capabilities for
- protecting privacy, modifying web page content, managing cookies,
- controlling access, and removing ads, banners, pop-ups and other
- obnoxious Internet junk. Privoxy has a very flexible configuration
- and can be customized to suit individual needs and tastes. Privoxy
- has application for both stand-alone systems and multi-user networks.
- Version: $(PKG_VERSION)-$(PKG_RELEASE)
- endef
-
- CONFIGURE_ARGS += \
- --sysconfdir=/etc/privoxy \
-
- # needed otherwise errors during compile
- MAKE_FLAGS:=
-
- define Build/Install
- $(call Build/Install/Default,)
- # rename original sample config from pkg_source to save existing one during install
- mv $(PKG_INSTALL_DIR)/etc/privoxy/config $(PKG_INSTALL_DIR)/etc/privoxy/config.privoxy
- endef
-
- define Package/privoxy/conffiles
- /etc/config/privoxy
- /etc/privoxy/config # temporary needed if updating from old version
- endef
-
- define Package/privoxy/preinst
- #!/bin/sh
- # if run within buildroot exit
- [ -n "$${IPKG_INSTROOT}" ] && exit 0
- # stop service # if PKG_UPGRADE NOT WORKING
- # [ "$${PKG_UPGRADE}" = "1" ] && /etc/init.d/privoxy stop
- /etc/init.d/privoxy stop >/dev/null 2>&1
- exit 0 # supress errors from stop command
- endef
-
- define Package/privoxy/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(CP) $(PKG_INSTALL_DIR)/usr/sbin/privoxy $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/privoxy.init $(1)/etc/init.d/privoxy
- # no longer needed because running with procd
- # $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
- # $(INSTALL_BIN) ./files/privoxy.hotplug $(1)/etc/hotplug.d/iface/80-privoxy
-
- $(INSTALL_DIR) $(1)/etc/privoxy
- $(CP) $(PKG_INSTALL_DIR)/etc/privoxy/* $(1)/etc/privoxy/
- # temporary needed if updating from old version
- # otherwise old config file will be delete by opkg
- $(INSTALL_CONF) ./files/privoxy.oldconfig $(1)/etc/privoxy/config
- # create .old file to be removed with next pacakge builds during update
- $(INSTALL_CONF) ./files/privoxy.oldconfig $(1)/etc/privoxy/config.old
-
- $(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_CONF) ./files/privoxy.config $(1)/etc/config/privoxy
- endef
-
- define Package/privoxy/postinst
- #!/bin/sh
-
- # if fresh install we don't need old config file in privoxy directory
- [ "$${PKG_UPGRADE}" = "0" ] && rm -f /etc/privoxy/config
-
- # if run within buildroot exit here
- [ -n "$${IPKG_INSTROOT}" ] && exit 0
-
- # if PKG_UPGRADE then build uci configuration
- # from existing(?) old /etc/privoxy/config file
- if [ "$${PKG_UPGRADE}" = "1" -a -f /etc/privoxy/config ]; then
-
- echo "converting OLD config to NEW uci configuration"
-
- SECTION="privoxy.privoxy"
- CFGFILE=/etc/privoxy/config
-
- echo -n > /etc/config/privoxy # clear/create uci configuration file
- cp -f $${CFGFILE} $${CFGFILE}.old # save old configuration
-
- # cleanup
- sed -i 's/^[ \t]*//;s/[ \t]*$$//' $${CFGFILE} # remove invisible chars at beginning and end of lines
- sed -i '/^#/d' $${CFGFILE} # remove lines with "#"
- sed -i '/^$$/d' $${CFGFILE} # remove empty lines
-
- uci -q set $${SECTION}="privoxy" # create section
-
- cat $${CFGFILE} | while read LINE; do
- # option is first parameter; uci did not like "-" in option names
- OPT=$$(echo $${LINE} | awk '{print $$1}' | sed 's/-/_/g')
- VAL=$$(echo $${LINE} | awk '{print $$2}')
- case $${OPT} in
- # debug 1024 => debug_1024 '1'
- debug)
- uci -q set $${SECTION}.debug_$${VAL}="1"
- ;;
- # handle list values; splitted case for better reading
- actionsfile|filterfile|listen_address)
- uci -q add_list $${SECTION}.$${OPT}="$${VAL}"
- ;;
- permit_access|deny_access)
- uci -q add_list $${SECTION}.$${OPT}="$${VAL}"
- ;;
- trust_info_url|forward)
- uci -q add_list $${SECTION}.$${OPT}="$${VAL}"
- ;;
- forward_socks4|forward_socks4a)
- uci -q add_list $${SECTION}.$${OPT}="$${VAL}"
- ;;
- forward_socks5|forward_socks5t)
- uci -q add_list $${SECTION}.$${OPT}="$${VAL}"
- ;;
- # all others are normal options
- *)
- uci -q set $${SECTION}.$${OPT}="$${VAL}"
- ;;
- esac
- done
- uci -q commit privoxy # commit changes
- rm -f $${CFGFILE} # remove old configuration file
- fi
-
- # set permissions to privoxy group
- echo "setting permissions"
- chgrp -R privoxy /etc/privoxy/*
- chmod 664 /etc/privoxy/*
- chmod 755 /etc/privoxy/templates
- chmod 644 /etc/privoxy/templates/*
- endef
-
- $(eval $(call BuildPackage,privoxy))
|