From c512f9eb344575ac6bce0b13729c05e1760cd094 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 19 Aug 2012 00:04:07 +0000 Subject: Sun Aug 19 00:04:07 UTC 2012 --- testing/cyrus-sasl/0003_saslauthd_mdoc.patch | 35 ++++ testing/cyrus-sasl/0010_maintainer_mode.patch | 19 ++ .../0011_saslauthd_ac_prog_libtool.patch | 15 ++ .../cyrus-sasl/0012_xopen_crypt_prototype.patch | 20 ++ .../0016_pid_file_lock_creation_mask.patch | 27 +++ testing/cyrus-sasl/0018_auth_rimap_quotes.patch | 35 ++++ testing/cyrus-sasl/0019_ldap_deprecated.patch | 22 +++ .../0022_gcc4.4_preprocessor_syntax.patch | 26 +++ testing/cyrus-sasl/0025_ld_as_needed.patch | 27 +++ .../0026_drop_krb5support_dependency.patch | 14 ++ testing/cyrus-sasl/0027_db5_support.patch | 24 +++ ...030-dont_use_la_files_for_opening_plugins.patch | 134 ++++++++++++++ testing/cyrus-sasl/PKGBUILD | 203 +++++++++++++++++++++ .../cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch | 170 +++++++++++++++++ .../cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch | 11 ++ .../cyrus-sasl-2.1.22-automake-1.10.patch | 94 ++++++++++ testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch | 71 +++++++ testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch | 22 +++ .../cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch | 28 +++ testing/cyrus-sasl/saslauthd | 49 +++++ testing/cyrus-sasl/saslauthd.conf.d | 1 + testing/cyrus-sasl/saslauthd.service | 11 ++ testing/dhcp/PKGBUILD | 13 +- testing/dhcp/dhcpd4.service | 13 ++ testing/dhcp/dhcpd6.service | 13 ++ testing/gdm/PKGBUILD | 69 +++++++ testing/gdm/fix_external_program_directories.patch | 34 ++++ testing/gdm/gdm | 36 ++++ testing/gdm/gdm-autologin.pam | 20 ++ testing/gdm/gdm-fingerprint.pam | 20 ++ testing/gdm/gdm-password.pam | 22 +++ testing/gdm/gdm-smartcard.pam | 20 ++ testing/gdm/gdm-vt-allocation-hack.patch | 118 ++++++++++++ testing/gdm/gdm-welcome.pam | 12 ++ testing/gdm/gdm.install | 30 +++ testing/gdm/gdm.pam | 10 + testing/gdm/gdm.service | 10 + testing/modemmanager/PKGBUILD | 38 ++++ testing/modemmanager/modem-manager.service | 10 + testing/openvpn/PKGBUILD | 75 ++++++++ testing/openvpn/openvpn-tapdev.conf | 12 ++ testing/openvpn/openvpn-tapdev.rc | 40 ++++ testing/openvpn/openvpn.rc | 43 +++++ testing/openvpn/openvpn@.service | 10 + testing/postgresql/PKGBUILD | 154 ++++++++++++++++ testing/postgresql/postgresql-initdb | 33 ++++ testing/postgresql/postgresql.confd | 11 ++ testing/postgresql/postgresql.install | 26 +++ testing/postgresql/postgresql.logrotate | 4 + testing/postgresql/postgresql.pam | 3 + testing/postgresql/postgresql.rcd | 79 ++++++++ testing/postgresql/postgresql.service | 20 ++ testing/udisks/PKGBUILD | 37 ++++ testing/udisks/udisks.service | 10 + 54 files changed, 2100 insertions(+), 3 deletions(-) create mode 100644 testing/cyrus-sasl/0003_saslauthd_mdoc.patch create mode 100644 testing/cyrus-sasl/0010_maintainer_mode.patch create mode 100644 testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch create mode 100644 testing/cyrus-sasl/0012_xopen_crypt_prototype.patch create mode 100644 testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch create mode 100644 testing/cyrus-sasl/0018_auth_rimap_quotes.patch create mode 100644 testing/cyrus-sasl/0019_ldap_deprecated.patch create mode 100644 testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch create mode 100644 testing/cyrus-sasl/0025_ld_as_needed.patch create mode 100644 testing/cyrus-sasl/0026_drop_krb5support_dependency.patch create mode 100644 testing/cyrus-sasl/0027_db5_support.patch create mode 100644 testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch create mode 100644 testing/cyrus-sasl/PKGBUILD create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch create mode 100644 testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch create mode 100644 testing/cyrus-sasl/saslauthd create mode 100644 testing/cyrus-sasl/saslauthd.conf.d create mode 100644 testing/cyrus-sasl/saslauthd.service create mode 100644 testing/dhcp/dhcpd4.service create mode 100644 testing/dhcp/dhcpd6.service create mode 100644 testing/gdm/PKGBUILD create mode 100644 testing/gdm/fix_external_program_directories.patch create mode 100755 testing/gdm/gdm create mode 100644 testing/gdm/gdm-autologin.pam create mode 100644 testing/gdm/gdm-fingerprint.pam create mode 100644 testing/gdm/gdm-password.pam create mode 100644 testing/gdm/gdm-smartcard.pam create mode 100644 testing/gdm/gdm-vt-allocation-hack.patch create mode 100644 testing/gdm/gdm-welcome.pam create mode 100644 testing/gdm/gdm.install create mode 100644 testing/gdm/gdm.pam create mode 100644 testing/gdm/gdm.service create mode 100644 testing/modemmanager/PKGBUILD create mode 100644 testing/modemmanager/modem-manager.service create mode 100644 testing/openvpn/PKGBUILD create mode 100644 testing/openvpn/openvpn-tapdev.conf create mode 100755 testing/openvpn/openvpn-tapdev.rc create mode 100755 testing/openvpn/openvpn.rc create mode 100644 testing/openvpn/openvpn@.service create mode 100644 testing/postgresql/PKGBUILD create mode 100755 testing/postgresql/postgresql-initdb create mode 100644 testing/postgresql/postgresql.confd create mode 100644 testing/postgresql/postgresql.install create mode 100644 testing/postgresql/postgresql.logrotate create mode 100644 testing/postgresql/postgresql.pam create mode 100755 testing/postgresql/postgresql.rcd create mode 100644 testing/postgresql/postgresql.service create mode 100644 testing/udisks/PKGBUILD create mode 100644 testing/udisks/udisks.service (limited to 'testing') diff --git a/testing/cyrus-sasl/0003_saslauthd_mdoc.patch b/testing/cyrus-sasl/0003_saslauthd_mdoc.patch new file mode 100644 index 000000000..694f4bb67 --- /dev/null +++ b/testing/cyrus-sasl/0003_saslauthd_mdoc.patch @@ -0,0 +1,35 @@ +0003_saslauthd_mdoc.dpatch by + +Use the correct path for the saslauthd.conf file, and use another +date format (cosmetic). + +diff -urNad trunk~/saslauthd/saslauthd.mdoc trunk/saslauthd/saslauthd.mdoc +--- trunk~/saslauthd/saslauthd.mdoc 2006-05-29 22:52:42.000000000 +0300 ++++ trunk/saslauthd/saslauthd.mdoc 2006-07-12 15:05:25.000000000 +0300 +@@ -10,7 +10,7 @@ + .\" manpage in saslauthd.8 whenever you change this source + .\" version. Only the pre-formatted manpage is installed. + .\" +-.Dd 10 24 2002 ++.Dd October 24 2002 + .Dt SASLAUTHD 8 + .Os "CMU-SASL" + .Sh NAME +@@ -216,7 +216,7 @@ + .Em (All platforms that support OpenLDAP 2.0 or higher) + .Pp + Authenticate against an ldap server. The ldap configuration parameters are +-read from /usr/local/etc/saslauthd.conf. The location of this file can be ++read from /etc/saslauthd.conf. The location of this file can be + changed with the -O parameter. See the LDAP_SASLAUTHD file included with the + distribution for the list of available parameters. + .It Li sia +@@ -249,7 +249,7 @@ + .Bl -tag -width "/var/run/saslauthd/mux" + .It Pa /var/run/saslauthd/mux + The default communications socket. +-.It Pa /usr/local/etc/saslauthd.conf ++.It Pa /etc/saslauthd.conf + The default configuration file for ldap support. + .El + .Sh SEE ALSO diff --git a/testing/cyrus-sasl/0010_maintainer_mode.patch b/testing/cyrus-sasl/0010_maintainer_mode.patch new file mode 100644 index 000000000..cf3d02a08 --- /dev/null +++ b/testing/cyrus-sasl/0010_maintainer_mode.patch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 0010_maintainer_mode.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Enable maintainer mode to avoid auto* problems. + +@DPATCH@ +diff -urNad trunk~/configure.in trunk/configure.in +--- trunk~/configure.in 2006-05-29 22:52:46.000000000 +0300 ++++ trunk/configure.in 2006-11-01 23:24:55.000000000 +0200 +@@ -62,6 +62,8 @@ + AM_INIT_AUTOMAKE(cyrus-sasl, 2.1.22) + CMU_INIT_AUTOMAKE + ++AM_MAINTAINER_MODE ++ + # and include our config dir scripts + ACLOCAL="$ACLOCAL -I \$(top_srcdir)/config" + diff --git a/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch b/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch new file mode 100644 index 000000000..3805b4857 --- /dev/null +++ b/testing/cyrus-sasl/0011_saslauthd_ac_prog_libtool.patch @@ -0,0 +1,15 @@ +0011_saslauthd_ac_prog_libtool.dpatch by + +Enable libtool use. + +diff -urNad trunk~/saslauthd/configure.in trunk/saslauthd/configure.in +--- trunk~/saslauthd/configure.in 2006-05-29 22:52:42.000000000 +0300 ++++ trunk/saslauthd/configure.in 2006-11-01 23:41:51.000000000 +0200 +@@ -25,6 +25,7 @@ + AC_PROG_MAKE_SET + AC_PROG_LN_S + AC_PROG_INSTALL ++AC_PROG_LIBTOOL + + dnl Checks for build foo + CMU_C___ATTRIBUTE__ diff --git a/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch b/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch new file mode 100644 index 000000000..d50ec8343 --- /dev/null +++ b/testing/cyrus-sasl/0012_xopen_crypt_prototype.patch @@ -0,0 +1,20 @@ +0012_xopen_crypt_prototype.dpatch by + +When _XOPEN_SOURCE is defined, the subsequent #include +will define a correct function prototype for the crypt function. +This avoids segfaults on architectures where the size of a pointer +is greater than the size of an integer (ia64 and amd64 are examples). +This may be detected by looking for build log lines such as the +following: +auth_shadow.c:183: warning: implicit declaration of function ‘crypt’ +auth_shadow.c:183: warning: cast to pointer from integer of different +size + +diff -urNad trunk~/saslauthd/auth_shadow.c trunk/saslauthd/auth_shadow.c +--- trunk~/saslauthd/auth_shadow.c 2006-05-29 22:52:42.000000000 +0300 ++++ trunk/saslauthd/auth_shadow.c 2006-11-08 13:44:23.000000000 +0200 +@@ -1,3 +1,4 @@ ++#define _XOPEN_SOURCE + #define PWBUFSZ 256 /***SWB***/ + + /* MODULE: auth_shadow */ diff --git a/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch b/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch new file mode 100644 index 000000000..e9170cef3 --- /dev/null +++ b/testing/cyrus-sasl/0016_pid_file_lock_creation_mask.patch @@ -0,0 +1,27 @@ +0016_pid_file_lock_creation_mask.dpatch by Sam Hocevar + +pid_file_lock is created with a mask of 644 instead of 0644. +This patch fixes this octal/decimal confusion as well as the +(harmless) one in the previous umask() call. + +diff -urNad trunk~/saslauthd/saslauthd-main.c trunk/saslauthd/saslauthd-main.c +--- trunk~/saslauthd/saslauthd-main.c 2006-05-29 22:52:42.000000000 +0300 ++++ trunk/saslauthd/saslauthd-main.c 2007-06-26 12:07:10.000000000 +0300 +@@ -276,7 +276,7 @@ + exit(1); + } + +- umask(077); ++ umask(0077); + + pid_file_size = strlen(run_path) + sizeof(PID_FILE_LOCK) + 1; + if ((pid_file_lock = malloc(pid_file_size)) == NULL) { +@@ -287,7 +287,7 @@ + strlcpy(pid_file_lock, run_path, pid_file_size); + strlcat(pid_file_lock, PID_FILE_LOCK, pid_file_size); + +- if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 644)) < 0) { ++ if ((pid_file_lock_fd = open(pid_file_lock, O_CREAT|O_TRUNC|O_RDWR, 0644)) < 0) { + rc = errno; + logger(L_ERR, L_FUNC, "could not open pid lock file: %s", pid_file_lock); + logger(L_ERR, L_FUNC, "open: %s", strerror(rc)); diff --git a/testing/cyrus-sasl/0018_auth_rimap_quotes.patch b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch new file mode 100644 index 000000000..13fa999f0 --- /dev/null +++ b/testing/cyrus-sasl/0018_auth_rimap_quotes.patch @@ -0,0 +1,35 @@ +0016_auth_rimap_quotes.dpatch by + +All lines beginning with `## DP:' are a description of the patch. +Avoid infinite loop when username/password has a double quote character. +Upstream change: https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/sasl/saslauthd/auth_rimap.c.diff?r1=1.12;r2=1.13 + +diff -urNad etch~/saslauthd/auth_rimap.c etch/saslauthd/auth_rimap.c +--- etch~/saslauthd/auth_rimap.c 2007-03-29 15:16:20.000000000 +0300 ++++ etch/saslauthd/auth_rimap.c 2008-02-13 13:42:53.000000000 +0200 +@@ -162,6 +162,7 @@ + num_quotes = 0; + p1 = s; + while ((p1 = strchr(p1, '"')) != NULL) { ++ p1++; + num_quotes++; + } + +@@ -438,7 +439,7 @@ + syslog(LOG_WARNING, "auth_rimap: writev: %m"); + memset(qlogin, 0, strlen(qlogin)); + free(qlogin); +- memset(qpass, 0, strlen(qlogin)); ++ memset(qpass, 0, strlen(qpass)); + free(qpass); + (void)close(s); + return strdup(RESP_IERROR); +@@ -447,7 +448,7 @@ + /* don't need these any longer */ + memset(qlogin, 0, strlen(qlogin)); + free(qlogin); +- memset(qpass, 0, strlen(qlogin)); ++ memset(qpass, 0, strlen(qpass)); + free(qpass); + + /* read and parse the LOGIN response */ diff --git a/testing/cyrus-sasl/0019_ldap_deprecated.patch b/testing/cyrus-sasl/0019_ldap_deprecated.patch new file mode 100644 index 000000000..8825256cb --- /dev/null +++ b/testing/cyrus-sasl/0019_ldap_deprecated.patch @@ -0,0 +1,22 @@ +0019_ldap_deprecated.dpatch by dann frazier + +The function ldap_get_values, used in saslauthd/lak.c, is deprecated. +Therefore, its prototype is not included by default when compiling +against the ldap.h headers. As a result, the compiler cannot know the +return type of the function at compile time, and will implicitly +convert to a pointer. This has implications on 64-bit systems. +This patch sets the deprecation mode on, so that the function prototype +gets included when compiling. +(Description by Fabian Fagerholm ) + +diff -urNad trunk~/saslauthd/lak.c trunk/saslauthd/lak.c +--- trunk~/saslauthd/lak.c 2006-06-04 12:26:20.000000000 +0300 ++++ trunk/saslauthd/lak.c 2008-02-15 14:32:11.000000000 +0200 +@@ -55,6 +55,7 @@ + #include + #endif + ++#define LDAP_DEPRECATED 1 + #include + #include + #include diff --git a/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch b/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch new file mode 100644 index 000000000..a49b553f0 --- /dev/null +++ b/testing/cyrus-sasl/0022_gcc4.4_preprocessor_syntax.patch @@ -0,0 +1,26 @@ +0022_gcc4.4_preprocessor_syntax.dpatch by + +The #elif preprocessor directive requires a test condition. +GCC 4.4 enforces this rule. + +diff -urNad trunk~/plugins/digestmd5.c trunk/plugins/digestmd5.c +--- trunk~/plugins/digestmd5.c 2006-06-04 12:26:19.000000000 +0300 ++++ trunk/plugins/digestmd5.c 2009-01-26 13:29:40.000000000 +0200 +@@ -2715,7 +2715,7 @@ + "DIGEST-MD5", /* mech_name */ + #ifdef WITH_RC4 + 128, /* max_ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, +@@ -4034,7 +4034,7 @@ + "DIGEST-MD5", + #ifdef WITH_RC4 /* mech_name */ + 128, /* max ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, diff --git a/testing/cyrus-sasl/0025_ld_as_needed.patch b/testing/cyrus-sasl/0025_ld_as_needed.patch new file mode 100644 index 000000000..67b48b4a4 --- /dev/null +++ b/testing/cyrus-sasl/0025_ld_as_needed.patch @@ -0,0 +1,27 @@ +Author: Matthias Klose +Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use +it. +--- a/saslauthd/Makefile.am ++++ b/saslauthd/Makefile.am +@@ -16,7 +16,7 @@ EXTRA_saslauthd_sources = getaddrinfo.c + saslauthd_DEPENDENCIES = saslauthd-main.o @LTLIBOBJS@ + saslauthd_LDADD = @SASL_KRB_LIB@ \ + @GSSAPIBASE_LIBS@ @GSSAPI_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \ +- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@ ++ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ @LTLIBOBJS@ + + testsaslauthd_SOURCES = testsaslauthd.c utils.c + testsaslauthd_LDADD = @LIB_SOCKET@ +--- a/sasldb/Makefile.am ++++ b/sasldb/Makefile.am +@@ -55,8 +55,8 @@ noinst_LIBRARIES = libsasldb.a + + libsasldb_la_SOURCES = allockey.c sasldb.h + EXTRA_libsasldb_la_SOURCES = $(extra_common_sources) +-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) +-libsasldb_la_LIBADD = $(SASL_DB_BACKEND) ++libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB) ++libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB) + + # Prevent make dist stupidity + libsasldb_a_SOURCES = diff --git a/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch b/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch new file mode 100644 index 000000000..cc00867ef --- /dev/null +++ b/testing/cyrus-sasl/0026_drop_krb5support_dependency.patch @@ -0,0 +1,14 @@ +Author: Roberto C. Sanchez +Description: Drop gratuitous dependency on krb5support +--- a/cmulocal/sasl2.m4 ++++ b/cmulocal/sasl2.m4 +@@ -112,9 +112,6 @@ if test "$gssapi" != no; then + fi + + if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then +- # check for libkrb5support first +- AC_CHECK_LIB(krb5support,krb5int_getspecific,K5SUP=-lkrb5support K5SUPSTATIC=$gssapi_dir/libkrb5support.a,,${LIB_SOCKET}) +- + gss_failed=0 + AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1, + ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${K5SUP} ${LIB_SOCKET}) diff --git a/testing/cyrus-sasl/0027_db5_support.patch b/testing/cyrus-sasl/0027_db5_support.patch new file mode 100644 index 000000000..522824074 --- /dev/null +++ b/testing/cyrus-sasl/0027_db5_support.patch @@ -0,0 +1,24 @@ +Author: Ondřej Surý +Description: Support newer Berkeley DB versions +--- a/sasldb/db_berkeley.c ++++ b/sasldb/db_berkeley.c +@@ -101,7 +101,7 @@ static int berkeleydb_open(const sasl_ut + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 1)) + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660); +--- a/utils/dbconverter-2.c ++++ b/utils/dbconverter-2.c +@@ -214,7 +214,7 @@ static int berkeleydb_open(const char *p + ret = db_create(mbdb, NULL, 0); + if (ret == 0 && *mbdb != NULL) + { +-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 ++#if (DB_VERSION_MAJOR > 4) || ((DB_VERSION_MAJOR == 4) && (DB_VERSION_MINOR >= 1)) + ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664); + #else + ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664); diff --git a/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch b/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch new file mode 100644 index 000000000..14a322496 --- /dev/null +++ b/testing/cyrus-sasl/0030-dont_use_la_files_for_opening_plugins.patch @@ -0,0 +1,134 @@ +--- a/lib/dlopen.c ++++ b/lib/dlopen.c +@@ -247,105 +247,6 @@ static int _sasl_plugin_load(char *plugi + return result; + } + +-/* this returns the file to actually open. +- * out should be a buffer of size PATH_MAX +- * and may be the same as in. */ +- +-/* We'll use a static buffer for speed unless someone complains */ +-#define MAX_LINE 2048 +- +-static int _parse_la(const char *prefix, const char *in, char *out) +-{ +- FILE *file; +- size_t length; +- char line[MAX_LINE]; +- char *ntmp = NULL; +- +- if(!in || !out || !prefix || out == in) return SASL_BADPARAM; +- +- /* Set this so we can detect failure */ +- *out = '\0'; +- +- length = strlen(in); +- +- if (strcmp(in + (length - strlen(LA_SUFFIX)), LA_SUFFIX)) { +- if(!strcmp(in + (length - strlen(SO_SUFFIX)),SO_SUFFIX)) { +- /* check for a .la file */ +- strcpy(line, prefix); +- strcat(line, in); +- length = strlen(line); +- *(line + (length - strlen(SO_SUFFIX))) = '\0'; +- strcat(line, LA_SUFFIX); +- file = fopen(line, "r"); +- if(file) { +- /* We'll get it on the .la open */ +- fclose(file); +- return SASL_FAIL; +- } +- } +- strcpy(out, prefix); +- strcat(out, in); +- return SASL_OK; +- } +- +- strcpy(line, prefix); +- strcat(line, in); +- +- file = fopen(line, "r"); +- if(!file) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "unable to open LA file: %s", line); +- return SASL_FAIL; +- } +- +- while(!feof(file)) { +- if(!fgets(line, MAX_LINE, file)) break; +- if(line[strlen(line) - 1] != '\n') { +- _sasl_log(NULL, SASL_LOG_WARN, +- "LA file has too long of a line: %s", in); +- return SASL_BUFOVER; +- } +- if(line[0] == '\n' || line[0] == '#') continue; +- if(!strncmp(line, "dlname=", sizeof("dlname=") - 1)) { +- /* We found the line with the name in it */ +- char *end; +- char *start; +- size_t len; +- end = strrchr(line, '\''); +- if(!end) continue; +- start = &line[sizeof("dlname=")-1]; +- len = strlen(start); +- if(len > 3 && start[0] == '\'') { +- ntmp=&start[1]; +- *end='\0'; +- /* Do we have dlname="" ? */ +- if(ntmp == end) { +- _sasl_log(NULL, SASL_LOG_DEBUG, +- "dlname is empty in .la file: %s", in); +- return SASL_FAIL; +- } +- strcpy(out, prefix); +- strcat(out, ntmp); +- } +- break; +- } +- } +- if(ferror(file) || feof(file)) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "Error reading .la: %s\n", in); +- fclose(file); +- return SASL_FAIL; +- } +- fclose(file); +- +- if(!(*out)) { +- _sasl_log(NULL, SASL_LOG_WARN, +- "Could not find a dlname line in .la file: %s", in); +- return SASL_FAIL; +- } +- +- return SASL_OK; +-} + #endif /* DO_DLOPEN */ + + /* loads a plugin library */ +@@ -499,18 +400,18 @@ int _sasl_load_plugins(const add_plugin_ + if (length + pos>=PATH_MAX) continue; /* too big */ + + if (strcmp(dir->d_name + (length - strlen(SO_SUFFIX)), +- SO_SUFFIX) +- && strcmp(dir->d_name + (length - strlen(LA_SUFFIX)), +- LA_SUFFIX)) ++ SO_SUFFIX)) + continue; + ++ /* We only use .so files for loading plugins */ ++ + memcpy(name,dir->d_name,length); + name[length]='\0'; + +- result = _parse_la(prefix, name, tmp); +- if(result != SASL_OK) +- continue; +- ++ /* Create full name with path */ ++ strncpy(tmp, prefix, PATH_MAX); ++ strncat(tmp, name, PATH_MAX); ++ + /* skip "lib" and cut off suffix -- + this only need be approximate */ + strcpy(plugname, name + 3); diff --git a/testing/cyrus-sasl/PKGBUILD b/testing/cyrus-sasl/PKGBUILD new file mode 100644 index 000000000..b6c2a29bc --- /dev/null +++ b/testing/cyrus-sasl/PKGBUILD @@ -0,0 +1,203 @@ +# $Id: PKGBUILD 165399 2012-08-17 23:39:59Z heftig $ +# Maintainer: Jan de Groot + +# This package spans multiple repositories. +# Always build from cyrus-sasl/trunk and merge changes to libsasl/trunk. + +pkgbase=('cyrus-sasl') +pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql') +#pkgname=libsasl +pkgver=2.1.23 +pkgrel=10 +pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library" +arch=('i686' 'x86_64') +url="http://cyrusimap.web.cmu.edu/" +license=('custom') +options=('!makeflags' '!libtool') +makedepends=('postgresql-libs' 'libmysqlclient' 'libldap' 'krb5' 'openssl') +source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz + cyrus-sasl-2.1.19-checkpw.c.patch + cyrus-sasl-2.1.22-crypt.patch + cyrus-sasl-2.1.22-qa.patch + cyrus-sasl-2.1.22-automake-1.10.patch + cyrus-sasl-2.1.23-authd-fix.patch + 0003_saslauthd_mdoc.patch + 0010_maintainer_mode.patch + 0011_saslauthd_ac_prog_libtool.patch + 0012_xopen_crypt_prototype.patch + 0016_pid_file_lock_creation_mask.patch + 0018_auth_rimap_quotes.patch + 0019_ldap_deprecated.patch + 0022_gcc4.4_preprocessor_syntax.patch + 0025_ld_as_needed.patch + 0026_drop_krb5support_dependency.patch + 0027_db5_support.patch + 0030-dont_use_la_files_for_opening_plugins.patch + saslauthd.service + saslauthd.conf.d + saslauthd) +md5sums=('2eb0e48106f0e9cd8001e654f267ecbc' + 'e27ddff076342e7a3041c4759817d04b' + 'd7e6886e88af04d05f3dec7f0a59ccf7' + '79b8a5e8689989e2afd4b7bda595a7b1' + 'f4131b077ddb5240b375d749162f1b7a' + 'c7ad2c70c1ef814eb4b119f316c064f2' + 'caeeac3feba19cbbd36e7345cc805600' + 'f45d8b60e8f74dd7f7c2ec1665fa602a' + '9d93880514cb5ff5da969f1ceb64a661' + 'dfdc052a7e678db9f687482c5d52f34e' + '4a09f6b24b91f8450892a78e378860da' + '213abe7c5dfe0d7f446992787da1e780' + '5a0321177ad30cb5518c8b6812e3961a' + '0c965748970eea29fa295524821d43f0' + '62bf892fe4d1df41ff748e91a1afaf67' + 'b7848957357e7c02d6490102be496bf9' + 'd86a5aa2e3b5b7c1bad6f8b548b7ea36' + '8e7106f32e495e9ade69014fd1b3352a' + '00f6b781549a274630e22173f77bd41d' + '49219af5641150edec288a3fdb65e7c1' + '75542f613185d5a90520ad0d7d926a20') + +build() { + cd "${srcdir}/cyrus-sasl-${pkgver}" + patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch" + patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-crypt.patch" + patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch" + patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-automake-1.10.patch" + patch -Np0 -i "${srcdir}/cyrus-sasl-2.1.23-authd-fix.patch" + patch -Np1 -i "${srcdir}/0003_saslauthd_mdoc.patch" + patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch" + patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch" + patch -Np1 -i "${srcdir}/0012_xopen_crypt_prototype.patch" + patch -Np1 -i "${srcdir}/0016_pid_file_lock_creation_mask.patch" + patch -Np1 -i "${srcdir}/0018_auth_rimap_quotes.patch" + patch -Np1 -i "${srcdir}/0019_ldap_deprecated.patch" + patch -Np1 -i "${srcdir}/0022_gcc4.4_preprocessor_syntax.patch" + patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch" + patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch" + patch -Np1 -i "${srcdir}/0027_db5_support.patch" + patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch" + + rm -f config/config.guess config/config.sub + rm -f config/ltconfig config/ltmain.sh config/libtool.m4 + rm -fr autom4te.cache + libtoolize -c + aclocal -I config -I cmulocal + automake -a -c + autoheader + autoconf + + pushd saslauthd + rm -f config/config.guess config/config.sub + rm -f config/ltconfig config/ltmain.sh config/libtool.m4 + rm -fr autom4te.cache + libtoolize -c + aclocal -I config -I ../cmulocal -I ../config + automake -a -c + autoheader + autoconf + popd + + ./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --disable-static \ + --enable-shared \ + --enable-alwaystrue \ + --enable-checkapop \ + --enable-cram \ + --enable-digest \ + --disable-otp \ + --disable-srp \ + --disable-srp-setpass \ + --disable-krb4 \ + --enable-gssapi \ + --enable-auth-sasldb \ + --enable-plain \ + --enable-anon \ + --enable-login \ + --enable-ntlm \ + --disable-passdss \ + --enable-sql \ + --enable-ldapdb \ + --disable-macos-framework \ + --with-pam \ + --with-saslauthd=/var/run/saslauthd \ + --with-ldap \ + --with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \ + --sysconfdir=/etc \ + --with-devrandom=/dev/urandom + make +} + +package_libsasl() { + pkgdesc="Cyrus Simple Authentication Service Layer (SASL) Library" + depends=('openssl') + conflicts=('cyrus-sasl-plugins') + + cd "${srcdir}/cyrus-sasl-${pkgver}" + for dir in include lib sasldb plugins utils; do + pushd ${dir} + make DESTDIR="${pkgdir}" install + popd + done + rm -f "${pkgdir}"/usr/lib/sasl2/libsql.so* + rm -f "${pkgdir}"/usr/lib/sasl2/libgssapiv2.so* + rm -f "${pkgdir}"/usr/lib/sasl2/libldapdb.so* + install -m755 -d "${pkgdir}/usr/share/licenses/libsasl" + install -m644 COPYING "${pkgdir}/usr/share/licenses/libsasl/" +} + +package_cyrus-sasl() { + depends=("libsasl=${pkgver}") + pkgdesc="Cyrus saslauthd SASL authentication daemon" + backup=('etc/conf.d/saslauthd') + + cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd" + make DESTDIR="${pkgdir}" install + install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd" + install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd" + install -Dm644 "${srcdir}/saslauthd.service" "${pkgdir}/usr/lib/systemd/system/saslauthd.service" + + install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl" + ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/" +} + +package_cyrus-sasl-gssapi() { + pkgdesc="GSSAPI authentication mechanism for Cyrus SASL" + depends=("libsasl=${pkgver}" 'krb5') + replaces=('cyrus-sasl-plugins') + + cd "${srcdir}/cyrus-sasl-${pkgver}/plugins" + install -m755 -d "${pkgdir}/usr/lib/sasl2" + cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/" + + install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi" + ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi/" +} + +package_cyrus-sasl-ldap() { + pkgdesc="ldapdb auxprop module for Cyrus SASL" + depends=("libsasl=${pkgver}" 'libldap') + replaces=('cyrus-sasl-plugins') + + cd "${srcdir}/cyrus-sasl-${pkgver}/plugins" + install -m755 -d "${pkgdir}/usr/lib/sasl2" + cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/" + + install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap" + ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap/" +} + +package_cyrus-sasl-sql() { + pkgdesc="SQL auxprop module for Cyrus SASL" + depends=("libsasl=${pkgver}" 'postgresql-libs' 'libmysqlclient') + replaces=('cyrus-sasl-plugins') + + cd "${srcdir}/cyrus-sasl-${pkgver}/plugins" + install -m755 -d "${pkgdir}/usr/lib/sasl2" + cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/" + + install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-sql" + ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-sql/" +} diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch new file mode 100644 index 000000000..f7bf44b79 --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.19-checkpw.c.patch @@ -0,0 +1,170 @@ +diff -ur ../cyrus-sasl-2.1.19.orig/lib/Makefile.in ./lib/Makefile.in +--- ../cyrus-sasl-2.1.19.orig/lib/Makefile.in 2004-07-02 21:40:15.000000000 +0200 ++++ ./lib/Makefile.in 2004-09-07 13:21:22.746680576 +0200 +@@ -120,7 +120,7 @@ + JAVA_TRUE = @JAVA_TRUE@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ +-LIBS = @LIBS@ ++LIBS = -lcrypt @LIBS@ + LIBTOOL = @LIBTOOL@ + LIB_CRYPT = @LIB_CRYPT@ + LIB_DES = @LIB_DES@ +diff -ur ../cyrus-sasl-2.1.19.orig/lib/checkpw.c ./lib/checkpw.c +--- ../cyrus-sasl-2.1.19.orig/lib/checkpw.c 2004-03-17 14:58:13.000000000 +0100 ++++ ./lib/checkpw.c 2004-09-07 13:21:12.645916147 +0200 +@@ -94,6 +94,23 @@ + # endif + #endif + ++/****************************** ++ * crypt(3) patch start * ++ ******************************/ ++char *crypt(const char *key, const char *salt); ++ ++/* cleartext password formats */ ++#define PASSWORD_FORMAT_CLEARTEXT 1 ++#define PASSWORD_FORMAT_CRYPT 2 ++#define PASSWORD_FORMAT_CRYPTTRAD 3 ++#define PASSWORD_SALT_BUF_LEN 22 ++ ++/* weeds out crypt(3) password's salt */ ++int _sasl_get_salt (char *dest, char *src, int format); ++ ++/****************************** ++ * crypt(3) patch stop * ++ ******************************/ + + /* we store the following secret to check plaintext passwords: + * +@@ -143,7 +160,51 @@ + "*cmusaslsecretPLAIN", + NULL }; + struct propval auxprop_values[3]; +- ++ ++ /****************************** ++ * crypt(3) patch start * ++ * for password format check * ++ ******************************/ ++ sasl_getopt_t *getopt; ++ void *context; ++ const char *p = NULL; ++ /** ++ * MD5: 12 char salt ++ * BLOWFISH: 16 char salt ++ */ ++ char salt[PASSWORD_SALT_BUF_LEN]; ++ int password_format; ++ ++ /* get password format from auxprop configuration */ ++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) { ++ getopt(context, NULL, "password_format", &p, NULL); ++ } ++ ++ /* set password format */ ++ if (p) { ++ /* ++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN); ++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1)); ++ */ ++ /* modern, modular crypt(3) */ ++ if (strncmp(p, "crypt", 11) == 0) ++ password_format = PASSWORD_FORMAT_CRYPT; ++ /* traditional crypt(3) */ ++ else if (strncmp(p, "crypt_trad", 11) == 0) ++ password_format = PASSWORD_FORMAT_CRYPTTRAD; ++ /* cleartext password */ ++ else ++ password_format = PASSWORD_FORMAT_CLEARTEXT; ++ } else { ++ /* cleartext password */ ++ password_format = PASSWORD_FORMAT_CLEARTEXT; ++ } ++ ++ /****************************** ++ * crypt(3) patch stop * ++ * for password format check * ++ ******************************/ ++ + if (!conn || !userstr) + return SASL_BADPARAM; + +@@ -180,14 +241,31 @@ + goto done; + } + +- /* At the point this has been called, the username has been canonified +- * and we've done the auxprop lookup. This should be easy. */ +- if(auxprop_values[0].name +- && auxprop_values[0].values +- && auxprop_values[0].values[0] +- && !strcmp(auxprop_values[0].values[0], passwd)) { +- /* We have a plaintext version and it matched! */ +- return SASL_OK; ++ ++ /****************************** ++ * crypt(3) patch start * ++ ******************************/ ++ ++ /* get salt */ ++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format); ++ ++ /* crypt(3)-ed password? */ ++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) { ++ /* compare password */ ++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0) ++ return SASL_OK; ++ else ++ ret = SASL_BADAUTH; ++ } ++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) { ++ /* compare passwords */ ++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0) ++ return SASL_OK; ++ else ++ ret = SASL_BADAUTH; ++ /****************************** ++ * crypt(3) patch stop * ++ ******************************/ + } else if(auxprop_values[1].name + && auxprop_values[1].values + && auxprop_values[1].values[0]) { +@@ -975,3 +1053,37 @@ + #endif + { NULL, NULL } + }; ++ ++/* weeds out crypt(3) password's salt */ ++int _sasl_get_salt (char *dest, char *src, int format) { ++ int num; /* how many characters is salt long? */ ++ switch (format) { ++ case PASSWORD_FORMAT_CRYPT: ++ /* md5 crypt */ ++ if (src[1] == '1') ++ num = 12; ++ /* blowfish crypt */ ++ else if (src[1] == '2') ++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16; ++ /* traditional crypt */ ++ else ++ num = 2; ++ break; ++ ++ case PASSWORD_FORMAT_CRYPTTRAD: ++ num = 2; ++ break; ++ ++ default: ++ return 1; ++ } ++ ++ /* destroy destination */ ++ memset(dest, '\0', (num + 1)); ++ ++ /* copy salt to destination */ ++ strncpy(dest, src, num); ++ ++ return 1; ++} ++ diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch new file mode 100644 index 000000000..1294cb507 --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-as-needed.patch @@ -0,0 +1,11 @@ +--- saslauthd/configure.in.orig 2006-05-23 15:53:17.000000000 -0700 ++++ saslauthd/configure.in 2006-05-23 15:53:33.000000000 -0700 +@@ -77,7 +77,7 @@ + AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support]) + SASL_DB_PATH_CHECK() + SASL_DB_CHECK() +- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al" ++ SASL_DB_LIB="../sasldb/.libs/libsasldb.a $SASL_DB_LIB" + fi + + AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ], diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch new file mode 100644 index 000000000..8cd71c0c5 --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-automake-1.10.patch @@ -0,0 +1,94 @@ +Re-merged patch by Robert Scheck for cyrus-sasl >= 2.1.22, which was +originally written by Jacek Konieczny and makes cyrus-sasl building +using automake 1.10. + +--- cyrus-sasl-2.1.22/plugins/Makefile.am 2006-05-17 18:46:16.000000000 +0200 ++++ cyrus-sasl-2.1.22/plugins/Makefile.am.am110 2007-02-16 15:42:07.000000000 +0100 +@@ -82,73 +82,73 @@ + libntlm.la libpassdss.la libsasldb.la libsql.la libldapdb.la + + libplain_la_SOURCES = plain.c plain_init.c $(common_sources) +-libplain_la_LDFLAGS = -version-info $(plain_version) ++libplain_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(plain_version) + libplain_la_DEPENDENCIES = $(COMPAT_OBJS) + libplain_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS) + + libanonymous_la_SOURCES = anonymous.c anonymous_init.c $(common_sources) +-libanonymous_la_LDFLAGS = -version-info $(anonymous_version) ++libanonymous_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(anonymous_version) + libanonymous_la_DEPENDENCIES = $(COMPAT_OBJS) + libanonymous_la_LIBADD = $(COMPAT_OBJS) + + libkerberos4_la_SOURCES = kerberos4.c kerberos4_init.c $(common_sources) +-libkerberos4_la_LDFLAGS = -version-info $(kerberos4_version) ++libkerberos4_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(kerberos4_version) + libkerberos4_la_DEPENDENCIES = $(COMPAT_OBJS) + libkerberos4_la_LIBADD = $(SASL_KRB_LIB) $(LIB_SOCKET) $(COMPAT_OBJS) + + libgssapiv2_la_SOURCES = gssapi.c gssapiv2_init.c $(common_sources) +-libgssapiv2_la_LDFLAGS = -version-info $(gssapiv2_version) ++libgssapiv2_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(gssapiv2_version) + libgssapiv2_la_DEPENDENCIES = $(COMPAT_OBJS) + libgssapiv2_la_LIBADD = $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(LIB_SOCKET) $(COMPAT_OBJS) + + libcrammd5_la_SOURCES = cram.c crammd5_init.c $(common_sources) +-libcrammd5_la_LDFLAGS = -version-info $(crammd5_version) ++libcrammd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(crammd5_version) + libcrammd5_la_DEPENDENCIES = $(COMPAT_OBJS) + libcrammd5_la_LIBADD = $(COMPAT_OBJS) + + libdigestmd5_la_SOURCES = digestmd5.c digestmd5_init.c $(common_sources) +-libdigestmd5_la_LDFLAGS = -version-info $(digestmd5_version) ++libdigestmd5_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(digestmd5_version) + libdigestmd5_la_DEPENDENCIES = $(COMPAT_OBJS) + libdigestmd5_la_LIBADD = $(LIB_DES) $(LIB_SOCKET) $(COMPAT_OBJS) + + liblogin_la_SOURCES = login.c login_init.c $(common_sources) +-liblogin_la_LDFLAGS = -version-info $(login_version) ++liblogin_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(login_version) + liblogin_la_DEPENDENCIES = $(COMPAT_OBJS) + liblogin_la_LIBADD = $(PLAIN_LIBS) $(COMPAT_OBJS) + + libsrp_la_SOURCES = srp.c srp_init.c $(common_sources) +-libsrp_la_LDFLAGS = -version-info $(srp_version) ++libsrp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(srp_version) + libsrp_la_DEPENDENCIES = $(COMPAT_OBJS) + libsrp_la_LIBADD = $(SRP_LIBS) $(COMPAT_OBJS) + + libotp_la_SOURCES = otp.c otp_init.c otp.h $(common_sources) +-libotp_la_LDFLAGS = -version-info $(otp_version) ++libotp_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(otp_version) + libotp_la_DEPENDENCIES = $(COMPAT_OBJS) + libotp_la_LIBADD = $(OTP_LIBS) $(COMPAT_OBJS) + + libntlm_la_SOURCES = ntlm.c ntlm_init.c $(common_sources) +-libntlm_la_LDFLAGS = -version-info $(ntlm_version) ++libntlm_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(ntlm_version) + libntlm_la_DEPENDENCIES = $(COMPAT_OBJS) + libntlm_la_LIBADD = $(NTLM_LIBS) $(COMPAT_OBJS) + + libpassdss_la_SOURCES = passdss.c passdss_init.c $(common_sources) +-libpassdss_la_LDFLAGS = -version-info $(passdss_version) ++libpassdss_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(passdss_version) + libpassdss_la_DEPENDENCIES = $(COMPAT_OBJS) + libpassdss_la_LIBADD = $(PASSDSS_LIBS) $(COMPAT_OBJS) + + # Auxprop Plugins + libsasldb_la_SOURCES = sasldb.c sasldb_init.c $(common_sources) +-libsasldb_la_LDFLAGS = -version-info $(sasldb_version) ++libsasldb_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(sasldb_version) + libsasldb_la_DEPENDENCIES = $(COMPAT_OBJS) + libsasldb_la_LIBADD = ../sasldb/libsasldb.la $(SASL_DB_LIB) $(COMPAT_OBJS) + + libldapdb_la_SOURCES = ldapdb.c ldapdb_init.c $(common_sources) +-libldapdb_la_LDFLAGS = $(LIB_LDAP) -version-info $(ldapdb_version) ++libldapdb_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_LDAP) -version-info $(ldapdb_version) + libldapdb_la_DEPENDENCIES = $(COMPAT_OBJS) + libldapdb_la_LIBADD = $(COMPAT_OBJS) + + libsql_la_SOURCES = sql.c sql_init.c $(common_sources) +-libsql_la_LDFLAGS = $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version) ++libsql_la_LDFLAGS = $(AM_LDFLAGS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) -version-info $(sql_version) + libsql_la_DEPENDENCIES = $(COMPAT_OBJS) + libsql_la_LIBADD = $(COMPAT_OBJS) + diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch new file mode 100644 index 000000000..fd356327b --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-crypt.patch @@ -0,0 +1,71 @@ +http://bugs.gentoo.org/152544 + +--- cyrus-sasl-2.1.22/lib/Makefile.am ++++ cyrus-sasl-2.1.22/lib/Makefile.am +@@ -45,6 +45,7 @@ sasl_version = 2:22:0 + + INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/plugins -I$(top_builddir)/include -I$(top_srcdir)/sasldb + ++AM_CFLAGS = -fPIC + EXTRA_DIST = windlopen.c staticopen.h NTMakefile + EXTRA_LIBRARIES = libsasl2.a + noinst_LIBRARIES = @SASL_STATIC_LIBS@ +--- cyrus-sasl-2.1.22/plugins/Makefile.am ++++ cyrus-sasl-2.1.22/plugins/Makefile.am +@@ -63,6 +63,7 @@ srp_version = 2:22:0 + + INCLUDES=-I$(top_srcdir)/include -I$(top_srcdir)/lib -I$(top_srcdir)/sasldb -I$(top_builddir)/include + AM_LDFLAGS = -module -export-dynamic -rpath $(plugindir) ++AM_CFLAGS = -fPIC + + COMPAT_OBJS = @LTGETADDRINFOOBJS@ @LTGETNAMEINFOOBJS@ @LTSNPRINTFOBJS@ + +--- cyrus-sasl-2.1.22/sasldb/Makefile.am ++++ cyrus-sasl-2.1.22/sasldb/Makefile.am +@@ -48,6 +48,7 @@ INCLUDES=-I$(top_srcdir)/include -I$(top + + extra_common_sources = db_none.c db_ndbm.c db_gdbm.c db_berkeley.c + ++AM_CFLAGS = -fPIC + EXTRA_DIST = NTMakefile + + noinst_LTLIBRARIES = libsasldb.la +--- cyrus-sasl-2.1.22/utils/Makefile.am ++++ cyrus-sasl-2.1.22/utils/Makefile.am +@@ -42,7 +42,7 @@ + # + ################################################################ + +-all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) ++all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) $(LIB_CRYPT) + all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) + + sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer +--- cyrus-sasl-2.1.22/sample/Makefile.am ++++ cyrus-sasl-2.1.22/sample/Makefile.am +@@ -54,10 +54,10 @@ sample_server_SOURCES = sample-server.c + server_SOURCES = server.c common.c common.h + client_SOURCES = client.c common.c common.h + +-server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) +-client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) ++server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) ++client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) + +-sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) +-sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) ++sample_client_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) ++sample_server_LDADD = ../lib/libsasl2.la $(LIB_SOCKET) $(LIB_CRYPT) + + EXTRA_DIST = NTMakefile +--- cyrus-sasl-2.1.22/lib/Makefile.am ++++ cyrus-sasl-2.1.22/lib/Makefile.am +@@ -63,7 +63,7 @@ lib_LTLIBRARIES = libsasl2.la + libsasl2_la_SOURCES = $(common_sources) $(common_headers) + libsasl2_la_LDFLAGS = -version-info $(sasl_version) + libsasl2_la_DEPENDENCIES = $(LTLIBOBJS) +-libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) ++libsasl2_la_LIBADD = $(LTLIBOBJS) $(SASL_DL_LIB) $(LIB_SOCKET) $(LIB_DOOR) $(LIB_CRYPT) + + if MACOSX + framedir = /Library/Frameworks/SASL2.framework diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch new file mode 100644 index 000000000..4f7b04f13 --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.22-qa.patch @@ -0,0 +1,22 @@ +fix missing prototype warnings + +--- cyrus-sasl-2.1.22/lib/auxprop.c ++++ cyrus-sasl-2.1.22/lib/auxprop.c +@@ -43,6 +43,7 @@ + */ + + #include ++#include + #include + #include + #include +--- cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c ++++ cyrus-sasl-2.1.22/pwcheck/pwcheck_getspnam.c +@@ -24,6 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERF + ******************************************************************/ + + #include ++#include + + extern char *crypt(); + diff --git a/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch b/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch new file mode 100644 index 000000000..f5f372d17 --- /dev/null +++ b/testing/cyrus-sasl/cyrus-sasl-2.1.23-authd-fix.patch @@ -0,0 +1,28 @@ +fix warnings: + +auth_sasldb.c: In function ‘auth_sasldb’: +auth_sasldb.c:144: warning: implicit declaration of function ‘gethostname’ + +auth_sasldb.c:153: warning: passing argument 8 of ‘_sasldb_getdata’ from incompatible pointer type +../sasldb/sasldb.h:60: note: expected ‘size_t *’ but argument is of type ‘int *’ + +--- saslauthd/auth_sasldb.c ++++ saslauthd/auth_sasldb.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + /* END PUBLIC DEPENDENCIES */ + + #define RETURN(x) return strdup(x) +@@ -131,7 +132,8 @@ + /* VARIABLES */ + char pw[1024]; /* pointer to passwd file entry */ + sasl_utils_t utils; +- int ret, outsize; ++ int ret; ++ size_t outsize; + const char *use_realm; + char realm_buf[MAXHOSTNAMELEN]; + /* END VARIABLES */ diff --git a/testing/cyrus-sasl/saslauthd b/testing/cyrus-sasl/saslauthd new file mode 100644 index 000000000..6afafae0b --- /dev/null +++ b/testing/cyrus-sasl/saslauthd @@ -0,0 +1,49 @@ +#!/bin/bash + +# source application-specific settings +[ -f /etc/conf.d/saslauthd ] && . /etc/conf.d/saslauthd + +. /etc/rc.conf +. /etc/rc.d/functions + +DAEMON_NAME="saslauthd" +SASLAUTHD_BIN=/usr/sbin/saslauthd +SASLAUTHD_RUN=/var/run/saslauthd +SASLAUTHD_PID=$SASLAUTHD_RUN/saslauthd.pid + +case "$1" in + start) + stat_busy "Starting $DAEMON_NAME" + [ ! -d /var/run/saslauthd ] && install -d /var/run/saslauthd + if $SASLAUTHD_BIN $SASLAUTHD_OPTS >/dev/null; then + add_daemon $DAEMON_NAME + stat_done + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping $DAEMON_NAME" + [ -f $SASLAUTHD_PID ] && kill `cat $SASLAUTHD_PID` &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm_daemon $DAEMON_NAME + stat_done + fi + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 +# vim: ts=2 sw=2 et ft=sh diff --git a/testing/cyrus-sasl/saslauthd.conf.d b/testing/cyrus-sasl/saslauthd.conf.d new file mode 100644 index 000000000..167211290 --- /dev/null +++ b/testing/cyrus-sasl/saslauthd.conf.d @@ -0,0 +1 @@ +SASLAUTHD_OPTS="-a pam" diff --git a/testing/cyrus-sasl/saslauthd.service b/testing/cyrus-sasl/saslauthd.service new file mode 100644 index 000000000..42d8ad768 --- /dev/null +++ b/testing/cyrus-sasl/saslauthd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Cyrus SASL authentication daemon + +[Service] +Type=forking +EnvironmentFile=/etc/conf.d/saslauthd +ExecStart=/usr/sbin/saslauthd $SASLAUTHD_OPTS +PidFile=/var/run/saslauthd/saslauthd.pid + +[Install] +WantedBy=multi-user.target diff --git a/testing/dhcp/PKGBUILD b/testing/dhcp/PKGBUILD index 05b00a406..31ace7328 100644 --- a/testing/dhcp/PKGBUILD +++ b/testing/dhcp/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 164255 2012-07-28 22:37:00Z eric $ +# $Id: PKGBUILD 165396 2012-08-17 23:27:19Z heftig $ # Maintainer: Daniel Isenmann pkgbase=dhcp @@ -8,13 +8,13 @@ pkgname=('dhcp' 'dhclient') pkgver=4.2.4.1 _pkgver=4.2.4-P1 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') license=('custom:isc-dhcp') url="https://www.isc.org/software/dhcp" makedepends=('bash' 'iproute2' 'net-tools') source=(ftp://ftp.isc.org/isc/${pkgbase}/${_pkgver}/${pkgbase}-${_pkgver}.tar.gz{,.asc} - dhcp4 dhcp6 dhcp + dhcp4 dhcp6 dhcp dhcpd4.service dhcpd6.service dhcp-4.1.1-missing-ipv6-not-fatal.patch dhclient-script-pathFixes.patch) md5sums=('0ca7181024651f6323951d5498c8020b' @@ -22,6 +22,8 @@ md5sums=('0ca7181024651f6323951d5498c8020b' 'c49b1497837ba56c54e401a66e1bab9b' '12c2f3ae47ed23eb698eb7f1bfd80f20' '8f357e46e1efcbb746f38737a3f977a2' + '1076444f22e13eb5f6bff7821fd0f446' + '9310f2d8b1d7e97ace06d68cb41d9998' 'fd64aeb4f399dcc41ea43089a3811094' '541b415a25a169eaf64b681405f79a80') @@ -59,6 +61,11 @@ package_dhcp(){ install -D -m644 "${srcdir}/dhcp" "${pkgdir}/etc/conf.d/${pkgbase}" install -d "${pkgdir}/var/state/dhcp" + install -D -m644 "${srcdir}/dhcpd4.service" "${pkgdir}/usr/lib/systemd/system/dhcpd4.service" + install -D -m644 "${srcdir}/dhcpd6.service" "${pkgdir}/usr/lib/systemd/system/dhcpd6.service" + ln -s dhcpd4.service "${pkgdir}/usr/lib/systemd/system/dhcp4.service" + ln -s dhcpd6.service "${pkgdir}/usr/lib/systemd/system/dhcp6.service" + # Remove dhclient make -C client DESTDIR="${pkgdir}" uninstall diff --git a/testing/dhcp/dhcpd4.service b/testing/dhcp/dhcpd4.service new file mode 100644 index 000000000..2ef4a9f26 --- /dev/null +++ b/testing/dhcp/dhcpd4.service @@ -0,0 +1,13 @@ +[Unit] +Description=IPv4 DHCP server +After=network.target + +[Service] +Type=forking +PIDFile=/run/dhcpd4.pid +ExecStart=/usr/sbin/dhcpd -4 -q -pf /run/dhcpd4.pid +ExecReload=/bin/kill -TERM $MAINPID +KillSignal=SIGINT + +[Install] +WantedBy=multi-user.target diff --git a/testing/dhcp/dhcpd6.service b/testing/dhcp/dhcpd6.service new file mode 100644 index 000000000..eb3b337c6 --- /dev/null +++ b/testing/dhcp/dhcpd6.service @@ -0,0 +1,13 @@ +[Unit] +Description=IPv6 DHCP server +After=network.target + +[Service] +Type=forking +PIDFile=/run/dhcpd6.pid +ExecStart=/usr/sbin/dhcpd -6 -q -pf /run/dhcpd6.pid +ExecReload=/bin/kill -TERM $MAINPID +KillSignal=SIGINT + +[Install] +WantedBy=multi-user.target diff --git a/testing/gdm/PKGBUILD b/testing/gdm/PKGBUILD new file mode 100644 index 000000000..71b0db89f --- /dev/null +++ b/testing/gdm/PKGBUILD @@ -0,0 +1,69 @@ +# $Id: PKGBUILD 165393 2012-08-17 23:22:35Z heftig $ +# Maintainer: Jan de Groot + +pkgname=gdm +pkgver=3.4.1 +pkgrel=3 +pkgdesc="Gnome Display Manager (a reimplementation of xdm)" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.gnome.org" +backup=('etc/pam.d/gdm-autologin' 'etc/pam.d/gdm-fingerprint' 'etc/pam.d/gdm' 'etc/pam.d/gdm-password' + 'etc/pam.d/gdm-smartcard' 'etc/pam.d/gdm-welcome' 'etc/gdm/custom.conf') +groups=('gnome-extra') +options=('!libtool') +depends=('libcanberra' 'libxklavier' 'gnome-session' 'gnome-settings-daemon' 'metacity' 'upower' 'accountsservice' 'consolekit' 'xorg-xrdb' 'nss') +makedepends=('intltool' 'gnome-doc-utils' 'xorg-server' 'gobject-introspection') +optdepends=('gnome-shell: new login interface' + 'fprintd: fingerprint authentication') +install=gdm.install +source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + fix_external_program_directories.patch + gdm-vt-allocation-hack.patch + gdm gdm.service + gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam) +sha256sums=('6292968dff5fc89877b5e1aaa3c7d1484dd3ed2d4f388e935841d053439be665' + 'f68600ccf80f475deb417d58ab3306c4a1ba4622688e2901996c8549c85a9ee6' + '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215' + '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550' + 'b7b91c682ff4c7cfb2d395c65abeca9dad8c0997b399dcf22abdf481c3e61349' + '6a8b286d1ffa04150b3cc401f64e6ddec778c7b65f5bfc831031b64345d7e6b2' + 'dd50f5bd28807a16c5ebe89fc868b7c47fa571138498e879f2b1c9da1ad6eb84' + 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19' + '1a1e9b3f26de4eb9f45d1e9a0b5d0db902ca734461ba46b4bb620b0298bb98aa' + '844d5fae0df59241d34099a3d458289bd95707b2aae976627c663904294043d8' + '39bf3824cc505043dc3136356da16dab9df9f369f1077435a324be2ac16cf834') + +build() { + cd "$pkgname-$pkgver" + patch -Np1 -i "$srcdir/fix_external_program_directories.patch" + patch -Np1 -i "$srcdir/gdm-vt-allocation-hack.patch" + + ./configure --prefix=/usr --sysconfdir=/etc \ + --libexecdir=/usr/lib/gdm \ + --localstatedir=/var \ + --with-at-spi-registryd-directory=/usr/lib/at-spi2-core \ + --disable-scrollkeeper \ + --disable-static \ + --without-tcp-wrappers \ + --disable-schemas-compile \ + --with-systemd=no + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool + make +} + +package() { + cd "$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + + for i in gdm-autologin.pam gdm-fingerprint.pam gdm.pam gdm-password.pam gdm-smartcard.pam gdm-welcome.pam;do + install -m644 "$srcdir/$i" "$pkgdir/etc/pam.d/${i%.pam}" + done + + install -Dm755 "$srcdir/gdm" "$pkgdir/etc/rc.d/gdm" + install -Dm644 "$srcdir/gdm.service" "$pkgdir/usr/lib/systemd/system/gdm.service" + + chmod 1770 "$pkgdir/var/log/gdm" + chmod 700 "$pkgdir/var/lib/gdm/.config/dconf" + rm -rf "$pkgdir/var/run" "$pkgdir/var/gdm" +} diff --git a/testing/gdm/fix_external_program_directories.patch b/testing/gdm/fix_external_program_directories.patch new file mode 100644 index 000000000..b3a0f0cf6 --- /dev/null +++ b/testing/gdm/fix_external_program_directories.patch @@ -0,0 +1,34 @@ +diff -Nur gdm-3.3.92.orig/daemon/gdm-server.c gdm-3.3.92/daemon/gdm-server.c +--- gdm-3.3.92.orig/daemon/gdm-server.c 2012-03-19 22:30:05.311490006 +0000 ++++ gdm-3.3.92/daemon/gdm-server.c 2012-03-19 22:30:17.004732251 +0000 +@@ -139,7 +139,7 @@ + g_return_val_if_fail (GDM_IS_SERVER (server), NULL); + + error = NULL; +- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s", ++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s", + server->priv->display_name); + + g_debug ("GdmServer: Running helper %s", command); +diff -Nur gdm-3.3.92.orig/data/gdm-shell.session.in gdm-3.3.92/data/gdm-shell.session.in +--- gdm-3.3.92.orig/data/gdm-shell.session.in 2012-03-19 22:30:05.311490006 +0000 ++++ gdm-3.3.92/data/gdm-shell.session.in 2012-03-19 22:30:17.004732251 +0000 +@@ -1,5 +1,5 @@ + [GNOME Session] + Name=Display Manager + RequiredComponents=gnome-shell;gnome-settings-daemon; +-IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && @libexecdir@/gnome-session-check-accelerated' ++IsRunnableHelper=bash -c 'gnome-shell --help | grep -q gdm-mode && /usr/lib/gnome-session/gnome-session-check-accelerated' + FallbackSession=gdm-fallback +diff -Nur gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c +--- gdm-3.3.92.orig/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:05.304823391 +0000 ++++ gdm-3.3.92/gui/simple-chooser/gdm-chooser-session.c 2012-03-19 22:30:17.004732251 +0000 +@@ -131,7 +131,7 @@ + ret = FALSE; + + error = NULL; +- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error); ++ g_spawn_command_line_async ("/usr/lib/gnome-settings-daemon/gnome-settings-daemon", &error); + if (error != NULL) { + g_warning ("Error starting settings daemon: %s", error->message); + g_error_free (error); diff --git a/testing/gdm/gdm b/testing/gdm/gdm new file mode 100755 index 000000000..c3e635a6d --- /dev/null +++ b/testing/gdm/gdm @@ -0,0 +1,36 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting GDM" + /usr/sbin/gdm & + if [ $? -gt 0 ]; then + stat_fail + else + + add_daemon gdm + stat_done + fi + ;; + stop) + stat_busy "Stopping GDM" + [ -f /var/run/gdm.pid ] && kill `cat /var/run/gdm.pid` &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon gdm + stat_done + fi + ;; + restart) + $0 stop + sleep 2 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/testing/gdm/gdm-autologin.pam b/testing/gdm/gdm-autologin.pam new file mode 100644 index 000000000..bc0193df0 --- /dev/null +++ b/testing/gdm/gdm-autologin.pam @@ -0,0 +1,20 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_permit.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_access.so +account required pam_time.so +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/testing/gdm/gdm-fingerprint.pam b/testing/gdm/gdm-fingerprint.pam new file mode 100644 index 000000000..38fab5782 --- /dev/null +++ b/testing/gdm/gdm-fingerprint.pam @@ -0,0 +1,20 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_fprintd.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_access.so +account required pam_time.so +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/testing/gdm/gdm-password.pam b/testing/gdm/gdm-password.pam new file mode 100644 index 000000000..eed5e1003 --- /dev/null +++ b/testing/gdm/gdm-password.pam @@ -0,0 +1,22 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_unix.so nullok +auth optional pam_gnome_keyring.so + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_access.so +account required pam_time.so +account required pam_unix.so + +password required pam_unix.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so force revoke +session required pam_limits.so +session required pam_unix.so +session optional pam_gnome_keyring.so auto_start diff --git a/testing/gdm/gdm-smartcard.pam b/testing/gdm/gdm-smartcard.pam new file mode 100644 index 000000000..c5c29e73f --- /dev/null +++ b/testing/gdm/gdm-smartcard.pam @@ -0,0 +1,20 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so + +auth requisite pam_pkcs11.so wait_for_card card_only + +auth sufficient pam_succeed_if.so uid >= 1000 quiet +auth required pam_deny.so + +account required pam_access.so +account required pam_time.so +account required pam_unix.so + +password required pam_pkcs11.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so revoke +session required pam_limits.so +session required pam_unix.so diff --git a/testing/gdm/gdm-vt-allocation-hack.patch b/testing/gdm/gdm-vt-allocation-hack.patch new file mode 100644 index 000000000..56fa5a151 --- /dev/null +++ b/testing/gdm/gdm-vt-allocation-hack.patch @@ -0,0 +1,118 @@ +diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c +index 39def47..03488fd 100644 +--- a/daemon/gdm-server.c ++++ b/daemon/gdm-server.c +@@ -33,6 +33,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -150,6 +152,92 @@ _gdm_server_query_ck_for_display_device (GdmServer *server) + return out; + } + ++#ifndef O_NOCTTY ++# define O_NOCTTY 0 ++#endif ++ ++static int ++open_vt (int vtno) ++{ ++ char *vtname; ++ int fd; ++ ++ vtname = g_strdup_printf ("/dev/tty%d", vtno); ++ ++ do { ++ errno = 0; ++ fd = open (vtname, O_RDWR | O_NOCTTY, 0); ++ } while (errno == EINTR); ++ ++ g_free (vtname); ++ return fd; ++} ++ ++static gint ++find_first_probably_free_vt (void) ++{ ++ int fd, fdv; ++ int vtno; ++ unsigned short vtmask; ++ struct vt_stat vtstat; ++ guint v_state; ++ ++ fdv = -1; ++ ++ do { ++ errno = 0; ++ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0); ++ } while (errno == EINTR); ++ ++ if (fd >= 0) { ++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) { ++ v_state = vtstat.v_state; ++ } else { ++ close (fd); ++ v_state = 0; ++ fd = -1; ++ } ++ } else { ++ v_state = 0; ++ } ++ ++ if (fd < 0) { ++ do { ++ errno = 0; ++ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0); ++ } while (errno == EINTR); ++ ++ if (fd >= 0) { ++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) ++ v_state = vtstat.v_state; ++ } ++ } ++ ++ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) { ++ /* Is this console in use? */ ++ if (v_state & vtmask) ++ continue; ++ ++ /* No, try to open it */ ++ fdv = open_vt (vtno); ++ if (fdv >= 0) ++ break; ++ ++ /* If we're here, kernel indicated that the console was free, ++ * but we failed to open it. Just go on to higher VTs. */ ++ } ++ ++ if (fdv >= 0) ++ close (fdv); ++ else ++ vtno = -1; ++ ++ if (fd >= 0) ++ close (fd); ++ ++ return vtno; ++} ++ + char * + gdm_server_get_display_device (GdmServer *server) + { +@@ -310,6 +398,11 @@ gdm_server_resolve_command_line (GdmServer *server, + + if (vtarg != NULL && ! gotvtarg) { + argv[len++] = g_strdup (vtarg); ++ } else if (!query_in_arglist && !gotvtarg) { ++ gint vtnum = find_first_probably_free_vt (); ++ ++ if (vtnum > 0) ++ argv [len++] = g_strdup_printf ("vt%d", vtnum); + } + + argv[len++] = NULL; diff --git a/testing/gdm/gdm-welcome.pam b/testing/gdm/gdm-welcome.pam new file mode 100644 index 000000000..cc3811c19 --- /dev/null +++ b/testing/gdm/gdm-welcome.pam @@ -0,0 +1,12 @@ +#%PAM-1.0 +auth required pam_env.so +auth required pam_permit.so + +account required pam_nologin.so +account required pam_unix.so + +password required pam_deny.so + +session required pam_loginuid.so +-session optional pam_systemd.so +session optional pam_keyinit.so force revoke diff --git a/testing/gdm/gdm.install b/testing/gdm/gdm.install new file mode 100644 index 000000000..c48faf4ae --- /dev/null +++ b/testing/gdm/gdm.install @@ -0,0 +1,30 @@ +pkgname=gdm + +post_install() { + getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm + getent passwd gdm > /dev/null 2>&1 || usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm + passwd -l gdm > /dev/null + chown -R gdm:gdm /var/lib/gdm > /dev/null + + glib-compile-schemas /usr/share/glib-2.0/schemas + gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor + dconf update +} + +pre_upgrade() { + if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then + gconfpkg --uninstall ${pkgname} + fi +} + +post_upgrade() { + post_install +} + +post_remove() { + glib-compile-schemas /usr/share/glib-2.0/schemas + dconf update + gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor + getent passwd gdm >/dev/null 2>&1 && userdel gdm + getent group gdm >/dev/null 2>&1 && groupdel gdm +} diff --git a/testing/gdm/gdm.pam b/testing/gdm/gdm.pam new file mode 100644 index 000000000..655299cb7 --- /dev/null +++ b/testing/gdm/gdm.pam @@ -0,0 +1,10 @@ +#%PAM-1.0 +auth requisite pam_nologin.so +auth required pam_env.so +auth required pam_unix.so +auth optional pam_gnome_keyring.so +account required pam_unix.so +session required pam_limits.so +session required pam_unix.so +session optional pam_gnome_keyring.so auto_start +password required pam_unix.so diff --git a/testing/gdm/gdm.service b/testing/gdm/gdm.service new file mode 100644 index 000000000..0125934d6 --- /dev/null +++ b/testing/gdm/gdm.service @@ -0,0 +1,10 @@ +[Unit] +Description=Gnome Display Manager +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/sbin/gdm -nodaemon +Restart=always + +[Install] +Alias=display-manager.service diff --git a/testing/modemmanager/PKGBUILD b/testing/modemmanager/PKGBUILD new file mode 100644 index 000000000..403673c39 --- /dev/null +++ b/testing/modemmanager/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 165395 2012-08-17 23:24:24Z heftig $ +# Maintainer: Ionut Biru +pkgname=modemmanager +_realname=ModemManager +pkgver=0.5.2.0 +pkgrel=3 +pkgdesc="Mobile broadband modem management service" +arch=('i686' 'x86_64') +url="http://cgit.freedesktop.org/ModemManager/ModemManager/" +license=('GPL2') +depends=('dbus-glib' 'udev' 'ppp') +makedepends=('intltool') +optdepends=('usb_modeswitch: install if your modem shows up as a storage drive') +options=('!libtool') +source=(http://download.gnome.org/sources/$_realname/0.5/$_realname-$pkgver.tar.xz + modem-manager.service) +sha256sums=('7f8b3e1996a24e031df7534e226a0f0c7c2dd8b30322e6c5f4611dc1a848e6c8' + '66c9947972066dd5494c3a18b0e833f236e0866b455675368b5994900cbaf384') + +build() { + cd "$_realname-$pkgver" + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-udev-base-dir=/usr/lib/udev \ + --disable-static + make +} + +package() { + cd "$_realname-$pkgver" + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir/modem-manager.service" \ + "$pkgdir/usr/lib/systemd/system/modem-manager.service" + echo "SystemdService=modem-manager.service" \ + >> "$pkgdir/usr/share/dbus-1/system-services/org.freedesktop.ModemManager.service" +} diff --git a/testing/modemmanager/modem-manager.service b/testing/modemmanager/modem-manager.service new file mode 100644 index 000000000..4e0c43c8c --- /dev/null +++ b/testing/modemmanager/modem-manager.service @@ -0,0 +1,10 @@ +[Unit] +Description=Modem Manager + +[Service] +Type=dbus +BusName=org.freedesktop.ModemManager +ExecStart=/usr/sbin/modem-manager + +[Install] +WantedBy=multi-user.target diff --git a/testing/openvpn/PKGBUILD b/testing/openvpn/PKGBUILD new file mode 100644 index 000000000..ea7443098 --- /dev/null +++ b/testing/openvpn/PKGBUILD @@ -0,0 +1,75 @@ +# $Id: PKGBUILD 165397 2012-08-17 23:28:47Z heftig $ +# Maintainer: Thomas Bächler + +pkgname=openvpn +pkgver=2.2.2 +pkgrel=2 +pkgdesc="An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)" +arch=(i686 x86_64) +url="http://openvpn.net/index.php/open-source.html" +depends=('openssl' 'lzo2' 'iproute2') +license=('custom') +backup=(usr/share/openvpn/easy-rsa/vars + usr/share/openvpn/easy-rsa/openssl-1.0.0.cnf + etc/conf.d/openvpn-tapdev) +source=(http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz + http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz.asc + openvpn@.service + openvpn.rc + openvpn-tapdev.rc + openvpn-tapdev.conf) +md5sums=('c5181e27b7945fa6276d21873329c5c7' + '81ff11ec8cd9fc3c8bc646aae24c4298' + '44047df812a3fcd57a7e36a61732a9b9' + 'a3809b9727f0c2af2d0770f5c7442db2' + 'd2c48e970088d679dd3c2afd914ff731' + '722f483c9e3ce2ec66d3301aaf7cf3d5') + +build() { + cd $srcdir/$pkgname-$pkgver + # Build openvpn + CFLAGS="$CFLAGS -DPLUGIN_LIBDIR=\\\"/usr/lib/openvpn\\\"" ./configure \ + --prefix=/usr \ + --enable-password-save \ + --mandir=/usr/share/man \ + --enable-iproute2 + make + + # Build plugins + for plug in auth-pam down-root; do + cd $srcdir/$pkgname-$pkgver/plugin/$plug + make + done +} + +package() { + cd $srcdir/$pkgname-$pkgver + # Install openvpn + make DESTDIR=$pkgdir install + install -d -m755 $pkgdir/etc/openvpn + # Install examples + install -d -m755 $pkgdir/usr/share/openvpn + cp -r sample-config-files $pkgdir/usr/share/openvpn/examples + find $pkgdir/usr/share/openvpn -type f -exec chmod 644 {} \; + find $pkgdir/usr/share/openvpn -type d -exec chmod 755 {} \; + # Install license + install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + # Install plugins + for plug in auth-pam down-root; do + cd $srcdir/$pkgname-$pkgver/plugin/$plug + install -D -m755 openvpn-$plug.so $pkgdir/usr/lib/openvpn/openvpn-$plug.so + cd - + done + # Install contrib + install -d -m755 $pkgdir/usr/share/openvpn/contrib + cp -r contrib $pkgdir/usr/share/openvpn + # Install easy-rsa + cd $srcdir/$pkgname-$pkgver + make -C easy-rsa/2.0 install DESTDIR=$pkgdir PREFIX=usr/share/openvpn/easy-rsa + rm -f ${pkgdir}/usr/share/openvpn/easy-rsa/openssl-0.9.?.cnf + # Install rc scripts + install -D -m755 $srcdir/openvpn.rc $pkgdir/etc/rc.d/openvpn + install -D -m755 $srcdir/openvpn-tapdev.rc $pkgdir/etc/rc.d/openvpn-tapdev + install -D -m644 $srcdir/openvpn-tapdev.conf $pkgdir/etc/conf.d/openvpn-tapdev + install -D -m644 $srcdir/openvpn@.service $pkgdir/usr/lib/systemd/system/openvpn@.service +} diff --git a/testing/openvpn/openvpn-tapdev.conf b/testing/openvpn/openvpn-tapdev.conf new file mode 100644 index 000000000..afa5586dd --- /dev/null +++ b/testing/openvpn/openvpn-tapdev.conf @@ -0,0 +1,12 @@ +# +# /etc/conf.d/openvpn-tapdev +# +# Place openvpn-tapdev before network into your DAEMONS array +# This will create permanent tap devices which you can use for bridging +# +# Example: +# TAPDEVS="work home" +# Will create two tap devices "work" and "home" +# + +TAPDEVS="" diff --git a/testing/openvpn/openvpn-tapdev.rc b/testing/openvpn/openvpn-tapdev.rc new file mode 100755 index 000000000..2c51f8248 --- /dev/null +++ b/testing/openvpn/openvpn-tapdev.rc @@ -0,0 +1,40 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +. /etc/conf.d/openvpn-tapdev + +case "$1" in + start) + stat_busy "Creating tap devices for OpenVPN ... " + success=0 + for tapdev in ${TAPDEVS}; do + stat_append "${tapdev} " + /usr/sbin/openvpn --mktun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$? + done + if [ $success -eq 0 ]; then + add_daemon openvpn-tapdev + stat_done + else + stat_fail + fi + ;; + stop) + stat_busy "Destroying tap devices for OpenVPN ..." + for tapdev in ${TAPDEVS}; do + stat_append "${tapdev} " + /usr/sbin/openvpn --rmtun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$? + done + rm_daemon openvpn-tapdev + stat_done + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/testing/openvpn/openvpn.rc b/testing/openvpn/openvpn.rc new file mode 100755 index 000000000..96c28b641 --- /dev/null +++ b/testing/openvpn/openvpn.rc @@ -0,0 +1,43 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +CFGDIR="/etc/openvpn" +STATEDIR="/var/run/openvpn" + +case "$1" in + start) + stat_busy "Starting OpenVPN ... " + success=0 + mkdir -p "${STATEDIR}" + for cfg in "${CFGDIR}"/*.conf; do + stat_append "$(basename "${cfg}" .conf) " + /usr/sbin/openvpn --daemon --writepid "${STATEDIR}"/"$(basename "${cfg}" .conf)".pid --cd "${CFGDIR}" --config "${cfg}" || success=$? + done + if [ $success -eq 0 ]; then + add_daemon openvpn + stat_done + else + stat_fail + fi + ;; + stop) + stat_busy "Stopping OpenVPN ..." + for pidfile in "${STATEDIR}"/*.pid; do + stat_append "$(basename "${pidfile}" .pid) " + kill $(cat "${pidfile}" 2>/dev/null) 2>/dev/null + rm -f "${pidfile}" + done + rm_daemon openvpn + stat_done + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/testing/openvpn/openvpn@.service b/testing/openvpn/openvpn@.service new file mode 100644 index 000000000..c3de3bdf7 --- /dev/null +++ b/testing/openvpn/openvpn@.service @@ -0,0 +1,10 @@ +[Unit] +Description=OpenVPN connection to %i +After=network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/openvpn --config /etc/openvpn/%i.conf --daemon openvpn@%i --cd /etc/openvpn + +[Install] +WantedBy=multi-user.target diff --git a/testing/postgresql/PKGBUILD b/testing/postgresql/PKGBUILD new file mode 100644 index 000000000..e7f743d8e --- /dev/null +++ b/testing/postgresql/PKGBUILD @@ -0,0 +1,154 @@ +# $Id: PKGBUILD 165398 2012-08-17 23:34:22Z heftig $ +# Maintainer: Dan McGee + +pkgbase=postgresql +pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql') +pkgver=9.1.4 +_majorver=${pkgver%.*} +pkgrel=2 +arch=('i686' 'x86_64') +url="http://www.postgresql.org/" +license=('custom:PostgreSQL') +makedepends=('krb5' 'libxml2' 'python2' 'perl' 'tcl' 'openssl>=1.0.0') +source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2 + postgresql.rcd postgresql.confd postgresql.pam postgresql.logrotate + postgresql.service postgresql-initdb) +md5sums=('a8035688dba988b782725ac1aec60186' + '1ddd1df8010549f237e7983bb326025e' + 'a54d09a20ab1672adf08f037df188d53' + '96f82c38f3f540b53f3e5144900acf17' + 'd28e443f9f65a5712c52018b84e27137' + '1ec1fbf1ce998324248c543e6cc2c5e6' + '1488a98a5d5d96a04416e4f5872223bf') +sha256sums=('a0795a8eb3ae2d1a2914b63bf143d20182835d90699915ff43567c041d3c9712' + '9f6307b1358892e304f9474a456f0cb9160cfb8812a9da0430abe647f8a9cf45' + '3de5c059eead8816db15c2c5588e6196d6c4b0d704faf1a20912796cf589ba81' + '57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5' + '6abb842764bbed74ea4a269d24f1e73d1c0b1d8ecd6e2e6fb5fb10590298605e' + '7014ccc8f3bbac8be9473a43fca2ed4037ee04e56d8e07d6027b3b4ef0317c89' + 'c22f82a3cf5b555935039853fab2d7e5ff6188cdb1fb528fa9171a87b94f42b0') + +build() { + cd "${srcdir}/postgresql-${pkgver}" + + ./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --datadir=/usr/share/postgresql \ + --with-krb5 \ + --with-libxml \ + --with-openssl \ + --with-perl \ + --with-python PYTHON=/usr/bin/python2 \ + --with-tcl \ + --with-pam \ + --with-system-tzdata=/usr/share/zoneinfo \ + --enable-nls \ + --enable-thread-safety + + make world +} + +package_postgresql-libs() { + pkgdesc="Libraries for use with PostgreSQL" + depends=('krb5' 'openssl>=1.0.0' 'readline>=6.0') + provides=('postgresql-client') + conflicts=('postgresql-client') + + cd "${srcdir}/postgresql-${pkgver}" + + # install license + install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE" + + # install libs + for dir in src/interfaces src/bin/pg_config src/bin/psql; do + make -C ${dir} DESTDIR="${pkgdir}" install + done + + install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1" + install -D -m644 doc/src/sgml/man1/psql.1 "${pkgdir}/usr/share/man/man1/psql.1" + + cd src/include + + mkdir -p "${pkgdir}"/usr/include/{libpq,postgresql/internal/libpq} + + # these headers are needed by the public headers of the interfaces + install -m644 pg_config.h "${pkgdir}/usr/include/" + install -m644 pg_config_os.h "${pkgdir}/usr/include/" + install -m644 postgres_ext.h "${pkgdir}/usr/include/" + install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/" + install -m644 pg_config_manual.h "${pkgdir}/usr/include/" + + # these headers are needed by the not-so-public headers of the interfaces + install -m644 c.h "${pkgdir}/usr/include/postgresql/internal/" + install -m644 port.h "${pkgdir}/usr/include/postgresql/internal/" + install -m644 postgres_fe.h "${pkgdir}/usr/include/postgresql/internal/" + install -m644 libpq/pqcomm.h "${pkgdir}/usr/include/postgresql/internal/libpq/" +} + +package_postgresql-docs() { + pkgdesc="HTML documentation for PostgreSQL" + options=(docs) + + cd "${srcdir}/postgresql-${pkgver}" + + # install license + install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-docs/LICENSE" + + make -C doc/src/sgml DESTDIR="${pkgdir}" install-html + chown -R root:root "${pkgdir}/usr/share/doc/postgresql/html/" + + # clean up + rmdir "${pkgdir}"/usr/share/man/man{1,3,7} + rmdir "${pkgdir}"/usr/share/man +} + +package_postgresql() { + pkgdesc="A sophisticated object-relational DBMS" + backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql') + depends=("postgresql-libs>=${pkgver}" 'krb5' 'libxml2' 'readline>=6.0' 'openssl>=1.0.0') + optdepends=('python2: for PL/Python support' + 'perl: for PL/Perl support' + 'tcl: for PL/Tcl support' + 'postgresql-old-upgrade: upgrade from previous major version using pg_upgrade') + install=postgresql.install + + cd "${srcdir}/postgresql-${pkgver}" + + # install + make DESTDIR="${pkgdir}" install + make -C contrib DESTDIR="${pkgdir}" install + make -C doc/src/sgml DESTDIR="${pkgdir}" install-man + + # we don't want these, they are in the -libs package + for dir in src/interfaces src/bin/pg_config src/bin/psql; do + make -C ${dir} DESTDIR="${pkgdir}" uninstall + done + rm "${pkgdir}/usr/share/man/man1/pg_config.1" + rm "${pkgdir}/usr/share/man/man1/psql.1" + + # install license + install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE" + + # clean up unneeded installed items + rm -rf "${pkgdir}/usr/include/postgresql/internal" + rm -rf "${pkgdir}/usr/include/libpq" + find "${pkgdir}/usr/include" -maxdepth 1 -type f -execdir rm {} + + rmdir "${pkgdir}/usr/share/doc/postgresql/html" + + # install launch script + install -D -m755 "${srcdir}/postgresql.rcd" "${pkgdir}/etc/rc.d/postgresql" + install -D -m644 "${srcdir}/postgresql.service" \ + "${pkgdir}/usr/lib/systemd/system/postgresql.service" + install -D -m755 "${srcdir}/postgresql-initdb" \ + "${pkgdir}/usr/lib/systemd/scripts/postgresql-initdb" + + # install conf file + install -D -m644 ${srcdir}/postgresql.confd \ + "${pkgdir}/etc/conf.d/postgresql" + + install -D -m644 ${srcdir}/postgresql.pam \ + "${pkgdir}/etc/pam.d/postgresql" + + install -D -m644 ${srcdir}/postgresql.logrotate \ + "${pkgdir}/etc/logrotate.d/postgresql" +} diff --git a/testing/postgresql/postgresql-initdb b/testing/postgresql/postgresql-initdb new file mode 100755 index 000000000..a691a83ff --- /dev/null +++ b/testing/postgresql/postgresql-initdb @@ -0,0 +1,33 @@ +#!/bin/sh + +set -e + +. /etc/conf.d/postgresql + +# 2nd clause is necessary to prevent symlinking the directory to itself when it +# doesn't exist yet +if [ ! /var/lib/postgres -ef "$PGROOT" ] && [ /var/lib/postgres != "$PGROOT" ]; then + echo "Creating symlink /var/lib/postgres -> $PGROOT" + + # Remove /var/lib/postgres if empty dir, but not if symlink + if [ ! -L /var/lib/postgres ] && [ -d /var/lib/postgres ]; then + rmdir /var/lib/postgres + fi + + ln -sf "$PGROOT" /var/lib/postgres +fi + +PGDATA="$PGROOT/data" + +if [ ! -d "$PGDATA" ]; then + echo "Initializing database in $PGDATA" + + mkdir -p "$PGDATA" + chown -R postgres:postgres "$PGDATA" + + su - postgres -m -c "/usr/bin/initdb $INITOPTS -D '$PGDATA'" >/dev/null + + if [ -f /etc/postgresql/postgresql.conf ]; then + ln -sf /etc/postgresql/postgresql.conf "$PGDATA/postgresql.conf" + fi +fi diff --git a/testing/postgresql/postgresql.confd b/testing/postgresql/postgresql.confd new file mode 100644 index 000000000..6001c16d1 --- /dev/null +++ b/testing/postgresql/postgresql.confd @@ -0,0 +1,11 @@ +## +## Parameters to be passed to postgresql +## +## Default data directory location +#PGROOT="/var/lib/postgres" +## Passed to initdb if necessary +INITOPTS="--locale en_US.UTF-8" +## Default log file location +#PGLOG="/var/log/postgresql.log" +## Additional options to pass via pg_ctl's '-o' option +#PGOPTS="" diff --git a/testing/postgresql/postgresql.install b/testing/postgresql/postgresql.install new file mode 100644 index 000000000..c52432271 --- /dev/null +++ b/testing/postgresql/postgresql.install @@ -0,0 +1,26 @@ +post_install() { + if [ ! -d '/var/lib/postgres' ]; then + mkdir -p '/var/lib/postgres' + fi + getent group postgres >/dev/null || groupadd -g 88 postgres + getent passwd postgres >/dev/null || useradd -c 'PostgreSQL user' -u 88 -g postgres -d '/var/lib/postgres' -s /bin/bash postgres + passwd -l postgres >/dev/null +} + +post_upgrade() { + post_install $1 + # FS#23858, fix postgres user shell issue + postgres_shell=$(getent passwd postgres | cut -d: -f7) + if [ "$postgres_shell" = "/sbin/nologin" ]; then + chsh -s /bin/bash postgres + fi +} + +post_remove() { + if getent passwd postgres >/dev/null; then + userdel postgres + fi + if getent group postgres >/dev/null; then + groupdel postgres + fi +} diff --git a/testing/postgresql/postgresql.logrotate b/testing/postgresql/postgresql.logrotate new file mode 100644 index 000000000..9c36918be --- /dev/null +++ b/testing/postgresql/postgresql.logrotate @@ -0,0 +1,4 @@ +/var/log/postgresql.log { + copytruncate + missingok +} diff --git a/testing/postgresql/postgresql.pam b/testing/postgresql/postgresql.pam new file mode 100644 index 000000000..53724d1f8 --- /dev/null +++ b/testing/postgresql/postgresql.pam @@ -0,0 +1,3 @@ +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/testing/postgresql/postgresql.rcd b/testing/postgresql/postgresql.rcd new file mode 100755 index 000000000..f3600b30b --- /dev/null +++ b/testing/postgresql/postgresql.rcd @@ -0,0 +1,79 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/postgresql + +# Default PGROOT if it wasn't defined in the conf.d file +PGROOT=${PGROOT:-/var/lib/postgres} +PGLOG=${PGLOG:-/var/log/postgresql.log} +PGCTL_BIN=/usr/bin/pg_ctl +PGCTL_ARGS=(-D "$PGROOT/data" -l "$PGLOG" -s -w) +[[ $PGOPTS ]] && PGCTL_ARGS+=(-o "$PGOPTS") + +postgres_init() { + # initialization + if [[ ! -d "$PGROOT/data" ]]; then + mkdir -p "$PGROOT/data" && chown -R postgres:postgres "$PGROOT" + su - postgres -c "/usr/bin/initdb $INITOPTS -D '$PGROOT/data'" + fi + if [[ ! -e "$PGLOG" ]]; then + touch "$PGLOG" + chown postgres "$PGLOG" + fi +} + +do_postgres() { + su - postgres -c "'$PGCTL_BIN' $(printf '%q ' "${PGCTL_ARGS[@]}" "$@")" +} + +case $1 in + start) + postgres_init + stat_busy "Starting PostgreSQL" + if do_postgres start; then + add_daemon postgresql + stat_done + else + stat_fail + exit 1 + fi + ;; + stop) + stat_busy "Stopping PostgreSQL" + if do_postgres stop -m fast; then + rm_daemon postgresql + stat_done + else + stat_fail + exit 1 + fi + ;; + reload) + stat_busy "Reloading PostgreSQL" + if do_postgres reload; then + stat_done + else + stat_fail + exit 1 + fi + ;; + restart) + postgres_init + stat_busy "Restarting PostgreSQL" + if do_postgres restart -m fast; then + add_daemon postgresql + stat_done + else + stat_fail + exit 1 + fi + ;; + status) + stat_busy "Checking PostgreSQL status"; + ck_status postgresql + ;; + *) + echo "usage: $0 {start|stop|reload|restart|status}" + exit 1 +esac diff --git a/testing/postgresql/postgresql.service b/testing/postgresql/postgresql.service new file mode 100644 index 000000000..2fcd3e93d --- /dev/null +++ b/testing/postgresql/postgresql.service @@ -0,0 +1,20 @@ +[Unit] +Description=PostgreSQL database server + +[Service] +Type=forking +SyslogIdentifier=postgres +PIDFile=/var/lib/postgres/data/postmaster.pid + +# initdb script takes care for symlinking $PGROOT to /var/lib/postgres +ExecStartPre=/usr/lib/systemd/scripts/postgresql-initdb +ExecStart= /bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data start" +ExecReload=/bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data reload" +ExecStop= /bin/su - postgres -m -c "/usr/bin/pg_ctl -s -D /var/lib/postgres/data stop -m fast" + +# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in +# killing Postgres +OOMScoreAdjust=-200 + +[Install] +WantedBy=multi-user.target diff --git a/testing/udisks/PKGBUILD b/testing/udisks/PKGBUILD new file mode 100644 index 000000000..f7fbd187d --- /dev/null +++ b/testing/udisks/PKGBUILD @@ -0,0 +1,37 @@ +# $Id: PKGBUILD 165394 2012-08-17 23:23:28Z heftig $ +# Maintainer: Jan de Groot + +pkgname=udisks +pkgver=1.0.4 +pkgrel=5 +pkgdesc="Disk Management Service" +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/udisks" +license=('GPL') +depends=('udev' 'sg3_utils' 'glib2' 'dbus-glib' 'polkit' 'parted' 'device-mapper' 'libatasmart' 'lsof' 'eject') +makedepends=('intltool' 'docbook-xsl') +options=(!libtool) +source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz udisks.service) +sha256sums=('854b89368733b9c3a577101b761ad5397ae75a05110c8698ac5b29de9a8bf8f5' + '0b9cbf41935feed3e4e2430fd4e06eb29864554dbb9f330c9d2a5fa2ef185131') + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ + --libexecdir=/usr/lib/udisks --disable-static + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make profiledir=/usr/share/bash-completion/completions DESTDIR="${pkgdir}" install + chmod 644 "${pkgdir}/usr/share/bash-completion/completions/udisks-bash-completion.sh" + + # move udev helpers and rules to /usr/lib + mv "${pkgdir}"/lib/udev "${pkgdir}"/usr/lib/ + rm -r "${pkgdir}"/lib + + install -Dm644 "$srcdir/udisks.service" "$pkgdir/usr/lib/systemd/system/udisks.service" + echo "SystemdService=udisks.service" \ + >> "$pkgdir/usr/share/dbus-1/system-services/org.freedesktop.UDisks.service" +} diff --git a/testing/udisks/udisks.service b/testing/udisks/udisks.service new file mode 100644 index 000000000..7105e90be --- /dev/null +++ b/testing/udisks/udisks.service @@ -0,0 +1,10 @@ +[Unit] +Description=UDisks + +[Service] +Type=dbus +BusName=org.freedesktop.UDisks +ExecStart=/usr/lib/udisks/udisks-daemon + +[Install] +WantedBy=graphical.target -- cgit v1.2.3-54-g00ecf