diff options
Diffstat (limited to 'libre')
120 files changed, 3030 insertions, 4547 deletions
diff --git a/libre/abs-libre/abs.install b/libre/abs-libre/abs.install deleted file mode 100644 index ac814c2fc..000000000 --- a/libre/abs-libre/abs.install +++ /dev/null @@ -1,13 +0,0 @@ -pre_upgrade() { - if [ "$(vercmp $2 2.3.2-1)" -lt 0 ]; then - echo "==> Fixing potential ABS tree permission issues (this may take a while...)" - - for dir in core extra community testing; do - if [ -d /var/abs/$dir ]; then - find /var/abs/$dir -type d -exec chown root:root {} \; - find /var/abs/$dir -type d -exec chmod 755 {} \; - fi - done - fi -} - diff --git a/libre/abs-libre/PKGBUILD b/libre/abs/PKGBUILD index 259cf007f..f7e85d0ef 100644 --- a/libre/abs-libre/PKGBUILD +++ b/libre/abs/PKGBUILD @@ -1,11 +1,12 @@ -# $Id: PKGBUILD 166402 2012-09-07 16:49:13Z dreisner $ +# $Id$ # Maintainer: Allan McRae <allan@archlinux.org> -_pkgname=abs -pkgname=abs-libre -#CARCH=mips64el +replaces=('abs-libre') +conflicts=('abs-libre') + +pkgname=abs pkgver=2.4.4 -pkgrel=1 +pkgrel=1.1 pkgdesc="Utilities to download and work with the Arch Build System (ABS)" arch=('i686' 'x86_64' 'mips64el') url="http://projects.archlinux.org/abs.git/" @@ -15,18 +16,15 @@ backup=(etc/abs.conf) source=(ftp://ftp.archlinux.org/other/abs/${pkgname}-${pkgver}.tar.gz{,.sig}) md5sums=('7258c739a93e02a4f31f114e9fc3b0ba' 'a628f7d5b1cd1e838366b88709690c24') -provides=("${_pkgname}=${pkgver}") -replaces=("${_pkgname}") -conflicts=("${_pkgname}") build() { - cd "$_pkgname-$pkgver" + cd "$pkgname-$pkgver" make } package() { - cd "$_pkgname-$pkgver" + cd "$pkgname-$pkgver" make DESTDIR="${pkgdir}" install @@ -34,18 +32,11 @@ package() { install -dm755 "${pkgdir}"/var/abs/local/ install -Dm644 README "${pkgdir}"/var/abs/README - sed -i -e 's|rsync.archlinux.org|parabolagnulinux.org|' ${pkgdir}/etc/abs.conf - sed -i -e 's|(core|(libre !libre-testing core|' ${pkgdir}/etc/abs.conf - # make adjustments to abs.conf - if [[ $CARCH = "i686" ]]; then + sed -i -e 's|rsync.archlinux.org|parabolagnulinux.org|' "${pkgdir}"/etc/abs.conf + sed -i -e 's|(core|(libre !libre-testing core|' "${pkgdir}"/etc/abs.conf + if [[ $CARCH != "x86_64" ]]; then sed -i -e 's| multilib||' -e 's| !multilib-testing||' "${pkgdir}"/etc/abs.conf fi - if [[ $CARCH = "x86_64" ]]; then - sed -i '/ARCH=/s|i686|x86_64|' "${pkgdir}"/etc/abs.conf - fi - if [[ $CARCH = "mips64el" ]]; then - sed -i -e 's| multilib||' -e 's| !multilib-testing||' ${pkgdir}/etc/abs.conf - sed -i '/ARCH=/s|i686|mips64el|' ${pkgdir}/etc/abs.conf - fi + sed -i "s/ARCH=.*/ARCH=$CARCH/" "${pkgdir}"/etc/abs.conf } diff --git a/libre/abuse-libre/PKGBUILD b/libre/abuse-libre/PKGBUILD index 251b52851..8108a95bf 100644 --- a/libre/abuse-libre/PKGBUILD +++ b/libre/abuse-libre/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: jlvsimoes <jlvsimoes@oninet.pt> # Contributor: kevin <kevin@archlinux.org> -# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy> +# Contributor (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=abuse pkgname=abuse-libre diff --git a/libre/atool-libre/PKGBUILD b/libre/atool-libre/PKGBUILD index ea1dfec52..0745630ad 100644 --- a/libre/atool-libre/PKGBUILD +++ b/libre/atool-libre/PKGBUILD @@ -3,7 +3,7 @@ # Contributor: leif_thande <leif.thande@gmail.com> # Contributor: tranquility <trankas@gmail.com> # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> -# Contributor (Parabola): Márcio Silva <coadde@lavabit.com> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> _pkgname=atool pkgname=atool-libre diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD index 8108ea353..cfbf19e5c 100644 --- a/libre/audacious-plugins-libre/PKGBUILD +++ b/libre/audacious-plugins-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 177005 2013-02-04 00:31:50Z bisson $ +# $Id: PKGBUILD 189208 2013-06-29 12:06:26Z bisson $ # Maintainer: Gaetan Bisson <bisson@archlinux.org> # Contributor: Alexander Fehr <pizzapunk gmail com> # Contributor: William Rea <sillywilly@gmail.com> @@ -8,9 +8,9 @@ _pkgname=audacious-plugins pkgname=audacious-plugins-libre -pkgver=3.3.4 -pkgrel=2 -pkgdesc='Plugins for Audacious without unfree plugins' +pkgver=3.4 +pkgrel=1 +pkgdesc='Plugins for Audacious, without nonfree plugins' url='http://audacious-media-player.org/' license=('GPL' 'GPL3' 'LGPL' 'custom:BSD') arch=('i686' 'x86_64' 'mips64el') @@ -24,17 +24,17 @@ arch=('i686' 'x86_64' 'mips64el') # # All the other custom licensed plugins I think are mostly modified BSD or ISC. -provides=("audacious-plugins=$pkgver") -replaces=("${pkgname%-libre}") -conflicts=("${pkgname%-libre}") +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver makedepends=("audacious>=${pkgver}" 'alsa-lib' 'pulseaudio' 'jack2' 'lame' 'libvorbis' 'flac' 'mpg123' 'faad2' 'ffmpeg' 'libmodplug' 'fluidsynth' 'libcdio-paranoia' 'libsidplay' 'wavpack' 'libnotify' 'curl' 'libmtp' 'neon' 'libmms' 'libcue') -[ "$CARCH" = "mips64el" ] || makedepends+=('lirc-utils' 'oss') -optdepends=('oss: Open Sound System v4 output' +[ "$CARCH" = "mips64el" ] || makedepends+=('lirc-utils-libre' 'oss-libre') +optdepends=('oss-libre: Open Sound System v4 output' 'alsa-lib: Advanced Linux Sound Arch. output' 'pulseaudio: PulseAudio output' 'jack2: Jack Audio Connection Kit output' @@ -52,7 +52,7 @@ optdepends=('oss: Open Sound System v4 output' 'wavpack: WavPack input' 'libnotify: libnotify OSD' - 'lirc-utils: LIRC' + 'lirc-utils-libre: LIRC' 'curl: AudioScrobbler Client' 'libmtp: Upload to MTP device' @@ -61,9 +61,9 @@ optdepends=('oss: Open Sound System v4 output' 'libcue: CUE playlist format') source=("http://distfiles.audacious-media-player.org/${_pkgname}-${pkgver}.tar.bz2") -sha1sums=('6493f051417a201fc0e2de7ef36a709676f96607') +sha1sums=('2b2f1d30f0b790e6cc3e00483ed4774b0fa1fc42') -build() { +prepare() { # Retrieve upstream & remove plugin 'psf' due to issues mentioned above. sed -i s/enable_psf=yes/enable_psf=no/ ${_pkgname}-$pkgver/configure @@ -105,6 +105,10 @@ build() { install -m644 LICENSE.voice_removal $l install -m644 LICENSE.xfs $l popd +} + +build() { + cd "${srcdir}/${_pkgname}-${pkgver}" ./configure \ --prefix=/usr \ diff --git a/libre/audacity-libre/PKGBUILD b/libre/audacity-libre/PKGBUILD index 01a5bb944..e9e18ba48 100644 --- a/libre/audacity-libre/PKGBUILD +++ b/libre/audacity-libre/PKGBUILD @@ -1,6 +1,6 @@ # $Id: PKGBUILD 153455 2012-03-14 17:15:15Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> -# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy> +# Contributor (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=audacity pkgname=audacity-libre diff --git a/libre/bbswitch-libre/PKGBUILD b/libre/bbswitch-libre/PKGBUILD index 7be8ca825..f8e66c762 100644 --- a/libre/bbswitch-libre/PKGBUILD +++ b/libre/bbswitch-libre/PKGBUILD @@ -7,7 +7,7 @@ _pkgname=bbswitch pkgname=bbswitch-libre pkgver=0.7 _extramodules=extramodules-3.9-LIBRE # Don't forget to update bbswitch.install -pkgrel=3 +pkgrel=4 pkgdesc="Kernel module allowing to switch dedicated graphics card on Optimus laptops (built for the linux-libre kernel package)" arch=('i686' 'x86_64' 'mips64el') url=("http://github.com/Bumblebee-Project/bbswitch") @@ -25,7 +25,7 @@ build() { cd ${srcdir}/${_pkgname}-${pkgver} _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" - + make KDIR=/usr/src/linux-${_kernver} } diff --git a/libre/blackbox-libre/PKGBUILD b/libre/blackbox-libre/PKGBUILD index dd41034a1..980f35851 100644 --- a/libre/blackbox-libre/PKGBUILD +++ b/libre/blackbox-libre/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: durbatuluk <dvdscripter@gmail.org> # Contributor: Steve Ponsford <sp4d@lavabit.com> -# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> _pkgname=blackbox pkgname=${_pkgname}-libre diff --git a/libre/blender-addon-luxrender/PKGBUILD b/libre/blender-addon-luxrender/PKGBUILD index 6637e134c..040eeccf4 100644 --- a/libre/blender-addon-luxrender/PKGBUILD +++ b/libre/blender-addon-luxrender/PKGBUILD @@ -1,4 +1,4 @@ -# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> +# Maintainer: Márcio Silva <coadde@lavabit.com> pkgname=blender-addon-luxrender _pkgname=${pkgname:14:3}${pkgname::5}25 diff --git a/libre/calibre-libre/PKGBUILD b/libre/calibre-libre/PKGBUILD index 0b61073cf..339969ba1 100644 --- a/libre/calibre-libre/PKGBUILD +++ b/libre/calibre-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 92987 2013-06-21 10:34:05Z jelle $ +# $Id: PKGBUILD 93260 2013-06-30 12:27:03Z jelle $ # Maintainer: jelle van der Waa <jelle@vdwaa.nl> # Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> # Contributor: Giovanni Scafora <giovanni@archlinux.org> @@ -9,7 +9,7 @@ _pkgname=calibre pkgname=calibre-libre -pkgver=0.9.36 +pkgver=0.9.37 pkgrel=1 pkgdesc="Ebook management application, with unar support included and nonfree fonts removed" arch=('i686' 'x86_64' 'mips64el') @@ -30,7 +30,7 @@ install=calibre.install source=("http://sourceforge.net/projects/calibre/files/${pkgver}/calibre-${pkgver}.tar.xz" 'desktop_integration.patch' 'calibre-mount-helper') -md5sums=('f7dfb823bd17435c99f20b8a5f904b2a' +md5sums=('76db2eb11fe51d85ae9121203defb677' '8353d1878c5a498b3e49eddef473605f' '675cd87d41342119827ef706055491e7') diff --git a/libre/cdfs-libre/PKGBUILD b/libre/cdfs-libre/PKGBUILD index f1c6481d5..518e25312 100644 --- a/libre/cdfs-libre/PKGBUILD +++ b/libre/cdfs-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 92970 2013-06-21 08:06:15Z tpowa $ +# $Id: PKGBUILD 93210 2013-06-28 18:33:45Z foutrelis $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -7,7 +7,7 @@ _pkgname=cdfs pkgname=cdfs-libre pkgver=2.6.27 _extramodules=extramodules-3.9-LIBRE # Don't forget to update cdfs.install -pkgrel=47 +pkgrel=48 pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files (built for the linux-libre kernel package)" arch=(i686 x86_64 mips64el) url="http://www.elis.UGent.be/~ronsse/cdfs/" diff --git a/libre/cgminer-libre/PKGBUILD b/libre/cgminer-libre/PKGBUILD index 001cd00f2..0fb3b9116 100644 --- a/libre/cgminer-libre/PKGBUILD +++ b/libre/cgminer-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 93076 2013-06-24 03:20:38Z fyan $ +# $Id: PKGBUILD 93146 2013-06-26 07:01:43Z fyan $ # Maintainer: Felix Yan <felixonmars@gmail.com> # Contributor: monson <holymonson@gmail.com> # Contributor: Thomas Dziedzic < gostrc at gmail > @@ -7,7 +7,7 @@ pkgname=cgminer-libre _pkgflag=libre -pkgver=3.3.0 +pkgver=3.3.1 pkgrel=1 pkgdesc="Multi-threaded multi-pool GPU, FPGA and ASIC miner for bitcoin and derivative coins, without nonfree OpenCL recommendation" url='http://forum.bitcoin.org/index.php?topic=28402.0' @@ -51,6 +51,6 @@ package() { install -Dm644 ${pkgname%-$_pkgflag}.conf "$pkgdir"/etc/${pkgname%-$_pkgflag}.conf } -md5sums=('65af0ace6627d2ff50203d9a789f52da' +md5sums=('1e6ccf16c4695fc086581bbb95923abe' 'fe4a243fabe24608f5c05e40f0f118f6' 'bd76fc92fedce18c59ccea2aa79cc664') diff --git a/libre/cups-filters-libre/PKGBUILD b/libre/cups-filters-libre/PKGBUILD index d29becae5..d1b2948f6 100644 --- a/libre/cups-filters-libre/PKGBUILD +++ b/libre/cups-filters-libre/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 185774 2013-05-18 15:32:58Z andyrtr $ +# $Id: PKGBUILD 188974 2013-06-27 14:08:06Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgname=cups-filters-libre _pkgname=cups-filters -pkgver=1.0.34 -pkgrel=4 +pkgver=1.0.35 +pkgrel=1 pkgdesc="OpenPrinting CUPS Filters, without foomatic-db-nonfree recommendation" arch=('i686' 'x86_64' 'mips64el') url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting" @@ -19,7 +19,7 @@ backup=(etc/fonts/conf.d/99pdftoopvp.conf options=(!libtool) source=(http://www.openprinting.org/download/cups-filters/$_pkgname-$pkgver.tar.gz cups-browsed.service) -md5sums=('fea9cad6bbb14ab0635243ed5d1d5c77' +md5sums=('26f150f1e9ce1f7b0f38ae4ebb01e23d' '9ef68d7c2a84713fd421f4e87dec0a6e') replaces=("${_pkgname}") conflicts=("${_pkgname}") diff --git a/libre/django13/PKGBUILD b/libre/django13/PKGBUILD deleted file mode 100644 index 554acccc7..000000000 --- a/libre/django13/PKGBUILD +++ /dev/null @@ -1,47 +0,0 @@ -# $Id$ -# Maintainer: Dan McGee <dan@archlinux.org> -# Contributor: Shahar Weiss <sweiss4@gmx.net> - -pkgname=django -pkgver=1.3.1 -pkgrel=2 -pkgdesc="A high-level Python Web framework." -arch=('any') -license=('BSD') -url="http://www.djangoproject.com/" -depends=('python2') -makedepends=('python2-distribute') -optdepends=('mysql-python: for MySQL backend' - 'python2-psycopg2: for PostgreSQL backend') -source=("https://www.djangoproject.com/m/releases/1.3/Django-$pkgver.tar.gz" - diff-django_branches_releases_1.3.X-from-16768-to-17460.diff) -md5sums=('62d8642fd06b9a0bf8544178f8500767' - 'd09d8f9e156b9aa1b580a1b43209b99f') -sha256sums=('af9118c4e8a063deb0b8cda901fcff2b805e7cf496c93fd43507163f3cde156b' - '8e08b5b5bbe7c042a1df4d5615a9d068ec6718fd00bef627c0a9a9e48ee58c15') - -build() { - cd "$srcdir/Django-$pkgver" - patch -Np1 -i ../diff-django_branches_releases_1.3.X-from-16768-to-17460.diff - python2 setup.py build -} - -package() { - cd "$srcdir/Django-$pkgver" - python2 setup.py install --root="$pkgdir" --optimize=1 - - install -Dm644 extras/django_bash_completion \ - "$pkgdir"/etc/bash_completion.d/django - - find "$pkgdir"/usr/lib/python2.7/site-packages/django/ -name '*.py' | \ - xargs sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" - - install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE -} - -_pkgname=$pkgname -pkgname=django13 -pkgdesc+=" (legacy version for ParabolaWeb)" -pkgrel+=.1 -provides=("$_pkgname=$pkgver") -conflicts=("$_pkgname") diff --git a/libre/django13/diff-django_branches_releases_1.3.X-from-16768-to-17460.diff b/libre/django13/diff-django_branches_releases_1.3.X-from-16768-to-17460.diff deleted file mode 100644 index c6819c1ab..000000000 --- a/libre/django13/diff-django_branches_releases_1.3.X-from-16768-to-17460.diff +++ /dev/null @@ -1,1573 +0,0 @@ -diff --git a/README b/README -index c7d225c..47bfd33 100644 ---- a/README -+++ b/README -@@ -28,7 +28,7 @@ http://code.djangoproject.com/newticket - To get more help: - - * Join the #django channel on irc.freenode.net. Lots of helpful people -- hang out there. Read the archives at http://botland.oebfare.com/logger/django/. -+ hang out there. Read the archives at http://django-irc-logs.com/. - - * Join the django-users mailing list, or read the archives, at - http://groups.google.com/group/django-users. -diff --git a/django/contrib/admin/media/css/forms.css b/django/contrib/admin/media/css/forms.css -index 1cedf24..35d0ed7 100644 ---- a/django/contrib/admin/media/css/forms.css -+++ b/django/contrib/admin/media/css/forms.css -@@ -352,9 +352,3 @@ fieldset.monospace textarea { - .empty-form { - display: none; - } -- --/* IE7 specific bug fixes */ -- --.submit-row input { -- float: right; --} -\ No newline at end of file -diff --git a/django/contrib/gis/db/backends/spatialite/compiler.py b/django/contrib/gis/db/backends/spatialite/compiler.py -deleted file mode 100644 -index 3f81ae6..0000000 ---- a/django/contrib/gis/db/backends/spatialite/compiler.py -+++ /dev/null -@@ -1,32 +0,0 @@ --from django.db.backends.util import typecast_timestamp --from django.db.models.sql import compiler --from django.db.models.sql.constants import MULTI --from django.contrib.gis.db.models.sql.compiler import GeoSQLCompiler as BaseGeoSQLCompiler -- --SQLCompiler = compiler.SQLCompiler -- --class GeoSQLCompiler(BaseGeoSQLCompiler, SQLCompiler): -- pass -- --class SQLInsertCompiler(compiler.SQLInsertCompiler, GeoSQLCompiler): -- pass -- --class SQLDeleteCompiler(compiler.SQLDeleteCompiler, GeoSQLCompiler): -- pass -- --class SQLUpdateCompiler(compiler.SQLUpdateCompiler, GeoSQLCompiler): -- pass -- --class SQLAggregateCompiler(compiler.SQLAggregateCompiler, GeoSQLCompiler): -- pass -- --class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): -- """ -- This is overridden for GeoDjango to properly cast date columns, see #16757. -- """ -- def results_iter(self): -- offset = len(self.query.extra_select) -- for rows in self.execute_sql(MULTI): -- for row in rows: -- date = typecast_timestamp(str(row[offset])) -- yield date -diff --git a/django/contrib/gis/db/backends/spatialite/creation.py b/django/contrib/gis/db/backends/spatialite/creation.py -index c107d96..ee5f9db 100644 ---- a/django/contrib/gis/db/backends/spatialite/creation.py -+++ b/django/contrib/gis/db/backends/spatialite/creation.py -@@ -56,14 +56,6 @@ class SpatiaLiteCreation(DatabaseCreation): - interactive=False, - database=self.connection.alias) - -- # One effect of calling syncdb followed by flush is that the id of the -- # default site may or may not be 1, depending on how the sequence was -- # reset. If the sites app is loaded, then we coerce it. -- from django.db.models import get_model -- Site = get_model('sites', 'Site') -- if Site is not None and Site.objects.using(self.connection.alias).count() == 1: -- Site.objects.using(self.connection.alias).update(id=settings.SITE_ID) -- - from django.core.cache import get_cache - from django.core.cache.backends.db import BaseDatabaseCache - for cache_alias in settings.CACHES: -diff --git a/django/contrib/gis/db/backends/spatialite/operations.py b/django/contrib/gis/db/backends/spatialite/operations.py -index 1dc612c..e6f8409 100644 ---- a/django/contrib/gis/db/backends/spatialite/operations.py -+++ b/django/contrib/gis/db/backends/spatialite/operations.py -@@ -48,7 +48,7 @@ def get_dist_ops(operator): - return (SpatiaLiteDistance(operator),) - - class SpatiaLiteOperations(DatabaseOperations, BaseSpatialOperations): -- compiler_module = 'django.contrib.gis.db.backends.spatialite.compiler' -+ compiler_module = 'django.contrib.gis.db.models.sql.compiler' - name = 'spatialite' - spatialite = True - version_regex = re.compile(r'^(?P<major>\d)\.(?P<minor1>\d)\.(?P<minor2>\d+)') -diff --git a/django/contrib/gis/db/models/sql/compiler.py b/django/contrib/gis/db/models/sql/compiler.py -index 782ce78..405a000 100644 ---- a/django/contrib/gis/db/models/sql/compiler.py -+++ b/django/contrib/gis/db/models/sql/compiler.py -@@ -1,7 +1,7 @@ - from itertools import izip --from django.db.backends.util import truncate_name -+from django.db.backends.util import truncate_name, typecast_timestamp - from django.db.models.sql import compiler --from django.db.models.sql.constants import TABLE_NAME -+from django.db.models.sql.constants import TABLE_NAME, MULTI - from django.db.models.sql.query import get_proxied_model - - SQLCompiler = compiler.SQLCompiler -@@ -194,7 +194,7 @@ class GeoSQLCompiler(compiler.SQLCompiler): - # We resolve the rest of the columns if we're on Oracle or if - # the `geo_values` attribute is defined. - for value, field in map(None, row[index_start:], fields): -- values.append(self.query.convert_values(value, field, connection=self.connection)) -+ values.append(self.query.convert_values(value, field, self.connection)) - else: - values.extend(row[index_start:]) - return tuple(values) -@@ -275,4 +275,24 @@ class SQLAggregateCompiler(compiler.SQLAggregateCompiler, GeoSQLCompiler): - pass - - class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): -- pass -+ """ -+ This is overridden for GeoDjango to properly cast date columns, since -+ `GeoQuery.resolve_columns` is used for spatial values. -+ See #14648, #16757. -+ """ -+ def results_iter(self): -+ if self.connection.ops.oracle: -+ from django.db.models.fields import DateTimeField -+ fields = [DateTimeField()] -+ else: -+ needs_string_cast = self.connection.features.needs_datetime_string_cast -+ -+ offset = len(self.query.extra_select) -+ for rows in self.execute_sql(MULTI): -+ for row in rows: -+ date = row[offset] -+ if self.connection.ops.oracle: -+ date = self.resolve_columns(row, fields)[offset] -+ elif needs_string_cast: -+ date = typecast_timestamp(str(date)) -+ yield date -diff --git a/django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz b/django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz -index 68bf54c..8937637 100644 -Binary files a/django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz and b/django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz differ -diff --git a/django/contrib/gis/tests/relatedapp/models.py b/django/contrib/gis/tests/relatedapp/models.py -index 2e9a62b..aec4e15 100644 ---- a/django/contrib/gis/tests/relatedapp/models.py -+++ b/django/contrib/gis/tests/relatedapp/models.py -@@ -36,6 +36,7 @@ class Parcel(models.Model): - # These use the GeoManager but do not have any geographic fields. - class Author(models.Model): - name = models.CharField(max_length=100) -+ dob = models.DateField() - objects = models.GeoManager() - - class Article(models.Model): -diff --git a/django/contrib/gis/tests/relatedapp/tests.py b/django/contrib/gis/tests/relatedapp/tests.py -index 250783b..1a6197c 100644 ---- a/django/contrib/gis/tests/relatedapp/tests.py -+++ b/django/contrib/gis/tests/relatedapp/tests.py -@@ -1,3 +1,4 @@ -+from datetime import date - from django.test import TestCase - - from django.contrib.gis.geos import GEOSGeometry, Point, MultiPoint -@@ -281,4 +282,11 @@ class RelatedGeoModelTest(TestCase): - # evaluated as list generation swallows TypeError in CPython. - sql = str(qs.query) - -+ def test16_annotated_date_queryset(self): -+ "Ensure annotated date querysets work if spatial backend is used. See #14648." -+ birth_years = [dt.year for dt in -+ list(Author.objects.annotate(num_books=Count('books')).dates('dob', 'year'))] -+ birth_years.sort() -+ self.assertEqual([1950, 1974], birth_years) -+ - # TODO: Related tests for KML, GML, and distance lookups. -diff --git a/django/contrib/sites/management.py b/django/contrib/sites/management.py -index 1987274..9bf5a14 100644 ---- a/django/contrib/sites/management.py -+++ b/django/contrib/sites/management.py -@@ -3,15 +3,34 @@ Creates the default Site object. - """ - - from django.db.models import signals -+from django.db import connections -+from django.db import router - from django.contrib.sites.models import Site - from django.contrib.sites import models as site_app -+from django.core.management.color import no_style - - def create_default_site(app, created_models, verbosity, db, **kwargs): -- if Site in created_models: -+ # Only create the default sites in databases where Django created the table -+ if Site in created_models and router.allow_syncdb(db, Site) : -+ # The default settings set SITE_ID = 1, and some tests in Django's test -+ # suite rely on this value. However, if database sequences are reused -+ # (e.g. in the test suite after flush/syncdb), it isn't guaranteed that -+ # the next id will be 1, so we coerce it. See #15573 and #16353. This -+ # can also crop up outside of tests - see #15346. - if verbosity >= 2: - print "Creating example.com Site object" -- s = Site(domain="example.com", name="example.com") -- s.save(using=db) -+ Site(pk=1, domain="example.com", name="example.com").save(using=db) -+ -+ # We set an explicit pk instead of relying on auto-incrementation, -+ # so we need to reset the database sequence. -+ sequence_sql = connections[db].ops.sequence_reset_sql(no_style(), [Site]) -+ if sequence_sql: -+ if verbosity >= 2: -+ print "Resetting sequence" -+ cursor = connections[db].cursor() -+ for command in sequence_sql: -+ cursor.execute(command) -+ - Site.objects.clear_cache() - - signals.post_syncdb.connect(create_default_site, sender=site_app) -diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py -index 17ab1f2..828badb 100644 ---- a/django/contrib/sites/tests.py -+++ b/django/contrib/sites/tests.py -@@ -15,6 +15,12 @@ class SitesFrameworkTests(TestCase): - def tearDown(self): - Site._meta.installed = self.old_Site_meta_installed - -+ def test_save_another(self): -+ # Regression for #17415 -+ # On some backends the sequence needs reset after save with explicit ID. -+ # Test that there is no sequence collisions by saving another site. -+ Site(domain="example2.com", name="example2.com").save() -+ - def test_site_manager(self): - # Make sure that get_current() does not return a deleted Site object. - s = Site.objects.get_current() -diff --git a/django/core/management/commands/shell.py b/django/core/management/commands/shell.py -index e4ce462..039ebb8 100644 ---- a/django/core/management/commands/shell.py -+++ b/django/core/management/commands/shell.py -@@ -13,9 +13,8 @@ class Command(NoArgsCommand): - - def ipython(self): - try: -- from IPython.frontend.terminal.embed import TerminalInteractiveShell -- shell = TerminalInteractiveShell() -- shell.mainloop() -+ from IPython import embed -+ embed() - except ImportError: - # IPython < 0.11 - # Explicitly pass an empty list as arguments, because otherwise -diff --git a/django/core/validators.py b/django/core/validators.py -index a93c6ac..9dcc2bc 100644 ---- a/django/core/validators.py -+++ b/django/core/validators.py -@@ -147,7 +147,8 @@ class EmailValidator(RegexValidator): - - email_re = re.compile( - r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom -- r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' # quoted-string -+ # quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5 -+ r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"' - r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$', re.IGNORECASE) # domain - validate_email = EmailValidator(email_re, _(u'Enter a valid e-mail address.'), 'invalid') - -diff --git a/django/db/backends/creation.py b/django/db/backends/creation.py -index 57e3f77..ef594b7 100644 ---- a/django/db/backends/creation.py -+++ b/django/db/backends/creation.py -@@ -374,15 +374,6 @@ class BaseDatabaseCreation(object): - verbosity=max(verbosity - 1, 0), - interactive=False, - database=self.connection.alias) -- -- # One effect of calling syncdb followed by flush is that the id of the -- # default site may or may not be 1, depending on how the sequence was -- # reset. If the sites app is loaded, then we coerce it. -- from django.db.models import get_model -- if 'django.contrib.sites' in settings.INSTALLED_APPS: -- Site = get_model('sites', 'Site') -- if Site is not None and Site.objects.using(self.connection.alias).count() == 1: -- Site.objects.using(self.connection.alias).update(id=settings.SITE_ID) - - from django.core.cache import get_cache - from django.core.cache.backends.db import BaseDatabaseCache -diff --git a/django/http/__init__.py b/django/http/__init__.py -index 68ac45d..07e5a46 100644 ---- a/django/http/__init__.py -+++ b/django/http/__init__.py -@@ -92,7 +92,7 @@ else: - if not _cookie_allows_colon_in_names: - def load(self, rawdata, ignore_parse_errors=False): - if ignore_parse_errors: -- self.bad_cookies = [] -+ self.bad_cookies = set() - self._BaseCookie__set = self._loose_set - super(SimpleCookie, self).load(rawdata) - if ignore_parse_errors: -@@ -106,8 +106,8 @@ else: - try: - self._strict_set(key, real_value, coded_value) - except Cookie.CookieError: -- self.bad_cookies.append(key) -- dict.__setitem__(self, key, None) -+ self.bad_cookies.add(key) -+ dict.__setitem__(self, key, Cookie.Morsel()) - - - class CompatCookie(SimpleCookie): -diff --git a/django/http/utils.py b/django/http/utils.py -index 5eea239..0180864 100644 ---- a/django/http/utils.py -+++ b/django/http/utils.py -@@ -76,7 +76,8 @@ def fix_IE_for_vary(request, response): - - # The first part of the Content-Type field will be the MIME type, - # everything after ';', such as character-set, can be ignored. -- if response['Content-Type'].split(';')[0] not in safe_mime_types: -+ mime_type = response.get('Content-Type', '').partition(';')[0] -+ if mime_type not in safe_mime_types: - try: - del response['Vary'] - except KeyError: -diff --git a/docs/howto/deployment/modpython.txt b/docs/howto/deployment/modpython.txt -index f5030e9..693f942 100644 ---- a/docs/howto/deployment/modpython.txt -+++ b/docs/howto/deployment/modpython.txt -@@ -293,11 +293,14 @@ of the admin app, but this is not the case when you use any other server - arrangement. You're responsible for setting up Apache, or whichever media - server you're using, to serve the admin files. - --The admin files live in (:file:`django/contrib/admin/static/admin`) of the -+The admin files live in (:file:`django/contrib/admin/media/admin`) of the - Django distribution. - --We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle --the admin files, but here are two other approaches: -+We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle the -+admin files (this means using the :djadmin:`collectstatic` management command -+to collect the static files in :setting:`STATIC_ROOT`, and then configuring -+your webserver to serve :setting:`STATIC_ROOT` at :setting:`STATIC_URL`), but -+here are two other approaches: - - 1. Create a symbolic link to the admin static files from within your - document root. -diff --git a/docs/howto/deployment/modwsgi.txt b/docs/howto/deployment/modwsgi.txt -index de3a5b6..fdf9d27 100644 ---- a/docs/howto/deployment/modwsgi.txt -+++ b/docs/howto/deployment/modwsgi.txt -@@ -127,11 +127,14 @@ of the admin app, but this is not the case when you use any other server - arrangement. You're responsible for setting up Apache, or whichever media - server you're using, to serve the admin files. - --The admin files live in (:file:`django/contrib/admin/static/admin`) of the -+The admin files live in (:file:`django/contrib/admin/media/admin`) of the - Django distribution. - --We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle --the admin files, but here are two other approaches: -+We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle the -+admin files (this means using the :djadmin:`collectstatic` management command -+to collect the static files in :setting:`STATIC_ROOT`, and then configuring -+your webserver to serve :setting:`STATIC_ROOT` at :setting:`STATIC_URL`), but -+here are two other approaches: - - 1. Create a symbolic link to the admin static files from within your - document root. -diff --git a/docs/index.txt b/docs/index.txt -index 0cf066e..20a7cec 100644 ---- a/docs/index.txt -+++ b/docs/index.txt -@@ -28,7 +28,7 @@ Having trouble? We'd like to help! - .. _archives of the django-users mailing list: http://groups.google.com/group/django-users/ - .. _post a question: http://groups.google.com/group/django-users/ - .. _#django IRC channel: irc://irc.freenode.net/django --.. _IRC logs: http://botland.oebfare.com/logger/django/ -+.. _IRC logs: http://django-irc-logs.com/ - .. _ticket tracker: http://code.djangoproject.com/ - - First steps -diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt -index 3f0f998..ca29d15 100644 ---- a/docs/internals/deprecation.txt -+++ b/docs/internals/deprecation.txt -@@ -177,6 +177,12 @@ their deprecation, as per the :ref:`Django deprecation policy - required to end with a trailing slash to ensure there is a consistent - way to combine paths in templates. - -+ * Translations located under the so-called *project path* will be -+ ignored during the translation building process performed at runtime. -+ The :setting:`LOCALE_PATHS` setting can be used for the same task by -+ including the filesystem path to a ``locale`` directory containing -+ non-app-specific translations in its value. -+ - * 2.0 - * ``django.views.defaults.shortcut()``. This function has been moved - to ``django.contrib.contenttypes.views.shortcut()`` as part of the -diff --git a/docs/internals/release-process.txt b/docs/internals/release-process.txt -index 2a56f0b..799a59e 100644 ---- a/docs/internals/release-process.txt -+++ b/docs/internals/release-process.txt -@@ -99,6 +99,13 @@ varying levels: - * Security fixes will be applied to the current trunk and the previous two - minor releases. - -+* Documentation fixes will generally be more freely backported to the last -+ release branch (at the discretion of the committer), and don't need to meet -+ the "critical fixes only" bar as it's highly advantageous to have the docs -+ for the last release be up-to-date and correct, and the downside of -+ backporting (risk of introducing regressions) is much less of a concern -+ with doc fixes. -+ - As a concrete example, consider a moment in time halfway between the release of - Django 1.3 and 1.4. At this point in time: - -@@ -111,6 +118,9 @@ Django 1.3 and 1.4. At this point in time: - ``1.2.X`` branch. Security fixes will trigger the release of ``1.3.1``, - ``1.2.1``, etc. - -+* Documentation fixes will be applied to trunk, and if easily backported, to -+ the ``1.3.X`` branch. -+ - .. _release-process: - - Release process -diff --git a/docs/intro/index.txt b/docs/intro/index.txt -index bc61be7..19290a5 100644 ---- a/docs/intro/index.txt -+++ b/docs/intro/index.txt -@@ -31,6 +31,6 @@ place: read this material to quickly get up and running. - - .. _python: http://python.org/ - .. _list of Python resources for non-programmers: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers -- .. _dive into python: http://diveintopython.org/ -+ .. _dive into python: http://diveintopython.net/ - .. _dead-tree version: http://www.amazon.com/exec/obidos/ASIN/1590593561/ref=nosim/jacobian20 - .. _books about Python: http://wiki.python.org/moin/PythonBooks -\ No newline at end of file -diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt -index 2f2e049..4dc1e5c 100644 ---- a/docs/intro/tutorial01.txt -+++ b/docs/intro/tutorial01.txt -@@ -59,7 +59,7 @@ This will create a ``mysite`` directory in your current directory. - can be run as a program. To do this, open Terminal.app and navigate (using - the ``cd`` command) to the directory where :doc:`django-admin.py - </ref/django-admin>` is installed, then run the command -- ``chmod +x django-admin.py``. -+ ``sudo chmod +x django-admin.py``. - - .. note:: - -@@ -692,10 +692,9 @@ Save these changes and start a new Python interactive shell by running - - For more information on model relations, see :doc:`Accessing related objects - </ref/models/relations>`. For more on how to use double underscores to perform --field lookups via the API, see `Field lookups`__. For full details on the --database API, see our :doc:`Database API reference </topics/db/queries>`. -- --__ http://docs.djangoproject.com/en/1.2/topics/db/queries/#field-lookups -+field lookups via the API, see :ref:`Field lookups <field-lookups-intro>`. For -+full details on the database API, see our :doc:`Database API reference -+</topics/db/queries>`. - - When you're comfortable with the API, read :doc:`part 2 of this tutorial - </intro/tutorial02>` to get Django's automatic admin working. -diff --git a/docs/intro/tutorial02.txt b/docs/intro/tutorial02.txt -index 4bd31fb..1e837e6 100644 ---- a/docs/intro/tutorial02.txt -+++ b/docs/intro/tutorial02.txt -@@ -40,22 +40,22 @@ activate the admin site for your installation, do these three things: - - .. parsed-literal:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - # Uncomment the next two lines to enable the admin: - **from django.contrib import admin** - **admin.autodiscover()** - - urlpatterns = patterns('', -- # Example: -- # (r'^mysite/', include('mysite.foo.urls')), -+ # Examples: -+ # url(r'^$', 'mysite.views.home', name='home'), -+ # url(r'^mysite/', include('mysite.foo.urls')), - -- # Uncomment the admin/doc line below and add 'django.contrib.admindocs' -- # to INSTALLED_APPS to enable admin documentation: -- # (r'^admin/doc/', include('django.contrib.admindocs.urls')), -+ # Uncomment the admin/doc line below to enable admin documentation: -+ # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: -- **(r'^admin/', include(admin.site.urls)),** -+ **url(r'^admin/', include(admin.site.urls)),** - ) - - (The bold lines are the ones that needed to be uncommented.) -diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt -index 41a62a7..566ba55 100644 ---- a/docs/intro/tutorial03.txt -+++ b/docs/intro/tutorial03.txt -@@ -78,17 +78,17 @@ point at that file:: - - Time for an example. Edit ``mysite/urls.py`` so it looks like this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - from django.contrib import admin - admin.autodiscover() - - urlpatterns = patterns('', -- (r'^polls/$', 'polls.views.index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -- (r'^admin/', include(admin.site.urls)), -+ url(r'^polls/$', 'polls.views.index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^admin/', include(admin.site.urls)), - ) - - This is worth a review. When somebody requests a page from your Web site -- say, -@@ -112,7 +112,7 @@ what you can do with them. And there's no need to add URL cruft such as ``.php`` - -- unless you have a sick sense of humor, in which case you can do something - like this:: - -- (r'^polls/latest\.php$', 'polls.views.index'), -+ url(r'^polls/latest\.php$', 'polls.views.index'), - - But, don't do that. It's silly. - -@@ -357,22 +357,23 @@ the list is empty. - Write a 404 (page not found) view - ================================= - --When you raise :exc:`~django.http.Http404` from within a view, Django will load --a special view devoted to handling 404 errors. It finds it by looking for the --variable ``handler404``, which is a string in Python dotted syntax -- the same --format the normal URLconf callbacks use. A 404 view itself has nothing special: --It's just a normal view. -- --You normally won't have to bother with writing 404 views. By default, URLconfs --have the following line up top:: -- -- from django.conf.urls.defaults import * -+When you raise :exc:`~django.http.Http404` from within a view, Django -+will load a special view devoted to handling 404 errors. It finds it -+by looking for the variable ``handler404`` in your root URLconf (and -+only in your root URLconf; setting ``handler404`` anywhere else will -+have no effect), which is a string in Python dotted syntax -- the same -+format the normal URLconf callbacks use. A 404 view itself has nothing -+special: It's just a normal view. - --That takes care of setting ``handler404`` in the current module. As you can see --in ``django/conf/urls/defaults.py``, ``handler404`` is set to --:func:`django.views.defaults.page_not_found` by default. -+You normally won't have to bother with writing 404 views. If you don't set -+``handler404``, the built-in view :func:`django.views.defaults.page_not_found` -+is used by default. In this case, you still have one obligation: To create a -+``404.html`` template in the root of your template directory. The default 404 -+view will use that template for all 404 errors. If :setting:`DEBUG` is set to -+``False`` (in your settings module) and if you didn't create a ``404.html`` -+file, an ``Http500`` is raised instead. So remember to create a ``404.html``. - --Four more things to note about 404 views: -+A couple more things to note about 404 views: - - * If :setting:`DEBUG` is set to ``True`` (in your settings module) then your - 404 view will never be used (and thus the ``404.html`` template will never -@@ -381,21 +382,12 @@ Four more things to note about 404 views: - * The 404 view is also called if Django doesn't find a match after checking - every regular expression in the URLconf. - -- * If you don't define your own 404 view -- and simply use the default, which -- is recommended -- you still have one obligation: To create a ``404.html`` -- template in the root of your template directory. The default 404 view will -- use that template for all 404 errors. -- -- * If :setting:`DEBUG` is set to ``False`` (in your settings module) and if -- you didn't create a ``404.html`` file, an ``Http500`` is raised instead. -- So remember to create a ``404.html``. -- - Write a 500 (server error) view - =============================== - --Similarly, URLconfs may define a ``handler500``, which points to a view to call --in case of server errors. Server errors happen when you have runtime errors in --view code. -+Similarly, your root URLconf may define a ``handler500``, which points -+to a view to call in case of server errors. Server errors happen when -+you have runtime errors in view code. - - Use the template system - ======================= -@@ -432,10 +424,10 @@ Take some time to play around with the views and template system. As you edit - the URLconf, you may notice there's a fair bit of redundancy in it:: - - urlpatterns = patterns('', -- (r'^polls/$', 'polls.views.index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^polls/$', 'polls.views.index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), - ) - - Namely, ``polls.views`` is in every callback. -@@ -445,10 +437,10 @@ common prefixes. You can factor out the common prefixes and add them as the - first argument to :func:`~django.conf.urls.defaults.patterns`, like so:: - - urlpatterns = patterns('polls.views', -- (r'^polls/$', 'index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^polls/$', 'index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - This is functionally identical to the previous formatting. It's just a bit -@@ -459,20 +451,20 @@ callback in your URLconf, you can concatenate multiple - :func:`~django.conf.urls.defaults.patterns`. Your full ``mysite/urls.py`` might - now look like this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - from django.contrib import admin - admin.autodiscover() - - urlpatterns = patterns('polls.views', -- (r'^polls/$', 'index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^polls/$', 'index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - urlpatterns += patterns('', -- (r'^admin/', include(admin.site.urls)), -+ url(r'^admin/', include(admin.site.urls)), - ) - - Decoupling the URLconfs -@@ -502,8 +494,8 @@ Copy the file ``mysite/urls.py`` to ``polls/urls.py``. Then, change - admin.autodiscover() - - urlpatterns = patterns('', -- (r'^polls/', include('polls.urls')), -- (r'^admin/', include(admin.site.urls)), -+ url(r'^polls/', include('polls.urls')), -+ url(r'^admin/', include(admin.site.urls)), - ) - - :func:`~django.conf.urls.defaults.include` simply references another URLconf. -@@ -526,13 +518,13 @@ URLconf by removing the leading "polls/" from each line, and removing the - lines registering the admin site. Your ``polls/urls.py`` file should now look like - this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - urlpatterns = patterns('polls.views', -- (r'^$', 'index'), -- (r'^(?P<poll_id>\d+)/$', 'detail'), -- (r'^(?P<poll_id>\d+)/results/$', 'results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^$', 'index'), -+ url(r'^(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - The idea behind :func:`~django.conf.urls.defaults.include` and URLconf -diff --git a/docs/intro/tutorial04.txt b/docs/intro/tutorial04.txt -index ded5cb2..4c2f2d4 100644 ---- a/docs/intro/tutorial04.txt -+++ b/docs/intro/tutorial04.txt -@@ -218,13 +218,13 @@ Read on for details. - First, open the ``polls/urls.py`` URLconf. It looks like this, according to the - tutorial so far:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - urlpatterns = patterns('polls.views', -- (r'^$', 'index'), -- (r'^(?P<poll_id>\d+)/$', 'detail'), -- (r'^(?P<poll_id>\d+)/results/$', 'results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^$', 'index'), -+ url(r'^(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - Change it like so:: -@@ -234,12 +234,12 @@ Change it like so:: - from polls.models import Poll - - urlpatterns = patterns('', -- (r'^$', -+ url(r'^$', - ListView.as_view( - queryset=Poll.objects.order_by('-pub_date')[:5], - context_object_name='latest_poll_list', - template_name='polls/index.html')), -- (r'^(?P<pk>\d+)/$', -+ url(r'^(?P<pk>\d+)/$', - DetailView.as_view( - model=Poll, - template_name='polls/detail.html')), -@@ -248,7 +248,7 @@ Change it like so:: - model=Poll, - template_name='polls/results.html'), - name='poll_results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), - ) - - We're using two generic views here: -diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt -index beff94e..7394c3a 100644 ---- a/docs/ref/contrib/admin/index.txt -+++ b/docs/ref/contrib/admin/index.txt -@@ -19,8 +19,10 @@ There are six steps in activating the Django admin site: - 1. Add ``'django.contrib.admin'`` to your :setting:`INSTALLED_APPS` - setting. - -- 2. Admin has two dependencies - :mod:`django.contrib.auth` and -- :mod:`django.contrib.contenttypes`. If these applications are not -+ 2. The admin has four dependencies - :mod:`django.contrib.auth`, -+ :mod:`django.contrib.contenttypes`, -+ :mod:`django.contrib.messages` and -+ :mod:`django.contrib.sessions`. If these applications are not - in your :setting:`INSTALLED_APPS` list, add them. - - 3. Determine which of your application's models should be editable in the -@@ -542,7 +544,7 @@ subclass:: - Fields in ``list_filter`` can also span relations using the ``__`` lookup:: - - class UserAdminWithLookup(UserAdmin): -- list_filter = ('groups__name') -+ list_filter = ('groups__name',) - - .. attribute:: ModelAdmin.list_per_page - -diff --git a/docs/ref/contrib/gis/geoip.txt b/docs/ref/contrib/gis/geoip.txt -index 6503be7..f5c45e1 100644 ---- a/docs/ref/contrib/gis/geoip.txt -+++ b/docs/ref/contrib/gis/geoip.txt -@@ -144,7 +144,7 @@ parameters. - Returns a dictionary of city information for the given query. Some - of the values in the dictionary may be undefined (``None``). - --.. method:: GeoIPcountry(query) -+.. method:: GeoIP.country(query) - - Returns a dictionary with the country code and country for the given - query. -diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt -index ca3212d..ee7e01c 100644 ---- a/docs/ref/contrib/messages.txt -+++ b/docs/ref/contrib/messages.txt -@@ -210,6 +210,10 @@ If you're using the context processor, your template should be rendered with a - ``RequestContext``. Otherwise, ensure ``messages`` is available to - the template context. - -+Even if you know there is only just one message, you should still iterate over -+the ``messages`` sequence, because otherwise the message storage will not be cleared -+for the next request. -+ - Creating custom message levels - ------------------------------ - -diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt -index 89bc43f..58b86ea 100644 ---- a/docs/ref/django-admin.txt -+++ b/docs/ref/django-admin.txt -@@ -1156,7 +1156,7 @@ variable. - Note that this option is unnecessary in ``manage.py``, because it takes care of - setting the Python path for you. - --.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html -+.. _import search path: http://diveintopython.net/getting_to_know_python/everything_is_an_object.html - - .. django-admin-option:: --settings - -diff --git a/docs/ref/models/instances.txt b/docs/ref/models/instances.txt -index 3728a09..52c0869 100644 ---- a/docs/ref/models/instances.txt -+++ b/docs/ref/models/instances.txt -@@ -470,7 +470,7 @@ the URL. For example, if your URLconf contained a line such as:: - - Similarly, if you had a URLconf entry that looked like:: - -- (r'/archive/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', archive_view) -+ (r'/archive/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', archive_view) - - ...you could reference this using ``permalink()`` as follows:: - -@@ -478,8 +478,8 @@ Similarly, if you had a URLconf entry that looked like:: - def get_absolute_url(self): - return ('archive_view', (), { - 'year': self.created.year, -- 'month': self.created.month, -- 'day': self.created.day}) -+ 'month': self.created.strftime('%m'), -+ 'day': self.created.strftime('%d')}) - - Notice that we specify an empty sequence for the second parameter in this case, - because we only want to pass keyword parameters, not positional ones. -diff --git a/docs/ref/models/options.txt b/docs/ref/models/options.txt -index 4530439..c1beab0 100644 ---- a/docs/ref/models/options.txt -+++ b/docs/ref/models/options.txt -@@ -166,6 +166,13 @@ Django quotes column and table names behind the scenes. - >>> answer.get_previous_in_order() - <Answer: 1> - -+.. admonition:: Changing order_with_respect_to -+ -+ ``order_with_respect_to`` adds an additional field/database column -+ named ``_order``, so be sure to handle that as you would any other -+ change to your models if you add or change ``order_with_respect_to`` -+ after your initial :djadmin:`syncdb`. -+ - ``ordering`` - ------------ - -@@ -238,6 +245,12 @@ Django quotes column and table names behind the scenes. - - unique_together = ("driver", "restaurant") - -+ A :class:`~django.db.models.ManyToManyField` cannot be included in -+ unique_together (it's not even clear what that would mean). If you -+ need to validate uniqueness related to a -+ :class:`~django.db.models.ManyToManyField`, look at signals or -+ using an explicit :attr:`through <ManyToManyField.through>` model. -+ - ``verbose_name`` - ---------------- - -diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt -index e83142e..ad25dce 100644 ---- a/docs/ref/signals.txt -+++ b/docs/ref/signals.txt -@@ -352,12 +352,16 @@ post_syncdb - .. data:: django.db.models.signals.post_syncdb - :module: - --Sent by :djadmin:`syncdb` after it installs an application. -+Sent by :djadmin:`syncdb` command after it installs an application, and -+:djadmin:`flush` command. - - Any handlers that listen to this signal need to be written in a particular - place: a ``management`` module in one of your :setting:`INSTALLED_APPS`. If - handlers are registered anywhere else they may not be loaded by --:djadmin:`syncdb`. -+:djadmin:`syncdb`. It is important that handlers of this signal perform -+idempotent changes (e.g. no database alterations) as this may cause the -+:djadmin:`flush` management command to fail if it also ran during the -+:djadmin:`syncdb` command. - - Arguments sent with this signal: - -diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt -index 7d24c1d..6c7057a 100644 ---- a/docs/ref/templates/builtins.txt -+++ b/docs/ref/templates/builtins.txt -@@ -1868,7 +1868,7 @@ slice - Returns a slice of the list. - - Uses the same syntax as Python's list slicing. See --http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice -+http://diveintopython.net/native_data_types/lists.html#odbchelper.list.slice - for an introduction. - - Example:: -diff --git a/docs/releases/0.95.txt b/docs/releases/0.95.txt -index 7409bff..3632c31 100644 ---- a/docs/releases/0.95.txt -+++ b/docs/releases/0.95.txt -@@ -92,15 +92,15 @@ changes is described in the `Removing The Magic`_ wiki page. There is also an - easy checklist_ for reference when undertaking the porting operation. - - .. _Removing The Magic: http://code.djangoproject.com/wiki/RemovingTheMagic --.. _checklist: http://code.djangoproject.com/wiki/MagicRemovalCheatSheet1 -+.. _checklist: http://code.djangoproject.com/wiki/MagicRemovalCheatSheet - - Problem reports and getting help - ================================ - --Need help resolving a problem with Django? The documentation in the distribution --is also available online_ at the `Django Web site`_. The :doc:`FAQ </faq/index>` --document is especially recommended, as it contains a number of issues that come --up time and again. -+Need help resolving a problem with Django? The documentation in the -+distribution is also available :doc:`online </index>` at the `Django Web -+site`_. The :doc:`FAQ </faq/index>` document is especially recommended, as it -+contains a number of issues that come up time and again. - - For more personalized help, the `django-users`_ mailing list is a very active - list, with more than 2,000 subscribers who can help you solve any sort of -@@ -113,7 +113,6 @@ there's a #django channel on irc.freenode.net that is regularly populated by - Django users and developers from around the world. Friendly people are usually - available at any hour of the day -- to help, or just to chat. - --.. _online: http://www.djangoproject.com/documentation/0.95/ - .. _Django Web site: http://www.djangoproject.com/ - .. _django-users: http://groups.google.com/group/django-users - -diff --git a/docs/releases/0.96.txt b/docs/releases/0.96.txt -index 1224360..8874ccb 100644 ---- a/docs/releases/0.96.txt -+++ b/docs/releases/0.96.txt -@@ -50,12 +50,10 @@ aside from any necessary security fixes, it will not be actively - maintained, and it will be removed in a future release of Django. - - Also, note that some features, like the new :setting:`DATABASE_OPTIONS` --setting (see the `databases documentation`_ for details), are only --available on the "mysql" backend, and will not be made available for -+setting (see the :doc:`databases documentation </ref/databases>` for details), -+are only available on the "mysql" backend, and will not be made available for - "mysql_old". - --.. _databases documentation: http://www.djangoproject.com/documentation/0.96/databases/ -- - Database constraint names changed - --------------------------------- - -@@ -164,10 +162,8 @@ Although the ``newforms`` library will continue to evolve, it's ready for use - for most common cases. We recommend that anyone new to form handling skip the - old forms system and start with the new. - --For more information about ``django.newforms``, read the `newforms --documentation`_. -- --.. _newforms documentation: http://www.djangoproject.com/documentation/0.96/newforms/ -+For more information about ``django.newforms``, read the :doc:`newforms -+documentation </topics/forms/index>`. - - URLconf improvements - -------------------- -@@ -216,19 +212,15 @@ The test framework - ------------------ - - Django now includes a test framework so you can start transmuting fear into --boredom (with apologies to Kent Beck). You can write tests based on doctest_ --or unittest_ and test your views with a simple test client. -+boredom (with apologies to Kent Beck). You can write tests based on -+:mod:`doctest` or :mod:`unittest` and test your views with a simple test client. - - There is also new support for "fixtures" -- initial data, stored in any of the --supported `serialization formats`_, that will be loaded into your database at the --start of your tests. This makes testing with real data much easier. -- --See `the testing documentation`_ for the full details. -+supported :doc:`serialization formats </topics/serialization>`, that will be -+loaded into your database at the start of your tests. This makes testing with -+real data much easier. - --.. _doctest: http://docs.python.org/library/doctest.html --.. _unittest: http://docs.python.org/library/unittest.html --.. _the testing documentation: http://www.djangoproject.com/documentation/0.96/testing/ --.. _serialization formats: http://www.djangoproject.com/documentation/0.96/serialization/ -+See :doc:`the testing documentation </topics/testing>` for the full details. - - Improvements to the admin interface - ----------------------------------- -diff --git a/docs/releases/1.0.1.txt b/docs/releases/1.0.1.txt -index 780dc53..3550e7c 100644 ---- a/docs/releases/1.0.1.txt -+++ b/docs/releases/1.0.1.txt -@@ -6,10 +6,10 @@ Welcome to Django 1.0.1! - - This is the first "bugfix" release in the Django 1.0 series, improving - the stability and performance of the Django 1.0 codebase. As such, --Django 1.0.1 contains no new features (and, pursuant to `our --compatibility policy`_, maintains backwards compatibility with Django --1.0), but does contain a number of fixes and other --improvements. Django 1.0.1 is a recommended upgrade for any -+Django 1.0.1 contains no new features (and, pursuant to :doc:`our -+compatibility policy </misc/api-stability/>`, maintains backwards -+compatibility with Django 1.0), but does contain a number of fixes -+and other improvements. Django 1.0.1 is a recommended upgrade for any - development or deployment currently using or targeting Django 1.0. - - -@@ -46,8 +46,9 @@ highlights: - - * A fix to the application of autoescaping for literal strings passed - to the ``join`` template filter. Previously, literal strings passed -- to ``join`` were automatically escaped, contrary to `the documented -- behavior for autoescaping and literal strings`_. Literal strings -+ to ``join`` were automatically escaped, contrary to :ref:`the -+ documented behavior for autoescaping and literal strings -+ <string-literals-and-automatic-escaping>`. Literal strings - passed to ``join`` are no longer automatically escaped, meaning you - must now manually escape them; this is an incompatibility if you - were relying on this bug, but not if you were relying on escaping -@@ -60,6 +61,4 @@ highlights: - documentation, including both corrections to existing documents and - expanded and new documentation. - --.. _our compatibility policy: http://docs.djangoproject.com/en/dev/misc/api-stability/ - .. _the Subversion log of the 1.0.X branch: http://code.djangoproject.com/log/django/branches/releases/1.0.X --.. _the documented behavior for autoescaping and literal strings: http://docs.djangoproject.com/en/dev/topics/templates/#string-literals-and-automatic-escaping -diff --git a/docs/releases/1.2.6.txt b/docs/releases/1.2.6.txt -new file mode 100644 -index 0000000..cfd1d9c ---- /dev/null -+++ b/docs/releases/1.2.6.txt -@@ -0,0 +1,16 @@ -+========================== -+Django 1.2.6 release notes -+========================== -+ -+*September 9, 2011* -+ -+Welcome to Django 1.2.6! -+ -+This is the sixth bugfix/security release in the Django 1.2 series, fixing -+several security issues present in Django 1.2.5. Django 1.2.6 is a -+recommended upgrade for all users of any Django release in the 1.2.X series. -+ -+For a full list of issues addressed in this release, see the `security -+advisory`_. -+ -+.. _security advisory: https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/ -diff --git a/docs/releases/1.2.7.txt b/docs/releases/1.2.7.txt -new file mode 100644 -index 0000000..c0cf698 ---- /dev/null -+++ b/docs/releases/1.2.7.txt -@@ -0,0 +1,16 @@ -+========================== -+Django 1.2.7 release notes -+========================== -+ -+*September 10, 2011* -+ -+Welcome to Django 1.2.7! -+ -+This is the seventh bugfix/security release in the Django 1.2 series. It -+replaces Django 1.2.6 due to problems with the 1.2.6 release tarball. -+Django 1.2.7 is a recommended upgrade for all users of any Django release in -+the 1.2.X series. -+ -+For more information, see the `release advisory`_. -+ -+.. _release advisory: https://www.djangoproject.com/weblog/2011/sep/10/127/ -diff --git a/docs/releases/1.3.1.txt b/docs/releases/1.3.1.txt -new file mode 100644 -index 0000000..4c28916 ---- /dev/null -+++ b/docs/releases/1.3.1.txt -@@ -0,0 +1,16 @@ -+========================== -+Django 1.3.1 release notes -+========================== -+ -+*September 9, 2011* -+ -+Welcome to Django 1.3.1! -+ -+This is the first security release in the Django 1.3 series, fixing several -+security issues in Django 1.3. Django 1.3.1 is a recommended upgrade for -+all users of Django 1.3. -+ -+For a full list of issues addressed in this release, see the `security -+advisory`_. -+ -+.. _security advisory: https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/ -diff --git a/docs/releases/index.txt b/docs/releases/index.txt -index 8d23c28..40fe5b0 100644 ---- a/docs/releases/index.txt -+++ b/docs/releases/index.txt -@@ -19,6 +19,7 @@ Final releases - .. toctree:: - :maxdepth: 1 - -+ 1.3.1 - 1.3 - - 1.2 release -@@ -26,6 +27,8 @@ Final releases - .. toctree:: - :maxdepth: 1 - -+ 1.2.7 -+ 1.2.6 - 1.2.5 - 1.2.4 - 1.2.2 -diff --git a/docs/topics/auth.txt b/docs/topics/auth.txt -index 635f18f..5a2608a 100644 ---- a/docs/topics/auth.txt -+++ b/docs/topics/auth.txt -@@ -1251,16 +1251,19 @@ can or cannot do with Task instances, specific to your application:: - ... - class Meta: - permissions = ( -- ("can_view", "Can see available tasks"), -- ("can_change_status", "Can change the status of tasks"), -- ("can_close", "Can remove a task by setting its status as closed"), -+ ("view_task", "Can see available tasks"), -+ ("change_task_status", "Can change the status of tasks"), -+ ("close_task", "Can remove a task by setting its status as closed"), - ) - - The only thing this does is create those extra permissions when you run - :djadmin:`manage.py syncdb <syncdb>`. Your code is in charge of checking the - value of these permissions when an user is trying to access the functionality - provided by the application (viewing tasks, changing the status of tasks, --closing tasks.) -+closing tasks.) Continuing the above example, the following checks if a user may -+view tasks:: -+ -+ user.has_perm('app.view_task') - - API reference - ------------- -diff --git a/docs/topics/cache.txt b/docs/topics/cache.txt -index 8ef4ea2..9b68353 100644 ---- a/docs/topics/cache.txt -+++ b/docs/topics/cache.txt -@@ -99,8 +99,9 @@ To use Memcached with Django: - on your chosen memcached binding) - - * Set :setting:`LOCATION <CACHES-LOCATION>` to ``ip:port`` values, -- where ``ip`` is the IP address of the Memcached daemon and -- ``port`` is the port on which Memcached is running. -+ where ``ip`` is the IP address of the Memcached daemon and ``port`` is the -+ port on which Memcached is running, or to a ``unix:path`` value, where -+ ``path`` is the path to a Memcached Unix socket file. - - In this example, Memcached is running on localhost (127.0.0.1) port 11211, using - the ``python-memcached`` binding:: -@@ -112,6 +113,16 @@ the ``python-memcached`` binding:: - } - } - -+In this example, Memcached is available through a local Unix socket file -+:file:`/tmp/memcached.sock` using the ``python-memcached`` binding:: -+ -+ CACHES = { -+ 'default': { -+ 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -+ 'LOCATION': 'unix:/tmp/memcached.sock', -+ } -+ } -+ - One excellent feature of Memcached is its ability to share cache over multiple - servers. This means you can run Memcached daemons on multiple machines, and the - program will treat the group of machines as a *single* cache, without the need -@@ -526,9 +537,10 @@ you may expect. But once a particular URL (e.g., ``/foo/23/``) has been - requested, subsequent requests to that URL will use the cache. - - ``cache_page`` can also take an optional keyword argument, ``cache``, --which directs the decorator to use a specific cache alias when caching view --results. By default, the ``default`` alias will be used, but you can specify --any cache alias you want:: -+which directs the decorator to use a specific cache (from your -+:setting:`CACHES` setting) when caching view results. By default, the -+``default`` cache will be used, but you can specify any cache you -+want:: - - @cache_page(60 * 15, cache="special_cache") - def my_view(request): -diff --git a/docs/topics/class-based-views.txt b/docs/topics/class-based-views.txt -index 3831046..4da48ec 100644 ---- a/docs/topics/class-based-views.txt -+++ b/docs/topics/class-based-views.txt -@@ -380,7 +380,7 @@ Next, we'll write the ``PublisherBookListView`` view itself:: - class PublisherBookListView(ListView): - - context_object_name = "book_list" -- template_name = "books/books_by_publisher.html", -+ template_name = "books/books_by_publisher.html" - - def get_queryset(self): - publisher = get_object_or_404(Publisher, name__iexact=self.args[0]) -@@ -396,7 +396,7 @@ use it in the template:: - class PublisherBookListView(ListView): - - context_object_name = "book_list" -- template_name = "books/books_by_publisher.html", -+ template_name = "books/books_by_publisher.html" - - def get_queryset(self): - self.publisher = get_object_or_404(Publisher, name__iexact=self.args[0]) -diff --git a/docs/topics/db/models.txt b/docs/topics/db/models.txt -index 0e18205..af76344 100644 ---- a/docs/topics/db/models.txt -+++ b/docs/topics/db/models.txt -@@ -324,11 +324,10 @@ whatever you want. For example:: - should work; all are optional. - - For details on accessing backwards-related objects, see the -- `Following relationships backward example`_. -- -+ :ref:`Following relationships backward example <backwards-related-objects>`. -+ - For sample code, see the `Many-to-one relationship model tests`_. - -- .. _Following relationships backward example: http://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects - .. _Many-to-one relationship model tests: http://code.djangoproject.com/browser/django/trunk/tests/modeltests/many_to_one - - Many-to-many relationships -diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt -index fe71736..d9b8b1a 100644 ---- a/docs/topics/db/sql.txt -+++ b/docs/topics/db/sql.txt -@@ -236,6 +236,30 @@ alias:: - # Your code here... - transaction.commit_unless_managed(using='my_db_alias') - -+By default, the Python DB API will return results without their field -+names, which means you end up with a ``list`` of values, rather than a -+``dict``. At a small performance cost, you can return results as a -+``dict`` by using something like this:: -+ -+ def dictfetchall(cursor): -+ "Returns all rows from a cursor as a dict" -+ desc = cursor.description -+ return [ -+ dict(zip([col[0] for col in desc], row)) -+ for row in cursor.fetchall() -+ ] -+ -+Here is an example of the difference between the two:: -+ -+ >>> cursor.execute("SELECT id, parent_id from test LIMIT 2"); -+ >>> cursor.fetchall() -+ ((54360982L, None), (54360880L, None)) -+ -+ >>> cursor.execute("SELECT id, parent_id from test LIMIT 2"); -+ >>> dictfetchall(cursor) -+ [{'parent_id': None, 'id': 54360982L}, {'parent_id': None, 'id': 54360880L}] -+ -+ - .. _transactions-and-raw-sql: - - Transactions and raw SQL -diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt -index 07bc5e3..24e000e 100644 ---- a/docs/topics/forms/modelforms.txt -+++ b/docs/topics/forms/modelforms.txt -@@ -332,13 +332,17 @@ Since the Author model has only 3 fields, 'name', 'title', and - .. note:: - - If you specify ``fields`` or ``exclude`` when creating a form with -- ``ModelForm``, then the fields that are not in the resulting form will not -- be set by the form's ``save()`` method. Django will prevent any attempt to -- save an incomplete model, so if the model does not allow the missing fields -- to be empty, and does not provide a default value for the missing fields, -- any attempt to ``save()`` a ``ModelForm`` with missing fields will fail. -- To avoid this failure, you must instantiate your model with initial values -- for the missing, but required fields:: -+ ``ModelForm``, then the fields that are not in the resulting form -+ will not be set by the form's ``save()`` method. Also, if you -+ manually add the excluded fields back to the form, they will not -+ be initialized from the model instance. -+ -+ Django will prevent any attempt to save an incomplete model, so if -+ the model does not allow the missing fields to be empty, and does -+ not provide a default value for the missing fields, any attempt to -+ ``save()`` a ``ModelForm`` with missing fields will fail. To -+ avoid this failure, you must instantiate your model with initial -+ values for the missing, but required fields:: - - author = Author(title='Mr') - form = PartialAuthorForm(request.POST, instance=author) -@@ -633,6 +637,12 @@ database. If a given instance's data didn't change in the bound data, the - instance won't be saved to the database and won't be included in the return - value (``instances``, in the above example). - -+When fields are missing from the form (for example because they have -+been excluded), these fields will not be set by the ``save()`` -+method. You can find more information about this restriction, which -+also holds for regular ``ModelForms``, in `Using a subset of fields on -+the form`_. -+ - Pass ``commit=False`` to return the unsaved model instances:: - - # don't save to the database -diff --git a/docs/topics/http/urls.txt b/docs/topics/http/urls.txt -index 1caa801..7a0e724 100644 ---- a/docs/topics/http/urls.txt -+++ b/docs/topics/http/urls.txt -@@ -54,6 +54,10 @@ algorithm the system follows to determine which Python code to execute: - :class:`~django.http.HttpRequest` as its first argument and any values - captured in the regex as remaining arguments. - -+ 5. If no regex matches, or if an exception is raised during any -+ point in this process, Django invokes an appropriate -+ error-handling view. See `Error handling`_ below. -+ - Example - ======= - -@@ -99,10 +103,10 @@ Example requests: - * ``/articles/2003`` would not match any of these patterns, because each - pattern requires that the URL end with a slash. - -- * ``/articles/2003/03/3/`` would match the final pattern. Django would call -- the function ``news.views.article_detail(request, '2003', '03', '3')``. -+ * ``/articles/2003/03/03/`` would match the final pattern. Django would call -+ the function ``news.views.article_detail(request, '2003', '03', '03')``. - --.. _Dive Into Python's explanation: http://diveintopython.org/regular_expressions/street_addresses.html#re.matching.2.3 -+.. _Dive Into Python's explanation: http://diveintopython.net/regular_expressions/street_addresses.html#re.matching.2.3 - - Named groups - ============ -@@ -123,7 +127,7 @@ Here's the above example URLconf, rewritten to use named groups:: - (r'^articles/2003/$', 'news.views.special_case_2003'), - (r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive'), - (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'), -- (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'news.views.article_detail'), -+ (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', 'news.views.article_detail'), - ) - - This accomplishes exactly the same thing as the previous example, with one -@@ -134,8 +138,8 @@ arguments rather than positional arguments. For example: - ``news.views.month_archive(request, year='2005', month='03')``, instead - of ``news.views.month_archive(request, '2005', '03')``. - -- * A request to ``/articles/2003/03/3/`` would call the function -- ``news.views.article_detail(request, year='2003', month='03', day='3')``. -+ * A request to ``/articles/2003/03/03/`` would call the function -+ ``news.views.article_detail(request, year='2003', month='03', day='03')``. - - In practice, this means your URLconfs are slightly more explicit and less prone - to argument-order bugs -- and you can reorder the arguments in your views' -@@ -246,6 +250,31 @@ The ``prefix`` parameter has the same meaning as the first argument to - ``patterns()`` and is only relevant when you're passing a string as the - ``view`` parameter. - -+include -+------- -+ -+.. function:: include(<module or pattern_list>) -+ -+A function that takes a full Python import path to another URLconf module that -+should be "included" in this place. -+ -+:func:`include` also accepts as an argument an iterable that returns URL -+patterns. -+ -+See `Including other URLconfs`_ below. -+ -+Error handling -+============== -+ -+When Django can't find a regex matching the requested URL, or when an -+exception is raised, Django will invoke an error-handling view. The -+views to use for these cases are specified by two variables which can -+be set in your root URLconf. Setting these variables in any other -+URLconf will have no effect. -+ -+See the documentation on :ref:`customizing error views -+<customizing-error-views>` for more details. -+ - handler404 - ---------- - -@@ -275,19 +304,6 @@ value should suffice. - .. versionchanged:: 1.2 - Previous versions of Django only accepted strings representing import paths. - --include --------- -- --.. function:: include(<module or pattern_list>) -- --A function that takes a full Python import path to another URLconf module that --should be "included" in this place. -- --:func:`include` also accepts as an argument an iterable that returns URL --patterns. -- --See `Including other URLconfs`_ below. -- - Notes on capturing text in URLs - =============================== - -@@ -420,8 +436,8 @@ directly the pattern list as returned by `patterns`_ instead. For example:: - from django.conf.urls.defaults import * - - extra_patterns = patterns('', -- url(r'reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'), -- url(r'charge/$', 'credit.views.charge', name='credit-charge'), -+ url(r'^reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'), -+ url(r'^charge/$', 'credit.views.charge', name='credit-charge'), - ) - - urlpatterns = patterns('', -diff --git a/docs/topics/http/views.txt b/docs/topics/http/views.txt -index 99359ab..83a52cb 100644 ---- a/docs/topics/http/views.txt -+++ b/docs/topics/http/views.txt -@@ -122,6 +122,8 @@ In order to use the ``Http404`` exception to its fullest, you should create a - template that is displayed when a 404 error is raised. This template should be - called ``404.html`` and located in the top level of your template tree. - -+.. _customizing-error-views: -+ - Customizing error views - ======================= - -diff --git a/docs/topics/i18n/internationalization.txt b/docs/topics/i18n/internationalization.txt -index 5d50fa7..a83299c 100644 ---- a/docs/topics/i18n/internationalization.txt -+++ b/docs/topics/i18n/internationalization.txt -@@ -477,7 +477,7 @@ for use within the translation block. Examples:: - - You can use multiple expressions inside a single ``blocktrans`` tag:: - -- {% blocktrans with book_t=book|title and author_t=author|title %} -+ {% blocktrans with book_t=book|title author_t=author|title %} - This is {{ book_t }} by {{ author_t }} - {% endblocktrans %} - -diff --git a/docs/topics/settings.txt b/docs/topics/settings.txt -index 61ddf8c..bda51f2 100644 ---- a/docs/topics/settings.txt -+++ b/docs/topics/settings.txt -@@ -39,7 +39,7 @@ The value of ``DJANGO_SETTINGS_MODULE`` should be in Python path syntax, e.g. - ``mysite.settings``. Note that the settings module should be on the - Python `import search path`_. - --.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html -+.. _import search path: http://diveintopython.net/getting_to_know_python/everything_is_an_object.html - - The django-admin.py utility - --------------------------- -diff --git a/docs/topics/templates.txt b/docs/topics/templates.txt -index 83269ae..fc2cd3f 100644 ---- a/docs/topics/templates.txt -+++ b/docs/topics/templates.txt -@@ -555,6 +555,8 @@ variable that needs escaping. When auto-escaping is on, there's no danger of - the ``escape`` filter *double-escaping* data -- the ``escape`` filter does not - affect auto-escaped variables. - -+.. _string-literals-and-automatic-escaping: -+ - String literals and automatic escaping - -------------------------------------- - -diff --git a/docs/topics/testing.txt b/docs/topics/testing.txt -index 0a86f0d..8262b57 100644 ---- a/docs/topics/testing.txt -+++ b/docs/topics/testing.txt -@@ -1586,7 +1586,7 @@ skipUnlessDBFeature - Skip the decorated test if the named database feature is *not* - supported. - --For example, the following test will not be executed if the database -+For example, the following test will only be executed if the database - supports transactions (e.g., it would run under PostgreSQL, but *not* - under MySQL with MyISAM tables):: - -diff --git a/tests/modeltests/validators/tests.py b/tests/modeltests/validators/tests.py -index e585262..4bd5827 100644 ---- a/tests/modeltests/validators/tests.py -+++ b/tests/modeltests/validators/tests.py -@@ -28,6 +28,9 @@ TEST_DATA = ( - (validate_email, 'abc', ValidationError), - (validate_email, 'a @x.cz', ValidationError), - (validate_email, 'something@@somewhere.com', ValidationError), -+ # Quoted-string format (CR not allowed) -+ (validate_email, '"\\\011"@here.com', None), -+ (validate_email, '"\\\012"@here.com', ValidationError), - - (validate_slug, 'slug-ok', None), - (validate_slug, 'longer-slug-still-ok', None), -diff --git a/tests/regressiontests/httpwrappers/tests.py b/tests/regressiontests/httpwrappers/tests.py -index 2e2932f..6aabfe6 100644 ---- a/tests/regressiontests/httpwrappers/tests.py -+++ b/tests/regressiontests/httpwrappers/tests.py -@@ -281,3 +281,9 @@ class CookieTests(unittest.TestCase): - Test that a single non-standard cookie name doesn't affect all cookies. Ticket #13007. - """ - self.assertTrue('good_cookie' in parse_cookie('good_cookie=yes;bad:cookie=yes').keys()) -+ -+ def test_repeated_nonstandard_keys(self): -+ """ -+ Test that a repeated non-standard name doesn't affect all cookies. Ticket #15852 -+ """ -+ self.assertTrue('good_cookie' in parse_cookie('a,=b; a,=c; good_cookie=yes').keys()) -diff --git a/tests/regressiontests/utils/http.py b/tests/regressiontests/utils/http.py -index 83a4a7f..666d04f 100644 ---- a/tests/regressiontests/utils/http.py -+++ b/tests/regressiontests/utils/http.py -@@ -1,5 +1,7 @@ - from django.utils import http - from django.utils import unittest -+from django.http import HttpResponse, utils -+from django.test import RequestFactory - - class TestUtilsHttp(unittest.TestCase): - -@@ -21,3 +23,49 @@ class TestUtilsHttp(unittest.TestCase): - self.assertFalse(http.same_origin('http://foo.com', 'http://foo.com.evil.com')) - # Different port - self.assertFalse(http.same_origin('http://foo.com:8000', 'http://foo.com:8001')) -+ -+ def test_fix_IE_for_vary(self): -+ """ -+ Regression for #16632. -+ -+ `fix_IE_for_vary` shouldn't crash when there's no Content-Type header. -+ """ -+ -+ # functions to generate responses -+ def response_with_unsafe_content_type(): -+ r = HttpResponse(content_type="text/unsafe") -+ r['Vary'] = 'Cookie' -+ return r -+ -+ def no_content_response_with_unsafe_content_type(): -+ # 'Content-Type' always defaulted, so delete it -+ r = response_with_unsafe_content_type() -+ del r['Content-Type'] -+ return r -+ -+ # request with & without IE user agent -+ rf = RequestFactory() -+ request = rf.get('/') -+ ie_request = rf.get('/', HTTP_USER_AGENT='MSIE') -+ -+ # not IE, unsafe_content_type -+ response = response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(request, response) -+ self.assertTrue('Vary' in response) -+ -+ # IE, unsafe_content_type -+ response = response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(ie_request, response) -+ self.assertFalse('Vary' in response) -+ -+ # not IE, no_content -+ response = no_content_response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(request, response) -+ self.assertTrue('Vary' in response) -+ -+ # IE, no_content -+ response = no_content_response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(ie_request, response) -+ self.assertFalse('Vary' in response) -+ -+ diff --git a/libre/django13/diff-django_branches_releases_1.3.X-from-16771-to-17460.diff b/libre/django13/diff-django_branches_releases_1.3.X-from-16771-to-17460.diff deleted file mode 100644 index ebbf80993..000000000 --- a/libre/django13/diff-django_branches_releases_1.3.X-from-16771-to-17460.diff +++ /dev/null @@ -1,1575 +0,0 @@ -Index: django/http/__init__.py -=================================================================== ---- django/http/__init__.py (revision 16771) -+++ django/http/__init__.py (revision 17460) -@@ -92,7 +92,7 @@ - if not _cookie_allows_colon_in_names: - def load(self, rawdata, ignore_parse_errors=False): - if ignore_parse_errors: -- self.bad_cookies = [] -+ self.bad_cookies = set() - self._BaseCookie__set = self._loose_set - super(SimpleCookie, self).load(rawdata) - if ignore_parse_errors: -@@ -106,8 +106,8 @@ - try: - self._strict_set(key, real_value, coded_value) - except Cookie.CookieError: -- self.bad_cookies.append(key) -- dict.__setitem__(self, key, None) -+ self.bad_cookies.add(key) -+ dict.__setitem__(self, key, Cookie.Morsel()) - - - class CompatCookie(SimpleCookie): -Index: django/http/utils.py -=================================================================== ---- django/http/utils.py (revision 16771) -+++ django/http/utils.py (revision 17460) -@@ -76,7 +76,8 @@ - - # The first part of the Content-Type field will be the MIME type, - # everything after ';', such as character-set, can be ignored. -- if response['Content-Type'].split(';')[0] not in safe_mime_types: -+ mime_type = response.get('Content-Type', '').partition(';')[0] -+ if mime_type not in safe_mime_types: - try: - del response['Vary'] - except KeyError: -Index: django/db/backends/creation.py -=================================================================== ---- django/db/backends/creation.py (revision 16771) -+++ django/db/backends/creation.py (revision 17460) -@@ -374,15 +374,6 @@ - verbosity=max(verbosity - 1, 0), - interactive=False, - database=self.connection.alias) -- -- # One effect of calling syncdb followed by flush is that the id of the -- # default site may or may not be 1, depending on how the sequence was -- # reset. If the sites app is loaded, then we coerce it. -- from django.db.models import get_model -- if 'django.contrib.sites' in settings.INSTALLED_APPS: -- Site = get_model('sites', 'Site') -- if Site is not None and Site.objects.using(self.connection.alias).count() == 1: -- Site.objects.using(self.connection.alias).update(id=settings.SITE_ID) - - from django.core.cache import get_cache - from django.core.cache.backends.db import BaseDatabaseCache -Index: django/core/validators.py -=================================================================== ---- django/core/validators.py (revision 16771) -+++ django/core/validators.py (revision 17460) -@@ -147,7 +147,8 @@ - - email_re = re.compile( - r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom -- r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' # quoted-string -+ # quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5 -+ r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"' - r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$', re.IGNORECASE) # domain - validate_email = EmailValidator(email_re, _(u'Enter a valid e-mail address.'), 'invalid') - -Index: django/core/management/commands/shell.py -=================================================================== ---- django/core/management/commands/shell.py (revision 16771) -+++ django/core/management/commands/shell.py (revision 17460) -@@ -13,9 +13,8 @@ - - def ipython(self): - try: -- from IPython.frontend.terminal.embed import TerminalInteractiveShell -- shell = TerminalInteractiveShell() -- shell.mainloop() -+ from IPython import embed -+ embed() - except ImportError: - # IPython < 0.11 - # Explicitly pass an empty list as arguments, because otherwise -Index: django/contrib/gis/db/models/sql/compiler.py -=================================================================== ---- django/contrib/gis/db/models/sql/compiler.py (revision 16771) -+++ django/contrib/gis/db/models/sql/compiler.py (revision 17460) -@@ -1,7 +1,7 @@ - from itertools import izip --from django.db.backends.util import truncate_name -+from django.db.backends.util import truncate_name, typecast_timestamp - from django.db.models.sql import compiler --from django.db.models.sql.constants import TABLE_NAME -+from django.db.models.sql.constants import TABLE_NAME, MULTI - from django.db.models.sql.query import get_proxied_model - - SQLCompiler = compiler.SQLCompiler -@@ -194,7 +194,7 @@ - # We resolve the rest of the columns if we're on Oracle or if - # the `geo_values` attribute is defined. - for value, field in map(None, row[index_start:], fields): -- values.append(self.query.convert_values(value, field, connection=self.connection)) -+ values.append(self.query.convert_values(value, field, self.connection)) - else: - values.extend(row[index_start:]) - return tuple(values) -@@ -275,4 +275,24 @@ - pass - - class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): -- pass -+ """ -+ This is overridden for GeoDjango to properly cast date columns, since -+ `GeoQuery.resolve_columns` is used for spatial values. -+ See #14648, #16757. -+ """ -+ def results_iter(self): -+ if self.connection.ops.oracle: -+ from django.db.models.fields import DateTimeField -+ fields = [DateTimeField()] -+ else: -+ needs_string_cast = self.connection.features.needs_datetime_string_cast -+ -+ offset = len(self.query.extra_select) -+ for rows in self.execute_sql(MULTI): -+ for row in rows: -+ date = row[offset] -+ if self.connection.ops.oracle: -+ date = self.resolve_columns(row, fields)[offset] -+ elif needs_string_cast: -+ date = typecast_timestamp(str(date)) -+ yield date -Index: django/contrib/gis/db/backends/spatialite/compiler.py -=================================================================== ---- django/contrib/gis/db/backends/spatialite/compiler.py (revision 16771) -+++ django/contrib/gis/db/backends/spatialite/compiler.py (revision 17460) -@@ -1,32 +0,0 @@ --from django.db.backends.util import typecast_timestamp --from django.db.models.sql import compiler --from django.db.models.sql.constants import MULTI --from django.contrib.gis.db.models.sql.compiler import GeoSQLCompiler as BaseGeoSQLCompiler -- --SQLCompiler = compiler.SQLCompiler -- --class GeoSQLCompiler(BaseGeoSQLCompiler, SQLCompiler): -- pass -- --class SQLInsertCompiler(compiler.SQLInsertCompiler, GeoSQLCompiler): -- pass -- --class SQLDeleteCompiler(compiler.SQLDeleteCompiler, GeoSQLCompiler): -- pass -- --class SQLUpdateCompiler(compiler.SQLUpdateCompiler, GeoSQLCompiler): -- pass -- --class SQLAggregateCompiler(compiler.SQLAggregateCompiler, GeoSQLCompiler): -- pass -- --class SQLDateCompiler(compiler.SQLDateCompiler, GeoSQLCompiler): -- """ -- This is overridden for GeoDjango to properly cast date columns, see #16757. -- """ -- def results_iter(self): -- offset = len(self.query.extra_select) -- for rows in self.execute_sql(MULTI): -- for row in rows: -- date = typecast_timestamp(str(row[offset])) -- yield date -Index: django/contrib/gis/db/backends/spatialite/operations.py -=================================================================== ---- django/contrib/gis/db/backends/spatialite/operations.py (revision 16771) -+++ django/contrib/gis/db/backends/spatialite/operations.py (revision 17460) -@@ -48,7 +48,7 @@ - return (SpatiaLiteDistance(operator),) - - class SpatiaLiteOperations(DatabaseOperations, BaseSpatialOperations): -- compiler_module = 'django.contrib.gis.db.backends.spatialite.compiler' -+ compiler_module = 'django.contrib.gis.db.models.sql.compiler' - name = 'spatialite' - spatialite = True - version_regex = re.compile(r'^(?P<major>\d)\.(?P<minor1>\d)\.(?P<minor2>\d+)') -Index: django/contrib/gis/db/backends/spatialite/creation.py -=================================================================== ---- django/contrib/gis/db/backends/spatialite/creation.py (revision 16771) -+++ django/contrib/gis/db/backends/spatialite/creation.py (revision 17460) -@@ -56,14 +56,6 @@ - interactive=False, - database=self.connection.alias) - -- # One effect of calling syncdb followed by flush is that the id of the -- # default site may or may not be 1, depending on how the sequence was -- # reset. If the sites app is loaded, then we coerce it. -- from django.db.models import get_model -- Site = get_model('sites', 'Site') -- if Site is not None and Site.objects.using(self.connection.alias).count() == 1: -- Site.objects.using(self.connection.alias).update(id=settings.SITE_ID) -- - from django.core.cache import get_cache - from django.core.cache.backends.db import BaseDatabaseCache - for cache_alias in settings.CACHES: -Index: django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz -=================================================================== -Cannot display: file marked as a binary type. -svn:mime-type = application/octet-stream -Index: django/contrib/gis/tests/relatedapp/tests.py -=================================================================== ---- django/contrib/gis/tests/relatedapp/tests.py (revision 16771) -+++ django/contrib/gis/tests/relatedapp/tests.py (revision 17460) -@@ -1,3 +1,4 @@ -+from datetime import date - from django.test import TestCase - - from django.contrib.gis.geos import GEOSGeometry, Point, MultiPoint -@@ -281,4 +282,11 @@ - # evaluated as list generation swallows TypeError in CPython. - sql = str(qs.query) - -+ def test16_annotated_date_queryset(self): -+ "Ensure annotated date querysets work if spatial backend is used. See #14648." -+ birth_years = [dt.year for dt in -+ list(Author.objects.annotate(num_books=Count('books')).dates('dob', 'year'))] -+ birth_years.sort() -+ self.assertEqual([1950, 1974], birth_years) -+ - # TODO: Related tests for KML, GML, and distance lookups. -Index: django/contrib/gis/tests/relatedapp/models.py -=================================================================== ---- django/contrib/gis/tests/relatedapp/models.py (revision 16771) -+++ django/contrib/gis/tests/relatedapp/models.py (revision 17460) -@@ -36,6 +36,7 @@ - # These use the GeoManager but do not have any geographic fields. - class Author(models.Model): - name = models.CharField(max_length=100) -+ dob = models.DateField() - objects = models.GeoManager() - - class Article(models.Model): -Index: django/contrib/sites/management.py -=================================================================== ---- django/contrib/sites/management.py (revision 16771) -+++ django/contrib/sites/management.py (revision 17460) -@@ -3,15 +3,34 @@ - """ - - from django.db.models import signals -+from django.db import connections -+from django.db import router - from django.contrib.sites.models import Site - from django.contrib.sites import models as site_app -+from django.core.management.color import no_style - - def create_default_site(app, created_models, verbosity, db, **kwargs): -- if Site in created_models: -+ # Only create the default sites in databases where Django created the table -+ if Site in created_models and router.allow_syncdb(db, Site) : -+ # The default settings set SITE_ID = 1, and some tests in Django's test -+ # suite rely on this value. However, if database sequences are reused -+ # (e.g. in the test suite after flush/syncdb), it isn't guaranteed that -+ # the next id will be 1, so we coerce it. See #15573 and #16353. This -+ # can also crop up outside of tests - see #15346. - if verbosity >= 2: - print "Creating example.com Site object" -- s = Site(domain="example.com", name="example.com") -- s.save(using=db) -+ Site(pk=1, domain="example.com", name="example.com").save(using=db) -+ -+ # We set an explicit pk instead of relying on auto-incrementation, -+ # so we need to reset the database sequence. -+ sequence_sql = connections[db].ops.sequence_reset_sql(no_style(), [Site]) -+ if sequence_sql: -+ if verbosity >= 2: -+ print "Resetting sequence" -+ cursor = connections[db].cursor() -+ for command in sequence_sql: -+ cursor.execute(command) -+ - Site.objects.clear_cache() - - signals.post_syncdb.connect(create_default_site, sender=site_app) -Index: django/contrib/sites/tests.py -=================================================================== ---- django/contrib/sites/tests.py (revision 16771) -+++ django/contrib/sites/tests.py (revision 17460) -@@ -15,6 +15,12 @@ - def tearDown(self): - Site._meta.installed = self.old_Site_meta_installed - -+ def test_save_another(self): -+ # Regression for #17415 -+ # On some backends the sequence needs reset after save with explicit ID. -+ # Test that there is no sequence collisions by saving another site. -+ Site(domain="example2.com", name="example2.com").save() -+ - def test_site_manager(self): - # Make sure that get_current() does not return a deleted Site object. - s = Site.objects.get_current() -Index: django/contrib/admin/media/css/forms.css -=================================================================== ---- django/contrib/admin/media/css/forms.css (revision 16771) -+++ django/contrib/admin/media/css/forms.css (revision 17460) -@@ -352,9 +352,3 @@ - .empty-form { - display: none; - } -- --/* IE7 specific bug fixes */ -- --.submit-row input { -- float: right; --} -\ No newline at end of file -Index: tests/modeltests/validators/tests.py -=================================================================== ---- tests/modeltests/validators/tests.py (revision 16771) -+++ tests/modeltests/validators/tests.py (revision 17460) -@@ -28,6 +28,9 @@ - (validate_email, 'abc', ValidationError), - (validate_email, 'a @x.cz', ValidationError), - (validate_email, 'something@@somewhere.com', ValidationError), -+ # Quoted-string format (CR not allowed) -+ (validate_email, '"\\\011"@here.com', None), -+ (validate_email, '"\\\012"@here.com', ValidationError), - - (validate_slug, 'slug-ok', None), - (validate_slug, 'longer-slug-still-ok', None), -Index: tests/regressiontests/utils/http.py -=================================================================== ---- tests/regressiontests/utils/http.py (revision 16771) -+++ tests/regressiontests/utils/http.py (revision 17460) -@@ -1,5 +1,7 @@ - from django.utils import http - from django.utils import unittest -+from django.http import HttpResponse, utils -+from django.test import RequestFactory - - class TestUtilsHttp(unittest.TestCase): - -@@ -21,3 +23,49 @@ - self.assertFalse(http.same_origin('http://foo.com', 'http://foo.com.evil.com')) - # Different port - self.assertFalse(http.same_origin('http://foo.com:8000', 'http://foo.com:8001')) -+ -+ def test_fix_IE_for_vary(self): -+ """ -+ Regression for #16632. -+ -+ `fix_IE_for_vary` shouldn't crash when there's no Content-Type header. -+ """ -+ -+ # functions to generate responses -+ def response_with_unsafe_content_type(): -+ r = HttpResponse(content_type="text/unsafe") -+ r['Vary'] = 'Cookie' -+ return r -+ -+ def no_content_response_with_unsafe_content_type(): -+ # 'Content-Type' always defaulted, so delete it -+ r = response_with_unsafe_content_type() -+ del r['Content-Type'] -+ return r -+ -+ # request with & without IE user agent -+ rf = RequestFactory() -+ request = rf.get('/') -+ ie_request = rf.get('/', HTTP_USER_AGENT='MSIE') -+ -+ # not IE, unsafe_content_type -+ response = response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(request, response) -+ self.assertTrue('Vary' in response) -+ -+ # IE, unsafe_content_type -+ response = response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(ie_request, response) -+ self.assertFalse('Vary' in response) -+ -+ # not IE, no_content -+ response = no_content_response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(request, response) -+ self.assertTrue('Vary' in response) -+ -+ # IE, no_content -+ response = no_content_response_with_unsafe_content_type() -+ utils.fix_IE_for_vary(ie_request, response) -+ self.assertFalse('Vary' in response) -+ -+ -Index: tests/regressiontests/httpwrappers/tests.py -=================================================================== ---- tests/regressiontests/httpwrappers/tests.py (revision 16771) -+++ tests/regressiontests/httpwrappers/tests.py (revision 17460) -@@ -281,3 +281,9 @@ - Test that a single non-standard cookie name doesn't affect all cookies. Ticket #13007. - """ - self.assertTrue('good_cookie' in parse_cookie('good_cookie=yes;bad:cookie=yes').keys()) -+ -+ def test_repeated_nonstandard_keys(self): -+ """ -+ Test that a repeated non-standard name doesn't affect all cookies. Ticket #15852 -+ """ -+ self.assertTrue('good_cookie' in parse_cookie('a,=b; a,=c; good_cookie=yes').keys()) -Index: docs/index.txt -=================================================================== ---- docs/index.txt (revision 16771) -+++ docs/index.txt (revision 17460) -@@ -28,7 +28,7 @@ - .. _archives of the django-users mailing list: http://groups.google.com/group/django-users/ - .. _post a question: http://groups.google.com/group/django-users/ - .. _#django IRC channel: irc://irc.freenode.net/django --.. _IRC logs: http://botland.oebfare.com/logger/django/ -+.. _IRC logs: http://django-irc-logs.com/ - .. _ticket tracker: http://code.djangoproject.com/ - - First steps -Index: docs/intro/tutorial01.txt -=================================================================== ---- docs/intro/tutorial01.txt (revision 16771) -+++ docs/intro/tutorial01.txt (revision 17460) -@@ -59,7 +59,7 @@ - can be run as a program. To do this, open Terminal.app and navigate (using - the ``cd`` command) to the directory where :doc:`django-admin.py - </ref/django-admin>` is installed, then run the command -- ``chmod +x django-admin.py``. -+ ``sudo chmod +x django-admin.py``. - - .. note:: - -@@ -692,10 +692,9 @@ - - For more information on model relations, see :doc:`Accessing related objects - </ref/models/relations>`. For more on how to use double underscores to perform --field lookups via the API, see `Field lookups`__. For full details on the --database API, see our :doc:`Database API reference </topics/db/queries>`. -+field lookups via the API, see :ref:`Field lookups <field-lookups-intro>`. For -+full details on the database API, see our :doc:`Database API reference -+</topics/db/queries>`. - --__ http://docs.djangoproject.com/en/1.2/topics/db/queries/#field-lookups -- - When you're comfortable with the API, read :doc:`part 2 of this tutorial - </intro/tutorial02>` to get Django's automatic admin working. -Index: docs/intro/tutorial02.txt -=================================================================== ---- docs/intro/tutorial02.txt (revision 16771) -+++ docs/intro/tutorial02.txt (revision 17460) -@@ -40,22 +40,22 @@ - - .. parsed-literal:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - # Uncomment the next two lines to enable the admin: - **from django.contrib import admin** - **admin.autodiscover()** - - urlpatterns = patterns('', -- # Example: -- # (r'^mysite/', include('mysite.foo.urls')), -+ # Examples: -+ # url(r'^$', 'mysite.views.home', name='home'), -+ # url(r'^mysite/', include('mysite.foo.urls')), - -- # Uncomment the admin/doc line below and add 'django.contrib.admindocs' -- # to INSTALLED_APPS to enable admin documentation: -- # (r'^admin/doc/', include('django.contrib.admindocs.urls')), -+ # Uncomment the admin/doc line below to enable admin documentation: -+ # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: -- **(r'^admin/', include(admin.site.urls)),** -+ **url(r'^admin/', include(admin.site.urls)),** - ) - - (The bold lines are the ones that needed to be uncommented.) -Index: docs/intro/tutorial03.txt -=================================================================== ---- docs/intro/tutorial03.txt (revision 16771) -+++ docs/intro/tutorial03.txt (revision 17460) -@@ -78,17 +78,17 @@ - - Time for an example. Edit ``mysite/urls.py`` so it looks like this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - from django.contrib import admin - admin.autodiscover() - - urlpatterns = patterns('', -- (r'^polls/$', 'polls.views.index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -- (r'^admin/', include(admin.site.urls)), -+ url(r'^polls/$', 'polls.views.index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^admin/', include(admin.site.urls)), - ) - - This is worth a review. When somebody requests a page from your Web site -- say, -@@ -112,7 +112,7 @@ - -- unless you have a sick sense of humor, in which case you can do something - like this:: - -- (r'^polls/latest\.php$', 'polls.views.index'), -+ url(r'^polls/latest\.php$', 'polls.views.index'), - - But, don't do that. It's silly. - -@@ -357,23 +357,24 @@ - Write a 404 (page not found) view - ================================= - --When you raise :exc:`~django.http.Http404` from within a view, Django will load --a special view devoted to handling 404 errors. It finds it by looking for the --variable ``handler404``, which is a string in Python dotted syntax -- the same --format the normal URLconf callbacks use. A 404 view itself has nothing special: --It's just a normal view. -+When you raise :exc:`~django.http.Http404` from within a view, Django -+will load a special view devoted to handling 404 errors. It finds it -+by looking for the variable ``handler404`` in your root URLconf (and -+only in your root URLconf; setting ``handler404`` anywhere else will -+have no effect), which is a string in Python dotted syntax -- the same -+format the normal URLconf callbacks use. A 404 view itself has nothing -+special: It's just a normal view. - --You normally won't have to bother with writing 404 views. By default, URLconfs --have the following line up top:: -+You normally won't have to bother with writing 404 views. If you don't set -+``handler404``, the built-in view :func:`django.views.defaults.page_not_found` -+is used by default. In this case, you still have one obligation: To create a -+``404.html`` template in the root of your template directory. The default 404 -+view will use that template for all 404 errors. If :setting:`DEBUG` is set to -+``False`` (in your settings module) and if you didn't create a ``404.html`` -+file, an ``Http500`` is raised instead. So remember to create a ``404.html``. - -- from django.conf.urls.defaults import * -+A couple more things to note about 404 views: - --That takes care of setting ``handler404`` in the current module. As you can see --in ``django/conf/urls/defaults.py``, ``handler404`` is set to --:func:`django.views.defaults.page_not_found` by default. -- --Four more things to note about 404 views: -- - * If :setting:`DEBUG` is set to ``True`` (in your settings module) then your - 404 view will never be used (and thus the ``404.html`` template will never - be rendered) because the traceback will be displayed instead. -@@ -381,21 +382,12 @@ - * The 404 view is also called if Django doesn't find a match after checking - every regular expression in the URLconf. - -- * If you don't define your own 404 view -- and simply use the default, which -- is recommended -- you still have one obligation: To create a ``404.html`` -- template in the root of your template directory. The default 404 view will -- use that template for all 404 errors. -- -- * If :setting:`DEBUG` is set to ``False`` (in your settings module) and if -- you didn't create a ``404.html`` file, an ``Http500`` is raised instead. -- So remember to create a ``404.html``. -- - Write a 500 (server error) view - =============================== - --Similarly, URLconfs may define a ``handler500``, which points to a view to call --in case of server errors. Server errors happen when you have runtime errors in --view code. -+Similarly, your root URLconf may define a ``handler500``, which points -+to a view to call in case of server errors. Server errors happen when -+you have runtime errors in view code. - - Use the template system - ======================= -@@ -432,10 +424,10 @@ - the URLconf, you may notice there's a fair bit of redundancy in it:: - - urlpatterns = patterns('', -- (r'^polls/$', 'polls.views.index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^polls/$', 'polls.views.index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), - ) - - Namely, ``polls.views`` is in every callback. -@@ -445,10 +437,10 @@ - first argument to :func:`~django.conf.urls.defaults.patterns`, like so:: - - urlpatterns = patterns('polls.views', -- (r'^polls/$', 'index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^polls/$', 'index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - This is functionally identical to the previous formatting. It's just a bit -@@ -459,20 +451,20 @@ - :func:`~django.conf.urls.defaults.patterns`. Your full ``mysite/urls.py`` might - now look like this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - from django.contrib import admin - admin.autodiscover() - - urlpatterns = patterns('polls.views', -- (r'^polls/$', 'index'), -- (r'^polls/(?P<poll_id>\d+)/$', 'detail'), -- (r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -- (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^polls/$', 'index'), -+ url(r'^polls/(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^polls/(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - urlpatterns += patterns('', -- (r'^admin/', include(admin.site.urls)), -+ url(r'^admin/', include(admin.site.urls)), - ) - - Decoupling the URLconfs -@@ -502,8 +494,8 @@ - admin.autodiscover() - - urlpatterns = patterns('', -- (r'^polls/', include('polls.urls')), -- (r'^admin/', include(admin.site.urls)), -+ url(r'^polls/', include('polls.urls')), -+ url(r'^admin/', include(admin.site.urls)), - ) - - :func:`~django.conf.urls.defaults.include` simply references another URLconf. -@@ -526,13 +518,13 @@ - lines registering the admin site. Your ``polls/urls.py`` file should now look like - this:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - urlpatterns = patterns('polls.views', -- (r'^$', 'index'), -- (r'^(?P<poll_id>\d+)/$', 'detail'), -- (r'^(?P<poll_id>\d+)/results/$', 'results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^$', 'index'), -+ url(r'^(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - The idea behind :func:`~django.conf.urls.defaults.include` and URLconf -Index: docs/intro/index.txt -=================================================================== ---- docs/intro/index.txt (revision 16771) -+++ docs/intro/index.txt (revision 17460) -@@ -31,6 +31,6 @@ - - .. _python: http://python.org/ - .. _list of Python resources for non-programmers: http://wiki.python.org/moin/BeginnersGuide/NonProgrammers -- .. _dive into python: http://diveintopython.org/ -+ .. _dive into python: http://diveintopython.net/ - .. _dead-tree version: http://www.amazon.com/exec/obidos/ASIN/1590593561/ref=nosim/jacobian20 - .. _books about Python: http://wiki.python.org/moin/PythonBooks -\ No newline at end of file -Index: docs/intro/tutorial04.txt -=================================================================== ---- docs/intro/tutorial04.txt (revision 16771) -+++ docs/intro/tutorial04.txt (revision 17460) -@@ -218,13 +218,13 @@ - First, open the ``polls/urls.py`` URLconf. It looks like this, according to the - tutorial so far:: - -- from django.conf.urls.defaults import * -+ from django.conf.urls.defaults import patterns, include, url - - urlpatterns = patterns('polls.views', -- (r'^$', 'index'), -- (r'^(?P<poll_id>\d+)/$', 'detail'), -- (r'^(?P<poll_id>\d+)/results/$', 'results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'vote'), -+ url(r'^$', 'index'), -+ url(r'^(?P<poll_id>\d+)/$', 'detail'), -+ url(r'^(?P<poll_id>\d+)/results/$', 'results'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'vote'), - ) - - Change it like so:: -@@ -234,12 +234,12 @@ - from polls.models import Poll - - urlpatterns = patterns('', -- (r'^$', -+ url(r'^$', - ListView.as_view( - queryset=Poll.objects.order_by('-pub_date')[:5], - context_object_name='latest_poll_list', - template_name='polls/index.html')), -- (r'^(?P<pk>\d+)/$', -+ url(r'^(?P<pk>\d+)/$', - DetailView.as_view( - model=Poll, - template_name='polls/detail.html')), -@@ -248,7 +248,7 @@ - model=Poll, - template_name='polls/results.html'), - name='poll_results'), -- (r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), -+ url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), - ) - - We're using two generic views here: -Index: docs/internals/release-process.txt -=================================================================== ---- docs/internals/release-process.txt (revision 16771) -+++ docs/internals/release-process.txt (revision 17460) -@@ -99,6 +99,13 @@ - * Security fixes will be applied to the current trunk and the previous two - minor releases. - -+* Documentation fixes will generally be more freely backported to the last -+ release branch (at the discretion of the committer), and don't need to meet -+ the "critical fixes only" bar as it's highly advantageous to have the docs -+ for the last release be up-to-date and correct, and the downside of -+ backporting (risk of introducing regressions) is much less of a concern -+ with doc fixes. -+ - As a concrete example, consider a moment in time halfway between the release of - Django 1.3 and 1.4. At this point in time: - -@@ -111,6 +118,9 @@ - ``1.2.X`` branch. Security fixes will trigger the release of ``1.3.1``, - ``1.2.1``, etc. - -+* Documentation fixes will be applied to trunk, and if easily backported, to -+ the ``1.3.X`` branch. -+ - .. _release-process: - - Release process -Index: docs/internals/deprecation.txt -=================================================================== ---- docs/internals/deprecation.txt (revision 16771) -+++ docs/internals/deprecation.txt (revision 17460) -@@ -177,6 +177,12 @@ - required to end with a trailing slash to ensure there is a consistent - way to combine paths in templates. - -+ * Translations located under the so-called *project path* will be -+ ignored during the translation building process performed at runtime. -+ The :setting:`LOCALE_PATHS` setting can be used for the same task by -+ including the filesystem path to a ``locale`` directory containing -+ non-app-specific translations in its value. -+ - * 2.0 - * ``django.views.defaults.shortcut()``. This function has been moved - to ``django.contrib.contenttypes.views.shortcut()`` as part of the -Index: docs/howto/deployment/modpython.txt -=================================================================== ---- docs/howto/deployment/modpython.txt (revision 16771) -+++ docs/howto/deployment/modpython.txt (revision 17460) -@@ -293,11 +293,14 @@ - arrangement. You're responsible for setting up Apache, or whichever media - server you're using, to serve the admin files. - --The admin files live in (:file:`django/contrib/admin/static/admin`) of the -+The admin files live in (:file:`django/contrib/admin/media/admin`) of the - Django distribution. - --We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle --the admin files, but here are two other approaches: -+We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle the -+admin files (this means using the :djadmin:`collectstatic` management command -+to collect the static files in :setting:`STATIC_ROOT`, and then configuring -+your webserver to serve :setting:`STATIC_ROOT` at :setting:`STATIC_URL`), but -+here are two other approaches: - - 1. Create a symbolic link to the admin static files from within your - document root. -Index: docs/howto/deployment/modwsgi.txt -=================================================================== ---- docs/howto/deployment/modwsgi.txt (revision 16771) -+++ docs/howto/deployment/modwsgi.txt (revision 17460) -@@ -127,11 +127,14 @@ - arrangement. You're responsible for setting up Apache, or whichever media - server you're using, to serve the admin files. - --The admin files live in (:file:`django/contrib/admin/static/admin`) of the -+The admin files live in (:file:`django/contrib/admin/media/admin`) of the - Django distribution. - --We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle --the admin files, but here are two other approaches: -+We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle the -+admin files (this means using the :djadmin:`collectstatic` management command -+to collect the static files in :setting:`STATIC_ROOT`, and then configuring -+your webserver to serve :setting:`STATIC_ROOT` at :setting:`STATIC_URL`), but -+here are two other approaches: - - 1. Create a symbolic link to the admin static files from within your - document root. -Index: docs/topics/auth.txt -=================================================================== ---- docs/topics/auth.txt (revision 16771) -+++ docs/topics/auth.txt (revision 17460) -@@ -1251,17 +1251,20 @@ - ... - class Meta: - permissions = ( -- ("can_view", "Can see available tasks"), -- ("can_change_status", "Can change the status of tasks"), -- ("can_close", "Can remove a task by setting its status as closed"), -+ ("view_task", "Can see available tasks"), -+ ("change_task_status", "Can change the status of tasks"), -+ ("close_task", "Can remove a task by setting its status as closed"), - ) - - The only thing this does is create those extra permissions when you run - :djadmin:`manage.py syncdb <syncdb>`. Your code is in charge of checking the - value of these permissions when an user is trying to access the functionality - provided by the application (viewing tasks, changing the status of tasks, --closing tasks.) -+closing tasks.) Continuing the above example, the following checks if a user may -+view tasks:: - -+ user.has_perm('app.view_task') -+ - API reference - ------------- - -Index: docs/topics/http/urls.txt -=================================================================== ---- docs/topics/http/urls.txt (revision 16771) -+++ docs/topics/http/urls.txt (revision 17460) -@@ -54,6 +54,10 @@ - :class:`~django.http.HttpRequest` as its first argument and any values - captured in the regex as remaining arguments. - -+ 5. If no regex matches, or if an exception is raised during any -+ point in this process, Django invokes an appropriate -+ error-handling view. See `Error handling`_ below. -+ - Example - ======= - -@@ -99,10 +103,10 @@ - * ``/articles/2003`` would not match any of these patterns, because each - pattern requires that the URL end with a slash. - -- * ``/articles/2003/03/3/`` would match the final pattern. Django would call -- the function ``news.views.article_detail(request, '2003', '03', '3')``. -+ * ``/articles/2003/03/03/`` would match the final pattern. Django would call -+ the function ``news.views.article_detail(request, '2003', '03', '03')``. - --.. _Dive Into Python's explanation: http://diveintopython.org/regular_expressions/street_addresses.html#re.matching.2.3 -+.. _Dive Into Python's explanation: http://diveintopython.net/regular_expressions/street_addresses.html#re.matching.2.3 - - Named groups - ============ -@@ -123,7 +127,7 @@ - (r'^articles/2003/$', 'news.views.special_case_2003'), - (r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive'), - (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'), -- (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'news.views.article_detail'), -+ (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', 'news.views.article_detail'), - ) - - This accomplishes exactly the same thing as the previous example, with one -@@ -134,8 +138,8 @@ - ``news.views.month_archive(request, year='2005', month='03')``, instead - of ``news.views.month_archive(request, '2005', '03')``. - -- * A request to ``/articles/2003/03/3/`` would call the function -- ``news.views.article_detail(request, year='2003', month='03', day='3')``. -+ * A request to ``/articles/2003/03/03/`` would call the function -+ ``news.views.article_detail(request, year='2003', month='03', day='03')``. - - In practice, this means your URLconfs are slightly more explicit and less prone - to argument-order bugs -- and you can reorder the arguments in your views' -@@ -246,6 +250,31 @@ - ``patterns()`` and is only relevant when you're passing a string as the - ``view`` parameter. - -+include -+------- -+ -+.. function:: include(<module or pattern_list>) -+ -+A function that takes a full Python import path to another URLconf module that -+should be "included" in this place. -+ -+:func:`include` also accepts as an argument an iterable that returns URL -+patterns. -+ -+See `Including other URLconfs`_ below. -+ -+Error handling -+============== -+ -+When Django can't find a regex matching the requested URL, or when an -+exception is raised, Django will invoke an error-handling view. The -+views to use for these cases are specified by two variables which can -+be set in your root URLconf. Setting these variables in any other -+URLconf will have no effect. -+ -+See the documentation on :ref:`customizing error views -+<customizing-error-views>` for more details. -+ - handler404 - ---------- - -@@ -275,19 +304,6 @@ - .. versionchanged:: 1.2 - Previous versions of Django only accepted strings representing import paths. - --include --------- -- --.. function:: include(<module or pattern_list>) -- --A function that takes a full Python import path to another URLconf module that --should be "included" in this place. -- --:func:`include` also accepts as an argument an iterable that returns URL --patterns. -- --See `Including other URLconfs`_ below. -- - Notes on capturing text in URLs - =============================== - -@@ -420,8 +436,8 @@ - from django.conf.urls.defaults import * - - extra_patterns = patterns('', -- url(r'reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'), -- url(r'charge/$', 'credit.views.charge', name='credit-charge'), -+ url(r'^reports/(?P<id>\d+)/$', 'credit.views.report', name='credit-reports'), -+ url(r'^charge/$', 'credit.views.charge', name='credit-charge'), - ) - - urlpatterns = patterns('', -Index: docs/topics/http/views.txt -=================================================================== ---- docs/topics/http/views.txt (revision 16771) -+++ docs/topics/http/views.txt (revision 17460) -@@ -122,6 +122,8 @@ - template that is displayed when a 404 error is raised. This template should be - called ``404.html`` and located in the top level of your template tree. - -+.. _customizing-error-views: -+ - Customizing error views - ======================= - -Index: docs/topics/i18n/internationalization.txt -=================================================================== ---- docs/topics/i18n/internationalization.txt (revision 16771) -+++ docs/topics/i18n/internationalization.txt (revision 17460) -@@ -477,7 +477,7 @@ - - You can use multiple expressions inside a single ``blocktrans`` tag:: - -- {% blocktrans with book_t=book|title and author_t=author|title %} -+ {% blocktrans with book_t=book|title author_t=author|title %} - This is {{ book_t }} by {{ author_t }} - {% endblocktrans %} - -Index: docs/topics/cache.txt -=================================================================== ---- docs/topics/cache.txt (revision 16771) -+++ docs/topics/cache.txt (revision 17460) -@@ -99,8 +99,9 @@ - on your chosen memcached binding) - - * Set :setting:`LOCATION <CACHES-LOCATION>` to ``ip:port`` values, -- where ``ip`` is the IP address of the Memcached daemon and -- ``port`` is the port on which Memcached is running. -+ where ``ip`` is the IP address of the Memcached daemon and ``port`` is the -+ port on which Memcached is running, or to a ``unix:path`` value, where -+ ``path`` is the path to a Memcached Unix socket file. - - In this example, Memcached is running on localhost (127.0.0.1) port 11211, using - the ``python-memcached`` binding:: -@@ -112,6 +113,16 @@ - } - } - -+In this example, Memcached is available through a local Unix socket file -+:file:`/tmp/memcached.sock` using the ``python-memcached`` binding:: -+ -+ CACHES = { -+ 'default': { -+ 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -+ 'LOCATION': 'unix:/tmp/memcached.sock', -+ } -+ } -+ - One excellent feature of Memcached is its ability to share cache over multiple - servers. This means you can run Memcached daemons on multiple machines, and the - program will treat the group of machines as a *single* cache, without the need -@@ -526,9 +537,10 @@ - requested, subsequent requests to that URL will use the cache. - - ``cache_page`` can also take an optional keyword argument, ``cache``, --which directs the decorator to use a specific cache alias when caching view --results. By default, the ``default`` alias will be used, but you can specify --any cache alias you want:: -+which directs the decorator to use a specific cache (from your -+:setting:`CACHES` setting) when caching view results. By default, the -+``default`` cache will be used, but you can specify any cache you -+want:: - - @cache_page(60 * 15, cache="special_cache") - def my_view(request): -Index: docs/topics/db/models.txt -=================================================================== ---- docs/topics/db/models.txt (revision 16771) -+++ docs/topics/db/models.txt (revision 17460) -@@ -324,11 +324,10 @@ - should work; all are optional. - - For details on accessing backwards-related objects, see the -- `Following relationships backward example`_. -- -+ :ref:`Following relationships backward example <backwards-related-objects>`. -+ - For sample code, see the `Many-to-one relationship model tests`_. - -- .. _Following relationships backward example: http://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects - .. _Many-to-one relationship model tests: http://code.djangoproject.com/browser/django/trunk/tests/modeltests/many_to_one - - Many-to-many relationships -Index: docs/topics/db/sql.txt -=================================================================== ---- docs/topics/db/sql.txt (revision 16771) -+++ docs/topics/db/sql.txt (revision 17460) -@@ -236,6 +236,30 @@ - # Your code here... - transaction.commit_unless_managed(using='my_db_alias') - -+By default, the Python DB API will return results without their field -+names, which means you end up with a ``list`` of values, rather than a -+``dict``. At a small performance cost, you can return results as a -+``dict`` by using something like this:: -+ -+ def dictfetchall(cursor): -+ "Returns all rows from a cursor as a dict" -+ desc = cursor.description -+ return [ -+ dict(zip([col[0] for col in desc], row)) -+ for row in cursor.fetchall() -+ ] -+ -+Here is an example of the difference between the two:: -+ -+ >>> cursor.execute("SELECT id, parent_id from test LIMIT 2"); -+ >>> cursor.fetchall() -+ ((54360982L, None), (54360880L, None)) -+ -+ >>> cursor.execute("SELECT id, parent_id from test LIMIT 2"); -+ >>> dictfetchall(cursor) -+ [{'parent_id': None, 'id': 54360982L}, {'parent_id': None, 'id': 54360880L}] -+ -+ - .. _transactions-and-raw-sql: - - Transactions and raw SQL -Index: docs/topics/forms/modelforms.txt -=================================================================== ---- docs/topics/forms/modelforms.txt (revision 16771) -+++ docs/topics/forms/modelforms.txt (revision 17460) -@@ -332,14 +332,18 @@ - .. note:: - - If you specify ``fields`` or ``exclude`` when creating a form with -- ``ModelForm``, then the fields that are not in the resulting form will not -- be set by the form's ``save()`` method. Django will prevent any attempt to -- save an incomplete model, so if the model does not allow the missing fields -- to be empty, and does not provide a default value for the missing fields, -- any attempt to ``save()`` a ``ModelForm`` with missing fields will fail. -- To avoid this failure, you must instantiate your model with initial values -- for the missing, but required fields:: -+ ``ModelForm``, then the fields that are not in the resulting form -+ will not be set by the form's ``save()`` method. Also, if you -+ manually add the excluded fields back to the form, they will not -+ be initialized from the model instance. - -+ Django will prevent any attempt to save an incomplete model, so if -+ the model does not allow the missing fields to be empty, and does -+ not provide a default value for the missing fields, any attempt to -+ ``save()`` a ``ModelForm`` with missing fields will fail. To -+ avoid this failure, you must instantiate your model with initial -+ values for the missing, but required fields:: -+ - author = Author(title='Mr') - form = PartialAuthorForm(request.POST, instance=author) - form.save() -@@ -633,6 +637,12 @@ - instance won't be saved to the database and won't be included in the return - value (``instances``, in the above example). - -+When fields are missing from the form (for example because they have -+been excluded), these fields will not be set by the ``save()`` -+method. You can find more information about this restriction, which -+also holds for regular ``ModelForms``, in `Using a subset of fields on -+the form`_. -+ - Pass ``commit=False`` to return the unsaved model instances:: - - # don't save to the database -Index: docs/topics/class-based-views.txt -=================================================================== ---- docs/topics/class-based-views.txt (revision 16771) -+++ docs/topics/class-based-views.txt (revision 17460) -@@ -380,7 +380,7 @@ - class PublisherBookListView(ListView): - - context_object_name = "book_list" -- template_name = "books/books_by_publisher.html", -+ template_name = "books/books_by_publisher.html" - - def get_queryset(self): - publisher = get_object_or_404(Publisher, name__iexact=self.args[0]) -@@ -396,7 +396,7 @@ - class PublisherBookListView(ListView): - - context_object_name = "book_list" -- template_name = "books/books_by_publisher.html", -+ template_name = "books/books_by_publisher.html" - - def get_queryset(self): - self.publisher = get_object_or_404(Publisher, name__iexact=self.args[0]) -Index: docs/topics/testing.txt -=================================================================== ---- docs/topics/testing.txt (revision 16771) -+++ docs/topics/testing.txt (revision 17460) -@@ -1586,7 +1586,7 @@ - Skip the decorated test if the named database feature is *not* - supported. - --For example, the following test will not be executed if the database -+For example, the following test will only be executed if the database - supports transactions (e.g., it would run under PostgreSQL, but *not* - under MySQL with MyISAM tables):: - -Index: docs/topics/templates.txt -=================================================================== ---- docs/topics/templates.txt (revision 16771) -+++ docs/topics/templates.txt (revision 17460) -@@ -555,6 +555,8 @@ - the ``escape`` filter *double-escaping* data -- the ``escape`` filter does not - affect auto-escaped variables. - -+.. _string-literals-and-automatic-escaping: -+ - String literals and automatic escaping - -------------------------------------- - -Index: docs/topics/settings.txt -=================================================================== ---- docs/topics/settings.txt (revision 16771) -+++ docs/topics/settings.txt (revision 17460) -@@ -39,7 +39,7 @@ - ``mysite.settings``. Note that the settings module should be on the - Python `import search path`_. - --.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html -+.. _import search path: http://diveintopython.net/getting_to_know_python/everything_is_an_object.html - - The django-admin.py utility - --------------------------- -Index: docs/releases/1.2.6.txt -=================================================================== ---- docs/releases/1.2.6.txt (revision 0) -+++ docs/releases/1.2.6.txt (revision 17460) -@@ -0,0 +1,16 @@ -+========================== -+Django 1.2.6 release notes -+========================== -+ -+*September 9, 2011* -+ -+Welcome to Django 1.2.6! -+ -+This is the sixth bugfix/security release in the Django 1.2 series, fixing -+several security issues present in Django 1.2.5. Django 1.2.6 is a -+recommended upgrade for all users of any Django release in the 1.2.X series. -+ -+For a full list of issues addressed in this release, see the `security -+advisory`_. -+ -+.. _security advisory: https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/ -Index: docs/releases/1.2.7.txt -=================================================================== ---- docs/releases/1.2.7.txt (revision 0) -+++ docs/releases/1.2.7.txt (revision 17460) -@@ -0,0 +1,16 @@ -+========================== -+Django 1.2.7 release notes -+========================== -+ -+*September 10, 2011* -+ -+Welcome to Django 1.2.7! -+ -+This is the seventh bugfix/security release in the Django 1.2 series. It -+replaces Django 1.2.6 due to problems with the 1.2.6 release tarball. -+Django 1.2.7 is a recommended upgrade for all users of any Django release in -+the 1.2.X series. -+ -+For more information, see the `release advisory`_. -+ -+.. _release advisory: https://www.djangoproject.com/weblog/2011/sep/10/127/ -Index: docs/releases/index.txt -=================================================================== ---- docs/releases/index.txt (revision 16771) -+++ docs/releases/index.txt (revision 17460) -@@ -19,6 +19,7 @@ - .. toctree:: - :maxdepth: 1 - -+ 1.3.1 - 1.3 - - 1.2 release -@@ -26,6 +27,8 @@ - .. toctree:: - :maxdepth: 1 - -+ 1.2.7 -+ 1.2.6 - 1.2.5 - 1.2.4 - 1.2.2 -Index: docs/releases/0.95.txt -=================================================================== ---- docs/releases/0.95.txt (revision 16771) -+++ docs/releases/0.95.txt (revision 17460) -@@ -92,15 +92,15 @@ - easy checklist_ for reference when undertaking the porting operation. - - .. _Removing The Magic: http://code.djangoproject.com/wiki/RemovingTheMagic --.. _checklist: http://code.djangoproject.com/wiki/MagicRemovalCheatSheet1 -+.. _checklist: http://code.djangoproject.com/wiki/MagicRemovalCheatSheet - - Problem reports and getting help - ================================ - --Need help resolving a problem with Django? The documentation in the distribution --is also available online_ at the `Django Web site`_. The :doc:`FAQ </faq/index>` --document is especially recommended, as it contains a number of issues that come --up time and again. -+Need help resolving a problem with Django? The documentation in the -+distribution is also available :doc:`online </index>` at the `Django Web -+site`_. The :doc:`FAQ </faq/index>` document is especially recommended, as it -+contains a number of issues that come up time and again. - - For more personalized help, the `django-users`_ mailing list is a very active - list, with more than 2,000 subscribers who can help you solve any sort of -@@ -113,7 +113,6 @@ - Django users and developers from around the world. Friendly people are usually - available at any hour of the day -- to help, or just to chat. - --.. _online: http://www.djangoproject.com/documentation/0.95/ - .. _Django Web site: http://www.djangoproject.com/ - .. _django-users: http://groups.google.com/group/django-users - -Index: docs/releases/0.96.txt -=================================================================== ---- docs/releases/0.96.txt (revision 16771) -+++ docs/releases/0.96.txt (revision 17460) -@@ -50,12 +50,10 @@ - maintained, and it will be removed in a future release of Django. - - Also, note that some features, like the new :setting:`DATABASE_OPTIONS` --setting (see the `databases documentation`_ for details), are only --available on the "mysql" backend, and will not be made available for -+setting (see the :doc:`databases documentation </ref/databases>` for details), -+are only available on the "mysql" backend, and will not be made available for - "mysql_old". - --.. _databases documentation: http://www.djangoproject.com/documentation/0.96/databases/ -- - Database constraint names changed - --------------------------------- - -@@ -164,11 +162,9 @@ - for most common cases. We recommend that anyone new to form handling skip the - old forms system and start with the new. - --For more information about ``django.newforms``, read the `newforms --documentation`_. -+For more information about ``django.newforms``, read the :doc:`newforms -+documentation </topics/forms/index>`. - --.. _newforms documentation: http://www.djangoproject.com/documentation/0.96/newforms/ -- - URLconf improvements - -------------------- - -@@ -216,20 +212,16 @@ - ------------------ - - Django now includes a test framework so you can start transmuting fear into --boredom (with apologies to Kent Beck). You can write tests based on doctest_ --or unittest_ and test your views with a simple test client. -+boredom (with apologies to Kent Beck). You can write tests based on -+:mod:`doctest` or :mod:`unittest` and test your views with a simple test client. - - There is also new support for "fixtures" -- initial data, stored in any of the --supported `serialization formats`_, that will be loaded into your database at the --start of your tests. This makes testing with real data much easier. -+supported :doc:`serialization formats </topics/serialization>`, that will be -+loaded into your database at the start of your tests. This makes testing with -+real data much easier. - --See `the testing documentation`_ for the full details. -+See :doc:`the testing documentation </topics/testing>` for the full details. - --.. _doctest: http://docs.python.org/library/doctest.html --.. _unittest: http://docs.python.org/library/unittest.html --.. _the testing documentation: http://www.djangoproject.com/documentation/0.96/testing/ --.. _serialization formats: http://www.djangoproject.com/documentation/0.96/serialization/ -- - Improvements to the admin interface - ----------------------------------- - -Index: docs/releases/1.0.1.txt -=================================================================== ---- docs/releases/1.0.1.txt (revision 16771) -+++ docs/releases/1.0.1.txt (revision 17460) -@@ -6,10 +6,10 @@ - - This is the first "bugfix" release in the Django 1.0 series, improving - the stability and performance of the Django 1.0 codebase. As such, --Django 1.0.1 contains no new features (and, pursuant to `our --compatibility policy`_, maintains backwards compatibility with Django --1.0), but does contain a number of fixes and other --improvements. Django 1.0.1 is a recommended upgrade for any -+Django 1.0.1 contains no new features (and, pursuant to :doc:`our -+compatibility policy </misc/api-stability/>`, maintains backwards -+compatibility with Django 1.0), but does contain a number of fixes -+and other improvements. Django 1.0.1 is a recommended upgrade for any - development or deployment currently using or targeting Django 1.0. - - -@@ -46,8 +46,9 @@ - - * A fix to the application of autoescaping for literal strings passed - to the ``join`` template filter. Previously, literal strings passed -- to ``join`` were automatically escaped, contrary to `the documented -- behavior for autoescaping and literal strings`_. Literal strings -+ to ``join`` were automatically escaped, contrary to :ref:`the -+ documented behavior for autoescaping and literal strings -+ <string-literals-and-automatic-escaping>`. Literal strings - passed to ``join`` are no longer automatically escaped, meaning you - must now manually escape them; this is an incompatibility if you - were relying on this bug, but not if you were relying on escaping -@@ -60,6 +61,4 @@ - documentation, including both corrections to existing documents and - expanded and new documentation. - --.. _our compatibility policy: http://docs.djangoproject.com/en/dev/misc/api-stability/ - .. _the Subversion log of the 1.0.X branch: http://code.djangoproject.com/log/django/branches/releases/1.0.X --.. _the documented behavior for autoescaping and literal strings: http://docs.djangoproject.com/en/dev/topics/templates/#string-literals-and-automatic-escaping -Index: docs/releases/1.3.1.txt -=================================================================== ---- docs/releases/1.3.1.txt (revision 0) -+++ docs/releases/1.3.1.txt (revision 17460) -@@ -0,0 +1,16 @@ -+========================== -+Django 1.3.1 release notes -+========================== -+ -+*September 9, 2011* -+ -+Welcome to Django 1.3.1! -+ -+This is the first security release in the Django 1.3 series, fixing several -+security issues in Django 1.3. Django 1.3.1 is a recommended upgrade for -+all users of Django 1.3. -+ -+For a full list of issues addressed in this release, see the `security -+advisory`_. -+ -+.. _security advisory: https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued/ -Index: docs/ref/models/instances.txt -=================================================================== ---- docs/ref/models/instances.txt (revision 16771) -+++ docs/ref/models/instances.txt (revision 17460) -@@ -470,7 +470,7 @@ - - Similarly, if you had a URLconf entry that looked like:: - -- (r'/archive/(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', archive_view) -+ (r'/archive/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', archive_view) - - ...you could reference this using ``permalink()`` as follows:: - -@@ -478,8 +478,8 @@ - def get_absolute_url(self): - return ('archive_view', (), { - 'year': self.created.year, -- 'month': self.created.month, -- 'day': self.created.day}) -+ 'month': self.created.strftime('%m'), -+ 'day': self.created.strftime('%d')}) - - Notice that we specify an empty sequence for the second parameter in this case, - because we only want to pass keyword parameters, not positional ones. -Index: docs/ref/models/options.txt -=================================================================== ---- docs/ref/models/options.txt (revision 16771) -+++ docs/ref/models/options.txt (revision 17460) -@@ -166,6 +166,13 @@ - >>> answer.get_previous_in_order() - <Answer: 1> - -+.. admonition:: Changing order_with_respect_to -+ -+ ``order_with_respect_to`` adds an additional field/database column -+ named ``_order``, so be sure to handle that as you would any other -+ change to your models if you add or change ``order_with_respect_to`` -+ after your initial :djadmin:`syncdb`. -+ - ``ordering`` - ------------ - -@@ -238,6 +245,12 @@ - - unique_together = ("driver", "restaurant") - -+ A :class:`~django.db.models.ManyToManyField` cannot be included in -+ unique_together (it's not even clear what that would mean). If you -+ need to validate uniqueness related to a -+ :class:`~django.db.models.ManyToManyField`, look at signals or -+ using an explicit :attr:`through <ManyToManyField.through>` model. -+ - ``verbose_name`` - ---------------- - -Index: docs/ref/templates/builtins.txt -=================================================================== ---- docs/ref/templates/builtins.txt (revision 16771) -+++ docs/ref/templates/builtins.txt (revision 17460) -@@ -1868,7 +1868,7 @@ - Returns a slice of the list. - - Uses the same syntax as Python's list slicing. See --http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice -+http://diveintopython.net/native_data_types/lists.html#odbchelper.list.slice - for an introduction. - - Example:: -Index: docs/ref/contrib/gis/geoip.txt -=================================================================== ---- docs/ref/contrib/gis/geoip.txt (revision 16771) -+++ docs/ref/contrib/gis/geoip.txt (revision 17460) -@@ -144,7 +144,7 @@ - Returns a dictionary of city information for the given query. Some - of the values in the dictionary may be undefined (``None``). - --.. method:: GeoIPcountry(query) -+.. method:: GeoIP.country(query) - - Returns a dictionary with the country code and country for the given - query. -Index: docs/ref/contrib/messages.txt -=================================================================== ---- docs/ref/contrib/messages.txt (revision 16771) -+++ docs/ref/contrib/messages.txt (revision 17460) -@@ -210,6 +210,10 @@ - ``RequestContext``. Otherwise, ensure ``messages`` is available to - the template context. - -+Even if you know there is only just one message, you should still iterate over -+the ``messages`` sequence, because otherwise the message storage will not be cleared -+for the next request. -+ - Creating custom message levels - ------------------------------ - -Index: docs/ref/contrib/admin/index.txt -=================================================================== ---- docs/ref/contrib/admin/index.txt (revision 16771) -+++ docs/ref/contrib/admin/index.txt (revision 17460) -@@ -19,8 +19,10 @@ - 1. Add ``'django.contrib.admin'`` to your :setting:`INSTALLED_APPS` - setting. - -- 2. Admin has two dependencies - :mod:`django.contrib.auth` and -- :mod:`django.contrib.contenttypes`. If these applications are not -+ 2. The admin has four dependencies - :mod:`django.contrib.auth`, -+ :mod:`django.contrib.contenttypes`, -+ :mod:`django.contrib.messages` and -+ :mod:`django.contrib.sessions`. If these applications are not - in your :setting:`INSTALLED_APPS` list, add them. - - 3. Determine which of your application's models should be editable in the -@@ -542,7 +544,7 @@ - Fields in ``list_filter`` can also span relations using the ``__`` lookup:: - - class UserAdminWithLookup(UserAdmin): -- list_filter = ('groups__name') -+ list_filter = ('groups__name',) - - .. attribute:: ModelAdmin.list_per_page - -Index: docs/ref/django-admin.txt -=================================================================== ---- docs/ref/django-admin.txt (revision 16771) -+++ docs/ref/django-admin.txt (revision 17460) -@@ -1156,7 +1156,7 @@ - Note that this option is unnecessary in ``manage.py``, because it takes care of - setting the Python path for you. - --.. _import search path: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html -+.. _import search path: http://diveintopython.net/getting_to_know_python/everything_is_an_object.html - - .. django-admin-option:: --settings - -Index: docs/ref/signals.txt -=================================================================== ---- docs/ref/signals.txt (revision 16771) -+++ docs/ref/signals.txt (revision 17460) -@@ -352,12 +352,16 @@ - .. data:: django.db.models.signals.post_syncdb - :module: - --Sent by :djadmin:`syncdb` after it installs an application. -+Sent by :djadmin:`syncdb` command after it installs an application, and -+:djadmin:`flush` command. - - Any handlers that listen to this signal need to be written in a particular - place: a ``management`` module in one of your :setting:`INSTALLED_APPS`. If - handlers are registered anywhere else they may not be loaded by --:djadmin:`syncdb`. -+:djadmin:`syncdb`. It is important that handlers of this signal perform -+idempotent changes (e.g. no database alterations) as this may cause the -+:djadmin:`flush` management command to fail if it also ran during the -+:djadmin:`syncdb` command. - - Arguments sent with this signal: - -Index: README -=================================================================== ---- README (revision 16771) -+++ README (revision 17460) -@@ -28,7 +28,7 @@ - To get more help: - - * Join the #django channel on irc.freenode.net. Lots of helpful people -- hang out there. Read the archives at http://botland.oebfare.com/logger/django/. -+ hang out there. Read the archives at http://django-irc-logs.com/. - - * Join the django-users mailing list, or read the archives, at - http://groups.google.com/group/django-users. diff --git a/libre/dkms-libre/01-broken-uninstall.patch b/libre/dkms-libre/01-broken-uninstall.patch new file mode 100644 index 000000000..a859efabe --- /dev/null +++ b/libre/dkms-libre/01-broken-uninstall.patch @@ -0,0 +1,22 @@ +diff --git a/dkms b/dkms +index abb01a4..265b69a 100644 +--- a/dkms ++++ b/dkms +@@ -162,11 +162,14 @@ set_kernel_source_dir() + + # A little test function for DKMS commands that only work on one kernel. + have_one_kernel() { +- (( ${#kernelver[@]} > 1 )) && \ +- die 4 $"The action $1 does not support multiple kernel version" \ +- $"parameters on the command line." +- [[ $all ]] && die 5 $"The action $1 does not support the --all" \ +- $"parameter." ++ if (( ${#kernelver[@]} != 1 )); then ++ die 4 $"The action $1 does not support multiple kernel version" \ ++ $"parameters on the command line." ++ fi ++ if [[ $all ]]; then ++ die 5 $"The action $1 does not support the --all" \ ++ $"parameter." ++ fi + } diff --git a/libre/dkms-libre/02-no-kernel-hook.patch b/libre/dkms-libre/02-no-kernel-hook.patch new file mode 100644 index 000000000..f01f22002 --- /dev/null +++ b/libre/dkms-libre/02-no-kernel-hook.patch @@ -0,0 +1,13 @@ +# Author: Sébastien Luttringer <seblu@seblu.net> +--- a/Makefile 2011-12-07 19:23:51.000000000 +0100 ++++ b/Makefile 2013-05-13 00:48:19.620000000 +0200 +@@ -46,9 +46,6 @@ + gzip -c -9 dkms.8 > $(MAN)/dkms.8.gz + chmod 0644 $(MAN)/dkms.8.gz + touch --reference=dkms.8 $(MAN)/dkms.8.gz +- mkdir -p -m 0755 $(KCONF)/prerm.d $(KCONF)/postinst.d +- install -p -m 0755 kernel_prerm.d_dkms $(KCONF)/prerm.d/dkms +- install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/postinst.d/dkms + + DOCFILES=sample.spec sample.conf AUTHORS COPYING README.dkms sample-suse-9-mkkmp.spec sample-suse-10-mkkmp.spec + diff --git a/libre/dkms-libre/PKGBUILD b/libre/dkms-libre/PKGBUILD new file mode 100644 index 000000000..99caab5fa --- /dev/null +++ b/libre/dkms-libre/PKGBUILD @@ -0,0 +1,66 @@ +# $Id: PKGBUILD 90494 2013-05-12 22:57:28Z seblu $ +# Maintainer: Sébastien Luttringer +# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com) +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + +_pkgname=dkms +pkgname=dkms-libre +pkgver=2.2.0.3 +pkgrel=14 +pkgdesc='Dynamic Kernel Modules System, with linux-libre-headers and linux-libre-lts-headers recommendation' +arch=('any') +url='http://linux.dell.com/dkms/' +license=('GPL2') +depends=('bash' 'kmod' 'gcc' 'make' 'patch') +optdepends=('linux-libre-headers: build modules against linux-libre kernel' + 'linux-libre-lts-headers: build modules against linux-libre-lts kernel') +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver +backup=('etc/dkms/framework.conf' 'etc/default/dkms') +install=$_pkgname.install +source=("http://linux.dell.com/$_pkgname/permalink/$_pkgname-$pkgver.tar.gz" + "$_pkgname.default" + "$_pkgname.service" + "$_pkgname.systemd" + '01-broken-uninstall.patch' + '02-no-kernel-hook.patch') +md5sums=('11a8aaade2ebec2803653837c7593030' + '33be2fbf1bcc1b3fb2f38d9e7eaa809d' + '02e9744e3fdc3d2f68e46966fb32e260' + '267632312aa52a190ec0db0758920dd3' + '2dfd8656dc79afd229c1481a90fb645b' + '82d520c39c99c34977e48b313a189c6c') + +prepare() { + # patch + patches=("$srcdir"/*.patch) + cd $_pkgname-$pkgver + for p in "${patches[@]}"; do + msg2 "Apply patch: ${p##*/}" + patch -p1 -i "$p" + done + # /usr move + msg2 '/usr move patching' + for i in dkms{,_framework.conf,.bash-completion,.8,_common.postinst}; do + sed -ri 's,/lib/modules,/usr/lib/modules,g' "$i" + done + # fix hardcoded paths + sed -i "s|/sbin/depmod|depmod|" dkms +} + +package() { + # systemd + install -D -m 644 $_pkgname.service "$pkgdir/usr/lib/systemd/system/$_pkgname.service" + install -D -m 755 $_pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$_pkgname" + install -D -m 644 $_pkgname.default "$pkgdir/etc/default/$_pkgname" + # upstream installer + cd $_pkgname-$pkgver + make \ + DESTDIR="$pkgdir" \ + SBIN="$pkgdir/usr/bin" \ + BASHDIR="$pkgdir/usr/share/bash-completion/completions" \ + install +} + +# vim:set ts=2 sw=2 et: diff --git a/libre/dkms-libre/dkms.default b/libre/dkms-libre/dkms.default new file mode 100644 index 000000000..d430855bb --- /dev/null +++ b/libre/dkms-libre/dkms.default @@ -0,0 +1,9 @@ +# vim:set ts=2 sw=2 ft=sh noet: + +# With LOAD set to yes, modules listed as installed will be loaded with +# systemctl start dkms.service. Default is yes. +LOAD=yes + +# With UNLOAD set to yes, modules listed as installed will be unloaded with +# systemctl stop dkms.service. Default is no. +UNLOAD=no diff --git a/libre/dkms-libre/dkms.hook b/libre/dkms-libre/dkms.hook new file mode 100644 index 000000000..3d656e32d --- /dev/null +++ b/libre/dkms-libre/dkms.hook @@ -0,0 +1,12 @@ +#!/bin/bash + +dkms_autoinstall() { + export TMPDIR=/dev/shm + status 'Starting DKMS autoinstall' dkms autoinstall + unset TMPDIR +} + +add_hook single_udevlaunched dkms_autoinstall +add_hook sysinit_udevlaunched dkms_autoinstall + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/libre/dkms-libre/dkms.install b/libre/dkms-libre/dkms.install new file mode 100644 index 000000000..4dd18dd19 --- /dev/null +++ b/libre/dkms-libre/dkms.install @@ -0,0 +1,13 @@ +#!/bin/sh + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + if [ "$(vercmp $2 2.2.0.3-12)" -le 0 ]; then + cat << EOF +===> dkms startup config file moved to /etc/default/dkms +EOF + fi +} + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/libre/dkms-libre/dkms.service b/libre/dkms-libre/dkms.service new file mode 100644 index 000000000..0e679a949 --- /dev/null +++ b/libre/dkms-libre/dkms.service @@ -0,0 +1,11 @@ +[Unit] +Description=Dynamic Kernel Modules System + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/lib/systemd/scripts/dkms start +ExecStop=/usr/lib/systemd/scripts/dkms stop + +[Install] +WantedBy=multi-user.target diff --git a/libre/dkms-libre/dkms.systemd b/libre/dkms-libre/dkms.systemd new file mode 100644 index 000000000..03e6bfe97 --- /dev/null +++ b/libre/dkms-libre/dkms.systemd @@ -0,0 +1,61 @@ +#!/bin/bash + +. /etc/default/dkms + +# list dkms modules for the current running kernel +list_dkms_modules() { + shopt -s nullglob + declare -a DKMS_MOULES + # dkms status needs uname -r to list correctly intalled version for current kernel + local modules_path=($(dkms status -k "$(uname -r)"|sed -rn 's#(.*), (.*), (.*), (.*): installed#\1/\2/\3/\4#p')) + for p in "${modules_path[@]}"; do + for m in /var/lib/dkms/"$p"/module/*.ko{,gz}; do + m=${m##*/} + m=${m%.gz} + m=${m%.ko} + DKMS_MODULES+=("$m") + done + done +} + +# load installed kernel modules for the current kernel version +load_dkms_modules() { + local ret=0 + list_dkms_modules + for m in "${DKMS_MODULES[@]}"; do + modprobe "$m" + ret+=$? + done + return $ret +} + +# unload installed kernel modules for the current kernel version +unload_dkms_modules() { + list_dkms_modules + # ask for removal + for m in "${DKMS_MODULES[@]}"; do + modprobe --remove --quiet "$m" + done + # check modules are unloaded + # sometimes modprobe -r fail but modules are removed + for m in "${DKMS_MODULES[@]}"; do + [[ -e /sys/modules/$m ]] && return 1 + done + return 0 +} + +case "$1" in + start) + dkms autoinstall -k "$(uname -r)" + [[ $LOAD =~ [Yy][Ee][Ss] ]] && load_dkms_modules + ;; + stop) + [[ $UNLOAD =~ [Yy][Ee][Ss] ]] && unload_dkms_modules + ;; + *) + echo "usage: $0 {start|stop}" >&2 + ;; +esac + +: +# vim:set ts=2 sw=2 ft=sh et: diff --git a/libre/epdfview-libre/PKGBUILD b/libre/epdfview-libre/PKGBUILD index 3a0446c49..3a7f2c3bf 100644 --- a/libre/epdfview-libre/PKGBUILD +++ b/libre/epdfview-libre/PKGBUILD @@ -3,7 +3,7 @@ # Maintainer: schuay <jakob.gruber@gmail.com> # Contributor: Tom K <tomk@runbox.com> # Contributor: Thayer Williams <thayer@archlinux.org> -# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> pkgname=epdfview-libre _pkgname=epdfview diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD index e01981433..6ea777a16 100644 --- a/libre/file-roller-libre/PKGBUILD +++ b/libre/file-roller-libre/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 185397 2013-05-13 19:05:20Z heftig $ +# $Id: PKGBUILD 189275 2013-07-02 07:37:30Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan de Groot <jgc@archlinux.org> _pkgname=file-roller pkgname=file-roller-libre -pkgver=3.8.2 +pkgver=3.8.3 pkgrel=1 pkgdesc="Create and modify archives, with unar recommendation included and nonfree unace recommendation removed" arch=('i686' 'x86_64' 'mips64el') @@ -23,7 +23,7 @@ options=('!libtool' '!emptydirs') install=file-roller.install url="http://www.gnome.org" source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver::3}/$_pkgname-$pkgver.tar.xz) -sha256sums=('b251b146d7966d770c98546e2152dbc17785ef3b8cf460f692829d0ac1cbe79e') +sha256sums=('55caac832ed0bab89085fdf7a3c3fa1afaf8ae6fb05aeb2a872e42cb6c52894e') build() { cd $_pkgname-$pkgver diff --git a/libre/gloobus-preview-libre/PKGBUILD b/libre/gloobus-preview-libre/PKGBUILD index 12bff5f1d..5881a4c2e 100644 --- a/libre/gloobus-preview-libre/PKGBUILD +++ b/libre/gloobus-preview-libre/PKGBUILD @@ -1,17 +1,20 @@ -# $Id: PKGBUILD 91027 2013-05-18 11:44:36Z bgyorgy $ +# $Id: PKGBUILD 91026 2013-05-18 11:44:23Z bgyorgy $ # Maintainer: Balló György <ballogyor+arch at gmail dot com> _pkgname=gloobus-preview pkgname=gloobus-preview-libre pkgver=0.4.5.290 _pkgver=0.4.5-ubuntu11~ppa290 -pkgrel=1 -pkgdesc="Gnome application designed to enable a full screen preview of any kind of file (using bsdtar to preview RAR archives)" +pkgrel=1.1 +pkgdesc="Gnome application designed to enable a full screen preview of any kind of file, with libarchive support" arch=('i686' 'x86_64') url="http://gloobus.net/" license=('GPL') depends=('gstreamer0.10-base-plugins' 'gtksourceview3' 'poppler-glib' 'python2-dbus' 'python2-gconf' 'taglib' 'xdg-utils') makedepends=('boost' 'bzr' 'djvulibre' 'libspectre') +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver optdepends=('djvulibre: Preview DjVu documents' 'gstreamer0.10-bad-plugins: Extra media codecs' 'gstreamer0.10-good-plugins: Extra media codecs' @@ -20,6 +23,7 @@ optdepends=('djvulibre: Preview DjVu documents' 'libspectre: Preview PostScript documents' 'p7zip: View content of 7z archives' 'unoconv: Preview LibreOffice compatible documents' + 'libarchive: View content of RAR archives' 'unzip: View content of .ZIP archives') options=('!libtool') install=$_pkgname.install @@ -52,7 +56,7 @@ prepare() { # Use xdg-open patch -Np1 -i "$srcdir/use-xdg-open.patch" - # Use bsdtar if unrar is not found. + # Use bsdtar (libarchive) if unrar is not found. patch -Np0 -i "$srcdir/gloobus-preview-usr-bsdtar-for-rar.patch" ### Prepare gloobus-sushi diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD index 21220a209..56d994beb 100644 --- a/libre/grub/PKGBUILD +++ b/libre/grub/PKGBUILD @@ -3,76 +3,69 @@ # Contributor: Keshav Padram (the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> -## grub-extras lua and gpxe fail to build +_GRUB_BZR_REV="5043" + +## grub-extras lua and gpxe fail to build with grub bzr rev 5043 [[ "${CARCH}" == "x86_64" ]] && _EFI_ARCH="x86_64" [[ "${CARCH}" == "i686" ]] && _EFI_ARCH="i386" pkgname=grub pkgdesc="GNU GRand Unified Bootloader (2), (Parabola rebranded)" -pkgver=2.00 -pkgrel=1 +pkgver=2.00.${_GRUB_BZR_REV} +pkgrel=2 url="https://www.gnu.org/software/grub/" arch=('x86_64' 'i686') license=('GPL3') -backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom') +backup=('etc/default/grub' 'etc/grub.d/40_custom') install="${pkgname}.install" options=('!makeflags') -conflicts=('grub-legacy' 'grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}") +conflicts=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}" 'grub-legacy') replaces=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}") provides=('grub-common' 'grub-bios' "grub-efi-${_EFI_ARCH}") makedepends=('xz' 'freetype2' 'bdf-unifont' 'ttf-dejavu' 'python' 'autogen' - 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse' 'bzr') + 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse' 'bzr' 'rsync') depends=('sh' 'xz' 'gettext' 'device-mapper') optdepends=('freetype2: For grub-mkfont usage' 'fuse: For grub-mount usage' - 'dosfstools: For EFI support' + 'dosfstools: For grub-mkrescue FAT FS and EFI support' 'efibootmgr: For grub-install EFI support' 'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue' 'os-prober: To detect other OSes when generating grub.cfg in BIOS systems' 'mtools: For grub-mkrescue FAT FS support') -source=("http://ftp.gnu.org/gnu/grub/grub-${pkgver}.tar.xz" - '0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch' - 'grub-2.00-fix-docs.patch' +# source=("http://ftp.gnu.org/gnu/grub/grub-${pkgver}.tar.xz" +source=("grub-${pkgver}::bzr+bzr://bzr.savannah.gnu.org/grub/trunk/grub/#revision=${_GRUB_BZR_REV}" 'parabola_grub_mkconfig_fixes.patch' '60_memtest86+' - 'grub.default' - 'grub.cfg') + 'grub.default') for _DIR_ in 915resolution ntldr-img ; do - source+=("grub-extras-${_DIR_}::bzr+bzr://bzr.savannah.gnu.org/grub-extras/${_DIR_}/") + source+=("grub-extras-${_DIR_}::bzr+bzr://bzr.savannah.gnu.org/grub-extras/${_DIR_}/#revision=") done -source+=("grub-extras-lua::bzr+bzr://bzr.savannah.gnu.org/grub-extras/lua/#revision=24" - "grub-extras-gpxe::bzr+bzr://bzr.savannah.gnu.org/grub-extras/gpxe/#revision=13") - -sha1sums=('274d91e96b56a5b9dd0a07accff69dbb6dfb596b' - 'b68565bc155094bade390c257c3f31bc55ae244b' - '1dc08391bb13f8e23faa21a76cc4cc4b25467702' - 'c631ec04d458c60a3ceffe60d2d1806d54554d9c' +# sha1sums=('274d91e96b56a5b9dd0a07accff69dbb6dfb596b' +sha1sums=('SKIP' + '513172d91d1a2e2cda7c0a744c766d5868cb28bf' '2aa2deeb7d7dc56f389aa1487b7a57b0d44ce559' '06b926320cb2add6c157d59d46e553b89dd3aa03' - '662ec5f0d44122b66666a788387ec69389295b2c' - 'SKIP' - 'SKIP' 'SKIP' 'SKIP') _build_grub-common_and_bios() { ## Copy the source for building the common/bios package - cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-bios-${pkgver}" - cd "${srcdir}/grub-bios-${pkgver}/" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-bios" + cd "${srcdir}/grub-${pkgver}-bios/" ## Add the grub-extra sources - export GRUB_CONTRIB="${srcdir}/grub-bios-${pkgver}/grub-extras/" + export GRUB_CONTRIB="${srcdir}/grub-${pkgver}-bios/grub-extras/" - install -d "${srcdir}/grub-bios-${pkgver}/grub-extras" - for _DIR_ in 915resolution ntldr-img lua gpxe ; do - cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-bios-${pkgver}/grub-extras/${_DIR_}" + install -d "${srcdir}/grub-${pkgver}-bios/grub-extras" + for _DIR_ in 915resolution ntldr-img ; do + cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${pkgver}-bios/grub-extras/${_DIR_}" done ## Unset all compiler FLAGS for bios build @@ -83,11 +76,11 @@ _build_grub-common_and_bios() { unset MAKEFLAGS ## Start the actual build process - cd "${srcdir}/grub-bios-${pkgver}/" + cd "${srcdir}/grub-${pkgver}-bios/" ./autogen.sh echo - CFLAGS="-fno-stack-protector" ./configure \ + ./configure \ --with-platform="pc" \ --target="i386" \ "${_EFIEMU}" \ @@ -117,15 +110,15 @@ _build_grub-common_and_bios() { _build_grub-efi() { ## Copy the source for building the efi package - cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-efi-${pkgver}" - cd "${srcdir}/grub-efi-${pkgver}/" + cp -r "${srcdir}/grub-${pkgver}" "${srcdir}/grub-${pkgver}-efi" + cd "${srcdir}/grub-${pkgver}-efi/" - export GRUB_CONTRIB="${srcdir}/grub-efi-${pkgver}/grub-extras/" + # export GRUB_CONTRIB="${srcdir}/grub-${pkgver}-efi/grub-extras/" - install -d "${srcdir}/grub-efi-${pkgver}/grub-extras/" - for _DIR_ in lua gpxe ; do - cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-bios-${pkgver}/grub-extras/${_DIR_}" - done + # install -d "${srcdir}/grub-${pkgver}-efi/grub-extras/" + # for _DIR_ in lua gpxe ; do + # cp -r "${srcdir}/grub-extras-${_DIR_}" "${srcdir}/grub-${pkgver}-bios/grub-extras/${_DIR_}" + # done ## Unset all compiler FLAGS for efi build unset CFLAGS @@ -134,7 +127,7 @@ _build_grub-efi() { unset LDFLAGS unset MAKEFLAGS - cd "${srcdir}/grub-efi-${pkgver}/" + cd "${srcdir}/grub-${pkgver}-efi/" ./autogen.sh echo @@ -166,7 +159,7 @@ _build_grub-efi() { } -build() { +prepare() { ## Set ARCH dependent variables if [[ "${CARCH}" == 'x86_64' ]]; then @@ -177,14 +170,6 @@ build() { cd "${srcdir}/grub-${pkgver}/" - ## Fix compiling with gcc48 - patch -Np1 -i "${srcdir}/0069-Backport-gnulib-fixes-for-C11.-Fixes-Savannah-bug-37.patch" - echo - - ## Fix docs compiling - patch -Np1 -i "${srcdir}/grub-2.00-fix-docs.patch" - echo - ## Apply Parabola specific fixes to enable grub-mkconfig detect kernels and initramfs patch -Np1 -i "${srcdir}/parabola_grub_mkconfig_fixes.patch" echo @@ -197,7 +182,18 @@ build() { ## Requires python2 # sed 's|python |python2 |g' -i "${srcdir}/grub-${pkgver}/autogen.sh" - + + ## pull in language files + ./linguas.sh + +} + +build() { + + cd "${srcdir}/grub-${pkgver}/" + + # remove not working langs which need LC_ALL=C.UTF-8 + sed -i -e 's#en@cyrillic en@greek##g' po/LINGUAS _build_grub-common_and_bios echo @@ -208,7 +204,7 @@ build() { _package_grub-common_and_bios() { - cd "${srcdir}/grub-bios-${pkgver}/" + cd "${srcdir}/grub-${pkgver}-bios/" make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install echo @@ -223,15 +219,12 @@ _package_grub-common_and_bios() { ## Install /etc/default/grub (used by grub-mkconfig) install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" - ## Install grub.cfg for backup array - install -D -m0644 "${srcdir}/grub.cfg" "${pkgdir}/boot/grub/grub.cfg" - } _package_grub-efi() { - cd "${srcdir}/grub-efi-${pkgver}/" - make DESTDIR="${pkgdir}/" install + cd "${srcdir}/grub-${pkgver}-efi/" + make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install echo ## remove gdb debugging related files diff --git a/libre/grub/grub_bzr_export.sh b/libre/grub/grub_bzr_export.sh deleted file mode 100644 index ff8f99ecc..000000000 --- a/libre/grub/grub_bzr_export.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env bash - -## For actual repos - -# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/lua lua -# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/gpxe gpxe -# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/ntldr-img ntldr-img -# bzr branch bzr://bzr.savannah.gnu.org/grub-extras/915resolution 915resolution - -## For launchpad mirror - -# bzr branch lp:~the-ridikulus-rat/grub/grub-extras-lua lua -# bzr branch lp:~the-ridikulus-rat/grub/grub-extras-gpxe gpxe -# bzr branch lp:~the-ridikulus-rat/grub/grub-extras-ntldr-img ntldr-img -# bzr branch lp:~the-ridikulus-rat/grub/grub-extras-915resolution 915resolution - -## grub-extras zfs is integrated into grub bzr main repo and is no longer needed separately. - -_WD="${PWD}/" -_OUTPUT_DIR="${_WD}/" - -_ACTUAL_PKGVER="2.00" - -_GRUB_BZR_REPO_DIR="${_WD}/grub_mainline_BZR/" -_GRUB_BZR_EXP_REPO_DIR="${_WD}/grub_experimental_BZR/" -_GRUB_EXTRAS_REPOS_DIR="${_WD}/grub_extras_BZR/" - -_MAIN_SNAPSHOT() { - - cd "${_GRUB_BZR_REPO_DIR}/" - echo - - _REVNUM="$(bzr revno ${_GRUB_BZR_REPO_DIR})" - bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub_r${_REVNUM}.tar" - echo - - cd "${_OUTPUT_DIR}/" - - xz -9 "${_OUTPUT_DIR}/grub_r${_REVNUM}.tar" - echo - -} - -_EXP_SNAPSHOT() { - - cd "${_GRUB_BZR_EXP_REPO_DIR}/" - echo - - _REVNUM="$(bzr revno ${_GRUB_BZR_EXP_REPO_DIR})" - bzr export --root="grub-${_ACTUAL_PKGVER}" --format="tar" "${_OUTPUT_DIR}/grub_exp_r${_REVNUM}.tar" - echo - - cd "${_OUTPUT_DIR}/" - - xz -9 "${_OUTPUT_DIR}/grub_exp_r${_REVNUM}.tar" - echo - -} - -_EXTRAS_SNAPSHOT() { - - cd "${_GRUB_EXTRAS_REPOS_DIR}/${_GRUB_EXTRAS_NAME}/" - echo - - _REVNUM="$(bzr revno ${_GRUB_EXTRAS_REPOS_DIR}/${_GRUB_EXTRAS_NAME})" - bzr export --root="${_GRUB_EXTRAS_NAME}" --format="tar" "${_OUTPUT_DIR}/grub_extras_${_GRUB_EXTRAS_NAME}_r${_REVNUM}.tar" - echo - - cd "${_OUTPUT_DIR}/" - echo - - xz -9 "${_OUTPUT_DIR}/grub_extras_${_GRUB_EXTRAS_NAME}_r${_REVNUM}.tar" - echo - -} - -echo - -set -x -e - -echo - -_MAIN_SNAPSHOT - -echo - -# _EXP_SNAPSHOT - -echo - -_GRUB_EXTRAS_NAME="lua" -_EXTRAS_SNAPSHOT - -# _GRUB_EXTRAS_NAME="gpxe" -# _EXTRAS_SNAPSHOT - -_GRUB_EXTRAS_NAME="ntldr-img" -_EXTRAS_SNAPSHOT - -_GRUB_EXTRAS_NAME="915resolution" -_EXTRAS_SNAPSHOT - -echo - -set +x +e - -echo - -unset _WD -unset _OUTPUT_DIR -unset _GRUB_BZR_REPO_DIR -unset _GRUB_EXTRAS_REPOS_DIR -unset _GRUB_EXTRAS_NAME diff --git a/libre/grub/parabola_grub_mkconfig_fixes.patch b/libre/grub/parabola_grub_mkconfig_fixes.patch index 5324afa01..fbcca19ec 100644 --- a/libre/grub/parabola_grub_mkconfig_fixes.patch +++ b/libre/grub/parabola_grub_mkconfig_fixes.patch @@ -1,8 +1,8 @@ diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 516be86..5f37db2 100644 +index 8decc1d..170047f 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -213,6 +213,8 @@ export GRUB_DEFAULT \ +@@ -212,6 +212,8 @@ export GRUB_DEFAULT \ GRUB_THEME \ GRUB_GFXPAYLOAD_LINUX \ GRUB_DISABLE_OS_PROBER \ @@ -12,10 +12,10 @@ index 516be86..5f37db2 100644 GRUB_SAVEDEFAULT \ GRUB_ENABLE_CRYPTODISK \ diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 765bfdc..b148558 100644 +index 2c4bb0a..c7120d2 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in -@@ -115,6 +115,14 @@ cat <<EOF +@@ -125,6 +125,14 @@ cat <<EOF EOF @@ -64,7 +64,7 @@ index 14402e8..e85f7d6 100644 fi - if [ x$type != xrecovery ] ; then + if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then - save_default_entry | sed -e "s/^/\t/" + save_default_entry | grub_add_tab fi @@ -132,7 +140,8 @@ linux_entry () @@ -75,7 +75,7 @@ index 14402e8..e85f7d6 100644 + + message="$(gettext_printf "Loading Linux %s ..." "${version}")" sed "s/^/$submenu_indentation/" << EOF - echo '$message' + echo '$(echo "$message" | grub_quote)' linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} @@ -190,7 +199,22 @@ while [ "x$list" != "x" ] ; do alt_version=`echo $version | sed -e "s,\.old$,,g"` diff --git a/libre/hplip-libre/PKGBUILD b/libre/hplip-libre/PKGBUILD index 2503fe028..968110d3e 100644 --- a/libre/hplip-libre/PKGBUILD +++ b/libre/hplip-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 185808 2013-05-19 10:16:28Z andyrtr $ +# $Id: PKGBUILD 188976 2013-06-27 14:29:36Z andyrtr $ # Maintainer: Tom Gundersen <teg@jklm.no> # Contributor : Rémy Oudompheng <remy@archlinux.org> # Contributor: Morgan LEFIEUX <comete@archlinuxfr.org> @@ -6,8 +6,8 @@ _pkgname=hplip pkgname=hplip-libre -pkgver=3.13.5 -pkgrel=2 +pkgver=3.13.6 +pkgrel=1 pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet, without hplip-plugin binary blobs recommendation" arch=('i686' 'x86_64' 'mips64el') url="http://hplipopensource.com" @@ -30,26 +30,16 @@ provides=$_pkgname=$pkgver options=('!libtool') install=hplip.install source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc} - cups-1.6-buildfix.diff - hp-mkuri.patch - hplip_typo.patch) -md5sums=('f0c406f06f191a120f7d283b69ff10e8' + hp-mkuri.patch) +md5sums=('3dd5052864052b8cd4ce013bb71f4d6c' 'SKIP' - 'ef64578c6cb3ce252dbdcb0f1c2f4a47' - '0bd7779fdbc4d7a9386df04dce2cb8d4' - 'b3dd33a538ed8a3774f3c22f13e0a549') + '0bd7779fdbc4d7a9386df04dce2cb8d4') build() { cd "$srcdir/$_pkgname-$pkgver" - # fix build with cups 1.6 - FC hplip-ipp-accessors.patch - patch -p1 -i "${srcdir}/cups-1.6-buildfix.diff" - # fix linking libnotify, FS#34283 patch -Np0 -i ${srcdir}/hp-mkuri.patch - - # fix typo preventing FW to load - patch -Np0 -i ${srcdir}/hplip_typo.patch export PYTHON=python2 diff --git a/libre/icecat-noscript/PKGBUILD b/libre/icecat-noscript/PKGBUILD index 1a0e3ddd0..3f83618e0 100644 --- a/libre/icecat-noscript/PKGBUILD +++ b/libre/icecat-noscript/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 90901 2013-05-15 12:56:28Z spupykin $ +# $Id: PKGBUILD 93410 2013-07-03 10:50:31Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=firefox-noscript pkgname=icecat-noscript -pkgver=2.6.6 -pkgrel=2 +pkgver=2.6.6.7 +pkgrel=1 pkgdesc="plugin for icecat which disables script" arch=('any') url="http://noscript.net/" @@ -14,7 +14,7 @@ depends=() provides=$_pkgname=$pkgver makedepends=('unzip') source=(https://secure.informaction.com/download/releases/noscript-$pkgver.xpi) -md5sums=('a018efb1fe0f722ff307382791bf3c98') +md5sums=('10b6704f34568d226fb5fe69b7d6043d') package() { # _ffver=`pacman -Q icecat | cut -f2 -d\ | cut -f1 -d-` diff --git a/libre/icedove-l10n/PKGBUILD b/libre/icedove-l10n/PKGBUILD index d9c2c7481..45294e48e 100644 --- a/libre/icedove-l10n/PKGBUILD +++ b/libre/icedove-l10n/PKGBUILD @@ -2,8 +2,8 @@ # Maintainer: André Silva <emulatorman@lavabit.com> pkgbase=icedove-l10n -_pkgver=17.0.5 -pkgver=17.0.5.2 +_pkgver=17.0.7 +pkgver=17.0.7.1 _langpacks=(ar ast be bg bn-BD br ca cs da de el en-GB en-US es-AR es-ES et eu fi fr fy-NL ga-IE gd gl he hr hu hy-AM id is it ja ko lt nb-NO nl nn-NO pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE ta-LK tr uk vi zh-CN zh-TW) @@ -64,58 +64,58 @@ done md5sums=('d5b2567a8cc8f64591f313a6efdaaffc' 'f3719964e893c1002b7a923e8f95f923' - 'ef463b3772f804beb4108e15917485fd' - '6125a2e91119afe4cd4fb78909bc2168' - '990067ee981db3bf9873e4bd9b2b1eba' - 'e32d496230cba49a435775359d4485ce' - 'd212d8bc244184e816cf36a9b654e7e6' - '4a83b506d1b81dfffa0b33bc0f12b24f' - '6349985a77b2db81a43cb22291bfd972' - 'dd4a259bfa4ce6816c55e9d7ff7f1172' - 'dc3ec06ccb5e98cfa332fca40af77470' - 'e81e63d8fac6c61cbbe72b1c8b0ce05c' - 'f0850f83f396c33a4e69abd00bda0e55' - 'ffc5de6b5409cf7cdd411ae853e0ba05' - '169780df5d160a04221dd80c92dd131a' - '8d1eacb770748156dbe02e493c41a5a6' - 'a3a0d856da6af722a6444567b684eb14' - '798415f06ce916eb6c84ea4cf97e1253' - 'c8eefe6a65295d354beb59e8f1b3116e' - '3ec1490226e064bc1145072ecdf031b4' - 'a3ff2959c9375084683b0741797103f9' - '99ea64506470bf7938e169bfe5f569b3' - '8170d58dcbb1b84820ef0ace6dc23965' - '24ba56f81446d551101d1848ed660682' - '53b9b22f7ad5916c8dfccd8b758828dc' - '0bdcd2f628dff58a4544e93a88344b76' - '87d516fbb68ae06d5ee7439a8a4d3d96' - 'c3cfa07d55fec1eb558e11c63ebd2a97' - '9845802371f603cb70df77a63088c16d' - '552e297a315a1b6f308604da4b492c53' - 'dc6755c33351b95f9e883c8e64fab7b6' - 'f3a67c52f5c5ca8cd5484250617f1aff' - '48fc583c7e67e87113fb73243da46313' - '4450b7753336f279296260e444cb0ba2' - '3a639521e20e5fb936f6d1b7679becd9' - '241a29846743f4dbcd5704e470193f30' - '71d71192e076a889da26129efd5f2f3d' - 'efc91beb8c199d459e1f24164066d75e' - 'ed717c1b94618faa8304796f1ff0acd7' - '8fc0aea02c1373f0ac0b7fa7eac2fa0c' - '808c60d4af8ee7b6bbbd82a5079c293e' - '6f0e4c6fe66e6d0e98f2fc444b59d629' - 'bc5e9972f5a092f4f28f577f7ade7ad7' - '2f852610ddc1550200965d4be6320879' - '6ad80cd433ef69c3577bfea9fd26cedc' - '0dd02b5317c9656c64543067956940bf' - '9e0d2f288130f048358135a89732ca85' - '936dbda4758d9a65f8c27603a2dee3bd' - '820d70ce31ca9731c162ab942b0daea1' - 'd737350d9edb73c15096e867fbdd8f3c' - 'b1896502d411dd6037f141d3561461d4' - '491a3a386c4963f162e050c370ffa140' - 'aa9f4e83501e624e4054f3ff61b71db3' - '257ee623933cfda550a8643a1a0b1d1c' - 'c3a8fa4fc511d914892e08fa17fab8a9' - '44be6381519c6c5ea785a4f5a5122a64' - '6693c752bf6272caed2e204556fc69b8') + 'fb33f8da3bc9f0906baf5222098e9359' + '0ceada37eed6ea7986fdffd6b0ea5aac' + '612dcc6e280b547efe9d6cebf82a1eb5' + 'fcc841359ef595fb58e6ef2333453ca0' + '69c31584fd7b442b655e58e4556f5034' + '479b6a37772b6885c52f26187818c542' + 'b723a4ae893838f4d332c5118bacd2fb' + '8cae26bd3354071f96faaa58f633f7f3' + '99fcd0609b232ba167d22200df617ce4' + '14e0224981659188f41d15d8a2a116bf' + '1da89ba6776c5be68851ab6782809b25' + '4e5e74537f138c0a5cfef02931e57c6b' + '67bb0b85fd5fd3f7344982cb0f93cc60' + 'a7120022d3a957f152044f5d7ce155e2' + '44a35e42bc9682b42f7fad416f803b83' + '149da69e91a018b8c2d2341b62091b18' + 'e78c3749605674623a5ebd455d1da5e6' + '18d4429db86023c3cff4cdfdb3c7db61' + '327f085c787a61c95b7904f1d68ba8ba' + 'c7f83c1d5fac8bae0257f5269d6318a9' + '2d8f1bf1e814fc984d791a95c4ef8811' + '2513698f14cbc85651c5b752845a9d7f' + '5d727ff5a17e105abe44b1e970868ea2' + 'e233b53dce6072308c190cdb83cb3d08' + 'f8c1f680d62c76607c12cf517fb4d9b1' + '124a5110c4e807bae739fa5542b21e6f' + '8031d7162eeb68343d0879550653c13d' + 'af6f26ef85012c84fb28279230a6bf47' + '93a25ac664d66deb4e0e88a9dd0f601f' + 'f834580781619b97659dc95d8f203d2b' + 'd54e1e7ed5c5d88db1ef2445bc0c9948' + '7a899329dafb829075f735990171823f' + '46fb6882a4350a86616dd0859b230602' + '80492e996b180062f56f9005d4083608' + '9fab024f293084e98e00639bb156b7aa' + 'a24adcb523efdfb836d7aa8dcb192a8b' + '3742697f98cec4bb7c565cdede33263f' + 'd9362ae826eb8591db5d6cf3f56bba0f' + '5e05ee5c2ef8ee9e5869a1f26277df2c' + '6cd8b8a4f19df69408ed03e7d09032dd' + '5ff06adb7f42975034f29910f5c9698d' + '74b76de767b3d1fc5eae3b40f55bca20' + 'd387e154d9a6d322551a16ac9e9b38e3' + '03c41d2d47146ca18aab8dff9023d3aa' + '8fb9aa07d7c5244da75192ebaa254d3c' + '84377496e3bc15d46f85bef767ca13ba' + '07ac58fb12e6744279670c22bbe41d9b' + 'b12f1a56bc7ce08c2800955257db1799' + '36ffa376a0e38e5b7000c2725cca994d' + '1fb8619dff3c3ee7c07e659a88094b8f' + '158ca3414b6ac982fc0c97d8b4f28c98' + '1fdabfde405e2bf54a4c8ad25c04d98f' + 'ffce5a4d36bc8a42496fda405ac677f7' + 'e183f1b3c17813399a930cb7b66d545d' + '12a93560247c526b0d29cacfc9f4882d') diff --git a/libre/icedove-libre/PKGBUILD b/libre/icedove-libre/PKGBUILD index 8473cadd8..5fcf9f112 100644 --- a/libre/icedove-libre/PKGBUILD +++ b/libre/icedove-libre/PKGBUILD @@ -3,8 +3,8 @@ # We're getting this from Debian Sid _debname=icedove -_debver=17.0.5 -_debrel=2 +_debver=17.0.7 +_debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -33,8 +33,8 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2" ${_pkgname}.desktop Icedove-branding.patch) options=(!emptydirs) -md5sums=('0c68298c17757257da79b6bb39e3fd10' - '2086f544ef90570d7629374aeac22aa6' +md5sums=('d5c0351b374b6caf536c11522929d822' + '0c9fc53103e7168edd972466a29cc8cf' '5cf95ea94f69cdd36604890cfbf7b954' 'a8fc4658d45b6bf9350023e5c3f34e56' '4eecc4fc5aafaf0da651a09eadc90bee' @@ -94,6 +94,8 @@ prepare() { } build() { + export DEBIAN_BUILD="comm-esr17" + cd "${srcdir}/${DEBIAN_BUILD}" export LDFLAGS="${LDFLAGS} -Wl,-rpath,/usr/lib/${_pkgname}" @@ -103,6 +105,8 @@ build() { } package() { + export DEBIAN_BUILD="comm-esr17" + cd "${srcdir}/${DEBIAN_BUILD}" make -j1 -f client.mk DESTDIR="${pkgdir}" install diff --git a/libre/iceweasel-l10n/PKGBUILD b/libre/iceweasel-l10n/PKGBUILD index 298d740cc..375785d88 100644 --- a/libre/iceweasel-l10n/PKGBUILD +++ b/libre/iceweasel-l10n/PKGBUILD @@ -1,8 +1,8 @@ -# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> +# Maintainer: André Silva <emulatorman@lavabit.com> +# Maintainer: Márcio Silva <coadde@lavabit.com> +# Contributor: Luke Shumaker <lukeshu@sbcglobal.net> # Contributor: fauno <fauno@kiwwwi.com.ar> # Contributor: Figue <ffigue@gmail.com> -# Maintainer: Márcio Silva <coadde@lavabit.com> -# Maintainer: André Silva <emulatorman@lavabit.com> # Based on icecat-i18n package, which is in turn based on firefox-i18n # When updating to a newer upstream release: @@ -11,7 +11,7 @@ # - Run 'make'. It will take care of everything else for you. _debname=iceweasel -_debver=21.0 +_debver=22.0 _debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -23,7 +23,7 @@ pkgname=($(for lang in ${_langpacks[@]} do echo $pkgbase-$lang | tr A-Z a-z done)) pkgver=$_debver.$_debrel -pkgrel=2 +pkgrel=1 pkgdesc="Language packs for Debian Iceweasel." arch=('any') @@ -54,7 +54,7 @@ build() { cd $srcdir/$_path unzip -q langpack-$i@iceweasel.mozilla.org.xpi -d $i rm langpack-$i@iceweasel.mozilla.org.xpi - install -Dm644 $srcdir/region.properties $i/chrome/$i/locale/browser-region + install -Dm644 $srcdir/region.properties $i/browser/chrome/$i/locale/browser-region cd $i zip -q -r $srcdir/$_path/langpack-$i@iceweasel.mozilla.org.xpi . done @@ -75,91 +75,91 @@ package_iceweasel-l10n-$(echo $lang | tr A-Z a-z)() { done md5sums=('e88728730ecf9f0f145de5f70e362b15' - '59b4b2a362eece9edabb2fdc0f548ea2' - '24df894af578b902d16d4bc91759e926' - '489f555d46d08e3cb37eb5cb16203a3b' - '3b71f901014bd3fdcfc53d19a13cff10' - 'fc4a5af84dcf6b055b11b8d2ac9868ac' - '7d03e2d5c2660942d5fbb5078b71c8cc' - 'd12132ce5c0a4a881363dfebbf23fbee' - '09a5cf2d291f052433bdf834fe1f5100' - 'a8eb8983f0c63c1383f18f894f2292ee' - 'ef6fbffbad81223386c30c06da584f65' - 'f4b80fc31cea5e0aa3c03eab9f36765f' - 'c7ba7f36e104046ab22f37202c5e291e' - 'e884fe1127ef15376f4d72047e2ee924' - 'b235bed0eb4f872d5478a58c00341458' - '577498e39c9dd00ea2fb72146b3b5eac' - 'c611cfc16c7c7b5b6c877fd88b40c10e' - '5c6e2f317aba37bc701e4aab4720fcd7' - 'f9f7db03d1fcf2337902eba79289934c' - 'e601dc8a1bdd9204ca3a4db5e4fe0df1' - 'c2075468a1fea47efb7c65000fe73652' - 'fcf2f689a8d06c7c2c6bb49f57037d55' - 'f0c8d22cc820bb7177326bb069a38f5e' - '9dd2dc6c155ec3a61e26fba4baa980bc' - '41eff39b7c819c78fcac10f8064a2627' - 'c3f9a5f5305fece3f165d5d946805180' - 'd424c55b8a0242e500916f5bfdc60319' - 'f5d41bf99c08a27c4f4a2d370e6414f2' - '420a3b3194938ecc31e05899bd0c52e4' - '19e23ac8f3e187c1b7112e1a252adacb' - 'f1c9f646c5b70f591497cc36b7312aae' - 'b246026367f3c5416397566bd5980e5b' - '24e4bf6cc17e3fd724387e157e6a49b1' - '60af06bc25f259311284d83cb6b2ba02' - 'c5d8d2fecb6b0d2172ea1b4a4bdb2d68' - '58c93fd5ad320935666f0e10a2111f0a' - '7777c5b6bfa40c3ece5b48ef18d12938' - '47725d7fa7594f5739725096ae999dd1' - 'c2f34c4fbd2eaf0a9c7e8d97ac49ae43' - '7900a33d5694744af6c1b3a6b8a5f2df' - '97a95a5c30d8ba542a4c5457a831259d' - '02a3052bf3af409c56cdca72c23f2669' - 'a617e607fe3f952b6a152707c5c895e4' - '8d93b0550a30af8377e6198d67fb740e' - '938c22bdb193a8be3cf317deded8a49e' - 'f343106f50810e14ae1264933d5495fb' - 'a58187d70e895b90ea7667b08e0df6e4' - 'a014309f9621a15a7f86e759d5a42aa5' - '8a4c8bea9c508ad4ca395eb5d31e3105' - '6e728d930ca539a022d1d5cc5d8cc9c8' - '6c10afb3a86a1305ec4fdfde5702908e' - '3f749b1b19d5534442eb9daf5f9ddba1' - 'd8876e6f3ee24768a602128963f80e1c' - '6b7213d8c4d625ff0293e7a7c8eb4254' - '3d2b5b760c369ce1ff764205b196f0e5' - 'c09eec3566a2352f1dd2f2ad0e7cbf6c' - '5e560da497a4e448413bfd343d23493d' - 'faf5235cb19f5d1ee1d8868eb9399d8a' - '1dc06a576d7c87059125fa51e8677500' - 'ea7c6eb5df30fbf3b7b4737025492fd9' - 'f50c41542503959ddcc0ce200c2f8ec4' - '1a633a935016e3570327b52b66bb0dca' - '59bcc03566d356ac027655453775efa4' - '2d8644f035fe7d4e77a0f5eb196ddb0b' - 'a5cf6b19492d3e969187fe847d4ee990' - 'e3167e646b7c556e0d43565a13b066f9' - 'b1ce311e588dd120d04c2d94597ae100' - '129a07881b89c3f3ab14971dec88007f' - '37bc634c1f82bd9a01ea7e817e100d71' - 'd9b39409aa83bcae7aa22c54ebcd48b0' - '582926879e8d10d52448f373cd3fbd33' - 'cf6bafb6e3ee659c27579b43038f704c' - '083f69fd4f64fd436d7fdfe8a7747b41' - '6f65d6a154fa2c7d72045b4b34fc8890' - '1a060b1b08d6fa8413995003c62b220f' - '84194eba8c736cd8036975a8423758c0' - '30f15d767b3e867df514175680a78a8d' - '32946289930406ed3ccd1c174e464210' - '05547b17ebd589408a9633aeb4fede40' - 'f53c078d1ed0e90f2d68f098b34279f2' - 'a11cf418be9247856f3179f85fe57c9a' - '39d47c6e738749b1c01d06a1b112c368' - '63adbbe9ac9dde80d2c3ae0c861f1d33' - '82d6b78bf72083a5e01652c02e152680' - '725a322b12f522591a5fba5aa32031bb' - '98c7ed17e8fbe4478032a31ad2c2aa07' - 'a7c33685d88af8a90a14c874538fa53a' - '9b43e2e557c82a20509f34a54cc42e0f' - '84e12ebfd749a04adc5b3ace348a06f1') + 'ee742b573a169d31560f6a6becb41e3a' + '5d0dc39924ce4e0db437996d8a34fdd0' + '0f0ac315f5fbb5e081e5e9969c5482fc' + '4f9acf9efb7bfdaaa6061d76a61f1fe0' + 'ba5e95c3b6a48c8078353658e90a86f0' + '62b101c5e3ec1bfb7096c1728a5a1f89' + '33c910cb338f15b1f8bb53642f926c3a' + 'c971d199e6ce406095c82fe0aa11fe01' + '023ffab908dfd2ba970a1b5b9e5d2b0e' + '4c268fbe223e195ead80454880d064c7' + '8bd1c3303d7c17f2bc60240496c76ce2' + 'cf9e7a05dfa86d45246d0605d00e2d87' + 'a5fc01397dbe6d52f996b93b8a3cf55d' + '0b838e5ff9bdef95353f6e7dcd259558' + 'b529eea7fba51b4384fde80b47e7bebc' + '4f7fd9e189de9df37ff69cf34fc99f02' + 'c43a7be1aa8a0f00023e024de46198c2' + 'a4122057c2b2d4cec5079fef3c195b69' + 'adf7ca92a9df2d80a150fba8f94d12ad' + 'ce406f27700d972231e6a58f137068e2' + '1183cf8ff60af67e723bf3279d45058f' + 'bf22f66d181f97f5d818b8a1cd708617' + 'a684274da448a765a47a9c945803ab4a' + '328a0a2affc13ec597233ab0011ea506' + '099cc06876fe8e59a50bedb498169721' + '2e4cfd617507d28fc7083cfd9a49b5c7' + '8065c4a6d1634f6571d8dd3b428d3e6b' + '03a8757b10ca780690b80685918d9fb3' + '650db5a5d7d84ee533a34d4e6927e7b4' + 'eafd888466b00b1130aa24ce3e5ff689' + '1904330faee4503f733e006aa4f70d12' + '2a9846c969feacdba46956b57231667a' + 'e28a0fdf769432fed614da3252f03b41' + '3268b4c75e04c8315c93c0c47fedc602' + '5a0358ed95f4be6a1fe2f7654ea97e38' + '9ab21ef94c416f0925dee7fa1bd7feb0' + 'bee9b7995ccefdfe76b911032aa91a1b' + '59e6062bc9b97ae55f33ac7354491ce1' + 'b449c0dd635d34005b72a0f8a6c6573e' + 'b21e26451d5fc860a58d8a4cc0b9be99' + 'b558424e457aff17c582d642aa85fc24' + '5b603ba3e3c54902057308cb09c80e4e' + '20c17f3d945614cc36916dcf0c479a5a' + 'a2178a56487c0449244f50763893583e' + 'e256a82b04816566e10c9d4c8cb62c57' + 'afc5407fae17c2e894216b2e649d230a' + '92f60bbe78aae87dfa2df2bf008db10a' + 'a02788678251a677c6cf7c2123391f2a' + '4f927451a8b375e0f5ddb291c1fb7b80' + 'bcd9dbdabbe837b615c3c94e664addc1' + '2b50509cf00c2fa27292b055c31fc415' + 'e7b48db429e08751ed60b9500bba9d7d' + 'cab6a762cb378503f797da42d47283ad' + '8be4595d4788114c9c167435a5bc8d3c' + 'd03539bb9460209fa474385060077032' + '2ce9415f8f11aa7e8498a1abfc3ef39f' + '4119ba2afd5db58625571a119c1f09cb' + '981e12b8649b4450c5ac1e9e8ffbac83' + '881032091c863b249d1f463a1f1ab58f' + '13b6072c1adf21a2b8363a77073c83ea' + 'ba3646116673d62583b03c8789b72370' + 'b40dfef3bf5c27673a600e22135a86d3' + 'f2d5b8b91a20ab2170c5c62db1179ad4' + 'badc3b2a5c87b9df2d4176b0542fa836' + '882799e21bf63baaf4b1d335ae3ffffa' + 'f0ff3990e05f7d7d4386a1dc9cc78423' + '7bff28a8b1dee5f603b582d0ecd51f35' + '015469155969f9c2bdb79a2bd0d41402' + '59a8ff29e9a15d6b174dea2c7995ab3f' + '63b5a9127a721dd40ed3ad8f78132ad5' + 'f3f2fcdd40ea556de88cff9edae0ee3d' + '0d07f11308c2c339b965389e221fb6d5' + 'ae002208626b4b52680f33f2645c1d47' + 'a170a839e3fae8ef76f80c30d5f136f1' + '16d6fa49650822e036c50892b4f0c3f1' + '6eb5c5b1caf73c6d4bc9ec60991db988' + '846e79dbc479856f919f264d9821233c' + '01bb7fe8b663610ef4a5813ff3f7d895' + '670495986ec1643302641ec214a6c38e' + '251ced2c35aed8d301b23922b35d5e7a' + 'ce1d7bc395ccec6b9d4b143d5b8c5ba7' + 'f90747e32f6414f3494219becd331eb3' + '8fba2382f07aecec5234608741fdb72d' + '9c06e17e2dbba42dbe01a1264c57e39e' + '0a3aff57dab8c018daf0d9e71211bbb5' + 'a15982154bccdb4abdedaa8a86edd259' + '92a75129f4dd1f9700bd355e2c15b393' + 'bb02b3047d33b870ca5f549ce5561d98') diff --git a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch index d89e4d1ae..f561d5d39 100644 --- a/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch +++ b/libre/iceweasel-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch @@ -3,7 +3,7 @@ Date: Tue, 5 Jun 2012 08:57:06 +0200 Subject: Bug 756390 - Make the "Reset Firefox" feature more generic
diff --git a/browser/components/migration/content/migration.js b/browser/components/migration/content/migration.js
-index 0e8ccf5..fa46c08 100644
+index 91c5c1c..2f8bd1a 100644
--- a/browser/components/migration/content/migration.js
+++ b/browser/components/migration/content/migration.js
@@ -249,7 +249,7 @@ var MigrationWizard = {
@@ -184,7 +184,7 @@ index 260bc29..52b32cc 100644 -64_firefox=Bookmarks Backups
+64_self=Bookmarks Backups
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
-index fa45115..1fcf3cd 100644
+index 0541ebf..f983ae4 100644
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -42,7 +42,7 @@ toolkit.jar:
@@ -267,10 +267,10 @@ index f35c227..7062886 100644 %{C++
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
-index b08f8ce..446ee74 100644
+index 17f5598..0b9a24a 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -3747,7 +3747,7 @@ XREMain::XRE_mainRun()
+@@ -3743,7 +3743,7 @@ XREMain::XRE_mainRun()
if (gDoProfileReset) {
// Automatically migrate from the current application if we just
// reset the profile.
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD index eebf10e57..359dd684b 100644 --- a/libre/iceweasel-libre/PKGBUILD +++ b/libre/iceweasel-libre/PKGBUILD @@ -1,10 +1,10 @@ +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> # Contributor (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org> # Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net> # Contributor: Figue <ffigue at gmail> # Contributor (Parabola): fauno <fauno@kiwwwi.com.ar> # Contributor (Parabola): vando <facundo@esdebian.org> -# Contributor (Parabola): André Silva <emulatorman@lavabit.com> -# Contributor (Parabola): Márcio Silva <coadde@lavabit.com> # Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com> # Thank you very much to the older contributors: # Contributor: evr <evanroman at gmail> @@ -14,7 +14,7 @@ _pgo=true # We're getting this from Debian Experimental _debname=iceweasel -_debver=21.0 +_debver=22.0 _debrel=1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } @@ -22,20 +22,21 @@ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } _pkgname=iceweasel pkgname=iceweasel-libre pkgver=$_debver.$_debrel -pkgrel=3 +pkgrel=1 pkgdesc="A libre version of Debian Iceweasel, the standalone web browser based on Mozilla Firefox." arch=(i686 x86_64 mips64el) license=(MPL GPL LGPL) depends=(alsa-lib dbus-glib desktop-file-utils gtk2 gstreamer0.10-base hicolor-icon-theme hunspell libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification) -makedepends=(autoconf2.13 diffutils imagemagick libidl2 librsvg libxslt mesa pkg-config python2 quilt unzip zip) +makedepends=(autoconf2.13 diffutils imagemagick libidl2 libpulse librsvg libxslt mesa pkg-config python2 quilt unzip zip) [ "$CARCH" != "mips64el" ] && makedepends+=('yasm') options=(!emptydirs !makeflags) if $_pgo; then makedepends+=(xorg-server-xvfb) options+=(!ccache) fi -optdepends=('networkmanager: Location detection via available WiFi networks') +optdepends=('networkmanager: Location detection via available WiFi networks' + 'libpulse: PulseAudio audio driver') url="http://packages.debian.org/experimental/${_pkgname}" install=iceweasel.install replaces=('firefox') @@ -51,18 +52,22 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" vendor.js shared-libs.patch replace-urls.txt + $_pkgname-22.0-do-not-fallback-to-manual-proxy-settings.patch + $_pkgname-20.0.1-fixed-loading-icon.png Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch) -md5sums=('0a7c51bb494463c327af918bae6c4ee4' - 'c17121a4ffd40f463e16d7828445d96e' - 'e1e903ca91997f18b428c54ef604f27d' +md5sums=('45d7121606cc3b21cd2797c87b5dc3bd' + 'bf0440dd8c31527359d797daaf0d3edd' + '2d7ac85c32df6a4ccfcc6de7a1420bf7' '383e8e2a97a8b13fe56d153adb6878b6' - '2930f3bffe0d7a6b9845f8c006821bc2' + '0bbedfc161291de9dc61c531bf062c22' '7b9e5996dd9fe0b186a43a297db1c6b5' 'abf5ecb74caa857abb42bcfbb3442d9c' '0c26941504d3f2abed759221e9bb5de1' '52e52f840a49eb1d14be1c0065b03a93' 'a8fc4658d45b6bf9350023e5c3f34e56' - '85e67561e0e491cd538ce018dfc2d948') + 'bc27a39d08ab3f6705e487c85598d8bf' + '6e335a517c68488941340ee1c23f97b0' + '86d4045285a9a15c20a62f46535809cb') prepare() { export DEBIAN_BUILD="mozilla-release" @@ -131,6 +136,10 @@ prepare() { echo 'ac_add_options --disable-jemalloc' >> .mozconfig fi + # Should be fixed in Iceweasel 23 + # https://bugzilla.mozilla.org/show_bug.cgi?id=817533 + patch -Np1 -i ../$_pkgname-22.0-do-not-fallback-to-manual-proxy-settings.patch + # Fix PRE_RELEASE_SUFFIX sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \ browser/base/Makefile.in @@ -143,15 +152,27 @@ prepare() { # configure script misdetects the preprocessor without an optimization level # https://bugs.archlinux.org/task/34644 sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure + + # Fix tab loading icon (flickers with libpng 1.6) + # https://bugzilla.mozilla.org/show_bug.cgi?id=841734 + cp "$srcdir/$_pkgname-20.0.1-fixed-loading-icon.png" \ + browser/themes/linux/tabbrowser/loading.png } build() { + export DEBIAN_BUILD="mozilla-release" + cd "$srcdir/$DEBIAN_BUILD" export PATH="$srcdir/path:$PATH" export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname" export PYTHON="/usr/bin/python2" + # Work around memory address space exhaustion during linking on i686 + if [[ $CARCH == i686 ]]; then + LDFLAGS+=' -Wl,--no-keep-memory' + fi + if $_pgo; then export DISPLAY=:99 Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & @@ -167,6 +188,8 @@ build() { } package() { + export DEBIAN_BUILD="mozilla-release" + cd "$srcdir/$DEBIAN_BUILD" make -f client.mk DESTDIR="$pkgdir" install diff --git a/libre/iceweasel-libre/iceweasel-20.0.1-fixed-loading-icon.png b/libre/iceweasel-libre/iceweasel-20.0.1-fixed-loading-icon.png Binary files differnew file mode 100644 index 000000000..55f25e591 --- /dev/null +++ b/libre/iceweasel-libre/iceweasel-20.0.1-fixed-loading-icon.png diff --git a/libre/iceweasel-libre/iceweasel-22.0-do-not-fallback-to-manual-proxy-settings.patch b/libre/iceweasel-libre/iceweasel-22.0-do-not-fallback-to-manual-proxy-settings.patch new file mode 100644 index 000000000..56e4bfc45 --- /dev/null +++ b/libre/iceweasel-libre/iceweasel-22.0-do-not-fallback-to-manual-proxy-settings.patch @@ -0,0 +1,36 @@ + +# HG changeset patch +# User Patrick McManus <mcmanus@ducksong.com> +# Date 1365623297 14400 +# Node ID 85f1d207f52546e0e5fe78990cdefe6efae485fb +# Parent 2bb26d742f5ffd2d946291fd3c688dc3d6d34f67 +bug 817533 - failed system proxy lookups should not fallback to manual configs r=jduell + +diff --git a/netwerk/base/src/nsProtocolProxyService.cpp b/netwerk/base/src/nsProtocolProxyService.cpp +--- a/netwerk/base/src/nsProtocolProxyService.cpp ++++ b/netwerk/base/src/nsProtocolProxyService.cpp +@@ -1553,17 +1553,22 @@ nsProtocolProxyService::Resolve_Internal + + // Proxy auto config magic... + if (mProxyConfig == PROXYCONFIG_PAC || mProxyConfig == PROXYCONFIG_WPAD) { + // Do not query PAC now. + *usePACThread = true; + return NS_OK; + } + +- // proxy info values ++ // If we aren't in manual proxy configuration mode then we don't ++ // want to honor any manual specific prefs that might be still set ++ if (mProxyConfig != PROXYCONFIG_MANUAL) ++ return NS_OK; ++ ++ // proxy info values for manual configuration mode + const char *type = nullptr; + const nsACString *host = nullptr; + int32_t port = -1; + + uint32_t proxyFlags = 0; + + if ((flags & RESOLVE_PREFER_SOCKS_PROXY) && + !mSOCKSProxyHost.IsEmpty() && mSOCKSProxyPort > 0) { + diff --git a/libre/iceweasel-libre/libre.patch b/libre/iceweasel-libre/libre.patch index 3bb39d215..b5f0a4126 100644 --- a/libre/iceweasel-libre/libre.patch +++ b/libre/iceweasel-libre/libre.patch @@ -1,7 +1,7 @@ diff -ruN mozilla-release.orig/browser/app/profile/firefox.js mozilla-release/browser/app/profile/firefox.js ---- mozilla-release.orig/browser/app/profile/firefox.js 2013-05-11 16:19:20.000000000 -0300 -+++ mozilla-release/browser/app/profile/firefox.js 2013-05-18 13:47:28.091097903 -0300 -@@ -1203,12 +1203,6 @@ +--- mozilla-release.orig/browser/app/profile/firefox.js 2013-06-26 23:50:49.004052388 -0300 ++++ mozilla-release/browser/app/profile/firefox.js 2013-06-26 23:45:52.697802427 -0300 +@@ -1208,12 +1208,6 @@ // (This is intentionally on the high side; see bug 746055.) pref("image.mem.max_decoded_image_kb", 256000); @@ -11,12 +11,12 @@ diff -ruN mozilla-release.orig/browser/app/profile/firefox.js mozilla-release/br -pref("social.manifest.cliqz", "{\"builtin\": \"true\",\"origin\": \"https://mozsocial.cliqz.com\",\"name\": \"Cliqz\",\"description\": \"Cliqz for Firefox Social\",\"author\": \"Cliqz\",\"homepageURL\": \"https://mozsocial.cliqz.com/\",\"version\": \"0.9\",\"workerURL\": \"https://mozsocial.cliqz.com/worker\",\"sidebarURL\": \"https://mozsocial.cliqz.com/sidebar\",\"iconURL\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wKEgkPNcdyEiIAAANaSURBVDjLVZNPUJR1HMY/39/77vLXZYFhKf4sbEKRTlrjFFIzFgtlJmQyddAmrOlgjdIAt+yQp04Wzti9sUZwPFgzOdg0sIuThaGUOBROEqLAimsoiqy77Lvvt0s09ZyeZ+Z5ntPzCKvo2w+7Poe+/YXAQeBtEINqX9gX+2JT3mKpgznT0zhwpyvaTE/jAAACQG8H7D4CJ/YZHFkA/ICi4JW01FtXWFco5NjcPxweXMN/YADw/KMyEkHEj7qKugJQQZxlR4klUEvI74o0H/hfQXc0DG8cgd7uLah5Gle1oWSt7KzYyIH1WyXotYknYHBGJDIHk/fc1tXw5lPbsIaPXuXg2aZ1Wcn5L/3OzbKkeGVTyXpa86u044lmuRC7pkOxCbGMhTGqapuKqnfqArPHrvTP9k4inZFwgSLXz8cTvnDldj0zPcXrj+5gauZPQUT7fo9KVWUJo7f/wJDi2eoACSt1yxa79VzL6Z+lK9L0yVJ65cONpW26u/ZdOT87wUJqCUln9NvpC9IQXK8dT+2Qk5NDvFq7BdsYfWton4zfu9ydbbyHbYW2omw/raGXpGf4OP6cAurL6xCF0O0Ae598hUPnTuDPd4gtzVOc6xdLLIyx6tWYLAPUPJRbzuJyhkNj/fy6cFXzvblqWbZU+AM6Mjshlf4AP8Z+I+Wm+GFmmLG743iNXSyqxlZ0xWNl54SKgnzz2kfM3YnL7L1bpB1H60qCUr6mRPOycqTS9yZluaWMLPzC3sf28P3ckDt6+1LGatjzyDaQ4ONFm/jp2hQ3kotcvxvn1uJfYtse8myvLK08IJlOUVZQSI0vpM8FnuHFsudrkunUBemKNrcLenQxZeuxcVtWXME4GVh6oJlsj3Q07NQNxdXSffYzNqzNxRjFqKXv1bZLla/yvnFd97gqA/leR8r9adRRzSSSmlFXWF7WUEGpXIxfpcAnOLpC2nVIaWp810Bb9Wh87CsB6Iy+kJVlrA8u3+X9Gzfd0Mik8+9NPF6vbq57WJJ5N7FtC4X7ItI+vL3/awDpijbR0zgIQOdguEqMmU6kVCdiLhkX2Ri0UIuxiw88EYWMoB8Pt3yXWJ2zrJLOSBOHw4N0RppeFuGkCDkArnLJQrZ+2jgwv+ptOLWN4ZbTAPwNmUptT0KshT0AAAAASUVORK5CYII=\",\"icon32URL\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB90DEgoTOwK3bfUAAAj8SURBVFjDnZd5cFXlGcZ/7znnLslNCIEkQBJI2IksAWpcgmjFugRxA41lwFKmTgd0tB2qqVVpLXWGAk4V1y5IxRnRCR2tWIgwWhYxCJECYQmEVWQLSch2c7dz73n7x80NIVKgfn+d78x3zvu8z/d+z/e8wtWMt2YJkA88ATwA5AF+YBOwFKhk7orA02sLkkSwAP/ikhotqyhgcUnNZX8tVwgMc1fAW7OWAPMA47uLFNT8bEafHStzkyOliqQBu4EFi0tqzlwpN7mK4OuB2y9E6/aNQo5V5+9v1bmuywqrx1CvxFfUA/2B8OVYMK4QfFFHcL00YMUtkXCedSZJwVNV73EUHI2vzgTe+35b8NYsgBuArRdlrQoiF2U/xHWivbfZ7ANBFTK8sbYxvcOpjkriu75A3f8CcmkG5q4AeK87SJ/hBtuOA0EBgwyzydB4MAxRGsNmqj9itBmoCIoqpd9nC24FBnVE6kx39oiJzC+YDOqQl9SL61Iy2xx1kkTQYIzwcb/VXN1kNa086jM2nkmqP9zqag3G5AaA4vKi/wOAmmWoRFFT4ruviuNwU99hLPjRDCUQ4rMpT+u2GYt8PieFuqC0H26zjFZbegqaHoyJN6r0POF39djR6L35xvKiSZWlVVcH4NcVIxaOc1dPutazxxrlPtjgNcJ+VIRohCl5hQpItiadG9I7WzAw+voKA+fCZiqKSwQVEQTMlogREVAHegp8XlxeNOhSLFiJh7KKggGqbDsfNrIscQwR1SQCGePdNdGacH5bD7M3Pm9SaiQS0dPHq7MSxXm2LeQRcFQQVAURRNBWW+jlcUSMzhzXV5ZWDSkuL6IrG0ZZRQFlFQVeoFJE+zZHjLAhEAgHpL9ngLaEok6kqd64N+caF6Brd20WnADlX6+XxqbzbD6wL9Re394eCLRKRKMoiqMqLbYSdSKECBmKqqoOLi4v+nn3rTA6KvRlIEcAv23YkWhEl5e8S/n0D2XONfOt9kA0uaSg2APIJzVf8NTtj/HIyt8G+70ylZgZ1WWT/5B65vHN3N93Il7bIs1IZkzK0OTSQdOdZwqfc/tsn0j8+L74HR3oyD4IqIHK1joz+sS4F6xpYx4kbIfVdERcvxlHdHE1pmWS9quJ+sW85bK5dkfkiY1L3c8U/0QX3jlXAFr8rfr+rn/JDwYXUtRvZKd+LK98m2Wn/4yoABQC1QkmDGB253kX6O8bHp425kE9eOZI9HD9SQKREAOzCzAtk6bWZrvV9suYnKGMyx7mTnL5dOEdcwTgmVUvB9NSekhuj36c9Td26oeqkpGUgaNOIumpF9UAcGdiEtMYj46bGwPk2fVvRHPTsmTLsd1MG3UrAB/u2+T6cdHkMMDRxlM8XTxdEGHNzk3U2Oe8AEcaDzoBuyHQRb7jmV24SyZ0PwWjExPbjnFT3m0+gH/WVuL+eLHGVOWXEx6OA9i/iceKpynAmsNfsfSBeQDM3/A2f5zyuAB8fWpbtOXs2WS71c/EwTfH8jLzzb0NezDEAEWAEd11ICcxyU4ZqaYlZkNTQ9TRqPuDA5/Jqj3rKM6PY1xbs0VLht/oBTjeeFr7pPbG3+5nd+NR7hh2PXHg1U5LuJlRA0ZrXma+Wf1NNWvOrU7sP0Cf7gy4OwGkjhCAUNS2EFGX5aWw32AAak8dY1juYDEMg2AwqP0y+gjAp/u3UvbDRwDYeWQ/flzORw99TC9fljS3NTPn80eR1HgtAIiIqzsDwc7Lxp0OQG5mP56b8DPZMuNVxmcOAeDT2m3cOTSe5eZDO4LjBxQA4HG7eeHWeB2vOVjJu1N/n9zLl6XRqM2bX77OXcNLmNTnNgp7jsWHD9ux/V3vBgv4FhgOEIi0kKjcFyfPYd3eL7k+fxQA645sZ+rYeDF+XlvlDMobiKpyT+EttLb78VhuVtd+yYZJb6Ad1+Ozdz3fmWkoEuK0/xSvb301uerNXTmVpVWnEgzsSiyqqd8ExPUc0AUb3qE51AbAlm+rtTHQqgCVx3anNAZaAyLCifrTnGs7D0DV4e34vMkqIrgsl3al2uv2MjB9EH+6e6k81X/evsQZsYA1wMMAQRp4f/vzMijz7tjKnZVm5dnd7N14gnEZQ2gNnufFje9Er80a6jrceJJl2z+Woj7DdcG6ZbLlF3/j0Mlj4IXjdSelOdxgN9r1rohGsMRFmjuN3JRcstNzAGTRXUvSjqw49PeP+GS2lFUUJM6nAhKLRTnRmtqyaq8nFbdloIpHXITVhpDd5o4ZqVGN4VgExO1OnjKsmNUzF/GXzf9gzr9fJie5HyNy6traJZga1SimmHitJNI96QxMHshjY59kSOYQXbPrE7l3x72ZibtgQYdyqWlapCaFzZ5phOOQhDBRgBB2LCWiURwUomqoSeyW/LEKsOWbPSAmpwJ1rWFPyGu4DHW73ZguE1sinIvU8VXz1qr71kye/8Hulc7dY+9h9LmRs40O7/47oDoBoofLsfLSIyKidgc5NoGIdpU0VL2EIu15afHjuPXUXsVB8zPtmKO4uvlN7VDEsv2zD704a/PMCa99/cqx+0bff4fRxa/dAuwAxGupN8XlyLDMsE3MaCdg28QcL8iFwhJRIk7KquoNQUCP1B+TdF/U3zc96tbvel0BVleWVm0sLi8i8qRue2n3ohu2BiozzMSKCTMzQ4tLav46YWbmGYUs2zGCvb2xpGxPKHS8wUiL2+G44bgg8cK+s7XhHccPuo9Evm0fk20ni9dwuosNcBq4rv9DOZ1mZOT4gnY7K7LzIqhdW6l3vhqUeqDZ3WoKHKiz2rYcdVt1TaYLwUI6rLqCx6OhgtxQsGeaZQQxephes3v6a4GfVpZW1Xd9mXBGl23NyioKlqjylCFKKCrRpoBhH6izAu0R6e0yNDwg3WnPTY+lpXgcsR0xtrX5pqtQKiIZQC2wHPhPZWlVqLsVu2JrlmCjrKLgeEczqqBiCEhHi6LaYQbjL55cMrnmte7/+V+BL2/LoWtXOwHYFwcrOCrEVMRRUaWzJBYumVzzWoemXDQuF/yyALqwcAq4EXipq8noYO8b4DbguatpxS81/gvSJCNlZUMZjgAAAABJRU5ErkJggg==\",\"icon64URL\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB90DEgoTJxa2MboAABYBSURBVHjazZt5fFXlue+/z1p7SnYmMjHPMwJaNAhxQFTUWJHj0FBrK7W2tdajtYPYW/3ce+w5tz2N3rannh7s7amntLXHwxFbtYpinTUKQcFAEhAhEAghZCLJTva01nruH3vI3mEnjNL7fj7wgb3e913v83vm53mXcCbHmlVw11pYs8oAioFy4CZgITAJ8AD9wG7gTeC/gQbuWtuRtv4sDvkUiP8McC9wPVA4aJZmeOceYD3wKHetbTvbIMgZJv4nwLcA7zAEZxoakwy9hbt+9zzA6g2zvw9UAuOAZuBp4EdVFQ26esNsqioa/j8AYIDw/Lg4LzsJogdjoCAy09v82PJRzV8xRP0ZtrHjoDwDnBEQjNNaHSO+BHjvtIlXQya5DjYXaMfdtR2eABBWRQdNNOPqUlVV0cDqDbP/hhKwZlUCwEPAyFMnPjZKjfbmye5DY0FQhRy3c6CsJDTeUVGRjPveXlXR8Nu/DQAx4gV4A7j09I6gamJHLvTuCFtq5saJVUeRsdnWgZkFkUwgJMAuBjpORxWMUxZ9+D9x4vX06Ddkurup1cbISyFSDFFt7neNbg26OkRUhmDcv56uHThVCTgf2HL6NljVQAMXemtzHMxMZ1HLoXfpmKDPEPUMcdw8oPdUgTBOQfSJuyQ9ffpFRpttQQdjKEaIy9C87Z2e9mEOevfZU4GY1f/7eFR3fOlRe8DDDSGApWZnRFWGAVO0M2yOOhoxWjN4BQU+f3bc4AD3f3pC3FdleeEczN5wDKoECKrx5QrgZEl4VKqB0+TfiiqWrViOovVdHmxFog6W7RBBUVBR5dyzZwPWrPom8MsTmmtH2XL9P9B5tIurXnwE8v0Dz4JhvLaB5Qs2l/kbx2qcD6qoiIoq/V0RI9gdFaffMkKWUuAo/mm5dme2S51slxMs9dmlxT67s8DrjHWUOVUVOxs+fRWAfzhh3Y9EOX/cdJbNW8j3Z14d47wC4Qg7bvlnmr/5ODe6xrkUAR0gPhCVxp09LmnuN/MCUaPEUcYbkOsSNTrCRtQULQ1ZxsSmgNu3rcNbuq3du9ctOvXTVYE1q2DNbYtRSlAkBsHwOMwtnAQCqsqPl98Bnb2A8o/n38Q5oyZSmJXDU3f8vDTcGU3Iod0aNPbtCbgm20qWCG4RGPgjdEekQJVIzHwiirg6w+aUv7blrC5fVzYGoHxd2acAwF1rQd13ATbi9IMoaoLKEBZOuXri/JiOiYApzMsbC5EQ9y64GlVFRDDchiwbd7WKgd3UZxxpDZmTTBk6oDSErK6IEUh5LHGAzgU+KF9XNre6subMAJAaZz/08sxvnefZfukF3h1mmac+6wLvds711u8qMjt3ooYcIwyOzXXj56chkuXyUpJVRF52jooMUDB/1Dxp7OVQT9QYY8jw0bSI0hE2+g1SAqPYkjAwCqgpX1eWezJSMJwEeFZvmP3l+1+cHWoPmf/LLdZEQ1QNUTFExSeRmTPcTbMW+mr35BmBXhQnKQ1Rh8umpAEgTR9vazzHMvYOpjDPW9rXGWK8CHp8myz0W1KkYA3QryCE4v/1Ae8CcqIguIbgvAn8BVgmorSHXFGJnVwGXIdgIyro1DmePf2tdtHhRmvCGByr55Ks0ihCUdLoB4N6uPvA5Al9o9NqBKqqLf2dfpdpxJPhE+CYkBWIykG/i7EJ9ymGGCnyMA/4SXVlzepTkoB4VFUXT28RoC1kdqYeTuOMFpCYx5asUrNzzDjrkzr21JsVE+cXpVrJDVveFPKy2dK8MxbZJNaLyNY9uy0nZDTG4v3jOxgRpc+S0pT8wBZDxgxy6/eXryubdFIAJHR+9YbZzwAzUxAnEDUKBokcUTtKxIoko5ZDPZ5DB9uYAVbn8tkXozqgpy/UvQ1uNw4Wv3nzGUQGIr/1O14Lhdt0UvgozSBRTcZCmhoZpUWGPVHjiCSCaUNaMxgOBZ44KQDiBYY7gRtSXxuypVNiCQeqiqI4fQ7LS1fwxYmrcPWY0tjlaznQ5SlB1O3y55XOnTCDVEP359o3Yv+IRrnnhZ/yxGvrpT/Q59z+qwdp94aCGCpWQEf17e8+0t/VLf3BfhAh4sRdpKaRJkFbvPHtRd3qcsRJk8z4WFq+rmz+8WyBpHDfA4QHFzY6Q8b+2k7vRIn79Cmuaaz9/B/weDwA9Pf1WwUPX+WK+g0FleUTF/Hclx9JHqito52R378Ysrw8vbKKm9f9AFzSCozE7wPT6KE3lFvozuG52x6Vi+acr798aa3cs+VR7pi6nCcbX8bIcsWNBhhiIGowP9+xjYhpTiycFOgP9+U060HIjs2Jg6/A+urKms8d1wjGuf+zweGxKvTbkgNgOxbn55fx+I3/nmY5sv3ZrqrL79Rvv/crQeCzM8vTnPTzH7wOuTnML53OTRdfw/17a3mk7mmTbF/SEUwuHNu++e+fKC7OL0RV5e5rVrG+biO/vuVHnPPSVL734S+4anI5V41ZRGn2CCblj2FW6RQKCwoVyAF49v1nebj+IbJys1KZe3P5ujI3EB0qPjBWb5jN6g2z3cA3B2ucCBp1pFAE8p0RPPZ3a9KI19jgxnOXCsEghIOsmHVxmig+v+MtME2Wz4sVjqpuW02u5c1JvisU0tfu/GVRnPik6vzm1h8DcN81dzBDRjN/1AzuW7KKL5RdT/mMC7SwoNBM8SasWLSCaFs0E423DmsD4lb/7szJkUrYkoBlR/nh0h/hMl1J4roC3Y7EBiX5hWBZFGQXM2pESZr+v7DrXSUa5oZzLkus1RvnXOZDENThwUtul0nFYyU1GVRVJo+akHzXlZMXY9n2kElc4n1jfeMyldsrh4sOE/z8ekZ7C0RU+s/NW0D5tKRoa9OR/dHH/vqknVjTerQDXC5WzLgozVXu3LfbtoywZHlyOH/ynMRBZfyIkQDkGFk8fNXXSXWLL25+nT9UP59GmKgQtELHteh5nvzBLBSgYlgJWL1hdg4we6gYtDcUtL6z6P7kgUREbl17f/iCqfPdqiqqyvt7a8Hr4rrp6fr/yq7NXfj93Dzv8rQ9u/sDgPKDi76I6TIREVSVcCjMZ9fe3/KnHW8GUuc3tO3hcKDjuBlYtic74+/l68pmDicB1wy36VTfdD1nwjlJrn7c1MA7Bz8KTSscqwlC39q/DWyHilnlaWufrN1YjGOFV553VZpdqGvZA1GL715ySyr3eWDdT5Viz+jKCytyUufXtm4Pd/Yd2Juq85mGZVtDkXHhUO7QABYP3a9yuGXequwUruoT76/vpKC4+N39tZIQ0Q273mdqwST82SkccGBT83YQaf3svEvS7MLbB7Zzw8yleDyeJPejkSj/suUZwVZWzh+QmKZD+ykq6vX2RHZN6e3vSYCufcF+AsE0QaEr2DUUKecNZQdcwJyhmhr9oSAXTanIT7HO8vvtG724TL7yl5/gx0NleQX7uvfz7bI70vT/1Y/eBb+HZRPK8lN33ntwP1Gjj68vuC5NXf7vq+ugwMPyaRchhpHc5836mqP+An+BiMGq9V+Um8ZXsmV/jeT5c3sevvmfkgGaIOwJfkKRFmYyhNOGU4HJQ+l/kWuq5vpzzAT3jna3c6ivO4IqeF2sfPZBXN9bDHnZXDttUZo4/2VnNXhcesO8y/JT93y5rhr8fq6Zk64u//b+M4DNvRfenLbPf9W+7TcMM4zCQesA/1z/j4wYXaAP3/xPeaqadJ3/8sLPyB+fl0k9BJgwXCA0aqiHs0ZekgbM7ubGfrKzRhALCyE7BxuF/n6unLkwLZ17tu5tsIPy+flXpvn3l3dv4oopC9Pe09bRTn3XJ+SWjoztkwrY3vfck71mc2G2PSYYDsqPLq1i+dwVaXu+VfsWTx78He4i91CkFA8nATmZ9d9mXP7cNESbe7oE00hv6CKcM2oWidK+qhIMBtnXu5/xBRMYkZOfqv/60p7NVMxYlPau/968EQpyuG/hzWlq9ElTI5YnSm/YLLVtSx67fA3L565IiwMOt7dwz8Zv4C5yD2kc43WCIQEwMxZ1HYvS7OlpxksMMyuWEcWTd8cBhaunXZi29oWtb0Ken+tmpIv54bZWDdtHuWjsvLTDbty9OZbDXnxrmvi/vONdyPVrf9Db8eiSn7FkxmVpz1s7W7nlyZXkTMpJk4hMxZ3hAMgYPzqOTaE/XTsun7MQjvYKakNvD09UPACdnSyZeG7awV7c9R6YwrIpFyR/V1Verd8UJcvDBeNnpx323aZa7rngJnKz/Wm/v/zxJrAj8vvlPyxZMv3yNCL7+/v1tie/QP/IAI468crEkKN/OBvQBxQcA4A6eN3+tN9yc3J54cv/xp/q3+T+y7/IyJwivmJFuGzqgmMPLhEumXTeQDQnwmu7awLiy/O63OmFqHNLpvKL5d85houv7Klh8Tmf4fr5l5qpkWFvX69z82N/Z8g4YaprGoZjEFWLzmgHtmljmVGiGk0EbqjqsAC0ZAIABNuxBjV7lGsXXMq1C2KJzUtb3sJTOJo8f25yTiAQ4FB/C+TmUpw/Im39hrrq/tGjRhQN3vOvD/w6rfihqhw43ExI+vjaBcuPAeZw12F55r7n1e/LPkbmWztb2XF4O5uPvM8rjRvp8Xbj9XgPDKcCezM9ME2TrsBhMiUdifFcw9t8Zsz0NGJe2V4NednMLkz3PKFgiJaeg/jdvmP2VFU6urvS9n/xo7ch10v52LmDmaDTx02XTMQDjCwcyRVzruSBS3/A+pXPcoVrGX29fecveWFxXjllGQHYkVE0DDdNR2uHaPvFWPXEthfxmu40Yl7b8wG43eR4s9LmV9dvgWxfSW8kqIP3EhG27qlL22fjrk0ATBgxMt0Qi5xQO88wDAqyCvhJ5aPcO+k7/kib1cQzx9xawwCqM5eKTDbtfzpTqQkR4dG//AfhLIfa1r1pc97ZXwsKDe37kxwTEbY0NYDH4zvcc6R9cJiy9ZM6wthp73lp9yZwHHxu76k3PuPS9ZWld/CDeQ/l97YE3rs7cod50bqFaQC8NFQm0Gp/xLY9bx0j+h837eX+N9aA281Rq5c/ffBqcs62lp0xW2D369M1r2iCYzta9sRcp9rRmsYdmoziEK78+Tf47IIlyT2aW1sImrG6YNiKnt4NkDgI1y24Xr85/Z4Z7z1Z85t3KzenFUQiwNZjU03B5XLzxIdfY9OuDRzubNLG1mbnuQ9fZ87PvgB5WbFAyHRx47oHeWXHexxqbQFvvK5ruuRzf3ygd937L2FZFge6DsdLmq68rz1bJXuPHOTjln1cUfVVSqakFzJer9sEeX4Qk7ZAV7xwFNLWzlZnT+sn1LfUsb2llo8ObaPu8A52te7iQMcBugPdGVU1DoJ8Y9ldOjYwdlX5+rK5g4uidwKPZ9J1EQj2hckzx/BUQ0FgT1erH78v1g5LhMQCEna4qGQW73Q2gCvu5gKho4Qi+ZdM+IzsPtLEYe1VhA6y3cX5+LGtKAEJcs+ilfzium8n33v7rx/ity1vgRXlx4u+SmNrM2FjX6DbaQsfNbqKgk6QKFEsx8JrevEYXvLceRR5ihibNY6y4gu5/twVuL3HhsZ7D+3l2qeWfbjru3vPB5DErcvVG2brUBcdQDAN5andeQ2N7d7Zx1bhNVMm3UxfaFwSpERfSRVys5pBxwCCY/Pnyh+zYu6S5OJJ/+Na9vtiRRPsGJ8WTgz0uXJdhqI+QGLbSfyexLH5n9Nrc9O4lXxn2fcwTTNVGvSr/3G77C7eOc8K2TuMlPs1jwyhRMRb+IzJjRa4TKf9WG1J62PHxCYc8ZNogIik55sRKysepYAVYenkBakRGPu7mxIlSTAFhIDHJ0cRshJ1SEk26CQZ8CR+F0MwC1z6X0f/2HPJ2sVH/7j1DwSCAU2owl2L79Yjje3fra6sidUE432Bh4DQUGUnVfCbjjGjJOzgyHBXYwTb6cRyRmRMs0WUiOWL9yDw+wqSgZSqUl33wYB9iedXpqkd6jFKdZhs55hyqSJe0/uvdr61+Kd1jzx9x0u3ScPBehURzp91AcXR4i8li6JVFQ3EjeGdHNuLSeynBV6nIM9rl/p9dnNGmGJJkkMwoogMfTNKNRvL7gaYVzIlzWK/07gNsnyJ1FpRZHShZSjiPtEYIOX8P3Q5rp0ffKn2c81O8y23vrrSeWPX6wBcNulyc8lzixek9QarKhp+B/xnJhBUkQKP02arMKsklINof5ryxyxmlGC0HUeLj9voD0U9QLDQl5v2nk1NDSl1BRWPy+maUBT1ZLghdjw5eLS6siZcXVlD+boyqj9X85Q/N3vBt96/++Pff7hWrphyJR2HOpYO7g0CfAl4fTAIIjDCa4+2laDL1PwZxeFOHJE4l2LhXDjaQtQuHob7Awd0tICI3d3Y1ZIG1LbDHye7AzjSPXdU0I9p+Ia4LzwU94PAA4lCaAKEd27aXJuTk7Pw8d2/bNja8yGRgHWekaE1bldVNFweB8EZJFJmgcfpACjMtsaV5kbjqqA2YWsvYWtC3DrJCUQoSihS2nDk47YPGusH3FTH/qQBnF4a6nOb2o6QfxLEC/CF6soaJ7UQmvy3Q7dLXPP+89AfWgtHj5g01P0A4iDcA+xKlqOBcX4rW1WwVZhQGCkpyY7W0Wd1EY5OiXNeTkJMDdT0Xfbbe3vXbX4ZjdjgUnAITxgRaS32W2PEbbhPkvjHqytr/jxUGby6soa3Vr5nu93uiw23UXLcw8YbJwuBL6uyUEQL3jyU1Vnoc/qm5Ebn+lxqbqjzHqxvcU+O3x87mbuHiqrgMg66s7LGzXWP1q19+2TKaLupJMcep6qGmWP2AjknaABfqq6sqShfV8Zw7bDE8/J1ZTeeCADHfJnx4MuzfmU7fN2JeT31uFRervfu/fCge4zjiA85SRxUwe06INnmyGnFkZaiLGuio4KYHDCzzfEnuMsb1ZU1S49H/GAQTvq2eNxQlgBHEmKnirpNlX2dZucrO709bUfNScR6t8dBInY9EovQ7HHR3rIpFp/0uq2oI6MFxfSb3Qh5Q3A/de//Cfzv6soa56STpVPNslZvmP14PG5IIUXFUXEOdpmt6z/y9UWjMm3gC4CUA+sACQV+Z+vnFwSn5/o0W0QNVaH+qHtrW8Q1zpVtlhyH8HpgObD3ZO8HnhYAcSnwAV3EvhBLvVShhqh4XNDSYzTvOOQ62t5nlkQsSh0VDFHH5+bwmHy749yx0fG5Xi2I2ANHUUVNUWlzXIvqA76lIrIMKIq/JxIvcNYBv62urHknVZzPGgApQFwHPJ+ptZYAIpkigNqKJL4MUAVHYzYkxccnVOrbj1zb8PMUfc2NAx4Bek9F1D8VAOIg/DtwB6f50VTK+lerKhquPJPfBn6aEpCIIDdyWp/NJddtA8oA62wQf0YkIA6EN55D3HAKICTmbwaurKpo6OUsDuMM7ROuqmi4EfgVKfd4T3DYwItVFQ0XAmeV+DMmAYPUoQK4D7hqGPeVGO8Aa6oqGv7I32jImdwsBYQsYh8930rsktJcYtcYw8BOYCPwO2BfVUVDgL/h+H+8Ex3DrupO9wAAAABJRU5ErkJggg==\"}"); -pref("social.manifest.msnnow", "{\"builtin\": \"true\",\"origin\": \"https://now.msn.com\",\"name\": \"msnNOW\",\"workerURL\": \"https://now.msn.com/js/firefoxworker\",\"iconURL\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MomNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozMkY0QkZFREQxM0JFMTExQUE0MEYwQTFBRTFEN0QwMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5RjUxOThGOTJDRjkxMUUyQTQ5NzkxRkQxQjI1Mzg2NCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5RjUxOThGODJDRjkxMUUyQTQ5NzkxRkQxQjI1Mzg2NCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMTVCMTdDQ0M1MkFFMjExODNDRENFQTc0Q0EwNzEyMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozMkY0QkZFREQxM0JFMTExQUE0MEYwQTFBRTFEN0QwMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ppp4JKMAAABiSURBVHjaYvz//z8DJYCJgULAAmNwJEwk2Sk/FuQzUuyCUQMGgwGM+FIitrQBintKXKCG0wVA27Cl0t9IfEUgfoDmGuwuAEkAAbLzJdE14/UC1DUwOW6ggS/ICkRiAECAAQBDhCEtt+sSkAAAAABJRU5ErkJggg==\",\"icon32URL\": \"data:image/gif;base64,R0lGODlhIAAgAMQAAABgkm+lwf///y99psDY5K/N3c/h6k+RtA9pmO/1+I+5zz+HrR9zn7/X5N/r8V+bu3+vyJ/D1oCwySB0oGCcu+Ht80CIrRBqmTB+pwAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAAAgACAAAAXAICCOZGmeaKqubOu+cCzPdG3fraDvfO//OhFwSNwJi0jfUQBpKCCRnQNCdQgMDV0iK9haBcvS4ooYIZyAAjMtUAC4YUYiwQAkDgBIAgIYJAAPAnWBDAxGAEZjAgtvYYgHCAYAFpEACoeJOowNZVZ/CAIFfRcOfQBfYIhBipsPfRADgDoTshgABzxhrG8JjCILCToBb21smEUODahIS0nOzc7MAATU1dbX1qjYBDUSOhQ4JN7g4SMS5OXp6uvs7eshADs=\",\"icon64URL\": \"data:image/gif;base64, R0lGODlhQABAAPcAAABgkonIVjuOhf///7tnLwhnmY6bU8/h6gGO/7/X5H+vyK/N3WBaW0+RtACSnF+buy6Gl0uy/9l7J6PXeV6HaO/1+PvIIwyNxY+5z02acCpfghaw6hR5mPh2FKlXUn/I8v+UcgJ2wSCwoyB0oD+HrfB5TpuZV4TDXsyyOiCc/9/r8Uuf0G+lwdtcPACvoESShBGt+Z/D1iN6hIbFUid/rQea/Ri79x2Cwt9VFZPRYf1bB3B8jHhmYwNnoD1tdjeIjwN7yG+0YK2oRQtokRGV/xKupgWcpLBoTx7E6QWAxy99pueyQJ3Rj1i5/+pJPUmahwl7qjBsjw2m+wC3qQGblftlDB9jgkCIrVGfgn1nUJrRbRzC9h9zn+eEIi+k/5HMYhi33iaqlsHZ5SaKyRBqmRa2+P9PBfH3+Quh+wCllzB+pwNupmC5+WCcuwWV/YrHWBFti4zJWxCUxKxPVJfPaQ5omYCwyabZfjBhfuHt83CmwgCZmQmGxgC8rdHj61CStLHP3YHK+QR4uhaX/1C0/w+TxASjo6HF1xCq+o3MWh7G9RKv+ZG70QOS/kSVgQme/Ad5yQCxo5rSbgqj+xOx+QSV/xKV/43JXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAABAAEAAAAj/AAEIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIC2uCPSBRkiNYyJEaMKmwMmLPSzJTOHlxkuLIdzodIMA0s2IO6IITIKmKJoaQH5CBFECDwA+i6IikiJI6cMjZnAAuGCjaxlKazJeKTjW4BU1B0eUBcBAR5UshcCAUaRow8UrMQboTTAi714yAEYk0Lt37BU7ZwgnQEuggwQoVNIYQSLn4oAzba60SYxZ85kEABac+TNCzZ8YdgDotXPFswoAVrrM0bDHhQtDHCy3GdhmwJ+BegYASKAiM+CBAzAQ/DMArQ8nHhxM6RPmBByLA9ZeyT5wOwA1fggP//CD1jfB7WV5tIBQRISkS0Gwa+cu0Ht3zSr8qF4LAL1AIRYYwMQdWsQRgAAV0defgt7pgdZAC+in4IJlUWABCj9MQMcbiWCR4HzzhXZZAgkkttuE/glkwhIAvPDFDDk8UdEVxwFABo0D3VifHTzqMUJ9NdqIo0EyZODIEBWRqOSSTDbp5JNQRvmkQOJVaeWVWGap5ZZ6Ucnll2CGeaWXYpZpZpZknqmmmmmu6WaYbb4pp5ZxVlkBiQdoeecCCww2p5VxkmBjAoLmqICVKjxgEAsV6FWBApD6qZcKkPpFGAaVVhmoQg+Id0CQBCmhgl4/AqCEeMoJ1KheBwyEgaaqVf9ZqEANKNAAQX5WECQJSoSqV6oAjKpXrwJZysJAqxK2qY156hXDQJ0OoMBAorJKLAB5VeDqpAQ1QBgXAkUr3rIkVAkuAOUOcC4ZyQ7QKq163WrqrwU1+q6IsFpZaLqE7dslvFUSy4VeCww06rml5nVsYGPGKp6/DwtUrrYCHSorcnodh8G7IxQMgLfnWpzvxeiSnC60+mI8wMJKLMzCAMeBJpCwI0dcss3pHjeweBTf7O5A5+apKADnbtdwyj7rBfHQAIg7gLwAvErYgwKNQHBBltbcr8Qmc0utAiyca2O7zw70csY5tjuuw1snPQDEA5SNkKSOEtTsAEw7rbXSXONxLN4CYgN9t3hDW02YxwAMvre7eFZ5QONVLqDAAw8oQPefwrGN+ebKas755nV+Pmfoor9Jeulrno76mQJJ6frrSyZW5WevWzXQ5WdQbXtDdOe+O0SS+v77Q34KP7xDgxl/PO/KL8/QAro7L/301FcfUkAAOw==\",\"sidebarURL\": \"https://now.msn.com/sidebar\",\"description\": \"See what's trending in realtime on Twitter, Facebook, Bing, YouTube and more.\",\"author\": \"Microsoft\",\"homepageURL\": \"https://now.msn.com/now-for-firefox\"}"); - - pref("social.sidebar.open", true); - pref("social.sidebar.unload_timeout_ms", 10000); - pref("social.toast-notifications.enabled", true); + // comma separated list of domain origins (e.g. https://domain.com) for + // providers that can install from their own website without user warnings. + // entries are diff -ruN mozilla-release.orig/browser/base/content/abouthome/aboutHome.js mozilla-release/browser/base/content/abouthome/aboutHome.js ---- mozilla-release.orig/browser/base/content/abouthome/aboutHome.js 2013-05-11 16:19:20.000000000 -0300 -+++ mozilla-release/browser/base/content/abouthome/aboutHome.js 2013-05-20 17:49:18.467307120 -0300 +--- mozilla-release.orig/browser/base/content/abouthome/aboutHome.js 2013-06-26 22:53:37.285513294 -0300 ++++ mozilla-release/browser/base/content/abouthome/aboutHome.js 2013-06-26 22:57:20.932228108 -0300 @@ -3,69 +3,41 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -130,7 +130,7 @@ diff -ruN mozilla-release.orig/browser/base/content/abouthome/aboutHome.js mozil , "https://www.gnu.org/software/gnuzilla/addons.html" ]; -@@ -139,10 +111,6 @@ +@@ -203,10 +175,6 @@ if (searchEngineInfo.image) { let logoElt = document.getElementById("searchEngineLogo"); logoElt.src = searchEngineInfo.image; @@ -155,9 +155,9 @@ diff -urN mozilla-release.orig/browser/base/content/abouthome/aboutHome.css mozi #searchText { diff -urN mozilla-release.orig/browser/locales/en-US/chrome/browser-region/region.properties mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties ---- mozilla-release.orig/browser/locales/en-US/chrome/browser-region/region.properties 2013-02-15 19:14:45.000000000 -0200 -+++ mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties 2013-02-20 19:55:41.962705914 -0200 -@@ -3,19 +3,12 @@ +--- mozilla-release.orig/browser/locales/en-US/chrome/browser-region/region.properties 2013-06-18 08:01:12.000000000 -0300 ++++ mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties 2013-06-26 22:44:10.393864883 -0300 +@@ -3,17 +3,12 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # Default search engine @@ -171,17 +171,15 @@ diff -urN mozilla-release.orig/browser/locales/en-US/chrome/browser-region/regio - -# This is the default set of web based feed handlers shown in the reader -# selection UI --browser.contentHandlers.types.0.title=Google --browser.contentHandlers.types.0.uri=http://fusion.google.com/add?feedurl=%s --browser.contentHandlers.types.1.title=My Yahoo! --browser.contentHandlers.types.1.uri=http://add.my.yahoo.com/rss?url=%s +-browser.contentHandlers.types.0.title=My Yahoo! +-browser.contentHandlers.types.0.uri=http://add.my.yahoo.com/rss?url=%s +browser.search.order.1=DuckDuckGo HTML +browser.search.order.2=DuckDuckGo Lite +browser.search.order.3=Seeks Search # increment this number when anything gets changed in the list below. This will # cause Firefox to re-read these prefs and inject any new handlers into the -@@ -24,20 +17,10 @@ +@@ -22,20 +17,10 @@ # don't make any spelling errors here. gecko.handlerService.defaultHandlersVersion=3 diff --git a/libre/iceweasel-libre/mozconfig b/libre/iceweasel-libre/mozconfig index 21d56e13c..a5af10e63 100644 --- a/libre/iceweasel-libre/mozconfig +++ b/libre/iceweasel-libre/mozconfig @@ -25,10 +25,10 @@ ac_add_options --enable-system-pixman # Features ac_add_options --enable-startup-notification ac_add_options --enable-gstreamer +ac_add_options --enable-pulseaudio ac_add_options --disable-crashreporter ac_add_options --disable-updater -ac_add_options --disable-tests ac_add_options --disable-installer # Parabola features diff --git a/libre/iceweasel-noscript/PKGBUILD b/libre/iceweasel-noscript/PKGBUILD index 7db206be9..2d5f48040 100644 --- a/libre/iceweasel-noscript/PKGBUILD +++ b/libre/iceweasel-noscript/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 90901 2013-05-15 12:56:28Z spupykin $ +# $Id: PKGBUILD 93410 2013-07-03 10:50:31Z spupykin $ # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=firefox-noscript pkgname=iceweasel-noscript -pkgver=2.6.6 -pkgrel=2 +pkgver=2.6.6.7 +pkgrel=1 pkgdesc="plugin for iceweasel which disables script" arch=('any') url="http://noscript.net/" @@ -14,7 +14,7 @@ depends=() provides=$_pkgname=$pkgver makedepends=('unzip') source=(https://secure.informaction.com/download/releases/noscript-$pkgver.xpi) -md5sums=('a018efb1fe0f722ff307382791bf3c98') +md5sums=('10b6704f34568d226fb5fe69b7d6043d') package() { # _ffver=`pacman -Q iceweasel-libre | cut -f2 -d\ | cut -f1 -d-` diff --git a/libre/ipsec-tools-libre/PKGBUILD b/libre/ipsec-tools-libre/PKGBUILD new file mode 100644 index 000000000..6de9bd7d5 --- /dev/null +++ b/libre/ipsec-tools-libre/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 91859 2013-05-28 17:36:54Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Allan Henriksen <allan.henriksen@gmail.com> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + +_pkgname=ipsec-tools +pkgname=ipsec-tools-libre +pkgver=0.8.1 +pkgrel=4 +pkgdesc="KAME IPSec tools ported to Linux (built for the linux-libre-headers package)" +arch=('i686' 'x86_64' 'mips64el') +url="http://ipsec-tools.sourceforge.net/" +depends=('readline' 'openssl' 'krb5') +makedepends=('linux-libre-headers') +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver +license=('GPL') +options=('!makeflags' '!libtool') +source=(http://downloads.sourceforge.net/sourceforge/ipsec-tools/$_pkgname-$pkgver.tar.bz2 + racoon.service + ipsec.service + ipsec-tools-linux-3.7-compat.patch) +md5sums=('d38b39f291ba2962387c3232e7335dd8' + '3a64a9e3b498c6da90450ffb0b758aea' + '387a0b0c4f10e42b2bb62282885cdc9c' + 'ae1dd20c83dcfce3dedb46ee73e83613') + +build() { + cd $srcdir/$_pkgname-$pkgver + + patch -p1 <$srcdir/ipsec-tools-linux-3.7-compat.patch + sed -i 's#-Werror##' configure.ac + + ./bootstrap + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin \ + --enable-security-context=no --enable-hybrid --enable-dpd --enable-natt \ + --enable-adminport --enable-gssapi \ + --with-kernel-headers=/lib/modules/`pacman -Q linux-libre-headers | cut -f2 -d\ `-LIBRE/build/include + make +} + +package() { + cd $srcdir/$_pkgname-$pkgver + make DESTDIR=$pkgdir install + install -Dm0644 $srcdir/racoon.service $pkgdir/usr/lib/systemd/system/racoon.service + install -Dm0644 $srcdir/ipsec.service $pkgdir/usr/lib/systemd/system/ipsec.service +} diff --git a/libre/ipsec-tools-libre/ipsec-tools-linux-3.7-compat.patch b/libre/ipsec-tools-libre/ipsec-tools-linux-3.7-compat.patch new file mode 100644 index 000000000..46b11ee51 --- /dev/null +++ b/libre/ipsec-tools-libre/ipsec-tools-linux-3.7-compat.patch @@ -0,0 +1,50 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -74,9 +74,10 @@ case "$host_os" in + [ KERNEL_INCLUDE="/lib/modules/`uname -r`/build/include" ]) + + AC_CHECK_HEADER($KERNEL_INCLUDE/linux/pfkeyv2.h, , +- [ AC_CHECK_HEADER(/usr/src/linux/include/linux/pfkeyv2.h, +- KERNEL_INCLUDE=/usr/src/linux/include , +- [ AC_MSG_ERROR([Unable to find linux-2.6 kernel headers. Aborting.]) ] ) ] ) ++ [ AC_CHECK_HEADER($KERNEL_INCLUDE/uapi/linux/pfkeyv2.h, , ++ [ AC_CHECK_HEADER(/usr/src/linux/include/linux/pfkeyv2.h, ++ KERNEL_INCLUDE=/usr/src/linux/include , ++ [ AC_MSG_ERROR([Unable to find linux-2.6 kernel headers. Aborting.]) ] ) ] ) ] ) + AC_SUBST(KERNEL_INCLUDE) + # We need the configure script to run with correct kernel headers. + # However we don't want to point to kernel source tree in compile time, +@@ -643,7 +644,14 @@ AC_EGREP_CPP(yes, + #ifdef SADB_X_EXT_NAT_T_TYPE + yes + #endif +-], [kernel_natt="yes"]) ++], [kernel_natt="yes"], [ ++ AC_EGREP_CPP(yes, ++ [#include <uapi/linux/pfkeyv2.h> ++ #ifdef SADB_X_EXT_NAT_T_TYPE ++ yes ++ #endif ++ ], [kernel_natt="yes"]) ++]) + ;; + freebsd*|netbsd*) + # NetBSD case +--- a/src/include-glibc/Makefile.am ++++ b/src/include-glibc/Makefile.am +@@ -1,14 +1,7 @@ +- +-.includes: ${top_builddir}/config.status +- ln -snf $(KERNEL_INCLUDE)/linux +- touch .includes +- +-all: .includes +- + EXTRA_DIST = \ + glibc-bugs.h \ + net/pfkeyv2.h \ + netinet/ipsec.h \ + sys/queue.h + +-DISTCLEANFILES = .includes linux ++DISTCLEANFILES = linux diff --git a/libre/ipsec-tools-libre/ipsec.service b/libre/ipsec-tools-libre/ipsec.service new file mode 100644 index 000000000..483a5b58d --- /dev/null +++ b/libre/ipsec-tools-libre/ipsec.service @@ -0,0 +1,12 @@ +[Unit] +Description=Load IPSec Security Policy Database +After=syslog.target network.target + +[Service] +Type=oneshot +RemainAfterExit=true +ExecStart=/usr/bin/setkey -f /etc/ipsec.conf +ExecStop=/usr/bin/setkey -F -P ; /usr/bin/setkey -F + +[Install] +WantedBy=multi-user.target diff --git a/libre/ipsec-tools-libre/racoon.service b/libre/ipsec-tools-libre/racoon.service new file mode 100644 index 000000000..95324bd5d --- /dev/null +++ b/libre/ipsec-tools-libre/racoon.service @@ -0,0 +1,10 @@ +[Unit] +Description=Racoon IKEv1 key management daemon for IPSEC +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/bin/racoon + +[Install] +WantedBy=multi-user.target diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD index d5a72e95c..f1264b0c7 100644 --- a/libre/kdebase-konqueror-libre/PKGBUILD +++ b/libre/kdebase-konqueror-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 186956 2013-06-01 13:20:19Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu> @@ -6,7 +6,7 @@ _pkgname='kdebase-konqueror' pkgname='kdebase-konqueror-libre' -pkgver=4.10.4 +pkgver=4.10.5 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://kde.org/applications/internet/konqueror/" @@ -15,7 +15,7 @@ groups=('kde' 'kdebase') makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml' 'nepomuk-widgets') source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz" "konq-about-fsdg.diff") -sha1sums=('5465fffdaea70a5ca225283f45b9504775d0432d' +sha1sums=('3953c441d508408becfbb1177d3a834775b92bf6' 'd6cbb53c04179b8180f9439eca156b7ff2e76b3a') pkgdesc='KDE File Manager & Web Browser, without Google and nonfree software recommendation' depends=('kdebase-dolphin' 'kdebase-keditbookmarks') diff --git a/libre/kdebase-runtime-libre/PKGBUILD b/libre/kdebase-runtime-libre/PKGBUILD index 4b6f40af9..224d304e1 100644 --- a/libre/kdebase-runtime-libre/PKGBUILD +++ b/libre/kdebase-runtime-libre/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 186956 2013-06-01 13:20:19Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=kdebase-runtime pkgname=kdebase-runtime-libre -pkgver=4.10.4 +pkgver=4.10.5 pkgrel=1 pkgdesc="Plugins and applications necessary for the running of KDE applications, without non-privacy search providers" arch=('i686' 'x86_64' 'mips64el') @@ -26,7 +26,7 @@ install="${_pkgname}.install" source=("http://download.kde.org/stable/${pkgver}/src/kde-runtime-${pkgver}.tar.xz" 'duckduckgo_html.desktop' 'duckduckgo_lite.desktop') -sha1sums=('f406c8c9e42c2508a7acf88b9719f5fa5b4683a1' +sha1sums=('1d472ceff3a38ff778803817b9c0eeb5b1880db6' 'aa6f39f4b0ad3c110fd05cd6c41190afae9773dd' 'ac3bac94a2c4b1444642524bc5fb539c4c5dcc5b') diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD index ea698dfd7..8cdf5228e 100644 --- a/libre/kdelibs-libre/PKGBUILD +++ b/libre/kdelibs-libre/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 186956 2013-06-01 13:20:19Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=kdelibs pkgname=kdelibs-libre -pkgver=4.10.4 +pkgver=4.10.5 pkgrel=1 pkgdesc="KDE Core Libraries" arch=('i686' 'x86_64' 'mips64el') @@ -24,7 +24,7 @@ install=${_pkgname}.install source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz" 'kde-applications-menu.patch' 'qt4.patch' 'khtml-fsdg.diff') -sha1sums=('b5db1b91bd96b44ebd1b5e71019bb95b59775237' +sha1sums=('6caab0c70ab742dd711b44dd3f9bfdcbf9be31eb' '86ee8c8660f19de8141ac99cd6943964d97a1ed7' 'ed1f57ee661e5c7440efcaba7e51d2554709701c' 'a1502a964081ad583a00cf90c56e74bf60121830') diff --git a/libre/kdenetwork-kopete-libre/PKGBUILD b/libre/kdenetwork-kopete-libre/PKGBUILD index 89ed6edf3..3b4295415 100644 --- a/libre/kdenetwork-kopete-libre/PKGBUILD +++ b/libre/kdenetwork-kopete-libre/PKGBUILD @@ -1,12 +1,12 @@ -# $Id: PKGBUILD 188552 2013-06-15 11:11:13Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgbase=kdenetwork pkgname=('kdenetwork-kopete-libre') -pkgver=4.10.4 -pkgrel=2 +pkgver=4.10.5 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url='http://www.kde.org' license=('GPL' 'LGPL' 'FDL') @@ -17,7 +17,7 @@ makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr3' 'ppp' 'libktorrent' 'libmms' 'telepathy-qt') source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" 'use-libotr3.patch') -sha1sums=('891277c8dcbf231452947e9b4c54324bad35fd1a' +sha1sums=('3ee86a1a227593e9f37881da3c1db1a3c384b2e4' '9c3b0ee15538fbfa36aa0a4748b1f6b5a7905384') prepare() { @@ -27,7 +27,7 @@ prepare() { # Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34. sed -i 's/Skype protocol" ON/Skype protocol" OFF/g' "${pkgbase}-${pkgver}/kopete/protocols/CMakeLists.txt" rm -rf "${pkgbase}-${pkgver}/kopete/protocols/skype" - sed 's/, Skype//' -i "${pkgbase}-${pkgver}/doc/kopete/index.docbook" + sed 's/, Skype//' -i "${pkgbase}-${pkgver}/kopete/doc/index.docbook" } build() { @@ -56,6 +56,6 @@ package_kdenetwork-kopete-libre() { install='kdenetwork-kopete.install' cd $srcdir/build/kopete make DESTDIR=$pkgdir install - cd $srcdir/build/doc/kopete + cd $srcdir/build/kopete/doc make DESTDIR=$pkgdir install } diff --git a/libre/kdepim-libre/PKGBUILD b/libre/kdepim-libre/PKGBUILD index 007ed7f74..3f9b3ce28 100644 --- a/libre/kdepim-libre/PKGBUILD +++ b/libre/kdepim-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 186956 2013-06-01 13:20:19Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Contributor: Pierre Schmitz <pierre@archlinux.de> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -22,7 +22,7 @@ pkgname=('kdepim-akonadiconsole-libre' 'kdepim-ktimetracker-libre' 'kdepim-ktnef-libre' 'kdepim-libkdepim-libre') -pkgver=4.10.4 +pkgver=4.10.5 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url='http://pim.kde.org' @@ -31,7 +31,7 @@ groups=('kde' 'kdepim-libre') makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'kde-agent' 'nepomuk-widgets') source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz") -sha1sums=('b1b8bdefd8a7b21c3a4518285ef8fd73890e8cf3') +sha1sums=('a7c791e748558a194d020104dc62604ee9f632ae') build() { mkdir build diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD index 6b7a264ae..5efee348d 100644 --- a/libre/kdeutils-ark-libre/PKGBUILD +++ b/libre/kdeutils-ark-libre/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 186956 2013-06-01 13:20:19Z andrea $ +# $Id: PKGBUILD 189302 2013-07-02 21:26:19Z andrea $ # Maintainer: Andrea Scarpino <andrea@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=kdeutils-ark pkgname=kdeutils-ark-libre -pkgver=4.10.4 +pkgver=4.10.5 pkgrel=1 pkgdesc='Archiving Tool, with unar support' url='http://kde.org/applications/utilities/ark/' @@ -20,7 +20,7 @@ replaces=('kdeutils-ark') conflicts=('kdeutils-ark') source=("http://download.kde.org/stable/${pkgver}/src/ark-${pkgver}.tar.xz" 'ark-unar-06.patch') -sha1sums=('3b98f04817a31b14b8899ddf024b03ff14420ea7' +sha1sums=('8c50a864af0dbf62e3df46414c7bf9cd1d8c8620' 'a0a836950f185d9b2245204579f969203036fdec') build() { diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD index dcf59bda4..80b154dff 100644 --- a/libre/libretools/PKGBUILD +++ b/libre/libretools/PKGBUILD @@ -9,8 +9,8 @@ pkgdesc="Programs for Parabola development" url="https://projects.parabolagnulinux.org/packages/libretools.git/" license=('GPL3' 'GPL2') -pkgver=20130622 -_libretools_commit=5dd6e17100a86b79a3fd6fedc8cce49dcc298356 +pkgver=20130627 +_libretools_commit=08375ed421d18b48388169c7fc7cf4ca076577ba _devtools_commit=bf8513ae631484a0c292ad085ea7ede9859f8e0f _packages_url=https://projects.parabolagnulinux.org/packages @@ -74,5 +74,5 @@ package_libretools-mips64el() { make install-libretools-mips64el DESTDIR="$pkgdir" } -md5sums=('a5a5029740cef767b8e731ab8c48890b' +md5sums=('acbdcd22c1b922f943651dbf7c320bbd' 'b28b1492fda205be7c577fc03cbc3399') diff --git a/libre/liferea-libre/PKGBUILD b/libre/liferea-libre/PKGBUILD index 461c0a3b2..a5a75d2e4 100644 --- a/libre/liferea-libre/PKGBUILD +++ b/libre/liferea-libre/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 186254 2013-05-23 00:44:27Z eric $ +# $Id: PKGBUILD 188905 2013-06-25 03:54:44Z eric $ # Maintainer: Eric Bélanger <eric@archlinux.org> # Contributor (Parabola): bitlord # Contributor (Parabola): André Silva <emulatorman@lavabit.com> _pkgname=liferea pkgname=liferea-libre -pkgver=1.8.14 +pkgver=1.8.15 pkgrel=1 pkgdesc="A desktop news aggregator for online news feeds and weblogs, without nonfree suggestions" arch=('i686' 'x86_64' 'mips64el') @@ -21,7 +21,7 @@ options=('!libtool' '!emptydirs') install=liferea.install source=(http://downloads.sourceforge.net/sourceforge/liferea/liferea-${pkgver}.tar.bz2 remove-non-free-suggestions.patch) -sha1sums=('980939a9f6483f4e9ca2353ffdba131cb9a88a6e' +sha1sums=('9a86773996d61d03c03e9a5137a2c0a3e2539f4f' '0d68c567c3d37932a49709c58c37c3f138fd19cb') build() { diff --git a/libre/lilo/PKGBUILD b/libre/lilo/PKGBUILD deleted file mode 100644 index a896613ee..000000000 --- a/libre/lilo/PKGBUILD +++ /dev/null @@ -1,41 +0,0 @@ -# $Id$ -# Maintainer: Eric Belanger <eric@archlinux.org> -# Contributor: judd <jvinet@zeroflux.org> -# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy> - -pkgname=lilo -pkgver=23.2 -pkgrel=3.2 -pkgdesc="A bootloader for GNU/Linux, Parabola rebranded" -arch=('i686' 'x86_64') -url="https://alioth.debian.org/projects/lilo/" -license=('BSD') -# While lilo should stay in the base category, -# it usually makes no sense if it is installed -# with pacman -S base, therefore, don't add -# the base group here. -#groups=('base') -backup=('etc/lilo.conf') -depends=('device-mapper' 'coreutils') -makedepends=('bin86' 'sharutils') -optdepends=('perl: to use keytab-lilo') -install=lilo.install -options=('!makeflags') -source=("http://lilo.alioth.debian.org/ftp/sources/${pkgname}-${pkgver}.tar.gz" - 'lilo.conf') -md5sums=('51b9b9db665d3b8724919e3d46054d12' - 'd06b3c4655577ed01fea79ec5743b4b0') - -build() { - cd "${srcdir}/${pkgname}-${pkgver}" - export LC_ALL=C - make all -} - -package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - - install -D -m644 "${srcdir}/lilo.conf" "${pkgdir}/etc/lilo.conf" - install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" -} diff --git a/libre/lilo/lilo.conf b/libre/lilo/lilo.conf deleted file mode 100644 index 479390df5..000000000 --- a/libre/lilo/lilo.conf +++ /dev/null @@ -1,25 +0,0 @@ -# -# /etc/lilo.conf -# - -boot=/dev/sda -# This line often fixes L40 errors on bootup -# disk=/dev/sda bios=0x80 - -default=parabola -timeout=50 -lba32 -prompt - -image=/boot/vmlinuz-linux-libre - label=parabola - root=/dev/sda3 - initrd=/boot/initramfs-linux-libre.img - read-only - -image=/boot/vmlinuz-linux-libre - label=parabola-fallback - root=/dev/sda3 - initrd=/boot/initramfs-linux-libre-fallback.img - read-only - diff --git a/libre/lilo/lilo.install b/libre/lilo/lilo.install deleted file mode 100644 index 7375fddf8..000000000 --- a/libre/lilo/lilo.install +++ /dev/null @@ -1,5 +0,0 @@ -post_upgrade() { - echo - echo "If you use the LILO bootloader, you should run 'lilo' after upgrading." - echo -} diff --git a/libre/linux-libre-firmware/PKGBUILD b/libre/linux-libre-firmware/PKGBUILD index 99c54a1b2..4983604a4 100644 --- a/libre/linux-libre-firmware/PKGBUILD +++ b/libre/linux-libre-firmware/PKGBUILD @@ -2,12 +2,15 @@ # Contributor: Márcio Silva <coadde@lavabit.com> pkgname=linux-libre-firmware -pkgver=3.9 +_pkgver=3.9 +pkgver=$(LC_ALL=C date -u +%Y%m%d) pkgrel=1 pkgdesc='Free firmware files for Linux-libre' arch=('any') -url='http://linux-libre.fsfla.org/' -license=('GPL2') +url=('http://linux-libre.fsfla.org/' + 'http://wireless.kernel.org/en/users/Drivers/ath9k_htc') +license=('GPL2' 'BSD') +makedepends=('git' 'xtensa-unknown-elf-gcc') provides=('linux-firmware' 'kernel26-firmware=2.6.34.99') conflicts=('linux-firmware' @@ -35,15 +38,46 @@ replaces=('linux-firmware' 'rt2870usb-fw' 'rt2x00-rt61-fw' 'rt2x00-rt71w-fw') -source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$pkgver-gnu/linux-libre-$pkgver-gnu.tar.xz") -md5sums=('120df29f88622dabf7015a22c7cc8e25') +source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$_pkgver-gnu/linux-libre-$_pkgver-gnu.tar.xz" + "git://github.com/qca/open-ath9k-htc-firmware") +md5sums=('120df29f88622dabf7015a22c7cc8e25' + 'SKIP') -package() { - cd $srcdir/linux-$pkgver - +build() { + + cd $srcdir/open-ath9k-htc-firmware + + # create firmware folder to put the free firmware files there + install -d -m755 $pkgdir/usr/lib/firmware + + # fix path on configure file + sed -i 's|$PWD/../toolchain/inst|/usr|; + 's|xtensa-elf|xtensa-unknown-elf|; + ' target_firmware/configure + + # compile ath9k-htc-firmware + make -C target_firmware + + mv htc_{7010,9271}.fw $pkgdir/usr/lib/firmware + + cd $srcdir/linux-$_pkgver + + # compile free firmware files of linux-libre source code make INSTALL_FW_PATH=$pkgdir/usr/lib/firmware firmware_install - # move WHENCE file to linux-firmware license folder +} + +package() { + + # create licenses folder to put the licenses files there install -d -m755 $pkgdir/usr/share/licenses/$pkgname + + # move LICENSE.TXT from ath9k-htc firmware to linux-firmware license folder + cd $srcdir/open-ath9k-htc-firmware-1.3.2 + mv LICENSE.TXT $pkgdir/usr/share/licenses/$pkgname/LICENCE.atheros_firmware + + # move WHENCE file to linux-firmware license folder + cd $srcdir/linux-$_pkgver mv firmware/WHENCE $pkgdir/usr/share/licenses/$pkgname + } diff --git a/libre/linux-libre-kmod-alx/PKGBUILD b/libre/linux-libre-kmod-alx/PKGBUILD index 8a224dfa3..56137aaf3 100644 --- a/libre/linux-libre-kmod-alx/PKGBUILD +++ b/libre/linux-libre-kmod-alx/PKGBUILD @@ -1,12 +1,12 @@ # Maintainer: André Silva <emulatorman@lavabit.com> -_kernver=3.9.7 +_kernver=3.9.8 _kernrel=1 pkgname=('linux-libre-kmod-alx') _version=v3.9-rc4 _pkgver=3.9-rc4-2-su pkgver=3.9rc4.2 -pkgrel=8 +pkgrel=9 pkgdesc='Atheros alx ethernet device driver for linux-libre kernel' arch=('i686' 'x86_64') url='http://www.linuxfoundation.org/collaborate/workgroups/networking/alx' diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD index 7be04b12f..434a922af 100644 --- a/libre/linux-libre-lts/PKGBUILD +++ b/libre/linux-libre-lts/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 188793 2013-06-21 07:29:45Z tpowa $ +# $Id: PKGBUILD 189000 2013-06-28 06:57:30Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Maintainer: Thomas Baechler <thomas@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -8,10 +8,10 @@ pkgbase=linux-libre-lts # Build stock -LIBRE-LTS kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.0 -_sublevel=83 +_sublevel=84 pkgver=${_basekernel}.${_sublevel} pkgrel=1 -_lxopkgver=${_basekernel}.82 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.83 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -33,9 +33,9 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'module-init-wait-3.0.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu1_0loongsonlibre_mipsel.tar.bz2") md5sums=('f30a562307b6f71204370fcd33756466' - '43f2b35b0a8bbe8442627874b4179644' - 'fe0e9b4415b82f306fc1b63eb9a742a4' - '69a689019ea0b6ed46b387907f14bc8a' + 'a2ab5e3c758f35d0a2ffe33b23cfe04d' + '6ab0f1a509481d93117b7630105757cc' + '18dfa330a7da88d7c09c3e24a5cd608f' 'c072b17032e80debc6a8626299245d46' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' @@ -45,7 +45,7 @@ md5sums=('f30a562307b6f71204370fcd33756466' 'f36222e7ce20c8e4dc27376f9be60f6c' '670931649c60fcb3ef2e0119ed532bd4' '8a71abc4224f575008f974a099b5cf6f' - 'cc33faaec0f6c99ff03838a146d62250') + '1327df75d631529dcf29f46f474cf16d') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] diff --git a/libre/linux-libre-lts/config.i686 b/libre/linux-libre-lts/config.i686 index 849fd016b..a1d065a1a 100644 --- a/libre/linux-libre-lts/config.i686 +++ b/libre/linux-libre-lts/config.i686 @@ -1438,8 +1438,8 @@ CONFIG_OF_PCI=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m diff --git a/libre/linux-libre-lts/config.x86_64 b/libre/linux-libre-lts/config.x86_64 index fe5875138..a5dc36205 100644 --- a/libre/linux-libre-lts/config.x86_64 +++ b/libre/linux-libre-lts/config.x86_64 @@ -1381,8 +1381,8 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m diff --git a/libre/linux-libre-tools/PKGBUILD b/libre/linux-libre-tools/PKGBUILD index 4e64f9872..c90c5a29f 100644 --- a/libre/linux-libre-tools/PKGBUILD +++ b/libre/linux-libre-tools/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 91131 2013-05-19 23:48:35Z seblu $ +# $Id: PKGBUILD 93323 2013-07-01 22:56:01Z seblu $ # Maintainer: Sébastien Luttringer <seblu@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -8,11 +8,11 @@ pkgname=('linux-libre-tools-meta' 'perf-libre' 'cpupower-libre' 'usbip-libre') -_basekernel=3.9 +_basekernel=3.10 #_sublevel=6 _pkgver=$_basekernel.$_sublevel pkgver=$_basekernel -pkgrel=3 +pkgrel=1 license=('GPL2') arch=('i686' 'x86_64' 'mips64el') url='http://linux-libre.fsfla.org/' @@ -33,13 +33,13 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$_basekernel-gnu/ 'cpupower.systemd' 'cpupower.service' 'usbipd.service') -sha256sums=('62f113b4bd9ee832e8906da970c5bf4585c057af4eab14ec6ad57e9b2fd084ef' +sha256sums=('abee814b92422cfa3df90b62ad9ba888697fcc03a713adc2c7f68e0d0c23c329' '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f' 'fbf6e0ce6eb0ef15703fe212958de6ca46e62188900b5e9f9272ed3cc9cfd54e' 'a89284d0ecb556ca53a66d1c2087b5fd6d0a901ab2769cd3aebb93f4478905dc' '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f') -build() { +prepare() { # apply stable patching set if (( NOEXTRACT == 0 )) && [[ -e "$srcdir"/patch-$_basekernel-gnu-$_pkgver-gnu ]]; then msg2 'Applying stable patch set' @@ -47,7 +47,9 @@ build() { patch -Np1 -i "$srcdir"/patch-$_basekernel-gnu-$_pkgver-gnu cd .. fi +} +build() { msg2 'Build libtraceevent-libre' pushd linux-$pkgver/tools/lib/traceevent make diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 220530181..cc02f9c6f 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 188791 2013-06-21 06:32:50Z tpowa $ +# $Id: PKGBUILD 188998 2013-06-28 05:50:01Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Maintainer: Thomas Baechler <thomas@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -10,10 +10,10 @@ pkgbase=linux-libre # Build stock -LIBRE kernel #pkgbase=linux-libre-custom # Build kernel with a different name _basekernel=3.9 -_sublevel=7 +_sublevel=8 pkgver=${_basekernel}.${_sublevel} pkgrel=1 -_lxopkgver=${_basekernel}.6 # nearly always the same as pkgver +_lxopkgver=${_basekernel}.8 # nearly always the same as pkgver arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -31,15 +31,15 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn 'change-default-console-loglevel.patch' "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") md5sums=('120df29f88622dabf7015a22c7cc8e25' - '4f5c670da16dc80fe9482892b636f99d' - 'e6c4e42d67aaff6d057983c499ebcace' - 'e23ad17eb5051f5ccd332bbb474df4d9' + 'b628d7ff09667dc5546993bb83461d45' + '5bb868d38a27edafac1eb114cd2f3659' + 'c180de34b0450d7eef8e0c1a68433d7c' 'e49ac236dfeef709f91a3d993ea7b62c' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' '04b21c79df0a952c22d681dd4f4562df' 'f3def2cefdcbb954c21d8505d23cc83c' - '0375f682754ef52216fd522494875301') + '30092ce96affb12f89a9eddfad966741') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index f6951a2b6..e84812997 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1581,8 +1581,8 @@ CONFIG_OF_MTD=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m diff --git a/libre/linux-libre/config.i686.3.10 b/libre/linux-libre/config.i686.3.10 index 129ab764f..9eaa84b4f 100644 --- a/libre/linux-libre/config.i686.3.10 +++ b/libre/linux-libre/config.i686.3.10 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.10.0-rc6 Kernel Configuration +# Linux/x86 3.10.0-rc7 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -1586,8 +1586,8 @@ CONFIG_OF_MTD=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m @@ -3924,7 +3924,6 @@ CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_SI470X=y CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m -CONFIG_RADIO_SI476X=m CONFIG_USB_MR800=m CONFIG_USB_DSBR=m CONFIG_RADIO_MAXIRADIO=m @@ -3970,6 +3969,7 @@ CONFIG_SMS_SIANO_RC=y # Media ancillary drivers (tuners, sensors, i2c, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # @@ -4047,7 +4047,6 @@ CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # -CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m @@ -4597,7 +4596,6 @@ CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set -CONFIG_SND_SOC_SI476X=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 44a03558f..0937bed6f 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1530,8 +1530,8 @@ CONFIG_MTD_UBI_BEB_LIMIT=20 CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m diff --git a/libre/linux-libre/config.x86_64.3.10 b/libre/linux-libre/config.x86_64.3.10 index 4c4838cca..ed592fa43 100644 --- a/libre/linux-libre/config.x86_64.3.10 +++ b/libre/linux-libre/config.x86_64.3.10 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 3.10.0-rc6 Kernel Configuration +# Linux/x86 3.10.0-rc7 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -1536,8 +1536,8 @@ CONFIG_MTD_UBI_BEB_LIMIT=20 CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m -CONFIG_PARPORT_PC_FIFO=y -CONFIG_PARPORT_PC_SUPERIO=y +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m @@ -3793,7 +3793,6 @@ CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_SI470X=y CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m -CONFIG_RADIO_SI476X=m CONFIG_USB_MR800=m CONFIG_USB_DSBR=m CONFIG_RADIO_MAXIRADIO=m @@ -3838,6 +3837,7 @@ CONFIG_SMS_SIANO_RC=y # Media ancillary drivers (tuners, sensors, i2c, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # @@ -3915,7 +3915,6 @@ CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # -CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m @@ -4415,7 +4414,6 @@ CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set -CONFIG_SND_SOC_SI476X=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD index 91710f5eb..fc749260c 100644 --- a/libre/lirc-libre/PKGBUILD +++ b/libre/lirc-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 188799 2013-06-21 08:04:28Z tpowa $ +# $Id: PKGBUILD 189186 2013-06-28 18:41:29Z foutrelis $ # Maintainer: Paul Mattal <paul@archlinux.org> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> @@ -6,14 +6,14 @@ _pkgbase=lirc pkgbase=lirc-libre pkgname=('lirc-libre' 'lirc-utils-libre') pkgver=0.9.0 -pkgrel=48 +pkgrel=49 epoch=1 _extramodules=extramodules-3.9-LIBRE arch=('i686' 'x86_64' 'mips64el') url="http://www.lirc.org/" license=('GPL') ### NOTICE don't forget to bump version in depends in package_lirc -makedepends=('help2man' 'linux-libre-headers>=3.9' 'linux-libre-headers<3.10' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2') +makedepends=('help2man' 'linux-libre>=3.9' 'linux-libre-headers>=3.9' 'linux-libre-headers<3.10' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python2') options=('!makeflags' '!strip') source=(http://prdownloads.sourceforge.net/${_pkgbase}/${_pkgbase}-${pkgver}.tar.bz2 lirc_wpc8769l.patch diff --git a/libre/mariadb/PKGBUILD b/libre/mariadb/PKGBUILD deleted file mode 100644 index a5b733e9f..000000000 --- a/libre/mariadb/PKGBUILD +++ /dev/null @@ -1,141 +0,0 @@ -# $Id$ -# Maintainer: -# Contributor: Andrea Scarpino <andrea@archlinux.org> -# Contributor: Douglas Soares de Andrade <douglas@archlinux.org> -# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy> - -falsename=mysql -_falsename=MySQL -pkgbase=mariadb -_pkgbase=MariaDB -pkgname=("lib${pkgbase}client" "${pkgbase}-clients" "${pkgbase}") -pkgver=5.5.23 -pkgrel=1.5 -arch=('i686' 'x86_64' 'mips64el') -license=('GPL') -url="http://www.${pkgbase}.org/" -makedepends=('cmake' 'openssl' 'zlib') -options=('!libtool') -source=("http://mirror.aarnet.edu.au/pub/${_pkgbase}/${pkgbase}-${pkgver}/kvm-tarbake-jaunty-x86/${pkgbase}-${pkgver}.tar.gz" - "${falsename}d" - 'my.cnf') -md5sums=('7074fa091b3c1489f45a5ddf12cd5e6f' - '2234207625baa29b2ff7d7b4f088abce' - '1c949c0dbea5206af0db14942d9927b6') - -build() { - cd "${srcdir}" - mkdir build - cd build - - # CFLAGS/CXXFLAGS as suggested upstream - CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \ - CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \ - - cmake ../${pkgbase}-${pkgver} \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DSYSCONFDIR=/etc/${falsename} \ - -DMYSQL_DATADIR=/var/lib/${falsename} \ - -DMYSQL_UNIX_ADDR=/var/run/${falsename}/${falsename}.sock \ - -DDEFAULT_CHARSET=utf8 \ - -DDEFAULT_COLLATION=utf8_unicode_ci \ - -DENABLED_LOCAL_INFILE=ON \ - -DINSTALL_INFODIR=share/${falsename}/docs \ - -DINSTALL_MANDIR=share/man \ - -DINSTALL_PLUGINDIR=/usr/lib/${falsename}/plugin \ - -DINSTALL_SCRIPTDIR=bin \ - -DINSTALL_INCLUDEDIR=include/${falsename} \ - -DINSTALL_DOCREADMEDIR=share/${falsename} \ - -DINSTALL_SUPPORTFILESDIR=share/${falsename} \ - -DINSTALL_MYSQLSHAREDIR=share/${falsename} \ - -DINSTALL_DOCDIR=share/${falsename}/docs \ - -DINSTALL_SHAREDIR=share/${falsename} \ - -DWITH_READLINE=ON \ - -DWITH_ZLIB=system \ - -DWITH_SSL=system \ - -DWITH_LIBWRAP=OFF \ - -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \ - -DWITH_EXTRA_CHARSETS=complex \ - -DWITH_EMBEDDED_SERVER=ON \ - -DWITH_INNOBASE_STORAGE_ENGINE=1 \ - -DWITH_PARTITION_STORAGE_ENGINE=1 \ - -DWITH_PBXT_STORAGE_ENGINE=1 \ - -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ - -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \ - -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \ - -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 - - make -} - -package_libmariadbclient(){ - pkgdesc="${_pkgbase} client libraries (branch of ${_falsename})" - depends=('openssl') - conflicts=("lib${falsename}client") - provides=("lib${falsename}client=${pkgver}") - - cd "${srcdir}"/build - for dir in include lib${falsename} lib${falsename}d libservices; do - make -C ${dir} DESTDIR="${pkgdir}" install - done - - install -d "${pkgdir}"/usr/bin - install -m755 scripts/${falsename}_config "${pkgdir}"/usr/bin/ - install -d "${pkgdir}"/usr/share/man/man1 - for man in ${falsename}_config ${falsename}_client_test_embedded ${falsename}test_embedded; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 - done -} - -package_mariadb-clients(){ - pkgdesc="${_pkgbase} client tools (branch of ${_falsename})" - depends=("lib${pkgbase}client") - conflicts=("${falsename}-clients") - provides=("${falsename}-clients=${pkgver}") - - cd "${srcdir}"/build - make -C client DESTDIR="${pkgdir}" install - - # install man pages - install -d "${pkgdir}"/usr/share/man/man1 - for man in ${falsename} ${falsename}admin ${falsename}check ${falsename}dump ${falsename}import ${falsename}show ${falsename}slap; do - install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1 - done - - # provided by mariadb - rm "${pkgdir}"/usr/bin/{${falsename}_{plugin,upgrade},${falsename}binlog,${falsename}test} -} - -package_mariadb(){ - pkgdesc="A fast SQL database server branch of ${_falsename} - ${_pkgbase}" - backup=("etc/${pkgbase}/my.cnf") - install=${falsename}.install - depends=("${pkgbase}-clients") - optdepends=('perl-dbi' "perl-dbd-${falsename}") - conflicts=("${falsename}") - provides=("${falsename}=${pkgver}") - options=('emptydirs') - - cd "${srcdir}"/build - make DESTDIR="${pkgdir}" install - - install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/${falsename}/my.cnf - install -Dm755 "${srcdir}"/${falsename}d "${pkgdir}"/etc/rc.d/${falsename}d - - # provided by libmariadbclient - rm "${pkgdir}"/usr/bin/{${falsename}_config,${falsename}_client_test_embedded,${falsename}test_embedded} - rm "${pkgdir}"/usr/lib/lib${falsename}* - rm -r "${pkgdir}"/usr/include/ - rm "${pkgdir}"/usr/share/man/man1/{${falsename}_config,${falsename}_client_test_embedded,${falsename}test_embedded}.1 - - # provided by mariadb-clients - rm "${pkgdir}"/usr/bin/{${falsename},${falsename}admin,${falsename}check,${falsename}dump,${falsename}import,${falsename}show,${falsename}slap} - rm "${pkgdir}"/usr/share/man/man1/{${falsename},${falsename}admin,${falsename}check,${falsename}dump,${falsename}import,${falsename}show,${falsename}slap}.1 - - # not needed - rm -r "${pkgdir}"/usr/{data,${falsename}-test,sql-bench} - rm "${pkgdir}"/usr/share/man/man1/${falsename}-test-run.pl.1 - - install -dm700 "${pkgdir}"/var/lib/${falsename} -} diff --git a/libre/mariadb/mariadb.install b/libre/mariadb/mariadb.install deleted file mode 100644 index f56a0dcaa..000000000 --- a/libre/mariadb/mariadb.install +++ /dev/null @@ -1,26 +0,0 @@ -post_install(){ - groupadd -g 89 mysql &>/dev/null - useradd -u 89 -g mysql -d /var/lib/mariadb -s /bin/false mysql &>/dev/null - /usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mariadb - chown -R mysql:mysql /var/lib/mariadb &>/dev/null -} - -post_upgrade(){ - getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null - getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mariadb -s /bin/false mysql &>/dev/null - - if [ "$(vercmp $2 5.5)" -lt 0 ]; then - echo " >> " - echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it." - echo " >> " - fi -} - -post_remove(){ - if getent passwd mysql >/dev/null 2>&1; then - userdel mysql - fi - if getent group mysql >/dev/null 2>&1; then - groupdel mysql - fi -} diff --git a/libre/mariadb/mariadbd b/libre/mariadb/mariadbd deleted file mode 100755 index 3ae612096..000000000 --- a/libre/mariadb/mariadbd +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -getPID() { - echo $(pgrep -u mysql mysqld 2>/dev/null); -} - -case "$1" in - start) - stat_busy "Starting MariaDB Server" - [ ! -d /var/run/mariadb ] && install -d -g mysql -o mysql /var/run/mariadb &>/dev/null - if [ -z "$(getPID)" ]; then - /usr/bin/mysqld_safe --user=mysql &>/dev/null & - if [ $? -gt 0 ]; then - stat_fail - exit 1 - else - timeo=30 - while [ $timeo -gt 0 ]; do - response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break - echo "$response" | grep -q "mysqld is alive" && break - sleep 1 - let timeo=${timeo}-1 - done - if [ $timeo -eq 0 ]; then - stat_fail - exit 1 - else - echo $(getPID) > /var/run/mariadb/mariadb.pid - add_daemon mysqld - stat_done - fi - fi - else - stat_fail - exit 1 - fi - ;; - - stop) - stat_busy "Stopping MariaDB Server" - if [ ! -z "$(getPID)" ]; then - timeo=30 - kill $(getPID) &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - exit 1 - fi - while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do - sleep 1 - let timeo=${timeo}-1 - done - if [ -z "$(getPID)" ]; then - rm -f /var/run/mariadb/mariadb.pid &>/dev/null - rm_daemon mysqld - stat_done - else - stat_fail - exit 1 - fi - else - stat_fail - exit 1 - fi - ;; - - restart) - $0 stop - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 diff --git a/libre/mariadb/my.cnf b/libre/mariadb/my.cnf deleted file mode 100644 index 9a41b4fc3..000000000 --- a/libre/mariadb/my.cnf +++ /dev/null @@ -1,145 +0,0 @@ -# MySQL config file for medium systems. -# -# This is for a system with little memory (32M - 64M) where MySQL plays -# an important part, or systems up to 128M where MySQL is used together with -# other programs (such as a web server) -# -# MySQL programs look for option files in a set of -# locations which depend on the deployment platform. -# You can copy this option file to one of those -# locations. For information about these locations, see: -# http://dev.mysql.com/doc/mysql/en/option-files.html -# -# In this file, you can use all long options that a program supports. -# If you want to know which options a program supports, run the program -# with the "--help" option. - -# The following options will be passed to all MySQL clients -[client] -#password = your_password -port = 3306 -socket = /var/run/mysqld/mysqld.sock - -# Here follows entries for some specific programs - -# The MySQL server -[mysqld] -port = 3306 -socket = /var/run/mysqld/mysqld.sock -datadir = /var/lib/mysql -skip-external-locking -key_buffer_size = 16M -max_allowed_packet = 1M -table_open_cache = 64 -sort_buffer_size = 512K -net_buffer_length = 8K -read_buffer_size = 256K -read_rnd_buffer_size = 512K -myisam_sort_buffer_size = 8M - -# Don't listen on a TCP/IP port at all. This can be a security enhancement, -# if all processes that need to connect to mysqld run on the same host. -# All interaction with mysqld must be made via Unix sockets or named pipes. -# Note that using this option without enabling named pipes on Windows -# (via the "enable-named-pipe" option) will render mysqld useless! -# -skip-networking - -# Replication Master Server (default) -# binary logging is required for replication -log-bin=mysql-bin - -# binary logging format - mixed recommended -binlog_format=mixed - -# required unique id between 1 and 2^32 - 1 -# defaults to 1 if master-host is not set -# but will not function as a master if omitted -server-id = 1 - -# Replication Slave (comment out master section to use this) -# -# To configure this host as a replication slave, you can choose between -# two methods : -# -# 1) Use the CHANGE MASTER TO command (fully described in our manual) - -# the syntax is: -# -# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, -# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; -# -# where you replace <host>, <user>, <password> by quoted strings and -# <port> by the master's port number (3306 by default). -# -# Example: -# -# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, -# MASTER_USER='joe', MASTER_PASSWORD='secret'; -# -# OR -# -# 2) Set the variables below. However, in case you choose this method, then -# start replication for the first time (even unsuccessfully, for example -# if you mistyped the password in master-password and the slave fails to -# connect), the slave will create a master.info file, and any later -# change in this file to the variables' values below will be ignored and -# overridden by the content of the master.info file, unless you shutdown -# the slave server, delete master.info and restart the slaver server. -# For that reason, you may want to leave the lines below untouched -# (commented) and instead use CHANGE MASTER TO (see above) -# -# required unique id between 2 and 2^32 - 1 -# (and different from the master) -# defaults to 2 if master-host is set -# but will not function as a slave if omitted -#server-id = 2 -# -# The replication master for this slave - required -#master-host = <hostname> -# -# The username the slave will use for authentication when connecting -# to the master - required -#master-user = <username> -# -# The password the slave will authenticate with when connecting to -# the master - required -#master-password = <password> -# -# The port the master is listening on. -# optional - defaults to 3306 -#master-port = <port> -# -# binary logging - not required for slaves, but recommended -#log-bin=mysql-bin - -# Uncomment the following if you are using InnoDB tables -#innodb_data_home_dir = /var/lib/mysql -#innodb_data_file_path = ibdata1:10M:autoextend -#innodb_log_group_home_dir = /var/lib/mysql -# You can set .._buffer_pool_size up to 50 - 80 % -# of RAM but beware of setting memory usage too high -#innodb_buffer_pool_size = 16M -#innodb_additional_mem_pool_size = 2M -# Set .._log_file_size to 25 % of buffer pool size -#innodb_log_file_size = 5M -#innodb_log_buffer_size = 8M -#innodb_flush_log_at_trx_commit = 1 -#innodb_lock_wait_timeout = 50 - -[mysqldump] -quick -max_allowed_packet = 16M - -[mysql] -no-auto-rehash -# Remove the next comment character if you are not familiar with SQL -#safe-updates - -[myisamchk] -key_buffer_size = 20M -sort_buffer_size = 20M -read_buffer = 2M -write_buffer = 2M - -[mysqlhotcopy] -interactive-timeout diff --git a/libre/mariadb/mysql.install b/libre/mariadb/mysql.install deleted file mode 100644 index 9a4479215..000000000 --- a/libre/mariadb/mysql.install +++ /dev/null @@ -1,26 +0,0 @@ -post_install(){ - groupadd -g 89 mysql &>/dev/null - useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null - usr/bin/mysql_install_db --user=mysql --basedir=/usr - chown -R mysql:mysql var/lib/mysql &>/dev/null -} - -post_upgrade(){ - getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null - getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null - - if [ "$(vercmp $2 5.5)" -lt 0 ]; then - echo " >> " - echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it." - echo " >> " - fi -} - -post_remove(){ - if getent passwd mysql >/dev/null 2>&1; then - userdel mysql - fi - if getent group mysql >/dev/null 2>&1; then - groupdel mysql - fi -} diff --git a/libre/mariadb/mysqld b/libre/mariadb/mysqld deleted file mode 100644 index 1ac88a7cc..000000000 --- a/libre/mariadb/mysqld +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash - -# general config -. /etc/rc.conf -. /etc/rc.d/functions - -getPID() { - echo $(pgrep -u mysql mysqld 2>/dev/null); -} - -case "$1" in - start) - stat_busy "Starting MySQL Server" - [ ! -d /var/run/mysqld ] && install -d -g mysql -o mysql /var/run/mysqld &>/dev/null - if [ -z "$(getPID)" ]; then - /usr/bin/mysqld_safe --user=mysql &>/dev/null & - if [ $? -gt 0 ]; then - stat_fail - exit 1 - else - timeo=30 - while [ $timeo -gt 0 ]; do - response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break - echo "$response" | grep -q "mysqld is alive" && break - sleep 1 - let timeo=${timeo}-1 - done - if [ $timeo -eq 0 ]; then - stat_fail - exit 1 - else - echo $(getPID) > /var/run/mysqld/mysqld.pid - add_daemon mysqld - stat_done - fi - fi - else - stat_fail - exit 1 - fi - ;; - - stop) - stat_busy "Stopping MySQL Server" - if [ ! -z "$(getPID)" ]; then - timeo=30 - kill $(getPID) &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - exit 1 - fi - while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do - sleep 1 - let timeo=${timeo}-1 - done - if [ -z "$(getPID)" ]; then - rm -f /var/run/mysqld/mysqld.pid &>/dev/null - rm_daemon mysqld - stat_done - else - stat_fail - exit 1 - fi - else - stat_fail - exit 1 - fi - ;; - - restart) - $0 stop - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 diff --git a/libre/mkbootcd/PKGBUILD b/libre/mkbootcd/PKGBUILD deleted file mode 100644 index 8990fbae3..000000000 --- a/libre/mkbootcd/PKGBUILD +++ /dev/null @@ -1,25 +0,0 @@ -# $Id: PKGBUILD 137619 2011-09-10 08:04:29Z pierre $ -# Maintainer : Tobias Powalowski <tpowa@archlinux.org> - -pkgname=mkbootcd -pkgver=2008.09 -pkgrel=2.2 -pkgdesc="Advanced, modular isolinux bootcd image creation utility (Parabola rebranded)" -arch=('any') -license=('GPL') -url="https://parabolagnulinux.org/" -depends=('mkinitcpio' 'cdrkit' 'syslinux') -source=('boot.msg' 'mkbootcd' 'mkbootcd.conf' 'options.msg') -backup=('etc/mkbootcd.conf') -md5sums=('2b55189d64e5263c5a3925a7b949c1f8' - '521107289007f0c3f11ddbb6fdfcbd22' - '4794673fa413eb5459b40172be7ae541' - '75b69407f88f2838c66f4dda4d8455e3') - -package() { - cd $srcdir - install -D -m755 mkbootcd $pkgdir/usr/sbin/mkbootcd - install -D -m644 mkbootcd.conf $pkgdir/etc/mkbootcd.conf - install -D -m644 boot.msg $pkgdir/usr/share/mkbootcd/boot.msg - install -D -m644 options.msg $pkgdir/usr/share/mkbootcd/options.msg -} diff --git a/libre/mkbootcd/boot.msg b/libre/mkbootcd/boot.msg deleted file mode 100644 index 5e441e746..000000000 --- a/libre/mkbootcd/boot.msg +++ /dev/null @@ -1,15 +0,0 @@ - - ------------------------------------------------------------------------------- -Parabola GNU/Linux-libre -ISOLINUX BOOT -created with 'mkbootcd' written by Tobias Powalowski <tpowa@archlinux.org> -rebranded for Parabola by André Silva <emulatorman@lavabit.com> - -Press ENTER or type 'parabola' to boot the CD. - -If you wish to change your defaults to boot into your existing system, -type 'vmlinuz initrd=initrd.img <any_other_boot_option>' -Use the F2 key for troubleshooting and options. ------------------------------------------------------------------------------- - diff --git a/libre/mkbootcd/mkbootcd b/libre/mkbootcd/mkbootcd deleted file mode 100755 index 012267be9..000000000 --- a/libre/mkbootcd/mkbootcd +++ /dev/null @@ -1,144 +0,0 @@ -#! /bin/sh -# Created by Tobias Powalowski <tpowa@archlinux.org> -# Rebranded for Parabola by André Silva <emulatorman@lavabit.com> -# Settings -APPNAME=$(basename "${0}") -CONFIG="/etc/mkbootcd.conf" -GENIMG="" -BURN="0" -BLANK="0" -GRUB="0" -TARNAME="" -export TEMPDIR=$(mktemp /tmp/mkbootcd.XXXX) -usage () -{ - echo "${APPNAME}: usage" - echo " -g=IMAGE Generate a ISO image as IMAGE" - echo " -c=CONFIG Use CONFIG file. default: /etc/mkbootcd.conf" - echo " -B Burn the ISO image after creation" - echo " -b Blanking media first" - echo " -grub Use grub instead of isolinux" - echo " -t=TARNAME Generate a tar image instead of an iso image" - echo " -h This message." - exit 1 -} - -[ "$1" == "" ] && usage - -while [ $# -gt 0 ]; do - case $1 in - -c=*|--c=*) CONFIG="$(echo $1 | awk -F= '{print $2;}')" ;; - -g=*|--g=*) GENIMG="$(echo $1 | awk -F= '{print $2;}')" ;; - -B|--B) BURN="1" ;; - -b|--b) BLANK="1" ;; - -grub|--grub) GRUB="1" ;; - -t=*|--t=*) TARNAME="$(echo $1 | awk -F= '{print $2;}')" ;; - -h|--h|?) usage ;; - *) usage ;; - esac - shift -done - -if [ "${TARNAME}" = "" -a "${GENIMG}" = "" ]; then - echo "ERROR: No image name specified, please use the -g option" - exit 1 -fi - -if [ ! -f "${CONFIG}" ]; then - echo "config file '${CONFIG}' cannot be found, aborting..." - exit 1 -fi - -. "${CONFIG}" -# export for mkinitcpio -[ -n "${APPENDBOOTMESSAGE}" ] && export APPENDBOOTMESSAGE -[ -n "${APPENDBOOTMESSAGE_SYSLINUX}" ] && export APPENDBOOTMESSAGE_SYSLINUX -[ -n "${APPENDBOOTMESSAGE_SYSLINUX_LOWMEM}" ] && export APPENDBOOTMESSAGE_SYSLINUX_LOWMEM -[ -n "${APPENDOPTIONSBOOTMESSAGE}" ] && export APPENDOPTIONSBOOTMESSAGE - -if [ "$GRUB" = "1" ]; then - export RUNPROGRAM="${APPNAME}-grub" - export BOOTDIRNAME="boot" -else - export RUNPROGRAM="${APPNAME}" - export BOOTDIRNAME="isolinux" -fi -[ "${BOOTMESSAGE}" = "" ] && export BOOTMESSAGE=$(mktemp /tmp/bootmessage.XXXX) -[ "${OPTIONSBOOTMESSAGE}" = "" ] && export OPTIONSBOOTMESSAGE=$(mktemp /tmp/optionsbootmessage.XXXX) -[ "${ISONAME}" = "" ] && export ISONAME=$(mktemp /tmp/isoname.XXXX) -export USEKERNEL=${VERSION} -# begin script -[ -e ${TEMPDIR} ] && rm -r ${TEMPDIR} -mkdir -p ${TEMPDIR}/${BOOTDIRNAME} -if [ "$GRUB" = "1" ]; then - mkdir ${TEMPDIR}/${BOOTDIRNAME}/grub - install -m755 /usr/share/grub/i386-pc/stage2_eltorito ${TEMPDIR}/${BOOTDIRNAME}/grub/stage2_eltorito -else - install -m755 /usr/lib/syslinux/isolinux.bin ${TEMPDIR}/${BOOTDIRNAME}/isolinux.bin -fi -# create isolinux.cfg -if [ "$GRUB" = "1" ]; then - echo ":: Creating menu.lst ..." - [ ! -e "${MENULST}" ] && echo "No menu.lst found" && exit 1 - sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \ - ${MENULST} \ - > ${TEMPDIR}/${BOOTDIRNAME}/grub/menu.lst -else - echo ":: Creating isolinux.cfg ..." - if [ "${ISOLINUXCFG}" = "" ]; then - [ -e ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg ] && rm ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "prompt ${PROMPT}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "timeout ${TIMEOUT}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "display boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "F1 boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "F2 options.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "default parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "label parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "kernel vmlinuz" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - echo "append initrd=initrd.img ${KERNEL_BOOT_OPTIONS}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - else - sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \ - ${ISOLINUXCFG} > ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg - fi - [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg ] && echo "No isolinux.cfg found" && exit 1 -fi -echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..." -# generate initramdisk -echo ":: Creating initramdisk ..." - mkinitcpio -c ${MKINITCPIO_CONFIG} -k ${VERSION} -g ${TEMPDIR}/${BOOTDIRNAME}/initrd.img -echo ":: Using ${KERNEL} as image kernel ..." - install -m644 ${KERNEL} ${TEMPDIR}/${BOOTDIRNAME}/vmlinuz - install -m644 ${BOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/boot.msg - install -m644 ${OPTIONSBOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/options.msg - [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1 - [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1 -# create image -if ! [ "${TARNAME}" = "" ]; then - echo ":: Creating tar image ..." - [ -e ${TARNAME} ] && rm ${TARNAME} - rm ${TEMPDIR}/parabola/pkg/*.pkg.tar.gz > /dev/null 2>&1 - tar cfv ${TARNAME} ${TEMPDIR} > /dev/null 2>&1 && echo ":: tar Image succesfull created at ${TARNAME}" -else - echo ":: Creating ISO image ..." - [ -e ${GENIMG} ] && rm ${GENIMG} - [ -s "${ISONAME}" ] && ISONAME=$(cat $ISONAME) || ISONAME="Parabola GNU/Linux-libre" - if [ "$GRUB" = "1" ]; then - mkisofs -RlDJLV "${ISONAME}" -b boot/grub/stage2_eltorito -c boot/boot.cat \ - -no-emul-boot -boot-load-size 4 -boot-info-table -o ${GENIMG} ${TEMPDIR}/ > /dev/null 2>&1 - else - mkisofs -RlDJLV "${ISONAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat \ - -no-emul-boot -boot-load-size 4 -boot-info-table -o ${GENIMG} ${TEMPDIR}/ > /dev/null 2>&1 - fi - [ $? -ne 0 ] && echo ":: ISO Image succesfull created at ${GENIMG}" - # burning/blanking image - if [ "$BLANK" = "1" ]; then - echo ":: Blanking media DEVICE=${DEVICE}, BLANKMODE=${BLANKMODE}, SPEED=${SPEED} ..." - cdrecord dev=${DEVICE} speed=${SPEED} blank=${BLANKMODE} > /dev/null 2>&1 && echo ":: Successfull." - fi - if [ "$BURN" = "1" ]; then - echo ":: Burning ISO image DEVICE=${DEVICE}, SPEED=${SPEED} ..." - cdrecord dev=${DEVICE} speed=${SPEED} -eject ${GENIMG} > /dev/null 2>&1 && echo ":: Successfull." - fi -fi -# clean /tmp -rm -r ${TEMPDIR} diff --git a/libre/mkbootcd/mkbootcd.conf b/libre/mkbootcd/mkbootcd.conf deleted file mode 100644 index 5b287a6ea..000000000 --- a/libre/mkbootcd/mkbootcd.conf +++ /dev/null @@ -1,39 +0,0 @@ -# Created by Tobias Powalowski <tpowa@archlinux.org> -# Rebranded for Parabola by André Silva <emulatorman@lavabit.com> -# config file of mkbootcd - -# DEFAULT kernel boot options like root=/dev/hda3 etc. -# add your root= option, if you boot from a disk device -# and don't want to add it by hand on each boot -KERNEL_BOOT_OPTIONS="" - -# mkinitcpio config file, defaulted to stock config file -MKINITCPIO_CONFIG="/etc/mkinitcpio.conf" - -# kernel version, defaulted to build for runtime kernel -VERSION="$(uname -r)" - -# kernel image, defaulted to stock libre kernel -KERNEL="/boot/vmlinuz-linux-libre" - -# boot message files -BOOTMESSAGE="/usr/share/mkbootcd/boot.msg" -OPTIONSBOOTMESSAGE="/usr/share/mkbootcd/options.msg" - -# menu.lst or isolinux.cfg file to use -ISOLINUXCFG="" -MENULST="" - -# Prompt on CD boot, defaulted to yes, 1=yes 0=no -PROMPT="1" - -# Name of the ISO, if empty Parabola GNU/Linux-libre is used if not set by a HOOK later -ISONAME="" - -# Timeout in seconds on CD boot, defaulted to 0, because we prompt by default -TIMEOUT="0" - -# Setting cdrecord options -DEVICE="" -SPEED="" -BLANKMODE="" diff --git a/libre/mkbootcd/options.msg b/libre/mkbootcd/options.msg deleted file mode 100644 index 63f56e755..000000000 --- a/libre/mkbootcd/options.msg +++ /dev/null @@ -1,6 +0,0 @@ ------------------------------------------------------------------------------- -Parabola GNU/Linux-libre options and troubleshooting: - -- If your system hangs during the boot process, any combinations of the - boot options noapic acpi=off pci=routeirq nosmp may be useful. ------------------------------------------------------------------------------- diff --git a/libre/mozilla-searchplugins/PKGBUILD b/libre/mozilla-searchplugins/PKGBUILD index 0d1d14cd0..b2e362899 100644 --- a/libre/mozilla-searchplugins/PKGBUILD +++ b/libre/mozilla-searchplugins/PKGBUILD @@ -3,7 +3,7 @@ # Contributor: Figue <ffigue at gmail> # Contributor (Parabola): fauno <fauno@kiwwwi.com.ar> # Contributor (Parabola): vando <facundo@esdebian.org> -# Contributor (Parabola): Márcio Silva <coadde@adinet.com.uy> +# Contributor (Parabola): Márcio Silva <coadde@lavabit.com> # Thank you very much to the older contributors: # Contributor: evr <evanroman at gmail> # Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com> diff --git a/libre/newton-dynamics-libre/PKGBUILD b/libre/newton-dynamics-libre/PKGBUILD new file mode 100644 index 000000000..1702cca70 --- /dev/null +++ b/libre/newton-dynamics-libre/PKGBUILD @@ -0,0 +1,50 @@ +# $Id: PKGBUILD 84449 2013-02-19 04:20:15Z svenstaro $ +# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> +# Contributor: Josh Taylor (deficite) <joshtaylor.mail@gmail.com> +# Contributor: Christophe Robin (bombstrike) <crobin@php.net> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> +_pkgname=newton-dynamics +pkgname=newton-dynamics-libre +pkgver=2.36 +pkgrel=1 +pkgdesc="A simple physics API" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.newtondynamics.com" +license=('custom') +depends=() +makedepends=('unar') +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver +source=("http://newton-dynamics.googlecode.com/files/newton-dynamics-${pkgver}.rar") +noextract=("newton-dynamics-${pkgver}.rar") +md5sums=('0dffa112d0a6ea39ad9e904e555da69a') + +build() { + _srcdir="${srcdir}/newton-dynamics-${pkgver}" + [[ "$CARCH" = "i686" ]] && platform="linux32" + [[ "$CARCH" = "x86_64" ]] && platform="linux64" + builddir="${_srcdir}/coreLibrary_200/projets/${platform}" + + # clean build directory + [[ -d "${_srcdir}" ]] && rm -Rf "${_srcdir}" + + # decompress package + cd "${srcdir}" + unar "newton-dynamics-${pkgver}.rar" + + # needed for building + mkdir -p "${_srcdir}/packages/${platform}" + + ## build lib + cd "${builddir}" + sed -i 's/ -o libNewton.so/ -lpthread -lstdc++ -o libNewton.so/' makefile + sed -i 's/Debug\.cpp.*$/Debug \\/g' makefile + make +} + +package() { + install -D -m644 "${builddir}/libNewton.a" "${pkgdir}/usr/lib/libNewton.a" + install -D -m755 "${builddir}/libNewton.so" "${pkgdir}/usr/lib/libNewton.so" + install -D -m644 "${_srcdir}/coreLibrary_200/source/newton/Newton.h" "${pkgdir}/usr/include/Newton.h" +} diff --git a/libre/newton-dynamics-libre/assert-fix.patch b/libre/newton-dynamics-libre/assert-fix.patch new file mode 100644 index 000000000..83dfdd790 --- /dev/null +++ b/libre/newton-dynamics-libre/assert-fix.patch @@ -0,0 +1,13 @@ +Index: source/core/dgTypes.cpp +=================================================================== +--- source/core/dgTypes.cpp (revision 506) ++++ source/core/dgTypes.cpp (working copy) +@@ -515,7 +515,7 @@ + return 0;
+ }
+ _ASSERTE (compareCount <= dgInt32 (strideInBytes / sizeof (dgFloat64)));
+- _ASSERT (strideInBytes == dgInt32 (sizeof (dgFloat64) * (strideInBytes / sizeof (dgFloat64))));
++ _ASSERTE (strideInBytes == dgInt32 (sizeof (dgFloat64) * (strideInBytes / sizeof (dgFloat64))));
+
+ dgInt32 stride = strideInBytes / dgInt32 (sizeof (dgFloat64));
+ dgInt32 stride2 = stride + 2;
diff --git a/libre/oss-libre/PKGBUILD b/libre/oss-libre/PKGBUILD new file mode 100644 index 000000000..32ee9db2e --- /dev/null +++ b/libre/oss-libre/PKGBUILD @@ -0,0 +1,104 @@ +# $Id: PKGBUILD 92058 2013-05-31 02:02:47Z seblu $ +# Maintainer: Kyle Keen <keenerd@gmail.com> +# Contributor: Florian Pritz <bluewind@xinu.at> +# Contributor: Paulo Matias <matiasΘarchlinux-br·org> +# Contributor: Daniel J Griffiths <ghost1227@archlinux.us> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + +pkgname=oss-libre +pkgver=4.2_2007 +pkgrel=4 +arch=('i686' 'x86_64' 'mips64el') +url="http://developer.opensound.com/" +license=('GPL2') +makedepends=('gtk2') +source=("http://www.4front-tech.com/developer/sources/stable/gpl/oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl.tar.bz2" + "rm-init-scripts.patch" + "soundon.patch" + "remove-hal.patch" + "linux-3.8.patch" + "oss.service" +) +md5sums=('f995118db1759fee3bcd38483940da6f' + 'b9a380a0ac8896390d71ac13676f27e1' + '65f07fe241bfbf912f76d8b6d8f276b5' + 'cd7f1dc6166bba8c94d96f3a28e948a5' + 'effecefb774f1d08ef9f0af0ad205c34' + '39c46b10a6bc56fc146d669a61bd3028') +_dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl + +build() { + cd "${srcdir}/${_dir}" + + # Avoid these flags conflicting with OSS build system. + unset CFLAGS + unset LDFLAGS + unset OSFLAGS + unset LIBRARIES + export NO_WARNING_CHECKS=yes + + msg "Preparing the build environment." + cd "${srcdir}" + + # Create build directory and configure + rm -rf build + mkdir build && cd build + "${srcdir}/${_dir}/configure" --enable-libsalsa=NO --regparm + + # ossvermagic hardcodes /lib/modules *grumble* + sed -i 's|/lib/modules|/usr&|' \ + os_cmd/Linux/ossvermagic/ossvermagic.c + + pushd "$srcdir/$_dir" + patch -p0 -i "${srcdir}/linux-3.8.patch" + popd + + msg "Building OSS." + make build + + msg "Patching init scripts." + cd "${srcdir}/build/prototype" + rm usr/lib/oss/etc/S89oss + patch -p0 -i "${srcdir}/rm-init-scripts.patch" + patch -p0 -i "${srcdir}/soundon.patch" + # remove hal dependency + patch -p0 -i "${srcdir}/remove-hal.patch" + rm -rf usr/lib/oss/scripts/oss_usb-create-devices usr/lib/oss/scripts/90-oss_usb-create-device.fdi + + # fix kernel module directories + sed -i 's#/lib/modules/$KERNEL_VERSION/kernel/#/usr/lib/modules/$KERNEL_VERSION/extramodules/kernel/#g' usr/sbin/soundon + sed -i 's#/lib/modules/$UNAME/kernel/#/usr/lib/modules/$UNAME/extramodules/kernel/#g' usr/lib/oss/build/install.sh + sed -i 's#mkdir /lib/modules#mkdir -p /usr/lib/modules#' usr/lib/oss/build/install.sh + sed -i 's#mkdir \(/usr/lib/modules/$UNAME/extramodules/kernel/oss\)#mkdir -p \1#' usr/lib/oss/build/install.sh + sed -i 's#\([= ]\)/lib/modules#\1/usr/lib/modules#g' \ + usr/lib/oss/build/install.sh \ + usr/lib/oss/scripts/restore_drv.sh \ + usr/lib/oss/scripts/setup-alsa.sh \ + usr/lib/oss/scripts/remove_drv.sh \ + usr/lib/oss/build/Makefile.tmpl \ + usr/lib/oss/build/Makefile.osscore \ + usr/lib/oss/cuckoo/Makefile +} + +package() { + pkgdesc="Open Sound System UNIX audio architecture, without nonfree libflashsupport-oss recommendation (built for the linux-libre-headers package)" + depends=('gcc' 'make' 'linux-libre-headers' 'libtool' 'sed') + optdepends=('gtk2: for graphical mixer (ossxmix)') + replaces=('oss') + conflicts=('oss' 'oss-linux' 'oss-linux-free' 'oss-testing') + provides=("oss=${pkgver}") + backup=('usr/lib/oss/soundon.user') + install=oss.install + + cd "${srcdir}/build/prototype" + cp -a * "${pkgdir}" + + cd "$pkgdir" + mv usr/sbin/* usr/bin + rmdir usr/sbin + chmod -R a+r . # All files can have read permission (FS#13815) + find . -type d -exec chmod a+x '{}' \; # Make namcap happy + install -Dm644 "$srcdir/oss.service" usr/lib/systemd/system/oss.service +} + +# vim:set ts=2 sw=2 et: diff --git a/libre/oss-libre/linux-3.8.patch b/libre/oss-libre/linux-3.8.patch new file mode 100644 index 000000000..46200e01a --- /dev/null +++ b/libre/oss-libre/linux-3.8.patch @@ -0,0 +1,40 @@ +--- setup/Linux/oss/build/pci_wrapper.inc 2009-08-27 05:19:07.000000000 +0300 ++++ setup/Linux/oss/build/pci_wrapper.inc 2013-02-08 13:56:10.519794975 +0200 +@@ -17,7 +17,11 @@ + static dev_map_t dev_map[MAX_INSTANCE]; + static int n_devmap = 0; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) + static int __devinit ++#else ++static int ++#endif + osspci_probe (struct pci_dev *pcidev, const struct pci_device_id *pciid) + { + oss_device_t *osdev; +@@ -65,7 +69,11 @@ + return 0; + } + +-static void __devexit ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) ++static int __devexit ++#else ++static int ++#endif + osspci_remove (struct pci_dev *pcidev) + { + int i; +@@ -80,10 +88,11 @@ + pci_disable_device (dev_map[i].pcidev); + osdev_delete (osdev); + +- return; ++ return 0; + } + + printk (KERN_ALERT DRIVER_NICK ": Can't find the PCI device to detach\n"); ++ return -EIO; + } + + void diff --git a/libre/oss-libre/oss.install b/libre/oss-libre/oss.install new file mode 100644 index 000000000..9bd4e1fbc --- /dev/null +++ b/libre/oss-libre/oss.install @@ -0,0 +1,25 @@ +post_install() { + echo "Running OSS install script..." + sh /usr/lib/oss/build/install.sh &>/dev/null + echo + echo " Note that OSS can't currently work together with kernel" + echo " ALSA modules, so they were moved out by the OSS install" + echo " scripts. If you want the ALSA kernel modules back, you can" + echo " just remove this package using pacman." +} + +post_upgrade() { + echo "Running OSS update script..." + sh /usr/lib/oss/build/install.sh &>/dev/null +} + +pre_remove() { + # Restore any replaced ALSA drivers. + sh /usr/lib/oss/scripts/restore_drv.sh +} + +post_remove() { + echo " Open Sound System was now removed, and the ALSA kernel" + echo " modules were restored." +} + diff --git a/libre/oss-libre/oss.service b/libre/oss-libre/oss.service new file mode 100644 index 000000000..0200d2477 --- /dev/null +++ b/libre/oss-libre/oss.service @@ -0,0 +1,12 @@ +[Unit] +Description=Open Sound System v4 +Before=sound.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/soundon +ExecStop=/usr/bin/soundoff + +[Install] +WantedBy=multi-user.target diff --git a/libre/oss-libre/remove-hal.patch b/libre/oss-libre/remove-hal.patch new file mode 100644 index 000000000..27e2ef2de --- /dev/null +++ b/libre/oss-libre/remove-hal.patch @@ -0,0 +1,20 @@ +Date: Tue Aug 2 16:37:31 CEST 2011 +Author: Florian Pritz <bluewind@xinu.at> +This removes all hal dependencies + +References: +http://www.archlinux.org/todo/92/ + +--- usr/lib/oss/build/install_2011-08-02_162647.sh 2011-08-02 16:26:47.000000000 +0200 ++++ usr/lib/oss/build/install.sh 2011-08-02 16:27:13.000000000 +0200 +@@ -336,10 +336,4 @@ + echo "autosave_mixer yes" > $OSSLIBDIR/etc/userdefs + fi + +-# Hal 0.5.0+ hotplug +-mkdir -p /usr/lib/hal/scripts +-ln -sf $OSSLIBDIR/scripts/oss_usb-create-devices /usr/lib/hal/scripts/ +-mkdir -p /usr/share/hal/fdi/policy/20thirdparty/ +-ln -sf $OSSLIBDIR/scripts/90-oss_usb-create-device.fdi /usr/share/hal/fdi/policy/20thirdparty/ +- + exit 0 diff --git a/libre/oss-libre/rm-init-scripts.patch b/libre/oss-libre/rm-init-scripts.patch new file mode 100644 index 000000000..981ff605f --- /dev/null +++ b/libre/oss-libre/rm-init-scripts.patch @@ -0,0 +1,52 @@ +--- usr/lib/oss/build/install.sh.orig 2008-09-25 11:41:47.180167692 -0300 ++++ usr/lib/oss/build/install.sh 2008-09-25 11:41:47.180167692 -0300 +@@ -290,38 +290,6 @@ + echo + fi + +-if ! test -d /etc/init.d +-then +- mkdir /etc/init.d +-fi +- +-rm -f /etc/init.d/oss /etc/rc.d/rc3.d/S89oss /etc/rc3.d/S89oss +-cp -f $OSSLIBDIR/etc/S89oss /etc/init.d/oss +- +-chmod 744 /etc/init.d/oss +- +-if test -x /sbin/chkconfig +-then +- /sbin/chkconfig oss on > /dev/null 2>&1 +-else +- if test -x /usr/sbin/update-rc.d +- then +- /usr/sbin/update-rc.d oss defaults > /dev/null 2>&1 +- else +- if test -d etc/rc.d/rc3.d +- then +- rm -f /etc/rc.d/rc3.d/S89oss +- ln -s /etc/init.d/oss /etc/rc.d/rc3.d/S89oss +- else +- if test -d /etc/rc3.d +- then +- rm -f /etc/rc3.d/S89oss +- ln -s /etc/init.d/oss /etc/rc3.d/S89oss +- fi +- fi +- fi +-fi +- + # Install ALSA interface module (Cuckoo) + #(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1 + #if (cd $OSSLIBDIR/cuckoo && make install) > /var/log/cuckoo.log 2>&1 +--- usr/lib/oss/scripts/restore_drv.sh.orig 2008-09-25 11:41:47.210168487 -0300 ++++ usr/lib/oss/scripts/restore_drv.sh 2008-09-25 11:41:47.210168487 -0300 +@@ -18,8 +18,6 @@ + fi + fi + +-rm -f /etc/init.d/oss +- + if ! test -d /lib/modules/`uname -r`/kernel/sound + then + if test -f /lib/modules/`uname -r`/sound-preoss.tar.bz2 diff --git a/libre/oss-libre/soundon.patch b/libre/oss-libre/soundon.patch new file mode 100644 index 000000000..4702b8680 --- /dev/null +++ b/libre/oss-libre/soundon.patch @@ -0,0 +1,28 @@ +--- usr/sbin/soundon.old 2009-09-04 06:35:26.000000000 +0100 ++++ usr/sbin/soundon 2009-11-15 13:59:53.000000000 +0000 +@@ -255,7 +255,10 @@ + then + if test "`uname -m` " = "x86_64 " + then +- ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2 ++ # Fix for compatibility with Arch's directory structure ++ # Not that we use it, there is no $OSSLIBDIR/.libsalsa_installed ++ ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib/libasound.so.2 ++ #ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2 + #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64 + else + if test -s /lib/libasound.so.2 +@@ -278,8 +281,11 @@ + then + if test "`uname -m` " = "x86_64 " + then +- ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64 +- ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64 ++ # Fix for compatibility with Arch's directory structure ++ ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib ++ ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib ++ #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64 ++ #ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64 + else + if test -s /lib/libasound.so.2 + then diff --git a/libre/parabola-keyring/PKGBUILD b/libre/parabola-keyring/PKGBUILD index d5a1e561d..af130b5c0 100644 --- a/libre/parabola-keyring/PKGBUILD +++ b/libre/parabola-keyring/PKGBUILD @@ -1,19 +1,18 @@ # Maintainer: André Silva <emulatorman@lavabit.com> pkgname=parabola-keyring -pkgver=$(LC_ALL=C date -u +%Y%m%d) +pkgver=$(LC_ALL=C date -u +%Y%m%d).1 pkgrel=1 pkgdesc='Parabola GNU/Linux-libre PGP keyring' arch=('any') url='https://projects.parabolagnulinux.org/hackers.git/' license=('GPL') install="${pkgname}.install" -source=("http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz" - "http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz.sig") +source=(http://repo.parabolagnulinux.org/other/parabola-keyring-20130221.tar.gz{,.sig}) package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "${srcdir}/${pkgname}-"* make PREFIX=/usr DESTDIR=${pkgdir} install } -md5sums=('ad747cf1f710e5962aa6b0931fcb580f' - 'c1030ca1c960d2ee6cfe11d798a7b471') +md5sums=('007c35459478f86484f66323bf90b1e0' + 'SKIP') diff --git a/libre/python2-bencode/PKGBUILD b/libre/python2-bencode/PKGBUILD new file mode 100644 index 000000000..762d55cad --- /dev/null +++ b/libre/python2-bencode/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> + +_pkgname=bencode +pkgname=python2-bencode +pkgver=1.0 +pkgdesc="BitTorrent bencode module as leight-weight, standalone package" +url="http://pypi.python.org/pypi/BitTorrent-bencode" +license=('custom:BitTorrent Open Source License') + +pkgrel=1 +arch=('any') +depends=('python2') +makedepends=('python2-distribute') +source=(http://pypi.python.org/packages/source/${_pkgname:0:1}/${_pkgname}/${_pkgname}-${pkgver}.tar.gz + bittorrent-osl.txt) + +package(){ + cd "$srcdir/$_pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" --optimize=1 + install -Dm644 "$srcdir"/bittorrent-osl.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} + +md5sums=('400dd42ff346eb7db91245403f8f2b7b' + '016d959cb9f7a319e48d9699c4ef2f42') diff --git a/libre/python2-bencode/bittorrent-osl.txt b/libre/python2-bencode/bittorrent-osl.txt new file mode 100644 index 000000000..f0625f45c --- /dev/null +++ b/libre/python2-bencode/bittorrent-osl.txt @@ -0,0 +1,510 @@ +BitTorrent Open Source License + +Version 1.1 + +This BitTorrent Open Source License (the "License") applies to the +BitTorrent client and related software products as well as any updates +or maintenance releases of that software ("BitTorrent Products") that +are distributed by BitTorrent, Inc. ("Licensor"). Any BitTorrent +Product licensed pursuant to this License is a Licensed +Product. Licensed Product, in its entirety, is protected by +U.S. copyright law. This License identifies the terms under which you +may use, copy, distribute or modify Licensed Product. + +Preamble + +This Preamble is intended to describe, in plain English, the nature +and scope of this License. However, this Preamble is not a part of +this license. The legal effect of this License is dependent only upon +the terms of the License and not this Preamble. + +This License complies with the Open Source Definition and is derived +from the Jabber Open Source License 1.0 (the "JOSL"), which has been +approved by Open Source Initiative. Sections 4(c) and 4(f)(iii) from +the JOSL have been deleted. + +This License provides that: + +1. You may use or give away the Licensed Product, alone or as a +component of an aggregate software distribution containing programs +from several different sources. No royalty or other fee is required. + +2. Both Source Code and executable versions of the Licensed Product, +including Modifications made by previous Contributors, are available +for your use. (The terms "Licensed Product," "Modifications," +"Contributors" and "Source Code" are defined in the License.) + +3. You are allowed to make Modifications to the Licensed Product, and +you can create Derivative Works from it. (The term "Derivative Works" +is defined in the License.) + +4. By accepting the Licensed Product under the provisions of this +License, you agree that any Modifications you make to the Licensed +Product and then distribute are governed by the provisions of this +License. In particular, you must make the Source Code of your +Modifications available to others free of charge and without a +royalty. + +5. You may sell, accept donations or otherwise receive compensation +for executable versions of a Licensed Product, without paying a +royalty or other fee to the Licensor or any Contributor, provided that +such executable versions contain your or another Contributor?s +material Modifications. For the avoidance of doubt, to the extent your +executable version of a Licensed Product does not contain your or +another Contributor?s material Modifications, you may not sell, accept +donations or otherwise receive compensation for such executable. + +You may use the Licensed Product for any purpose, but the Licensor is +not providing you any warranty whatsoever, nor is the Licensor +accepting any liability in the event that the Licensed Product doesn't +work properly or causes you any injury or damages. + +6. If you sublicense the Licensed Product or Derivative Works, you may +charge fees for warranty or support, or for accepting indemnity or +liability obligations to your customers. You cannot charge for, sell, +accept donations or otherwise receive compensation for the Source +Code. + +7. If you assert any patent claims against the Licensor relating to +the Licensed Product, or if you breach any terms of the License, your +rights to the Licensed Product under this License automatically +terminate. + +You may use this License to distribute your own Derivative Works, in +which case the provisions of this License will apply to your +Derivative Works just as they do to the original Licensed Product. + +Alternatively, you may distribute your Derivative Works under any +other OSI-approved Open Source license, or under a proprietary license +of your choice. If you use any license other than this License, +however, you must continue to fulfill the requirements of this License +(including the provisions relating to publishing the Source Code) for +those portions of your Derivative Works that consist of the Licensed +Product, including the files containing Modifications. + +New versions of this License may be published from time to time in +connection with new versions of a Licensed Product or otherwise. You +may choose to continue to use the license terms in this version of the +License for the Licensed Product that was originally licensed +hereunder, however, the new versions of this License will at all times +apply to new versions of the Licensed Product released by Licensor +after the release of the new version of this License. Only the +Licensor has the right to change the License terms as they apply to +the Licensed Product. + +This License relies on precise definitions for certain terms. Those +terms are defined when they are first used, and the definitions are +repeated for your convenience in a Glossary at the end of the License. + +License Terms + +1. Grant of License From Licensor. Subject to the terms and conditions +of this License, Licensor hereby grants you a world-wide, +royalty-free, non-exclusive license, subject to third party +intellectual property claims, to do the following: + +a. Use, reproduce, modify, display, perform, sublicense and distribute +any Modifications created by a Contributor or portions thereof, in +both Source Code or as an executable program, either on an unmodified +basis or as part of Derivative Works. + +b. Under claims of patents now or hereafter owned or controlled by +Contributor, to make, use, sell, offer for sale, have made, and/or +otherwise dispose of Modifications or portions thereof, but solely to +the extent that any such claim is necessary to enable you to make, +use, sell, offer for sale, have made, and/or otherwise dispose of +Modifications or portions thereof or Derivative Works thereof. + +2. Grant of License to Modifications From Contributor. "Modifications" +means any additions to or deletions from the substance or structure of +(i) a file containing a Licensed Product, or (ii) any new file that +contains any part of a Licensed Product. Hereinafter in this License, +the term "Licensed Product" shall include all previous Modifications +that you receive from any Contributor. Subject to the terms and +conditions of this License, By application of the provisions in +Section 4(a) below, each person or entity who created or contributed +to the creation of, and distributed, a Modification (a "Contributor") +hereby grants you a world-wide, royalty-free, non-exclusive license, +subject to third party intellectual property claims, to do the +following: + +a. Use, reproduce, modify, display, perform, sublicense and distribute +any Modifications created by such Contributor or portions thereof, in +both Source Code or as an executable program, either on an unmodified +basis or as part of Derivative Works. + +b. Under claims of patents now or hereafter owned or controlled by +Contributor, to make, use, sell, offer for sale, have made, and/or +otherwise dispose of Modifications or portions thereof, but solely to +the extent that any such claim is necessary to enable you to make, +use, sell, offer for sale, have made, and/or otherwise dispose of +Modifications or portions thereof or Derivative Works thereof. + +3. Exclusions From License Grant. Nothing in this License shall be +deemed to grant any rights to trademarks, copyrights, patents, trade +secrets or any other intellectual property of Licensor or any +Contributor except as expressly stated herein. No patent license is +granted separate from the Licensed Product, for code that you delete +from the Licensed Product, or for combinations of the Licensed Product +with other software or hardware. No right is granted to the trademarks +of Licensor or any Contributor even if such marks are included in the +Licensed Product. Nothing in this License shall be interpreted to +prohibit Licensor from licensing under different terms from this +License any code that Licensor otherwise would have a right to +license. As an express condition for your use of the Licensed Product, +you hereby agree that you will not, without the prior written consent +of Licensor, use any trademarks, copyrights, patents, trade secrets or +any other intellectual property of Licensor or any Contributor except +as expressly stated herein. For the avoidance of doubt and without +limiting the foregoing, you hereby agree that you will not use or +display any trademark of Licensor or any Contributor in any domain +name, directory filepath, advertisement, link or other reference to +you in any manner or in any media. + +4. Your Obligations Regarding Distribution. + +a. Application of This License to Your Modifications. As an express +condition for your use of the Licensed Product, you hereby agree that +any Modifications that you create or to which you contribute, and +which you distribute, are governed by the terms of this License +including, without limitation, Section 2. Any Modifications that you +create or to which you contribute may be distributed only under the +terms of this License or a future version of this License released +under Section 7. You must include a copy of this License with every +copy of the Modifications you distribute. You agree not to offer or +impose any terms on any Source Code or executable version of the +Licensed Product or Modifications that alter or restrict the +applicable version of this License or the recipients' rights +hereunder. However, you may include an additional document offering +the additional rights described in Section 4(d). + +b. Availability of Source Code. You must make available, without +charge, under the terms of this License, the Source Code of the +Licensed Product and any Modifications that you distribute, either on +the same media as you distribute any executable or other form of the +Licensed Product, or via a mechanism generally accepted in the +software development community for the electronic transfer of data (an +"Electronic Distribution Mechanism"). The Source Code for any version +of Licensed Product or Modifications that you distribute must remain +available for as long as any executable or other form of the Licensed +Product is distributed by you. You are responsible for ensuring that +the Source Code version remains available even if the Electronic +Distribution Mechanism is maintained by a third party. + +c. Intellectual Property Matters. + +i. Third Party Claims. If you have knowledge that a license to a third +party's intellectual property right is required to exercise the rights +granted by this License, you must include a text file with the Source +Code distribution titled "LEGAL" that describes the claim and the +party making the claim in sufficient detail that a recipient will know +whom to contact. If you obtain such knowledge after you make any +Modifications available as described in Section 4(b), you shall +promptly modify the LEGAL file in all copies you make available +thereafter and shall take other steps (such as notifying appropriate +mailing lists or newsgroups) reasonably calculated to inform those who +received the Licensed Product from you that new knowledge has been +obtained. + +ii. Contributor APIs. If your Modifications include an application +programming interface ("API") and you have knowledge of patent +licenses that are reasonably necessary to implement that API, you must +also include this information in the LEGAL file. + +iii. Representations. You represent that, except as disclosed pursuant +to 4(c)(i) above, you believe that any Modifications you distribute +are your original creations and that you have sufficient rights to +grant the rights conveyed by this License. + +d. Required Notices. You must duplicate this License in any +documentation you provide along with the Source Code of any +Modifications you create or to which you contribute, and which you +distribute, wherever you describe recipients' rights relating to +Licensed Product. You must duplicate the notice contained in Exhibit A +(the "Notice") in each file of the Source Code of any copy you +distribute of the Licensed Product. If you created a Modification, you +may add your name as a Contributor to the Notice. If it is not +possible to put the Notice in a particular Source Code file due to its +structure, then you must include such Notice in a location (such as a +relevant directory file) where a user would be likely to look for such +a notice. You may choose to offer, and charge a fee for, warranty, +support, indemnity or liability obligations to one or more recipients +of Licensed Product. However, you may do so only on your own behalf, +and not on behalf of the Licensor or any Contributor. You must make it +clear that any such warranty, support, indemnity or liability +obligation is offered by you alone, and you hereby agree to indemnify +the Licensor and every Contributor for any liability incurred by the +Licensor or such Contributor as a result of warranty, support, +indemnity or liability terms you offer. + +e. Distribution of Executable Versions. You may distribute Licensed +Product as an executable program under a license of your choice that +may contain terms different from this License provided (i) you have +satisfied the requirements of Sections 4(a) through 4(d) for that +distribution, (ii) you include a conspicuous notice in the executable +version, related documentation and collateral materials stating that +the Source Code version of the Licensed Product is available under the +terms of this License, including a description of how and where you +have fulfilled the obligations of Section 4(b), and (iii) you make it +clear that any terms that differ from this License are offered by you +alone, not by Licensor or any Contributor. You hereby agree to +indemnify the Licensor and every Contributor for any liability +incurred by Licensor or such Contributor as a result of any terms you +offer. + +f. Distribution of Derivative Works. You may create Derivative Works +(e.g., combinations of some or all of the Licensed Product with other +code) and distribute the Derivative Works as products under any other +license you select, with the proviso that the requirements of this +License are fulfilled for those portions of the Derivative Works that +consist of the Licensed Product or any Modifications thereto. + +g. Compensation for Distribution of Executable Versions of Licensed +Products, Modifications or Derivative Works. Notwithstanding any +provision of this License to the contrary, by distributing, selling, +licensing, sublicensing or otherwise making available any Licensed +Product, or Modification or Derivative Work thereof, you and Licensor +hereby acknowledge and agree that you may sell, license or sublicense +for a fee, accept donations or otherwise receive compensation for +executable versions of a Licensed Product, without paying a royalty or +other fee to the Licensor or any other Contributor, provided that such +executable versions (i) contain your or another Contributor?s material +Modifications, or (ii) are otherwise material Derivative Works. For +purposes of this License, an executable version of the Licensed +Product will be deemed to contain a material Modification, or will +otherwise be deemed a material Derivative Work, if (a) the Licensed +Product is modified with your own or a third party?s software programs +or other code, and/or the Licensed Product is combined with a number +of your own or a third party?s software programs or code, +respectively, and (b) such software programs or code add or contribute +material value, functionality or features to the License Product. For +the avoidance of doubt, to the extent your executable version of a +Licensed Product does not contain your or another Contributor?s +material Modifications or is otherwise not a material Derivative Work, +in each case as contemplated herein, you may not sell, license or +sublicense for a fee, accept donations or otherwise receive +compensation for such executable. Additionally, without limitation of +the foregoing and notwithstanding any provision of this License to the +contrary, you cannot charge for, sell, license or sublicense for a +fee, accept donations or otherwise receive compensation for the Source +Code. + +5. Inability to Comply Due to Statute or Regulation. If it is +impossible for you to comply with any of the terms of this License +with respect to some or all of the Licensed Product due to statute, +judicial order, or regulation, then you must (i) comply with the terms +of this License to the maximum extent possible, (ii) cite the statute +or regulation that prohibits you from adhering to the License, and +(iii) describe the limitations and the code they affect. Such +description must be included in the LEGAL file described in Section +4(d), and must be included with all distributions of the Source +Code. Except to the extent prohibited by statute or regulation, such +description must be sufficiently detailed for a recipient of ordinary +skill at computer programming to be able to understand it. + +6. Application of This License. This License applies to code to which +Licensor or Contributor has attached the Notice in Exhibit A, which is +incorporated herein by this reference. + +7. Versions of This License. + +a. New Versions. Licensor may publish from time to time revised and/or +new versions of the License. + +b. Effect of New Versions. Once Licensed Product has been published +under a particular version of the License, you may always continue to +use it under the terms of that version, provided that any such license +be in full force and effect at the time, and has not been revoked or +otherwise terminated. You may also choose to use such Licensed Product +under the terms of any subsequent version (but not any prior version) +of the License published by Licensor. No one other than Licensor has +the right to modify the terms applicable to Licensed Product created +under this License. + +c. Derivative Works of this License. If you create or use a modified +version of this License, which you may do only in order to apply it to +software that is not already a Licensed Product under this License, +you must rename your license so that it is not confusingly similar to +this License, and must make it clear that your license contains terms +that differ from this License. In so naming your license, you may not +use any trademark of Licensor or any Contributor. + +8. Disclaimer of Warranty. LICENSED PRODUCT IS PROVIDED UNDER THIS +LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE +LICENSED PRODUCT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A +PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE +QUALITY AND PERFORMANCE OF THE LICENSED PRODUCT IS WITH YOU. SHOULD +LICENSED PRODUCT PROVE DEFECTIVE IN ANY RESPECT, YOU (AND NOT THE +LICENSOR OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY +SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY +CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF LICENSED +PRODUCT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +9. Termination. + +a. Automatic Termination Upon Breach. This license and the rights +granted hereunder will terminate automatically if you fail to comply +with the terms herein and fail to cure such breach within ten (10) +days of being notified of the breach by the Licensor. For purposes of +this provision, proof of delivery via email to the address listed in +the ?WHOIS? database of the registrar for any website through which +you distribute or market any Licensed Product, or to any alternate +email address which you designate in writing to the Licensor, shall +constitute sufficient notification. All sublicenses to the Licensed +Product that are properly granted shall survive any termination of +this license so long as they continue to complye with the terms of +this License. Provisions that, by their nature, must remain in effect +beyond the termination of this License, shall survive. + +b. Termination Upon Assertion of Patent Infringement. If you initiate +litigation by asserting a patent infringement claim (excluding +declaratory judgment actions) against Licensor or a Contributor +(Licensor or Contributor against whom you file such an action is +referred to herein as Respondent) alleging that Licensed Product +directly or indirectly infringes any patent, then any and all rights +granted by such Respondent to you under Sections 1 or 2 of this +License shall terminate prospectively upon sixty (60) days notice from +Respondent (the "Notice Period") unless within that Notice Period you +either agree in writing (i) to pay Respondent a mutually agreeable +reasonably royalty for your past or future use of Licensed Product +made by such Respondent, or (ii) withdraw your litigation claim with +respect to Licensed Product against such Respondent. If within said +Notice Period a reasonable royalty and payment arrangement are not +mutually agreed upon in writing by the parties or the litigation claim +is not withdrawn, the rights granted by Licensor to you under Sections +1 and 2 automatically terminate at the expiration of said Notice +Period. + +c. Reasonable Value of This License. If you assert a patent +infringement claim against Respondent alleging that Licensed Product +directly or indirectly infringes any patent where such claim is +resolved (such as by license or settlement) prior to the initiation of +patent infringement litigation, then the reasonable value of the +licenses granted by said Respondent under Sections 1 and 2 shall be +taken into account in determining the amount or value of any payment +or license. + +d. No Retroactive Effect of Termination. In the event of termination +under Sections 9(a) or 9(b) above, all end user license agreements +(excluding licenses to distributors and resellers) that have been +validly granted by you or any distributor hereunder prior to +termination shall survive termination. + +10. Limitation of Liability. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL +THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, +SHALL THE LICENSOR, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF LICENSED +PRODUCT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY +PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF +GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND +ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE +BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY +RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW +PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO +THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +11. Responsibility for Claims. As between Licensor and Contributors, +each party is responsible for claims and damages arising, directly or +indirectly, out of its utilization of rights under this License. You +agree to work with Licensor and Contributors to distribute such +responsibility on an equitable basis. Nothing herein is intended or +shall be deemed to constitute any admission of liability. + +12. U.S. Government End Users. The Licensed Product is a commercial +item, as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), +consisting of commercial computer software and commercial computer +software documentation, as such terms are used in 48 C.F.R. 12.212 +(Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 +C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government +End Users acquire Licensed Product with only those rights set forth +herein. + +13. Miscellaneous. This License represents the complete agreement +concerning the subject matter hereof. If any provision of this License +is held to be unenforceable, such provision shall be reformed only to +the extent necessary to make it enforceable. This License shall be +governed by California law provisions (except to the extent applicable +law, if any, provides otherwise), excluding its conflict-of-law +provisions. You expressly agree that in any litigation relating to +this license the losing party shall be responsible for costs +including, without limitation, court costs and reasonable attorneys +fees and expenses. The application of the United Nations Convention on +Contracts for the International Sale of Goods is expressly +excluded. Any law or regulation that provides that the language of a +contract shall be construed against the drafter shall not apply to +this License. + +14. Definition of You in This License. You throughout this License, +whether in upper or lower case, means an individual or a legal entity +exercising rights under, and complying with all of the terms of, this +License or a future version of this License issued under Section +7. For legal entities, you includes any entity that controls, is +controlled by, is under common control with, or affiliated with, +you. For purposes of this definition, control means (i) the power, +direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. You are responsible for advising any +affiliated entity of the terms of this License, and that any rights or +privileges derived from or obtained by way of this License are subject +to the restrictions outlined herein. + +15. Glossary. All defined terms in this License that are used in more +than one Section of this License are repeated here, in alphabetical +order, for the convenience of the reader. The Section of this License +in which each defined term is first used is shown in parentheses. + +Contributor: Each person or entity who created or contributed to the +creation of, and distributed, a Modification. (See Section 2) + +Derivative Works: That term as used in this License is defined under +U.S. copyright law. (See Section 1(b)) + +License: This BitTorrent Open Source License. (See first paragraph of License) + +Licensed Product: Any BitTorrent Product licensed pursuant to this +License. The term "Licensed Product" includes all previous +Modifications from any Contributor that you receive. (See first +paragraph of License and Section 2) + +Licensor: BitTorrent, Inc. (See first paragraph of License) + +Modifications: Any additions to or deletions from the substance or +structure of (i) a file containing Licensed Product, or (ii) any new +file that contains any part of Licensed Product. (See Section 2) + +Notice: The notice contained in Exhibit A. (See Section 4(e)) + +Source Code: The preferred form for making modifications to the +Licensed Product, including all modules contained therein, plus any +associated interface definition files, scripts used to control +compilation and installation of an executable program, or a list of +differential comparisons against the Source Code of the Licensed +Product. (See Section 1(a)) + +You: This term is defined in Section 14 of this License. + +EXHIBIT A + +The Notice below must appear in each file of the Source Code of any +copy you distribute of the Licensed Product or any +hereto. Contributors to any Modifications may add their own copyright +notices to identify their own contributions. + +License: + +The contents of this file are subject to the BitTorrent Open Source +License Version 1.0 (the License). You may not copy or use this file, +in either source code or executable form, except in compliance with +the License. You may obtain a copy of the License at +http://www.bittorrent.com/license/. + +Software distributed under the License is distributed on an AS IS +basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +the License for the specific language governing rights and limitations +under the License. + +BitTorrent, Inc. diff --git a/libre/python2-cssmin-fredj/PKGBUILD b/libre/python2-cssmin-fredj/PKGBUILD index 0f155de89..ba21b8fc4 100644 --- a/libre/python2-cssmin-fredj/PKGBUILD +++ b/libre/python2-cssmin-fredj/PKGBUILD @@ -4,14 +4,13 @@ _pkgname=python2-cssmin pkgname=python2-cssmin-fredj pkgver=0.1.4.git4 # 0.1.4.git<number of commits after 0.1.4> _gitver='commit=3422b9962c5a6c2adb9597f418131d73e991c9b6' -pkgdesc="Provides a country field for Django models" -license=('custom:MIT') -url="http://bitbucket.org/smileychris/django-countries/" - +pkgdesc="A Python port of the YUI CSS compression algorithm" +license=('custom:MIT' 'custom:BSD3') +url="https://github.com/fredj/cssmin" provides=("$_pkgname=$pkgver") conflicts=("$_pkgname") -pkgrel=1 +pkgrel=2 arch=(any) makedepends=('python2-distribute') diff --git a/libre/python2-jsmin/PKGBUILD b/libre/python2-jsmin/PKGBUILD new file mode 100644 index 000000000..5c7646ec2 --- /dev/null +++ b/libre/python2-jsmin/PKGBUILD @@ -0,0 +1,27 @@ +# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net> + +_pkgname=jsmin +pkgname=python2-jsmin +pkgver=2.0.3 +pkgdesc="JavaScript minifier" +url="https://bitbucket.org/dcs/jsmin" +license=('MIT') + +pkgrel=1 +arch=('any') +depends=('python2') +makedepends=('python2-distribute') +source=(http://pypi.python.org/packages/source/${_pkgname:0:1}/${_pkgname}/${_pkgname}-${pkgver}.tar.gz) + +build() { + cd "$srcdir/$_pkgname-$pkgver" + sed -rn 's/^#\s?//p' jsmin/__init__.py > license.txt +} + +package() { + cd "$srcdir/$_pkgname-$pkgver" + python2 setup.py install --root="$pkgdir" --optimize=1 + install -Dm644 license.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} + +md5sums=('6bdce452c7508d9bd11b133e965fb64e') diff --git a/libre/tomoyo-tools-libre/PKGBUILD b/libre/tomoyo-tools-libre/PKGBUILD new file mode 100644 index 000000000..02a181b55 --- /dev/null +++ b/libre/tomoyo-tools-libre/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 92638 2013-06-10 09:53:54Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Jamie Nguyen <jamie AT tomoyolinux.co.uk> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + +_pkgname=tomoyo-tools +pkgname=tomoyo-tools-libre +_basever=2.5.0 +_timestamp=20130406 +_file=53357 +pkgver=${_basever}.${_timestamp} +pkgrel=1 +pkgdesc='TOMOYO Linux userspace tools for Linux kernels >=3.2 (built for the linux-libre kernel package)' +arch=('i686' 'x86_64' 'mips64el') +url='http://tomoyo.sourceforge.jp' +#url='http://sourceforge.jp/projects/tomoyo/releases/?package_id=9818' +license=('GPL') +depends=('ncurses' 'linux-libre>=3.2') +replaces=${_pkgname} +conflicts=${_pkgname} +provides=${_pkgname}=${pkgver} +install=tomoyo-tools.install +source=("http://sourceforge.jp/frs/redir.php?f=/tomoyo/${_file}/${_pkgname}-${_basever}-${_timestamp}.tar.gz") +md5sums=('8888f83fcb87823d714ff551e8680d0d') + +prepare() { + cd "${srcdir}/${_pkgname}" + sed -i \ + -e 's|usr/sbin|usr/bin|g' \ + -e 's|sbin|usr/bin|g' \ + usr_lib_tomoyo/init_policy.c +} + +build() { + cd "${srcdir}/${_pkgname}" + make USRSBINDIR=/usr/bin SBINDIR=/usr/bin +} + +package() { + cd "${srcdir}/${_pkgname}" + make USRSBINDIR=/usr/bin SBINDIR=/usr/bin INSTALLDIR="${pkgdir}" install +} diff --git a/libre/tomoyo-tools-libre/tomoyo-tools.install b/libre/tomoyo-tools-libre/tomoyo-tools.install new file mode 100644 index 000000000..c23df1212 --- /dev/null +++ b/libre/tomoyo-tools-libre/tomoyo-tools.install @@ -0,0 +1,11 @@ +post_install () { + echo + echo " * To enable TOMOYO Linux, append 'security=tomoyo TOMOYO_trigger=/usr/bin/init' to the kernel" + echo " boot options and initialize policy with this command:" + echo " /usr/lib/tomoyo/init_policy" + echo +} + +post_upgrade () { + post_install $1 +} diff --git a/libre/tp_smapi-libre/PKGBUILD b/libre/tp_smapi-libre/PKGBUILD index be76b876e..d1f32979d 100644 --- a/libre/tp_smapi-libre/PKGBUILD +++ b/libre/tp_smapi-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 92980 2013-06-21 09:45:26Z tpowa $ +# $Id: PKGBUILD 93220 2013-06-28 18:55:23Z foutrelis $ # Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> # Contributor: xduugu # Contributor: nh2 @@ -12,7 +12,7 @@ _pkgname=tp_smapi pkgname=tp_smapi-libre pkgver=0.41 -pkgrel=24 +pkgrel=25 pkgdesc="Modules for ThinkPad's SMAPI functionality (built for the linux-libre kernel package)" arch=('i686' 'x86_64' 'mips64el') url='https://github.com/evgeni/tp_smapi' diff --git a/libre/vhba-module-libre/PKGBUILD b/libre/vhba-module-libre/PKGBUILD index 780c957b8..caa3016d1 100644 --- a/libre/vhba-module-libre/PKGBUILD +++ b/libre/vhba-module-libre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 92982 2013-06-21 09:46:01Z tpowa $ +# $Id: PKGBUILD 93222 2013-06-28 18:56:50Z foutrelis $ # Maintainer: Ray Rashif <schiv@archlinux.org> # Contributor: Mateusz Herych <heniekk@gmail.com> # Contributor: Charles Lindsay <charles@chaoslizard.org> @@ -8,7 +8,7 @@ _pkgname=vhba-module pkgname=vhba-module-libre pkgver=20130607 _extramodules=extramodules-3.9-LIBRE -pkgrel=3 +pkgrel=4 pkgdesc="Kernel module that emulates SCSI devices (built for the linux-libre kernel package)" arch=('i686' 'x86_64' 'mips64el') url="http://cdemu.sourceforge.net/" diff --git a/libre/virtualbox-libre-modules/PKGBUILD b/libre/virtualbox-libre-modules/PKGBUILD index c6d47275d..5e11fd6df 100644 --- a/libre/virtualbox-libre-modules/PKGBUILD +++ b/libre/virtualbox-libre-modules/PKGBUILD @@ -1,13 +1,13 @@ -# $Id: PKGBUILD 93048 2013-06-23 10:27:06Z bpiotrowski $ +# $Id: PKGBUILD 93205 2013-06-28 17:53:08Z foutrelis $ # Maintainer: Ionut Biru <ibiru@archlinux.org> -# Maintainer: Sébastien Luttringer <seblu@archlinux.org> +# Maintainer: Sébastien Luttringer # Maintainer (Parabola): Jorge López <jorginho@lavabit.com> # Maintainer (Parabola): André Silva <emulatorman@lavabit.com> pkgbase=virtualbox-libre-modules pkgname=('virtualbox-libre-host-modules' 'virtualbox-libre-guest-modules') pkgver=4.2.14 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL') @@ -19,6 +19,9 @@ makedepends=('linux-libre' 'sed' 'bc') +# remember to also adjust the .install files and the package deps below +_extramodules=extramodules-3.9-LIBRE + build() { _kernmaj=$(expac -Q '%v' linux-libre|sed -r 's/([[:digit:]]+\.[[:digit:]]+).*/\1/') _kernver=$(< /usr/lib/modules/extramodules-$_kernmaj-LIBRE/version) diff --git a/libre/xarchiver-libre/PKGBUILD b/libre/xarchiver-libre/PKGBUILD index 5241ea5e8..0d3f55edc 100644 --- a/libre/xarchiver-libre/PKGBUILD +++ b/libre/xarchiver-libre/PKGBUILD @@ -5,7 +5,7 @@ _pkgname=xarchiver pkgname=xarchiver-libre pkgver=0.5.2 -pkgrel=5 +pkgrel=5.1 pkgdesc="GTK+ frontend to various command line archivers" arch=('i686' 'x86_64' 'mips64el') url="http://xarchiver.sourceforge.net" @@ -21,7 +21,7 @@ optdepends=('tar: TAR support' 'bzip2: BZIP2 support' 'zip: ZIP support' 'unzip: ZIP support' - 'ununrar: RAR support' + 'unar: RAR support' 'p7zip: 7z support' 'arj: ARJ support' 'lha: LHA support' diff --git a/libre/xbmc-libre/ChangeLog b/libre/xbmc-libre/ChangeLog new file mode 100644 index 000000000..66ae97e3b --- /dev/null +++ b/libre/xbmc-libre/ChangeLog @@ -0,0 +1,69 @@ +2010-04-10 BlackEagle <ike DOT devolder AT gmail DOT com> + * 9.11-15 : + Made it back compliant with FHS ( thx pierre for pointing that out ) + namcap checked and modified to fit its needs as far as it was possible + +2009-03-07 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-10 : + Try and fix some autoconf issues (thanks Gentoo ebuild). + +2009-02-08 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-9 : + Replace some libtool 'ltmain.sh' scripts with the one from libtool + installed with Arch. + Make sure XBMCTex isn't linked to OpenGL libraries or it will segfault + on systems using the nvidia driver. + +2009-01-30 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-8 : + Fix some include's so that gcc 4.3.x is happy, shouldn't complain about + undefined '::realloc' anymore. + Remove Mac OS X specific files. + +2009-01-25 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-7 : + Moved libcdio, pmount, smbclient and unrar to optdepends. + Removed unneeded dependency on sdl_gfx. + Removed dependency on libpng as sdl_image depends on it. + +2008-12-14 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-6 : + Added libpng to dependency list. + Added gawk to dependency list. + Removed '--disable-mms' and '--enable-halmount' configure flags as they + are not mentioned as supported in the configure script. + +2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-5 : + Added libmad to the dependency list. + Streamripper 1.64.0+ does not include tre anymore, removed streamripper + and added tre instead. + Removed subversion from makedepends. + +2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-4 : + Fix permissions for some more scripts, ffmpeg/texi2doc.pl should not + fail any longer. + +2008-12-05 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-3 : + Added lirc to the optdepends array. + +2008-11-26 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-2 : + Added install file which informs users that a display depth of at + least 24-bit is required. + +2008-11-17 [vEX] <niechift.dot.vex.at.gmail.dot.com> + + * 8.10-1 : + Initial package, based on previous work by Zeqadious. diff --git a/libre/xbmc-libre/PKGBUILD b/libre/xbmc-libre/PKGBUILD new file mode 100644 index 000000000..37fae91a9 --- /dev/null +++ b/libre/xbmc-libre/PKGBUILD @@ -0,0 +1,116 @@ +# $Id: PKGBUILD 92439 2013-06-05 11:42:01Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Brad Fanella <bradfanella@archlinux.us> +# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com> +# Contributor: Zeqadious <zeqadious.at.gmail.dot.com> +# Contributor: BlackIkeEagle < ike DOT devolder AT gmail DOT com > + +_prefix=/usr + +_pkgname=xbmc +pkgname=xbmc-libre +pkgver=12.2 +pkgrel=4.1 +pkgdesc="A software media player and entertainment hub for digital media, with libarchive recommendation" +arch=('i686' 'x86_64') +url="http://xbmc.org" +license=('GPL' 'custom') +depends=('libpulse' 'hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' + 'libpng' 'libcdio' 'yajl' 'libmariadbclient' 'libjpeg-turbo' 'libsamplerate' + 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' 'python2' + 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'mesa-demos' + 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez-libs' 'glu' + 'tinyxml' 'taglib') +makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libvdpau' 'libcec' + 'udisks' 'upower' 'mesa' 'doxygen' 'swig' 'java-environment') +optdepends=('libcec: support for Pulse-Eight USB-CEC adapter' + 'pulseaudio: pulseaudio support' + 'lirc: remote controller support' + 'udisks: automount external drives' + 'upower: used to trigger suspend functionality' + 'libarchive: access compressed files without unpacking them' + 'xorg-xinit: autostart xbmc') +install="${_pkgname}.install" +replaces=$_pkgname +conflicts=$_pkgname +provides=$_pkgname=$pkgver +source=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz" + "xbmc.service") +md5sums=('489f3877decae4e265ece54f9eaef0ba' + '76fae229ebc3bcfaab7e7f27e4fb51f5') + +build() { + cd "${srcdir}/xbmc-$pkgver" + + # fix lsb_release dependency + sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp + sed -i -e 's:#include <libsmbclient.h>:#include <samba-4.0/libsmbclient.h>:' xbmc/filesystem/{SmbFile,SMBDirectory}.cpp + + # Bootstrapping XBMC + ./bootstrap + + # Configuring XBMC + export PYTHON_VERSION=2 # external python v2 + ./configure --prefix=$_prefix --exec-prefix=$_prefix \ + --disable-debug \ + --enable-optimizations \ + --enable-gl \ + --enable-sdl \ + --enable-vaapi \ + --enable-vdpau \ + --enable-xvba \ + --enable-joystick \ + --enable-xrandr \ + --enable-rsxs \ + --enable-projectm \ + --enable-x11 \ + --enable-pulse \ + --enable-rtmp \ + --enable-samba \ + --enable-nfs \ + --enable-afpclient \ + --enable-airplay \ + --enable-airtunes \ + --enable-ffmpeg-libvorbis \ + --enable-dvdcss \ + --disable-hal \ + --enable-avahi \ + --enable-webserver \ + --enable-optical-drive \ + --enable-libbluray \ + --enable-texturepacker \ + --enable-udev \ + --enable-libusb \ + --enable-libcec \ + --enable-external-libraries \ + --disable-external-ffmpeg + # Now (finally) build + make +} + +package() { + cd "${srcdir}/xbmc-$pkgver" + # Running make install + make DESTDIR="${pkgdir}" install + + # run feh with python2 + sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc + + # lsb_release fix + sed -i -e 's/which lsb_release &> \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc" + sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc" + + # Tools + install -D -m 0755 "${srcdir}/xbmc-$pkgver/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr" + install -D -m 0755 "${srcdir}/xbmc-$pkgver/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/" + + # Licenses + install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${_pkgname}" + for licensef in LICENSE.GPL copying.txt; do + mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${_pkgname}" + done + + # systemd stuff + install -Dm0644 $srcdir/xbmc.service $pkgdir/usr/lib/systemd/system/xbmc.service +} +# vim:set ts=2 sw=2 et: diff --git a/libre/xbmc-libre/xbmc.install b/libre/xbmc-libre/xbmc.install new file mode 100644 index 000000000..b104b33e8 --- /dev/null +++ b/libre/xbmc-libre/xbmc.install @@ -0,0 +1,16 @@ +post_install() { + [[ $(type -p gtk-update-icon-cache) ]] && usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor + [[ $(type -p update-desktop-database) ]] && usr/bin/update-desktop-database -q usr/share/applications + getent group xbmc > /dev/null || groupadd xbmc + getent passwd xbmc > /dev/null || useradd -m -d /var/lib/xbmc -g xbmc xbmc + usermod -a -G xbmc,audio,video,power,network,optical,storage,disk xbmc +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 + echo "You may want to remove xbmc user and group" +} diff --git a/libre/xbmc-libre/xbmc.service b/libre/xbmc-libre/xbmc.service new file mode 100644 index 000000000..431582f1b --- /dev/null +++ b/libre/xbmc-libre/xbmc.service @@ -0,0 +1,13 @@ +[Unit] +Description = Starts instance of XBMC using xinit +After = remote-fs.target + +[Service] +User = xbmc +Group = xbmc +Type = simple +ExecStart = /usr/bin/xinit /usr/bin/xbmc-standalone -- :0 -nolisten tcp +Restart = always + +[Install] +WantedBy = multi-user.target diff --git a/libre/xtensa-unknown-elf-binutils/PKGBUILD b/libre/xtensa-unknown-elf-binutils/PKGBUILD new file mode 100644 index 000000000..deb8d4b0e --- /dev/null +++ b/libre/xtensa-unknown-elf-binutils/PKGBUILD @@ -0,0 +1,68 @@ +# $Id: PKGBUILD 182407 2013-04-10 07:34:20Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> +# Maintainer (Parabola): Márcio Silva <coadde@lavabit.com> + +_pkgname=binutils +_target="xtensa-unknown-elf" + +pkgname=${_target}-binutils +pkgver=2.23.2 +pkgrel=2.4 +pkgdesc="A set of programs to assemble and manipulate binary and object files for the Xtensa architecture" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.gnu.org/software/binutils/" +license=('GPL') +groups=("${_target}-base-devel") +depends=('glibc>=2.17' 'zlib') +options=('!libtool' '!distcc' '!ccache') +install=${_target}-binutils.install +source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.bz2{,.sig} + binutils-2.23.2-texinfo-5.0.patch) +md5sums=('4f8fa651e35ef262edc01d60fb45702e' + 'dfde4428f08d91f309cdcfe92bf28d08' + '34e439ce23213a91e2af872dfbb5094c') + +prepare() { + cd ${srcdir}/binutils-${pkgver} + + # http://sourceware.org/git/?p=binutils.git;a=patch;h=e02bf935 + # http://sourceware.org/git/?p=binutils.git;a=patch;h=935f8542 + patch -p1 -i ${srcdir}/binutils-2.23.2-texinfo-5.0.patch + + # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + mkdir ${srcdir}/binutils-build +} + +build() { + cd ${srcdir}/binutils-build + + ${srcdir}/binutils-${pkgver}/configure --prefix=/usr \ + --target=${_target} \ + --disable-nls \ + --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://labs.parabola.nu/ \ + --enable-shared \ + --disable-werror --disable-multilib + + # check the host environment and makes sure all the necessary tools are available + make configure-host + + make tooldir=/usr +} + +package() { + cd ${srcdir}/binutils-build + make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install + + # Remove unwanted files + rm ${pkgdir}/usr/share/man/man1/${_target}-{dlltool,nlmconv,windres,windmc}* + + # Remove unnecessary files and folders + rm $pkgdir/usr/bin/{a{r,s},nm,obj{copy,dump},ranlib,strip} + rm $pkgdir/usr/lib/libiberty.a + rm $pkgdir/usr/$CHOST/${_target}/include/* && rmdir $pkgdir/usr/$CHOST/${_target}/include + rm $pkgdir/usr/share/info/* && rmdir $pkgdir/usr/share/info +} diff --git a/libre/xtensa-unknown-elf-binutils/binutils-2.23.2-texinfo-5.0.patch b/libre/xtensa-unknown-elf-binutils/binutils-2.23.2-texinfo-5.0.patch new file mode 100644 index 000000000..38dc19fb0 --- /dev/null +++ b/libre/xtensa-unknown-elf-binutils/binutils-2.23.2-texinfo-5.0.patch @@ -0,0 +1,162 @@ +diff --git a/bfd/doc/bfd.texinfo b/bfd/doc/bfd.texinfo +index 45ffa73..3aa3300 100644 +--- a/bfd/doc/bfd.texinfo ++++ b/bfd/doc/bfd.texinfo +@@ -322,7 +324,7 @@ All of BFD lives in one directory. + @printindex cp + + @tex +-% I think something like @colophon should be in texinfo. In the ++% I think something like @@colophon should be in texinfo. In the + % meantime: + \long\def\colophon{\hbox to0pt{}\vfill + \centerline{The body of this manual is set in} +@@ -333,7 +335,7 @@ All of BFD lives in one directory. + \centerline{{\sl\fontname\tensl\/}} + \centerline{are used for emphasis.}\vfill} + \page\colophon +-% Blame: doc@cygnus.com, 28mar91. ++% Blame: doc@@cygnus.com, 28mar91. + @end tex + + @bye +diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi +index 56a0510..fb1802b 100644 +--- a/binutils/doc/binutils.texi ++++ b/binutils/doc/binutils.texi +@@ -148,18 +148,18 @@ in the section entitled ``GNU Free Documentation License''. + * objcopy:: Copy and translate object files + * objdump:: Display information from object files + * ranlib:: Generate index to archive contents +-* readelf:: Display the contents of ELF format files + * size:: List section sizes and total size + * strings:: List printable strings from files + * strip:: Discard symbols +-* elfedit:: Update the ELF header of ELF files + * c++filt:: Filter to demangle encoded C++ symbols + * cxxfilt: c++filt. MS-DOS name for c++filt + * addr2line:: Convert addresses to file and line + * nlmconv:: Converts object code into an NLM +-* windres:: Manipulate Windows resources + * windmc:: Generator for Windows message resources ++* windres:: Manipulate Windows resources + * dlltool:: Create files needed to build and use DLLs ++* readelf:: Display the contents of ELF format files ++* elfedit:: Update the ELF header of ELF files + * Common Options:: Command-line options for all utilities + * Selecting the Target System:: How these utilities determine the target + * Reporting Bugs:: Reporting Bugs +@@ -2907,7 +2907,7 @@ the Info entries for @file{binutils}. + @c man end + @end ignore + +-@node c++filt, addr2line, elfedit, Top ++@node c++filt, addr2line, strip, Top + @chapter c++filt + + @kindex c++filt +@@ -4384,7 +4384,7 @@ equivalent. At least one of the @option{--output-mach}, + + @table @env + +-@itemx --input-mach=@var{machine} ++@item --input-mach=@var{machine} + Set the matching input ELF machine type to @var{machine}. If + @option{--input-mach} isn't specified, it will match any ELF + machine types. +@@ -4392,21 +4392,21 @@ machine types. + The supported ELF machine types are, @var{L1OM}, @var{K1OM} and + @var{x86-64}. + +-@itemx --output-mach=@var{machine} ++@item --output-mach=@var{machine} + Change the ELF machine type in the ELF header to @var{machine}. The + supported ELF machine types are the same as @option{--input-mach}. + +-@itemx --input-type=@var{type} ++@item --input-type=@var{type} + Set the matching input ELF file type to @var{type}. If + @option{--input-type} isn't specified, it will match any ELF file types. + + The supported ELF file types are, @var{rel}, @var{exec} and @var{dyn}. + +-@itemx --output-type=@var{type} ++@item --output-type=@var{type} + Change the ELF file type in the ELF header to @var{type}. The + supported ELF types are the same as @option{--input-type}. + +-@itemx --input-osabi=@var{osabi} ++@item --input-osabi=@var{osabi} + Set the matching input ELF file OSABI to @var{osabi}. If + @option{--input-osabi} isn't specified, it will match any ELF OSABIs. + +@@ -4416,7 +4416,7 @@ The supported ELF OSABIs are, @var{none}, @var{HPUX}, @var{NetBSD}, + @var{FreeBSD}, @var{TRU64}, @var{Modesto}, @var{OpenBSD}, @var{OpenVMS}, + @var{NSK}, @var{AROS} and @var{FenixOS}. + +-@itemx --output-osabi=@var{osabi} ++@item --output-osabi=@var{osabi} + Change the ELF OSABI in the ELF header to @var{osabi}. The + supported ELF OSABI are the same as @option{--input-osabi}. + +diff --git a/ld/ld.texinfo b/ld/ld.texinfo +index c7ae2a5..4777ad5 100644 +--- a/ld/ld.texinfo ++++ b/ld/ld.texinfo +@@ -142,12 +144,12 @@ in the section entitled ``GNU Free Documentation License''. + @ifset ARM + * ARM:: ld and the ARM family + @end ifset +-@ifset HPPA +-* HPPA ELF32:: ld and HPPA 32-bit ELF +-@end ifset + @ifset M68HC11 + * M68HC11/68HC12:: ld and the Motorola 68HC11 and 68HC12 families + @end ifset ++@ifset HPPA ++* HPPA ELF32:: ld and HPPA 32-bit ELF ++@end ifset + @ifset M68K + * M68K:: ld and Motorola 68K family + @end ifset +@@ -6012,6 +6014,9 @@ functionality are not listed. + @ifset I960 + * i960:: @command{ld} and the Intel 960 family + @end ifset ++@ifset M68HC11 ++* M68HC11/68HC12:: @code{ld} and the Motorola 68HC11 and 68HC12 families ++@end ifset + @ifset ARM + * ARM:: @command{ld} and the ARM family + @end ifset +@@ -6027,9 +6032,6 @@ functionality are not listed. + @ifset MSP430 + * MSP430:: @command{ld} and MSP430 + @end ifset +-@ifset M68HC11 +-* M68HC11/68HC12:: @code{ld} and the Motorola 68HC11 and 68HC12 families +-@end ifset + @ifset POWERPC + * PowerPC ELF32:: @command{ld} and PowerPC 32-bit ELF Support + @end ifset +@@ -7877,7 +7879,7 @@ If you have more than one @code{SECT} statement for the same + @printindex cp + + @tex +-% I think something like @colophon should be in texinfo. In the ++% I think something like @@colophon should be in texinfo. In the + % meantime: + \long\def\colophon{\hbox to0pt{}\vfill + \centerline{The body of this manual is set in} +@@ -7888,7 +7890,7 @@ If you have more than one @code{SECT} statement for the same + \centerline{{\sl\fontname\tensl\/}} + \centerline{are used for emphasis.}\vfill} + \page\colophon +-% Blame: doc@cygnus.com, 28mar91. ++% Blame: doc@@cygnus.com, 28mar91. + @end tex + + @bye +-- +1.7.1 + diff --git a/libre/xtensa-unknown-elf-binutils/xtensa-unknown-elf-binutils.install b/libre/xtensa-unknown-elf-binutils/xtensa-unknown-elf-binutils.install new file mode 100644 index 000000000..9de0533ee --- /dev/null +++ b/libre/xtensa-unknown-elf-binutils/xtensa-unknown-elf-binutils.install @@ -0,0 +1,17 @@ +infodir=usr/share/info +filelist=(as.info bfd.info binutils.info gprof.info ld.info) + +post_upgrade() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + diff --git a/libre/xtensa-unknown-elf-gcc/PKGBUILD b/libre/xtensa-unknown-elf-gcc/PKGBUILD new file mode 100644 index 000000000..797f67f9e --- /dev/null +++ b/libre/xtensa-unknown-elf-gcc/PKGBUILD @@ -0,0 +1,136 @@ +# $Id: PKGBUILD 186915 2013-05-31 23:25:14Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> +# Contributor (Parabola): Márcio Silva <coadde@lavabit.com> + +_pkgname=gcc +_target="xtensa-unknown-elf" +_sysroot="/usr/$CHOST/${_target}" + +pkgname=${_target}-gcc +pkgver=4.8.1 +pkgrel=1 +pkgdesc="The GNU Compiler Collection for Xtensa processors" +arch=('i686' 'x86_64' 'mips64el') +license=('GPL' 'LGPL' 'FDL' 'custom') +url="http://gcc.gnu.org" +makedepends=("binutils>=2.23" 'libmpc' 'cloog' 'gcc-ada' 'doxygen') +checkdepends=('dejagnu' 'inetutils') +options=('!libtool' '!emptydirs') +source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2) +md5sums=('3b2386c114cd74185aa3754b58a79304') + +_basedir=gcc-${pkgver} + +prepare() { + cd ${srcdir}/${_basedir} + + # Do not run fixincludes + sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in + + # Parabola installs x86_64 libraries /lib + [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64 + + echo ${pkgver} > gcc/BASE-VER + + mkdir ${srcdir}/gcc-build +} + +build() { + cd ${srcdir}/gcc-build + + ${srcdir}/${_basedir}/configure --prefix=/home/marcio/src/xtensa-elf/tools \ + --target=${_target} \ + --disable-multilib \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --enable-languages=c \ + --disable-libquadmath \ + --disable-libssp \ + --with-newlib +# --disable-werror \ +# --libdir=/usr/lib --libexecdir=/usr/lib \ +# --mandir=/usr/share/man --infodir=/usr/share/info \ +# --with-bugurl=https://labs.parabola.nu/ \ +# --disable-shared --enable-threads=posix \ +# --with-system-zlib --enable-__cxa_atexit \ +# --disable-libunwind-exceptions --enable-clocale=gnu \ +# --disable-libstdcxx-pch \ +# --enable-gnu-unique-object --enable-linker-build-id \ +# --enable-cloog-backend=isl --disable-cloog-version-check \ +# --enable-lto --enable-gold --enable-ld=default \ +# --enable-plugin --with-plugin-ld=ld.gold \ +# --with-linker-hash-style=gnu --disable-install-libiberty \ +# --enable-checking=release \ + make all-gcc + + # make documentation + cd ${_target}/libstdc++-v3 + make doc-man-doxygen +} + +package() +{ + pkgdesc="The GNU Compiler Collection" + depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.23' 'libmpc' 'cloog') + groups=("${_target}-devel") + install=${_target}-gcc.install + + cd ${srcdir}/gcc-build + + make -j1 DESTDIR=${pkgdir} install-gcc + + install -d $pkgdir/usr/share/gdb/auto-load/usr/lib + mv $pkgdir{,/usr/share/gdb/auto-load}/usr/lib/libstdc++.so.6.0.18-gdb.py + + # unfortunately it is much, much easier to install the lot and clean-up the mess... + rm $pkgdir/usr/bin/{{${_target}-,}gfortran,{${_target}-,}gccgo,gnat*} + rm $pkgdir/usr/lib/*.so* + rm $pkgdir/usr/lib/lib{atomic,gfortran,go{,begin},iberty,objc}.a + rm $pkgdir/usr/lib/libgfortran.spec + rm -r $pkgdir/usr/lib/gcc/${_target}-/${pkgver}/{ada{include,lib},finclude,include/objc} + rm $pkgdir/usr/lib/gcc/${_target}-/${pkgver}/{cc1obj{,plus},f951,gnat1,go1} + rm $pkgdir/usr/lib/gcc/${_target}-/${pkgver}/{libcaf_single,libgfortranbegin}.a + rm -r $pkgdir/usr/lib/go + rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath,libitm}.info + rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo + rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1 + + # many packages expect this symlinks + ln -s ${_target}-gcc ${pkgdir}/usr/bin/${_target}-cc + + # POSIX conformance launcher scripts for c89 and c99 + cat > $pkgdir/usr/bin/${_target}-c89 <<"EOF" +#!/bin/sh +fl="-std=c89" +for opt; do + case "$opt" in + -ansi|-std=c89|-std=iso9899:1990) fl="";; + -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 + exit 1;; + esac +done +exec ${_target}-gcc $fl ${1+"$@"} +EOF + + cat > $pkgdir/usr/bin/${_target}-c99 <<"EOF" +#!/bin/sh +fl="-std=c99" +for opt; do + case "$opt" in + -std=c99|-std=iso9899:1999) fl="";; + -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 + exit 1;; + esac +done +exec ${_target}-gcc $fl ${1+"$@"} +EOF + + chmod 755 $pkgdir/usr/bin/${_target}-c{8,9}9 + + + # Install Runtime Library Exception + install -Dm644 ${srcdir}/${_basedir}/COPYING.RUNTIME \ + ${pkgdir}/usr/share/licenses/${_target}/RUNTIME.LIBRARY.EXCEPTION +} diff --git a/libre/xtensa-unknown-elf-gcc/xtensa-unknown-elf-gcc.install b/libre/xtensa-unknown-elf-gcc/xtensa-unknown-elf-gcc.install new file mode 100644 index 000000000..3407a5e1f --- /dev/null +++ b/libre/xtensa-unknown-elf-gcc/xtensa-unknown-elf-gcc.install @@ -0,0 +1,20 @@ +infodir=usr/share/info +filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +post_upgrade() { + post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} diff --git a/libre/xtensa-unknown-elf-glibc/PKGBUILD b/libre/xtensa-unknown-elf-glibc/PKGBUILD new file mode 100644 index 000000000..0a459b10b --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/PKGBUILD @@ -0,0 +1,155 @@ +# $Id: PKGBUILD 186623 2013-05-30 07:47:03Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: valgrind requires rebuilt with each major glibc version + +_pkgname=glibc +_target="xtensa-unknown-elf" +_sysroot="usr/$CHOST/${_target}" + +pkgname=${_target}-glibc +pkgver=2.17 +pkgrel=6 +pkgdesc="GNU C Library for Xtensa processors" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') +groups=('base') +depends=("${_target}-linux-api-headers>=3.7" 'tzdata' 'filesystem>=2013.01') +makedepends=('gcc>=4.7') +backup=(etc/gai.conf + etc/locale.gen + etc/nscd.conf) +options=('!strip') +install=${_target}-glibc.install +source=(http://ftp.gnu.org/gnu/libc/${_pkgname}-${pkgver}.tar.xz{,.sig} + glibc-2.17-sync-with-linux37.patch + glibc-2.17-getaddrinfo-stack-overflow.patch + glibc-2.17-regexp-matcher-overrun.patch + nscd.service + nscd.tmpfiles + locale.gen.txt + locale-gen) +md5sums=('87bf675c8ee523ebda4803e8e1cec638' + 'SKIP' + 'fb99380d94598cc76d793deebf630022' + '56d5f2c09503a348281a20ae404b7de3' + '200acc05961b084ee00dde919e64f82d' + 'c1e07c0bec0fe89791bfd9d13fc85edf' + 'bccbe5619e75cf1d97312ec3681c605c' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf') + + +build() { + cd ${srcdir}/${_pkgname}-${pkgver} + + # combination of upstream commits 318cd0b, b540704 and fc1abbe + patch -p1 -i ${srcdir}/glibc-2.17-sync-with-linux37.patch + + # CVE-2013-1914 - upstream commit 1cef1b19 + patch -p1 -i ${srcdir}/glibc-2.17-getaddrinfo-stack-overflow.patch + + # CVE-2013-0242 - upstream commit a445af0b + patch -p1 -i ${srcdir}/glibc-2.17-regexp-matcher-overrun.patch + + cd ${srcdir} + mkdir glibc-build + cd glibc-build + + if [[ ${CARCH} = "i686" ]]; then + # Hack to fix NPTL issues with Xen, only required on 32bit platforms + # TODO: make separate glibc-xen package for i686 + export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" + fi + + echo "slibdir=/usr/lib" >> configparms + echo "sbindir=/usr/bin" >> configparms + echo "rootsbindir=/usr/bin" >> configparms + + # remove hardening options for building libraries + CFLAGS=${CFLAGS/-fstack-protector/} + CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/} + + ${srcdir}/${_pkgname}-${pkgver}/configure --prefix=/usr \ + --libdir=/usr/lib --libexecdir=/usr/lib \ + --build=$CHOST --host=$_target \ + --with-headers=/${_sysroot}/include \ + --with-bugurl=https://labs.parabola.nu/ \ + --enable-add-ons=nptl,libidn \ + --enable-obsolete-rpc \ + --enable-kernel=2.6.32 \ + --enable-bind-now --disable-profile \ + --enable-stackguard-randomization \ + --enable-multi-arch + + # build libraries with hardening disabled + echo "build-programs=no" >> configparms + make + + # re-enable hardening for programs + sed -i "/build-programs=/s#no#yes#" configparms + echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms + make + + # remove harding in preparation to run test-suite + sed -i '4,6d' configparms +} + +check() { + # bug to file - the linker commands need to be reordered + LDFLAGS=${LDFLAGS/--as-needed,/} + + cd ${srcdir}/glibc-build + make check +} + +package() { + cd ${srcdir}/glibc-build + + install -dm755 ${pkgdir}/etc + touch ${pkgdir}/etc/ld.so.conf + + make install_root=${pkgdir} install + + rm -f ${pkgdir}/etc/ld.so.{cache,conf} + + install -dm755 ${pkgdir}/usr/lib/{locale,systemd/system,tmpfiles.d} + + install -m644 ${srcdir}/${_pkgname}-${pkgver}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf + install -m644 ${srcdir}/nscd.service ${pkgdir}/usr/lib/systemd/system + install -m644 ${srcdir}/nscd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/nscd.conf + + install -m644 ${srcdir}/${_pkgname}-${pkgver}/posix/gai.conf ${pkgdir}/etc/gai.conf + + install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/bin + + # create /etc/locale.gen + install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen + sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \ + ${srcdir}/glibc-${pkgver}/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen + + # Do not strip the following files for improved debugging support + # ("improved" as in not breaking gdb and valgrind...): + # ld-${pkgver}.so + # libc-${pkgver}.so + # libpthread-${pkgver}.so + # libthread_db-1.0.so + + cd $pkgdir + strip $STRIP_BINARIES usr/bin/{gencat,getconf,getent,iconv,iconvconfig} \ + usr/bin/{ldconfig,locale,localedef,nscd,makedb} \ + usr/bin/{pcprofiledump,pldd,rpcgen,sln,sprof} \ + usr/lib/getconf/* + [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4 + + strip $STRIP_STATIC usr/lib/*.a + + strip $STRIP_SHARED usr/lib/{libanl,libBrokenLocale,libcidn,libcrypt}-*.so \ + usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \ + usr/lib/{libdl,libm,libnsl,libresolv,librt,libutil}-*.so \ + usr/lib/{libmemusage,libpcprofile,libSegFault}.so \ + usr/lib/{pt_chown,{audit,gconv}/*.so} +} diff --git a/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch b/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch new file mode 100644 index 000000000..aa916ac2c --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/glibc-2.17-getaddrinfo-stack-overflow.patch @@ -0,0 +1,47 @@ +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index d95c2d1..2309281 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service, + __typeof (once) old_once = once; + __libc_once (once, gaiconf_init); + /* Sort results according to RFC 3484. */ +- struct sort_result results[nresults]; +- size_t order[nresults]; ++ struct sort_result *results; ++ size_t *order; + struct addrinfo *q; + struct addrinfo *last = NULL; + char *canonname = NULL; ++ bool malloc_results; ++ ++ malloc_results ++ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t))); ++ if (malloc_results) ++ { ++ results = malloc (nresults * (sizeof (*results) + sizeof (size_t))); ++ if (results == NULL) ++ { ++ __free_in6ai (in6ai); ++ return EAI_MEMORY; ++ } ++ } ++ else ++ results = alloca (nresults * (sizeof (*results) + sizeof (size_t))); ++ order = (size_t *) (results + nresults); + + /* Now we definitely need the interface information. */ + if (! check_pf_called) +@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service, + + /* Fill in the canonical name into the new first entry. */ + p->ai_canonname = canonname; ++ ++ if (malloc_results) ++ free (results); + } + + __free_in6ai (in6ai); +-- +1.7.1 + diff --git a/libre/xtensa-unknown-elf-glibc/glibc-2.17-regexp-matcher-overrun.patch b/libre/xtensa-unknown-elf-glibc/glibc-2.17-regexp-matcher-overrun.patch new file mode 100644 index 000000000..b108f9d42 --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/glibc-2.17-regexp-matcher-overrun.patch @@ -0,0 +1,137 @@ +diff --git a/posix/Makefile b/posix/Makefile +index 88d409f..2cacd21 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \ + tst-rfc3484-3 \ + tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ +- bug-getopt5 tst-getopt_long1 ++ bug-getopt5 tst-getopt_long1 bug-regex34 + xtests := bug-ga2 + ifeq (yes,$(build-shared)) + test-srcs := globtest +@@ -199,5 +199,6 @@ bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata + bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata ++bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata + tst-rxspencer-ARGS = --utf8 rxspencer/tests + tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata +diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c +new file mode 100644 +index 0000000..bb3b613 +--- /dev/null ++++ b/posix/bug-regex34.c +@@ -0,0 +1,46 @@ ++/* Test re_search with multi-byte characters in UTF-8. ++ Copyright (C) 2013 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#define _GNU_SOURCE 1 ++#include <stdio.h> ++#include <string.h> ++#include <locale.h> ++#include <regex.h> ++ ++static int ++do_test (void) ++{ ++ struct re_pattern_buffer r; ++ /* áá»á½ááºá¯ááºx */ ++ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax"; ++ ++ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL) ++ { ++ puts ("setlocale failed"); ++ return 1; ++ } ++ memset (&r, 0, sizeof (r)); ++ ++ re_compile_pattern ("[^x]x", 5, &r); ++ /* This was triggering a buffer overflow. */ ++ re_search (&r, s, strlen (s), 0, strlen (s), 0); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/posix/regexec.c b/posix/regexec.c +index 7f2de85..5ca2bf6 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa, + static int check_node_accept (const re_match_context_t *mctx, + const re_token_t *node, int idx) + internal_function; +-static reg_errcode_t extend_buffers (re_match_context_t *mctx) ++static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) + internal_function; + + /* Entry point for POSIX code. */ +@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match, + || (BE (next_char_idx >= mctx->input.valid_len, 0) + && mctx->input.valid_len < mctx->input.len)) + { +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_char_idx + 1); + if (BE (err != REG_NOERROR, 0)) + { + assert (err == REG_ESPACE); +@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx) + && mctx->input.valid_len < mctx->input.len)) + { + reg_errcode_t err; +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, next_state_log_idx + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + } +@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) + if (bkref_str_off >= mctx->input.len) + break; + +- err = extend_buffers (mctx); ++ err = extend_buffers (mctx, bkref_str_off + 1); + if (BE (err != REG_NOERROR, 0)) + return err; + +@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, + + static reg_errcode_t + internal_function __attribute_warn_unused_result__ +-extend_buffers (re_match_context_t *mctx) ++extend_buffers (re_match_context_t *mctx, int min_len) + { + reg_errcode_t ret; + re_string_t *pstr = &mctx->input; +@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx) + if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0)) + return REG_ESPACE; + +- /* Double the lengthes of the buffers. */ +- ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2)); ++ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */ ++ ret = re_string_realloc_buffers (pstr, ++ MAX (min_len, ++ MIN (pstr->len, pstr->bufs_len * 2))); + if (BE (ret != REG_NOERROR, 0)) + return ret; + +-- +1.7.1 + diff --git a/libre/xtensa-unknown-elf-glibc/glibc-2.17-sync-with-linux37.patch b/libre/xtensa-unknown-elf-glibc/glibc-2.17-sync-with-linux37.patch new file mode 100644 index 000000000..24b25c997 --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/glibc-2.17-sync-with-linux37.patch @@ -0,0 +1,130 @@ +diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h +index 06e8414..b62a696 100644 +--- a/sysdeps/gnu/netinet/tcp.h ++++ b/sysdeps/gnu/netinet/tcp.h +@@ -37,20 +37,29 @@ + /* + * User-settable options (used with setsockopt). + */ +-#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ +-#define TCP_MAXSEG 2 /* Set maximum segment size */ +-#define TCP_CORK 3 /* Control sending of partial frames */ +-#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ +-#define TCP_KEEPINTVL 5 /* Interval between keepalives */ +-#define TCP_KEEPCNT 6 /* Number of keepalives before death */ +-#define TCP_SYNCNT 7 /* Number of SYN retransmits */ +-#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ +-#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ +-#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ +-#define TCP_INFO 11 /* Information about this connection. */ +-#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ +-#define TCP_CONGESTION 13 /* Congestion control algorithm. */ +-#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ ++#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ ++#define TCP_MAXSEG 2 /* Set maximum segment size */ ++#define TCP_CORK 3 /* Control sending of partial frames */ ++#define TCP_KEEPIDLE 4 /* Start keeplives after this period */ ++#define TCP_KEEPINTVL 5 /* Interval between keepalives */ ++#define TCP_KEEPCNT 6 /* Number of keepalives before death */ ++#define TCP_SYNCNT 7 /* Number of SYN retransmits */ ++#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ ++#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ ++#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ ++#define TCP_INFO 11 /* Information about this connection. */ ++#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */ ++#define TCP_CONGESTION 13 /* Congestion control algorithm. */ ++#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ ++#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */ ++#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ ++#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ ++#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ ++#define TCP_REPAIR 19 /* TCP sock is under repair right now */ ++#define TCP_REPAIR_QUEUE 20 /* Set TCP queue to repair */ ++#define TCP_QUEUE_SEQ 21 /* Set sequence number of repaired queue. */ ++#define TCP_REPAIR_OPTIONS 22 /* Repair TCP connection options */ ++#define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ + + #ifdef __USE_MISC + # include <sys/types.h> +@@ -173,7 +182,9 @@ enum + # define TCPI_OPT_TIMESTAMPS 1 + # define TCPI_OPT_SACK 2 + # define TCPI_OPT_WSCALE 4 +-# define TCPI_OPT_ECN 8 ++# define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */ ++# define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */ ++# define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */ + + /* Values for tcpi_state. */ + enum tcp_ca_state +@@ -241,6 +252,49 @@ struct tcp_md5sig + u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* Key (binary). */ + }; + ++/* For socket repair options. */ ++struct tcp_repair_opt ++{ ++ u_int32_t opt_code; ++ u_int32_t opt_val; ++}; ++ ++/* Queue to repair, for TCP_REPAIR_QUEUE. */ ++enum ++{ ++ TCP_NO_QUEUE, ++ TCP_RECV_QUEUE, ++ TCP_SEND_QUEUE, ++ TCP_QUEUES_NR, ++}; ++ ++/* For cookie transactions socket options. */ ++#define TCP_COOKIE_MIN 8 /* 64-bits */ ++#define TCP_COOKIE_MAX 16 /* 128-bits */ ++#define TCP_COOKIE_PAIR_SIZE (2*TCP_COOKIE_MAX) ++ ++/* Flags for both getsockopt and setsockopt */ ++#define TCP_COOKIE_IN_ALWAYS (1 << 0) /* Discard SYN without cookie */ ++#define TCP_COOKIE_OUT_NEVER (1 << 1) /* Prohibit outgoing cookies, ++ * supercedes everything. */ ++ ++/* Flags for getsockopt */ ++#define TCP_S_DATA_IN (1 << 2) /* Was data received? */ ++#define TCP_S_DATA_OUT (1 << 3) /* Was data sent? */ ++ ++#define TCP_MSS_DEFAULT 536U /* IPv4 (RFC1122, RFC2581) */ ++#define TCP_MSS_DESIRED 1220U /* IPv6 (tunneled), EDNS0 (RFC3226) */ ++ ++struct tcp_cookie_transactions ++{ ++ u_int16_t tcpct_flags; ++ u_int8_t __tcpct_pad1; ++ u_int8_t tcpct_cookie_desired; ++ u_int16_t tcpct_s_data_desired; ++ u_int16_t tcpct_used; ++ u_int8_t tcpct_value[TCP_MSS_DEFAULT]; ++}; ++ + #endif /* Misc. */ + + #endif /* netinet/tcp.h */ +diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h +index df8f167..eadd7d9 100644 +--- a/sysdeps/unix/sysv/linux/bits/socket.h ++++ b/sysdeps/unix/sysv/linux/bits/socket.h +@@ -1,6 +1,5 @@ + /* System-specific socket constants and types. Linux version. +- Copyright (C) 1991, 1992, 1994-2001, 2004, 2006-2010, 2011, 2012 +- Free Software Foundation, Inc. ++ Copyright (C) 1991-2013 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -208,6 +207,8 @@ enum + #define MSG_MORE MSG_MORE + MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/ + #define MSG_WAITFORONE MSG_WAITFORONE ++ MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */ ++#define MSG_FASTOPEN MSG_FASTOPEN + + MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file + descriptor received through diff --git a/libre/xtensa-unknown-elf-glibc/locale-gen b/libre/xtensa-unknown-elf-glibc/locale-gen new file mode 100644 index 000000000..5aff344c4 --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/locale-gen @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +LOCALEGEN=/etc/locale.gen +LOCALES=/usr/share/i18n/locales +if [ -n "$POSIXLY_CORRECT" ]; then + unset POSIXLY_CORRECT +fi + + +[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0; + +# Remove all old locale dir and locale-archive before generating new +# locale data. +rm -rf /usr/lib/locale/* || true + +umask 022 + +is_entry_ok() { + if [ -n "$locale" -a -n "$charset" ] ; then + true + else + echo "error: Bad entry '$locale $charset'" + false + fi +} + +echo "Generating locales..." +while read locale charset; do \ + case $locale in \#*) continue;; "") continue;; esac; \ + is_entry_ok || continue + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ + echo -n ".$charset"; \ + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + if [ -f $LOCALES/$locale ]; then input=$locale; else \ + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \ + localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \ + echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." diff --git a/libre/xtensa-unknown-elf-glibc/locale.gen.txt b/libre/xtensa-unknown-elf-glibc/locale.gen.txt new file mode 100644 index 000000000..ccdd81734 --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/locale.gen.txt @@ -0,0 +1,23 @@ +# Configuration file for locale-gen +# +# lists of locales that are to be generated by the locale-gen command. +# +# Each line is of the form: +# +# <locale> <charset> +# +# where <locale> is one of the locales given in /usr/share/i18n/locales +# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps +# +# Examples: +# en_US ISO-8859-1 +# en_US.UTF-8 UTF-8 +# de_DE ISO-8859-1 +# de_DE@euro ISO-8859-15 +# +# The locale-gen command will generate all the locales, +# placing them in /usr/lib/locale. +# +# A list of supported locales is included in this file. +# Uncomment the ones you need. +# diff --git a/libre/xtensa-unknown-elf-glibc/nscd.service b/libre/xtensa-unknown-elf-glibc/nscd.service new file mode 100644 index 000000000..bc80a0730 --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/nscd.service @@ -0,0 +1,17 @@ +[Unit] +Description=Name Service Cache Daemon +After=syslog.target + +[Service] +Type=forking +ExecStart=/usr/sbin/nscd +ExecStop=/usr/sbin/nscd --shutdown +ExecReload=/usr/sbin/nscd -i passwd +ExecReload=/usr/sbin/nscd -i group +ExecReload=/usr/sbin/nscd -i hosts +ExecReload=/usr/sbin/nscd -i services +Restart=always +PIDFile=/run/nscd/nscd.pid + +[Install] +WantedBy=multi-user.target diff --git a/libre/xtensa-unknown-elf-glibc/nscd.tmpfiles b/libre/xtensa-unknown-elf-glibc/nscd.tmpfiles new file mode 100644 index 000000000..8a24a785e --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/nscd.tmpfiles @@ -0,0 +1 @@ +d /run/nscd 0755 root root diff --git a/libre/xtensa-unknown-elf-glibc/xtensa-unknown-elf-glibc.install b/libre/xtensa-unknown-elf-glibc/xtensa-unknown-elf-glibc.install new file mode 100644 index 000000000..f8147a6cf --- /dev/null +++ b/libre/xtensa-unknown-elf-glibc/xtensa-unknown-elf-glibc.install @@ -0,0 +1,19 @@ +infodir=usr/share/info +filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11}) + +post_upgrade() { + ldconfig -r . + locale-gen + + [[ -x usr/bin/install-info ]] || return 0 + for file in ${filelist[@]}; do + install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +pre_remove() { + [[ -x usr/bin/install-info ]] || return 0 + for file in ${filelist[@]}; do + install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null + done +} diff --git a/libre/xtensa-unknown-elf-linux-libre-api-headers/PKGBUILD b/libre/xtensa-unknown-elf-linux-libre-api-headers/PKGBUILD new file mode 100644 index 000000000..23dada50b --- /dev/null +++ b/libre/xtensa-unknown-elf-linux-libre-api-headers/PKGBUILD @@ -0,0 +1,47 @@ +# $Id: PKGBUILD 180857 2013-03-27 11:11:40Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Maintainer (Parabola): André Silva <emulatorman@lavabit.com> + +# toolchain build order: linux-libre-api-headers->glibc->binutils->gcc->binutils->glibc +export ARCH=xtensa +_target=xtensa-unknown-elf +_sysroot="usr/$CHOST/${_target}" + +pkgname=${_target}-linux-libre-api-headers +_basekernel=3.8 +_sublevel=4 +pkgver=${_basekernel}.${_sublevel} +pkgrel=1 +pkgdesc="Kernel headers sanitized for use in userspace for Xtensa processors" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.gnu.org/software/libc" +license=('GPL2') +provides=("${_target}-linux-api-headers=${pkgver}") +conflicts=("${_target}-linux-api-headers") +replaces=("${_target}-linux-api-headers" ) +source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz" + "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz") +md5sums=('84c2a77910932ffc7d958744ac9cf2f5' + 'be610dd93dbe033cfe04018b27557c3e') + +build() { + cd ${srcdir}/linux-${_basekernel} + + if [ "${_basekernel}" != "${pkgver}" ]; then + patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu" + fi + + make mrproper + make headers_check +} + +package() { + cd ${srcdir}/linux-${_basekernel} + make ARCH=${ARCH} INSTALL_HDR_PATH=${pkgdir}/${_sysroot} headers_install + + # use headers from libdrm + rm -r ${pkgdir}/${_sysroot}/include/drm + + # clean-up unnecessary files generated during install + find ${pkgdir} \( -name .install -o -name ..install.cmd \) -delete +} |