From 19f42937be8f6619a85663cb71e24c05b7e8b6d2 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 28 Apr 2011 22:32:07 +0000 Subject: Thu Apr 28 22:32:07 UTC 2011 --- testing/coreutils/PKGBUILD | 69 ++++ testing/coreutils/coreutils-pam.patch | 428 +++++++++++++++++++++ testing/coreutils/coreutils-uname.patch | 173 +++++++++ testing/coreutils/coreutils.install | 21 + testing/coreutils/su.pam | 9 + testing/cronie/PKGBUILD | 12 +- testing/cronie/cron.deny | 1 + testing/cronie/crontab | 1 + testing/gnome-control-center/PKGBUILD | 14 +- .../gnome-control-center.install | 13 +- testing/libwebkit/PKGBUILD | 17 +- testing/libwebkit/gcc46.patch | 11 + testing/rasqal/PKGBUILD | 16 +- testing/redland/PKGBUILD | 25 +- testing/slv2/PKGBUILD | 6 +- testing/soprano/PKGBUILD | 8 +- 16 files changed, 773 insertions(+), 51 deletions(-) create mode 100644 testing/coreutils/PKGBUILD create mode 100644 testing/coreutils/coreutils-pam.patch create mode 100644 testing/coreutils/coreutils-uname.patch create mode 100644 testing/coreutils/coreutils.install create mode 100644 testing/coreutils/su.pam create mode 100644 testing/cronie/cron.deny create mode 100644 testing/cronie/crontab create mode 100644 testing/libwebkit/gcc46.patch (limited to 'testing') diff --git a/testing/coreutils/PKGBUILD b/testing/coreutils/PKGBUILD new file mode 100644 index 000000000..e63b4f02f --- /dev/null +++ b/testing/coreutils/PKGBUILD @@ -0,0 +1,69 @@ +# $Id: PKGBUILD 120920 2011-04-27 11:05:23Z allan $ +# Maintainer: Allan McRae +# Contributor: judd + +pkgname=coreutils +pkgver=8.12 +pkgrel=1 +pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" +arch=('i686' 'x86_64') +license=('GPL3') +url="http://www.gnu.org/software/coreutils" +groups=('base') +depends=('glibc' 'shadow' 'pam' 'acl' 'gmp' 'libcap') +replaces=('mktemp') +backup=('etc/pam.d/su') +install=${pkgname}.install +options=('!emptydirs') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz + coreutils-uname.patch + coreutils-pam.patch + su.pam) +md5sums=('0f7d43c2d2e24314b43a6c6267e25b90' + 'c4fcca138b6abf6d443d48a6f0cd8833' + 'aad79a2aa6d566c375d7bdd1b0767278' + 'fa85e5cce5d723275b14365ba71a8aad') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + # added su wheel group pam patch (from fedora git) + patch -Np1 -i ${srcdir}/coreutils-pam.patch + + # linux specific uname improvement (from gentoo portage) + patch -Np1 -i ${srcdir}/coreutils-uname.patch + + autoreconf -v + ./configure --prefix=/usr \ + --enable-install-program=su \ + --enable-no-install-program=groups,hostname,kill,uptime \ + --enable-pam + make +} + +check() { + cd ${srcdir}/${pkgname}-${pkgver} + make RUN_EXPENSIVE_TESTS=yes check +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + make DESTDIR=${pkgdir} install + + cd ${pkgdir}/usr/bin + install -dm755 ${pkgdir}/{bin,usr/sbin} + + # binaries required by FHS + _fhs="cat chgrp chmod chown cp date dd df echo false ln ls \ + mkdir mknod mv pwd rm rmdir stty su sync true uname" + mv ${_fhs} ${pkgdir}/bin + + # binaries required by various Arch scripts + _bin="cut dir dircolors du install mkfifo readlink shred \ + sleep touch tr vdir" + mv ${_bin} ${pkgdir}/bin + ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep + + mv chroot ${pkgdir}/usr/sbin + install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su +} diff --git a/testing/coreutils/coreutils-pam.patch b/testing/coreutils/coreutils-pam.patch new file mode 100644 index 000000000..e61908f3f --- /dev/null +++ b/testing/coreutils/coreutils-pam.patch @@ -0,0 +1,428 @@ +diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac +--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100 ++++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100 +@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then + AC_SUBST([GNULIB_WARN_CFLAGS]) + fi + ++dnl Give the chance to enable PAM ++AC_ARG_ENABLE(pam, dnl ++[ --enable-pam Enable use of the PAM libraries], ++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM]) ++LIB_PAM="-ldl -lpam -lpam_misc" ++AC_SUBST(LIB_PAM)]) ++ + AC_FUNC_FORK + + optional_bin_progs= +diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi +--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100 +@@ -15081,8 +15081,11 @@ to certain shells, etc.). + @findex syslog + @command{su} can optionally be compiled to use @code{syslog} to report + failed, and optionally successful, @command{su} attempts. (If the system +-supports @code{syslog}.) However, GNU @command{su} does not check if the +-user is a member of the @code{wheel} group; see below. ++supports @code{syslog}.) ++ ++This version of @command{su} has support for using PAM for ++authentication. You can edit @file{/etc/pam.d/su} to customize its ++behaviour. + + The program accepts the following options. Also see @ref{Common options}. + +@@ -15124,6 +15127,8 @@ environment variables except @env{TERM}, + @env{PATH} to a compiled-in default value. Change to @var{user}'s home + directory. Prepend @samp{-} to the shell's name, intended to make it + read its login startup file(s). ++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables ++are preserved as well for PAM functionality. + + @item -m + @itemx -p +@@ -15163,33 +15168,6 @@ Exit status: + the exit status of the subshell otherwise + @end display + +-@cindex wheel group, not supported +-@cindex group wheel, not supported +-@cindex fascism +-@subsection Why GNU @command{su} does not support the @samp{wheel} group +- +-(This section is by Richard Stallman.) +- +-@cindex Twenex +-@cindex MIT AI lab +-Sometimes a few of the users try to hold total power over all the +-rest. For example, in 1984, a few users at the MIT AI lab decided to +-seize power by changing the operator password on the Twenex system and +-keeping it secret from everyone else. (I was able to thwart this coup +-and give power back to the users by patching the kernel, but I +-wouldn't know how to do that in Unix.) +- +-However, occasionally the rulers do tell someone. Under the usual +-@command{su} mechanism, once someone learns the root password who +-sympathizes with the ordinary users, he or she can tell the rest. The +-``wheel group'' feature would make this impossible, and thus cement the +-power of the rulers. +- +-I'm on the side of the masses, not that of the rulers. If you are +-used to supporting the bosses and sysadmins in whatever they do, you +-might find this idea strange at first. +- +- + @node timeout invocation + @section @command{timeout}: Run a command with a time limit + +diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am +--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100 +@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP) + uptime_LDADD += $(GETLOADAVG_LIBS) + + # for crypt +-su_LDADD += $(LIB_CRYPT) ++su_LDADD += $(LIB_CRYPT) @LIB_PAM@ + + # for various ACL functions + copy_LDADD += $(LIB_ACL) +diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c +--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100 ++++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100 +@@ -37,6 +37,16 @@ + restricts who can su to UID 0 accounts. RMS considers that to + be fascist. + ++#ifdef USE_PAM ++ ++ Actually, with PAM, su has nothing to do with whether or not a ++ wheel group is enforced by su. RMS tries to restrict your access ++ to a su which implements the wheel group, but PAM considers that ++ to be fascist, and gives the user/sysadmin the opportunity to ++ enforce a wheel group by proper editing of /etc/pam.conf ++ ++#endif ++ + Compile-time options: + -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog. + -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog. +@@ -53,6 +63,15 @@ + #include + #include + ++#ifdef USE_PAM ++# include ++# include ++# include ++# include ++# include ++# include ++#endif /* USE_PAM */ ++ + #include "system.h" + #include "getpass.h" + +@@ -120,10 +139,17 @@ + /* The user to become if none is specified. */ + #define DEFAULT_USER "root" + ++#ifndef USE_PAM + char *crypt (char const *key, char const *salt); ++#endif + +-static void run_shell (char const *, char const *, char **, size_t) ++static void run_shell (char const *, char const *, char **, size_t, ++ const struct passwd *) ++#ifdef USE_PAM ++ ; ++#else + ATTRIBUTE_NORETURN; ++#endif + + /* If true, pass the `-f' option to the subshell. */ + static bool fast_startup; +@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su + } + #endif + ++#ifdef USE_PAM ++static pam_handle_t *pamh = NULL; ++static int retval; ++static struct pam_conv conv = { ++ misc_conv, ++ NULL ++}; ++ ++#define PAM_BAIL_P if (retval) { \ ++ pam_end(pamh, PAM_SUCCESS); \ ++ return 0; \ ++} ++#define PAM_BAIL_P_VOID if (retval) { \ ++ pam_end(pamh, PAM_SUCCESS); \ ++return; \ ++} ++#endif ++ + /* Ask the user for a password. ++ If PAM is in use, let PAM ask for the password if necessary. + Return true if the user gives the correct password for entry PW, + false if not. Return true without asking for a password if run by UID 0 + or if PW has an empty password. */ +@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su + static bool + correct_password (const struct passwd *pw) + { ++#ifdef USE_PAM ++ struct passwd *caller; ++ char *tty_name, *ttyn; ++ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh); ++ PAM_BAIL_P; ++ ++ if (getuid() != 0 && !isatty(0)) { ++ fprintf(stderr, "standard in must be a tty\n"); ++ exit(1); ++ } ++ ++ caller = getpwuid(getuid()); ++ if(caller != NULL && caller->pw_name != NULL) { ++ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name); ++ PAM_BAIL_P; ++ } ++ ++ ttyn = ttyname(0); ++ if (ttyn) { ++ if (strncmp(ttyn, "/dev/", 5) == 0) ++ tty_name = ttyn+5; ++ else ++ tty_name = ttyn; ++ retval = pam_set_item(pamh, PAM_TTY, tty_name); ++ PAM_BAIL_P; ++ } ++ retval = pam_authenticate(pamh, 0); ++ PAM_BAIL_P; ++ retval = pam_acct_mgmt(pamh, 0); ++ if (retval == PAM_NEW_AUTHTOK_REQD) { ++ /* password has expired. Offer option to change it. */ ++ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); ++ PAM_BAIL_P; ++ } ++ PAM_BAIL_P; ++ /* must be authenticated if this point was reached */ ++ return 1; ++#else /* !USE_PAM */ + char *unencrypted, *encrypted, *correct; + #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP + /* Shadow passwd stuff for SVR3 and maybe other systems. */ +@@ -241,6 +324,7 @@ correct_password (const struct passwd *p + encrypted = crypt (unencrypted, correct); + memset (unencrypted, 0, strlen (unencrypted)); + return STREQ (encrypted, correct); ++#endif /* !USE_PAM */ + } + + /* Update `environ' for the new shell based on PW, with SHELL being +@@ -254,12 +338,18 @@ modify_environment (const struct passwd + /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH. + Unset all other environment variables. */ + char const *term = getenv ("TERM"); ++ char const *display = getenv ("DISPLAY"); ++ char const *xauthority = getenv ("XAUTHORITY"); + if (term) + term = xstrdup (term); + environ = xmalloc ((6 + !!term) * sizeof (char *)); + environ[0] = NULL; + if (term) + xsetenv ("TERM", term); ++ if (display) ++ xsetenv ("DISPLAY", display); ++ if (xauthority) ++ xsetenv ("XAUTHORITY", xauthority); + xsetenv ("HOME", pw->pw_dir); + xsetenv ("SHELL", shell); + xsetenv ("USER", pw->pw_name); +@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw + { + #ifdef HAVE_INITGROUPS + errno = 0; +- if (initgroups (pw->pw_name, pw->pw_gid) == -1) ++ if (initgroups (pw->pw_name, pw->pw_gid) == -1) { ++#ifdef USE_PAM ++ pam_close_session(pamh, 0); ++ pam_end(pamh, PAM_ABORT); ++#endif + error (EXIT_CANCELED, errno, _("cannot set groups")); ++ } + endgrent (); + #endif + if (setgid (pw->pw_gid)) +@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw + error (EXIT_CANCELED, errno, _("cannot set user id")); + } + ++#ifdef USE_PAM ++static int caught=0; ++/* Signal handler for parent process later */ ++static void su_catch_sig(int sig) ++{ ++ ++caught; ++} ++ ++int ++pam_copyenv (pam_handle_t *pamh) ++{ ++ char **env; ++ ++ env = pam_getenvlist(pamh); ++ if(env) { ++ while(*env) { ++ if (putenv (*env)) ++ xalloc_die (); ++ env++; ++ } ++ } ++ return(0); ++} ++#endif ++ + /* Run SHELL, or DEFAULT_SHELL if SHELL is empty. + If COMMAND is nonzero, pass it to the shell with the -c option. + Pass ADDITIONAL_ARGS to the shell as more arguments; there +@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw + + static void + run_shell (char const *shell, char const *command, char **additional_args, +- size_t n_additional_args) ++ size_t n_additional_args, const struct passwd *pw) + { + size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1; + char const **args = xnmalloc (n_args, sizeof *args); + size_t argno = 1; ++#ifdef USE_PAM ++ int child; ++ sigset_t ourset; ++ int status; ++ ++ retval = pam_open_session(pamh,0); ++ if (retval != PAM_SUCCESS) { ++ fprintf (stderr, "could not open session\n"); ++ exit (1); ++ } ++ ++/* do this at the last possible moment, because environment variables may ++ be passed even in the session phase ++*/ ++ if(pam_copyenv(pamh) != PAM_SUCCESS) ++ fprintf (stderr, "error copying PAM environment\n"); ++ ++ /* Credentials should be set in the parent */ ++ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) { ++ pam_close_session(pamh, 0); ++ fprintf(stderr, "could not set PAM credentials\n"); ++ exit(1); ++ } ++ ++ child = fork(); ++ if (child == 0) { /* child shell */ ++ change_identity (pw); ++ pam_end(pamh, 0); ++#endif + + if (simulate_login) + { + char *arg0; + char *shell_basename; + ++ if(chdir(pw->pw_dir)) ++ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++ + shell_basename = last_component (shell); + arg0 = xmalloc (strlen (shell_basename) + 2); + arg0[0] = '-'; +@@ -344,6 +496,67 @@ run_shell (char const *shell, char const + error (0, errno, "%s", shell); + exit (exit_status); + } ++#ifdef USE_PAM ++ } else if (child == -1) { ++ fprintf(stderr, "can not fork user shell: %s", strerror(errno)); ++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++ pam_close_session(pamh, 0); ++ pam_end(pamh, PAM_ABORT); ++ exit(1); ++ } ++ /* parent only */ ++ sigfillset(&ourset); ++ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) { ++ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME); ++ caught = 1; ++ } ++ if (!caught) { ++ struct sigaction action; ++ action.sa_handler = su_catch_sig; ++ sigemptyset(&action.sa_mask); ++ action.sa_flags = 0; ++ sigemptyset(&ourset); ++ if (sigaddset(&ourset, SIGTERM) ++ || sigaddset(&ourset, SIGALRM) ++ || sigaction(SIGTERM, &action, NULL) ++ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) { ++ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME); ++ caught = 1; ++ } ++ } ++ if (!caught) { ++ do { ++ int pid; ++ ++ pid = waitpid(-1, &status, WUNTRACED); ++ ++ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) { ++ kill(getpid(), WSTOPSIG(status)); ++ /* once we get here, we must have resumed */ ++ kill(pid, SIGCONT); ++ } ++ } while (0 != WIFSTOPPED(status)); ++ } ++ ++ if (caught) { ++ fprintf(stderr, "\nSession terminated, killing shell..."); ++ kill (child, SIGTERM); ++ } ++ /* Not checking retval on this because we need to call close session */ ++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++ retval = pam_close_session(pamh, 0); ++ PAM_BAIL_P_VOID; ++ retval = pam_end(pamh, PAM_SUCCESS); ++ PAM_BAIL_P_VOID; ++ if (caught) { ++ sleep(2); ++ kill(child, SIGKILL); ++ fprintf(stderr, " ...killed.\n"); ++ exit(-1); ++ } ++ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status) ++ : WTERMSIG (status) + 128); ++#endif /* USE_PAM */ + } + + /* Return true if SHELL is a restricted shell (one not returned by +@@ -511,9 +724,9 @@ main (int argc, char **argv) + shell = xstrdup (shell ? shell : pw->pw_shell); + modify_environment (pw, shell); + ++#ifndef USE_PAM + change_identity (pw); +- if (simulate_login && chdir (pw->pw_dir) != 0) +- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++#endif + + /* error() flushes stderr, but does not check for write failure. + Normally, we would catch this via our atexit() hook of +@@ -523,5 +736,5 @@ main (int argc, char **argv) + if (ferror (stderr)) + exit (EXIT_CANCELED); + +- run_shell (shell, command, argv + optind, MAX (0, argc - optind)); ++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw); + } diff --git a/testing/coreutils/coreutils-uname.patch b/testing/coreutils/coreutils-uname.patch new file mode 100644 index 000000000..b458abeba --- /dev/null +++ b/testing/coreutils/coreutils-uname.patch @@ -0,0 +1,173 @@ +On linux platforms, grok /proc/cpuinfo for the CPU/vendor info. + +Prob not suitable for upstream seeing as how it's 100% linux-specific +http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html + +Patch originally by Carlos E. Gorges , but +heavily reworked to suck less. + +To add support for additional platforms, check out the show_cpuinfo() +func in the linux/arch// source tree of the kernel. + +--- coreutils/src/uname.c ++++ coreutils/src/uname.c +@@ -50,6 +50,11 @@ + # include + #endif + ++#if defined(__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -138,6 +143,117 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++ /* finally collapse whitespace */ ++ tmp = buf; ++ while (tmp[0] && tmp[1]) { ++ if (isspace(tmp[0]) && isspace(tmp[1])) { ++ memmove(tmp, tmp+1, strlen(tmp)); ++ continue; ++ } ++ ++tmp; ++ } ++} ++ ++static int __linux_procinfo(int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(__avr32__) ++ "processor", "cpu family" ++ #elif defined(__bfin__) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -250,10 +344,14 @@ main (int argc, char **argv) + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -306,9 +404,13 @@ main (int argc, char **argv) + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/testing/coreutils/coreutils.install b/testing/coreutils/coreutils.install new file mode 100644 index 000000000..8caae6686 --- /dev/null +++ b/testing/coreutils/coreutils.install @@ -0,0 +1,21 @@ +infodir=usr/share/info +filelist=(coreutils.info) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + diff --git a/testing/coreutils/su.pam b/testing/coreutils/su.pam new file mode 100644 index 000000000..cf15f40f1 --- /dev/null +++ b/testing/coreutils/su.pam @@ -0,0 +1,9 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +# Uncomment the following line to implicitly trust users in the "wheel" group. +#auth sufficient pam_wheel.so trust use_uid +# Uncomment the following line to require a user to be in the "wheel" group. +#auth required pam_wheel.so use_uid +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so diff --git a/testing/cronie/PKGBUILD b/testing/cronie/PKGBUILD index 6ae8c0714..13b1ef8fa 100644 --- a/testing/cronie/PKGBUILD +++ b/testing/cronie/PKGBUILD @@ -3,7 +3,7 @@ pkgname='cronie' pkgver=1.4.7 -pkgrel=5 +pkgrel=6 pkgdesc='Daemon that runs specified programs at scheduled times and related tools' url='https://fedorahosted.org/cronie/' license=('custom:BSD') @@ -11,13 +11,18 @@ arch=('i686' 'x86_64') depends=('pam' 'bash' 'run-parts') source=("https://fedorahosted.org/releases/c/r/${pkgname}/${pkgname}-${pkgver}.tar.gz" + 'cron.deny' + 'crontab' 'pam.d' 'rc.d') sha1sums=('c6644ba0e58bcb14e0bb3f925e3e8cc3f0d47a7f' + '0f279b8fb820340267d578dc85511c980715f91e' + '4059bc4ccb75f08b0d4970940799e5d9722b339f' '6d8aef6880935b3dcc3e28481111d036544eeae5' 'c08c040ed5cb12bc4fd15639a5242d31ec247ef5') -backup=('etc/anacrontab' +backup=('etc/crontab' + 'etc/anacrontab' 'etc/conf.d/crond' 'etc/pam.d/crond' 'etc/cron.deny') @@ -52,11 +57,12 @@ package() { install -Dm755 ../rc.d "${pkgdir}"/etc/rc.d/crond install -Dm644 ../pam.d "${pkgdir}"/etc/pam.d/crond + install -Dm644 ../crontab "${pkgdir}"/etc/crontab + install -Dm644 ../cron.deny "${pkgdir}"/etc/cron.deny install -Dm644 crond.sysconfig "${pkgdir}"/etc/conf.d/crond install -Dm644 contrib/0hourly "${pkgdir}"/etc/cron.d/0hourly install -Dm755 contrib/0anacron "${pkgdir}"/etc/cron.hourly/0anacron install -Dm644 contrib/anacrontab "${pkgdir}"/etc/anacrontab - touch "${pkgdir}"/etc/cron.deny install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/cronie/COPYING } diff --git a/testing/cronie/cron.deny b/testing/cronie/cron.deny new file mode 100644 index 000000000..06e685cc8 --- /dev/null +++ b/testing/cronie/cron.deny @@ -0,0 +1 @@ +# without this file, only users listed in /etc/cron.allow can use crontab diff --git a/testing/cronie/crontab b/testing/cronie/crontab new file mode 100644 index 000000000..f2ce71030 --- /dev/null +++ b/testing/cronie/crontab @@ -0,0 +1 @@ +# without this file, crond disables inotify support at startup diff --git a/testing/gnome-control-center/PKGBUILD b/testing/gnome-control-center/PKGBUILD index 6b8d4b321..97f803ce8 100644 --- a/testing/gnome-control-center/PKGBUILD +++ b/testing/gnome-control-center/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 120752 2011-04-26 11:03:14Z heftig $ +# $Id: PKGBUILD 120905 2011-04-27 08:37:19Z ibiru $ # Maintainer: Jan de Groot pkgname=gnome-control-center -pkgver=3.0.1 +pkgver=3.0.1.1 pkgrel=1 pkgdesc="The Control Center for GNOME" arch=('i686' 'x86_64') -depends=('gtk3' 'gsettings-desktop-schemas' 'gconf' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop' 'cups-pk-helper' 'accountsservice') +depends=('gtk3' 'gsettings-desktop-schemas' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop' 'cups-pk-helper' 'accountsservice' 'sound-theme-freedesktop') optdepends=('mesa-demos: provides glxinfo for graphics information' 'apg: adds password generation for user accounts') makedepends=('gnome-doc-utils' 'intltool' 'networkmanager') @@ -16,7 +16,7 @@ install=gnome-control-center.install license=('GPL') options=('!libtool' '!emptydirs') source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2) -sha256sums=('90dde4b3db8b7a9c973f71e15601fd176ad6746cfef63c818fbdfd2254a8e99f') +sha256sums=('b191991d3932b363154e6cf2b5055bc711272065397daee2163b6fb04402ad79') build() { cd "${srcdir}/${pkgname}-${pkgver}" @@ -29,10 +29,6 @@ build() { package() { cd "${srcdir}/${pkgname}-${pkgver}" - make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install - - install -m755 -d "${pkgdir}/usr/share/gconf/schemas" - gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-control-center-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas - rm -f ${pkgdir}/etc/gconf/schemas/*.schemas + make DESTDIR="${pkgdir}" install } diff --git a/testing/gnome-control-center/gnome-control-center.install b/testing/gnome-control-center/gnome-control-center.install index 8f0bc46fb..eb703319f 100644 --- a/testing/gnome-control-center/gnome-control-center.install +++ b/testing/gnome-control-center/gnome-control-center.install @@ -1,18 +1,19 @@ pkgname=gnome-control-center post_install() { - usr/sbin/gconfpkg --install ${pkgname} - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor } pre_upgrade() { - pre_remove $1 + if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then + usr/sbin/gconfpkg --uninstall ${pkgname} + fi } -pre_remove() { - usr/sbin/gconfpkg --uninstall ${pkgname} +post_upgrade() { + post_install $1 } post_remove() { - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + post_install $1 } diff --git a/testing/libwebkit/PKGBUILD b/testing/libwebkit/PKGBUILD index e5a75d6af..1e32e8195 100644 --- a/testing/libwebkit/PKGBUILD +++ b/testing/libwebkit/PKGBUILD @@ -1,23 +1,25 @@ -# $Id: PKGBUILD 116332 2011-03-22 22:04:47Z ibiru $ +# $Id: PKGBUILD 121025 2011-04-27 21:44:28Z ibiru $ # Maintainer: Andreas Radke pkgbase=libwebkit pkgname=(libwebkit libwebkit3) -pkgver=1.3.13 +pkgver=1.4.0 pkgrel=1 pkgdesc="An opensource web content engine" arch=('i686' 'x86_64') url="http://webkitgtk.org/" license=('custom') -depends=('libxt' 'libxslt' 'sqlite3' 'icu>=4.6' 'gstreamer0.10-base' 'libsoup' 'enchant') +depends=('libxt' 'libxslt' 'sqlite3' 'icu' 'gstreamer0.10-base' 'libsoup' 'enchant') makedepends=('gperf' 'gtk-doc' 'gobject-introspection' 'python2' 'gtk2' 'gtk3') options=('!libtool') install=libwebkit.install -source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz) -md5sums=('984adaafac545a89c24351fd4dbd743c') +source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz gcc46.patch) +md5sums=('10c969db3b5484c71df1aa9a338377ff' + '970a2fa91b9827dff8e9b9edb4867701') build() { cd "${srcdir}/webkit-${pkgver}" + patch -Np1 -i "${srcdir}/gcc46.patch" mkdir build-gtk{2,3} ( cd build-gtk2 && _build --with-gtk=2.0 ) @@ -26,10 +28,9 @@ build() { _build() { PYTHON=/usr/bin/python2 ../configure --prefix=/usr \ - --enable-video --enable-introspection \ + --enable-introspection \ --with-font-backend=freetype --enable-gtk-doc \ - --enable-jit --with-unicode-backend=icu \ - --enable-3d-transforms --enable-mathml \ + --with-unicode-backend=icu \ --enable-spellcheck "$@" make all stamp-po } diff --git a/testing/libwebkit/gcc46.patch b/testing/libwebkit/gcc46.patch new file mode 100644 index 000000000..befd892d4 --- /dev/null +++ b/testing/libwebkit/gcc46.patch @@ -0,0 +1,11 @@ +Index: trunk/Source/WebCore/dom/make_names.pl +=================================================================== +--- trunk/Source/WebCore/dom/make_names.pl (revision 73989) ++++ trunk/Source/WebCore/dom/make_names.pl (revision 84123) +@@ -66,5 +66,5 @@ + $gccLocation = "/usr/bin/gcc"; + } +-my $preprocessor = $gccLocation . " -E -P -x c++"; ++my $preprocessor = $gccLocation . " -E -x c++"; + + GetOptions( diff --git a/testing/rasqal/PKGBUILD b/testing/rasqal/PKGBUILD index 6844bb6b5..b353c6437 100644 --- a/testing/rasqal/PKGBUILD +++ b/testing/rasqal/PKGBUILD @@ -1,25 +1,27 @@ -# $Id: PKGBUILD 110912 2011-02-23 06:19:55Z andyrtr $ +# $Id: PKGBUILD 120960 2011-04-27 19:27:24Z andrea $ # Maintainer: AndyRTR # Contributor: Lawrence Lee pkgname=rasqal -pkgver=0.9.25 +epoch=1 +pkgver=0.9.21 pkgrel=1 -pkgdesc="a free C library that handles Resource Description Framework (RDF) query syntaxes, query construction and query execution returning result bindings" +pkgdesc="A free C library that handles Resource Description Framework (RDF) query syntaxes, query construction and query execution returning result bindings" url="http://librdf.org/rasqal" license=('GPL' 'LGPL') arch=('i686' 'x86_64') -depends=('raptor>=2.0.0' 'mpfr') +depends=('raptor1' 'mpfr') options=('!libtool') +replaces=('rasqal-compat') +conflicts=('rasqal-compat') source=(http://download.librdf.org/source/${pkgname}-${pkgver}.tar.gz) -md5sums=('ee12d7ad59c581eb65db89c851672c0a') +md5sums=('55b67ec92a059ef8979d46486b00a032') build() { cd ${srcdir}/${pkgname}-${pkgver} ./configure --prefix=/usr \ --disable-static \ - --enable-release \ - --with-raptor=system + --enable-release make } diff --git a/testing/redland/PKGBUILD b/testing/redland/PKGBUILD index f2a25aaa0..1ae150d37 100644 --- a/testing/redland/PKGBUILD +++ b/testing/redland/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 110595 2011-02-20 10:39:16Z andyrtr $ +# $Id: PKGBUILD 120965 2011-04-27 19:29:40Z andrea $ # Maintainer: AndyRTR # Contributor: Francois Charette pkgbase=redland +epoch=1 pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite') -pkgver=1.0.13 +pkgver=1.0.12 pkgrel=1 url="http://librdf.org/" license=("GPL") arch=('i686' 'x86_64') -makedepends=('rasqal>=0.9.24' 'raptor>=2.0.0' 'db>=5.1' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3') +makedepends=('rasqal>=0.9.21' 'raptor1' 'db>=5.1' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3') options=('!libtool') source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz - rpath.diff) -md5sums=('96c15f36f842ad7e1c9d225e4ca97b68' + rpath.diff) +md5sums=('40f37a5ad97fdfbf984f78dcea0c6115' 'acc85e784f01a656bd56777f95880787') build() { @@ -33,9 +34,11 @@ build() { package_redland() { pkgdesc="Library that provides a high-level interface to RDF data" - depends=('rasqal>=0.9.24' 'raptor>=2.0.0' 'libtool') + depends=('rasqal>=0.9.21' 'raptor1' 'libtool') + replaces=('redland-compat' 'redland-compat-devel') + conflicts=('redland-compat' 'redland-compat-devel') - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgbase}-${pkgver} make DESTDIR=${pkgdir} install rm -rf ${pkgdir}/usr/lib/redland } @@ -44,7 +47,7 @@ package_redland-storage-mysql() { pkgdesc="MySQL storage support for Redland" depends=('redland' 'libmysqlclient') - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgbase}-${pkgver} install -dm755 ${pkgdir}/usr/lib/redland install -m755 src/.libs/librdf_storage_mysql.so ${pkgdir}/usr/lib/redland/librdf_storage_mysql.so } @@ -53,7 +56,7 @@ package_redland-storage-postgresql() { pkgdesc="PostgreSQL storage support for Redland" depends=('redland' 'postgresql-libs') - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgbase}-${pkgver} install -dm755 ${pkgdir}/usr/lib/redland install -m755 src/.libs/librdf_storage_postgresql.so ${pkgdir}/usr/lib/redland/ } @@ -62,7 +65,7 @@ package_redland-storage-virtuoso() { pkgdesc="Virtuoso storage support for Redland" depends=('redland' 'unixodbc' 'db') - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgbase}-${pkgver} install -dm755 ${pkgdir}/usr/lib/redland install -m755 src/.libs/librdf_storage_virtuoso.so ${pkgdir}/usr/lib/redland/ } @@ -71,7 +74,7 @@ package_redland-storage-sqlite() { pkgdesc="SQLite storage support for Redland" depends=('redland' 'sqlite3' 'db') - cd ${srcdir}/${pkgname}-${pkgver} + cd ${srcdir}/${pkgbase}-${pkgver} install -dm755 ${pkgdir}/usr/lib/redland install -m755 src/.libs/librdf_storage_sqlite.so ${pkgdir}/usr/lib/redland/ } diff --git a/testing/slv2/PKGBUILD b/testing/slv2/PKGBUILD index 300d19d08..c57af2dde 100644 --- a/testing/slv2/PKGBUILD +++ b/testing/slv2/PKGBUILD @@ -1,15 +1,15 @@ -# $Id: PKGBUILD 110735 2011-02-21 22:14:42Z schiv $ +# $Id: PKGBUILD 120979 2011-04-27 19:40:32Z andrea $ # Maintainer: Ray Rashif # Contributor: Leslie P. Polzer pkgname=slv2 pkgver=0.6.6 -pkgrel=3 +pkgrel=4 pkgdesc="Library for LV2 hosts" arch=('i686' 'x86_64') url="http://drobilla.net/software/slv2" license=('GPL') -depends=('redland>=1.0.13' 'lv2core' 'jack') +depends=('redland>=1.0.12' 'lv2core' 'jack') makedepends=('python2') install=$pkgname.install changelog=$pkgname.changelog diff --git a/testing/soprano/PKGBUILD b/testing/soprano/PKGBUILD index d5ebcdb44..80c4634ae 100644 --- a/testing/soprano/PKGBUILD +++ b/testing/soprano/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 120527 2011-04-24 17:41:42Z andyrtr $ +# $Id: PKGBUILD 120970 2011-04-27 19:34:01Z andrea $ # Maintainer: Andrea Scarpino # Contributor: Tobias Powalowski pkgname=soprano pkgver=2.6.0 -pkgrel=3 +pkgrel=4 pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data' arch=('i686' 'x86_64') url='http://soprano.sourceforge.net/' license=('GPL' 'LGPL') -depends=('qt' 'clucene' 'redland-compat' 'libiodbc' 'raptor1') -makedepends=('cmake' 'openjdk6' 'doxygen' 'redland-compat-devel>=>=1.0.12-3' 'rasqal-compat-devel>=>=0.9.21-2') +depends=('qt' 'clucene' 'redland-storage-virtuoso' 'libiodbc') +makedepends=('cmake' 'openjdk6' 'doxygen') source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2") md5sums=('03ae49e87c6ec99e57d0433c2650846f') -- cgit v1.2.3-54-g00ecf