summaryrefslogtreecommitdiff
path: root/mail-filter/sqlgrey
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /mail-filter/sqlgrey
reinit the tree, so we can have metadata
Diffstat (limited to 'mail-filter/sqlgrey')
-rw-r--r--mail-filter/sqlgrey/Manifest7
-rw-r--r--mail-filter/sqlgrey/files/sqlgrey-1.7.6-init.patch18
-rw-r--r--mail-filter/sqlgrey/files/sqlgrey.service22
-rw-r--r--mail-filter/sqlgrey/metadata.xml13
-rw-r--r--mail-filter/sqlgrey/sqlgrey-1.7.6-r2.ebuild254
5 files changed, 314 insertions, 0 deletions
diff --git a/mail-filter/sqlgrey/Manifest b/mail-filter/sqlgrey/Manifest
new file mode 100644
index 000000000000..ee0d73c13774
--- /dev/null
+++ b/mail-filter/sqlgrey/Manifest
@@ -0,0 +1,7 @@
+AUX sqlgrey-1.7.6-init.patch 412 SHA256 4b486f895628b128b3d9a853861f009097beb42cd1d3f059bca052bb2f8ceac6 SHA512 5c6e7f7eb4770cf123cdfb73717d9a50ec0e64e6129dd4c92e3abeb688f9d0b1b1958e298786d852f7341be1448c885c916e7c9086aa8fdf84af154301d0d2a9 WHIRLPOOL 622882594deddf48b0cac4580b1a94bed32e6ee3ed1078a337ea870e091f67f78d7b71255cb220a2c9eca8d82d5a2ed63b30ebbe9ea59e4d3aa30f810b0e9e3c
+AUX sqlgrey.service 429 SHA256 eb9589cdca27ace47a3eeda3f8da62cefcb253ba8053f0d0d09b5ead6b2853fc SHA512 7e41344e3820537d73a413d728d455de58c5358922a354904cba5a870f61fecbf96f84f91dadad283d406cad05010bc3fd57644f18ba319083af92a1810d9a27 WHIRLPOOL f3c879436dfa36bd863311de240d9377e66a313f3e3f3f2d33696e121df9819f1d723a5d4fcce62b173f0c9a8b2f9c839787ab52da7689fcf154d58dcd46e47d
+DIST sqlgrey-1.7.6.tar.bz2 63738 SHA256 48f6c855e18d3ac3d19a0c2ecd250394a355d0116acd631187b880cb813646d1 SHA512 62822d808aa5991a8d29f455be933cf782c9d5232b63bd1f357093a06982474018fb7a02dedf29274d8b7e9f12525063e6af744efceecf420cd01e74f561aa81 WHIRLPOOL 0cecf88739bdab1c9d5cf85e4ea2625627f934fc88b4ab37e1f5f6452238a2383349eb1ed0206a039bbaab5c6e218280c6d6431582fd17219f7aebe77f529335
+EBUILD sqlgrey-1.7.6-r2.ebuild 8516 SHA256 d5aad8883e1078529093e62c828cf33c16154f73e723597ce5e02084edc95147 SHA512 5a7b5d57b8ef239e6028175a652fcf39550f4ca16eebf88d7d0bb2b7fcc98595bfc4c34eb58ff38fa586aa235f0466862de1eff4fd333847387c94dfb8431f94 WHIRLPOOL e449e2e2a393b66e6ba003bf0bbfe009a021325d90441944b5e03b463423a62b6d317d2a208bca58aaa94c80ccebbb25fc36270ca05e300f66f4a4b13536de9a
+MISC ChangeLog 3112 SHA256 4a902647c7d701e2e5630762483365d6f7994160d4955f20d23c8beb0d75628f SHA512 12f3c8b9c2cafbbe9958d59e766508612d16970fde0ad642cf04f53b329c6009aacc1751c0c4f8a8649bdcd6f7a3d2cd9feca600d186e8652099817d12157591 WHIRLPOOL 29a666a1c193f54fc05a8aaea8b6cc5da62e72edbbadb19c5693a998267ae84d898c4c799604ab2bfc4d66c2e4abfa385f270814491aa84c32a4e4ef80cff18e
+MISC ChangeLog-2015 2854 SHA256 1aa1c6207f684072145dcaa1a0f9740c0ed8e8a92085f98fb51ea181ca1d5d14 SHA512 b5ac02bff87f8a75c9668e93d000d6a2823e1bddea2fc5e8f2797ac9b6c24d92399c0bc40760bad4a824995e7b55cdb6f6d8db4034e50d8c4ce8162714907301 WHIRLPOOL b9bac1a0be3f55e318d83ea73c0122acb84d9c7c3fcf776a5c68d3d49078acd2383e269dff182e010e342f1127ce9d27e136570697afbfa09fb71d52787f8a1c
+MISC metadata.xml 429 SHA256 30d486a5f42ea9100f17814fac659e2e49412be5ed431ce0c4fae63242fdf20e SHA512 2525b0d1914b24bdfe65ec2ff31e8f9fb8b8799569b6533a704ea454e1d053ada46f0138e393de8c9832035b9213b8afb9f3045878fe1b041df25ee12a3a2e7f WHIRLPOOL f8d89c483cbfbf3081655f44e4746c998d72f5f85da17ee35eddb4463239eec1a20d25c655b45cd9bf3d0ad594dd2113dee6a9fcafb7defbd63595c06aa6c2e6
diff --git a/mail-filter/sqlgrey/files/sqlgrey-1.7.6-init.patch b/mail-filter/sqlgrey/files/sqlgrey-1.7.6-init.patch
new file mode 100644
index 000000000000..48d3a581c5d4
--- /dev/null
+++ b/mail-filter/sqlgrey/files/sqlgrey-1.7.6-init.patch
@@ -0,0 +1,18 @@
+--- ./sqlgrey-1.7.6/init/sqlgrey.gentoo.orig 2007-05-12 11:12:12.000000000 +0200
++++ ./sqlgrey-1.7.6/init/sqlgrey.gentoo 2007-05-12 12:05:52.491468250 +0200
+@@ -14,13 +14,13 @@
+ # SQLite puts files in the working directory
+ cd ~sqlgrey
+ sqlgrey -d
+- eend
++ eend $?
+ }
+
+ stop() {
+ ebegin "Shutting down SQLgrey"
+ sqlgrey -k
+- eend
++ eend $?
+ }
+
+ # hack: seems Net::Server doesn't set REUSEADDR on socket?
diff --git a/mail-filter/sqlgrey/files/sqlgrey.service b/mail-filter/sqlgrey/files/sqlgrey.service
new file mode 100644
index 000000000000..a3171863e22a
--- /dev/null
+++ b/mail-filter/sqlgrey/files/sqlgrey.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=SQLgrey Postfix Grey-listing Policy service
+After=network.target
+
+[Service]
+User=sqlgrey
+Group=sqlgrey
+ExecStart=/usr/sbin/sqlgrey
+CapabilityBoundingSet=
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectSystem=full
+ProtectHome=yes
+NoNewPrivileges=yes
+MemoryDenyWriteExecute=true
+ProtectKernelModules=true
+ProtectKernelTunables=true
+ProtectControlGroups=true
+RestrictRealtime=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mail-filter/sqlgrey/metadata.xml b/mail-filter/sqlgrey/metadata.xml
new file mode 100644
index 000000000000..b0f8105082f5
--- /dev/null
+++ b/mail-filter/sqlgrey/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>net-mail@gentoo.org</email>
+ <name>Net-Mail</name>
+ </maintainer>
+ <longdescription>SQLgrey is a postfix policy service implementing a grey-listing
+policy.</longdescription>
+ <upstream>
+ <remote-id type="sourceforge">sqlgrey</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/mail-filter/sqlgrey/sqlgrey-1.7.6-r2.ebuild b/mail-filter/sqlgrey/sqlgrey-1.7.6-r2.ebuild
new file mode 100644
index 000000000000..cbb5a858b401
--- /dev/null
+++ b/mail-filter/sqlgrey/sqlgrey-1.7.6-r2.ebuild
@@ -0,0 +1,254 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils systemd user
+
+DESCRIPTION="SQLgrey is a postfix policy service implementing a grey-listing policy"
+SRC_URI="mirror://sourceforge/sqlgrey/${P}.tar.bz2"
+HOMEPAGE="http://sqlgrey.sourceforge.net/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="mysql postgres sqlite"
+RDEPEND="dev-lang/perl
+ dev-perl/DBI
+ dev-perl/Net-Server
+ dev-perl/Date-Calc
+ virtual/mailx
+ postgres? ( dev-perl/DBD-Pg )
+ sqlite? ( dev-perl/DBD-SQLite )
+ mysql? ( dev-perl/DBD-mysql )
+ !postgres? ( !mysql? ( !sqlite? ( dev-perl/DBD-Pg ) ) )"
+DEPEND="$RDEPEND
+ sys-apps/sed"
+KEYWORDS="amd64 ~arm ~sparc x86"
+
+pkg_setup() {
+ enewgroup sqlgrey
+ enewuser sqlgrey -1 -1 /var/spool/sqlgrey sqlgrey
+}
+
+src_unpack() {
+ unpack ${A}
+ epatch "${FILESDIR}/${P}-init.patch"
+}
+
+src_install () {
+ make gentoo-install ROOTDIR="${D}"
+ dodoc HOWTO FAQ README README.OPTINOUT README.PERF TODO Changelog
+
+ # keeps SQLgrey data in /var/spool/sqlgrey
+ diropts -m0775 -o sqlgrey -g sqlgrey
+ keepdir /var/spool/sqlgrey
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ echo
+ einfo "To make use of greylisting, please update your postfix config."
+ einfo
+ einfo "Put something like this in /etc/postfix/main.cf:"
+ einfo " smtpd_recipient_restrictions ="
+ einfo " ..."
+ einfo " check_policy_service inet:127.0.0.1:2501"
+ einfo
+ einfo "Remember to restart Postfix after that change. Also remember"
+ einfo "to make the daemon start durig boot:"
+ einfo " rc-update add sqlgrey default"
+ einfo
+ echo
+ einfo "To setup SQLgrey to run out-of-the-box on your system, run:"
+ einfo "emerge --config ${PN}"
+ echo
+ ewarn "Read the documentation for more info (perldoc sqlgrey) or the"
+ ewarn "included howto /usr/share/doc/${PF}/HOWTO.gz"
+ echo
+ ewarn "If you are using MySQL >= 4.1 use \"latin1\" as charset for"
+ ewarn "the SQLgrey db"
+ echo
+ ebeep 2
+ epause 5
+}
+
+pkg_config () {
+
+ # SQLgrey configuration file
+ local SQLgrey_CONFIG="/etc/sqlgrey/sqlgrey.conf"
+ local SQLgrey_DB_USER_NAME="sqlgrey"
+ local SQLgrey_DB_NAME="sqlgrey"
+
+ # Check if a password is set in sqlgrey.conf
+ local SQLgrey_CONF_PWD=""
+ if [ -f "${SQLgrey_CONFIG}" ]; then
+ if (grep -iq "^[\t ]*db_pass[\t ]*=[\t ]*.*$" ${SQLgrey_CONFIG}); then
+ # User already has a db_pass entry
+ SQLgrey_CONF_PWD="$(sed -n 's:^[\t ]*db_pass[\t ]*=[\t ]*\(.*\)[\t ]*:\1:gIp' ${SQLgrey_CONFIG})"
+ else
+ SQLgrey_CONF_PWD=""
+ fi
+ else
+ ewarn "SQLgrey configuration missing. Exiting now."
+ echo
+ exit 0
+ fi
+
+ # Check if we need SQLgrey to configure for this system or not
+ local SQLgrey_DB_HOST="localhost"
+ local SQLgrey_KEY_INPUT="l,r,x"
+ einfo "SQLgrey database backend configuration"
+ einfo " Please select where SQLgrey database will run:"
+ einfo " [l] Database backend runs on localhost"
+ einfo " [r] Database backend runs on remote host"
+ einfo " [x] Exit"
+ echo
+ einfo " Press one of the keys [${SQLgrey_KEY_INPUT}]: "
+ while true; do
+ read -n 1 -s SQLgrey_ACCESS_TYPE
+ case "${SQLgrey_ACCESS_TYPE}" in
+ "r" | "R" )
+ SQLgrey_ACCESS_TYPE="r"
+ einfo " remote setup"
+ read -p " Please enter the remote hostname: " SQLgrey_DB_HOST
+ echo
+ break
+ ;;
+ "l" | "L" )
+ SQLgrey_ACCESS_TYPE="l"
+ einfo " local setup"
+ echo
+ break
+ ;;
+ "x" | "X" )
+ exit 0
+ ;;
+ esac
+ done
+
+ # Generate random password
+ if [[ "${SQLgrey_CONF_PWD}" == "" ]]; then
+ einfo "Generating random database user password..."
+ local SQLgrey_PWD_MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+ local SQLgrey_DB_USER_PWD=""
+ while [ "${n:=1}" -le "16" ]; do
+ SQLgrey_DB_USER_PWD="${SQLgrey_DB_USER_PWD}${SQLgrey_PWD_MATRIX:$(($RANDOM%${#SQLgrey_PWD_MATRIX})):1}"
+ let n+=1
+ done
+ else
+ einfo "Reusing current database user password..."
+ local SQLgrey_DB_USER_PWD="${SQLgrey_CONF_PWD}"
+ fi
+ echo
+
+ # Configure the various database backends
+ local SQLgrey_KEY_INPUT=""
+ einfo "Creating SQLgrey database backend data and configuration"
+ einfo " Please select what kind of database you like to use:"
+ if use postgres || has_version dev-perl/DBD-Pg ; then
+ einfo " [p] PostgreSQL"
+ SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},p"
+ fi
+ if use mysql || has_version dev-perl/DBD-mysql ; then
+ einfo " [m] MySQL"
+ SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},m"
+ fi
+ if use sqlite || has_version dev-perl/DBD-SQLite ; then
+ einfo " [s] SQLite"
+ SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},s"
+ fi
+ einfo " [x] Exit"
+ SQLgrey_KEY_INPUT="${SQLgrey_KEY_INPUT},x"
+ echo
+ einfo " Press one of the keys [${SQLgrey_KEY_INPUT:1}]: "
+ while true; do
+ read -n 1 -s SQLgrey_DB_TYPE
+ case "${SQLgrey_DB_TYPE}" in
+ "p" | "P" )
+ SQLgrey_DB_TYPE="p"
+ einfo " PostgreSQL database backend"
+ echo
+ break
+ ;;
+ "m" | "M" )
+ SQLgrey_DB_TYPE="m"
+ einfo " MySQL database backend"
+ echo
+ break
+ ;;
+ "s" | "S" )
+ SQLgrey_DB_TYPE="s"
+ einfo " SQLite database backend"
+ echo
+ break
+ ;;
+ "x" | "X" )
+ exit 0
+ ;;
+ esac
+ done
+
+ # If we don't use SQLite, the password must not be set
+ if [[ ( "${SQLgrey_DB_TYPE}" != "s" ) && ( "${SQLgrey_CONF_PWD}" != "" ) ]]; then
+ ewarn "This configuration is only for new installations. You seem to"
+ ewarn "have already a modified sqlgrey.conf"
+ ewarn "Do you want to continue?"
+ SQLgrey_KEY_INPUT="y,n"
+ einfo " Press one of the keys [$SQLgrey_KEY_INPUT]: "
+ while true; do
+ read -n 1 -s SQLgrey_Ignore
+ case "$SQLgrey_Ignore" in
+ "y"|"Y" )
+ break
+ ;;
+ "n"|"N" )
+ exit 0
+ ;;
+ esac
+ done
+ fi
+
+ ## Per-RDBMS configuration ##
+ # POSTGRESQL
+ if [[ "${SQLgrey_DB_TYPE}" == "p" ]] ; then
+
+ ewarn "If prompted for a password, please enter your PgSQL postgres password"
+ ewarn ""
+
+ einfo "Creating SQLgrey PostgreSQL database \"${SQLgrey_DB_NAME}\" and user \"${SQLgrey_DB_USER_NAME}\""
+ /usr/bin/psql -h ${SQLgrey_DB_HOST} -d template1 -U postgres -c "CREATE USER ${SQLgrey_DB_USER_NAME} WITH PASSWORD '${SQLgrey_DB_USER_PWD}' NOCREATEDB NOCREATEUSER; CREATE DATABASE ${SQLgrey_DB_NAME}; GRANT ALL PRIVILEGES ON DATABASE ${SQLgrey_DB_NAME} TO ${SQLgrey_DB_USER_NAME}; GRANT ALL PRIVILEGES ON SCHEMA public TO ${SQLgrey_DB_USER_NAME}; UPDATE pg_database SET datdba=(SELECT usesysid FROM pg_shadow WHERE usename='${SQLgrey_DB_USER_NAME}') WHERE datname='${SQLgrey_DB_NAME}';"
+
+ einfo "Changing SQLgrey configuration in sqlgrey.conf"
+ sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1Pg:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_user[ \t]*= \).*:\1${SQLgrey_DB_USER_NAME}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_pass[ \t]*= \).*:\1${SQLgrey_DB_USER_PWD}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_host[ \t]*= \).*:\1${SQLgrey_DB_HOST}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
+ elif [[ "${SQLgrey_DB_TYPE}" == "m" ]] ; then
+ # MYSQL
+ ewarn "If prompted for a password, please enter your MySQL root password"
+ ewarn ""
+
+ einfo "Creating SQLgrey MySQL database \"${SQLgrey_DB_NAME}\" and user \"${SQLgrey_DB_USER_NAME}\""
+ echo -ne " "
+ /usr/bin/mysql -u root -h ${SQLgrey_DB_HOST} -p -e "CREATE DATABASE IF NOT EXISTS ${SQLgrey_DB_NAME} CHARACTER SET latin1; GRANT ALL ON ${SQLgrey_DB_NAME}.* TO ${SQLgrey_DB_USER_NAME}@${SQLgrey_DB_HOST} IDENTIFIED BY '${SQLgrey_DB_USER_PWD}';FLUSH PRIVILEGES;" -D mysql
+ echo
+
+ einfo "Changing SQLgrey configuration in sqlgrey.conf"
+ sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1mysql:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_user[ \t]*= \).*:\1${SQLgrey_DB_USER_NAME}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_pass[ \t]*= \).*:\1${SQLgrey_DB_USER_PWD}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_host[ \t]*= \).*:\1${SQLgrey_DB_HOST}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
+ elif [[ "${SQLgrey_DB_TYPE}" == "s" ]] ; then
+ einfo "Changing SQLgrey configuration in sqlgrey.conf"
+ sed -i "s:^[# ]*\(db_type[ \t]*= \).*:\1SQLite:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_name[ \t]*= \).*:\1${SQLgrey_DB_NAME}:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_user[ \t]*=.*\)$:# \1:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_pass[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_host[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
+ sed -i "s:^[# ]*\(db_cleandelay[ \t]*= .*\)$:# \1:gI" ${SQLgrey_CONFIG}
+ fi
+ echo
+ if [[ "${SQLgrey_DB_TYPE}" != "s" ]]; then
+ einfo "Note: the database password is stored in $SQLgrey_CONFIG"
+ fi
+}