diff options
Diffstat (limited to 'extra')
51 files changed, 258 insertions, 2752 deletions
diff --git a/extra/alpine/2.00-lpam.patch b/extra/alpine/2.00-lpam.patch deleted file mode 100644 index 69e66d7ef..000000000 --- a/extra/alpine/2.00-lpam.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- alpine-2.00.orig/alpine/Makefile.in -+++ alpine-2.00/alpine/Makefile.in -@@ -169,7 +169,7 @@ - LIBICONV = @LIBICONV@ - LIBINTL = @LIBINTL@ - LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ -+LIBS = @LIBS@ -lpam - LIBTOOL = @LIBTOOL@ - LN = @LN@ - LN_S = @LN_S@ - LTLIBICONV = @LTLIBICONV@ - LTLIBINTL = @LTLIBINTL@ diff --git a/extra/alpine/CVE-2008-5514.patch b/extra/alpine/CVE-2008-5514.patch deleted file mode 100644 index 594bea0b2..000000000 --- a/extra/alpine/CVE-2008-5514.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- alpine-2.00/imap/src/c-client/rfc822.c -+++ alpine-2.00/imap/src/c-client/rfc822.c -@@ -1351,6 +1351,7 @@ - - static long rfc822_output_char (RFC822BUFFER *buf,int c) - { -+ if ((buf->cur == buf->end) && !rfc822_output_flush (buf)) return NIL; - *buf->cur++ = c; /* add character, soutr buffer if full */ - return (buf->cur == buf->end) ? rfc822_output_flush (buf) : LONGT; - } -@@ -1374,7 +1375,8 @@ - len -= i; - } - /* soutr buffer now if full */ -- if (len && !rfc822_output_flush (buf)) return NIL; -+ if ((len || (buf->cur == buf->end)) && !rfc822_output_flush (buf)) -+ return NIL; - } - return LONGT; - } diff --git a/extra/alpine/PKGBUILD b/extra/alpine/PKGBUILD deleted file mode 100644 index e70e9a75a..000000000 --- a/extra/alpine/PKGBUILD +++ /dev/null @@ -1,44 +0,0 @@ -# $Id: PKGBUILD 121113 2011-04-29 02:56:31Z eric $ -# Maintainer: Eric Bélanger <eric@archlinux.org> - -pkgname=alpine -pkgver=2.00 -pkgrel=13 -_patchlevel=79 -pkgdesc="The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)" -arch=('i686' 'x86_64' 'mips64el') -url="http://www.washington.edu/alpine/" -license=('APACHE') -depends=('libldap' 'krb5' 'gettext') -optdepends=('aspell: for spell-checking support') -provides=('pine') -conflicts=('pine') -replaces=('pine') -options=('!makeflags') -source=(ftp://ftp.cac.washington.edu/${pkgname}/${pkgname}.tar.bz2 \ - http://staff.washington.edu/chappa/alpine/patches/alpine-${pkgver}/all_${_patchlevel}.patch.gz \ - 2.00-lpam.patch CVE-2008-5514.patch) -md5sums=('84e44cbf71ed674800a5d57eed9c1c52' - 'd7dffd121c9a1cac4c458c0ff71df1ce' - 'cd3911c16fc6a072e853c0ccfc35857c' - '1b52a54a656979116c09fb1d948a4325') -sha1sums=('dcbd3c5419954f484ccf706feaba31ce48cdebc4' - 'd3acbf0e46c50feb2e822ef3bdc0a0f43c007294' - '1b39525f91ebd5a9de5a1e04f5554f6fa5f58ae3' - 'bc61d76a237ff42b00b3f60f2e6fc5c45e261dbb') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - patch -p1 < ../all_${_patchlevel}.patch - patch -p1 < ../2.00-lpam.patch - patch -p1 < ../CVE-2008-5514.patch - ./configure --prefix=/usr --without-passfile --without-tcl \ - --disable-shared --with-system-pinerc=/etc/alpine.d/pine.conf \ - --with-system-fixed-pinerc=/etc/alpine.d/pine.conf.fixed - make -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install -} diff --git a/extra/anjuta-extras/PKGBUILD b/extra/anjuta-extras/PKGBUILD deleted file mode 100644 index 00431e08f..000000000 --- a/extra/anjuta-extras/PKGBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# $Id: PKGBUILD 105124 2011-01-06 17:19:56Z ibiru $ -# Mantainer: Jan de Groot <jgc@archlinux.org> - -pkgname=anjuta-extras -pkgver=2.32.1.1 -pkgrel=1 -pkgdesc="Anjuta Integrated Development Environment extra plugins" -arch=('i686' 'x86_64' 'mips64el') -license=('GPL') -depends=('anjuta>=2.32.0.0' 'libgnomecanvas>=2.30.2' 'graphviz>=2.26.3' 'valgrind') -makedepends=('intltool') -install=anjuta-extras.install -url="http://anjuta.sourceforge.net/" -source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2) -options=('!libtool' '!emptydirs') -sha256sums=('0461b78eaa11b7a930001024c4db2484863b35f5f52acaa23c568bc6355414a4') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static - make - 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 anjuta-extras ${pkgdir}/etc/gconf/schemas/*.schemas -} diff --git a/extra/anjuta-extras/anjuta-extras.install b/extra/anjuta-extras/anjuta-extras.install deleted file mode 100644 index 2c23edf15..000000000 --- a/extra/anjuta-extras/anjuta-extras.install +++ /dev/null @@ -1,17 +0,0 @@ -pkgname=anjuta - -post_install() { - usr/sbin/gconfpkg --install ${pkgname} -} - -pre_upgrade() { - pre_remove $1 -} - -post_upgrade() { - post_install $1 -} - -pre_remove() { - usr/sbin/gconfpkg --uninstall ${pkgname} -} diff --git a/extra/aufs2-util/PKGBUILD b/extra/aufs2-util/PKGBUILD deleted file mode 100644 index 7ae215d03..000000000 --- a/extra/aufs2-util/PKGBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# $Id: PKGBUILD 114820 2011-03-16 06:31:06Z tpowa $ -# Contributor: Paul Mattal <paul@mattal.com> -# Maintainer: Paul Mattal <pjmattal@elys.com> -pkgname=aufs2-util -pkgver=20110314 -pkgrel=1 -pkgdesc="Another Unionfs Implementation that supports NFS branches" -arch=('i686' 'x86_64' 'mips64el') -url="http://aufs.sourceforge.net/" -license=('GPL2') -depends=('glibc') -makedepends=('aufs2>=2.6.38_20110314' 'kernel26-headers') -replaces=('aufs-utils') -source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz") - -build() { - cd $srcdir/$pkgname-$pkgver - make -} - -package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install -} -md5sums=('bf0f9c86361e12a3181fb3891e57cd8d') diff --git a/extra/aufs2-util/create-tarball.sh b/extra/aufs2-util/create-tarball.sh deleted file mode 100755 index 361cbbc38..000000000 --- a/extra/aufs2-util/create-tarball.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -GITSNAPSHOT=20110314 -# aufs2 (no -xx) for the latest -rc version. -git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git aufs2-util.git -cd aufs2-util.git -#git checkout origin/aufs2${AUFS2VERSION} -git checkout origin/aufs2.1 -cd .. -rm -rf aufs2-util-${GITSNAPSHOT} -cp -a aufs2-util.git aufs2-util-${GITSNAPSHOT} -tar -czf aufs2-util-${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-util-${GITSNAPSHOT} diff --git a/extra/bitlbee/PKGBUILD b/extra/bitlbee/PKGBUILD index 9a43341f5..2fbdf9266 100644 --- a/extra/bitlbee/PKGBUILD +++ b/extra/bitlbee/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 127301 2011-06-12 14:10:02Z bisson $ +# $Id: PKGBUILD 127641 2011-06-17 11:09:38Z bisson $ # Contributor: FUBAR <mrfubar@gmail.com> # Contributor: simo <simo@archlinux.org> # Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org> @@ -7,7 +7,7 @@ pkgname=bitlbee pkgver=3.0.3 -pkgrel=1 +pkgrel=2 pkgdesc='Brings instant messaging (XMPP, MSN, Yahoo!, AIM, ICQ, Twitter) to IRC' arch=('i686' 'x86_64' 'mips64el') url='http://www.bitlbee.org/' @@ -31,9 +31,12 @@ build() { --etcdir=/etc/bitlbee \ --pidfile=/var/run/bitlbee/bitlbee.pid \ --ipcsocket=/var/run/bitlbee/bitlbee.sock \ + --systemdsystemunitdir=/lib/systemd/system \ + --ssl=openssl \ --strip=0 \ --otr=1 \ --ssl=gnutls + make } diff --git a/extra/bluez-hcidump/PKGBUILD b/extra/bluez-hcidump/PKGBUILD index 3604fffb9..95651cdbe 100644 --- a/extra/bluez-hcidump/PKGBUILD +++ b/extra/bluez-hcidump/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 108242 2011-01-30 15:00:57Z andrea $ +# $Id: PKGBUILD 127665 2011-06-17 17:18:51Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Geoffroy carrier <geoffroy@archlinux.org> # Contributor: Giovanni Scafora <giovanni@archlinux.org> pkgname=bluez-hcidump -pkgver=2.0 +pkgver=2.1 pkgrel=1 pkgdesc="Bluetooth HCI package analyzer" url="http://www.bluez.org/" arch=('i686' 'x86_64' 'mips64el') license=('GPL2') depends=('glibc' 'bluez') -source=(http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.gz) -md5sums=('5c2e3ef0a68b2845047867ba51ff8ac9') +source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.gz") +md5sums=('b160f0672276398344eebe9df1b37a2c') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/bochs/2.4.5-fetchcode.patch b/extra/bochs/2.4.5-fetchcode.patch deleted file mode 100644 index ef980a340..000000000 --- a/extra/bochs/2.4.5-fetchcode.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- cpu/fetchdecode.cc.orig 2010-04-16 15:52:44.000000000 -0400 -+++ cpu/fetchdecode.cc 2010-10-07 13:23:06.000000000 -0400 -@@ -1,5 +1,5 @@ - ///////////////////////////////////////////////////////////////////////// --// $Id: fetchdecode.cc,v 1.266 2010/04/16 19:52:44 sshwarts Exp $ -+// $Id: fetchdecode.cc,v 1.267 2010/04/29 21:04:23 sshwarts Exp $ - ///////////////////////////////////////////////////////////////////////// - // - // Copyright (C) 2001-2009 The Bochs Project -@@ -474,7 +474,7 @@ - /* 0F 0D /wr */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel - /* 0F 0E /wr */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS - #if BX_SUPPORT_3DNOW -- /* 0F 0F /wr */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo }, -+ /* 0F 0F /wr */ { BxImmediate_Ib, BX_IA_ERROR }, - #else - /* 0F 0F /wr */ { 0, BX_IA_ERROR }, - #endif -@@ -1025,7 +1025,7 @@ - /* 0F 0D /dr */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel - /* 0F 0E /dr */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS - #if BX_SUPPORT_3DNOW -- /* 0F 0F /dr */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo }, -+ /* 0F 0F /dr */ { BxImmediate_Ib, BX_IA_ERROR }, - #else - /* 0F 0F /dr */ { 0, BX_IA_ERROR }, - #endif -@@ -1583,7 +1583,7 @@ - /* 0F 0D /wm */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel - /* 0F 0E /wm */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS - #if BX_SUPPORT_3DNOW -- /* 0F 0F /wm */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo }, -+ /* 0F 0F /wm */ { BxImmediate_Ib, BX_IA_ERROR }, - #else - /* 0F 0F /wm */ { 0, BX_IA_ERROR }, - #endif -@@ -2134,7 +2134,7 @@ - /* 0F 0D /dm */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel - /* 0F 0E /dm */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS - #if BX_SUPPORT_3DNOW -- /* 0F 0F /dm */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo }, -+ /* 0F 0F /dm */ { BxImmediate_Ib, BX_IA_ERROR }, - #else - /* 0F 0F /dm */ { 0, BX_IA_ERROR }, - #endif diff --git a/extra/celestia/libpng14.patch b/extra/celestia/libpng14.patch deleted file mode 100644 index 1d47637b9..000000000 --- a/extra/celestia/libpng14.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur celestia-1.6.0.orig/src/celengine/image.cpp celestia-1.6.0/src/celengine/image.cpp ---- celestia-1.6.0.orig/src/celengine/image.cpp 2009-06-22 18:44:08.000000000 +0300 -+++ celestia-1.6.0/src/celengine/image.cpp 2010-01-18 23:27:55.000000000 +0200 -@@ -737,7 +737,7 @@ - - if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) - { -- png_set_gray_1_2_4_to_8(png_ptr); -+ png_set_expand_gray_1_2_4_to_8(png_ptr); - } - - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) diff --git a/extra/cfitsio/PKGBUILD b/extra/cfitsio/PKGBUILD index e15426633..5f1992744 100644 --- a/extra/cfitsio/PKGBUILD +++ b/extra/cfitsio/PKGBUILD @@ -1,27 +1,28 @@ -# $Id: PKGBUILD 117363 2011-03-31 21:07:25Z andrea $ +# $Id: PKGBUILD 127670 2011-06-17 17:20:53Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=cfitsio -pkgver=3.270 -_pkgver=3270 +pkgver=3.280 +_pkgver=3280 pkgrel=1 pkgdesc="A library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format" arch=('i686' 'x86_64' 'mips64el') url="http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html" license=('GPL2') +depends=('glibc') makedepends=('pkgconfig') options=('!libtool') source=("ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/${pkgname}${_pkgver}.tar.gz") -md5sums=('2a72b323de3f40ad1a671f2167500336') +md5sums=('fdb9c0f51678b47e78592c70fb5dc793') build() { - cd ${srcdir}/${pkgname} + cd "${srcdir}"/${pkgname} ./configure --prefix=/usr make shared } package() { - cd ${srcdir}/${pkgname} - make DESTDIR=${pkgdir} install + cd "${srcdir}"/${pkgname} + make DESTDIR="${pkgdir}" install } diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD index 76f44a6a8..4fcd1e8d9 100644 --- a/extra/cups/PKGBUILD +++ b/extra/cups/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 126330 2011-06-04 22:35:21Z andyrtr $ +# $Id: PKGBUILD 127716 2011-06-17 19:45:36Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgbase="cups" pkgname=('libcups' 'cups') pkgver=1.4.6 -pkgrel=3 -arch=('i686' 'x86_64' 'mips64el') +pkgrel=4 +arch=('i686' 'x86_64') license=('GPL') url="http://www.cups.org/" -makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3' - 'xinetd' 'gzip' 'autoconf' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme') +makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3' + 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme') source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2 cups-avahi.patch cups cups.logrotate cups.pam) #options=('!emptydirs') md5sums=('de8fb5a29c36554925c0c6a6e2c0dae1' '8ebd390197501ffd709f0ee546937fd5' - '5c85b7d8d2ddd02c2c64955cebbf55ea' + '9657daa21760bb0b5fa3d8b51d5e01a1' 'f861b18f4446c43918c8643dcbbd7f6d' '96f82c38f3f540b53f3e5144900acf17') @@ -32,14 +32,36 @@ build() { autoconf -I config-scripts ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --with-logdir=/var/log/cups -with-docdir=/usr/share/cups/doc \ - --with-cups-user=daemon --with-cups-group=lp --enable-pam=yes \ - --disable-ldap --libdir=/usr/lib --enable-raw-printing \ - --enable-dbus --with-dbusdir=/etc/dbus-1 --enable-ssl=yes --enable-gnutls --disable-threads --enable-avahi\ - --with-php=/usr/bin/php-cgi --with-pdftops=pdftops --with-optim="$CFLAGS" + --libdir=/usr/lib \ + --with-logdir=/var/log/cups \ + --with-docdir=/usr/share/cups/doc \ + --with-cups-user=daemon \ + --with-cups-group=lp \ + --enable-pam=yes \ + --disable-ldap \ + --enable-raw-printing \ + --enable-dbus --with-dbusdir=/etc/dbus-1 \ + --enable-ssl=yes --enable-gnutls \ + --disable-threads \ + --enable-avahi\ + --with-php=/usr/bin/php-cgi \ + --with-pdftops=pdftops \ + --with-optim="$CFLAGS" + + #reminder + #Restored support for GNU TLS and OpenSSL with threading enabled (STR #3605) in cups 1.5b1 + make } +check() { + cd "$srcdir/$pkgbase-$pkgver" + #httpAddrGetList(workstation64): FAIL + #1 TESTS FAILED! + #make[1]: *** [testhttp] Error 1 + make -k check || /bin/true +} + package_libcups() { pkgdesc="The CUPS Printing System - client libraries and headers" depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'krb5' 'avahi') @@ -66,12 +88,12 @@ backup=(etc/cups/cupsd.conf etc/logrotate.d/cups etc/pam.d/cups etc/xinetd.d/cups-lpd) -depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'xdg-utils' 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme') +depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme') optdepends=('php: for included phpcups.so module' 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images' 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly' 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly' - 'foomatic-db-nonfree: drivers use Ghostscript to convert PostScript to a printable form directly') + 'xdg-utils: xdg .desktop file support') cd ${srcdir}/${pkgbase}-${pkgver} make BUILDROOT=${pkgdir} install-data install-exec @@ -95,7 +117,9 @@ optdepends=('php: for included phpcups.so module' # install ssl directory where to store the certs, solves some samba issues install -dm700 -g lp ${pkgdir}/etc/cups/ssl - install -dm511 -g lp ${pkgdir}/var/run/cups/certs + # remove directory from package, we create it in cups rc.d file + rm -rf ${pkgdir}/var/run +# install -dm511 -g lp ${pkgdir}/var/run/cups/certs # install some more configuration files that will get filled by cupsd touch ${pkgdir}/etc/cups/printers.conf diff --git a/extra/cups/cups b/extra/cups/cups index 4afaf5a7c..744c8e663 100755 --- a/extra/cups/cups +++ b/extra/cups/cups @@ -1,38 +1,68 @@ #!/bin/bash +daemon_name=cupsd + . /etc/rc.conf . /etc/rc.d/functions +#. /etc/conf.d/$daemon_name.conf + +get_pid() { + pidof -o %PPID $daemon_name +} -PID=`pidof -o %PPID /usr/sbin/cupsd` case "$1" in start) - stat_busy "Starting CUPS Daemon" - [ -z "$PID" ] && /usr/sbin/cupsd - if [ $? -gt 0 ]; then - stat_fail + stat_busy "Starting $daemon_name daemon" + + PID=$(get_pid) + if [ -z "$PID" ]; then + [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid + # RUN + $daemon_name + # + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo $(get_pid) > /var/run/$daemon_name.pid + add_daemon $daemon_name + stat_done + fi else - echo $(pidof -o %PPID -x /usr/sbin/cupsd) > /var/run/cups.pid - add_daemon cups - stat_done + stat_fail + exit 1 fi ;; + stop) - stat_busy "Stopping CUPS Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null + stat_busy "Stopping $daemon_name daemon" + PID=$(get_pid) + # KILL + [ ! -z "$PID" ] && kill $PID &> /dev/null + # if [ $? -gt 0 ]; then stat_fail + exit 1 else - rm /var/run/cups.pid - rm_daemon cups + rm -f /var/run/$daemon_name.pid &> /dev/null + rm_daemon $daemon_name stat_done fi ;; + restart) $0 stop - sleep 1 + sleep 3 $0 start ;; + + status) + stat_busy "Checking $daemon_name status"; + ck_status $daemon_name + ;; + *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart|status}" esac + exit 0 diff --git a/extra/cups/cups.install b/extra/cups/cups.install index e92e17ed3..c4307912b 100644 --- a/extra/cups/cups.install +++ b/extra/cups/cups.install @@ -1,5 +1,7 @@ post_install() { - xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi echo ">> If you use an HTTPS connection to CUPS, the first time you access" echo ">> the interface it may take a very long time before the site comes up." echo ">> This is because the first request triggers the generation of the CUPS" @@ -7,9 +9,13 @@ post_install() { } post_upgrade() { - xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi } post_remove() { - xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor 2> /dev/null + fi } diff --git a/extra/dotconf/PKGBUILD b/extra/dotconf/PKGBUILD index f8c0b9061..c33a2d0e5 100644 --- a/extra/dotconf/PKGBUILD +++ b/extra/dotconf/PKGBUILD @@ -1,38 +1,28 @@ -# $Id$ +# $Id: PKGBUILD 127711 2011-06-17 18:24:49Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Chris Brannon <cmbrannon@cox.net> pkgname=dotconf pkgver=1.3 -pkgrel=1 +pkgrel=2 pkgdesc='A C library for parsing configuration files' -url="http://www.opentts.org/projects/dotconf/" -arch=('i686' 'x86_64' 'mips64el') +url="https://github.com/williamh/dotconf" +arch=('i686' 'x86_64') depends=('glibc') makedepends=('pkgconfig' 'findutils') license=('LGPL2.1') -source=("http://files.opentts.org/${pkgname}/${pkgname}-${pkgver}.tar.gz") -md5sums=('35c19ec9b96648f53e987e47e52dbc4c') +source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/williamh/${pkgname}/tarball/v${pkgver}") +md5sums=('36bfdde245072fc2f4f5766b7db97c45') options=('!libtool') build() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}"/williamh-${pkgname}-4cd7b3a + autoreconf -i ./configure --prefix=/usr make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}"/williamh-${pkgname}-4cd7b3a make DESTDIR="${pkgdir}" install - - # There are no manpages. Docu consists of textfiles and small examples. - # "make install" didn't install the docu, so do it manually. - install -d ${pkgdir}/usr/share/doc/${pkgname} - cp -a doc/*.txt README examples/ ${pkgdir}/usr/share/doc/${pkgname} - # Get rid of files specific to Microsoft products: - find ${pkgdir}/usr/share/doc/${pkgname} -name '*.dsp' | xargs rm -f - - # Dotconf uses libpool internally for memory management. No need to install. - rm -f ${pkgdir}/usr/lib/libpool.a - rm -f ${pkgdir}/usr/include/libpool.h } diff --git a/extra/fbida/ChangeLog b/extra/fbida/ChangeLog deleted file mode 100644 index 7e67308c0..000000000 --- a/extra/fbida/ChangeLog +++ /dev/null @@ -1,21 +0,0 @@ -2010-03-02 Eric Belanger <eric@archlinux.org> - - * fbida 2.07-5 - * Fixed exiftran (close FS#18302) - * Removed backup array - -2010-01-17 Eric Belanger <eric@archlinux.org> - - * fbida 2.07-4 - * Rebuilt for libpng 1.4 and libjpeg 8 - -2009-08-10 Eric Belanger <eric@archlinux.org> - - * fbida 2.07-3 - * Fixed compatibility problem with libjpeg 7 (close FS#15875) - -2009-07-01 Eric Belanger <eric@archlinux.org> - - * fbida 2.07-2 - * Rebuild against libjpeg 7 - * Added ChangeLog diff --git a/extra/fbida/PKGBUILD b/extra/fbida/PKGBUILD index 06f3d750b..b6081ed88 100644 --- a/extra/fbida/PKGBUILD +++ b/extra/fbida/PKGBUILD @@ -1,42 +1,27 @@ -# $Id: PKGBUILD 70970 2010-03-02 20:48:52Z eric $ -# Maintainer: Eric Belanger <eric@archlinux.org> -# Contributor: damir <damir@archlinux.org> +# $Id: PKGBUILD 127739 2011-06-18 00:11:19Z eric $ +# Maintainer: Eric Bélanger <eric@archlinux.org> pkgname=fbida -pkgver=2.07 -pkgrel=5 +pkgver=2.08 +pkgrel=1 pkgdesc="Few applications to display and elementary edit images: fbi, fbgs, ida, exiftran" -arch=('i686' 'x86_64' 'mips64el') -url="http://linux.bytesex.org/fbida/" +arch=('i686' 'x86_64') +url="http://www.kraxel.org/blog/linux/fbida/" license=('GPL2') -depends=('giflib' 'libtiff' 'libjpeg' 'libexif' 'lesstif' 'libxpm' 'libpng' 'libx11' 'libxext' 'fontconfig') +depends=('giflib' 'libtiff' 'libexif' 'lesstif' 'libpng' 'fontconfig') +makedepends=('libxpm') optdepends=('ghostscript: to use fbgs') -replaces=('fbi') -provides=('fbi') -source=(http://dl.bytesex.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz libpng-1.4.patch \ - transupp.h transupp.c jinclude.h) -md5sums=('3e05910fb7c1d9b2bd3e272d96db069c' '31b5a5318c16808d55403e06110ff5a5'\ - '785d928f4ff04e06bd2c8acc6b6c5e7b' 'f2d6f905c4ce6098f6c1af77a0a4eef8'\ - 'dbde79bc104a2caa9316cc2a9df7fd25') -sha1sums=('4758178299e09d5251b9cf20337a81cc20553d45' 'dcb39c82e7e6f4d7d6e8d0e95c661f83a2655c7f'\ - '5028318704fbc8f476f858d24b39cf454a16fe85' '0d9f58703d2eb4ce2d11f42a1ad01d958efe3312'\ - '31ab682733b096b3a98c0a35f9b54a7936e480d5') +source=(http://www.kraxel.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz) +md5sums=('9b3693ab26a58194e36b479bffb61ed0') +sha1sums=('597e0953c68112bf7c363b1ccaa94e72100b116a') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -p1 < ../libpng-1.4.patch || return 1 - -# Using source code from libjpeg 8a - rm jpeg/* - cp ${srcdir}/transupp.h jpeg/ - cp ${srcdir}/transupp.c jpeg/ - cp ${srcdir}/jinclude.h jpeg/ - - make Make.config || return 1 - for config in HAVE_LIB{SANE,CURL,LIRC}; do - sed -i "s/$config.*/$config := no/" Make.config || return 1 - done - make CC=gcc || return 1 - make DESTDIR="${pkgdir}" prefix=/usr install || return 1 + sed -i 's/ungif/gif/' GNUmakefile + make } +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" prefix=/usr install +} diff --git a/extra/fbida/jinclude.h b/extra/fbida/jinclude.h deleted file mode 100644 index 0a4f15146..000000000 --- a/extra/fbida/jinclude.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * jinclude.h - * - * Copyright (C) 1991-1994, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file exists to provide a single place to fix any problems with - * including the wrong system include files. (Common problems are taken - * care of by the standard jconfig symbols, but on really weird systems - * you may have to edit this file.) - * - * NOTE: this file is NOT intended to be included by applications using the - * JPEG library. Most applications need only include jpeglib.h. - */ - - -/* Include auto-config file to find out which system include files we need. */ - -#include "jconfig.h" /* auto configuration options */ -#define JCONFIG_INCLUDED /* so that jpeglib.h doesn't do it again */ - -/* - * We need the NULL macro and size_t typedef. - * On an ANSI-conforming system it is sufficient to include <stddef.h>. - * Otherwise, we get them from <stdlib.h> or <stdio.h>; we may have to - * pull in <sys/types.h> as well. - * Note that the core JPEG library does not require <stdio.h>; - * only the default error handler and data source/destination modules do. - * But we must pull it in because of the references to FILE in jpeglib.h. - * You can remove those references if you want to compile without <stdio.h>. - */ - -#ifdef HAVE_STDDEF_H -#include <stddef.h> -#endif - -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif - -#ifdef NEED_SYS_TYPES_H -#include <sys/types.h> -#endif - -#include <stdio.h> - -/* - * We need memory copying and zeroing functions, plus strncpy(). - * ANSI and System V implementations declare these in <string.h>. - * BSD doesn't have the mem() functions, but it does have bcopy()/bzero(). - * Some systems may declare memset and memcpy in <memory.h>. - * - * NOTE: we assume the size parameters to these functions are of type size_t. - * Change the casts in these macros if not! - */ - -#ifdef NEED_BSD_STRINGS - -#include <strings.h> -#define MEMZERO(target,size) bzero((void *)(target), (size_t)(size)) -#define MEMCOPY(dest,src,size) bcopy((const void *)(src), (void *)(dest), (size_t)(size)) - -#else /* not BSD, assume ANSI/SysV string lib */ - -#include <string.h> -#define MEMZERO(target,size) memset((void *)(target), 0, (size_t)(size)) -#define MEMCOPY(dest,src,size) memcpy((void *)(dest), (const void *)(src), (size_t)(size)) - -#endif - -/* - * In ANSI C, and indeed any rational implementation, size_t is also the - * type returned by sizeof(). However, it seems there are some irrational - * implementations out there, in which sizeof() returns an int even though - * size_t is defined as long or unsigned long. To ensure consistent results - * we always use this SIZEOF() macro in place of using sizeof() directly. - */ - -#define SIZEOF(object) ((size_t) sizeof(object)) - -/* - * The modules that use fread() and fwrite() always invoke them through - * these macros. On some systems you may need to twiddle the argument casts. - * CAUTION: argument order is different from underlying functions! - */ - -#define JFREAD(file,buf,sizeofbuf) \ - ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) -#define JFWRITE(file,buf,sizeofbuf) \ - ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) diff --git a/extra/fbida/libpng-1.4.patch b/extra/fbida/libpng-1.4.patch deleted file mode 100644 index f8a80d4b2..000000000 --- a/extra/fbida/libpng-1.4.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -Naur fbida-2.07-orig/rd/read-png.c fbida-2.07/rd/read-png.c ---- fbida-2.07-orig/rd/read-png.c 2010-01-18 00:02:02.000000000 -0500 -+++ fbida-2.07/rd/read-png.c 2010-01-18 00:06:09.000000000 -0500 -@@ -69,8 +69,11 @@ - if (h->color_type == PNG_COLOR_TYPE_PALETTE) - png_set_palette_to_rgb(h->png); - if (h->color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) -- png_set_gray_1_2_4_to_8(h->png); -- -+#if PNG_LIBPNG_VER < 10400 -+ png_set_gray_1_2_4_to_8(h->png); -+#else -+ png_set_expand_gray_1_2_4_to_8(h->png); -+#endif - if (png_get_bKGD(h->png, h->info, &file_bg)) { - png_set_background(h->png,file_bg,PNG_BACKGROUND_GAMMA_FILE,1,1.0); - } else { diff --git a/extra/fbida/transupp.c b/extra/fbida/transupp.c deleted file mode 100644 index 406054482..000000000 --- a/extra/fbida/transupp.c +++ /dev/null @@ -1,1583 +0,0 @@ -/* - * transupp.c - * - * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains image transformation routines and other utility code - * used by the jpegtran sample application. These are NOT part of the core - * JPEG library. But we keep these routines separate from jpegtran.c to - * ease the task of maintaining jpegtran-like programs that have other user - * interfaces. - */ - -/* Although this file really shouldn't have access to the library internals, - * it's helpful to let it call jround_up() and jcopy_block_row(). - */ -#define JPEG_INTERNALS - -#include "jinclude.h" -#include "jpeglib.h" -#include "transupp.h" /* My own external interface */ -#include <ctype.h> /* to declare isdigit() */ - - -#if TRANSFORMS_SUPPORTED - -/* - * Lossless image transformation routines. These routines work on DCT - * coefficient arrays and thus do not require any lossy decompression - * or recompression of the image. - * Thanks to Guido Vollbeding for the initial design and code of this feature, - * and to Ben Jackson for introducing the cropping feature. - * - * Horizontal flipping is done in-place, using a single top-to-bottom - * pass through the virtual source array. It will thus be much the - * fastest option for images larger than main memory. - * - * The other routines require a set of destination virtual arrays, so they - * need twice as much memory as jpegtran normally does. The destination - * arrays are always written in normal scan order (top to bottom) because - * the virtual array manager expects this. The source arrays will be scanned - * in the corresponding order, which means multiple passes through the source - * arrays for most of the transforms. That could result in much thrashing - * if the image is larger than main memory. - * - * If cropping or trimming is involved, the destination arrays may be smaller - * than the source arrays. Note it is not possible to do horizontal flip - * in-place when a nonzero Y crop offset is specified, since we'd have to move - * data from one block row to another but the virtual array manager doesn't - * guarantee we can touch more than one row at a time. So in that case, - * we have to use a separate destination array. - * - * Some notes about the operating environment of the individual transform - * routines: - * 1. Both the source and destination virtual arrays are allocated from the - * source JPEG object, and therefore should be manipulated by calling the - * source's memory manager. - * 2. The destination's component count should be used. It may be smaller - * than the source's when forcing to grayscale. - * 3. Likewise the destination's sampling factors should be used. When - * forcing to grayscale the destination's sampling factors will be all 1, - * and we may as well take that as the effective iMCU size. - * 4. When "trim" is in effect, the destination's dimensions will be the - * trimmed values but the source's will be untrimmed. - * 5. When "crop" is in effect, the destination's dimensions will be the - * cropped values but the source's will be uncropped. Each transform - * routine is responsible for picking up source data starting at the - * correct X and Y offset for the crop region. (The X and Y offsets - * passed to the transform routines are measured in iMCU blocks of the - * destination.) - * 6. All the routines assume that the source and destination buffers are - * padded out to a full iMCU boundary. This is true, although for the - * source buffer it is an undocumented property of jdcoefct.c. - */ - - -LOCAL(void) -do_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* Crop. This is only used when no rotate/flip is requested with the crop. */ -{ - JDIMENSION dst_blk_y, x_crop_blocks, y_crop_blocks; - int ci, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - jpeg_component_info *compptr; - - /* We simply have to copy the right amount of data (the destination's - * image size) starting at the given X and Y offsets in the source. - */ - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_y + y_crop_blocks, - (JDIMENSION) compptr->v_samp_factor, FALSE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - jcopy_block_row(src_buffer[offset_y] + x_crop_blocks, - dst_buffer[offset_y], - compptr->width_in_blocks); - } - } - } -} - - -LOCAL(void) -do_flip_h_no_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, - jvirt_barray_ptr *src_coef_arrays) -/* Horizontal flip; done in-place, so no separate dest array is required. - * NB: this only works when y_crop_offset is zero. - */ -{ - JDIMENSION MCU_cols, comp_width, blk_x, blk_y, x_crop_blocks; - int ci, k, offset_y; - JBLOCKARRAY buffer; - JCOEFPTR ptr1, ptr2; - JCOEF temp1, temp2; - jpeg_component_info *compptr; - - /* Horizontal mirroring of DCT blocks is accomplished by swapping - * pairs of blocks in-place. Within a DCT block, we perform horizontal - * mirroring by changing the signs of odd-numbered columns. - * Partial iMCUs at the right edge are left untouched. - */ - MCU_cols = srcinfo->output_width / - (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_width = MCU_cols * compptr->h_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - for (blk_y = 0; blk_y < compptr->height_in_blocks; - blk_y += compptr->v_samp_factor) { - buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - /* Do the mirroring */ - for (blk_x = 0; blk_x * 2 < comp_width; blk_x++) { - ptr1 = buffer[offset_y][blk_x]; - ptr2 = buffer[offset_y][comp_width - blk_x - 1]; - /* this unrolled loop doesn't need to know which row it's on... */ - for (k = 0; k < DCTSIZE2; k += 2) { - temp1 = *ptr1; /* swap even column */ - temp2 = *ptr2; - *ptr1++ = temp2; - *ptr2++ = temp1; - temp1 = *ptr1; /* swap odd column with sign change */ - temp2 = *ptr2; - *ptr1++ = -temp2; - *ptr2++ = -temp1; - } - } - if (x_crop_blocks > 0) { - /* Now left-justify the portion of the data to be kept. - * We can't use a single jcopy_block_row() call because that routine - * depends on memcpy(), whose behavior is unspecified for overlapping - * source and destination areas. Sigh. - */ - for (blk_x = 0; blk_x < compptr->width_in_blocks; blk_x++) { - jcopy_block_row(buffer[offset_y] + blk_x + x_crop_blocks, - buffer[offset_y] + blk_x, - (JDIMENSION) 1); - } - } - } - } - } -} - - -LOCAL(void) -do_flip_h (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* Horizontal flip in general cropping case */ -{ - JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, k, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JBLOCKROW src_row_ptr, dst_row_ptr; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - /* Here we must output into a separate array because we can't touch - * different rows of a single virtual array simultaneously. Otherwise, - * this is essentially the same as the routine above. - */ - MCU_cols = srcinfo->output_width / - (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_width = MCU_cols * compptr->h_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_y + y_crop_blocks, - (JDIMENSION) compptr->v_samp_factor, FALSE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - dst_row_ptr = dst_buffer[offset_y]; - src_row_ptr = src_buffer[offset_y]; - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Do the mirrorable blocks */ - dst_ptr = dst_row_ptr[dst_blk_x]; - src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; - /* this unrolled loop doesn't need to know which row it's on... */ - for (k = 0; k < DCTSIZE2; k += 2) { - *dst_ptr++ = *src_ptr++; /* copy even column */ - *dst_ptr++ = - *src_ptr++; /* copy odd column with sign change */ - } - } else { - /* Copy last partial block(s) verbatim */ - jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks, - dst_row_ptr + dst_blk_x, - (JDIMENSION) 1); - } - } - } - } - } -} - - -LOCAL(void) -do_flip_v (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* Vertical flip */ -{ - JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JBLOCKROW src_row_ptr, dst_row_ptr; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - /* We output into a separate array because we can't touch different - * rows of the source virtual array simultaneously. Otherwise, this - * is a pretty straightforward analog of horizontal flip. - * Within a DCT block, vertical mirroring is done by changing the signs - * of odd-numbered rows. - * Partial iMCUs at the bottom edge are copied verbatim. - */ - MCU_rows = srcinfo->output_height / - (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_height = MCU_rows * compptr->v_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - if (y_crop_blocks + dst_blk_y < comp_height) { - /* Row is within the mirrorable area. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - comp_height - y_crop_blocks - dst_blk_y - - (JDIMENSION) compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } else { - /* Bottom-edge blocks will be copied verbatim. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_y + y_crop_blocks, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - if (y_crop_blocks + dst_blk_y < comp_height) { - /* Row is within the mirrorable area. */ - dst_row_ptr = dst_buffer[offset_y]; - src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1]; - src_row_ptr += x_crop_blocks; - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; - dst_blk_x++) { - dst_ptr = dst_row_ptr[dst_blk_x]; - src_ptr = src_row_ptr[dst_blk_x]; - for (i = 0; i < DCTSIZE; i += 2) { - /* copy even row */ - for (j = 0; j < DCTSIZE; j++) - *dst_ptr++ = *src_ptr++; - /* copy odd row with sign change */ - for (j = 0; j < DCTSIZE; j++) - *dst_ptr++ = - *src_ptr++; - } - } - } else { - /* Just copy row verbatim. */ - jcopy_block_row(src_buffer[offset_y] + x_crop_blocks, - dst_buffer[offset_y], - compptr->width_in_blocks); - } - } - } - } -} - - -LOCAL(void) -do_transpose (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* Transpose source into destination */ -{ - JDIMENSION dst_blk_x, dst_blk_y, x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_x, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - /* Transposing pixels within a block just requires transposing the - * DCT coefficients. - * Partial iMCUs at the edges require no special treatment; we simply - * process all the available DCT blocks for every component. - */ - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; - dst_blk_x += compptr->h_samp_factor) { - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_x + x_crop_blocks, - (JDIMENSION) compptr->h_samp_factor, FALSE); - for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; - src_ptr = src_buffer[offset_x][dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - } - } - } - } - } -} - - -LOCAL(void) -do_rot_90 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* 90 degree rotation is equivalent to - * 1. Transposing the image; - * 2. Horizontal mirroring. - * These two steps are merged into a single processing routine. - */ -{ - JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_x, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - /* Because of the horizontal mirror step, we can't process partial iMCUs - * at the (output) right edge properly. They just get transposed and - * not mirrored. - */ - MCU_cols = srcinfo->output_height / - (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_width = MCU_cols * compptr->h_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; - dst_blk_x += compptr->h_samp_factor) { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Block is within the mirrorable area. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - comp_width - x_crop_blocks - dst_blk_x - - (JDIMENSION) compptr->h_samp_factor, - (JDIMENSION) compptr->h_samp_factor, FALSE); - } else { - /* Edge blocks are transposed but not mirrored. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_x + x_crop_blocks, - (JDIMENSION) compptr->h_samp_factor, FALSE); - } - for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Block is within the mirrorable area. */ - src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] - [dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - i++; - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - } - } else { - /* Edge blocks are transposed but not mirrored. */ - src_ptr = src_buffer[offset_x] - [dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - } - } - } - } - } - } -} - - -LOCAL(void) -do_rot_270 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* 270 degree rotation is equivalent to - * 1. Horizontal mirroring; - * 2. Transposing the image. - * These two steps are merged into a single processing routine. - */ -{ - JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_x, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - /* Because of the horizontal mirror step, we can't process partial iMCUs - * at the (output) bottom edge properly. They just get transposed and - * not mirrored. - */ - MCU_rows = srcinfo->output_width / - (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_height = MCU_rows * compptr->v_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; - dst_blk_x += compptr->h_samp_factor) { - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_x + x_crop_blocks, - (JDIMENSION) compptr->h_samp_factor, FALSE); - for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; - if (y_crop_blocks + dst_blk_y < comp_height) { - /* Block is within the mirrorable area. */ - src_ptr = src_buffer[offset_x] - [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < DCTSIZE; j++) { - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - j++; - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - } - } - } else { - /* Edge blocks are transposed but not mirrored. */ - src_ptr = src_buffer[offset_x] - [dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - } - } - } - } - } - } -} - - -LOCAL(void) -do_rot_180 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* 180 degree rotation is equivalent to - * 1. Vertical mirroring; - * 2. Horizontal mirroring. - * These two steps are merged into a single processing routine. - */ -{ - JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JBLOCKROW src_row_ptr, dst_row_ptr; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - MCU_cols = srcinfo->output_width / - (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); - MCU_rows = srcinfo->output_height / - (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_width = MCU_cols * compptr->h_samp_factor; - comp_height = MCU_rows * compptr->v_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - if (y_crop_blocks + dst_blk_y < comp_height) { - /* Row is within the vertically mirrorable area. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - comp_height - y_crop_blocks - dst_blk_y - - (JDIMENSION) compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } else { - /* Bottom-edge rows are only mirrored horizontally. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_y + y_crop_blocks, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - dst_row_ptr = dst_buffer[offset_y]; - if (y_crop_blocks + dst_blk_y < comp_height) { - /* Row is within the mirrorable area. */ - src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1]; - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { - dst_ptr = dst_row_ptr[dst_blk_x]; - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Process the blocks that can be mirrored both ways. */ - src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; - for (i = 0; i < DCTSIZE; i += 2) { - /* For even row, negate every odd column. */ - for (j = 0; j < DCTSIZE; j += 2) { - *dst_ptr++ = *src_ptr++; - *dst_ptr++ = - *src_ptr++; - } - /* For odd row, negate every even column. */ - for (j = 0; j < DCTSIZE; j += 2) { - *dst_ptr++ = - *src_ptr++; - *dst_ptr++ = *src_ptr++; - } - } - } else { - /* Any remaining right-edge blocks are only mirrored vertically. */ - src_ptr = src_row_ptr[x_crop_blocks + dst_blk_x]; - for (i = 0; i < DCTSIZE; i += 2) { - for (j = 0; j < DCTSIZE; j++) - *dst_ptr++ = *src_ptr++; - for (j = 0; j < DCTSIZE; j++) - *dst_ptr++ = - *src_ptr++; - } - } - } - } else { - /* Remaining rows are just mirrored horizontally. */ - src_row_ptr = src_buffer[offset_y]; - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Process the blocks that can be mirrored. */ - dst_ptr = dst_row_ptr[dst_blk_x]; - src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; - for (i = 0; i < DCTSIZE2; i += 2) { - *dst_ptr++ = *src_ptr++; - *dst_ptr++ = - *src_ptr++; - } - } else { - /* Any remaining right-edge blocks are only copied. */ - jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks, - dst_row_ptr + dst_blk_x, - (JDIMENSION) 1); - } - } - } - } - } - } -} - - -LOCAL(void) -do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, - jvirt_barray_ptr *src_coef_arrays, - jvirt_barray_ptr *dst_coef_arrays) -/* Transverse transpose is equivalent to - * 1. 180 degree rotation; - * 2. Transposition; - * or - * 1. Horizontal mirroring; - * 2. Transposition; - * 3. Horizontal mirroring. - * These steps are merged into a single processing routine. - */ -{ - JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y; - JDIMENSION x_crop_blocks, y_crop_blocks; - int ci, i, j, offset_x, offset_y; - JBLOCKARRAY src_buffer, dst_buffer; - JCOEFPTR src_ptr, dst_ptr; - jpeg_component_info *compptr; - - MCU_cols = srcinfo->output_height / - (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size); - MCU_rows = srcinfo->output_width / - (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size); - - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - comp_width = MCU_cols * compptr->h_samp_factor; - comp_height = MCU_rows * compptr->v_samp_factor; - x_crop_blocks = x_crop_offset * compptr->h_samp_factor; - y_crop_blocks = y_crop_offset * compptr->v_samp_factor; - for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; - dst_blk_y += compptr->v_samp_factor) { - dst_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, - (JDIMENSION) compptr->v_samp_factor, TRUE); - for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { - for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; - dst_blk_x += compptr->h_samp_factor) { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Block is within the mirrorable area. */ - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - comp_width - x_crop_blocks - dst_blk_x - - (JDIMENSION) compptr->h_samp_factor, - (JDIMENSION) compptr->h_samp_factor, FALSE); - } else { - src_buffer = (*srcinfo->mem->access_virt_barray) - ((j_common_ptr) srcinfo, src_coef_arrays[ci], - dst_blk_x + x_crop_blocks, - (JDIMENSION) compptr->h_samp_factor, FALSE); - } - for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; - if (y_crop_blocks + dst_blk_y < comp_height) { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Block is within the mirrorable area. */ - src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] - [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < DCTSIZE; j++) { - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - j++; - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - } - i++; - for (j = 0; j < DCTSIZE; j++) { - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - j++; - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - } - } - } else { - /* Right-edge blocks are mirrored in y only */ - src_ptr = src_buffer[offset_x] - [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < DCTSIZE; j++) { - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - j++; - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - } - } - } - } else { - if (x_crop_blocks + dst_blk_x < comp_width) { - /* Bottom-edge blocks are mirrored in x only */ - src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] - [dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - i++; - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j]; - } - } else { - /* At lower right corner, just transpose, no mirroring */ - src_ptr = src_buffer[offset_x] - [dst_blk_y + offset_y + y_crop_blocks]; - for (i = 0; i < DCTSIZE; i++) - for (j = 0; j < DCTSIZE; j++) - dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; - } - } - } - } - } - } - } -} - - -/* Parse an unsigned integer: subroutine for jtransform_parse_crop_spec. - * Returns TRUE if valid integer found, FALSE if not. - * *strptr is advanced over the digit string, and *result is set to its value. - */ - -LOCAL(boolean) -jt_read_integer (const char ** strptr, JDIMENSION * result) -{ - const char * ptr = *strptr; - JDIMENSION val = 0; - - for (; isdigit(*ptr); ptr++) { - val = val * 10 + (JDIMENSION) (*ptr - '0'); - } - *result = val; - if (ptr == *strptr) - return FALSE; /* oops, no digits */ - *strptr = ptr; - return TRUE; -} - - -/* Parse a crop specification (written in X11 geometry style). - * The routine returns TRUE if the spec string is valid, FALSE if not. - * - * The crop spec string should have the format - * <width>x<height>{+-}<xoffset>{+-}<yoffset> - * where width, height, xoffset, and yoffset are unsigned integers. - * Each of the elements can be omitted to indicate a default value. - * (A weakness of this style is that it is not possible to omit xoffset - * while specifying yoffset, since they look alike.) - * - * This code is loosely based on XParseGeometry from the X11 distribution. - */ - -GLOBAL(boolean) -jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec) -{ - info->crop = FALSE; - info->crop_width_set = JCROP_UNSET; - info->crop_height_set = JCROP_UNSET; - info->crop_xoffset_set = JCROP_UNSET; - info->crop_yoffset_set = JCROP_UNSET; - - if (isdigit(*spec)) { - /* fetch width */ - if (! jt_read_integer(&spec, &info->crop_width)) - return FALSE; - info->crop_width_set = JCROP_POS; - } - if (*spec == 'x' || *spec == 'X') { - /* fetch height */ - spec++; - if (! jt_read_integer(&spec, &info->crop_height)) - return FALSE; - info->crop_height_set = JCROP_POS; - } - if (*spec == '+' || *spec == '-') { - /* fetch xoffset */ - info->crop_xoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS; - spec++; - if (! jt_read_integer(&spec, &info->crop_xoffset)) - return FALSE; - } - if (*spec == '+' || *spec == '-') { - /* fetch yoffset */ - info->crop_yoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS; - spec++; - if (! jt_read_integer(&spec, &info->crop_yoffset)) - return FALSE; - } - /* We had better have gotten to the end of the string. */ - if (*spec != '\0') - return FALSE; - info->crop = TRUE; - return TRUE; -} - - -/* Trim off any partial iMCUs on the indicated destination edge */ - -LOCAL(void) -trim_right_edge (jpeg_transform_info *info, JDIMENSION full_width) -{ - JDIMENSION MCU_cols; - - MCU_cols = info->output_width / info->iMCU_sample_width; - if (MCU_cols > 0 && info->x_crop_offset + MCU_cols == - full_width / info->iMCU_sample_width) - info->output_width = MCU_cols * info->iMCU_sample_width; -} - -LOCAL(void) -trim_bottom_edge (jpeg_transform_info *info, JDIMENSION full_height) -{ - JDIMENSION MCU_rows; - - MCU_rows = info->output_height / info->iMCU_sample_height; - if (MCU_rows > 0 && info->y_crop_offset + MCU_rows == - full_height / info->iMCU_sample_height) - info->output_height = MCU_rows * info->iMCU_sample_height; -} - - -/* Request any required workspace. - * - * This routine figures out the size that the output image will be - * (which implies that all the transform parameters must be set before - * it is called). - * - * We allocate the workspace virtual arrays from the source decompression - * object, so that all the arrays (both the original data and the workspace) - * will be taken into account while making memory management decisions. - * Hence, this routine must be called after jpeg_read_header (which reads - * the image dimensions) and before jpeg_read_coefficients (which realizes - * the source's virtual arrays). - * - * This function returns FALSE right away if -perfect is given - * and transformation is not perfect. Otherwise returns TRUE. - */ - -GLOBAL(boolean) -jtransform_request_workspace (j_decompress_ptr srcinfo, - jpeg_transform_info *info) -{ - jvirt_barray_ptr *coef_arrays; - boolean need_workspace, transpose_it; - jpeg_component_info *compptr; - JDIMENSION xoffset, yoffset; - JDIMENSION width_in_iMCUs, height_in_iMCUs; - JDIMENSION width_in_blocks, height_in_blocks; - int ci, h_samp_factor, v_samp_factor; - - /* Determine number of components in output image */ - if (info->force_grayscale && - srcinfo->jpeg_color_space == JCS_YCbCr && - srcinfo->num_components == 3) - /* We'll only process the first component */ - info->num_components = 1; - else - /* Process all the components */ - info->num_components = srcinfo->num_components; - - /* Compute output image dimensions and related values. */ - jpeg_core_output_dimensions(srcinfo); - - /* Return right away if -perfect is given and transformation is not perfect. - */ - if (info->perfect) { - if (info->num_components == 1) { - if (!jtransform_perfect_transform(srcinfo->output_width, - srcinfo->output_height, - srcinfo->min_DCT_h_scaled_size, - srcinfo->min_DCT_v_scaled_size, - info->transform)) - return FALSE; - } else { - if (!jtransform_perfect_transform(srcinfo->output_width, - srcinfo->output_height, - srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size, - srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size, - info->transform)) - return FALSE; - } - } - - /* If there is only one output component, force the iMCU size to be 1; - * else use the source iMCU size. (This allows us to do the right thing - * when reducing color to grayscale, and also provides a handy way of - * cleaning up "funny" grayscale images whose sampling factors are not 1x1.) - */ - switch (info->transform) { - case JXFORM_TRANSPOSE: - case JXFORM_TRANSVERSE: - case JXFORM_ROT_90: - case JXFORM_ROT_270: - info->output_width = srcinfo->output_height; - info->output_height = srcinfo->output_width; - if (info->num_components == 1) { - info->iMCU_sample_width = srcinfo->min_DCT_v_scaled_size; - info->iMCU_sample_height = srcinfo->min_DCT_h_scaled_size; - } else { - info->iMCU_sample_width = - srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size; - info->iMCU_sample_height = - srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size; - } - break; - default: - info->output_width = srcinfo->output_width; - info->output_height = srcinfo->output_height; - if (info->num_components == 1) { - info->iMCU_sample_width = srcinfo->min_DCT_h_scaled_size; - info->iMCU_sample_height = srcinfo->min_DCT_v_scaled_size; - } else { - info->iMCU_sample_width = - srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size; - info->iMCU_sample_height = - srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size; - } - break; - } - - /* If cropping has been requested, compute the crop area's position and - * dimensions, ensuring that its upper left corner falls at an iMCU boundary. - */ - if (info->crop) { - /* Insert default values for unset crop parameters */ - if (info->crop_xoffset_set == JCROP_UNSET) - info->crop_xoffset = 0; /* default to +0 */ - if (info->crop_yoffset_set == JCROP_UNSET) - info->crop_yoffset = 0; /* default to +0 */ - if (info->crop_xoffset >= info->output_width || - info->crop_yoffset >= info->output_height) - ERREXIT(srcinfo, JERR_BAD_CROP_SPEC); - if (info->crop_width_set == JCROP_UNSET) - info->crop_width = info->output_width - info->crop_xoffset; - if (info->crop_height_set == JCROP_UNSET) - info->crop_height = info->output_height - info->crop_yoffset; - /* Ensure parameters are valid */ - if (info->crop_width <= 0 || info->crop_width > info->output_width || - info->crop_height <= 0 || info->crop_height > info->output_height || - info->crop_xoffset > info->output_width - info->crop_width || - info->crop_yoffset > info->output_height - info->crop_height) - ERREXIT(srcinfo, JERR_BAD_CROP_SPEC); - /* Convert negative crop offsets into regular offsets */ - if (info->crop_xoffset_set == JCROP_NEG) - xoffset = info->output_width - info->crop_width - info->crop_xoffset; - else - xoffset = info->crop_xoffset; - if (info->crop_yoffset_set == JCROP_NEG) - yoffset = info->output_height - info->crop_height - info->crop_yoffset; - else - yoffset = info->crop_yoffset; - /* Now adjust so that upper left corner falls at an iMCU boundary */ - info->output_width = - info->crop_width + (xoffset % info->iMCU_sample_width); - info->output_height = - info->crop_height + (yoffset % info->iMCU_sample_height); - /* Save x/y offsets measured in iMCUs */ - info->x_crop_offset = xoffset / info->iMCU_sample_width; - info->y_crop_offset = yoffset / info->iMCU_sample_height; - } else { - info->x_crop_offset = 0; - info->y_crop_offset = 0; - } - - /* Figure out whether we need workspace arrays, - * and if so whether they are transposed relative to the source. - */ - need_workspace = FALSE; - transpose_it = FALSE; - switch (info->transform) { - case JXFORM_NONE: - if (info->x_crop_offset != 0 || info->y_crop_offset != 0) - need_workspace = TRUE; - /* No workspace needed if neither cropping nor transforming */ - break; - case JXFORM_FLIP_H: - if (info->trim) - trim_right_edge(info, srcinfo->output_width); - if (info->y_crop_offset != 0) - need_workspace = TRUE; - /* do_flip_h_no_crop doesn't need a workspace array */ - break; - case JXFORM_FLIP_V: - if (info->trim) - trim_bottom_edge(info, srcinfo->output_height); - /* Need workspace arrays having same dimensions as source image. */ - need_workspace = TRUE; - break; - case JXFORM_TRANSPOSE: - /* transpose does NOT have to trim anything */ - /* Need workspace arrays having transposed dimensions. */ - need_workspace = TRUE; - transpose_it = TRUE; - break; - case JXFORM_TRANSVERSE: - if (info->trim) { - trim_right_edge(info, srcinfo->output_height); - trim_bottom_edge(info, srcinfo->output_width); - } - /* Need workspace arrays having transposed dimensions. */ - need_workspace = TRUE; - transpose_it = TRUE; - break; - case JXFORM_ROT_90: - if (info->trim) - trim_right_edge(info, srcinfo->output_height); - /* Need workspace arrays having transposed dimensions. */ - need_workspace = TRUE; - transpose_it = TRUE; - break; - case JXFORM_ROT_180: - if (info->trim) { - trim_right_edge(info, srcinfo->output_width); - trim_bottom_edge(info, srcinfo->output_height); - } - /* Need workspace arrays having same dimensions as source image. */ - need_workspace = TRUE; - break; - case JXFORM_ROT_270: - if (info->trim) - trim_bottom_edge(info, srcinfo->output_width); - /* Need workspace arrays having transposed dimensions. */ - need_workspace = TRUE; - transpose_it = TRUE; - break; - } - - /* Allocate workspace if needed. - * Note that we allocate arrays padded out to the next iMCU boundary, - * so that transform routines need not worry about missing edge blocks. - */ - if (need_workspace) { - coef_arrays = (jvirt_barray_ptr *) - (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE, - SIZEOF(jvirt_barray_ptr) * info->num_components); - width_in_iMCUs = (JDIMENSION) - jdiv_round_up((long) info->output_width, - (long) info->iMCU_sample_width); - height_in_iMCUs = (JDIMENSION) - jdiv_round_up((long) info->output_height, - (long) info->iMCU_sample_height); - for (ci = 0; ci < info->num_components; ci++) { - compptr = srcinfo->comp_info + ci; - if (info->num_components == 1) { - /* we're going to force samp factors to 1x1 in this case */ - h_samp_factor = v_samp_factor = 1; - } else if (transpose_it) { - h_samp_factor = compptr->v_samp_factor; - v_samp_factor = compptr->h_samp_factor; - } else { - h_samp_factor = compptr->h_samp_factor; - v_samp_factor = compptr->v_samp_factor; - } - width_in_blocks = width_in_iMCUs * h_samp_factor; - height_in_blocks = height_in_iMCUs * v_samp_factor; - coef_arrays[ci] = (*srcinfo->mem->request_virt_barray) - ((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE, - width_in_blocks, height_in_blocks, (JDIMENSION) v_samp_factor); - } - info->workspace_coef_arrays = coef_arrays; - } else - info->workspace_coef_arrays = NULL; - - return TRUE; -} - - -/* Transpose destination image parameters */ - -LOCAL(void) -transpose_critical_parameters (j_compress_ptr dstinfo) -{ - int tblno, i, j, ci, itemp; - jpeg_component_info *compptr; - JQUANT_TBL *qtblptr; - JDIMENSION jtemp; - UINT16 qtemp; - - /* Transpose image dimensions */ - jtemp = dstinfo->image_width; - dstinfo->image_width = dstinfo->image_height; - dstinfo->image_height = jtemp; - itemp = dstinfo->min_DCT_h_scaled_size; - dstinfo->min_DCT_h_scaled_size = dstinfo->min_DCT_v_scaled_size; - dstinfo->min_DCT_v_scaled_size = itemp; - - /* Transpose sampling factors */ - for (ci = 0; ci < dstinfo->num_components; ci++) { - compptr = dstinfo->comp_info + ci; - itemp = compptr->h_samp_factor; - compptr->h_samp_factor = compptr->v_samp_factor; - compptr->v_samp_factor = itemp; - } - - /* Transpose quantization tables */ - for (tblno = 0; tblno < NUM_QUANT_TBLS; tblno++) { - qtblptr = dstinfo->quant_tbl_ptrs[tblno]; - if (qtblptr != NULL) { - for (i = 0; i < DCTSIZE; i++) { - for (j = 0; j < i; j++) { - qtemp = qtblptr->quantval[i*DCTSIZE+j]; - qtblptr->quantval[i*DCTSIZE+j] = qtblptr->quantval[j*DCTSIZE+i]; - qtblptr->quantval[j*DCTSIZE+i] = qtemp; - } - } - } - } -} - - -/* Adjust Exif image parameters. - * - * We try to adjust the Tags ExifImageWidth and ExifImageHeight if possible. - */ - -LOCAL(void) -adjust_exif_parameters (JOCTET FAR * data, unsigned int length, - JDIMENSION new_width, JDIMENSION new_height) -{ - boolean is_motorola; /* Flag for byte order */ - unsigned int number_of_tags, tagnum; - unsigned int firstoffset, offset; - JDIMENSION new_value; - - if (length < 12) return; /* Length of an IFD entry */ - - /* Discover byte order */ - if (GETJOCTET(data[0]) == 0x49 && GETJOCTET(data[1]) == 0x49) - is_motorola = FALSE; - else if (GETJOCTET(data[0]) == 0x4D && GETJOCTET(data[1]) == 0x4D) - is_motorola = TRUE; - else - return; - - /* Check Tag Mark */ - if (is_motorola) { - if (GETJOCTET(data[2]) != 0) return; - if (GETJOCTET(data[3]) != 0x2A) return; - } else { - if (GETJOCTET(data[3]) != 0) return; - if (GETJOCTET(data[2]) != 0x2A) return; - } - - /* Get first IFD offset (offset to IFD0) */ - if (is_motorola) { - if (GETJOCTET(data[4]) != 0) return; - if (GETJOCTET(data[5]) != 0) return; - firstoffset = GETJOCTET(data[6]); - firstoffset <<= 8; - firstoffset += GETJOCTET(data[7]); - } else { - if (GETJOCTET(data[7]) != 0) return; - if (GETJOCTET(data[6]) != 0) return; - firstoffset = GETJOCTET(data[5]); - firstoffset <<= 8; - firstoffset += GETJOCTET(data[4]); - } - if (firstoffset > length - 2) return; /* check end of data segment */ - - /* Get the number of directory entries contained in this IFD */ - if (is_motorola) { - number_of_tags = GETJOCTET(data[firstoffset]); - number_of_tags <<= 8; - number_of_tags += GETJOCTET(data[firstoffset+1]); - } else { - number_of_tags = GETJOCTET(data[firstoffset+1]); - number_of_tags <<= 8; - number_of_tags += GETJOCTET(data[firstoffset]); - } - if (number_of_tags == 0) return; - firstoffset += 2; - - /* Search for ExifSubIFD offset Tag in IFD0 */ - for (;;) { - if (firstoffset > length - 12) return; /* check end of data segment */ - /* Get Tag number */ - if (is_motorola) { - tagnum = GETJOCTET(data[firstoffset]); - tagnum <<= 8; - tagnum += GETJOCTET(data[firstoffset+1]); - } else { - tagnum = GETJOCTET(data[firstoffset+1]); - tagnum <<= 8; - tagnum += GETJOCTET(data[firstoffset]); - } - if (tagnum == 0x8769) break; /* found ExifSubIFD offset Tag */ - if (--number_of_tags == 0) return; - firstoffset += 12; - } - - /* Get the ExifSubIFD offset */ - if (is_motorola) { - if (GETJOCTET(data[firstoffset+8]) != 0) return; - if (GETJOCTET(data[firstoffset+9]) != 0) return; - offset = GETJOCTET(data[firstoffset+10]); - offset <<= 8; - offset += GETJOCTET(data[firstoffset+11]); - } else { - if (GETJOCTET(data[firstoffset+11]) != 0) return; - if (GETJOCTET(data[firstoffset+10]) != 0) return; - offset = GETJOCTET(data[firstoffset+9]); - offset <<= 8; - offset += GETJOCTET(data[firstoffset+8]); - } - if (offset > length - 2) return; /* check end of data segment */ - - /* Get the number of directory entries contained in this SubIFD */ - if (is_motorola) { - number_of_tags = GETJOCTET(data[offset]); - number_of_tags <<= 8; - number_of_tags += GETJOCTET(data[offset+1]); - } else { - number_of_tags = GETJOCTET(data[offset+1]); - number_of_tags <<= 8; - number_of_tags += GETJOCTET(data[offset]); - } - if (number_of_tags < 2) return; - offset += 2; - - /* Search for ExifImageWidth and ExifImageHeight Tags in this SubIFD */ - do { - if (offset > length - 12) return; /* check end of data segment */ - /* Get Tag number */ - if (is_motorola) { - tagnum = GETJOCTET(data[offset]); - tagnum <<= 8; - tagnum += GETJOCTET(data[offset+1]); - } else { - tagnum = GETJOCTET(data[offset+1]); - tagnum <<= 8; - tagnum += GETJOCTET(data[offset]); - } - if (tagnum == 0xA002 || tagnum == 0xA003) { - if (tagnum == 0xA002) - new_value = new_width; /* ExifImageWidth Tag */ - else - new_value = new_height; /* ExifImageHeight Tag */ - if (is_motorola) { - data[offset+2] = 0; /* Format = unsigned long (4 octets) */ - data[offset+3] = 4; - data[offset+4] = 0; /* Number Of Components = 1 */ - data[offset+5] = 0; - data[offset+6] = 0; - data[offset+7] = 1; - data[offset+8] = 0; - data[offset+9] = 0; - data[offset+10] = (JOCTET)((new_value >> 8) & 0xFF); - data[offset+11] = (JOCTET)(new_value & 0xFF); - } else { - data[offset+2] = 4; /* Format = unsigned long (4 octets) */ - data[offset+3] = 0; - data[offset+4] = 1; /* Number Of Components = 1 */ - data[offset+5] = 0; - data[offset+6] = 0; - data[offset+7] = 0; - data[offset+8] = (JOCTET)(new_value & 0xFF); - data[offset+9] = (JOCTET)((new_value >> 8) & 0xFF); - data[offset+10] = 0; - data[offset+11] = 0; - } - } - offset += 12; - } while (--number_of_tags); -} - - -/* Adjust output image parameters as needed. - * - * This must be called after jpeg_copy_critical_parameters() - * and before jpeg_write_coefficients(). - * - * The return value is the set of virtual coefficient arrays to be written - * (either the ones allocated by jtransform_request_workspace, or the - * original source data arrays). The caller will need to pass this value - * to jpeg_write_coefficients(). - */ - -GLOBAL(jvirt_barray_ptr *) -jtransform_adjust_parameters (j_decompress_ptr srcinfo, - j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -{ - /* If force-to-grayscale is requested, adjust destination parameters */ - if (info->force_grayscale) { - /* First, ensure we have YCbCr or grayscale data, and that the source's - * Y channel is full resolution. (No reasonable person would make Y - * be less than full resolution, so actually coping with that case - * isn't worth extra code space. But we check it to avoid crashing.) - */ - if (((dstinfo->jpeg_color_space == JCS_YCbCr && - dstinfo->num_components == 3) || - (dstinfo->jpeg_color_space == JCS_GRAYSCALE && - dstinfo->num_components == 1)) && - srcinfo->comp_info[0].h_samp_factor == srcinfo->max_h_samp_factor && - srcinfo->comp_info[0].v_samp_factor == srcinfo->max_v_samp_factor) { - /* We use jpeg_set_colorspace to make sure subsidiary settings get fixed - * properly. Among other things, it sets the target h_samp_factor & - * v_samp_factor to 1, which typically won't match the source. - * We have to preserve the source's quantization table number, however. - */ - int sv_quant_tbl_no = dstinfo->comp_info[0].quant_tbl_no; - jpeg_set_colorspace(dstinfo, JCS_GRAYSCALE); - dstinfo->comp_info[0].quant_tbl_no = sv_quant_tbl_no; - } else { - /* Sorry, can't do it */ - ERREXIT(dstinfo, JERR_CONVERSION_NOTIMPL); - } - } else if (info->num_components == 1) { - /* For a single-component source, we force the destination sampling factors - * to 1x1, with or without force_grayscale. This is useful because some - * decoders choke on grayscale images with other sampling factors. - */ - dstinfo->comp_info[0].h_samp_factor = 1; - dstinfo->comp_info[0].v_samp_factor = 1; - } - - /* Correct the destination's image dimensions as necessary - * for rotate/flip, resize, and crop operations. - */ - dstinfo->jpeg_width = info->output_width; - dstinfo->jpeg_height = info->output_height; - - /* Transpose destination image parameters */ - switch (info->transform) { - case JXFORM_TRANSPOSE: - case JXFORM_TRANSVERSE: - case JXFORM_ROT_90: - case JXFORM_ROT_270: - transpose_critical_parameters(dstinfo); - break; - default: - break; - } - - /* Adjust Exif properties */ - if (srcinfo->marker_list != NULL && - srcinfo->marker_list->marker == JPEG_APP0+1 && - srcinfo->marker_list->data_length >= 6 && - GETJOCTET(srcinfo->marker_list->data[0]) == 0x45 && - GETJOCTET(srcinfo->marker_list->data[1]) == 0x78 && - GETJOCTET(srcinfo->marker_list->data[2]) == 0x69 && - GETJOCTET(srcinfo->marker_list->data[3]) == 0x66 && - GETJOCTET(srcinfo->marker_list->data[4]) == 0 && - GETJOCTET(srcinfo->marker_list->data[5]) == 0) { - /* Suppress output of JFIF marker */ - dstinfo->write_JFIF_header = FALSE; - /* Adjust Exif image parameters */ - if (dstinfo->jpeg_width != srcinfo->image_width || - dstinfo->jpeg_height != srcinfo->image_height) - /* Align data segment to start of TIFF structure for parsing */ - adjust_exif_parameters(srcinfo->marker_list->data + 6, - srcinfo->marker_list->data_length - 6, - dstinfo->jpeg_width, dstinfo->jpeg_height); - } - - /* Return the appropriate output data set */ - if (info->workspace_coef_arrays != NULL) - return info->workspace_coef_arrays; - return src_coef_arrays; -} - - -/* Execute the actual transformation, if any. - * - * This must be called *after* jpeg_write_coefficients, because it depends - * on jpeg_write_coefficients to have computed subsidiary values such as - * the per-component width and height fields in the destination object. - * - * Note that some transformations will modify the source data arrays! - */ - -GLOBAL(void) -jtransform_execute_transform (j_decompress_ptr srcinfo, - j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info) -{ - jvirt_barray_ptr *dst_coef_arrays = info->workspace_coef_arrays; - - /* Note: conditions tested here should match those in switch statement - * in jtransform_request_workspace() - */ - switch (info->transform) { - case JXFORM_NONE: - if (info->x_crop_offset != 0 || info->y_crop_offset != 0) - do_crop(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_FLIP_H: - if (info->y_crop_offset != 0) - do_flip_h(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - else - do_flip_h_no_crop(srcinfo, dstinfo, info->x_crop_offset, - src_coef_arrays); - break; - case JXFORM_FLIP_V: - do_flip_v(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_TRANSPOSE: - do_transpose(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_TRANSVERSE: - do_transverse(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_ROT_90: - do_rot_90(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_ROT_180: - do_rot_180(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - case JXFORM_ROT_270: - do_rot_270(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, - src_coef_arrays, dst_coef_arrays); - break; - } -} - -/* jtransform_perfect_transform - * - * Determine whether lossless transformation is perfectly - * possible for a specified image and transformation. - * - * Inputs: - * image_width, image_height: source image dimensions. - * MCU_width, MCU_height: pixel dimensions of MCU. - * transform: transformation identifier. - * Parameter sources from initialized jpeg_struct - * (after reading source header): - * image_width = cinfo.image_width - * image_height = cinfo.image_height - * MCU_width = cinfo.max_h_samp_factor * cinfo.block_size - * MCU_height = cinfo.max_v_samp_factor * cinfo.block_size - * Result: - * TRUE = perfect transformation possible - * FALSE = perfect transformation not possible - * (may use custom action then) - */ - -GLOBAL(boolean) -jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height, - int MCU_width, int MCU_height, - JXFORM_CODE transform) -{ - boolean result = TRUE; /* initialize TRUE */ - - switch (transform) { - case JXFORM_FLIP_H: - case JXFORM_ROT_270: - if (image_width % (JDIMENSION) MCU_width) - result = FALSE; - break; - case JXFORM_FLIP_V: - case JXFORM_ROT_90: - if (image_height % (JDIMENSION) MCU_height) - result = FALSE; - break; - case JXFORM_TRANSVERSE: - case JXFORM_ROT_180: - if (image_width % (JDIMENSION) MCU_width) - result = FALSE; - if (image_height % (JDIMENSION) MCU_height) - result = FALSE; - break; - default: - break; - } - - return result; -} - -#endif /* TRANSFORMS_SUPPORTED */ - - -/* Setup decompression object to save desired markers in memory. - * This must be called before jpeg_read_header() to have the desired effect. - */ - -GLOBAL(void) -jcopy_markers_setup (j_decompress_ptr srcinfo, JCOPY_OPTION option) -{ -#ifdef SAVE_MARKERS_SUPPORTED - int m; - - /* Save comments except under NONE option */ - if (option != JCOPYOPT_NONE) { - jpeg_save_markers(srcinfo, JPEG_COM, 0xFFFF); - } - /* Save all types of APPn markers iff ALL option */ - if (option == JCOPYOPT_ALL) { - for (m = 0; m < 16; m++) - jpeg_save_markers(srcinfo, JPEG_APP0 + m, 0xFFFF); - } -#endif /* SAVE_MARKERS_SUPPORTED */ -} - -/* Copy markers saved in the given source object to the destination object. - * This should be called just after jpeg_start_compress() or - * jpeg_write_coefficients(). - * Note that those routines will have written the SOI, and also the - * JFIF APP0 or Adobe APP14 markers if selected. - */ - -GLOBAL(void) -jcopy_markers_execute (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JCOPY_OPTION option) -{ - jpeg_saved_marker_ptr marker; - - /* In the current implementation, we don't actually need to examine the - * option flag here; we just copy everything that got saved. - * But to avoid confusion, we do not output JFIF and Adobe APP14 markers - * if the encoder library already wrote one. - */ - for (marker = srcinfo->marker_list; marker != NULL; marker = marker->next) { - if (dstinfo->write_JFIF_header && - marker->marker == JPEG_APP0 && - marker->data_length >= 5 && - GETJOCTET(marker->data[0]) == 0x4A && - GETJOCTET(marker->data[1]) == 0x46 && - GETJOCTET(marker->data[2]) == 0x49 && - GETJOCTET(marker->data[3]) == 0x46 && - GETJOCTET(marker->data[4]) == 0) - continue; /* reject duplicate JFIF */ - if (dstinfo->write_Adobe_marker && - marker->marker == JPEG_APP0+14 && - marker->data_length >= 5 && - GETJOCTET(marker->data[0]) == 0x41 && - GETJOCTET(marker->data[1]) == 0x64 && - GETJOCTET(marker->data[2]) == 0x6F && - GETJOCTET(marker->data[3]) == 0x62 && - GETJOCTET(marker->data[4]) == 0x65) - continue; /* reject duplicate Adobe */ -#ifdef NEED_FAR_POINTERS - /* We could use jpeg_write_marker if the data weren't FAR... */ - { - unsigned int i; - jpeg_write_m_header(dstinfo, marker->marker, marker->data_length); - for (i = 0; i < marker->data_length; i++) - jpeg_write_m_byte(dstinfo, marker->data[i]); - } -#else - jpeg_write_marker(dstinfo, marker->marker, - marker->data, marker->data_length); -#endif - } -} diff --git a/extra/fbida/transupp.h b/extra/fbida/transupp.h deleted file mode 100644 index 7c16c19c4..000000000 --- a/extra/fbida/transupp.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * transupp.h - * - * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains declarations for image transformation routines and - * other utility code used by the jpegtran sample application. These are - * NOT part of the core JPEG library. But we keep these routines separate - * from jpegtran.c to ease the task of maintaining jpegtran-like programs - * that have other user interfaces. - * - * NOTE: all the routines declared here have very specific requirements - * about when they are to be executed during the reading and writing of the - * source and destination files. See the comments in transupp.c, or see - * jpegtran.c for an example of correct usage. - */ - -/* If you happen not to want the image transform support, disable it here */ -#ifndef TRANSFORMS_SUPPORTED -#define TRANSFORMS_SUPPORTED 1 /* 0 disables transform code */ -#endif - -/* - * Although rotating and flipping data expressed as DCT coefficients is not - * hard, there is an asymmetry in the JPEG format specification for images - * whose dimensions aren't multiples of the iMCU size. The right and bottom - * image edges are padded out to the next iMCU boundary with junk data; but - * no padding is possible at the top and left edges. If we were to flip - * the whole image including the pad data, then pad garbage would become - * visible at the top and/or left, and real pixels would disappear into the - * pad margins --- perhaps permanently, since encoders & decoders may not - * bother to preserve DCT blocks that appear to be completely outside the - * nominal image area. So, we have to exclude any partial iMCUs from the - * basic transformation. - * - * Transpose is the only transformation that can handle partial iMCUs at the - * right and bottom edges completely cleanly. flip_h can flip partial iMCUs - * at the bottom, but leaves any partial iMCUs at the right edge untouched. - * Similarly flip_v leaves any partial iMCUs at the bottom edge untouched. - * The other transforms are defined as combinations of these basic transforms - * and process edge blocks in a way that preserves the equivalence. - * - * The "trim" option causes untransformable partial iMCUs to be dropped; - * this is not strictly lossless, but it usually gives the best-looking - * result for odd-size images. Note that when this option is active, - * the expected mathematical equivalences between the transforms may not hold. - * (For example, -rot 270 -trim trims only the bottom edge, but -rot 90 -trim - * followed by -rot 180 -trim trims both edges.) - * - * We also offer a lossless-crop option, which discards data outside a given - * image region but losslessly preserves what is inside. Like the rotate and - * flip transforms, lossless crop is restricted by the JPEG format: the upper - * left corner of the selected region must fall on an iMCU boundary. If this - * does not hold for the given crop parameters, we silently move the upper left - * corner up and/or left to make it so, simultaneously increasing the region - * dimensions to keep the lower right crop corner unchanged. (Thus, the - * output image covers at least the requested region, but may cover more.) - * - * We also provide a lossless-resize option, which is kind of a lossless-crop - * operation in the DCT coefficient block domain - it discards higher-order - * coefficients and losslessly preserves lower-order coefficients of a - * sub-block. - * - * Rotate/flip transform, resize, and crop can be requested together in a - * single invocation. The crop is applied last --- that is, the crop region - * is specified in terms of the destination image after transform/resize. - * - * We also offer a "force to grayscale" option, which simply discards the - * chrominance channels of a YCbCr image. This is lossless in the sense that - * the luminance channel is preserved exactly. It's not the same kind of - * thing as the rotate/flip transformations, but it's convenient to handle it - * as part of this package, mainly because the transformation routines have to - * be aware of the option to know how many components to work on. - */ - - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jtransform_parse_crop_spec jTrParCrop -#define jtransform_request_workspace jTrRequest -#define jtransform_adjust_parameters jTrAdjust -#define jtransform_execute_transform jTrExec -#define jtransform_perfect_transform jTrPerfect -#define jcopy_markers_setup jCMrkSetup -#define jcopy_markers_execute jCMrkExec -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* - * Codes for supported types of image transformations. - */ - -typedef enum { - JXFORM_NONE, /* no transformation */ - JXFORM_FLIP_H, /* horizontal flip */ - JXFORM_FLIP_V, /* vertical flip */ - JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */ - JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */ - JXFORM_ROT_90, /* 90-degree clockwise rotation */ - JXFORM_ROT_180, /* 180-degree rotation */ - JXFORM_ROT_270 /* 270-degree clockwise (or 90 ccw) */ -} JXFORM_CODE; - -/* - * Codes for crop parameters, which can individually be unspecified, - * positive, or negative. (Negative width or height makes no sense, though.) - */ - -typedef enum { - JCROP_UNSET, - JCROP_POS, - JCROP_NEG -} JCROP_CODE; - -/* - * Transform parameters struct. - * NB: application must not change any elements of this struct after - * calling jtransform_request_workspace. - */ - -typedef struct { - /* Options: set by caller */ - JXFORM_CODE transform; /* image transform operator */ - boolean perfect; /* if TRUE, fail if partial MCUs are requested */ - boolean trim; /* if TRUE, trim partial MCUs as needed */ - boolean force_grayscale; /* if TRUE, convert color image to grayscale */ - boolean crop; /* if TRUE, crop source image */ - - /* Crop parameters: application need not set these unless crop is TRUE. - * These can be filled in by jtransform_parse_crop_spec(). - */ - JDIMENSION crop_width; /* Width of selected region */ - JCROP_CODE crop_width_set; - JDIMENSION crop_height; /* Height of selected region */ - JCROP_CODE crop_height_set; - JDIMENSION crop_xoffset; /* X offset of selected region */ - JCROP_CODE crop_xoffset_set; /* (negative measures from right edge) */ - JDIMENSION crop_yoffset; /* Y offset of selected region */ - JCROP_CODE crop_yoffset_set; /* (negative measures from bottom edge) */ - - /* Internal workspace: caller should not touch these */ - int num_components; /* # of components in workspace */ - jvirt_barray_ptr * workspace_coef_arrays; /* workspace for transformations */ - JDIMENSION output_width; /* cropped destination dimensions */ - JDIMENSION output_height; - JDIMENSION x_crop_offset; /* destination crop offsets measured in iMCUs */ - JDIMENSION y_crop_offset; - int iMCU_sample_width; /* destination iMCU size */ - int iMCU_sample_height; -} jpeg_transform_info; - - -#if TRANSFORMS_SUPPORTED - -/* Parse a crop specification (written in X11 geometry style) */ -EXTERN(boolean) jtransform_parse_crop_spec - JPP((jpeg_transform_info *info, const char *spec)); -/* Request any required workspace */ -EXTERN(boolean) jtransform_request_workspace - JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info)); -/* Adjust output image parameters */ -EXTERN(jvirt_barray_ptr *) jtransform_adjust_parameters - JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info)); -/* Execute the actual transformation, if any */ -EXTERN(void) jtransform_execute_transform - JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, - jpeg_transform_info *info)); -/* Determine whether lossless transformation is perfectly - * possible for a specified image and transformation. - */ -EXTERN(boolean) jtransform_perfect_transform - JPP((JDIMENSION image_width, JDIMENSION image_height, - int MCU_width, int MCU_height, - JXFORM_CODE transform)); - -/* jtransform_execute_transform used to be called - * jtransform_execute_transformation, but some compilers complain about - * routine names that long. This macro is here to avoid breaking any - * old source code that uses the original name... - */ -#define jtransform_execute_transformation jtransform_execute_transform - -#endif /* TRANSFORMS_SUPPORTED */ - - -/* - * Support for copying optional markers from source to destination file. - */ - -typedef enum { - JCOPYOPT_NONE, /* copy no optional markers */ - JCOPYOPT_COMMENTS, /* copy only comment (COM) markers */ - JCOPYOPT_ALL /* copy all optional markers */ -} JCOPY_OPTION; - -#define JCOPYOPT_DEFAULT JCOPYOPT_COMMENTS /* recommended default */ - -/* Setup decompression object to save desired markers in memory */ -EXTERN(void) jcopy_markers_setup - JPP((j_decompress_ptr srcinfo, JCOPY_OPTION option)); -/* Copy markers saved in the given source object to the destination object */ -EXTERN(void) jcopy_markers_execute - JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - JCOPY_OPTION option)); diff --git a/extra/fvwm-devel/PKGBUILD b/extra/fvwm-devel/PKGBUILD deleted file mode 100644 index 2946b9132..000000000 --- a/extra/fvwm-devel/PKGBUILD +++ /dev/null @@ -1,37 +0,0 @@ -# $Id: PKGBUILD 122676 2011-05-06 03:54:22Z eric $ -# Maintainer: Eric Bélanger <eric@archlinux.org> - -pkgname=fvwm-devel -pkgver=2.7.0 -pkgrel=2 -pkgdesc="A multiple large virtual desktop window manager originally derived from twm" -arch=('i686' 'x86_64' 'mips64el') -url="http://www.fvwm.org" -license=('GPL' 'custom') -depends=('imlib' 'fribidi' 'perl' 'libstroke' 'libxpm' 'librsvg' 'libxinerama' 'libxcursor') -makedepends=('libxslt') -conflicts=('fvwm') -provides=("fvwm=${pkgver}") -options=('!emptydirs') -source=(ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-${pkgver}.tar.bz2 fvwm-devel.desktop) -md5sums=('c7dbb0c067f570e478005edb95dcccc3' - '3f5bcb246e035ff29aa5bf54487a3db4') -sha1sums=('bc8f84902b0926df171d059eff75780a25c8a97a' - '17db773870637b410ceb4f68743dbd517bc5c599') - -build() { - cd "${srcdir}/fvwm-${pkgver}" - ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --with-stroke-library - make -} - -package() { - cd "${srcdir}/fvwm-${pkgver}" - make DESTDIR="${pkgdir}" install - - install -d "${pkgdir}/etc/fvwm" - install -D -m644 sample.fvwmrc/* "${pkgdir}/etc/fvwm" - rm -f "${pkgdir}"/etc/fvwm/Makefile* - install -D -m644 ../fvwm-devel.desktop "${pkgdir}/usr/share/xsessions/fvwm-devel.desktop" - install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" -} diff --git a/extra/fvwm-devel/fvwm-devel.desktop b/extra/fvwm-devel/fvwm-devel.desktop deleted file mode 100644 index dac786fb8..000000000 --- a/extra/fvwm-devel/fvwm-devel.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=XSession -Exec=/usr/bin/fvwm -TryExec=/usr/bin/fvwm -Name=fvwm-devel diff --git a/extra/fvwm/fvwm2.desktop b/extra/fvwm/fvwm2.desktop deleted file mode 100644 index 5df7750b1..000000000 --- a/extra/fvwm/fvwm2.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=FVWM2 -Comment=The fvwm2 window manager -Exec=fvwm2 -# no icon yet, only the top three are currently used -Icon= -Type=Application diff --git a/extra/gnupg/PKGBUILD b/extra/gnupg/PKGBUILD index 6e11ee821..85a7bfa18 100644 --- a/extra/gnupg/PKGBUILD +++ b/extra/gnupg/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 101334 2010-11-28 23:08:17Z tpowa $ +# $Id: PKGBUILD 127729 2011-06-17 22:03:38Z andyrtr $ # Maintainer: Andreas Radke <andyrtr at archlinux.org> # Committer: Judd Vinet <jvinet@zeroflux.org> pkgname=gnupg pkgver=1.4.11 -pkgrel=2 +pkgrel=3 pkgdesc="GNU Privacy Guard - a PGP replacement tool" arch=('i686' 'x86_64' 'mips64el') license=('GPL3') @@ -15,14 +15,21 @@ md5sums=('411744e1ef8ce90b87938c4203f001f1') build() { cd ${srcdir}/${pkgname}-${pkgver} - ./configure --prefix=/usr --libexecdir=/usr/lib # docdir can't be set properly - make || return 1 - ln -s ${pkgname}-${pkgver}/scripts .. + ./configure --prefix=/usr \ + --libexecdir=/usr/lib \ + --enable-noexecstack + make + #ln -s ${pkgname}-${pkgver}/scripts .. # seems obsolete now } - + +check() { + cd "$srcdir/$pkgname-$pkgver" + make -k check #All 27 tests passed +} + package () { cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install || return 1 + make DESTDIR=${pkgdir} install # fix fileconflict with gnupg2 pkg rm ${pkgdir}/usr/share/man/man1/gpg-zip.1 diff --git a/extra/happy/PKGBUILD b/extra/happy/PKGBUILD index 5adad741a..f9cb98065 100644 --- a/extra/happy/PKGBUILD +++ b/extra/happy/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 103748 2010-12-22 17:23:27Z remy $ +# $Id: PKGBUILD 127724 2011-06-17 20:54:42Z eric $ # Maintainer: simo <simo@archlinux.org> # Contributor: Vesa Kaihlavirta <vegai@iki.fi> @@ -10,21 +10,21 @@ url="http://www.haskell.org/happy/" arch=('i686' 'x86_64' 'mips64el') license=("custom:BSD3") depends=(gmp) -makedepends=(ghc=7.0.1 haskell-mtl=2.0.1.0) +makedepends=(ghc=7.0.2 haskell-mtl=2.0.1.0) options=(strip) source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz) md5sums=('7d4d1425f5068633cd477a2b2216880d') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" runhaskell Setup.lhs configure -O --prefix=/usr runhaskell Setup.lhs build } package() { - cd ${srcdir}/${pkgname}-${pkgver} - runhaskell Setup.lhs copy --destdir=${pkgdir} - install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE + cd "${srcdir}/${pkgname}-${pkgver}" + runhaskell Setup.lhs copy --destdir="${pkgdir}" + install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } diff --git a/extra/icewm/ChangeLog b/extra/icewm/ChangeLog deleted file mode 100644 index b3e46cb6f..000000000 --- a/extra/icewm/ChangeLog +++ /dev/null @@ -1,15 +0,0 @@ -2010-01-18 Eric Belanger <eric@archlinux.org> - - * icewm 1.2.37-3 - * Rebuilt for libpng 1.4 and libjpeg 8 - -2009-01-30 Eric Belanger <eric@archlinux.org> - - * icewm 1.2.37-1 - * Upstream update - -2008-10-18 Eric Belanger <eric@archlinux.org> - - * icewm 1.2.36-1 - * Upstream update - * Added ChangeLog diff --git a/extra/icewm/icewm.desktop b/extra/icewm/icewm.desktop deleted file mode 100644 index e5ff5dce6..000000000 --- a/extra/icewm/icewm.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=XSession -Exec=/usr/bin/icewm-session -TryExec=/usr/bin/icewm-session -Name=icewm diff --git a/extra/indent/indent-2.2.9-file.diff b/extra/indent/indent-2.2.9-file.diff deleted file mode 100644 index 511995c0b..000000000 --- a/extra/indent/indent-2.2.9-file.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur indent-2.2.9.orig/src/indent.h indent-2.2.9/src/indent.h ---- indent-2.2.9.orig/src/indent.h 2002-11-10 22:02:48.000000000 +0100 -+++ indent-2.2.9/src/indent.h 2005-10-30 11:53:10.000000000 +0100 -@@ -96,8 +96,6 @@ - /* Size of the input program, not including the ' \n\0' we add at the end */ - extern unsigned long in_prog_size; - --/* The output file. */ --extern FILE *output; - - - diff --git a/extra/libdmtx/PKGBUILD b/extra/libdmtx/PKGBUILD index df4990dcc..30f02eb3c 100644 --- a/extra/libdmtx/PKGBUILD +++ b/extra/libdmtx/PKGBUILD @@ -1,26 +1,26 @@ -# $Id: PKGBUILD 107616 2011-01-26 22:10:46Z andrea $ +# $Id: PKGBUILD 127675 2011-06-17 17:32:51Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: jose <jose1711 [at] gmail (dot) com> pkgname=libdmtx -pkgver=0.7.2 -pkgrel=2 +pkgver=0.7.4 +pkgrel=1 pkgdesc="A software for reading and writing Data Matrix 2D barcodes" -url=('http://www.libdmtx.org/') -arch=('i686' 'x86_64' 'mips64el') +url="http://www.libdmtx.org/" +arch=('i686' 'x86_64') license=('GPL2') -depends=('imagemagick') +depends=('glibc' 'imagemagick') source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2") -md5sums=('0684cf3857591e777b57248d652444ae') +md5sums=('d3a4c0becd92895eb606dbdb78b023e2') options=('!libtool') build() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}"/${pkgname}-${pkgver} ./configure --prefix=/usr make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}"/${pkgname}-${pkgver} make DESTDIR="${pkgdir}" install } diff --git a/extra/libindi/PKGBUILD b/extra/libindi/PKGBUILD index 0b70ae5ff..0de4645b0 100644 --- a/extra/libindi/PKGBUILD +++ b/extra/libindi/PKGBUILD @@ -3,29 +3,23 @@ # Contributor: Tobias Powalowski <tpowa@archlinux.org> pkgname=libindi -pkgver=0.7.2 +pkgver=0.8 pkgrel=1 pkgdesc="A distributed control protocol designed to operate astronomical instrumentation" url="http://www.indilib.org/index.php?title=Main_Page" license=('GPL2') -arch=('i686' 'x86_64' 'mips64el') -depends=('gcc-libs' 'zlib' 'libnova' 'cfitsio') -makedepends=('pkgconfig' 'cmake') +arch=('i686' 'x86_64') +depends=('libnova' 'cfitsio' 'boost-libs') +makedepends=('pkgconfig' 'cmake' 'boost') provides=('indilib') replaces=('indilib') conflicts=('indilib') options=('!libtool') -source=("http://downloads.sourceforge.net/indi/${pkgname}_${pkgver}.tar.gz" - 'linking-pthread.patch') -md5sums=('a78a77dc2322a46f5bf4c5d75380e8b0' - '1ebc282e259cb0c9c52cad3dadd5e044') +source=("http://downloads.sourceforge.net/indi/${pkgname}_${pkgver}.tar.gz") +md5sums=('ca2b7c56431eb5e08218929e5eb72150') build() { - # fixed upstream - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np2 -i ${srcdir}/linking-pthread.patch - - cd ${srcdir} + cd "${srcdir}" mkdir build cd build cmake ../${pkgname}-${pkgver} \ @@ -35,6 +29,6 @@ build() { } package() { - cd ${srcdir}/build - make DESTDIR=${pkgdir} install + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install } diff --git a/extra/libindi/linking-pthread.patch b/extra/libindi/linking-pthread.patch deleted file mode 100644 index c012707a2..000000000 --- a/extra/libindi/linking-pthread.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- trunk/libindi/CMakeLists.txt 2010/11/20 11:45:07 397 -+++ trunk/libindi/CMakeLists.txt 2010/12/01 08:36:20 412 -@@ -164,7 +164,7 @@ - ############# INDI Client Library ################
- ##################################################
- add_library(indiclient STATIC ${indibase_SRCS})
--target_link_libraries(indiclient indi)
-+target_link_libraries(indiclient indi pthread)
- install(TARGETS indiclient ARCHIVE DESTINATION lib${LIB_POSTFIX})
-
- #####################################
diff --git a/extra/moc/curl-streams.diff b/extra/moc/curl-streams.diff deleted file mode 100644 index 2dbc38d54..000000000 --- a/extra/moc/curl-streams.diff +++ /dev/null @@ -1,28 +0,0 @@ -diff -u moc-2.4.4/io_curl.c moc-2.4.4/io_curl.c ---- a/io_curl.c 2007-07-08 08:54:45.000000000 +0200 -+++ b/io_curl.c 2011-05-18 09:09:40.000000000 +0200 -@@ -338,6 +338,8 @@ - fd_set read_fds, write_fds, exc_fds; - int max_fd; - int ret; -+ long milliseconds; -+ struct timeval timeout; - - logit ("Doing select()..."); - -@@ -356,8 +358,14 @@ - if (s->curl.wake_up_pipe[0] > max_fd) - max_fd = s->curl.wake_up_pipe[0]; - -+ curl_multi_timeout(s->curl.multi_handle, &milliseconds); -+ if(milliseconds <= 0) -+ milliseconds = 1000; /* just a cautionary default */ -+ timeout.tv_sec = milliseconds / 1000; -+ timeout.tv_usec = (milliseconds % 1000) * 1000; -+ - ret = select (max_fd + 1, &read_fds, &write_fds, -- &exc_fds, NULL); -+ &exc_fds, &timeout); - - if (ret < 0 && errno == EINTR) { - logit ("Interrupted"); diff --git a/extra/mousepad/PKGBUILD b/extra/mousepad/PKGBUILD deleted file mode 100644 index dbaf0b3c9..000000000 --- a/extra/mousepad/PKGBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# $Id: PKGBUILD 58320 2009-11-07 00:36:34Z allan $ -# Maintainer: tobias [tobias at archlinux.org] - -pkgname=mousepad -pkgver=0.2.16 -pkgrel=2 -pkgdesc="Simple Text Editor for Xfce4 (based on Gedit)" -arch=(i686 x86_64 'mips64el') -groups=('xfce4') -license="GPL2" -depends=('libxfcegui4>=4.6.0' 'desktop-file-utils') -makedepends=('pkgconfig' 'intltool' 'perl') -options=('!libtool') -url=('http://www.xfce.org/~benny/apps.html') -install=${pkgname}.install -source=(http://www.xfce.org/archive/xfce-4.6.0/src/${pkgname}-${pkgver}.tar.bz2 - resensitize-find-button.patch) -md5sums=('d98854edb76d823ac20b266fdf5a64a1' - '1fbc153fbd47ebb95d93f7084dea93e0') - -build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np1 -i $srcdir/resensitize-find-button.patch - ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \ - --localstatedir=/var --disable-static - make || return 1 - make DESTDIR=${pkgdir} install || return 1 -} diff --git a/extra/mousepad/mousepad.install b/extra/mousepad/mousepad.install deleted file mode 100644 index e7ca93e53..000000000 --- a/extra/mousepad/mousepad.install +++ /dev/null @@ -1,16 +0,0 @@ -post_install() { - update-desktop-database -q -} - -post_upgrade() { - post_install $1 -} - -post_remove() { - update-desktop-database -q -} - -op=$1 -shift - -$op $* diff --git a/extra/mousepad/resensitize-find-button.patch b/extra/mousepad/resensitize-find-button.patch deleted file mode 100644 index db79adc4d..000000000 --- a/extra/mousepad/resensitize-find-button.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- mousepad-0.2.16.orig/src/search.c -+++ mousepad-0.2.16/src/search.c -@@ -210,8 +210,11 @@ - G_CALLBACK(toggle_sensitivity), NULL); - g_signal_connect(G_OBJECT(entry_find), "delete-text", - G_CALLBACK(toggle_sensitivity), NULL); -- if (sd->search.string_find) -+ if (sd->search.string_find) { - gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find); -+ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), -+ GTK_RESPONSE_OK, TRUE); -+ } - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); - gtk_entry_set_activates_default(GTK_ENTRY(entry_find), TRUE); -@@ -275,8 +278,11 @@ - G_CALLBACK(toggle_sensitivity), NULL); - g_signal_connect(G_OBJECT(entry_find), "delete-text", - G_CALLBACK(toggle_sensitivity), NULL); -- if (sd->search.string_find) -+ if (sd->search.string_find) { - gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find); -+ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), -+ GTK_RESPONSE_OK, TRUE); -+ } - label_replace = gtk_label_new_with_mnemonic(_("Re_place with: ")); - gtk_misc_set_alignment(GTK_MISC(label_replace), 0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), label_replace, 0, 1, 1, 2); diff --git a/extra/mpd/PKGBUILD b/extra/mpd/PKGBUILD index 5d5972060..5c40e219d 100644 --- a/extra/mpd/PKGBUILD +++ b/extra/mpd/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 119766 2011-04-14 20:23:04Z schiv $ +# $Id: PKGBUILD 127604 2011-06-16 17:50:00Z angvp $ # Maintainer: Angel Velasquez <angvp@archlinux.org> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Damir Perisa <damir.perisa@bluewin.ch> # Contributor: Ben <ben@benmazer.net> pkgname=mpd -pkgver=0.16.2 -pkgrel=3 +pkgver=0.16.3 +pkgrel=1 pkgdesc="Music daemon that plays MP3, FLAC, and Ogg Vorbis files" arch=('i686' 'x86_64' 'mips64el') license=('GPL') @@ -18,7 +18,7 @@ makedepends=('pkgconfig' 'doxygen') install=${pkgname}.install source=("http://downloads.sourceforge.net/musicpd/${pkgname}-${pkgver}.tar.bz2" 'mpd') -md5sums=('dedb75cef8e489f3de5231031876fb77' +md5sums=('6e708c02b0e8c288aec855eecf441a5a' 'e5669c2bff4031928531e52475addeb1') build() { diff --git a/extra/msmtp/PKGBUILD b/extra/msmtp/PKGBUILD index f02caf326..ff1e47629 100644 --- a/extra/msmtp/PKGBUILD +++ b/extra/msmtp/PKGBUILD @@ -1,17 +1,18 @@ -# $Id: PKGBUILD 122860 2011-05-06 19:46:40Z eric $ +# $Id: PKGBUILD 127745 2011-06-18 02:59:47Z eric $ # Maintainer: tobias <tobias@archlinux.org> # Contributor: Ben Mazer <blm@groknil.org> pkgname=msmtp pkgver=1.4.24 -pkgrel=1 +pkgrel=2 pkgdesc="A mini smtp client" arch=('i686' 'x86_64' 'mips64el') license=('GPL3') url="http://msmtp.sourceforge.net" depends=('gnutls' 'libidn') +makedepends=('texlive-core') provides=('smtp-forwarder') -install=${pkgname}.install +install=msmtp.install source=(http://download.sourceforge.net/sourceforge/msmtp/${pkgname}-${pkgver}.tar.bz2) md5sums=('3ed704fbd3e7419cab5c65bb7928d9ba') @@ -19,12 +20,19 @@ build() { cd "${srcdir}/${pkgname}-${pkgver}" ./configure --prefix=/usr --sysconfdir=/etc --with-ssl=gnutls make + make -C doc html pdf } package() { cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C doc install-html install-pdf - # this can not be the default - #install -Dm644 doc/msmtprc-system.example "${pkgdir}"/etc/msmtprc +# Installing example configs and scripts to /usr/share/doc/msmtp +# as they are not installed by default (Debian and Gentoo do it this way) + install -d "${pkgdir}/usr/share/doc/msmtp" + cp -r scripts/{find_alias,msmtp-gnome-tool,msmtpqueue,msmtpq,set_sendmail} "${pkgdir}/usr/share/doc/msmtp/" + install -D -m644 doc/*.example "${pkgdir}/usr/share/doc/msmtp/" + + install -D -m644 scripts/vim/msmtp.vim "${pkgdir}/usr/share/vim/vimfiles/syntax/msmtp.vim" } diff --git a/extra/obex-data-server/PKGBUILD b/extra/obex-data-server/PKGBUILD index e32a76f8f..0da129c3d 100644 --- a/extra/obex-data-server/PKGBUILD +++ b/extra/obex-data-server/PKGBUILD @@ -1,28 +1,28 @@ -# $Id: PKGBUILD 101379 2010-11-29 00:46:39Z andrea $ +# $Id: PKGBUILD 127685 2011-06-17 17:49:02Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Geoffroy Carrier <geoffroy@archlinux.org> # Contributor: Roman Kyrylych <roman@archlinux.org> # Contributor: Keerthi <keerthi.linux@gmail.com> pkgname=obex-data-server -pkgver=0.4.5 -pkgrel=3 +pkgver=0.4.6 +pkgrel=1 pkgdesc="A D-Bus service providing high-level OBEX client and server side functionality" arch=('i686' 'x86_64' 'mips64el') url="http://wiki.muiline.com/obex-data-server" license=('GPL') depends=('dbus-glib' 'openobex' 'imagemagick') source=("http://tadas.dailyda.com/software/${pkgname}-${pkgver}.tar.gz") -md5sums=('8b11e7527c1e3a36a2a9a0c52816ec7b') +md5sums=('961ca5db6fe9c97024e133cc6203cc4d') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}"/${pkgname}-${pkgver} ./configure --prefix=/usr \ --sysconfdir=/etc make } package() { - cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install + cd "${srcdir}"/${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install } diff --git a/extra/pycups/PKGBUILD b/extra/pycups/PKGBUILD index 0989e1289..91fc194fb 100644 --- a/extra/pycups/PKGBUILD +++ b/extra/pycups/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 118849 2011-04-08 14:57:23Z andrea $ +# $Id: PKGBUILD 127690 2011-06-17 17:53:00Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: nesl247 <nesl247@gmail.com> pkgname=pycups -pkgver=1.9.55 +pkgver=1.9.57 pkgrel=1 pkgdesc="Python CUPS Bindings" url="http://cyberelk.net/tim/software/pycups/" @@ -11,7 +11,7 @@ arch=('i686' 'x86_64' 'mips64el') license=('GPL') depends=('libcups' 'python2') source=("http://cyberelk.net/tim/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2") -md5sums=('b2a5082cfacc3350b53e7fee188b2dc5') +md5sums=('64e328e2c628e41862efe97f04e66da4') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/pysmbc/PKGBUILD b/extra/pysmbc/PKGBUILD index d78a0214a..6a0855ee6 100644 --- a/extra/pysmbc/PKGBUILD +++ b/extra/pysmbc/PKGBUILD @@ -1,24 +1,24 @@ -# $Id: PKGBUILD 103364 2010-12-18 14:48:53Z andrea $ +# $Id: PKGBUILD 127695 2011-06-17 17:55:40Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Shane Peelar <lookatyouhacker@gm@il(d0t)c0m> pkgname=pysmbc -pkgver=1.0.10 +pkgver=1.0.11 pkgrel=1 -pkgdesc="Python libsmbclient bindings" -arch=('i686' 'x86_64' 'mips64el') -url="http://cyberelk.net/tim/software/pysmbc/" +pkgdesc="Python bindings for libsmbclient" +arch=('i686' 'x86_64') +url="http://pypi.python.org/pypi/pysmbc/" license=('GPL') depends=('python2' 'smbclient') -source=("http://cyberelk.net/tim/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2") -md5sums=('72cc12d6c037c68ca81355151a58083b') +source=("http://pypi.python.org/packages/source/p/${pkgname}/${pkgname}-${pkgver}.tar.bz2") +md5sums=('8593053cfe3cc0b79d8c4ab892044d4b') build(){ - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" python2 setup.py build } package() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}/${pkgname}-${pkgver}" python2 setup.py install --root="$pkgdir" --optimize=1 } diff --git a/extra/python2/CVE-2011-1521.patch b/extra/python2/CVE-2011-1521.patch deleted file mode 100644 index d68ec3323..000000000 --- a/extra/python2/CVE-2011-1521.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff -Naur Python-2.7.1.ori/Lib/test/test_urllib2.py Python-2.7.1/Lib/test/test_urllib2.py ---- Python-2.7.1.ori/Lib/test/test_urllib2.py 2010-11-21 21:04:33.000000000 -0800 -+++ Python-2.7.1/Lib/test/test_urllib2.py 2011-04-15 05:02:13.278853672 -0700 -@@ -969,6 +969,27 @@ - self.assertEqual(count, - urllib2.HTTPRedirectHandler.max_redirections) - -+ def test_invalid_redirect(self): -+ from_url = "http://example.com/a.html" -+ valid_schemes = ['http', 'https', 'ftp'] -+ invalid_schemes = ['file', 'imap', 'ldap'] -+ schemeless_url = "example.com/b.html" -+ h = urllib2.HTTPRedirectHandler() -+ o = h.parent = MockOpener() -+ req = Request(from_url) -+ -+ for scheme in invalid_schemes: -+ invalid_url = scheme + '://' + schemeless_url -+ self.assertRaises(urllib2.HTTPError, h.http_error_302, -+ req, MockFile(), 302, "Security Loophole", -+ MockHeaders({"location": invalid_url})) -+ -+ for scheme in valid_schemes: -+ valid_url = scheme + '://' + schemeless_url -+ h.http_error_302(req, MockFile(), 302, "That's fine", -+ MockHeaders({"location": valid_url})) -+ self.assertEqual(o.req.get_full_url(), valid_url) -+ - def test_cookie_redirect(self): - # cookies shouldn't leak into redirected requests - from cookielib import CookieJar -diff -Naur Python-2.7.1.ori/Lib/test/test_urllib.py Python-2.7.1/Lib/test/test_urllib.py ---- Python-2.7.1.ori/Lib/test/test_urllib.py 2010-11-21 05:34:58.000000000 -0800 -+++ Python-2.7.1/Lib/test/test_urllib.py 2011-04-15 05:02:13.278853672 -0700 -@@ -161,6 +161,20 @@ - finally: - self.unfakehttp() - -+ def test_invalid_redirect(self): -+ # urlopen() should raise IOError for many error codes. -+ self.fakehttp("""HTTP/1.1 302 Found -+Date: Wed, 02 Jan 2008 03:03:54 GMT -+Server: Apache/1.3.33 (Debian GNU/Linux) mod_ssl/2.8.22 OpenSSL/0.9.7e -+Location: file:README -+Connection: close -+Content-Type: text/html; charset=iso-8859-1 -+""") -+ try: -+ self.assertRaises(IOError, urllib.urlopen, "http://python.org/") -+ finally: -+ self.unfakehttp() -+ - def test_empty_socket(self): - # urlopen() raises IOError if the underlying socket does not send any - # data. (#1680230) -diff -Naur Python-2.7.1.ori/Lib/urllib2.py Python-2.7.1/Lib/urllib2.py ---- Python-2.7.1.ori/Lib/urllib2.py 2010-11-20 03:24:08.000000000 -0800 -+++ Python-2.7.1/Lib/urllib2.py 2011-04-15 05:02:13.278853672 -0700 -@@ -579,6 +579,17 @@ - - newurl = urlparse.urljoin(req.get_full_url(), newurl) - -+ # For security reasons we do not allow redirects to protocols -+ # other than HTTP, HTTPS or FTP. -+ newurl_lower = newurl.lower() -+ if not (newurl_lower.startswith('http://') or -+ newurl_lower.startswith('https://') or -+ newurl_lower.startswith('ftp://')): -+ raise HTTPError(newurl, code, -+ msg + " - Redirection to url '%s' is not allowed" % -+ newurl, -+ headers, fp) -+ - # XXX Probably want to forget about the state of the current - # request, although that might interact poorly with other - # handlers that also use handler-specific request attributes -diff -Naur Python-2.7.1.ori/Lib/urllib.py Python-2.7.1/Lib/urllib.py ---- Python-2.7.1.ori/Lib/urllib.py 2010-11-21 21:04:33.000000000 -0800 -+++ Python-2.7.1/Lib/urllib.py 2011-04-15 05:02:13.278853672 -0700 -@@ -644,6 +644,18 @@ - fp.close() - # In case the server sent a relative URL, join with original: - newurl = basejoin(self.type + ":" + url, newurl) -+ -+ # For security reasons we do not allow redirects to protocols -+ # other than HTTP, HTTPS or FTP. -+ newurl_lower = newurl.lower() -+ if not (newurl_lower.startswith('http://') or -+ newurl_lower.startswith('https://') or -+ newurl_lower.startswith('ftp://')): -+ raise IOError('redirect error', errcode, -+ errmsg + " - Redirection to url '%s' is not allowed" % -+ newurl, -+ headers) -+ - return self.open(newurl) - - def http_error_301(self, url, fp, errcode, errmsg, headers, data=None): diff --git a/extra/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch b/extra/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch deleted file mode 100644 index 57f527f40..000000000 --- a/extra/python2/python-2.7.1-fix-decimal-in-turkish-locale.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -up Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale Python-2.7.1/Lib/decimal.py ---- Python-2.7.1/Lib/decimal.py.fix-decimal-in-turkish-locale 2010-07-08 17:22:54.000000000 -0400 -+++ Python-2.7.1/Lib/decimal.py 2011-04-12 11:30:40.850350842 -0400 -@@ -1720,8 +1720,6 @@ class Decimal(object): - # here self was representable to begin with; return unchanged - return Decimal(self) - -- _pick_rounding_function = {} -- - # for each of the rounding functions below: - # self is a finite, nonzero Decimal - # prec is an integer satisfying 0 <= prec < len(self._int) -@@ -1788,6 +1786,17 @@ class Decimal(object): - else: - return -self._round_down(prec) - -+ _pick_rounding_function = dict( -+ ROUND_DOWN = '_round_down', -+ ROUND_UP = '_round_up', -+ ROUND_HALF_UP = '_round_half_up', -+ ROUND_HALF_DOWN = '_round_half_down', -+ ROUND_HALF_EVEN = '_round_half_even', -+ ROUND_CEILING = '_round_ceiling', -+ ROUND_FLOOR = '_round_floor', -+ ROUND_05UP = '_round_05up', -+ ) -+ - def fma(self, other, third, context=None): - """Fused multiply-add. - -@@ -3705,18 +3714,6 @@ _numbers.Number.register(Decimal) - - ##### Context class ####################################################### - -- --# get rounding method function: --rounding_functions = [name for name in Decimal.__dict__.keys() -- if name.startswith('_round_')] --for name in rounding_functions: -- # name is like _round_half_even, goes to the global ROUND_HALF_EVEN value. -- globalname = name[1:].upper() -- val = globals()[globalname] -- Decimal._pick_rounding_function[val] = name -- --del name, val, globalname, rounding_functions -- - class _ContextManager(object): - """Context manager class to support localcontext(). diff --git a/extra/rcs/PKGBUILD b/extra/rcs/PKGBUILD index 314abdba5..b034c7cda 100644 --- a/extra/rcs/PKGBUILD +++ b/extra/rcs/PKGBUILD @@ -1,22 +1,31 @@ -# $Id: PKGBUILD 78028 2010-04-19 08:23:42Z dgriffiths $ -# Maintainer: dorphell <dorphell@archlinux.org> +# $Id: PKGBUILD 127635 2011-06-17 10:04:08Z bisson $ +# Contributor: dorphell <dorphell@archlinux.org> +# Maintainer: Gaetan Bisson <bisson@archlinux.org> + pkgname=rcs pkgver=5.7 -pkgrel=5 -pkgdesc="Revision Control System" -arch=('i686' 'x86_64' 'mips64el') +pkgrel=6 +pkgdesc='Revision Control System' +arch=('i686' 'x86_64') url="http://www.cs.purdue.edu/homes/trinkle/RCS/" license=('GPL') -depends=('glibc') -source=(http://www.cs.purdue.edu/homes/trinkle/RCS/rcs-${pkgver}.tar.Z \ - rcs-5.7.patch) -md5sums=('423282f0edb353296d9f3498ab683abf' '7ae4b7cb79259ccdf5eee0ab94fe2a2a') +source=("http://www.cs.purdue.edu/homes/trinkle/RCS/rcs-${pkgver}.tar.Z" \ + 'path.patch') +sha1sums=('976774bda26a7743b8375797f92fbd18e51ac7a2' + '0f0be997e5d018e0d638b5f16430423ccb3774be') build() { - cd ${srcdir}/${pkgname}-${pkgver} - patch -Np1 -i ../rcs-5.7.patch || return 1 - ./configure --prefix=/usr || return 1 - make || return 1 - make prefix=${pkgdir}/usr man1dir=${pkgdir}/usr/share/man/man1 \ - man5dir=${pkgdir}/usr/share/man/man5 install || return 1 + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 -i ../path.patch + ./configure --prefix=/usr + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make install \ + prefix="${pkgdir}"/usr \ + man1dir="${pkgdir}"/usr/share/man/man1 \ + man5dir="${pkgdir}"/usr/share/man/man5 \ + } diff --git a/extra/rcs/rcs-5.7.patch b/extra/rcs/path.patch index 0f062b357..0f062b357 100644 --- a/extra/rcs/rcs-5.7.patch +++ b/extra/rcs/path.patch diff --git a/extra/sip/PKGBUILD b/extra/sip/PKGBUILD index 57a5f4fac..510afc089 100644 --- a/extra/sip/PKGBUILD +++ b/extra/sip/PKGBUILD @@ -1,18 +1,18 @@ -# $Id: PKGBUILD 122180 2011-05-02 17:30:24Z andrea $ +# $Id: PKGBUILD 127700 2011-06-17 17:59:14Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> # Contributor: riai <riai@bigfoot.com>, Ben <ben@benmazer.net> pkgbase=sip pkgname=('sip' 'python2-sip') -pkgver=4.12.2 +pkgver=4.12.3 pkgrel=1 arch=('i686' 'x86_64') url="http://www.riverbankcomputing.com/software/sip/" license=('custom:"sip"') makedepends=('python' 'python2') source=("http://www.riverbankcomputing.com/static/Downloads/sip4/${pkgbase}-${pkgver}.tar.gz") -md5sums=('9df80f88e0e4022cdd8a8891c6c38048') +md5sums=('d0f1fa60494db04b4d115d4c2d92f79e') build() { cd "${srcdir}" diff --git a/extra/system-config-printer/PKGBUILD b/extra/system-config-printer/PKGBUILD index d6c9ea126..1e1d98fce 100644 --- a/extra/system-config-printer/PKGBUILD +++ b/extra/system-config-printer/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 117485 2011-04-04 07:01:13Z andrea $ +# $Id: PKGBUILD 127705 2011-06-17 18:04:06Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> pkgbase=system-config-printer pkgname=('system-config-printer-common' 'system-config-printer-gnome') -pkgver=1.3.2 +pkgver=1.3.3 pkgrel=1 pkgdesc="A CUPS printer configuration tool and status applet" url="http://cyberelk.net/tim/software/system-config-printer/" @@ -12,10 +12,10 @@ arch=('i686' 'x86_64' 'mips64el') license=('GPL') makedepends=('intltool' 'python2' 'xmlto' 'docbook-xsl' 'desktop-file-utils' 'libcups' 'libxml2') source=("http://cyberelk.net/tim/data/${pkgbase}/1.3/${pkgbase}-${pkgver}.tar.xz") -md5sums=('34a0ce9a11be5695b3b4065e4f17b009') +md5sums=('658516848c6ced2b1acc6d3525d27204') build() { - cd ${srcdir}/${pkgbase}-${pkgver} + cd "${srcdir}"/${pkgbase}-${pkgver} sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ @@ -39,8 +39,8 @@ package_system-config-printer-common() { provides=("system-config-printer=${pkgver}") conflicts=('system-config-printer') - cd ${srcdir}/${pkgbase}-${pkgver} - install -d ${pkgdir}/usr/share/${pkgbase} + cd "${srcdir}"/${pkgbase}-${pkgver} + install -d "${pkgdir}"/usr/share/${pkgbase} install -m644 config.py \ debug.py \ installpackage.py \ @@ -52,27 +52,27 @@ package_system-config-printer-common() { smburi.py \ statereason.py \ XmlHelper.py \ - ${pkgdir}/usr/share/${pkgbase}/ + "${pkgdir}"/usr/share/${pkgbase}/ install -m755 pysmb.py \ - ${pkgdir}/usr/share/${pkgbase}/ + "${pkgdir}"/usr/share/${pkgbase}/ - install -d ${pkgdir}/etc/dbus-1/system.d/ + install -d "${pkgdir}"/etc/dbus-1/system.d/ install -m644 dbus/com.redhat.NewPrinterNotification.conf \ dbus/com.redhat.PrinterDriversInstaller.conf \ - ${pkgdir}/etc/dbus-1/system.d/ - install -d ${pkgdir}/etc/cupshelpers/ - install -m644 xml/preferreddrivers.xml ${pkgdir}/etc/cupshelpers/ + "${pkgdir}"/etc/dbus-1/system.d/ + install -d "${pkgdir}"/etc/cupshelpers/ + install -m644 xml/preferreddrivers.xml "${pkgdir}"/etc/cupshelpers/ - install -d ${pkgdir}/lib/udev/rules.d + install -d "${pkgdir}"/lib/udev/rules.d install -m755 udev/{udev-add-printer,udev-configure-printer} \ - ${pkgdir}/lib/udev/ + "${pkgdir}"/lib/udev/ install -m644 udev/70-printers.rules \ - ${pkgdir}/lib/udev/rules.d + "${pkgdir}"/lib/udev/rules.d for file in build/lib/cupshelpers/*.py; do install -Dm644 $file \ - ${pkgdir}/usr/lib/python2.7/site-packages/cupshelpers/$(basename $file) + "${pkgdir}"/usr/lib/python2.7/site-packages/cupshelpers/$(basename $file) done } @@ -81,11 +81,11 @@ package_system-config-printer-gnome() { depends=('system-config-printer-common' 'gnome-icon-theme' 'python-notify') optdependence=('gnome-keyring: password management') - cd ${srcdir}/${pkgbase}-${pkgver} + cd "${srcdir}"/${pkgbase}-${pkgver} make DESTDIR="${pkgdir}" install # files provided by system-config-printer-common - cd ${pkgdir}/usr/share/${pkgbase} + cd "${pkgdir}"/usr/share/${pkgbase} rm config.py \ debug.py \ installpackage.py \ @@ -98,8 +98,8 @@ package_system-config-printer-gnome() { statereason.py \ XmlHelper.py \ pysmb.py - rm -r ${pkgdir}/etc/dbus-1/ - rm -r ${pkgdir}/etc/cupshelpers/ - rm -r ${pkgdir}/etc/udev/ - rm -r ${pkgdir}/usr/lib/ + rm -r "${pkgdir}"/etc/dbus-1/ + rm -r "${pkgdir}"/etc/cupshelpers/ + rm -r "${pkgdir}"/etc/udev/ + rm -r "${pkgdir}"/usr/lib/ } diff --git a/extra/xfprint/PKGBUILD b/extra/xfprint/PKGBUILD deleted file mode 100644 index 984dec831..000000000 --- a/extra/xfprint/PKGBUILD +++ /dev/null @@ -1,35 +0,0 @@ -# $Id: PKGBUILD 122851 2011-05-06 14:01:10Z stephane $ -# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org> - -pkgname=xfprint -pkgver=4.6.1 -pkgrel=5 -pkgdesc="A print dialog and a printer manager for Xfce" -arch=(i686 x86_64 'mips64el') -license=('GPL2') -url="http://www.xfce.org/" -groups=('xfce4') -depends=("libxfcegui4>=$pkgver" "xfconf>=$pkgver" 'libcups>=1.3.10' 'a2ps' 'krb5' - 'gnutls>=2.6.5' 'hicolor-icon-theme') -makedepends=('pkgconfig' 'intltool') -options=('!libtool') -install=${pkgname}.install -source=(http://archive.xfce.org/xfce/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2 - xfprint-manager-fix.diff) -md5sums=('d92fca97a42816085080baf07a99a62e' - '69b3619a285e94d602a1d0ac08f4ca06') - -build() { - cd ${srcdir}/${pkgname}-${pkgver} - # fix xfprint-manager not showing cups printers - # see http://bugs.archlinux.org/task/19965, http://bugs.gentoo.org/278047, http://bugzilla.xfce.org/show_bug.cgi?id=6089 - patch -Np0 -i ${srcdir}/xfprint-manager-fix.diff - ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ - --localstatedir=/var --disable-static - make -} - -package() { - cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install -} diff --git a/extra/xfprint/xfprint-manager-fix.diff b/extra/xfprint/xfprint-manager-fix.diff deleted file mode 100644 index 1bf0725f8..000000000 --- a/extra/xfprint/xfprint-manager-fix.diff +++ /dev/null @@ -1,29 +0,0 @@ ---- xfprint-manager/main.c 2009-02-24 21:34:16.000000000 +0000 -+++ xfprint-manager/main.c.new 2010-07-15 21:30:51.098745852 +0000 -@@ -41,6 +41,7 @@ - #include <libxfprint/printer-list-window.h> - - #define CHANNEL "xfprint" -+#define PROP_PRINTING_SYSTEM "/printing-system" - - extern void mainwin_setup (void); - -@@ -66,15 +67,15 @@ - channel = xfconf_channel_new (CHANNEL); - if (channel) { - -- if (xfconf_channel_has_property (channel, "/XfPrint/system")) { -- const gchar *system_name = xfconf_channel_get_string (channel, "/XfPrint/system", "none"); -+ if (xfconf_channel_has_property (channel, PROP_PRINTING_SYSTEM)) { -+ const gchar *system_name = xfconf_channel_get_string (channel, PROP_PRINTING_SYSTEM, "none"); - if (g_ascii_strcasecmp (system_name, "none") != 0) { - ps = printing_system_new (system_name); - if (ps == NULL); - g_warning ("Unable to load printing system module %s", system_name); - } - } else { -- g_warning ("%s: XfPrint/system is not set", PACKAGE); -+ g_warning ("%s: XfPrint/printing-system is not set", PACKAGE); - } - } - diff --git a/extra/xfprint/xfprint.install b/extra/xfprint/xfprint.install deleted file mode 100644 index 21b79d2d4..000000000 --- a/extra/xfprint/xfprint.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor -} - -post_upgrade() { - post_install $1 -} - -post_remove() { - gtk-update-icon-cache -q -t -f usr/share/icons/hicolor -} |