summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community-testing/libvirt/libvirt.tmpfiles.d4
-rw-r--r--community-testing/multipath-tools/PKGBUILD20
-rw-r--r--community-testing/multipath-tools/all-in-one.patch209
-rw-r--r--community-testing/multipath-tools/blacklist-cciss-devices.patch29
-rw-r--r--community-testing/multipath-tools/buffer-overflows.patch22
-rw-r--r--community-testing/multipath-tools/explicitly-include-posix_types.h.patch35
-rw-r--r--community-testing/multipath-tools/fix-build.patch137
-rw-r--r--community-testing/multipath-tools/log_enquery_overflow.patch69
-rw-r--r--community/aria2/PKGBUILD8
-rw-r--r--community/ecryptfs-utils/PKGBUILD12
-rw-r--r--community/ecryptfs-utils/symlinked_mtab.patch25
-rw-r--r--community/gsasl/PKGBUILD8
-rw-r--r--community/kpartsplugin/PKGBUILD6
-rw-r--r--community/libmediainfo/PKGBUILD16
-rw-r--r--community/libmediainfo/gcc-4.7.patch79
-rw-r--r--community/libvirt/PKGBUILD25
-rw-r--r--community/libvirt/libvirt.tmpfiles.d4
-rw-r--r--community/lxterminal/PKGBUILD21
-rw-r--r--community/lxterminal/shift-keybinds.patch39
-rwxr-xr-xcommunity/mathomatic/PKGBUILD6
-rw-r--r--community/mediainfo-gui/PKGBUILD6
-rw-r--r--community/mediainfo/PKGBUILD6
-rw-r--r--community/mfs/PKGBUILD49
-rwxr-xr-xcommunity/mfs/mfscgiserv4
-rwxr-xr-xcommunity/mfs/mfschunkserver8
-rwxr-xr-xcommunity/mfs/mfsmaster8
-rwxr-xr-xcommunity/mfs/mfsmetalogger8
-rw-r--r--community/mosh/PKGBUILD18
-rw-r--r--community/mplayer2/PKGBUILD6
-rw-r--r--community/oolite/PKGBUILD10
-rw-r--r--community/opendkim/PKGBUILD58
-rw-r--r--community/opendkim/opendkim.conf1
-rw-r--r--community/opendkim/opendkim.install11
-rw-r--r--community/opendkim/opendkim.rc39
-rw-r--r--community/openscenegraph/PKGBUILD8
-rw-r--r--community/roxterm/PKGBUILD8
-rw-r--r--community/tea/PKGBUILD6
-rw-r--r--community/uzbl/PKGBUILD6
-rw-r--r--community/wt/PKGBUILD6
-rw-r--r--core/krb5/PKGBUILD16
-rw-r--r--core/mdadm/PKGBUILD12
-rw-r--r--core/mdadm/mdadm_install70
-rw-r--r--core/mdadm/mdadm_udev_install6
-rw-r--r--core/nfs-utils/PKGBUILD16
-rw-r--r--core/nfs-utils/blkmapd.service11
-rw-r--r--core/nfs-utils/rpc-mountd.service2
-rw-r--r--extra/calligra/PKGBUILD8
-rw-r--r--extra/cups-filters/PKGBUILD42
-rw-r--r--extra/cups/PKGBUILD165
-rw-r--r--extra/cups/PKGBUILD.16143
-rwxr-xr-xextra/cups/cups68
-rw-r--r--extra/cups/cups-avahi-1-config.patch42
-rw-r--r--extra/cups/cups-avahi-2-backend.patch1118
-rw-r--r--extra/cups/cups-avahi-3-timeouts.patch381
-rw-r--r--extra/cups/cups-avahi-4-poll.patch529
-rw-r--r--extra/cups/cups-avahi-5-services.patch1272
-rw-r--r--extra/cups/cups-no-export-ssllibs.patch12
-rw-r--r--extra/cups/cups-no-gcrypt.patch38
-rw-r--r--extra/cups/cups-no-gzip-man.patch18
-rw-r--r--extra/cups/cups-no-gzip-man.patch.1618
-rw-r--r--extra/cups/cups.install26
-rw-r--r--extra/cups/cups.logrotate8
-rw-r--r--extra/cups/cups.pam3
-rw-r--r--extra/dovecot/PKGBUILD8
-rw-r--r--extra/fping/PKGBUILD6
-rw-r--r--extra/git/PKGBUILD8
-rw-r--r--extra/gptfdisk/PKGBUILD12
-rw-r--r--extra/icewm/PKGBUILD11
-rw-r--r--extra/icewm/icewm-cpustatus.patch45
-rw-r--r--extra/lame/PKGBUILD34
-rw-r--r--extra/lftp/PKGBUILD8
-rw-r--r--extra/libreoffice/PKGBUILD22
-rw-r--r--extra/libx11/PKGBUILD6
-rw-r--r--extra/mahjong/PKGBUILD8
-rw-r--r--extra/trayer/PKGBUILD12
-rw-r--r--extra/trayer/manpage.diff9
-rw-r--r--gis/grass/PKGBUILD119
-rw-r--r--gis/grass/grass.conf1
-rw-r--r--gis/grass/grass.install26
-rw-r--r--gis/grass/grass.sh4
-rw-r--r--gis/merkaartor/PKGBUILD38
-rw-r--r--gis/merkaartor/install12
-rw-r--r--gis/qgis/PKGBUILD70
-rw-r--r--gis/qgis/qgis.desktop10
-rw-r--r--gis/qgis/qgis_1.7.4_gcc4.7.patch20
-rw-r--r--gis/qwt5/PKGBUILD47
-rw-r--r--gis/qwt5/qwtconfig-archlinux.pri85
-rw-r--r--kde-unstable/kactivities/PKGBUILD29
-rw-r--r--kde-unstable/kdeaccessibility-jovie/PKGBUILD34
-rw-r--r--kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install (renamed from libre/kdenetwork-libre/kdenetwork.install)0
-rw-r--r--kde-unstable/kdeaccessibility-kaccessible/PKGBUILD30
-rw-r--r--kde-unstable/kdeaccessibility-kmag/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install11
-rw-r--r--kde-unstable/kdeadmin/PKGBUILD80
-rw-r--r--kde-unstable/kdeadmin/kdeadmin.install11
-rw-r--r--kde-unstable/kdeadmin/syslog-path.patch11
-rw-r--r--kde-unstable/kdeartwork/PKGBUILD104
-rw-r--r--kde-unstable/kdebase-konsole/PKGBUILD30
-rw-r--r--kde-unstable/kdebase-runtime/PKGBUILD44
-rw-r--r--kde-unstable/kdebase-runtime/kdebase-runtime.install13
-rw-r--r--kde-unstable/kdebase-workspace/PKGBUILD77
-rw-r--r--kde-unstable/kdebase-workspace/fixpath.patch34
-rw-r--r--kde-unstable/kdebase-workspace/kde-np.pam9
-rw-r--r--kde-unstable/kdebase-workspace/kde.pam9
-rw-r--r--kde-unstable/kdebase-workspace/kdebase-workspace.install25
-rw-r--r--kde-unstable/kdebase-workspace/kdm36
-rw-r--r--kde-unstable/kdebase-workspace/kdm-xinitrd.patch18
-rw-r--r--kde-unstable/kdebase-workspace/kscreensaver.pam1
-rw-r--r--kde-unstable/kdebase-workspace/terminate-server.patch11
-rw-r--r--kde-unstable/kdebase/PKGBUILD120
-rw-r--r--kde-unstable/kdebase/kdebase-dolphin.install11
-rw-r--r--kde-unstable/kdebase/kdebase-konqueror.install (renamed from libre/kdenetwork-libre/kdenetwork-kget.install)0
-rw-r--r--kde-unstable/kdebase/kdebase.install11
-rw-r--r--kde-unstable/kdebindings-kimono/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-kross/PKGBUILD52
-rw-r--r--kde-unstable/kdebindings-perlqt/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-python/PKGBUILD70
-rw-r--r--kde-unstable/kdebindings-qtruby/PKGBUILD33
-rw-r--r--kde-unstable/kdebindings-qyoto/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-smokegen/PKGBUILD30
-rw-r--r--kde-unstable/kdebindings-smokekde/PKGBUILD35
-rw-r--r--kde-unstable/kdebindings-smokeqt/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-analitza/PKGBUILD30
-rw-r--r--kde-unstable/kdeedu-blinken/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-blinken/kdeedu-blinken.install11
-rw-r--r--kde-unstable/kdeedu-cantor/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-cantor/kdeedu-cantor.install12
-rw-r--r--kde-unstable/kdeedu-kalgebra/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install12
-rw-r--r--kde-unstable/kdeedu-kalzium/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install11
-rw-r--r--kde-unstable/kdeedu-kanagram/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install11
-rw-r--r--kde-unstable/kdeedu-kbruch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install11
-rw-r--r--kde-unstable/kdeedu-kgeography/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install11
-rw-r--r--kde-unstable/kdeedu-khangman/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-khangman/kdeedu-khangman.install11
-rw-r--r--kde-unstable/kdeedu-kig/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-kig/kdeedu-kig.install12
-rw-r--r--kde-unstable/kdeedu-kiten/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kiten/kdeedu-kiten.install11
-rw-r--r--kde-unstable/kdeedu-klettres/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-klettres/kdeedu-klettres.install11
-rw-r--r--kde-unstable/kdeedu-kmplot/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install12
-rw-r--r--kde-unstable/kdeedu-kstars/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-kstars/kdeedu-kstars.install11
-rw-r--r--kde-unstable/kdeedu-ktouch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install11
-rw-r--r--kde-unstable/kdeedu-kturtle/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install11
-rw-r--r--kde-unstable/kdeedu-kwordquiz/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install12
-rw-r--r--kde-unstable/kdeedu-marble/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-marble/kdeedu-marble.install12
-rw-r--r--kde-unstable/kdeedu-pairs/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-pairs/kdeedu-pairs.install12
-rw-r--r--kde-unstable/kdeedu-parley/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-parley/kdeedu-parley.install12
-rw-r--r--kde-unstable/kdeedu-rocs/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/kdeedu-step.install11
-rw-r--r--kde-unstable/kdegames/PKGBUILD510
-rw-r--r--kde-unstable/kdegames/kdegames-kbattleship.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kfourinline.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kigo.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kolf.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kpatience.install13
-rw-r--r--kde-unstable/kdegames/kdegames-kspaceduel.install12
-rw-r--r--kde-unstable/kdegames/kdegames-ktuberling.install12
-rw-r--r--kde-unstable/kdegames/kdegames-lskat.install12
-rw-r--r--kde-unstable/kdegames/kdegames-palapeli.install13
-rw-r--r--kde-unstable/kdegames/kdegames.install11
-rw-r--r--kde-unstable/kdegraphics-gwenview/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install12
-rw-r--r--kde-unstable/kdegraphics-kamera/PKGBUILD30
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install11
-rw-r--r--kde-unstable/kdegraphics-kgamma/PKGBUILD33
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install12
-rw-r--r--kde-unstable/kdegraphics-kruler/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install12
-rw-r--r--kde-unstable/kdegraphics-ksaneplugin/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install12
-rw-r--r--kde-unstable/kdegraphics-mobipocket/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install11
-rw-r--r--kde-unstable/kdegraphics-okular/PKGBUILD33
-rw-r--r--kde-unstable/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-svgpart/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-thumbnailers/PKGBUILD31
-rw-r--r--kde-unstable/kdemultimedia-audiocd-kio/PKGBUILD32
-rw-r--r--kde-unstable/kdemultimedia-dragonplayer/PKGBUILD31
-rw-r--r--kde-unstable/kdemultimedia-dragonplayer/kdemultimedia-dragonplayer.install (renamed from libre/kdenetwork-libre/kdenetwork-kopete.install)0
-rw-r--r--kde-unstable/kdemultimedia-ffmpegthumbs/PKGBUILD29
-rw-r--r--kde-unstable/kdemultimedia-juk/PKGBUILD31
-rw-r--r--kde-unstable/kdemultimedia-juk/kdemultimedia-juk.install11
-rw-r--r--kde-unstable/kdemultimedia-kmix/PKGBUILD30
-rw-r--r--kde-unstable/kdemultimedia-kmix/kdemultimedia-kmix.install11
-rw-r--r--kde-unstable/kdemultimedia-kscd/PKGBUILD30
-rw-r--r--kde-unstable/kdemultimedia-kscd/kdemultimedia-kscd.install11
-rw-r--r--kde-unstable/kdemultimedia-mplayerthumbs/PKGBUILD29
-rw-r--r--kde-unstable/kdenetwork/PKGBUILD (renamed from libre/kdenetwork-libre/PKGBUILD)46
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kget.install (renamed from libre/kdenetwork-libre/kdenetwork-kppp.install)0
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kopete.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kppp.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork.install11
-rw-r--r--kde-unstable/kdepim-runtime/PKGBUILD31
-rw-r--r--kde-unstable/kdepim-runtime/kdepim-runtime.install13
-rw-r--r--kde-unstable/kdepim/PKGBUILD244
-rw-r--r--kde-unstable/kdepim/kdepim-kleopatra.install12
-rw-r--r--kde-unstable/kdepim/kdepim-kmail.install12
-rw-r--r--kde-unstable/kdepim/kdepim-korganizer.install12
-rw-r--r--kde-unstable/kdepim/kdepim.install11
-rw-r--r--kde-unstable/kdepimlibs/PKGBUILD31
-rw-r--r--kde-unstable/kdepimlibs/kdepimlibs.install11
-rw-r--r--kde-unstable/kdeplasma-addons/PKGBUILD619
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install11
-rw-r--r--kde-unstable/kdesdk-kate/PKGBUILD68
-rw-r--r--kde-unstable/kdesdk-kate/kdebase-katepart.install11
-rw-r--r--kde-unstable/kdesdk-kate/kdebase-kwrite.install12
-rw-r--r--kde-unstable/kdesdk-kate/kdesdk-kate.install13
-rw-r--r--kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch11
-rw-r--r--kde-unstable/kdesdk/PKGBUILD248
-rw-r--r--kde-unstable/kdesdk/fix-python2-path.patch32
-rw-r--r--kde-unstable/kdesdk/kdesdk-cervisia.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kcachegrind.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kompare.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kuiviewer.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-lokalize.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-okteta.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-umbrello.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk.install11
-rw-r--r--kde-unstable/kdetoys/PKGBUILD56
-rw-r--r--kde-unstable/kdetoys/kdetoys.install11
-rw-r--r--kde-unstable/kdeutils-filelight/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-filelight/kdeutils-filelight.install12
-rw-r--r--kde-unstable/kdeutils-kcalc/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install11
-rw-r--r--kde-unstable/kdeutils-kcharselect/PKGBUILD32
-rw-r--r--kde-unstable/kdeutils-kdf/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kdf/kdeutils-kdf.install11
-rw-r--r--kde-unstable/kdeutils-kfloppy/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install12
-rw-r--r--kde-unstable/kdeutils-kgpg/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install12
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install11
-rw-r--r--kde-unstable/kdeutils-ktimer/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install11
-rw-r--r--kde-unstable/kdeutils-kwallet/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install12
-rw-r--r--kde-unstable/kdeutils-superkaramba/PKGBUILD31
-rw-r--r--kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install12
-rw-r--r--kde-unstable/kdeutils-sweeper/PKGBUILD32
-rw-r--r--kde-unstable/kdewebdev/PKGBUILD70
-rw-r--r--kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install12
-rw-r--r--kde-unstable/kdewebdev/kdewebdev.install11
-rw-r--r--kde-unstable/libkcddb/PKGBUILD31
-rw-r--r--kde-unstable/libkcompactdisc/PKGBUILD31
-rw-r--r--kde-unstable/libkdcraw/PKGBUILD32
-rw-r--r--kde-unstable/libkdcraw/libkdcraw.install11
-rw-r--r--kde-unstable/libkdeedu/PKGBUILD31
-rw-r--r--kde-unstable/libkdeedu/libkdeedu.install11
-rw-r--r--kde-unstable/libkexiv2/PKGBUILD31
-rw-r--r--kde-unstable/libkgoogle/PKGBUILD2
-rw-r--r--kde-unstable/libkipi/PKGBUILD32
-rw-r--r--kde-unstable/libkipi/libkipi.install11
-rw-r--r--kde-unstable/libksane/PKGBUILD32
-rw-r--r--kde-unstable/libksane/libksane.install11
-rw-r--r--kde-unstable/nepomuk-core/PKGBUILD36
-rw-r--r--kde-unstable/soprano/PKGBUILD11
-rw-r--r--kernels/aufs3-libre/PKGBUILD11
-rw-r--r--kernels/aufs3-libre/aufs3-libre.install2
-rw-r--r--kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch268
-rw-r--r--kernels/linux-libre-aufs_friendly/PKGBUILD62
-rw-r--r--kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch12
-rw-r--r--kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch70
-rw-r--r--kernels/linux-libre-aufs_friendly/config.i686645
-rw-r--r--kernels/linux-libre-aufs_friendly/config.x86_64622
-rw-r--r--kernels/linux-libre-aufs_friendly/dib0700-fix.patch1487
-rw-r--r--kernels/linux-libre-aufs_friendly/ext4-options.patch1
-rw-r--r--kernels/linux-libre-aufs_friendly/fix-i915.patch26
-rw-r--r--kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch22
-rw-r--r--kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch55
-rw-r--r--kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch38
-rw-r--r--kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install19
-rw-r--r--kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch40
-rw-r--r--kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch99
-rw-r--r--kernels/linux-libre-rt/PKGBUILD10
-rw-r--r--kernels/linux-libre-rt/linux-libre-rt.install2
-rw-r--r--kernels/linux-libre-rt/linux-libre-rt.preset2
-rw-r--r--libre-testing/icedove-libre/PKGBUILD87
-rw-r--r--libre-testing/icedove-libre/gcc47.patch44
-rw-r--r--libre-testing/icedove-libre/makefile.patch11
-rw-r--r--libre-testing/icedove-libre/rules.patch16
-rw-r--r--libre-testing/icedove-libre/searchplugins-libre.patch141
-rw-r--r--libre/blackbox-libre/PKGBUILD47
-rw-r--r--libre/blackbox-libre/bbdock.patch16
-rw-r--r--libre/blackbox-libre/bsetbg-feh.patch23
-rw-r--r--libre/blackbox-libre/gcc4.3.patch111
-rw-r--r--libre/blackbox-libre/menu112
-rw-r--r--libre/blackbox-libre/textpropertytostring-unconditional.patch28
-rw-r--r--libre/clementine-libre/PKGBUILD62
-rw-r--r--libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch20
-rw-r--r--libre/clementine-libre/clementine-fresh-start.patch9
-rw-r--r--libre/clementine-libre/clementine.install13
-rw-r--r--libre/clementine-libre/remove-and-disable-spotify.patch3268
-rw-r--r--libre/clementine-libre/remove-nonfree-references-on-translations.patch20088
-rw-r--r--libre/crosstool-ng/PKGBUILD6
-rw-r--r--libre/cups-libre/PKGBUILD52
-rw-r--r--libre/cups-libre/cups-avahi-1-config.patch12
-rw-r--r--libre/cups-libre/cups-avahi-2-backend.patch101
-rw-r--r--libre/cups-libre/cups-avahi-3-timeouts.patch28
-rw-r--r--libre/cups-libre/cups-avahi-4-poll.patch18
-rw-r--r--libre/cups-libre/cups-avahi-5-services.patch161
-rw-r--r--libre/cups-libre/cups-no-gzip-man.patch18
-rw-r--r--libre/cups-libre/rePKGBUILD6
-rw-r--r--libre/dvdrip-libre/PKGBUILD55
-rw-r--r--libre/dvdrip-libre/dvdrip.desktop8
-rw-r--r--libre/dvdrip-libre/dvdrip.install11
-rw-r--r--libre/dvdrip-libre/libre.patch81
-rw-r--r--libre/file-roller-libre/PKGBUILD6
-rw-r--r--libre/filesystem/PKGBUILD6
-rw-r--r--libre/foomatic-filters-libre/PKGBUILD39
-rw-r--r--libre/foomatic/PKGBUILD92
-rw-r--r--libre/ghostscript-libre/PKGBUILD29
-rw-r--r--libre/ghostscript-libre/SRCBUILD32
-rw-r--r--libre/ghostscript-libre/ghostscript-cups-rgbw.patch263
-rw-r--r--libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch12
-rw-r--r--libre/ghostscript-libre/gs_bug691759and691760.diff215
-rw-r--r--libre/grub/PKGBUILD5
-rw-r--r--libre/grub/rePKGBUILD9
-rw-r--r--libre/gstreamer0.10-good/PKGBUILD55
-rw-r--r--libre/gstreamer0.10-good/gstreamer0.10-good-plugins.install19
-rw-r--r--libre/hplip-libre/PKGBUILD13
-rw-r--r--libre/iceape-i18n/Makefile59
-rw-r--r--libre/iceape-i18n/PKGBUILD81
-rw-r--r--libre/iceape-i18n/PKGBUILD.in64
-rw-r--r--libre/iceape-libre/PKGBUILD117
-rw-r--r--libre/iceape-libre/clrf.patch260
-rw-r--r--libre/iceape-libre/gcc47.patch63
-rw-r--r--libre/iceape-libre/iceape-2.0-lang.patch11
-rw-r--r--libre/iceape-libre/iceape.desktop11
-rw-r--r--libre/iceape-libre/iceape.install12
-rw-r--r--libre/iceape-libre/libre.patch288
-rw-r--r--libre/iceape-libre/mozconfig (renamed from libre-testing/icedove-libre/mozconfig)30
-rw-r--r--libre/icedove-i18n/PKGBUILD524
-rw-r--r--libre/icedove-libre/.directory2
-rw-r--r--libre/icedove-libre/PKGBUILD95
-rw-r--r--libre/icedove-libre/channel-prefs.js (renamed from libre-testing/icedove-libre/channel-prefs.js)0
-rw-r--r--libre/icedove-libre/clrf.patch260
-rw-r--r--libre/icedove-libre/gcc47.patch63
-rw-r--r--libre/icedove-libre/icedove.desktop13
-rw-r--r--libre/icedove-libre/icedove.install (renamed from libre-testing/icedove-libre/icedove.install)0
-rw-r--r--libre/icedove-libre/makefile.patch46
-rw-r--r--libre/icedove-libre/mozconfig64
-rw-r--r--libre/icedove-libre/vendor.js (renamed from libre-testing/icedove-libre/vendor.js)0
-rw-r--r--libre/iceweasel-i18n/PKGBUILD172
-rw-r--r--libre/iceweasel-libre/PKGBUILD31
-rw-r--r--libre/iceweasel-libre/gcc47.patch75
-rw-r--r--libre/iceweasel-libre/libre.patch28
-rw-r--r--libre/initscripts/PKGBUILD13
-rw-r--r--libre/kdebase-konqueror-libre/PKGBUILD12
-rw-r--r--libre/kdelibs-libre/PKGBUILD6
-rw-r--r--libre/kdenetwork-kopete-libre/PKGBUILD59
-rw-r--r--libre/kdenetwork-kopete-libre/gcc47.patch59
-rw-r--r--libre/kdenetwork-kopete-libre/kdenetwork-kopete.install12
-rw-r--r--libre/kdenetwork-kopete-libre/kdenetwork.install11
-rw-r--r--libre/kdeutils-ark-libre/PKGBUILD6
-rw-r--r--libre/kile-libre/PKGBUILD22
-rw-r--r--libre/lilo/.directory2
-rw-r--r--libre/lilo/PKGBUILD5
-rw-r--r--libre/linux-libre-lts/CVE-2012-0056.patch269
-rw-r--r--libre/linux-libre-lts/PKGBUILD20
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.install2
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.preset2
-rw-r--r--libre/linux-libre-tools/PKGBUILD55
-rw-r--r--libre/linux-libre-tools/cpupower.rc2
-rw-r--r--libre/linux-libre/CVE-2012-0056.patch268
-rw-r--r--libre/linux-libre/ChangeLog5
-rw-r--r--libre/linux-libre/PKGBUILD47
-rw-r--r--libre/linux-libre/config.i686171
-rw-r--r--libre/linux-libre/config.x86_64176
-rw-r--r--libre/linux-libre/dib0700-fix.patch1487
-rw-r--r--libre/linux-libre/ext4-options.patch50
-rw-r--r--libre/linux-libre/fix-i915.patch26
-rw-r--r--libre/linux-libre/fix-memblock-3.3.x.patch65
-rw-r--r--libre/linux-libre/fix-r8712u-3.3.2.patch56
-rw-r--r--libre/linux-libre/i915-fix-incorrect-error-message.patch22
-rw-r--r--libre/linux-libre/i915-gpu-finish.patch55
-rw-r--r--libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch38
-rw-r--r--libre/linux-libre/linux-libre.install4
-rw-r--r--libre/linux-libre/linux-libre.preset2
-rw-r--r--libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch40
-rw-r--r--libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch99
-rw-r--r--libre/mplayer-vaapi-libre/PKGBUILD24
-rw-r--r--libre/mplayer-vaapi-libre/live-media.patch13
-rw-r--r--libre/mplayer-vaapi-libre/mplayer-vaapi.install4
-rw-r--r--libre/mplayer-vaapi-libre/tweak-desktop-file.patch28
-rw-r--r--libre/pacman-mirrorlist-libre/PKGBUILD6
-rw-r--r--libre/parabola-archiso-git/PKGBUILD45
-rw-r--r--libre/parabolaweb-git/Makefile26
-rw-r--r--libre/parabolaweb-git/PKGBUILD (renamed from ~lukeshu/parabolaweb-git/PKGBUILD)28
-rw-r--r--libre/parabolaweb-git/deps-ver.txt7
-rw-r--r--libre/parabolaweb-git/parabolaweb.init.sh52
-rw-r--r--libre/parabolaweb-git/parabolaweb.update.sh.in59
-rw-r--r--libre/parabolaweb-git/requirements_prod.txt7
-rw-r--r--libre/python2-ply/PKGBUILD16
-rw-r--r--libre/seamonkey-libre/PKGBUILD20
-rw-r--r--libre/seamonkey-libre/clrf.patch265
-rw-r--r--libre/seamonkey-libre/gcc47.patch39
-rw-r--r--libre/seamonkey-libre/mozconfig3
-rw-r--r--libre/syslinux/PKGBUILD61
-rw-r--r--libre/syslinux/fix-undefined-type-umode_t.patch58
-rw-r--r--libre/syslinux/rePKGBUILD45
-rw-r--r--libre/syslinux/splash.pngbin0 -> 9932 bytes
-rw-r--r--libre/syslinux/syslinux-dont-build-dos-windows-targets.patch12
-rw-r--r--libre/syslinux/syslinux-install_update463
-rw-r--r--libre/syslinux/syslinux.cfg79
-rw-r--r--libre/syslinux/syslinux.install13
-rw-r--r--libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch27
-rw-r--r--libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch155
-rw-r--r--libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch31
-rw-r--r--libre/systemd/PKGBUILD123
-rw-r--r--libre/systemd/os-release7
-rw-r--r--libre/systemd/rePKGBUILD52
-rw-r--r--libre/systemd/systemd.install50
-rw-r--r--libre/texlive-bin-libre/PKGBUILD10
-rw-r--r--libre/texlive-bin-libre/luatex-poppler-0.20.patch77
-rw-r--r--libre/thunderbird-libre/PKGBUILD10
-rw-r--r--libre/thunderbird-libre/gcc46.patch12
-rw-r--r--libre/thunderbird-libre/gnuzilla-addons.patch36
-rw-r--r--libre/thunderbird-libre/libvpx.patch12
-rw-r--r--libre/thunderbird-libre/mozilla-notify.patch12
-rw-r--r--libre/thunderbird-libre/python2.7.patch11
-rw-r--r--libre/thunderbird-libre/thunderbird-appversion.patch12
-rw-r--r--libre/thunderbird-libre/thunderbird-preferences.patch30
-rw-r--r--libre/thunderbird-libre/thunderbird-shared-error.patch15
-rw-r--r--libre/thunderbird-libre/xulrunner-png14.patch11
-rw-r--r--libre/unarchiver/PKGBUILD2
-rw-r--r--libre/virtualbox-libre/PKGBUILD10
-rw-r--r--libre/virtualbox-modules-lts/60-vboxguest.rules2
-rw-r--r--libre/virtualbox-modules-lts/LocalConfig.kmk19
-rw-r--r--libre/virtualbox-modules-lts/PKGBUILD101
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-modules-lts.install18
-rw-r--r--libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install16
-rw-r--r--libre/virtualbox-modules/PKGBUILD23
-rw-r--r--libre/virtualbox-modules/linux34.patch12
-rw-r--r--libre/virtualbox-modules/virtualbox-modules.install6
-rw-r--r--libre/virtualbox-modules/virtualbox-parabola-modules.install6
-rw-r--r--libre/xulrunner-libre/PKGBUILD14
-rw-r--r--libre/xulrunner-libre/gcc47.patch89
-rw-r--r--libre/xulrunner-libre/mozconfig6
-rw-r--r--libre/your-freedom/PKGBUILD2
-rw-r--r--pcr/bsnes/PKGBUILD63
-rw-r--r--pcr/bsnes/add-usr-share-fallback.patch24
-rw-r--r--pcr/bsnes/bsnes.changelog474
-rw-r--r--pcr/bsnes/bsnes.install12
-rwxr-xr-xsocial/mednafen-wip/PKGBUILD6
-rw-r--r--social/seeks/PKGBUILD2
-rw-r--r--social/sipwitch/PKGBUILD15
-rw-r--r--testing/bluez/PKGBUILD7
-rw-r--r--testing/gpm/PKGBUILD41
-rwxr-xr-xtesting/gpm/gpm41
-rw-r--r--testing/gpm/gpm.conf.d4
-rw-r--r--testing/gpm/gpm.install16
-rw-r--r--testing/gpm/gpm.service6
-rwxr-xr-xtesting/gpm/gpm.sh3
-rw-r--r--testing/libpipeline/PKGBUILD30
-rw-r--r--testing/lighttpd/PKGBUILD12
-rw-r--r--testing/lighttpd/lighttpd.service1
-rw-r--r--testing/lighttpd/lighttpd.tmpfiles3
-rw-r--r--testing/php/php-fpm.service1
-rw-r--r--testing/pixman/PKGBUILD36
-rw-r--r--testing/pixman/test_failures_on_x86-32.diff46
-rw-r--r--testing/procps-ng/PKGBUILD35
-rw-r--r--testing/procps-ng/sysctl.conf42
-rwxr-xr-x~coadde/mednafen-wip/PKGBUILD31
-rw-r--r--~emulatorman/timekpr/Initializes_lastNotified_before_it_is_used.patch10
-rw-r--r--~emulatorman/timekpr/PKGBUILD74
-rw-r--r--~emulatorman/timekpr/timekpr.install24
-rwxr-xr-x~emulatorman/timekpr/timekprd.sh36
-rw-r--r--~fauno/notmuch/PKGBUILD7
-rw-r--r--~fauno/pandoc/PKGBUILD13
-rw-r--r--~fauno/pandoc/SRCBUILD4
-rw-r--r--~lukeshu/parabolaweb-git/parabolaweb.install65
496 files changed, 42030 insertions, 7749 deletions
diff --git a/community-testing/libvirt/libvirt.tmpfiles.d b/community-testing/libvirt/libvirt.tmpfiles.d
new file mode 100644
index 000000000..0cec93271
--- /dev/null
+++ b/community-testing/libvirt/libvirt.tmpfiles.d
@@ -0,0 +1,4 @@
+d /var/run/libvirt/qemu 0755 root root -
+d /var/run/libvirt/lxc 0755 root root -
+d /var/run/libvirt/uml 0755 root root -
+d /var/run/libvirt/network 0755 root root -
diff --git a/community-testing/multipath-tools/PKGBUILD b/community-testing/multipath-tools/PKGBUILD
index 28d08b8f4..b4f134390 100644
--- a/community-testing/multipath-tools/PKGBUILD
+++ b/community-testing/multipath-tools/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 71284 2012-05-26 08:37:33Z bpiotrowski $
+# $Id: PKGBUILD 71548 2012-05-28 17:59:37Z bpiotrowski $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Thomas S Hatch <thatch45 ar gmail dot com>
# Contributor: Michael P <ptchinster@archlinux.us>
@@ -6,7 +6,7 @@
pkgname=multipath-tools
pkgver=0.4.9
-pkgrel=7
+pkgrel=8
pkgdesc='Multipath tools for Linux'
arch=('i686' 'x86_64')
url="http://christophe.varoqui.free.fr/"
@@ -16,15 +16,25 @@ backup=('etc/multipath.conf' 'etc/multipath.conf.annotated')
install=multipath-tools.install
options=(!emptydirs)
source=(http://christophe.varoqui.free.fr/multipath-tools/$pkgname-$pkgver.tar.bz2
- multipath.conf multipath.conf.annotated multipathd.rc all-in-one.patch)
+ multipath.conf multipath.conf.annotated multipathd.rc
+ fix-build.patch buffer-overflows.patch log_enquery_overflow.patch
+ blacklist-cciss-devices.patch explicitly-include-posix_types.h.patch)
md5sums=('a6d4b48afc28f1f50f5ee4b1b06d2765'
'9324ff0ba8330dcb21b2fcf64988026f'
'be11462922eeeb9fcd2ba5f3f137b7d9'
'7c04ef96441363b0d43a2ebb13a87659'
- '885c0ba9c90b73cc93aa3f78005f81d6')
+ '885c0ba9c90b73cc93aa3f78005f81d6'
+ 'c5aab36777b0304a3525533cdd31bddc'
+ '00eae05e02f1b85062e998574ab1b833'
+ '61b4038c4c145ca52e836145ea6bdd6c'
+ 'd99beb6d8a9b84f90125c7cacf8a6006')
build() {
- patch -Np1 -i all-in-one.patch
+ patch -Np1 -i fix-build.patch
+ patch -Np1 -i buffer-overflows.patch
+ patch -Np1 -i log_enquery_overflow.patch
+ patch -Np1 -i blacklist-cciss-devices.patch
+ patch -Np1 -i explicitly-include-posix_types.h.patch
# Needs to be fixed upstream. Refer to
# https://bbs.archlinux.org/viewtopic.php?pid=793814#p793814
diff --git a/community-testing/multipath-tools/all-in-one.patch b/community-testing/multipath-tools/all-in-one.patch
deleted file mode 100644
index ff8f6824c..000000000
--- a/community-testing/multipath-tools/all-in-one.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-diff -rupN upstream/Makefile.inc devel/Makefile.inc
---- upstream/Makefile.inc 2010-05-22 14:01:58.000000000 +0200
-+++ devel/Makefile.inc 2012-05-26 10:14:46.969786387 +0200
-@@ -32,11 +32,10 @@ rcdir = $(prefix)/etc/init.d
- syslibdir = $(prefix)/$(LIB)
- libdir = $(prefix)/$(LIB)/multipath
-
--GZIP = /bin/gzip -9 -c
- INSTALL_PROGRAM = install
-
--OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
--CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
-+OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
-+CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
- SHARED_FLAGS = -shared
-
- %.o: %.c
-diff -rupN upstream/kpartx/Makefile devel/kpartx/Makefile
---- upstream/kpartx/Makefile 2010-05-22 14:01:58.000000000 +0200
-+++ devel/kpartx/Makefile 2012-05-26 10:23:38.909780754 +0200
-@@ -6,7 +6,7 @@ include ../Makefile.inc
-
- CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-
--LDFLAGS = -ldevmapper
-+LIBS = -ldevmapper
- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
- gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o
- EXEC = kpartx
-@@ -14,22 +14,22 @@ EXEC = kpartx
- all: $(EXEC)
-
- $(EXEC): $(OBJS)
-- $(CC) $(OBJS) -o $(EXEC) $(LDFLAGS)
-- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
-
- install: $(EXEC) $(EXEC).8
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
- $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
-- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
-+ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d
-+ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
-
- uninstall:
- rm -f $(DESTDIR)$(bindir)/$(EXEC)
-- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
-+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
-+ rm -f $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules
-
- clean:
-- rm -f core *.o $(EXEC) *.gz
-+ rm -f core *.o $(EXEC)
-diff -rupN upstream/kpartx/kpartx.rules devel/kpartx/kpartx.rules
---- upstream/kpartx/kpartx.rules 2010-05-22 14:01:58.000000000 +0200
-+++ devel/kpartx/kpartx.rules 2012-05-26 10:30:32.769776372 +0200
-@@ -27,9 +27,9 @@ ENV{DM_PART}=="?*", \
-
- # Create dm tables for partitions
- ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="mpath-*", \
-- RUN+="/sbin/kpartx -a -p -part /dev/$name"
-+ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name"
- ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="dmraid-*", \
-- RUN+="/sbin/kpartx -a -p -part /dev/$name"
-+ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name"
-
- LABEL="kpartx_end"
-
-diff -rupN upstream/multipath/Makefile devel/multipath/Makefile
---- upstream/multipath/Makefile 2010-05-22 14:01:58.000000000 +0200
-+++ devel/multipath/Makefile 2012-05-26 10:22:38.819781391 +0200
-@@ -7,32 +7,30 @@ include ../Makefile.inc
- OBJS = main.o
-
- CFLAGS += -I$(multipathdir)
--LDFLAGS += -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir)
-+LIBS = -lpthread -ldevmapper -ldl -L$(multipathdir) -lmultipath
-
- EXEC = multipath
-
- all: $(EXEC)
-
- $(EXEC): $(OBJS)
-- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS)
-- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
-- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
-
- install:
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
-- $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/
-+ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d
-+ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir)
-
- uninstall:
-- rm $(DESTDIR)/etc/udev/rules.d/multipath.rules
-- rm $(DESTDIR)$(bindir)/$(EXEC)
-- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
-- rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-+ rm -f $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules
-+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
-+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
-+ rm -f $(DESTDIR)$(man5dir)/$(EXEC).conf.5
-
- clean:
-- rm -f core *.o $(EXEC) *.gz
-+ rm -f core *.o $(EXEC)
-diff -rupN upstream/multipath/multipath.rules devel/multipath/multipath.rules
---- upstream/multipath/multipath.rules 2010-05-22 14:01:58.000000000 +0200
-+++ devel/multipath/multipath.rules 2012-05-26 10:17:34.849784609 +0200
-@@ -1,7 +1,24 @@
--#
--# udev rules for multipathing.
--# The persistent symlinks are created with the kpartx rules
--#
-+# multipath wants the devmaps presented as meaninglful device names
-+# so name them after their devmap name
-+SUBSYSTEM!="block", GOTO="end_mpath"
-
--# socket for uevents
--SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event"
-+ENV{MPATH_SBIN_PATH}="/sbin"
-+TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
-+
-+ACTION=="add", ENV{DEVTYPE}!="partition", \
-+ ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
-+ PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -c $tempnode", \
-+ ENV{DM_MULTIPATH_DEVICE_PATH}="1"
-+
-+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{DEVTYPE}!="partition", \
-+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-+
-+RUN+="socket:/org/kernel/dm/multipath_event"
-+KERNEL!="dm-*", GOTO="end_mpath"
-+ACTION!="change", GOTO="end_mpath"
-+ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
-+ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
-+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
-+ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
-+RUN+="$env{MPATH_SBIN_PATH}/kpartx -a -p p $tempnode"
-+LABEL="end_mpath"
-diff -rupN upstream/multipath-tools.spec.in devel/multipath-tools.spec.in
---- upstream/multipath-tools.spec.in 2010-05-22 14:01:58.000000000 +0200
-+++ devel/multipath-tools.spec.in 2012-05-26 10:24:16.989780353 +0200
-@@ -47,8 +47,8 @@ rm -rf $RPM_BUILD_ROOT
- %{prefix}/usr/share/man/man8/multipathd.8.gz
- %{prefix}/usr/share/man/man5/multipath.conf.5.gz
- %{prefix}/sbin/multipathd
--%{prefix}/etc/udev/rules.d/multipath.rules
--%{prefix}/etc/udev/rules.d/kpartx.rules
-+%{prefix}/usr/lib/udev/rules.d/multipath.rules
-+%{prefix}/usr/lib/udev/rules.d/kpartx.rules
- %{prefix}/lib/udev/kpartx_id
- %{prefix}/lib/multipath/*.so
-
-diff -rupN upstream/multipathd/Makefile devel/multipathd/Makefile
---- upstream/multipathd/Makefile 2010-05-22 14:01:58.000000000 +0200
-+++ devel/multipathd/Makefile 2012-05-26 10:14:46.969786387 +0200
-@@ -6,8 +6,8 @@ include ../Makefile.inc
- # basic flags setting
- #
- CFLAGS += -I$(multipathdir)
--LDFLAGS += -lpthread -ldevmapper -lreadline -lncurses -ldl \
-- -lmultipath -L$(multipathdir)
-+LIBS = -lpthread -ldevmapper -lreadline -lncurses -ldl \
-+ -L$(multipathdir) -lmultipath
-
- #
- # debuging stuff
-@@ -28,21 +28,20 @@ OBJS = main.o pidfile.o uxlsnr.o uxclnt.
- all : $(EXEC)
-
- $(EXEC): $(OBJS)
-- $(CC) $(CFLAGS) $(LDFLAGS) -o $(EXEC) $(OBJS)
-- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $(EXEC)
-
- install:
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
-
- uninstall:
- rm -f $(DESTDIR)$(bindir)/$(EXEC)
- rm -f $(DESTDIR)$(rcdir)/$(EXEC)
-- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
-+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
-
- clean:
-- rm -f core *.o $(EXEC) *.gz
-+ rm -f core *.o $(EXEC)
-
diff --git a/community-testing/multipath-tools/blacklist-cciss-devices.patch b/community-testing/multipath-tools/blacklist-cciss-devices.patch
new file mode 100644
index 000000000..497121c36
--- /dev/null
+++ b/community-testing/multipath-tools/blacklist-cciss-devices.patch
@@ -0,0 +1,29 @@
+From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
+Date: Fri, 3 Oct 2008 12:39:48 +0200
+Subject: [PATCH] blacklist cciss devices
+
+cciss support isn't complete in 0.4.8 and the half functioning causes
+problems in d-i among other things.
+Closes: #500991
+---
+ libmultipath/blacklist.c | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index f369517..2e5efc8 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -121,6 +121,12 @@ setup_default_blist (struct config * conf)
+ if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
+ return 1;
+
++ str = STRDUP("^cciss!c[0-9]d[0-9]*");
++ if (!str)
++ return 1;
++ if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
++ return 1;
++
+ vector_foreach_slot (conf->hwtable, hwe, i) {
+ if (hwe->bl_product) {
+ if (alloc_ble_device(conf->blist_device))
+--
diff --git a/community-testing/multipath-tools/buffer-overflows.patch b/community-testing/multipath-tools/buffer-overflows.patch
new file mode 100644
index 000000000..38719aceb
--- /dev/null
+++ b/community-testing/multipath-tools/buffer-overflows.patch
@@ -0,0 +1,22 @@
+--- multipath-tools-0.4.9.orig/libmultipath/prioritizers/datacore.c 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/libmultipath/prioritizers/datacore.c 2010-11-28 12:22:12.037228583 -0800
+@@ -94,7 +94,7 @@
+ if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK)
+ return 0;
+
+- snprintf(vendor, 9, "%.8s\n", inqBuffp + 8);
++ snprintf(vendor, 8, "%.8s\n", inqBuffp + 8);
+ snprintf(product, 17, "%.16s", inqBuffp + 16);
+ snprintf(luname, 21, "%.19s", inqBuffp + 36);
+ snprintf(wwpn, 17, "%.16s", inqBuffp + 96);
+--- multipath-tools-0.4.9.orig/libmultipath/prioritizers/hds.c 2010-05-22 05:01:58.000000000 -0700
++++ multipath-tools-0.4.9/libmultipath/prioritizers/hds.c 2010-11-28 12:22:44.199483997 -0800
+@@ -123,7 +123,7 @@
+ return -1;
+ }
+
+- snprintf (vendor, 9, "%.8s", inqBuffp + 8);
++ snprintf (vendor, 8, "%.8s", inqBuffp + 8);
+ snprintf (product, 17, "%.16s", inqBuffp + 16);
+ snprintf (serial, 5, "%.4s", inqBuffp + 40);
+ snprintf (ldev, 5, "%.4s", inqBuffp + 44);
diff --git a/community-testing/multipath-tools/explicitly-include-posix_types.h.patch b/community-testing/multipath-tools/explicitly-include-posix_types.h.patch
new file mode 100644
index 000000000..6cbbc3ba1
--- /dev/null
+++ b/community-testing/multipath-tools/explicitly-include-posix_types.h.patch
@@ -0,0 +1,35 @@
+From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
+Date: Sat, 5 Dec 2009 18:11:00 +0100
+Subject: [PATCH] explicitly include posix_types.h
+
+to get the correct type for __kernel_old_dev_t
+
+Closes: #558990
+---
+ kpartx/lopart.c | 13 +------------
+ 1 files changed, 1 insertions(+), 12 deletions(-)
+
+Index: mpath/kpartx/lopart.c
+===================================================================
+--- mpath.orig/kpartx/lopart.c 2012-02-09 18:02:23.808800332 +0530
++++ mpath/kpartx/lopart.c 2012-02-09 18:15:24.400671080 +0530
+@@ -26,18 +26,7 @@
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+ #include <sysmacros.h>
+-
+-#if defined(__hppa__) || defined(__powerpc64__) || defined (__alpha__) \
+- || defined (__x86_64__)
+-typedef unsigned long __kernel_old_dev_t;
+-#elif defined(__powerpc__) || defined(__ia64__) || (defined(__sparc__) && defined (__arch64__))
+-typedef unsigned int __kernel_old_dev_t;
+-#else
+-typedef unsigned short __kernel_old_dev_t;
+-#endif
+-
+-#define dev_t __kernel_old_dev_t
+-
++#include <asm/posix_types.h>
+ #include <linux/loop.h>
+
+ #include "lopart.h"
diff --git a/community-testing/multipath-tools/fix-build.patch b/community-testing/multipath-tools/fix-build.patch
index c6196f73b..ff8f6824c 100644
--- a/community-testing/multipath-tools/fix-build.patch
+++ b/community-testing/multipath-tools/fix-build.patch
@@ -1,6 +1,24 @@
---- multipath-tools-0.4.9.orig/kpartx/Makefile 2010-05-22 05:01:58.000000000 -0700
-+++ multipath-tools-0.4.9/kpartx/Makefile 2010-11-28 12:14:25.763531104 -0800
-@@ -6,7 +6,7 @@
+diff -rupN upstream/Makefile.inc devel/Makefile.inc
+--- upstream/Makefile.inc 2010-05-22 14:01:58.000000000 +0200
++++ devel/Makefile.inc 2012-05-26 10:14:46.969786387 +0200
+@@ -32,11 +32,10 @@ rcdir = $(prefix)/etc/init.d
+ syslibdir = $(prefix)/$(LIB)
+ libdir = $(prefix)/$(LIB)/multipath
+
+-GZIP = /bin/gzip -9 -c
+ INSTALL_PROGRAM = install
+
+-OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
+-CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
++OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
++CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
+ SHARED_FLAGS = -shared
+
+ %.o: %.c
+diff -rupN upstream/kpartx/Makefile devel/kpartx/Makefile
+--- upstream/kpartx/Makefile 2010-05-22 14:01:58.000000000 +0200
++++ devel/kpartx/Makefile 2012-05-26 10:23:38.909780754 +0200
+@@ -6,7 +6,7 @@ include ../Makefile.inc
CFLAGS += -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
@@ -9,7 +27,7 @@
OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
gpt.o mac.o crc32.o lopart.o xstrncpy.o devmapper.o
EXEC = kpartx
-@@ -14,8 +14,7 @@
+@@ -14,22 +14,22 @@ EXEC = kpartx
all: $(EXEC)
$(EXEC): $(OBJS)
@@ -19,12 +37,13 @@
install: $(EXEC) $(EXEC).8
$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
-@@ -23,13 +22,14 @@
+ $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
$(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
$(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/
-+ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
++ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d
++ $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules
$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
@@ -33,30 +52,30 @@
rm -f $(DESTDIR)$(bindir)/$(EXEC)
- rm -f $(DESTDIR)$(mandir)/$(EXEC).8.gz
+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
-+ rm -f $(DESTDIR)/etc/udev/rules.d/66-kpartx.rules
++ rm -f $(DESTDIR)/usr/lib/udev/rules.d/66-kpartx.rules
clean:
- rm -f core *.o $(EXEC) *.gz
+ rm -f core *.o $(EXEC)
---- multipath-tools-0.4.9.orig/Makefile.inc 2010-05-22 05:01:58.000000000 -0700
-+++ multipath-tools-0.4.9/Makefile.inc 2010-11-28 12:14:25.763531104 -0800
-@@ -32,11 +32,10 @@
- syslibdir = $(prefix)/$(LIB)
- libdir = $(prefix)/$(LIB)/multipath
-
--GZIP = /bin/gzip -9 -c
- INSTALL_PROGRAM = install
-
--OPTFLAGS = -pipe -g -Wall -Wunused -Wstrict-prototypes
--CFLAGS = $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
-+OPTFLAGS = -Wall -Wunused -Wstrict-prototypes
-+CFLAGS += $(OPTFLAGS) -fPIC -DLIB_STRING=\"${LIB}\"
- SHARED_FLAGS = -shared
-
- %.o: %.c
---- multipath-tools-0.4.9.orig/multipath/Makefile 2010-05-22 05:01:58.000000000 -0700
-+++ multipath-tools-0.4.9/multipath/Makefile 2010-11-28 12:14:46.718697048 -0800
-@@ -7,32 +7,30 @@
+diff -rupN upstream/kpartx/kpartx.rules devel/kpartx/kpartx.rules
+--- upstream/kpartx/kpartx.rules 2010-05-22 14:01:58.000000000 +0200
++++ devel/kpartx/kpartx.rules 2012-05-26 10:30:32.769776372 +0200
+@@ -27,9 +27,9 @@ ENV{DM_PART}=="?*", \
+
+ # Create dm tables for partitions
+ ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="mpath-*", \
+- RUN+="/sbin/kpartx -a -p -part /dev/$name"
++ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name"
+ ENV{DM_STATE}=="ACTIVE", ENV{DM_UUID}=="dmraid-*", \
+- RUN+="/sbin/kpartx -a -p -part /dev/$name"
++ RUN+="/usr/sbin/kpartx -a -p -part /dev/$name"
+
+ LABEL="kpartx_end"
+
+diff -rupN upstream/multipath/Makefile devel/multipath/Makefile
+--- upstream/multipath/Makefile 2010-05-22 14:01:58.000000000 +0200
++++ devel/multipath/Makefile 2012-05-26 10:22:38.819781391 +0200
+@@ -7,32 +7,30 @@ include ../Makefile.inc
OBJS = main.o
CFLAGS += -I$(multipathdir)
@@ -76,9 +95,10 @@
install:
$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
+- $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d
- $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/
-+ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/65-multipath.rules
++ $(INSTALL_PROGRAM) -d $(DESTDIR)/usr/lib/udev/rules.d
++ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules
$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)
@@ -91,7 +111,7 @@
- rm $(DESTDIR)$(bindir)/$(EXEC)
- rm $(DESTDIR)$(mandir)/$(EXEC).8.gz
- rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-+ rm -f $(DESTDIR)/etc/udev/rules.d/65-multipath.rules
++ rm -f $(DESTDIR)/usr/lib/udev/rules.d/65-multipath.rules
+ rm -f $(DESTDIR)$(bindir)/$(EXEC)
+ rm -f $(DESTDIR)$(mandir)/$(EXEC).8
+ rm -f $(DESTDIR)$(man5dir)/$(EXEC).conf.5
@@ -99,9 +119,58 @@
clean:
- rm -f core *.o $(EXEC) *.gz
+ rm -f core *.o $(EXEC)
---- multipath-tools-0.4.9.orig/multipathd/Makefile 2010-05-22 05:01:58.000000000 -0700
-+++ multipath-tools-0.4.9/multipathd/Makefile 2010-11-28 12:15:46.624171566 -0800
-@@ -6,8 +6,8 @@
+diff -rupN upstream/multipath/multipath.rules devel/multipath/multipath.rules
+--- upstream/multipath/multipath.rules 2010-05-22 14:01:58.000000000 +0200
++++ devel/multipath/multipath.rules 2012-05-26 10:17:34.849784609 +0200
+@@ -1,7 +1,24 @@
+-#
+-# udev rules for multipathing.
+-# The persistent symlinks are created with the kpartx rules
+-#
++# multipath wants the devmaps presented as meaninglful device names
++# so name them after their devmap name
++SUBSYSTEM!="block", GOTO="end_mpath"
+
+-# socket for uevents
+-SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event"
++ENV{MPATH_SBIN_PATH}="/sbin"
++TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
++
++ACTION=="add", ENV{DEVTYPE}!="partition", \
++ ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
++ PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -c $tempnode", \
++ ENV{DM_MULTIPATH_DEVICE_PATH}="1"
++
++ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{DEVTYPE}!="partition", \
++ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
++
++RUN+="socket:/org/kernel/dm/multipath_event"
++KERNEL!="dm-*", GOTO="end_mpath"
++ACTION!="change", GOTO="end_mpath"
++ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
++ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
++ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
++ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
++RUN+="$env{MPATH_SBIN_PATH}/kpartx -a -p p $tempnode"
++LABEL="end_mpath"
+diff -rupN upstream/multipath-tools.spec.in devel/multipath-tools.spec.in
+--- upstream/multipath-tools.spec.in 2010-05-22 14:01:58.000000000 +0200
++++ devel/multipath-tools.spec.in 2012-05-26 10:24:16.989780353 +0200
+@@ -47,8 +47,8 @@ rm -rf $RPM_BUILD_ROOT
+ %{prefix}/usr/share/man/man8/multipathd.8.gz
+ %{prefix}/usr/share/man/man5/multipath.conf.5.gz
+ %{prefix}/sbin/multipathd
+-%{prefix}/etc/udev/rules.d/multipath.rules
+-%{prefix}/etc/udev/rules.d/kpartx.rules
++%{prefix}/usr/lib/udev/rules.d/multipath.rules
++%{prefix}/usr/lib/udev/rules.d/kpartx.rules
+ %{prefix}/lib/udev/kpartx_id
+ %{prefix}/lib/multipath/*.so
+
+diff -rupN upstream/multipathd/Makefile devel/multipathd/Makefile
+--- upstream/multipathd/Makefile 2010-05-22 14:01:58.000000000 +0200
++++ devel/multipathd/Makefile 2012-05-26 10:14:46.969786387 +0200
+@@ -6,8 +6,8 @@ include ../Makefile.inc
# basic flags setting
#
CFLAGS += -I$(multipathdir)
@@ -112,7 +181,7 @@
#
# debuging stuff
-@@ -28,21 +28,20 @@
+@@ -28,21 +28,20 @@ OBJS = main.o pidfile.o uxlsnr.o uxclnt.
all : $(EXEC)
$(EXEC): $(OBJS)
diff --git a/community-testing/multipath-tools/log_enquery_overflow.patch b/community-testing/multipath-tools/log_enquery_overflow.patch
new file mode 100644
index 000000000..67367c9f4
--- /dev/null
+++ b/community-testing/multipath-tools/log_enquery_overflow.patch
@@ -0,0 +1,69 @@
+From e1d69df0cdd1627676501df3a533b25ffadaeff0 Mon Sep 17 00:00:00 2001
+From: Arkadiusz Miskiewicz <arekm@maven.pl>
+Date: Sat, 27 Nov 2010 19:21:21 +0100
+Subject: [PATCH] multipath-tools overflow
+
+On Saturday 27 of November 2010, you wrote:
+
+[...]
+
+> the whole logarea is memset to 0 by logarea_init(), and each dequeued
+> message is also memset to 0 by log_dequeue(), so it seems normal that
+> msg->str value is 0x0, but it's really its address that matters.
+
+Ok, got it. Pointers, memory areas in my debugging session - are looking
+good then.
+
+>
+> It's not clear to me : are you actually hitting a bug or is it your
+> debug session that puzzles you ?
+
+I'm hitting a bug. multipathd dies for me at that strcpy(). Now I think
+the bug is strcpy usage instead of memcpy because I'm building with
+-O2 -D_FORTIFY_SOURCE=2 which turns on special glibc overflow
+detection.
+
+That detection seem to be smart enough to know that &str area is not
+a string memory and aborts the program.
+
+Found similar problem discussed here
+http://sourceware.org/ml/binutils/2005-11/msg00308.html
+
+glibc aborts the program:
+[pid 13432] writev(2, [{"*** ", 4}, {"buffer overflow detected", 24},
+{" ***: ", 6}, {"/home/users/arekm/rpm/BUILD/multipath-tools-0.4.9
+/multipathd/multipathd", 71}, {" terminated\n", 12}], 5) = 117
+
+same for valgrind:
+**13436** *** strcpy_chk: buffer overflow detected ***: program terminated
+==13436== at 0x4024997: VALGRIND_PRINTF_BACKTRACE (valgrind.h:4477)
+==13436== by 0x40265F8: __strcpy_chk (mc_replace_strmem.c:781)
+==13436== by 0x40EDC06: log_enqueue (string3.h:107)
+==13436== by 0x40ED68A: log_safe (log_pthread.c:24)
+==13436== by 0x40E296A: dlog (debug.c:36)
+==13436== by 0x804ECEC: pidfile_create (pidfile.c:37)
+==13436== by 0x804E731: main (main.c:1424)
+
+The bug is not visible if I run multipathd in debug mode (-d).
+
+This patch fixes the problem for me by avoiding false positive on strcpy_chk.
+---
+ libmultipath/log.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/libmultipath/log.c b/libmultipath/log.c
+index e56e46b..57b7696 100644
+--- a/libmultipath/log.c
++++ b/libmultipath/log.c
+@@ -142,7 +142,7 @@ int log_enqueue (int prio, const char * fmt, va_list ap)
+ la->empty = 0;
+ msg = (struct logmsg *)la->tail;
+ msg->prio = prio;
+- strcpy((void *)&msg->str, buff);
++ memcpy((void *)&msg->str, buff, strlen(buff) + 1);
+ lastmsg->next = la->tail;
+ msg->next = la->head;
+
+--
+1.7.6.5
+
diff --git a/community/aria2/PKGBUILD b/community/aria2/PKGBUILD
index 935d57279..b153822ac 100644
--- a/community/aria2/PKGBUILD
+++ b/community/aria2/PKGBUILD
@@ -1,10 +1,12 @@
-# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# $Id: PKGBUILD 71517 2012-05-28 04:56:49Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=aria2
-pkgver=1.15.0
+pkgver=1.15.1
pkgrel=1
pkgdesc='Download utility that supports HTTP(S), FTP, BitTorrent, and Metalink'
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +15,7 @@ license=('GPL')
depends=('gnutls' 'libxml2' 'sqlite' 'c-ares' 'ca-certificates')
checkdepends=('cppunit')
source=("http://downloads.sourceforge.net/aria2/aria2-${pkgver}.tar.bz2")
-md5sums=('a381b8a0fe2d71f726187237ac6de82d')
+md5sums=('a749a1f7cfe03a7518630d2310267c42')
build() {
cd aria2-${pkgver}
diff --git a/community/ecryptfs-utils/PKGBUILD b/community/ecryptfs-utils/PKGBUILD
index 8cd135b78..f6fbf591c 100644
--- a/community/ecryptfs-utils/PKGBUILD
+++ b/community/ecryptfs-utils/PKGBUILD
@@ -1,24 +1,28 @@
-# $Id: PKGBUILD 70347 2012-05-04 23:54:39Z allan $
+# $Id: PKGBUILD 71565 2012-05-29 11:01:34Z tredaelli $
# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: Richard Murri <admin@richardmurri.com>
# Contributor: Michal Krenek <mikos@sg1.cz>
pkgname=ecryptfs-utils
pkgver=96
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
pkgdesc="Enterprise-class stacked cryptographic filesystem for Linux"
url="https://launchpad.net/ecryptfs"
license=('GPL')
makedepends=('swig' 'intltool' 'gettext')
depends=('keyutils' 'nss' 'python2')
-source=("http://launchpad.net/ecryptfs/trunk/${pkgver}/+download/${pkgname}_${pkgver}.orig.tar.gz")
+source=("http://launchpad.net/ecryptfs/trunk/${pkgver}/+download/${pkgname}_${pkgver}.orig.tar.gz"
+ symlinked_mtab.patch)
options=(!libtool)
-md5sums=('4f92c9f6e8f62ac00ca7e2c4e480f1d7')
+md5sums=('4f92c9f6e8f62ac00ca7e2c4e480f1d7'
+ '7740ed69601cfc75bb96c9ad072dfdb4')
build() {
cd "$srcdir/${pkgname}-${pkgver}"
./configure --prefix=/usr --with-pamdir=/usr/lib/security PYTHON=python2
+ # Apply patch to detect if /etc/mtab is a symlink.
+ patch src/libecryptfs/main.c < "$srcdir/symlinked_mtab.patch"
make
}
diff --git a/community/ecryptfs-utils/symlinked_mtab.patch b/community/ecryptfs-utils/symlinked_mtab.patch
new file mode 100644
index 000000000..2ba0aa8bf
--- /dev/null
+++ b/community/ecryptfs-utils/symlinked_mtab.patch
@@ -0,0 +1,25 @@
+--- ecryptfs-utils/src/ecryptfs-utils-96/src/libecryptfs/main.c.orig
++++ ecryptfs-utils/src/ecryptfs-utils-96/src/libecryptfs/main.c
+@@ -387,6 +387,8 @@
+ char *fullpath_source = NULL;
+ char *fullpath_target = NULL;
+ int rc;
++ char dummy;
++ int useMtab;
+
+ mountent.mnt_opts = NULL;
+ if (!source) {
+@@ -425,6 +427,13 @@
+ syslog(LOG_ERR, "Failed to perform eCryptfs mount: [%m]\n");
+ goto out;
+ }
++ /* Check if mtab is a symlink */
++ useMtab = (readlink("/etc/mtab", &dummy, 1) < 0);
++ if (!useMtab) {
++ /* No need updating mtab */
++ rc = 0;
++ goto out;
++ }
+ mtab_fd = setmntent("/etc/mtab", "a");
+ if (!mtab_fd) {
+ rc = -EACCES;
diff --git a/community/gsasl/PKGBUILD b/community/gsasl/PKGBUILD
index e11257523..d3b9a3754 100644
--- a/community/gsasl/PKGBUILD
+++ b/community/gsasl/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 65540 2012-02-21 08:48:57Z spupykin $
+# $Id: PKGBUILD 71580 2012-05-30 09:14:40Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Orivej Desh <smpuj@bk.ru>
# Maintainer: Orivej Desh <smpuj@bk.ru>
pkgname=gsasl
-pkgver=1.6.1
-pkgrel=4
+pkgver=1.8.0
+pkgrel=1
pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms"
arch=("i686" "x86_64" 'mips64el')
url="http://josefsson.org/gsasl/"
license=("GPL")
depends=('gnutls' 'libidn' 'krb5' 'libgcrypt')
source=("ftp://ftp.gnu.org/gnu/gsasl/$pkgname-$pkgver.tar.gz")
-md5sums=('7ae813eeb1f90ad52e9a781ac9e17f28')
+md5sums=('982fe54a20016aa46a871c084c990c36')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/kpartsplugin/PKGBUILD b/community/kpartsplugin/PKGBUILD
index 13f9135c8..14460add9 100644
--- a/community/kpartsplugin/PKGBUILD
+++ b/community/kpartsplugin/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 69899 2012-04-25 21:22:15Z tredaelli $
+# $Id: PKGBUILD 71596 2012-05-30 14:38:44Z tredaelli $
# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: birdflesh <antkoul at gmail dot com>
# Contributor: Frikilinux <frikilinux at frikilinux.com.ar>
pkgname=kpartsplugin
-pkgver=20120422
+pkgver=20120529
pkgrel=1
pkgdesc="This plugin uses KDE's KParts to embed file viewers into non-KDE browsers"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ license=('GPL3' 'BSD')
depends=('kdelibs')
makedepends=('automoc4' 'cmake')
source=("${url}${pkgname}-${pkgver}.tar.bz2" "LICENSE")
-md5sums=('6f1126a5f9a84374b14d99086a935026'
+md5sums=('ad6b0f146f6b1c6bf1db4ff21ba95dda'
'c4cc811349e40e9f34e77e27b902ad96')
build(){
diff --git a/community/libmediainfo/PKGBUILD b/community/libmediainfo/PKGBUILD
index 51cb23690..9ca9ece7a 100644
--- a/community/libmediainfo/PKGBUILD
+++ b/community/libmediainfo/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 69442 2012-04-16 11:13:20Z spupykin $
+# $Id: PKGBUILD 71582 2012-05-30 09:15:22Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: hydro <hydro@freenet.de>
pkgname=libmediainfo
-pkgver=0.7.56
-pkgrel=2
+pkgver=0.7.58
+pkgrel=1
pkgdesc="shared library for mediainfo"
arch=('i686' 'x86_64' 'mips64el')
url="http://mediainfo.sourceforge.net"
@@ -13,15 +13,11 @@ depends=( 'curl' 'libmms' 'libzen')
makedepends=('libtool' 'automake' 'autoconf')
options=(!libtool)
source=(http://downloads.sourceforge.net/mediainfo/${pkgname}_${pkgver}.tar.bz2
- libmediainfo-0.7.50-libmms.patch
- gcc-4.7.patch)
-md5sums=('a41c484fea74d34f8f1b430a4d444a72'
- '2f4b21cc250f663d52b497dedb963e3b'
- '3221024ca99fb941d8eb5302ae470c6d')
+ libmediainfo-0.7.50-libmms.patch)
+md5sums=('a87a32f243052fb1eca3918c519f64b6'
+ '2f4b21cc250f663d52b497dedb963e3b')
build() {
- cd $srcdir/MediaInfoLib/
- patch -p1 <$srcdir/gcc-4.7.patch
cd $srcdir/MediaInfoLib/Project/GNU/Library
sh ./autogen
./configure --prefix=/usr --enable-shared --disable-static --with-libcurl --with-libmms
diff --git a/community/libmediainfo/gcc-4.7.patch b/community/libmediainfo/gcc-4.7.patch
deleted file mode 100644
index 5bdfc53e3..000000000
--- a/community/libmediainfo/gcc-4.7.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -aur MediaInfoLib/Source/MediaInfo/Reader/Reader_libcurl.cpp MediaInfoLib.patched/Source/MediaInfo/Reader/Reader_libcurl.cpp
---- MediaInfoLib/Source/MediaInfo/Reader/Reader_libcurl.cpp 2012-04-08 20:25:35.000000000 +0200
-+++ MediaInfoLib.patched/Source/MediaInfo/Reader/Reader_libcurl.cpp 2012-04-13 05:14:46.924995168 +0200
-@@ -249,15 +249,15 @@
- #else
- libcurl_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("./" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/local/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/local/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!libcurl_Module)
-- libcurl_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ libcurl_Module=dlopen("/usr/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- #endif
- if (!libcurl_Module)
- {
-diff -aur MediaInfoLib/Source/MediaInfoDLL/MediaInfoDLL.h MediaInfoLib.patched/Source/MediaInfoDLL/MediaInfoDLL.h
---- MediaInfoLib/Source/MediaInfoDLL/MediaInfoDLL.h 2012-04-08 12:08:50.000000000 +0200
-+++ MediaInfoLib.patched/Source/MediaInfoDLL/MediaInfoDLL.h 2012-04-13 05:14:05.481020899 +0200
-@@ -248,24 +248,24 @@
-
- #ifdef MEDIAINFO_GLIBC
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- if (!g_module_symbol (MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfo_##_Name)) \
-+ if (!g_module_symbol (MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2, (gpointer*)&MediaInfo_##_Name)) \
- Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- if (!g_module_symbol (MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2, (gpointer*)&MediaInfoList_##_Name)) \
-+ if (!g_module_symbol (MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2, (gpointer*)&MediaInfoList_##_Name)) \
- Errors++;
- #elif defined (_WIN32) || defined (WIN32)
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfo_##_Name=(MEDIAINFO_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfo_##_Name==NULL) Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)GetProcAddress(MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfoList_##_Name==NULL) Errors++;
- #else
- #define MEDIAINFO_ASSIGN(_Name,_Name2) \
-- MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(MediaInfo_Module, "MediaInfo"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfo_##_Name=(MEDIAINFO_##_Name)dlsym(MediaInfo_Module, "MediaInfo" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfo_##_Name==NULL) Errors++;
- #define MEDIAINFOLIST_ASSIGN(_Name,_Name2) \
-- MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(MediaInfo_Module, "MediaInfoList"MEDIAINFO_Ansi"_"_Name2); \
-+ MediaInfoList_##_Name=(MEDIAINFOLIST_##_Name)dlsym(MediaInfo_Module, "MediaInfoList" MEDIAINFO_Ansi "_" _Name2); \
- if (MediaInfoList_##_Name==NULL) Errors++;
- #endif
-
-@@ -317,15 +317,15 @@
- #else
- MediaInfo_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("./" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/local/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/local/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/lib/" MEDIAINFODLL_NAME, RTLD_LAZY);
- if (!MediaInfo_Module)
-- MediaInfo_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
-+ MediaInfo_Module=dlopen("/usr/lib64/" MEDIAINFODLL_NAME, RTLD_LAZY);
- #endif
- if (!MediaInfo_Module)
- return (size_t)-1;
diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD
index 9f1501a8b..32d80a6de 100644
--- a/community/libvirt/PKGBUILD
+++ b/community/libvirt/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 70825 2012-05-17 09:48:45Z spupykin $
+# $Id: PKGBUILD 71544 2012-05-28 16:19:18Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jonathan Wiersma <archaur at jonw dot org>
pkgname=libvirt
pkgver=0.9.12
-pkgrel=3
+pkgrel=7
pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
arch=('i686' 'x86_64' 'mips64el')
url="http://libvirt.org/"
@@ -34,6 +34,7 @@ source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz"
libvirtd.conf.d
libvirtd-guests.rc.d
libvirtd-guests.conf.d
+ libvirt.tmpfiles.d
openbsd-netcat-default.patch
libvirt-libnl3.patch)
md5sums=('5e842bc55733ceba60c64767580ff3e4'
@@ -41,6 +42,7 @@ md5sums=('5e842bc55733ceba60c64767580ff3e4'
'3ed0e24f5b5e25bf553f5427d64915e6'
'8297b1be794a24cc77f66af9380ace59'
'bc2971dacdbac967fc3474e50affc345'
+ '8d98e62915785686b0b6c8c070628392'
'b0be50eb9dfe4d133decf23b60880f7d'
'ba27fbcd989de8d84cfff98326f10c54')
@@ -64,8 +66,8 @@ build() {
export LDFLAGS=-lX11
export RADVD=/usr/sbin/radvd
[ -f Makefile ] || ./configure --prefix=/usr --libexec=/usr/lib/"$pkgname" \
- --with-storage-lvm --without-xen --with-udev --without-hal --disable-static
- find -name Makefile -exec sed -i 's#-L /usr#-L/usr#' {} \;
+ --with-storage-lvm --without-xen --with-udev --without-hal --disable-static \
+ --with-init-script=systemd
make -j1
}
@@ -80,5 +82,18 @@ package() {
install -D -m755 "$srcdir"/libvirtd-guests.rc.d "$pkgdir"/etc/rc.d/libvirtd-guests
install -D -m644 "$srcdir"/libvirtd-guests.conf.d "$pkgdir"/etc/conf.d/libvirtd-guests
- rm -rf $pkgdir/var/run
+
+ install -dm0755 $pkgdir/usr/lib/sysctl.d
+ mv $pkgdir/etc/sysctl.d/libvirtd $pkgdir/usr/lib/sysctl.d/libvirtd
+
+ # systemd stuff
+# install -D -m644 "$srcdir"/libvirt.tmpfiles.d "$pkgdir"/usr/lib/tmpfiles.d/libvirt
+# mv $pkgdir/lib/* $pkgdir/usr/lib/
+
+ rm -rf \
+ $pkgdir/var/run \
+ $pkgdir/etc/rc.d/init.d \
+ $pkgdir/etc/sysconfig \
+ $pkgdir/lib \
+ $pkgdir/etc/sysctl.d
}
diff --git a/community/libvirt/libvirt.tmpfiles.d b/community/libvirt/libvirt.tmpfiles.d
new file mode 100644
index 000000000..0cec93271
--- /dev/null
+++ b/community/libvirt/libvirt.tmpfiles.d
@@ -0,0 +1,4 @@
+d /var/run/libvirt/qemu 0755 root root -
+d /var/run/libvirt/lxc 0755 root root -
+d /var/run/libvirt/uml 0755 root root -
+d /var/run/libvirt/network 0755 root root -
diff --git a/community/lxterminal/PKGBUILD b/community/lxterminal/PKGBUILD
index 8c76a79ca..36b6c8db4 100644
--- a/community/lxterminal/PKGBUILD
+++ b/community/lxterminal/PKGBUILD
@@ -1,9 +1,11 @@
-# $Id: PKGBUILD 52827 2011-07-28 23:21:06Z angvp $
-# # Maintainer: Angel Velasquez <angvp@archlinux.org>
+# $Id: PKGBUILD 71600 2012-05-30 16:08:38Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
pkgname=lxterminal
pkgver=0.1.11
-pkgrel=1
+pkgrel=2
pkgdesc="VTE-based terminal emulator (part of LXDE)"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL2')
@@ -11,17 +13,22 @@ url="http://lxde.org/"
groups=('lxde')
depends=('fontconfig' 'libx11' 'glib2' 'vte' 'gtk2')
makedepends=('pkgconfig' 'intltool')
-source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
-md5sums=('fd9140b45c0f28d021253c4aeb8c4aea')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz
+ shift-keybinds.patch)
+md5sums=('fd9140b45c0f28d021253c4aeb8c4aea'
+ '7eff715e02181b006b1912cd041b7f1a')
build() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "$srcdir"/$pkgname-$pkgver
+
+ patch -Np1 -i "$srcdir"/shift-keybinds.patch
+
./configure --sysconfdir=/etc --prefix=/usr
make
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "$srcdir"/$pkgname-$pkgver
make DESTDIR="$pkgdir" install
}
diff --git a/community/lxterminal/shift-keybinds.patch b/community/lxterminal/shift-keybinds.patch
new file mode 100644
index 000000000..ecef20318
--- /dev/null
+++ b/community/lxterminal/shift-keybinds.patch
@@ -0,0 +1,39 @@
+diff -ru lxterminal-0.1.11.orig/src/lxterminal.c lxterminal-0.1.11/src/lxterminal.c
+--- lxterminal-0.1.11.orig/src/lxterminal.c 2011-07-27 23:07:54.000000000 +0200
++++ lxterminal-0.1.11/src/lxterminal.c 2012-05-18 17:58:40.483588501 +0200
+@@ -77,9 +77,9 @@
+ static void terminal_close_tab_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_close_tab_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
+ static void terminal_copy_activate_event(GtkAction * action, LXTerminal * terminal);
+-static void terminal_copy_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
++static gboolean terminal_copy_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
+ static void terminal_paste_activate_event(GtkAction * action, LXTerminal * terminal);
+-static void terminal_paste_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
++static gboolean terminal_paste_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
+ static void terminal_name_tab_response_event(GtkWidget * dialog, gint response, LXTerminal * terminal);
+ static void terminal_name_tab_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_name_tab_accelerator(LXTerminal * terminal, guint action, GtkWidget * item);
+@@ -433,9 +433,10 @@
+ }
+
+ /* Handler for accelerator <CTRL><SHIFT> C. Copy to the clipboard. */
+-static void terminal_copy_accelerator(LXTerminal * terminal, guint action, GtkWidget * item)
++static gboolean terminal_copy_accelerator(LXTerminal * terminal, guint action, GtkWidget * item)
+ {
+ terminal_copy_activate_event(NULL, terminal);
++ return TRUE;
+ }
+
+ /* Handler for "activate" signal on Edit/Paste menu item.
+@@ -447,9 +448,10 @@
+ }
+
+ /* Handler for accelerator <CTRL><SHIFT> V. Paste from the clipboard. */
+-static void terminal_paste_accelerator(LXTerminal * terminal, guint action, GtkWidget * item)
++static gboolean terminal_paste_accelerator(LXTerminal * terminal, guint action, GtkWidget * item)
+ {
+ terminal_paste_activate_event(NULL, terminal);
++ return TRUE;
+ }
+
+ /* Handler for "response" signal on Name Tab dialog. */
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
index 3c4cc47c2..d3e5a6d1e 100755
--- a/community/mathomatic/PKGBUILD
+++ b/community/mathomatic/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 70548 2012-05-11 05:36:19Z ttopper $
+# $Id: PKGBUILD 71531 2012-05-28 12:15:53Z ttopper $
# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
pkgname=mathomatic
-pkgver=15.8.4
+pkgver=15.8.5
pkgrel=1
pkgdesc="General purpose Computer Algebra System written in C"
arch=('i686' 'x86_64' 'mips64el')
@@ -17,7 +17,7 @@ optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
'm4: for complex operations using the matho script'
'gnuplot: for plotting')
source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
-md5sums=('9b58f8221e76a80f847f31a67bf01401')
+md5sums=('cb2abc1a35142158f8ec99d7e8368e11')
build() {
cd "$srcdir"/$pkgname-$pkgver
diff --git a/community/mediainfo-gui/PKGBUILD b/community/mediainfo-gui/PKGBUILD
index d9e379ba4..6de7bfed5 100644
--- a/community/mediainfo-gui/PKGBUILD
+++ b/community/mediainfo-gui/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 69429 2012-04-16 09:59:50Z spupykin $
+# $Id: PKGBUILD 71586 2012-05-30 09:16:55Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: hydro <hydro@freenet.de>
pkgname=mediainfo-gui
-pkgver=0.7.56
+pkgver=0.7.58
pkgrel=1
pkgdesc="GUI for mediainfo"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,7 +13,7 @@ depends=('libmediainfo' 'wxgtk')
makedepends=('libtool' 'automake' 'autoconf')
install=mediainfo-gui.install
source=(http://downloads.sourceforge.net/mediainfo/mediainfo_${pkgver}.tar.bz2)
-md5sums=('fdd41eb501e0936035046a9277c29fa5')
+md5sums=('e0b0decf4a036fad431aa5149cc71d59')
build() {
cd $srcdir/MediaInfo/Project/GNU/GUI
diff --git a/community/mediainfo/PKGBUILD b/community/mediainfo/PKGBUILD
index 2012f0f90..d879d30e9 100644
--- a/community/mediainfo/PKGBUILD
+++ b/community/mediainfo/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 69427 2012-04-16 09:59:00Z spupykin $
+# $Id: PKGBUILD 71584 2012-05-30 09:16:14Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: hydro <hydro@freenet.de>
pkgname=mediainfo
-pkgver=0.7.56
+pkgver=0.7.58
pkgrel=1
pkgdesc="supplies technical and tag information about a video or audio file"
arch=('i686' 'x86_64' 'mips64el')
@@ -12,7 +12,7 @@ license=('GPL')
depends=('libmediainfo')
makedepends=('libtool' 'automake' 'autoconf')
source=(http://downloads.sourceforge.net/mediainfo/${pkgname}_${pkgver}.tar.bz2)
-md5sums=('fdd41eb501e0936035046a9277c29fa5')
+md5sums=('e0b0decf4a036fad431aa5149cc71d59')
build() {
cd $srcdir/MediaInfo/Project/GNU/CLI
diff --git a/community/mfs/PKGBUILD b/community/mfs/PKGBUILD
index d27bbe9b2..c942aeaf7 100644
--- a/community/mfs/PKGBUILD
+++ b/community/mfs/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 68131 2012-03-18 14:31:17Z arodseth $
+# $Id: PKGBUILD 71606 2012-05-30 19:22:00Z arodseth $
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Thomas S Hatch <thatch45@gmail.com>
pkgbase=mfs
pkgname=('mfs-client' 'mfs-chunkserver' 'mfs-master')
-pkgver=1.6.24
+pkgver=1.6.25
pkgrel=1
pkgdesc="MooseFS, fault tolerant, network distributed file system"
license=("GPL3")
@@ -17,16 +17,16 @@ source=("http://www.moosefs.org/tl_files/mfscode/mfs-$pkgver.tar.gz"
"mfschunkserver"
"mfsmetalogger"
"mfscgiserv")
-sha256sums=('823c2c63d66dc8ba9d409e8af0f6c452cebc3a073f1d89b034e65320104eaa25'
- '6e75a33996120cb5d240075bcc92522d490892fae5f9f5c4f2d1b020db54c9c1'
- '48dc7a4e2ba23668456a2593154a850cebca649412f8c11e8f1a94038831638e'
- 'aae5fdf39469eb47bb4962b51bbdb3c51772930f574010c29bb5a36f1820d0ee'
- '357304173688536ab70b9978ae44317b07de1fdcf3736b31a94b2a6186e8e9fa')
+sha256sums=('64b7ce749699e437f47e1561e8044362ea714a8dd2d3bad0c6a7165e9ad142ee'
+ '7c307f7be520644ac5d9c71e39ff7ec7e26800aa77c8a18c51a2d0087e5b2f48'
+ '2d07e544f4bfeb497c24276936d3a8ce9f906597d6b9c898dc491426b21e74e0'
+ 'd9c072cbb9d9645e5131d08b08628ccc2a2bef0a4e9c6fd8c3c33e50efce39f3'
+ 'a2e1951888887e928e68a3a010047fa3528182e93c086e4addb5abc14ea72c3b')
build() {
cd "$srcdir"
- # Build the client
+ msg2 "Building client..."
cp -r $pkgbase-$pkgver $pkgbase-client
cd $pkgbase-client
./configure \
@@ -41,7 +41,7 @@ build() {
cd ..
- # Build the chunkserver
+ msg2 "Building chunkserver..."
cp -r $pkgbase-$pkgver $pkgbase-chunk
cd $pkgbase-chunk
./configure \
@@ -56,7 +56,7 @@ build() {
cd ..
- # Build the Master
+ msg2 "Building master..."
cp -r $pkgbase-$pkgver $pkgbase-master
cd $pkgbase-master
./configure \
@@ -72,31 +72,34 @@ package_mfs-client() {
depends=('zlib' 'fuse' 'bash')
cd "$srcdir/$pkgbase-client"
make DESTDIR="$pkgdir" install
- rm -rf $pkgdir/usr/share/man/man7
+ rm -rf "$pkgdir/usr/share/man/man7"
+ rmdir "$pkgdir/usr/share/man/man5"
}
package_mfs-chunkserver() {
depends=('zlib' 'bash')
cd "$srcdir/$pkgbase-chunk"
make DESTDIR="$pkgdir" install
- rm -rf $pkgdir/usr/share/man/man7
- install -m 755 -D $srcdir/mfschunkserver $pkgdir/etc/rc.d/mfschunkserver
+ rm -rf "$pkgdir/usr/share/man/man7"
+ rmdir "$pkgdir/usr/share/man/man1"
+ install -Dm755 "$srcdir/mfschunkserver" "$pkgdir/etc/rc.d/mfschunkserver"
+ mv "$pkgdir/usr/sbin" "$pkgdir/usr/bin"
}
package_mfs-master() {
depends=('zlib' 'python2')
cd "$srcdir/$pkgbase-master"
make DESTDIR="$pkgdir" install
- install -D -m0644 README $pkgdir/usr/share/doc/$pkgbase/README
- install -D -m0644 INSTALL $pkgdir/usr/share/doc/$pkgbase/INSTALL
- install -D -m0644 NEWS $pkgdir/usr/share/doc/$pkgbase/NEWS
- install -D -m0644 UPGRADE $pkgdir/usr/share/doc/$pkgbase/UPGRADE
- install -m 755 -D $srcdir/mfsmaster $pkgdir/etc/rc.d/mfsmaster
- install -m 755 -D $srcdir/mfsmetalogger $pkgdir/etc/rc.d/mfsmetalogger
- install -m 755 -D $srcdir/mfscgiserv $pkgdir/etc/rc.d/mfscgiserv
- find "$pkgdir" -name 'mfscgiserv' -print0 |xargs -0 \
- sed -i -e 's,^#!/usr/bin/env python$,#!/usr/bin/env python2,' \
- -e 's,^#!/usr/bin/python$,#!/usr/bin/python2,'
+ install -Dm644 README "$pkgdir/usr/share/doc/$pkgbase/README"
+ install -Dm644 INSTALL "$pkgdir/usr/share/doc/$pkgbase/INSTALL"
+ install -Dm644 NEWS "$pkgdir/usr/share/doc/$pkgbase/NEWS"
+ install -Dm644 UPGRADE "$pkgdir/usr/share/doc/$pkgbase/UPGRADE"
+ install -Dm755 "$srcdir/mfsmaster" "$pkgdir/etc/rc.d/mfsmaster"
+ install -Dm755 "$srcdir/mfsmetalogger" "$pkgdir/etc/rc.d/mfsmetalogger"
+ install -Dm755 "$srcdir/mfscgiserv" "$pkgdir/etc/rc.d/mfscgiserv"
+ rmdir "$pkgdir/usr/share/man/man1"
+ mv "$pkgdir/usr/sbin" "$pkgdir/usr/bin"
+ sed -i '0,/on/s//on2/' "$pkgdir/usr/bin/mfscgiserv"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/mfs/mfscgiserv b/community/mfs/mfscgiserv
index ea9f00145..2f176d239 100755
--- a/community/mfs/mfscgiserv
+++ b/community/mfs/mfscgiserv
@@ -3,11 +3,11 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=$(ps aux | grep -v grep | grep /usr/sbin/mfscgiserv | awk '{print $2}')
+PID=$(ps aux | grep -v grep | grep /usr/bin/mfscgiserv | awk '{print $2}')
case "$1" in
start)
stat_busy "Starting MooseFS CGI Web Frontend Daemon"
- [ -z "$PID" ] && /usr/sbin/mfscgiserv &>/dev/null
+ [ -z "$PID" ] && /usr/bin/mfscgiserv &> /dev/null
if [ $? = 0 ]; then
add_daemon mfscgiserv
stat_done
diff --git a/community/mfs/mfschunkserver b/community/mfs/mfschunkserver
index b9567b703..606d00f48 100755
--- a/community/mfs/mfschunkserver
+++ b/community/mfs/mfschunkserver
@@ -3,17 +3,17 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/sbin/mfschunkserver`
+PID=`pidof -o %PPID /usr/bin/mfschunkserver`
case "$1" in
start)
stat_busy "Starting MooseFS Chunkserver Daemon"
if [ -z "$PID" ]; then
- /usr/sbin/mfschunkserver start
+ /usr/bin/mfschunkserver start
fi
if [ ! -z "$PID" -o $? -gt 0 ]; then
stat_fail
else
- PID=`pidof -o %PPID /usr/sbin/mfschunkserver`
+ PID=`pidof -o %PPID /usr/bin/mfschunkserver`
echo $PID > /var/run/mfsmetalogger.pid
add_daemon mfschunkserver
stat_done
@@ -21,7 +21,7 @@ case "$1" in
;;
stop)
stat_busy "Stopping MooseFS Chunkserver Daemon"
- [ ! -z "$PID" ] && /usr/sbin/mfschunkserver stop &> /dev/null
+ [ ! -z "$PID" ] && /usr/bin/mfschunkserver stop &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
diff --git a/community/mfs/mfsmaster b/community/mfs/mfsmaster
index ee1c74c5a..b0cfd8299 100755
--- a/community/mfs/mfsmaster
+++ b/community/mfs/mfsmaster
@@ -3,17 +3,17 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID -x /usr/sbin/mfsmaster`
+PID=`pidof -o %PPID -x /usr/bin/mfsmaster`
case "$1" in
start)
stat_busy "Starting MooseFS Master Daemon"
if [ -z "$PID" ]; then
- /usr/sbin/mfsmaster start
+ /usr/bin/mfsmaster start
fi
if [ ! -z "$PID" -o $? -gt 0 ]; then
stat_fail
else
- PID=`pidof -o %PPID -x /usr/sbin/mfsmaster`
+ PID=`pidof -o %PPID -x /usr/bin/mfsmaster`
echo $PID > /var/run/mfsmaster.pid
add_daemon mfsmaster
stat_done
@@ -21,7 +21,7 @@ case "$1" in
;;
stop)
stat_busy "Stopping MooseFS Master Daemon"
- [ ! -z "$PID" ] && /usr/sbin/mfsmaster stop &> /dev/null
+ [ ! -z "$PID" ] && /usr/bin/mfsmaster stop &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
diff --git a/community/mfs/mfsmetalogger b/community/mfs/mfsmetalogger
index afa451929..a870cc5a7 100755
--- a/community/mfs/mfsmetalogger
+++ b/community/mfs/mfsmetalogger
@@ -3,17 +3,17 @@
. /etc/rc.conf
. /etc/rc.d/functions
-PID=`pidof -o %PPID /usr/sbin/mfsmetalogger`
+PID=`pidof -o %PPID /usr/bin/mfsmetalogger`
case "$1" in
start)
stat_busy "Starting MooseFS Metalogger Daemon"
if [ -z "$PID" ]; then
- /usr/sbin/mfsmetalogger start
+ /usr/bin/mfsmetalogger start
fi
if [ ! -z "$PID" -o $? -gt 0 ]; then
stat_fail
else
- PID=`pidof -o %PPID /usr/sbin/mfsmetalogger`
+ PID=`pidof -o %PPID /usr/bin/mfsmetalogger`
echo $PID > /var/run/mfsmetalogger.pid
add_daemon mfsmetalogger
stat_done
@@ -21,7 +21,7 @@ case "$1" in
;;
stop)
stat_busy "Stopping MooseFS Metalogger Daemon"
- [ ! -z "$PID" ] && /usr/sbin/mfsmetalogger stop &> /dev/null
+ [ ! -z "$PID" ] && /usr/bin/mfsmetalogger stop &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
diff --git a/community/mosh/PKGBUILD b/community/mosh/PKGBUILD
index 49a766641..4d9aa7fbd 100644
--- a/community/mosh/PKGBUILD
+++ b/community/mosh/PKGBUILD
@@ -4,20 +4,20 @@
# Contributor: Thomas Weißschuh <thomas_weissschuh lavabit.com>
pkgname=mosh
-pkgver=1.2
-pkgrel=1
+pkgver=1.2.1
+pkgrel=2
pkgdesc='Mobile shell, surviving disconnects with local echo and line editing'
arch=('x86_64' 'i686')
url="http://mosh.mit.edu/"
license=('GPL3')
depends=('protobuf' 'ncurses' 'zlib' 'openssh' 'perl' 'perl-io-tty')
#optdepends=('libutempter: record of session in {u,t}wmp (recompile mosh afterwards)')
-conflicts=('mosh-git')
-source=("$pkgname-$pkgver.tgz::https://nodeload.github.com/keithw/mosh/tarball/master")
-sha1sums=('690e301560808f13a8a7b19bd7740d81fecac262')
+source=("https://github.com/downloads/keithw/mosh/mosh-1.2.1.tar.gz")
+sha1sums=('73b95b11699d8321c749a9590e0c12caeed52405')
+options=('!emptydirs')
build() {
- cd "$srcdir/keithw-mosh-"*
+ cd "$srcdir/$pkgname-$pkgver"
./autogen.sh
./configure --prefix=/usr
@@ -25,9 +25,13 @@ build() {
}
package() {
- cd "$srcdir/keithw-mosh-"*
+ cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir/" install
+ install -Dm644 "conf/bash_completion.d/$pkgname" \
+ "$pkgdir/etc/bash_completion.d/$pkgname"
+ install -Dm644 "conf/ufw/applications.d/$pkgname" \
+ "$pkgdir/etc/ufw/applications.d/ufw-$pkgname"
}
# vim:set ts=2 sw=2 et:
diff --git a/community/mplayer2/PKGBUILD b/community/mplayer2/PKGBUILD
index 3a9762fc9..108c80d3e 100644
--- a/community/mplayer2/PKGBUILD
+++ b/community/mplayer2/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 71255 2012-05-26 06:36:27Z bpiotrowski $
+# $Id: PKGBUILD 71594 2012-05-30 14:21:43Z bpiotrowski $
# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Martin Panter <vadmium+aur@gmail.com>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
pkgname=mplayer2
pkgver=20120517
-pkgrel=1
+pkgrel=2
pkgdesc="An advanced general-purpose media player. A fork of the original MPlayer project"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
@@ -28,6 +28,8 @@ md5sums=('814cc9545937e13796df1d4747c3c5d0')
build() {
cd "${srcdir}"/$pkgname-$pkgver
+
+ sed 's/gmplayer/mplayer/g' -i etc/mplayer.desktop
case $CARCH in
mips64el) ;;
diff --git a/community/oolite/PKGBUILD b/community/oolite/PKGBUILD
index 48d0a97b8..61213fb31 100644
--- a/community/oolite/PKGBUILD
+++ b/community/oolite/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 68947 2012-04-06 12:17:32Z svenstaro $
+# $Id: PKGBUILD 71561 2012-05-29 10:35:05Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Lone_Wolf <lonewolf@xs4all.nl>
pkgname=oolite
-pkgver=1.76
-pkgrel=4
+pkgver=1.76.1
+pkgrel=1
pkgdesc="A space-sim based on the classic Elite"
arch=('i686' 'x86_64' 'mips64el')
url="http://oolite-linux.berlios.de"
@@ -12,9 +12,9 @@ depends=('gnustep-gui' 'sdl_mixer' 'mesa' 'espeak' 'nspr' 'python2' 'icu')
makedepends=('gcc-objc' 'gnustep-make' 'curl' 'zip')
options=(!makeflags)
source=(oolite
- http://downloads.sourceforge.net/oolite-linux.berlios/oolite-source-$pkgver.tar.bz2)
+ http://download.berlios.de/oolite-linux/oolite-source-${pkgver}.tar.bz2)
md5sums=('b182976fade9b64a3b3702e2a8c72bf0'
- 'd540486facd8275dc6bceebae8428dce')
+ 'a9ae79f4006a0993a822ca40740f4e67')
build() {
cd $srcdir
diff --git a/community/opendkim/PKGBUILD b/community/opendkim/PKGBUILD
new file mode 100644
index 000000000..bc1001946
--- /dev/null
+++ b/community/opendkim/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 71559 2012-05-29 09:12:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Thomas Jost <schnouki@schnouki.net>
+
+pkgname=opendkim
+pkgver=2.5.2
+pkgrel=1
+pkgdesc="An open source implementation of the DKIM sender authentication system. Based on a fork of dkim-milter."
+arch=(i686 x86_64)
+url="http://www.opendkim.org/"
+license=('BSD' 'custom:Sendmail')
+depends=("db" "openssl")
+makedepends=("libmilter")
+options=(!libtool)
+backup=(etc/conf.d/opendkim)
+install=opendkim.install
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver.tar.gz
+ opendkim.conf
+ opendkim.rc)
+md5sums=('3c2a71372ee279b627e3f39c87a0d457'
+ '3e2bb1058ac0662f01e675aa6ac7ee8f'
+ '1176f086d36e79a834dba1bed0ded397')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-db
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # Sample configuration
+ mkdir -p "$pkgdir/etc/opendkim"
+ mv "$pkgdir/usr/share/doc/opendkim/opendkim.conf.sample" "$pkgdir/etc/opendkim/opendkim.conf.sample"
+ chmod 0700 "$pkgdir/etc/opendkim"
+ chmod 0600 "$pkgdir/etc/opendkim/opendkim.conf.sample"
+
+ # Init script
+ install -Dm644 "$srcdir/opendkim.conf" "$pkgdir/etc/conf.d/opendkim"
+ install -Dm755 "$srcdir/opendkim.rc" "$pkgdir/etc/rc.d/opendkim"
+
+ # Remove empty dirs
+ rmdir "$pkgdir/usr/share/man/man1" "$pkgdir/usr/share/man/man3"
+
+ # License
+ mkdir -p "$pkgdir/usr/share/licenses/opendkim"
+ for f in LICENSE LICENSE.Sendmail; do
+ ln -s ../../doc/opendkim/$f "$pkgdir/usr/share/licenses/opendkim/$f"
+ done
+}
diff --git a/community/opendkim/opendkim.conf b/community/opendkim/opendkim.conf
new file mode 100644
index 000000000..ebe9024e0
--- /dev/null
+++ b/community/opendkim/opendkim.conf
@@ -0,0 +1 @@
+OPENDKIM_FILTER="-x /etc/opendkim/opendkim.conf"
diff --git a/community/opendkim/opendkim.install b/community/opendkim/opendkim.install
new file mode 100644
index 000000000..a1f16f6ca
--- /dev/null
+++ b/community/opendkim/opendkim.install
@@ -0,0 +1,11 @@
+post_install() {
+ useradd -r -g mail -d / opendkim
+ chown -R opendkim:mail etc/opendkim
+ cat <<EOF
+>>> Check and modify /etc/opendkim/opendkim.conf before starting
+EOF
+}
+
+post_remove() {
+ userdel opendkim
+}
diff --git a/community/opendkim/opendkim.rc b/community/opendkim/opendkim.rc
new file mode 100644
index 000000000..a3e0790a7
--- /dev/null
+++ b/community/opendkim/opendkim.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.d/functions
+. /etc/conf.d/opendkim
+. /etc/rc.conf
+
+PID=`pidof -o %PPID /usr/sbin/opendkim`
+case "$1" in
+ start)
+ stat_busy "Starting OpenDKIM filter"
+ if [ -z "$PID" ]; then
+ /usr/sbin/opendkim $OPENDKIM_FILTER > /dev/null &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dkim
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenDKIM filter"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dkim
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/openscenegraph/PKGBUILD b/community/openscenegraph/PKGBUILD
index 0366a02f5..4bf29d281 100644
--- a/community/openscenegraph/PKGBUILD
+++ b/community/openscenegraph/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 63688 2012-02-05 12:06:54Z ibiru $
+# $Id: PKGBUILD 71588 2012-05-30 10:24:59Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Hans Janssen <janserv@gmail.com>
# Contributor: my64 <packages@obordes.com>
@@ -6,14 +6,14 @@
pkgname=openscenegraph
pkgver=3.0.1
-pkgrel=4
+pkgrel=5
pkgdesc="An Open Source, high performance real-time graphics toolkit"
arch=('i686' 'x86_64')
license=('custom:OSGPL')
url="http://www.openscenegraph.org"
depends=('giflib' 'jasper' 'librsvg' 'xine-lib' 'curl' 'pth')
-makedepends=('cmake' 'libvncserver')
-optdepends=('libvncserver' 'gdal' 'openexr' 'poppler-glib')
+makedepends=('cmake' 'libvncserver' 'qt')
+optdepends=('libvncserver' 'gdal' 'openexr' 'poppler-glib' 'qt')
conflicts=('openthreads')
provides=('openthreads')
source=(http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-$pkgver/source/OpenSceneGraph-$pkgver.zip
diff --git a/community/roxterm/PKGBUILD b/community/roxterm/PKGBUILD
index 653f04467..75042188c 100644
--- a/community/roxterm/PKGBUILD
+++ b/community/roxterm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 70468 2012-05-08 20:11:39Z ttopper $
+# $Id: PKGBUILD 71598 2012-05-30 16:07:48Z ttopper $
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
# Contributor: Alexander Fehr <pizzapunk gmail com>
pkgname=roxterm
-pkgver=2.6.3
+pkgver=2.6.4
pkgrel=1
pkgdesc="Tabbed, VTE-based terminal emulator"
arch=('i686' 'x86_64' 'mips64el')
@@ -13,8 +13,8 @@ depends=('dbus-glib' 'vte3' 'hicolor-icon-theme' 'libsm')
makedepends=('docbook-xsl' 'xmlto' 'po4a' 'python2' 'python2-lockfile' 'imagemagick' 'librsvg')
install=roxterm.install
source=("http://downloads.sourceforge.net/roxterm/roxterm-$pkgver.tar.bz2")
-sha1sums=('f6f64cf35163338e539bdbc952d470b4a9217f9a')
-md5sums=('3089fc54b3c9bb8f8e087280bf96b037')
+sha1sums=('7438e6f11d3cd276acc6a54e606cfbb5abda762c')
+md5sums=('ea40fcc8c3c40640ec000c39ac2c3746')
build() {
diff --git a/community/tea/PKGBUILD b/community/tea/PKGBUILD
index a98c9ee7c..e2f2fe1da 100644
--- a/community/tea/PKGBUILD
+++ b/community/tea/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 70098 2012-04-29 09:24:57Z spupykin $
+# $Id: PKGBUILD 71527 2012-05-28 07:39:51Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Roman Kyrylych <roman@archlinux.org>
@@ -6,7 +6,7 @@
# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>
pkgname=tea
-pkgver=33.0.0
+pkgver=33.1.0
pkgrel=1
pkgdesc="A QT-based text editor for Linux and *BSD. With an ultimate small size TEA provides you hundreds of functions."
arch=('i686' 'x86_64' 'mips64el')
@@ -16,7 +16,7 @@ depends=('qt' 'aspell' 'hunspell')
install=tea.install
source=(http://downloads.sourceforge.net/project/tea-editor/tea-editor/$pkgver/tea-$pkgver.tar.bz2
tea.desktop)
-md5sums=('61f7df51378ab94324ef6df17f793f1d'
+md5sums=('15593d59f6079f0114e390ec731a8527'
'377ace3363124f4c086de0babb820761')
build() {
diff --git a/community/uzbl/PKGBUILD b/community/uzbl/PKGBUILD
index 2ddcbe37c..f12f1d623 100644
--- a/community/uzbl/PKGBUILD
+++ b/community/uzbl/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 60076 2011-12-04 21:15:00Z lcarlier $
+# $Id: PKGBUILD 71552 2012-05-28 19:39:02Z lcarlier $
# Maintainer : Laurent Carlier <lordheavym@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Dieter Plaetinck <dieter@plaetinck.be>
pkgbase=uzbl
pkgname=('uzbl-core' 'uzbl-browser' 'uzbl-tabbed')
-pkgver=2011.11.28
+pkgver=2012.05.14
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://www.uzbl.org"
license=('GPL3')
makedepends=('pkgconfig' 'libwebkit>=1.3.13')
source=(uzbl-$pkgver.tar.gz::https://github.com/Dieterbe/uzbl/tarball/$pkgver)
-md5sums=('6e55474050b5df43d8bdd403248b1da6')
+md5sums=('4c58653bddbcf1429f7275bbb7c664a9')
build() {
cd "$srcdir"/Dieterbe-uzbl-*
diff --git a/community/wt/PKGBUILD b/community/wt/PKGBUILD
index b20993bde..d9dccbb72 100644
--- a/community/wt/PKGBUILD
+++ b/community/wt/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 70952 2012-05-20 14:22:35Z svenstaro $
+# $Id: PKGBUILD 71521 2012-05-28 07:37:34Z svenstaro $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Denis Martinez <deuns.martinez@gmail.com>
pkgname=wt
pkgver=3.2.1
-pkgrel=2
+pkgrel=3
pkgdesc="a C++ library and application server for developing and deploying web applications"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.webtoolkit.eu/"
@@ -33,7 +33,7 @@ build() {
cmake -DCONNECTOR_HTTP=ON -DCMAKE_INSTALL_PREFIX=/usr \
-DWEBUSER=http -DWEBGROUP=http -DRUNDIR=/var/run/wt -DDEPLOYROOT=/var/www/wt \
-DUSE_SYSTEM_SQLITE3=ON -DCMAKE_EXE_LINKER_FLAGS="-lboost_random" \
- -DWT_CMAKE_FINDER_INSTALL_DIR="share/cmake-2.8/Modules" ..
+ -DWT_CMAKE_FINDER_INSTALL_DIR="share/cmake-2.8/Modules" -DINSTALL_EXAMPLES=ON ..
make
}
diff --git a/core/krb5/PKGBUILD b/core/krb5/PKGBUILD
index 6f4deb508..c2d6bf252 100644
--- a/core/krb5/PKGBUILD
+++ b/core/krb5/PKGBUILD
@@ -1,18 +1,15 @@
-# $Id: PKGBUILD 155426 2012-04-03 14:17:30Z stephane $
+# $Id: PKGBUILD 160188 2012-05-30 11:50:04Z stephane $
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
pkgname=krb5
pkgver=1.10.1
-pkgrel=2
+pkgrel=3
pkgdesc="The Kerberos network authentication system"
arch=('i686' 'x86_64' 'mips64el')
url="http://web.mit.edu/kerberos/"
license=('custom')
depends=('e2fsprogs' 'libldap' 'keyutils')
makedepends=('perl')
-provides=('heimdal')
-replaces=('heimdal')
-conflicts=('heimdal')
backup=('etc/krb5.conf' 'var/lib/krb5kdc/kdc.conf')
source=(http://web.mit.edu/kerberos/dist/${pkgname}/1.10/${pkgname}-${pkgver}-signed.tar
krb5-1.10.1-gcc47.patch
@@ -57,7 +54,10 @@ build() {
package() {
cd "${srcdir}/${pkgname}-${pkgver}/src"
- make DESTDIR="${pkgdir}" EXAMPLEDIR="/usr/share/doc/${pkgname}/examples" install
+ make DESTDIR="${pkgdir}" EXAMPLEDIR=/usr/share/doc/${pkgname}/examples install
+
+ # Fix FS#29889
+ install -m 644 plugins/kdb/ldap/libkdb_ldap/kerberos.{ldif,schema} "${pkgdir}"/usr/share/doc/${pkgname}/examples
# Sample KDC config file
install -dm 755 "${pkgdir}"/var/lib/krb5kdc
@@ -68,9 +68,7 @@ package() {
install -pm 644 config-files/krb5.conf "${pkgdir}"/etc/krb5.conf
install -dm 755 "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kdc "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kadmind "${pkgdir}"/etc/rc.d
- install -m 755 ../../krb5-kpropd "${pkgdir}"/etc/rc.d
+ install -m 755 ../../krb5-{kdc,kadmind,kpropd} "${pkgdir}"/etc/rc.d
install -dm 755 "${pkgdir}"/usr/share/aclocal
install -m 644 util/ac_check_krb5.m4 "${pkgdir}"/usr/share/aclocal
diff --git a/core/mdadm/PKGBUILD b/core/mdadm/PKGBUILD
index ee82195e3..bc4bfca94 100644
--- a/core/mdadm/PKGBUILD
+++ b/core/mdadm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 159240 2012-05-18 16:47:23Z tpowa $
+# $Id: PKGBUILD 160025 2012-05-28 10:25:39Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=mdadm
-pkgver=3.2.4
-pkgrel=1
+pkgver=3.2.5
+pkgrel=2
pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
arch=(i686 x86_64 'mips64el')
license=('GPL')
@@ -21,12 +21,12 @@ source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
mdadm.service
disable-werror.patch)
replaces=('raidtools')
-md5sums=('c25007b981e0f5362eacdad385ff0e15'
+md5sums=('83ba4a6249ae24677e915e44c9cfcc58'
'8333d405f550317c2bacd5510bf1cb60'
'00cbed931db4f15b6ce49e3e7d433966'
- '9b01e96b6c3c218fb61628c9281fe688'
+ '609d10888727710cb20db7ac3e096116'
'fbb5542d9bdf87441a11dd7e7a0a17f8'
- '2318b99701dba9b01a6891c62be7bc1c'
+ 'd1d8e9eb81ce9347de74f3c84a9db09e'
'aafb5f9ac8437a284cbf948b9b13b179'
'4ad87b74a4bc9a34621280abe0e0c3e4')
diff --git a/core/mdadm/mdadm_install b/core/mdadm/mdadm_install
index b53258676..cf6159e40 100644
--- a/core/mdadm/mdadm_install
+++ b/core/mdadm/mdadm_install
@@ -1,45 +1,45 @@
-# vim: set ft=sh:
-
-build()
-{
- MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-") "
- BINARIES=""
- FILES=""
- SCRIPT="mdadm"
+#!/bin/bash
+
+build() {
+ add_checked_modules -f 'dm-' 'drivers/md/*'
+
# check if a custom mdadm.conf exists
if grep -q ^ARRAY /etc/mdadm.conf; then
echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays."
add_file "/etc/mdadm.conf"
fi
add_binary "/sbin/mdassemble"
+
+ add_runscript
}
-help ()
-{
-cat<<HELPEOF
- This hook loads the necessary modules for any raid root device,
- and assembles the raid device when run.
-
- If arrays are defined in /etc/mdadm.conf, the file will be used instead
- of command line assembling.
-
- Command Line Setup:
- - for raid arrays with persistent superblocks:
- md=<md device no.>,dev0,dev1,...,devn
- md=<md device no.>,uuid
- - for partitionable raid arrays with persistent superblocks:
- md=d<md device no.>,dev0,dev1,...,devn
- md=d<md device no.>,uuid
-
- Parameters:
- - <md device no.> = the number of the md device:
- 0 means md0, 1 means md1, ...
- - <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
- or 0900878d:f95f6057:c39a36e9:55efa60a
- Examples:
- - md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
- This will setup 2 md partitionable arrays.
- - md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
- This will setup 2 md arrays with persistent superblocks.
+help() {
+ cat <<HELPEOF
+This hook loads the necessary modules for any raid root device,
+and assembles the raid device when run.
+
+If arrays are defined in /etc/mdadm.conf, the file will be used instead
+of command line assembling.
+
+Command Line Setup:
+- for raid arrays with persistent superblocks:
+ md=<md device no.>,dev0,dev1,...,devn
+ md=<md device no.>,uuid
+- for partitionable raid arrays with persistent superblocks:
+ md=d<md device no.>,dev0,dev1,...,devn
+ md=d<md device no.>,uuid
+
+Parameters:
+- <md device no.> = the number of the md device:
+ 0 means md0, 1 means md1, ...
+- <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
+ or 0900878d:f95f6057:c39a36e9:55efa60a
+Examples:
+- md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
+ This will setup 2 md partitionable arrays.
+- md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
+ This will setup 2 md arrays with persistent superblocks.
HELPEOF
}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/mdadm/mdadm_udev_install b/core/mdadm/mdadm_udev_install
index be653fc74..f6f5de4ad 100644
--- a/core/mdadm/mdadm_udev_install
+++ b/core/mdadm/mdadm_udev_install
@@ -1,7 +1,7 @@
#!/bin/bash
build() {
- MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-")"
+ add_checked_modules -f 'dm-' 'drivers/md/*'
# check if a custom mdadm.conf exists
if grep -qw ^ARRAY "$BASEDIR/etc/mdadm.conf"; then
@@ -15,7 +15,9 @@ build() {
help() {
cat <<HELPEOF
- This hook loads raid arrays with udev.
+This hook loads the necessary modules for a RAID array and uses incremental
+assembly via udev at runtime to create the devices. This hook with NOT work
+without the udev hook included on the image.
HELPEOF
}
diff --git a/core/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD
index cfd4a0bb5..3494f0287 100644
--- a/core/nfs-utils/PKGBUILD
+++ b/core/nfs-utils/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 157236 2012-04-26 13:06:19Z tpowa $
+# $Id: PKGBUILD 160027 2012-05-28 10:26:22Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: John Proctor <jproctor@prium.net>
# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
@@ -6,8 +6,8 @@
# Contributor: Marco Lima <cipparello gmail com>
pkgname=nfs-utils
-pkgver=1.2.5
-pkgrel=4
+pkgver=1.2.6
+pkgrel=1
pkgdesc="Support programs for Network File Systems"
arch=('i686' 'x86_64' 'mips64el')
url='http://nfs.sourceforge.net'
@@ -34,9 +34,10 @@ source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgn
nfsd.service
var-lib-nfs-rpc_pipefs.mount
proc-fs-nfsd.mount
+ blkmapd.service
nfs-utils.conf)
install=nfs-utils.install
-md5sums=('8395ac770720b83c5c469f88306d7765'
+md5sums=('8be543ca270c2234ff18f8c8d35e0d37'
'dd0d65fc6e8f422fa12520813098264b'
'f73f197a16b02c3e248488ec35c4cf43'
'e619f18354ff958ed624d05d08853d8f'
@@ -48,13 +49,14 @@ md5sums=('8395ac770720b83c5c469f88306d7765'
'7674106eaaa4c149bccd4f05fe3604e9'
'4f4827dfc93008dfadd0a530ad0872b2'
'38855936dc55a5afe37d84edc0f11066'
- '8d888de677a217c5e5f7244a2e3a2d3a'
+ '965311784d49a7d126d512cadbe91deb'
'e05705d9ccccaeaeb1ecaee20adc05bc'
'd7df7bc311fd95c5b80017dd1741570d'
'2e72ee082cba5d3ec6f51d2a105664da'
'5d33d2e754fd37280365b287603bac90'
'1cd65909fa0983047f3f06a3ab352401'
'02a34835aa077146a90eb7d191e612d0'
+ '8ffc2ebe932d29efe17d6f3f23d5b975'
'8ac484023d786766d287ccbe878ae4ba')
build() {
@@ -74,6 +76,8 @@ build() {
package() {
cd $srcdir/${pkgname}-${pkgver}
+ # fix make install
+ mkdir -p $pkgdir/sbin
make DESTDIR=$pkgdir install
# support python2 (FS#25120)
@@ -91,7 +95,7 @@ package() {
install -D -m 644 utils/mount/nfsmount.conf "$pkgdir/"etc/nfsmount.conf
# systemd files
for i in ${srcdir}/*.{service,mount}; do
- install -D -m 644 $i "$pkgdir/"usr/lib/systemd/system/$(basename $i)
+ install -D -m 644 $i "$pkgdir/usr/lib/systemd/system/${i##*/}"
done
install -D -m 644 ../nfs-utils.conf "$pkgdir/"usr/lib/modules-load.d/nfs-utils.conf
# directories
diff --git a/core/nfs-utils/blkmapd.service b/core/nfs-utils/blkmapd.service
new file mode 100644
index 000000000..16cb68bbb
--- /dev/null
+++ b/core/nfs-utils/blkmapd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=pNFS block layout mapping daemon
+After=var-lib-nfs-rpc_pipefs.mount nfsd.service
+Requires=var-lib-nfs-rpc_pipefs.mount
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/blkmapd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/core/nfs-utils/rpc-mountd.service b/core/nfs-utils/rpc-mountd.service
index 917e1b444..edd8c851d 100644
--- a/core/nfs-utils/rpc-mountd.service
+++ b/core/nfs-utils/rpc-mountd.service
@@ -1,5 +1,5 @@
[Unit]
-Description=NFSv2/3 Mount Daemon
+Description=NFS Mount Daemon
After=rpcbind.service nfsd.service
Requires=rpcbind.service nfsd.service
diff --git a/extra/calligra/PKGBUILD b/extra/calligra/PKGBUILD
index 9ebfa2ad9..3eca5fab7 100644
--- a/extra/calligra/PKGBUILD
+++ b/extra/calligra/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159702 2012-05-26 07:54:08Z andyrtr $
+# $Id: PKGBUILD 160210 2012-05-30 19:45:47Z andrea $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
@@ -22,8 +22,8 @@ pkgname=('calligra-filters'
'calligra-handbook'
'calligra-braindump'
'calligra-flow')
-pkgver=2.4.1
-pkgrel=2
+pkgver=2.4.2
+pkgrel=1
arch=('i686' 'x86_64')
url='http://www.calligra-suite.org/'
license=('FDL1.2' 'GPL2' 'LGPL')
@@ -34,7 +34,7 @@ makedepends=('cmake' 'automoc4' 'boost ' 'eigen2'
'fftw' 'opengtl' 'lcms2' 'libkdcraw' 'wv2')
groups=('calligra')
source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2")
-md5sums=('a4da7e1181e1539850a4fcae466d7d75')
+md5sums=('31b0c44ad4ee27017580c7c2fc8e87a9')
build() {
cd "${srcdir}"
diff --git a/extra/cups-filters/PKGBUILD b/extra/cups-filters/PKGBUILD
deleted file mode 100644
index aa3ac50f0..000000000
--- a/extra/cups-filters/PKGBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: PKGBUILD 159704 2012-05-26 07:54:13Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgname=cups-filters
-pkgver=1.0.17
-pkgrel=2
-pkgdesc="OpenPrinting CUPS Filters"
-arch=('i686' 'x86_64')
-url="http://www.linuxfoundation.org/collaborate/workgroups/openprinting"
-license=('GPL')
-groups=()
-depends=('ghostscript' 'lcms2' 'poppler') # bc ? https://bugs.archlinux.org/task/29808
-makedepends=()
-optdepends=()
-provides=()
-conflicts=()
-replaces=()
-backup=()
-#options=(!makeflags)
-install=
-source=(http://www.openprinting.org/download/cups-filters/$pkgname-$pkgver.tar.gz)
-md5sums=('5132b018cc503e9338fbd029acf56e55')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr \
- --sysconfdir=/etc
- make
-}
-
-#check() {
-# cd "$srcdir/$pkgname-$pkgver"
-# make -k check
-#}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- #make DESTDIR="$pkgdir/" install
- make install BUILDROOT="$pkgdir/"
- # drop static lib
- rm -f ${pkgdir}/usr/lib/*.a
-}
diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD
new file mode 100644
index 000000000..3a0a56d26
--- /dev/null
+++ b/extra/cups/PKGBUILD
@@ -0,0 +1,165 @@
+# $Id: PKGBUILD 160061 2012-05-29 14:41:20Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups')
+pkgver=1.5.3
+pkgrel=3
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
+ 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+ cups-avahi-1-config.patch
+ cups-avahi-2-backend.patch
+ cups-avahi-3-timeouts.patch
+ cups-avahi-4-poll.patch
+ cups-avahi-5-services.patch
+ cups-no-export-ssllibs.patch
+ cups-no-gcrypt.patch
+ cups-no-gzip-man.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
+ '12c8af5bcd3b8f84240280b3dfaf9e89'
+ 'cdc1322c8014297ae349e2db78a03c5a'
+ '1a5112f63958643f2888abc9418dbcac'
+ 'c37d1bf1bb76acc3fe93362c80d91b7c'
+ '5d302860559960042f3b47a91b97c5fe'
+ '9b8467a1e51d360096b70e2c3c081e6c'
+ '3733c23e77eb503bd94cc368e02830dc'
+ 'c9159ba1233902ba6ddbbe6885a46b72'
+ '9657daa21760bb0b5fa3d8b51d5e01a1'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ # http://www.cups.org/str.php?L3066
+ # Avahi support in the dnssd backend. patches from upstream/FC RawHide
+ patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
+
+ # Do not export SSL libs in cups-config
+ patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
+
+ patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+ # don't zip man pages in make install, let makepkg do that / Fedora
+ patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
+
+ # Rebuild configure script for --enable-avahi.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib \
+ --with-logdir=/var/log/cups \
+ --with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon \
+ --with-cups-group=lp \
+ --enable-pam=yes \
+ --disable-ldap \
+ --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes --enable-gnutls \
+ --enable-threads \
+ --enable-avahi\
+ --with-php=/usr/bin/php-cgi \
+ --with-pdftops=pdftops \
+ --with-optim="$CFLAGS"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ #httpAddrGetList(workstation64): FAIL
+ #1 TESTS FAILED!
+ #make[1]: *** [testhttp] Error 1
+ make -k check || /bin/true
+}
+
+package_libcups() {
+pkgdesc="The CUPS Printing System - client libraries and headers"
+depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
+backup=(etc/cups/client.conf)
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs
+ # put this into the libs pkg to make other software find the libs(no pkg-config file included)
+ mkdir -p ${pkgdir}/usr/bin
+ install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+
+ # install client.conf man page and config file
+ install -dm755 ${pkgdir}/usr/share/man/man5
+ #install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
+ install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
+ install -dm755 ${pkgdir}/etc/cups
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ chgrp lp ${pkgdir}/etc/cups/client.conf
+}
+
+package_cups() {
+pkgdesc="The CUPS Printing System - daemon package"
+install=cups.install
+backup=(etc/cups/cupsd.conf
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module'
+ 'xdg-utils: xdg .desktop file support')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec
+
+ # this one we ship in the libcups pkg
+ rm -f ${pkgdir}/usr/bin/cups-config
+
+ # kill the sysv stuff
+ rm -rf ${pkgdir}/etc/rc*.d
+ rm -rf ${pkgdir}/etc/init.d
+ install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
+ install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+ install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+
+ # fix perms on /var/spool and /etc
+ chmod 755 ${pkgdir}/var/spool
+ chmod 755 ${pkgdir}/etc
+
+ # install ssl directory where to store the certs, solves some samba issues
+ install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+ # remove directory from package, we create it in cups rc.d file
+ rm -rf ${pkgdir}/var/run
+
+ # install some more configuration files that will get filled by cupsd
+ touch ${pkgdir}/etc/cups/printers.conf
+ touch ${pkgdir}/etc/cups/classes.conf
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
+
+ # fix .desktop file
+ sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+
+ # remove client.conf man page
+ rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
+
+ # remove files now part of cups-filters
+ rm -v ${pkgdir}/usr/lib/cups/backend/{parallel,serial}
+ rm -v ${pkgdir}/usr/lib/cups/filter/{commandtoescpx,commandtopclx,imagetops,imagetoraster,pdftops,rastertoescpx,rastertopclx,texttops}
+ rm -v ${pkgdir}/usr/share/cups/banners/{classified,confidential,secret,standard,topsecret,unclassified}
+ rm -v ${pkgdir}/usr/share/cups/data/testprint
+}
diff --git a/extra/cups/PKGBUILD.16 b/extra/cups/PKGBUILD.16
new file mode 100644
index 000000000..57db7916a
--- /dev/null
+++ b/extra/cups/PKGBUILD.16
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 159509 2012-05-25 16:34:34Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups')
+pkgver=1.6b1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc' 'colord'
+ 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+ cups-no-export-ssllibs.patch
+ cups-no-gcrypt.patch
+ cups-no-gzip-man.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('468a40755a872d84be89111ce97a69d1'
+ '9b8467a1e51d360096b70e2c3c081e6c'
+ '3733c23e77eb503bd94cc368e02830dc'
+ '90c30380d4c8cd48a908cfdadae1ea24'
+ '9657daa21760bb0b5fa3d8b51d5e01a1'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # Do not export SSL libs in cups-config
+ patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
+
+ patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+ # don't zip man pages in make install, let makepkg do that / Fedora
+ patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
+
+ # Rebuild configure script for not zipping man-pages.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib \
+ --with-logdir=/var/log/cups \
+ --with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon \
+ --with-cups-group=lp \
+ --enable-pam=yes \
+ --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes --enable-gnutls \
+ --enable-threads \
+ --enable-avahi\
+ --with-php=/usr/bin/php-cgi \
+ --with-optim="$CFLAGS"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ #httpAddrGetList(workstation64): FAIL
+ #1 TESTS FAILED!
+ #make[1]: *** [testhttp] Error 1
+ make -k check || /bin/true
+}
+
+package_libcups() {
+pkgdesc="The CUPS Printing System - client libraries and headers"
+depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
+backup=(etc/cups/client.conf)
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs
+ # put this into the libs pkg to make other software find the libs(no pkg-config file included)
+ mkdir -p ${pkgdir}/usr/bin
+ install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+
+ # install client.conf man page and config file
+ install -dm755 ${pkgdir}/usr/share/man/man5
+ #install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
+ install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
+ install -dm755 ${pkgdir}/etc/cups
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ chgrp lp ${pkgdir}/etc/cups/client.conf
+}
+
+package_cups() {
+pkgdesc="The CUPS Printing System - daemon package"
+install=cups.install
+backup=(etc/cups/cupsd.conf
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('xdg-utils: xdg .desktop file support')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec
+
+ # this one we ship in the libcups pkg
+ rm -f ${pkgdir}/usr/bin/cups-config
+
+ # kill the sysv stuff
+ rm -rf ${pkgdir}/etc/rc*.d
+ rm -rf ${pkgdir}/etc/init.d
+ install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
+ install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+ install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+
+ # fix perms on /var/spool and /etc
+ chmod 755 ${pkgdir}/var/spool
+ chmod 755 ${pkgdir}/etc
+
+ # install ssl directory where to store the certs, solves some samba issues
+ install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+ # remove directory from package, we create it in cups rc.d file
+ rm -rf ${pkgdir}/var/run
+
+ # install some more configuration files that will get filled by cupsd
+ touch ${pkgdir}/etc/cups/printers.conf
+ touch ${pkgdir}/etc/cups/classes.conf
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
+
+ # fix .desktop file
+ sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+
+ # remove client.conf man page
+ rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
+
+ # remove files now part of cups-filters
+ rm -v ${pkgdir}/usr/share/cups/banners/{classified,confidential,secret,standard,topsecret,unclassified}
+ rm -v ${pkgdir}/usr/share/cups/data/testprint
+}
diff --git a/extra/cups/cups b/extra/cups/cups
new file mode 100755
index 000000000..744c8e663
--- /dev/null
+++ b/extra/cups/cups
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name=cupsd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+#. /etc/conf.d/$daemon_name.conf
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/extra/cups/cups-avahi-1-config.patch b/extra/cups/cups-avahi-1-config.patch
new file mode 100644
index 000000000..304cd2607
--- /dev/null
+++ b/extra/cups/cups-avahi-1-config.patch
@@ -0,0 +1,42 @@
+diff -up cups-1.5.2/config.h.in.avahi-1-config cups-1.5.2/config.h.in
+--- cups-1.5.2/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
++++ cups-1.5.2/config.h.in 2012-03-14 15:04:51.365347165 +0000
+@@ -390,6 +390,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+diff -up cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.2/config-scripts/cups-dnssd.m4
+--- cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
++++ cups-1.5.2/config-scripts/cups-dnssd.m4 2012-03-14 15:04:51.365347165 +0000
+@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+
++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
++ [if test x$enable_avahi = xyes; then
++ AC_MSG_CHECKING(for Avahi)
++ if $PKGCONFIG --exists avahi-client; then
++ AC_MSG_RESULT(yes)
++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++ DNSSD_BACKEND="dnssd"
++ AC_DEFINE(HAVE_AVAHI)
++ enable_dnssd=no
++ else
++ AC_MSG_RESULT(no)
++ fi
++ fi])
++
+ if test x$enable_dnssd != xno; then
+ AC_CHECK_HEADER(dns_sd.h, [
+ case "$uname" in \ No newline at end of file
diff --git a/extra/cups/cups-avahi-2-backend.patch b/extra/cups/cups-avahi-2-backend.patch
new file mode 100644
index 000000000..00e12a0a3
--- /dev/null
+++ b/extra/cups/cups-avahi-2-backend.patch
@@ -0,0 +1,1118 @@
+diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
+--- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
++++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
+@@ -15,14 +15,21 @@
+ *
+ * Contents:
+ *
++ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
++ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
+ * browse_local_callback() - Browse local devices.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
++ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
++ * avahi_client_callback() - Avahi client callback function.
++ * avahi_query_callback() - Avahi query callback function.
++ * avahi_browse_callback() - Avahi browse callback function.
++ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+ */
+@@ -33,7 +40,18 @@
+
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++# include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++# include <avahi-common/domain.h>
++# include <avahi-common/error.h>
++# include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -53,7 +71,12 @@ typedef enum
+
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int resolved; /* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+ char *name, /* Service name */
+ *domain, /* Domain name */
+ *fullName, /* Full name */
+@@ -65,6 +88,20 @@ typedef struct
+ sent; /* Did we list the device? */
+ } cups_device_t;
+
++typedef struct
++{
++ char key[256];
++ char value[256];
++
++#ifdef HAVE_DNSSD
++ const uint8_t *data;
++ const uint8_t *datanext;
++ const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++ AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+
+ /*
+ * Local globals...
+@@ -78,6 +115,7 @@ static int job_canceled = 0;
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
+ const char *replyDomain,
+ void *context)
+ __attribute__((nonnull(1,5,6,7,8)));
+-static int compare_devices(cups_device_t *a, cups_device_t *b);
+-static void exec_backend(char **argv);
+-static cups_device_t *get_device(cups_array_t *devices,
+- const char *serviceName,
+- const char *regtype,
+- const char *replyDomain)
+- __attribute__((nonnull(1,2,3,4)));
+ static void query_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
+ const void *rdata, uint32_t ttl,
+ void *context)
+ __attribute__((nonnull(1,5,9,11)));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void avahi_client_callback (AvahiClient *client,
++ AvahiClientState state,
++ void *context);
++static void avahi_browse_callback (AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
++static cups_device_t * find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey);
++static int compare_devices(cups_device_t *a, cups_device_t *b);
++static void exec_backend(char **argv);
++static cups_device_t *get_device(cups_array_t *devices,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain)
++ __attribute__((nonnull(1,2,3,4)));
+ static void sigterm_handler(int sig);
+ static void unquote(char *dst, const char *src, size_t dstsize)
+ __attribute__((nonnull(1,2)));
+
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
++ */
++
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++ txt->txt = avahi_string_list_get_next (txt->txt);
++ if (txt->txt == NULL)
++ return NULL;
++#endif /* HAVE_DNSSD */
++
++ return txt;
++}
++
++
++/*
++ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
++ */
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ uint8_t datalen;
++ uint8_t *data = txt->data;
++ char *ptr;
++
++ /*
++ * Read a key/value pair starting with an 8-bit length. Since the
++ * length is 8 bits and the size of the key/value buffers is 256, we
++ * don't need to check for overflow...
++ */
++
++ datalen = *data++;
++ if (!datalen || (data + datalen) > txt->dataend)
++ return NULL;
++ txt->datanext = data + datalen;
++
++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++ *ptr++ = *data;
++ *ptr = '\0';
++
++ if (data < txt->datanext && *data == '=')
++ {
++ data++;
++
++ if (data < datanext)
++ memcpy (txt->value, data, txt->datanext - data);
++ value[txt->datanext - data] = '\0';
++ }
++ else
++ return 1;
++#else /* HAVE_AVAHI */
++ char *key, *value;
++ size_t len;
++ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++ if (len > sizeof (txt->value) - 1)
++ len = sizeof (txt->value) - 1;
++
++ memcpy (txt->value, value, len);
++ txt->value[len] = '\0';
++ len = strlen (key);
++ if (len > sizeof (txt->key) - 1)
++ len = sizeof (txt->key) - 1;
++
++ memcpy (txt->key, key, len);
++ txt->key[len] = '\0';
++ avahi_free (key);
++ avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++ return 0;
++}
++
+
+ /*
+ * 'main()' - Browse for printers.
+@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
+ char *argv[]) /* I - Command-line arguments */
+ {
+ const char *name; /* Backend name */
++ cups_array_t *devices; /* Device array */
++ cups_device_t *device; /* Current device */
++ char uriName[1024]; /* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++ int fd; /* Main file descriptor */
++ fd_set input; /* Input set for select() */
++ struct timeval timeout; /* Timeout for select() */
+ DNSServiceRef main_ref, /* Main service reference */
+ fax_ipp_ref, /* IPP fax service reference */
+ ipp_ref, /* IPP service reference */
+@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
+ pdl_datastream_ref, /* AppSocket service reference */
+ printer_ref, /* LPD service reference */
+ riousbprint_ref; /* Remote IO service reference */
+- int fd; /* Main file descriptor */
+- fd_set input; /* Input set for select() */
+- struct timeval timeout; /* Timeout for select() */
+- cups_array_t *devices; /* Device array */
+- cups_device_t *device; /* Current device */
+- char uriName[1024]; /* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiClient *client;
++ int error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+ struct sigaction action; /* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
+ * Browse for different kinds of printers...
+ */
+
++#ifdef HAVE_AVAHI
++ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++ {
++ perror ("ERROR: Unable to create avahi simple poll object");
++ return (1);
++ }
++
++ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_client_callback, NULL, &error);
++ if (!client)
++ {
++ perror ("DEBUG: Unable to create avahi client");
++ return (0);
++ }
++
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_fax-ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp-tls._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_pdl-datastream._tcp",
++ NULL, 0,
++ avahi_browse_callback,
++ devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_printer._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_riousbprint._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+ {
+ perror("ERROR: Unable to create service connection");
+@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
+ }
+ else
+ {
++ announce = 1;
++ }
++#else /* HAVE_AVAHI */
++ int r;
++ avahi_got_callback = 0;
++ r = avahi_simple_poll_iterate (simple_poll, 1);
++ if (r != 0 && r != EINTR)
++ {
++ /*
++ * We've been told to exit the loop. Perhaps the connection to
++ * avahi failed.
++ */
++
++ break;
++ }
++
++ if (avahi_got_callback)
++ announce = 1;
++#endif /* HAVE_DNSSD */
++
++ if (announce)
++ {
+ /*
+ * Announce any devices we've found...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType status; /* DNS query status */
++#endif /* HAVE_DNSSD */
+ cups_device_t *best; /* Best matching device */
+ char device_uri[1024]; /* Device URI */
+ int count; /* Number of queries */
+@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
+ if (device->sent)
+ sent ++;
+
++#ifdef HAVE_DNSSD
+ if (device->ref)
+ count ++;
+
+@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
+ count ++;
+ }
+ }
+- else if (!device->sent)
++ else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!device->resolved)
++ continue;
++ else
++#endif /* HAVE_AVAHI */
++ if (!device->sent)
+ {
++#ifdef HAVE_DNSSD
+ /*
+ * Got the TXT records, now report the device...
+ */
+
+ DNSServiceRefDeallocate(device->ref);
+ device->ref = 0;
++#endif /* HAVE_DNSSD */
+
+ if (!best)
+ best = device;
+@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'browse_callback()' - Browse devices.
+ */
+@@ -494,6 +722,7 @@ browse_local_callback(
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
+
+
+ /*
++ * 'device_type()' - Get DNS-SD type enumeration from string.
++ */
++
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp"))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp"))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++ if (!strcmp(regtype, "_ipp._tcp."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp."))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp."))
++ return (CUPS_DEVICE_PRINTER);
++ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++ return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
++
++/*
+ * 'get_device()' - Create or update a device.
+ */
+
+@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_ipps._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPPS;
+- else if (!strcmp(regtype, "_fax-ipp._tcp."))
+- key.type = CUPS_DEVICE_FAX_IPP;
+- else if (!strcmp(regtype, "_printer._tcp."))
+- key.type = CUPS_DEVICE_PRINTER;
+- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+- key.type = CUPS_DEVICE_PDL_DATASTREAM;
+- else
+- key.type = CUPS_DEVICE_RIOUSBPRINT;
++ key.type = device_type (regtype);
+
+ for (device = cupsArrayFind(devices, &key);
+ device;
+@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
+ free(device->domain);
+ device->domain = strdup(replyDomain);
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, device->name, regtype,
+ replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ free(device->fullName);
+ device->fullName = strdup(fullName);
+ }
+@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
+ * Set the "full name" of this service, which is used for queries...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ device->fullName = strdup(fullName);
+
+ return (device);
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'query_callback()' - Process query data.
+ */
+@@ -685,7 +952,7 @@ query_callback(
+ *ptr; /* Pointer into string */
+ cups_device_t dkey, /* Search key */
+ *device; /* Device */
+-
++ cups_txt_records_t txt;
+
+ fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+ "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -719,94 +986,233 @@ query_callback(
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_ipps._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPPS;
+- else if (strstr(fullName, "_fax-ipp._tcp."))
+- dkey.type = CUPS_DEVICE_FAX_IPP;
+- else if (strstr(fullName, "_printer._tcp."))
+- dkey.type = CUPS_DEVICE_PRINTER;
+- else if (strstr(fullName, "_pdl-datastream._tcp."))
+- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++ dkey.type = device_type (fullName);
++
++ txt.data = rdata;
++ txt.dataend = rdata + rdlen;
++ device = find_device ((cups_array_t *) context, &txt, &dkey);
++ if (!device)
++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_client_callback()' - Avahi client callback function.
++ */
++
++static void
++avahi_client_callback(AvahiClient *client,
++ AvahiClientState state,
++ void *context)
++{
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ {
++ fprintf (stderr, "ERROR: Avahi connection failed\n");
++ avahi_simple_poll_quit (simple_poll);
++ }
++}
++
++
++/*
++ * 'avahi_query_callback()' - Avahi query callback function.
++ */
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client;
++ cups_device_t key,
++ *device;
++ char uqname[1024],
++ *ptr;
++ cups_txt_records_t txtr;
++
++ client = avahi_service_resolver_get_client (resolver);
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ if (event == AVAHI_RESOLVER_FAILURE)
++ {
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ }
++
++ avahi_service_resolver_free (resolver);
++ return;
++ }
++
++ /*
++ * Set search key for device.
++ */
++
++ key.name = uqname;
++ unquote (uqname, name, sizeof (uqname));
++ if ((ptr = strstr(name, "._")) != NULL)
++ *ptr = '\0';
++
++ key.domain = (char *) domain;
++ key.type = device_type (type);
++
++ /*
++ * Find the device and the the TXT information.
++ */
++
++ txtr.txt = txt;
++ device = find_device ((cups_array_t *) context, &txtr, &key);
++ if (device)
++ {
++ /*
++ * Let the main loop know to announce the device.
++ */
++
++ device->resolved = 1;
++ avahi_got_callback = 1;
++ }
+ else
+- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
+
+- for (device = cupsArrayFind(devices, &dkey);
++ avahi_service_resolver_free (resolver);
++}
++
++
++/*
++ * 'avahi_browse_callback()' - Avahi browse callback function.
++ */
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client = avahi_service_browser_get_client (browser);
++
++ switch (event)
++ {
++ case AVAHI_BROWSER_FAILURE:
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ avahi_simple_poll_quit (simple_poll);
++ return;
++
++ case AVAHI_BROWSER_NEW:
++ /*
++ * This object is new on the network.
++ */
++
++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++ {
++ /*
++ * This comes from the local machine so ignore it.
++ */
++
++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++ }
++ else
++ {
++ /*
++ * Create a device entry for it if it doesn't yet exist.
++ */
++
++ get_device ((cups_array_t *)context, name, type, domain);
++
++ /*
++ * Now look for a TXT entry.
++ */
++
++ if (avahi_service_resolver_new (client, interface, protocol,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC, 0,
++ avahi_query_callback, context) == NULL)
++ {
++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++ name, avahi_strerror (avahi_client_errno (client)));
++ }
++ }
++
++ break;
++
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * 'find_device()' - Find a device from its name and domain.
++ */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey)
++{
++ cups_device_t *device;
++ char *ptr;
++
++ for (device = cupsArrayFind(devices, dkey);
+ device;
+ device = cupsArrayNext(devices))
+ {
+- if (_cups_strcasecmp(device->name, dkey.name) ||
+- _cups_strcasecmp(device->domain, dkey.domain))
++ if (_cups_strcasecmp(device->name, dkey->name) ||
++ _cups_strcasecmp(device->domain, dkey->domain))
+ {
+ device = NULL;
+ break;
+ }
+- else if (device->type == dkey.type)
++ else if (device->type == dkey->type)
+ {
+ /*
+ * Found it, pull out the priority and make and model from the TXT
+ * record and save it...
+ */
+
+- const uint8_t *data, /* Pointer into data */
+- *datanext, /* Next key/value pair */
+- *dataend; /* End of entire TXT record */
+- uint8_t datalen; /* Length of current key/value pair */
+- char key[256], /* Key string */
+- value[256], /* Value string */
+- make_and_model[512],
++ char make_and_model[512],
+ /* Manufacturer and model */
+ model[256], /* Model */
+- device_id[2048];/* 1284 device ID */
+-
++ device_id[2048]; /* 1284 device ID */
+
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
+
+ strcpy(model, "Unknown");
+
+- for (data = rdata, dataend = data + rdlen;
+- data < dataend;
+- data = datanext)
++ for (;;)
+ {
+- /*
+- * Read a key/value pair starting with an 8-bit length. Since the
+- * length is 8 bits and the size of the key/value buffers is 256, we
+- * don't need to check for overflow...
+- */
+-
+- datalen = *data++;
+-
+- if (!datalen || (data + datalen) > dataend)
+- break;
+-
+- datanext = data + datalen;
+-
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
++ char *key;
++ char *value;
+
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
++ if (parse_txt_record_pair (txt))
++ goto next;
+
+- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+- key, value);
+- }
+- else
+- {
+- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+- key);
+- continue;
+- }
+-
+- if (!_cups_strncasecmp(key, "usb_", 4))
++ key = txt->key;
++ value = txt->value;
++ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+@@ -861,6 +1267,10 @@ query_callback(
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -917,11 +1327,9 @@ query_callback(
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
+--- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
++++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
+@@ -43,6 +43,10 @@
+ * http_copy_decode() - Copy and decode a URI.
+ * http_copy_encode() - Copy and encode a URI.
+ * http_resolve_cb() - Build a device URI for the given service name.
++ * avahi_resolve_uri_client_cb()
++ * - Avahi client callback for resolving URI.
++ * avahi_resolve_uri_resolver_cb()
++ * - Avahi resolver callback for resolving URI.
+ */
+
+ /*
+@@ -60,6 +64,11 @@
+ # include <sys/select.h>
+ # endif /* WIN32 */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
+ void *context);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void avahi_resolve_uri_client_cb(AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll);
++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
+
+ /*
+ * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1434,6 +1461,9 @@ _httpResolveURI(
+
+ if (strstr(hostname, "._tcp"))
+ {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ char *regtype, /* Pointer to type in hostname */
++ *domain; /* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+ # ifdef WIN32
+ # pragma comment(lib, "dnssd.lib")
+@@ -1452,6 +1482,17 @@ _httpResolveURI(
+ fd_set input_set; /* Input set for select() */
+ struct timeval stimeout; /* Timeout value for select() */
+ #endif /* HAVE_POLL */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
++
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
+@@ -1488,9 +1529,16 @@ _httpResolveURI(
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++ user_data.uribuf.options = options;
++#endif
++
+ resolved_uri[0] = '\0';
+
+ DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
+@@ -1504,6 +1552,7 @@ _httpResolveURI(
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1611,6 +1660,36 @@ _httpResolveURI(
+
+ DNSServiceRefDeallocate(ref);
+ }
++#else /* HAVE_AVAHI */
++ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++ {
++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_resolve_uri_client_cb,
++ &simple_poll, &error)) != NULL)
++ {
++ user_data.poll = simple_poll;
++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC, hostname,
++ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++ avahi_resolve_uri_resolver_cb,
++ &user_data) != NULL)
++ {
++ avahi_simple_poll_loop (simple_poll);
++
++ /*
++ * Collect the result.
++ */
++
++ if (resolved_uri[0])
++ uri = resolved_uri;
++ }
++
++ avahi_client_free (client);
++ }
++
++ avahi_simple_poll_free (simple_poll);
++ }
++#endif /* HAVE_DNSSD */
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ {
+@@ -1622,13 +1701,13 @@ _httpResolveURI(
+ fputs("STATE: -connecting-to-device,offline-report\n", stderr);
+ }
+
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+ /*
+ * No DNS-SD support...
+ */
+
+ uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if ((options & _HTTP_RESOLVE_STDERR) && !uri)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+@@ -1916,6 +1995,115 @@ http_resolve_cb(
+ }
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
++ */
++
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll)
++{
++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++ "simple_poll=%p)\n", client, state, simple_poll));
++
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ avahi_simple_poll_quit (simple_poll);
++}
++
++
++/*
++ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
++ * URI.
++ */
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ const char *scheme; /* URI scheme */
++ char rp[256]; /* Remote printer */
++ AvahiStringList *pair;
++ char *value;
++ size_t valueLen = 0;
++ char addr[AVAHI_ADDRESS_STR_MAX];
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } *poll_uribuf = context;
++
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++ "port=%d, txt=%p, flags=%d, context=%p)\n",
++ resolver, interface, protocol, event, name, type, domain,
++ host_name, address, port, txt, flags, context));
++
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ avahi_service_resolver_free (resolver);
++ avahi_simple_poll_quit (poll_uribuf->poll);
++ return;
++ }
++
++ /*
++ * Figure out the scheme from the full name...
++ */
++
++ if (strstr(type, "_ipp."))
++ scheme = "ipp";
++ else if (strstr(type, "_printer."))
++ scheme = "lpd";
++ else if (strstr(type, "_pdl-datastream."))
++ scheme = "socket";
++ else
++ scheme = "riousbprint";
++
++ /*
++ * Extract the "remote printer key from the TXT record...
++ */
++
++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++ {
++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++ rp[0] = '/';
++ memcpy (rp + 1, value, valueLen);
++ rp[valueLen + 1] = '\0';
++ }
++ else
++ rp[0] = '\0';
++
++ /*
++ * Assemble the final device URI...
++ */
++
++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++ poll_uribuf->uribuf.bufsize, scheme, NULL,
++ addr, port, rp);
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++ poll_uribuf->uribuf.buffer));
++ avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $". \ No newline at end of file
diff --git a/extra/cups/cups-avahi-3-timeouts.patch b/extra/cups/cups-avahi-3-timeouts.patch
new file mode 100644
index 000000000..daf852a0f
--- /dev/null
+++ b/extra/cups/cups-avahi-3-timeouts.patch
@@ -0,0 +1,381 @@
+diff -up cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.2/scheduler/cupsd.h
+--- cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
++++ cups-1.5.2/scheduler/cupsd.h 2012-03-14 15:06:36.509476983 +0000
+@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
+
+ typedef void (*cupsd_selfunc_t)(void *data);
+
++#ifdef HAVE_AVAHI
++/*
++ * Timeout callback function type...
++ */
++
++typedef struct _cupsd_timeout_s cupsd_timeout_t;
++typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * Globals...
+@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
+ /* Running from launchd */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_AVAHI
++VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
++#endif /* HAVE_AVAHI */
++
++
+
+ /*
+ * Prototypes...
+@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
+ extern void cupsdStartServer(void);
+ extern void cupsdStopServer(void);
+
++#ifdef HAVE_AVAHI
++extern void cupsdInitTimeouts(void);
++extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
++ cupsd_timeoutfunc_t cb,
++ void *data);
++extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
++extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
++extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
++ const struct timeval *tv);
++extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
++#endif /* HAVE_AVAHI */
++
++extern int cupsdRemoveFile(const char *filename);
++
+
+ /*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+diff -up cups-1.5.2/scheduler/main.c.avahi-3-timeouts cups-1.5.2/scheduler/main.c
+--- cups-1.5.2/scheduler/main.c.avahi-3-timeouts 2012-03-14 15:04:17.655305548 +0000
++++ cups-1.5.2/scheduler/main.c 2012-03-14 15:06:36.511476986 +0000
+@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
+ int launchd_idle_exit;
+ /* Idle exit on select timeout? */
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
++ long tmo_delay; /* Time before it must be called */
++#endif /* HAVE_AVAHI */
+
+
+ #ifdef HAVE_GETEUID
+@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
+
+ httpInitialize();
+
++#ifdef HAVE_AVAHI
++ /*
++ * Initialize timed callback structures.
++ */
++
++ cupsdInitTimeouts();
++#endif /* HAVE_AVAHI */
++
+ cupsdStartServer();
+
+ /*
+@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * If a timed callback is due, run it.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo && tmo_delay == 0)
++ cupsdRunTimeout (tmo);
++#endif /* HAVE_AVAHI */
++
+ #ifndef __APPLE__
+ /*
+ * Update the network interfaces once a minute...
+@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
+ cupsd_job_t *job; /* Job information */
+ cupsd_subscription_t *sub; /* Subscription information */
+ const char *why; /* Debugging aid */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Timed callback */
++ long tmo_delay; /* Seconds before calling it */
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * See if there are any scheduled timed callbacks to run.
++ */
++
++ if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
++ (now + tmo_delay) < timeout)
++ {
++ timeout = tmo_delay;
++ why = "run a timed callback";
++ }
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Check whether we are accepting new connections...
+ */
+diff -up cups-1.5.2/scheduler/Makefile.avahi-3-timeouts cups-1.5.2/scheduler/Makefile
+--- cups-1.5.2/scheduler/Makefile.avahi-3-timeouts 2012-03-14 15:04:17.685305586 +0000
++++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:06:36.508476980 +0000
+@@ -39,7 +39,8 @@ CUPSDOBJS = \
+ server.o \
+ statbuf.o \
+ subscriptions.o \
+- sysman.o
++ sysman.o \
++ timeout.o
+ LIBOBJS = \
+ filter.o \
+ mime.o \
+diff -up cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts cups-1.5.2/scheduler/timeout.c
+--- cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts 2012-03-14 15:06:36.552477037 +0000
++++ cups-1.5.2/scheduler/timeout.c 2012-03-14 15:06:36.552477037 +0000
+@@ -0,0 +1,235 @@
++/*
++ * "$Id$"
++ *
++ * Timeout functions for the Common UNIX Printing System (CUPS).
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * cupsdInitTimeouts() - Initialise timeout structure.
++ * cupsdAddTimeout() - Add a timed callback.
++ * cupsdNextTimeout() - Find the next enabled timed callback.
++ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
++ * cupsdRemoveTimeout() - Discard a timed callback.
++ * compare_timeouts() - Compare timed callbacks for array sorting.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++struct _cupsd_timeout_s
++{
++ struct timeval when;
++ int enabled;
++ cupsd_timeoutfunc_t callback;
++ void *data;
++};
++
++/*
++ * Local functions...
++ */
++
++/*
++ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
++ */
++
++static int
++compare_addrs (void *p0, void *p1)
++{
++ if (p0 == p1)
++ return (0);
++ if (p0 < p1)
++ return (-1);
++ return (1);
++}
++
++static int
++compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
++{
++ int addrsdiff = compare_addrs (p0, p1);
++ int tvdiff;
++
++ if (addrsdiff == 0)
++ return (0);
++
++ if (!p0->enabled || !p1->enabled)
++ {
++ if (!p0->enabled && !p1->enabled)
++ return (addrsdiff);
++
++ return (p0->enabled ? -1 : 1);
++ }
++
++ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
++ if (tvdiff != 0)
++ return (tvdiff);
++
++ return (addrsdiff);
++}
++
++
++/*
++ * 'cupsdInitTimeouts()' - Initialise timeout structures.
++ */
++
++void
++cupsdInitTimeouts(void)
++{
++ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
++}
++
++
++/*
++ * 'cupsdAddTimeout()' - Add a timed callback.
++ */
++
++cupsd_timeout_t * /* O - Timeout handle */
++cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
++ cupsd_timeoutfunc_t cb, /* I - Callback function */
++ void *data) /* I - User data */
++{
++ cupsd_timeout_t *timeout;
++
++ timeout = malloc (sizeof(cupsd_timeout_t));
++ if (timeout != NULL)
++ {
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++
++ timeout->callback = cb;
++ timeout->data = data;
++ cupsArrayAdd (Timeouts, timeout);
++ }
++
++ return timeout;
++}
++
++
++/*
++ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
++ */
++
++cupsd_timeout_t * /* O - Next enabled timeout or NULL */
++cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
++{
++ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
++ struct timeval curtime;
++
++ if (first && !first->enabled)
++ first = NULL;
++
++ if (first && delay)
++ {
++ gettimeofday (&curtime, NULL);
++ if (avahi_timeval_compare (&curtime, &first->when) > 0)
++ {
++ *delay = 0;
++ } else {
++ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
++ if (first->when.tv_usec < curtime.tv_usec)
++ (*delay)--;
++ }
++ }
++
++ return (first);
++}
++
++
++/*
++ * 'cupsdRunTimeout()' - Run a timed callback.
++ */
++
++void
++cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ if (!timeout)
++ return;
++ timeout->enabled = 0;
++ if (!timeout->callback)
++ return;
++ timeout->callback (timeout, timeout->data);
++}
++
++/*
++ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
++ */
++
++void
++cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
++ const struct timeval *tv) /* I - Absolute time or NULL */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++ cupsArrayAdd (Timeouts, timeout);
++}
++
++
++/*
++ * 'cupsdRemoveTimeout()' - Discard a timed callback.
++ */
++
++void
++cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ free (timeout);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
diff --git a/extra/cups/cups-avahi-4-poll.patch b/extra/cups/cups-avahi-4-poll.patch
new file mode 100644
index 000000000..d7fa5fd56
--- /dev/null
+++ b/extra/cups/cups-avahi-4-poll.patch
@@ -0,0 +1,529 @@
+diff -up cups-1.5.2/scheduler/avahi.c.avahi-4-poll cups-1.5.2/scheduler/avahi.c
+--- cups-1.5.2/scheduler/avahi.c.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.c 2012-03-14 15:07:29.477542381 +0000
+@@ -0,0 +1,441 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * watch_read_cb - Read callback for file descriptor
++ * watch_write_cb - Write callback for file descriptor
++ * watched_fd_add_select() - Call cupsdAddSelect() as needed
++ * watch_new() - Create a new file descriptor watch
++ * watch_free() - Free a file descriptor watch
++ * watch_update() - Update watched events for a file descriptor
++ * watch_get_events() - Get events that happened for a file descriptor
++ * timeout_cb() - Run a timed Avahi callback
++ * timeout_new() - Set a wakeup time
++ * timeout_update() - Update the expiration time for a timeout
++ * timeout_free() - Free a timeout
++ * compare_watched_fds() - Compare watched file descriptors for array sorting
++ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
++ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
++ * avahi_cups_poll_get() - Get the abstract poll API structure
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++typedef struct
++{
++ AvahiCupsPoll *cups_poll;
++
++ int fd;
++ AvahiWatchEvent occurred;
++ cups_array_t *watches;
++} cupsd_watched_fd_t;
++
++struct AvahiWatch
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ AvahiWatchEvent events;
++ AvahiWatchCallback callback;
++ void *userdata;
++};
++
++struct AvahiTimeout
++{
++ AvahiCupsPoll *cups_poll;
++ AvahiTimeoutCallback callback;
++ void *userdata;
++ cupsd_timeout_t *cupsd_timeout;
++};
++
++/*
++ * Local functions...
++ */
++
++static AvahiWatch * watch_new(const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata);
++static void watch_free(AvahiWatch *watch);
++static void watch_update(AvahiWatch *watch,
++ AvahiWatchEvent events);
++static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
++
++
++/*
++ * 'watch_read_cb' - Read callback for file descriptor
++ */
++
++static void
++watch_read_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_IN;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_IN, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_IN;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watch_write_cb' - Write callback for file descriptor
++ */
++
++static void
++watch_write_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_OUT;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_OUT, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
++ */
++
++static int /* O - Watches? */
++watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
++{
++ AvahiWatch *watch;
++ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
++ int any_watches = 0;
++
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ any_watches = 1;
++ if (watch->events & (AVAHI_WATCH_IN |
++ AVAHI_WATCH_ERR |
++ AVAHI_WATCH_HUP))
++ {
++ read_cb = (cupsd_selfunc_t)watch_read_cb;
++ if (write_cb != NULL)
++ break;
++ }
++
++ if (watch->events & AVAHI_WATCH_OUT)
++ {
++ write_cb = (cupsd_selfunc_t)watch_write_cb;
++ if (read_cb != NULL)
++ break;
++ }
++ }
++
++ if (read_cb || write_cb)
++ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
++ else
++ cupsdRemoveSelect (watched_fd->fd);
++
++ return (any_watches);
++}
++
++/*
++ * 'watch_new' - Create a new file descriptor watch
++ */
++
++static AvahiWatch *
++watch_new (const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata)
++{
++ cupsd_watched_fd_t key, *watched_fd;
++ AvahiCupsPoll *cups_poll = api->userdata;
++ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
++ if (watch == NULL)
++ return (NULL);
++
++ watch->events = events;
++ watch->callback = callback;
++ watch->userdata = userdata;
++
++ key.fd = fd;
++ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
++ if (watched_fd == NULL)
++ {
++ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
++ if (watched_fd == NULL)
++ {
++ free (watch);
++ return (NULL);
++ }
++
++ watched_fd->fd = fd;
++ watched_fd->occurred = 0;
++ watched_fd->cups_poll = cups_poll;
++ watched_fd->watches = cupsArrayNew (NULL, NULL);
++ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
++ }
++
++ watch->watched_fd = watched_fd;
++ cupsArrayAdd(watched_fd->watches, watch);
++ watched_fd_add_select (watched_fd);
++ return (watch);
++}
++
++
++/*
++ * 'watch_free' - Free a file descriptor watch
++ */
++
++static void
++watch_free (AvahiWatch *watch)
++{
++ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
++ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
++
++ cupsArrayRemove (watched_fd->watches, watch);
++ free (watch);
++
++ if (!watched_fd_add_select (watched_fd))
++ {
++ /* No more watches */
++ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
++ free (watched_fd);
++ }
++}
++
++
++/*
++ * 'watch_update' - Update watched events for a file descriptor
++ */
++
++static void
++watch_update (AvahiWatch *watch,
++ AvahiWatchEvent events)
++{
++ watch->events = events;
++ watched_fd_add_select (watch->watched_fd);
++}
++
++
++/*
++ * 'watch_get_events' - Get events that happened for a file descriptor
++ */
++
++static AvahiWatchEvent
++watch_get_events (AvahiWatch *watch)
++{
++ return (watch->watched_fd->occurred);
++}
++
++
++/*
++ * 'timeout_cb()' - Run a timed Avahi callback
++ */
++
++static void
++timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
++{
++ AvahiTimeout *timeout = userdata;
++ (timeout->callback) (timeout, timeout->userdata);
++}
++
++
++/*
++ * 'timeout_new' - Set a wakeup time
++ */
++
++static AvahiTimeout *
++timeout_new (const AvahiPoll *api,
++ const struct timeval *tv,
++ AvahiTimeoutCallback callback,
++ void *userdata)
++{
++ AvahiTimeout *timeout;
++ AvahiCupsPoll *cups_poll = api->userdata;
++
++ timeout = malloc(sizeof(AvahiTimeout));
++ if (timeout == NULL)
++ return (NULL);
++
++ timeout->cups_poll = cups_poll;
++ timeout->callback = callback;
++ timeout->userdata = userdata;
++ timeout->cupsd_timeout = cupsdAddTimeout (tv,
++ (cupsd_timeoutfunc_t)timeout_cb,
++ timeout);
++ cupsArrayAdd (cups_poll->timeouts, timeout);
++ return (timeout);
++}
++
++
++/*
++ * 'timeout_update' - Update the expiration time for a timeout
++ */
++
++static void
++timeout_update (AvahiTimeout *timeout,
++ const struct timeval *tv)
++{
++ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
++}
++
++
++/*
++ * ' timeout_free' - Free a timeout
++ */
++
++static void
++timeout_free (AvahiTimeout *timeout)
++{
++ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
++ cupsdRemoveTimeout (timeout->cupsd_timeout);
++ free (timeout);
++}
++
++
++/*
++ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
++ */
++static int
++compare_watched_fds(cupsd_watched_fd_t *p0,
++ cupsd_watched_fd_t *p1)
++{
++ /*
++ * Compare by fd (no two elements have the same fd)
++ */
++
++ if (p0->fd == p1->fd)
++ return 0;
++
++ return (p0->fd < p1->fd ? -1 : 1);
++}
++
++
++/*
++ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
++ */
++
++AvahiCupsPoll *
++avahi_cups_poll_new (void)
++{
++ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
++ if (cups_poll == NULL)
++ return (NULL);
++
++ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
++ NULL);
++ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
++
++ cups_poll->api.userdata = cups_poll;
++ cups_poll->api.watch_new = watch_new;
++ cups_poll->api.watch_free = watch_free;
++ cups_poll->api.watch_update = watch_update;
++ cups_poll->api.watch_get_events = watch_get_events;
++
++ cups_poll->api.timeout_new = timeout_new;
++ cups_poll->api.timeout_update = timeout_update;
++ cups_poll->api.timeout_free = timeout_free;
++
++ return (cups_poll);
++}
++
++
++/*
++ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
++ */
++void
++avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
++ watched_fd;
++ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
++ cupsArrayClear (watched_fd->watches);
++
++ cupsArrayClear (cups_poll->watched_fds);
++ cupsArrayClear (cups_poll->timeouts);
++}
++
++
++/*
++ * 'avahi_cups_poll_get' - Get the abstract poll API structure
++ */
++
++const AvahiPoll *
++avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
++{
++ return (&cups_poll->api);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.2/scheduler/avahi.h.avahi-4-poll cups-1.5.2/scheduler/avahi.h
+--- cups-1.5.2/scheduler/avahi.h.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:07:29.477542381 +0000
+@@ -0,0 +1,69 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_AUTHORIZATION_H
++# include <Security/Authorization.h>
++#endif /* HAVE_AUTHORIZATION_H */
++
++
++#ifdef HAVE_AVAHI
++typedef struct
++{
++ AvahiPoll api;
++ cups_array_t *watched_fds;
++ cups_array_t *timeouts;
++} AvahiCupsPoll;
++#endif /* HAVE_AVAHI */
++
++/*
++ * Prototypes...
++ */
++
++#ifdef HAVE_AVAHI
++extern AvahiCupsPoll * avahi_cups_poll_new(void);
++extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
++extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.2/scheduler/Makefile.avahi-4-poll cups-1.5.2/scheduler/Makefile
+--- cups-1.5.2/scheduler/Makefile.avahi-4-poll 2012-03-14 15:06:36.508476980 +0000
++++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:07:29.476542380 +0000
+@@ -17,6 +17,7 @@ include ../Makedefs
+
+ CUPSDOBJS = \
+ auth.o \
++ avahi.o \
+ banners.o \
+ cert.o \
+ classes.o \
diff --git a/extra/cups/cups-avahi-5-services.patch b/extra/cups/cups-avahi-5-services.patch
new file mode 100644
index 000000000..820b3c32b
--- /dev/null
+++ b/extra/cups/cups-avahi-5-services.patch
@@ -0,0 +1,1272 @@
+diff -up cups-1.5.2/cgi-bin/admin.c.avahi-5-services cups-1.5.2/cgi-bin/admin.c
+--- cups-1.5.2/cgi-bin/admin.c.avahi-5-services 2011-08-17 22:01:53.000000000 +0100
++++ cups-1.5.2/cgi-bin/admin.c 2012-03-14 15:08:25.701611799 +0000
+@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ local_protocols[0] = '\0';
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
+ {
+ if (local_protocols[0])
+@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ strcat(local_protocols, "dnssd");
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
+@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
+ #endif /* HAVE_GSSAPI */
+ cgiSetVariable("KERBEROS", "");
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cgiSetVariable("HAVE_DNSSD", "1");
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ cgiSetVariable("HAVE_LDAP", "1");
+diff -up cups-1.5.2/scheduler/avahi.h.avahi-5-services cups-1.5.2/scheduler/avahi.h
+--- cups-1.5.2/scheduler/avahi.h.avahi-5-services 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:08:25.701611799 +0000
+@@ -3,7 +3,7 @@
+ *
+ * Avahi poll implementation for the CUPS scheduler.
+ *
+- * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Copyright (C) 2010, 2011, 2012 Red Hat, Inc.
+ * Authors:
+ * Tim Waugh <twaugh@redhat.com>
+ *
+@@ -32,37 +32,40 @@
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <config.h>
++#ifndef _CUPS_AVAHI_H_
++# define _CUPS_AVAHI_H_
+
+-#ifdef HAVE_AVAHI
+-# include <avahi-client/client.h>
+-# include <avahi-client/publish.h>
+-#endif /* HAVE_AVAHI */
++/*
++ * Include necessary headers...
++ */
+
+-#ifdef HAVE_AUTHORIZATION_H
+-# include <Security/Authorization.h>
+-#endif /* HAVE_AUTHORIZATION_H */
++# include <config.h>
+
++# ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++# endif /* HAVE_AVAHI */
+
+-#ifdef HAVE_AVAHI
++# ifdef HAVE_AVAHI
+ typedef struct
+ {
+ AvahiPoll api;
+ cups_array_t *watched_fds;
+ cups_array_t *timeouts;
+ } AvahiCupsPoll;
+-#endif /* HAVE_AVAHI */
++# endif /* HAVE_AVAHI */
+
+ /*
+ * Prototypes...
+ */
+
+-#ifdef HAVE_AVAHI
++# ifdef HAVE_AVAHI
+ extern AvahiCupsPoll * avahi_cups_poll_new(void);
+ extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
+ extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
+-#endif /* HAVE_AVAHI */
++# endif /* HAVE_AVAHI */
+
++#endif /* !_CUPS_AVAHI_H_ */
+
+ /*
+ * End of "$Id$".
+diff -up cups-1.5.2/scheduler/client.c.avahi-5-services cups-1.5.2/scheduler/client.c
+--- cups-1.5.2/scheduler/client.c.avahi-5-services 2012-01-13 23:00:22.000000000 +0000
++++ cups-1.5.2/scheduler/client.c 2012-03-14 15:08:25.703611797 +0000
+@@ -4989,7 +4989,7 @@ valid_host(cupsd_client_t *con) /* I -
+ !strncmp(host, "[::1]:", 6));
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * Check if the hostname is something.local (Bonjour); if so, allow it.
+ */
+@@ -4998,7 +4998,7 @@ valid_host(cupsd_client_t *con) /* I -
+ (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
+ !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
+ return (1);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ /*
+ * Check if the hostname is an IP address...
+diff -up cups-1.5.2/scheduler/conf.c.avahi-5-services cups-1.5.2/scheduler/conf.c
+--- cups-1.5.2/scheduler/conf.c.avahi-5-services 2012-03-14 15:04:17.636305526 +0000
++++ cups-1.5.2/scheduler/conf.c 2012-03-14 15:08:25.706611803 +0000
+@@ -652,7 +652,7 @@ cupsdReadConfiguration(void)
+ Browsing = CUPS_DEFAULT_BROWSING;
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ #endif /* HAVE_DNSSD */
+
+diff -up cups-1.5.2/scheduler/dirsvc.c.avahi-5-services cups-1.5.2/scheduler/dirsvc.c
+--- cups-1.5.2/scheduler/dirsvc.c.avahi-5-services 2012-03-14 15:04:17.674305572 +0000
++++ cups-1.5.2/scheduler/dirsvc.c 2012-03-14 15:08:25.709611806 +0000
+@@ -27,6 +27,7 @@
+ * ldap_connect() - Start new LDAP connection
+ * ldap_reconnect() - Reconnect to LDAP Server
+ * ldap_disconnect() - Disconnect from LDAP Server
++ * cupsdStartAvahiClient() - Start an Avahi client if needed
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStartPolling() - Start polling servers as needed.
+@@ -40,11 +41,12 @@
+ * dequote() - Remote quotes from a string.
+ * dnssdAddAlias() - Add a DNS-SD alias name.
+ * dnssdBuildTxtRecord() - Build a TXT record from printer info.
+- * dnssdComparePrinters() - Compare the registered names of two printers.
+ * dnssdDeregisterPrinter() - Stop sending broadcast information for a
+ * printer.
+ * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
+ * record format.
++ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
++ * AvahiStringList.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+@@ -83,6 +85,7 @@
+ */
+
+ #include "cupsd.h"
++#include <assert.h>
+ #include <grp.h>
+
+ #ifdef HAVE_DNSSD
+@@ -97,6 +100,17 @@
+ # endif /* HAVE_SYSTEMCONFIGURATION */
+ # endif /* __APPLE__ */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-common/domain.h>
++#endif /* HAVE_AVAHI */
++
++
++#ifdef HAVE_DNSSD
++typedef char *cupsd_txt_record_t;
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++typedef AvahiStringList *cupsd_txt_record_t;
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -159,27 +173,38 @@ static void update_polling(void);
+ static void update_smb(int onoff);
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
++ int for_lpd);
++static void dnssdDeregisterPrinter(cupsd_printer_t *p);
++static void dnssdRegisterPrinter(cupsd_printer_t *p);
++static void dnssdStop(void);
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
+ #ifdef HAVE_DNSSD
+ # ifdef HAVE_COREFOUNDATION
+ static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
+ # endif /* HAVE_COREFOUNDATION */
+-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
+- int for_lpd);
+-static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
+-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
+-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
+- int count);
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name, const char *regtype,
+ const char *domain, void *context);
+-static void dnssdRegisterPrinter(cupsd_printer_t *p);
+-static void dnssdStop(void);
+ static void dnssdUpdate(void);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
++ int count);
++static void avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata);
++static void avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata);
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LDAP
+ static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
+ {
+@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
+ ldap_dereg_printer(p);
+ #endif /* HAVE_LDAP */
+
+-#ifdef HAVE_DNSSD
+- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdDeregisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
+ slpRegisterPrinter(p); */
+ #endif /* HAVE_LIBSLP */
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdRegisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
+ #endif /* HAVE_LDAP */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
++ */
++
++void
++cupsdStartAvahiClient(void)
++{
++ int error = 0;
++
++ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
++ {
++ if (!AvahiCupsPollHandle)
++ AvahiCupsPollHandle = avahi_cups_poll_new ();
++
++ if (AvahiCupsPollHandle)
++ {
++ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
++ AVAHI_CLIENT_NO_FAIL,
++ avahi_client_cb, NULL,
++ &error) != NULL)
++ AvahiCupsClientConnecting = 1;
++ else
++ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
++ }
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
+ */
+@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
+ else
+ BrowseSocket = -1;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
++#endif /* HAVE_DNSSD */
+ cupsd_listener_t *lis; /* Current listening socket */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * First create a "master" connection for all registrations...
+ */
+@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+
+ cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
+ */
+
+ if (BrowseRemoteProtocols & BROWSE_DNSSD)
+- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
+- NULL);
++ DNSSDPrinters = cupsArrayNew(NULL, NULL);
+
+ /*
+ * Set the computer name and register the web interface...
+ */
+
+ cupsdUpdateDNSSDName();
++
++#ifdef HAVE_AVAHI
++ cupsdStartAvahiClient ();
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_DNSSD
+ }
+- }
+ #endif /* HAVE_DNSSD */
++ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
+@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
+ BrowseSocket = -1;
+ }
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdStop();
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
+@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
+ }
+
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
+ */
+@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
+ void
+ cupsdUpdateDNSSDName(void)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
+ char webif[1024]; /* Web interface share name */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error from service creation */
++ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
++#endif /* HAVE_AVAHI */
+ # ifdef HAVE_SYSTEMCONFIGURATION
+ SCDynamicStoreRef sc; /* Context for dynamic store */
+ CFDictionaryRef btmm; /* Back-to-My-Mac domains */
+@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
+ else
+ strlcpy(webif, "CUPS Web Interface", sizeof(webif));
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ DNSServiceRefDeallocate(WebIFRef);
+
+@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
+ NULL)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS-SD web interface registration failed: %d", error);
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not yet running.
++ */
++ return;
++
++ if (AvahiWebIFGroup)
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ else
++ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ NULL);
++
++ if (AvahiWebIFGroup)
++ {
++ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, /* flags */
++ webif, /* name */
++ "_http._tcp", /* type */
++ NULL, /* domain */
++ NULL, /* host */
++ DNSSDPort, /* port */
++ "path=/", NULL);
++ if (ret == 0)
++ ret = avahi_entry_group_commit (AvahiWebIFGroup);
++
++ if (ret != 0)
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi web interface registration failed: %d", ret);
++ }
++#endif /* HAVE_AVAHI */
+ }
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
+ #ifdef HAVE_LDAP
+@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
+ "Bad Back to My Mac domain in dynamic store!");
+ }
+ # endif /* HAVE_COREFOUNDATION */
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
+ */
+
+-static char * /* O - TXT record */
++static cupsd_txt_record_t /* O - TXT record */
+ dnssdBuildTxtRecord(
+ int *txt_len, /* O - TXT record length */
+ cupsd_printer_t *p, /* I - Printer information */
+@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
+ keyvalue[i ][0] = "ty";
+ keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+
+- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
++ snprintf(admin_hostname, sizeof(admin_hostname),
++ "%s.local"
++#ifdef HAVE_DNSSD
++ "." /* terminating dot no good for Avahi */
++#endif /* HAVE_DNSSD */
++ , DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+ "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
+ * Then pack them into a proper txt record...
+ */
+
++#ifdef HAVE_DNSSD
+ return (dnssdPackTxtRecord(txt_len, keyvalue, i));
+-}
+-
+-
+-/*
+- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
+- */
+-
+-static int /* O - Result of comparison */
+-dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
+- cupsd_printer_t *b)/* I - Second printer */
+-{
+- return (_cups_strcasecmp(a->reg_name, b->reg_name));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ return (avahiPackTxtRecord(keyvalue, i));
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ /*
+ * Closing the socket deregisters the service
+ */
+@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
+ free(p->printer_txt);
+ p->printer_txt = NULL;
+ }
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++
++ if (p->ipp_txt)
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ p->ipp_txt = p->printer_txt = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
+ /*
+ * Remove the printer from the array of DNS-SD printers, then clear the
+@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
+ cupsArrayRemove(DNSSDPrinters, p);
+ cupsdClearString(&p->reg_name);
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
+ * TXT record format.
+@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
+ LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+ }
+ }
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
+ static void
+ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType se; /* dnssd errors */
+ char *ipp_txt, /* IPP TXT record buffer */
+ *printer_txt, /* LPD TXT record buffer */
+- name[1024], /* Service name */
+- *nameptr; /* Pointer into name */
++ name[1024]; /* Service name */
+ int ipp_len, /* IPP TXT record length */
+ printer_len, /* LPD TXT record length */
+ printer_port; /* LPD port number */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error code */
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ char name[AVAHI_LABEL_MAX], /* Service name */
++ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
++ char *regtype_copy, /* Writeable copy of reg type */
++ *subtype, /* Current service sub type */
++ *nextsubtype; /* Next service sub type */
++#endif /* HAVE_AVAHI */
++ char *nameptr; /* Pointer into name */
+ const char *regtype; /* Registration type */
+
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_ref ? "new" : "update");
+-
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
++ !p->avahi_group ? "new" : "update");
++#endif /* HAVE_AVAHI */
+ /*
+ * If per-printer sharing was just disabled make sure we're not
+ * registered before returning.
+@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ if (p->info && strlen(p->info) > 0)
+ {
+ if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->info, sizeof(name));
+ }
+ else if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->name, sizeof(name));
+
+@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ * Register IPP and (optionally) LPD...
+ */
+
++#ifdef HAVE_DNSSD
+ ipp_len = 0; /* anti-compiler-warning-code */
+ ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
+
+@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+
+ if (printer_txt)
+ free(printer_txt);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not running yet. The client callback will call us again later.
++ */
++ return;
++
++ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
++ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
++ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
++
++ if (p->avahi_group && p->ipp_txt && ipp_txt &&
++ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
++ {
++ /*
++ * Update the existing registration...
++ */
++
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ /*
++ * Update the service group entry.
++ */
++
++ regtype_copy = strdup (regtype);
++ subtype = strchr (regtype_copy, ',');
++ if (subtype)
++ *subtype = '\0';
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Updating TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, ipp_txt);
++ free (regtype_copy);
++
++ if (ret < 0)
++ goto update_failed;
++
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL,
++ printer_txt);
++ if (ret < 0)
++ goto update_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++ if (ret < 0)
++ {
++ update_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to update TXT record for %s: %d",
++ name, ret);
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (!p->avahi_group)
++ {
++ /*
++ * Initial registration. Use the _fax subtype for fax queues...
++ */
++
++ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ p);
++
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"%s\"", p->name, name, regtype);
++
++ if (!p->avahi_group)
++ {
++ ret = 0;
++ goto add_failed;
++ }
++
++ /*
++ * Add each service type (DNSSDRegType may contain several,
++ * separated by commas).
++ */
++
++ subtype = regtype_copy = strdup (regtype);
++ while (subtype && *subtype)
++ {
++ nextsubtype = strchr (subtype, ',');
++ if (nextsubtype)
++ *nextsubtype++ = '\0';
++
++ if (subtype == regtype_copy)
++ {
++ /*
++ * Main type entry.
++ */
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name, regtype_copy,
++ NULL, NULL,
++ DNSSDPort,
++ ipp_txt);
++ }
++ else
++ {
++ /*
++ * Sub-type entry.
++ */
++
++ snprintf (fullsubtype, sizeof(fullsubtype),
++ "%s._sub.%s", subtype, regtype_copy);
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, fullsubtype);
++ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, fullsubtype);
++ }
++
++ if (ret < 0)
++ {
++ free (regtype_copy);
++ goto add_failed;
++ }
++
++ subtype = nextsubtype;
++ }
++
++ free (regtype_copy);
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"_printer._tcp\"", p->name, name);
++
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL, NULL,
++ 515,
++ printer_txt);
++ if (ret < 0)
++ goto add_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++
++ if (ret < 0)
++ {
++ add_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to add Avahi entry for %s: %d",
++ name, ret);
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ }
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (ipp_txt)
++ avahi_string_list_free (ipp_txt);
++
++ if (printer_txt)
++ avahi_string_list_free (printer_txt);
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2896,6 +3278,10 @@ dnssdStop(void)
+ {
+ cupsd_printer_t *p; /* Current printer */
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++#endif /* HAVE_DNSSD */
+
+ /*
+ * De-register the individual printers
+@@ -2910,12 +3296,23 @@ dnssdStop(void)
+ * Shutdown the rest of the service refs...
+ */
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ {
+ DNSServiceRefDeallocate(WebIFRef);
+ WebIFRef = NULL;
+ }
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (AvahiWebIFGroup)
++ {
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ avahi_entry_group_free (AvahiWebIFGroup);
++ AvahiWebIFGroup = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
++#ifdef HAVE_DNSSD
+ if (RemoteRef)
+ {
+ DNSServiceRefDeallocate(RemoteRef);
+@@ -2926,14 +3323,17 @@ dnssdStop(void)
+
+ DNSServiceRefDeallocate(DNSSDRef);
+ DNSSDRef = NULL;
++#endif /* HAVE_DNSSD */
+
+ cupsArrayDelete(DNSSDPrinters);
+ DNSSDPrinters = NULL;
+
+ DNSSDPort = 0;
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+@@ -2955,6 +3355,153 @@ dnssdUpdate(void)
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
++ * AvahiStringList.
++ */
++
++static AvahiStringList * /* O - new string list */
++avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
++ int count) /* I - Number of items in table */
++{
++ AvahiStringList *strlst = NULL;
++ char **elements;
++ size_t len;
++ int i = 0;
++
++ elements = malloc ((1 + count) * sizeof (char *));
++ if (!elements)
++ goto cleanup;
++
++ for (i = 0; i < count; i++)
++ {
++ len = (1 + strlen (keyvalue[i][0]) +
++ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
++ elements[i] = malloc (len * sizeof (char));
++ if (!elements[i])
++ goto cleanup;
++
++ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
++ }
++
++ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
++
++cleanup:
++ while (--i >= 0)
++ free (elements[i]);
++
++ free (elements);
++ return (strlst);
++}
++
++
++/*
++ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
++ */
++static void
++avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata)
++{
++ char *name;
++
++ if (userdata)
++ name = ((cupsd_printer_t *) userdata)->reg_name;
++ else
++ name = "CUPS web interface";
++
++ switch (state)
++ {
++ case AVAHI_ENTRY_GROUP_UNCOMMITED:
++ case AVAHI_ENTRY_GROUP_REGISTERING:
++ break;
++
++ case AVAHI_ENTRY_GROUP_ESTABLISHED:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group established for %s", name);
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group %s has state %d",
++ name, state);
++ break;
++ }
++}
++
++
++/*
++ * 'avahi_client_cb()' - Avahi client callback function.
++ */
++static void
++avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata)
++{
++ cupsd_printer_t *printer;
++ switch (state)
++ {
++ case AVAHI_CLIENT_S_RUNNING:
++ /*
++ * Avahi client started successfully.
++ */
++ AvahiCupsClient = client;
++ AvahiCupsClientConnecting = 0;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
++
++ cupsdUpdateDNSSDName ();
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
++ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
++ CUPS_PRINTER_SCANNER))) && printer->shared)
++ dnssdRegisterPrinter (printer);
++
++ break;
++
++ case AVAHI_CLIENT_CONNECTING:
++ /*
++ * No Avahi daemon, client is waiting.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
++ break;
++
++ case AVAHI_CLIENT_S_REGISTERING:
++ /*
++ * Not yet registered.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
++ break;
++
++ case AVAHI_CLIENT_FAILURE:
++ /*
++ * Avahi client failed, close it to allow a clean restart.
++ */
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi client failed, "
++ "closing client to allow a clean restart");
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ dnssdDeregisterPrinter (printer);
++
++ avahi_client_free(client);
++ AvahiCupsClientConnecting = 0;
++ AvahiCupsClient = NULL;
++
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
+ */
+diff -up cups-1.5.2/scheduler/dirsvc.h.avahi-5-services cups-1.5.2/scheduler/dirsvc.h
+--- cups-1.5.2/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
++++ cups-1.5.2/scheduler/dirsvc.h 2012-03-14 15:08:25.711611808 +0000
+@@ -31,6 +31,10 @@
+ # endif /* HAVE_LDAP_SSL_H */
+ #endif /* HAVE_LDAP */
+
++#ifdef HAVE_AVAHI
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Browse protocols...
+ */
+@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
+ VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
+ /* Status buffer for pollers */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ VAR char *DNSSDComputerName VALUE(NULL),
+ /* Computer/server name */
+ *DNSSDHostName VALUE(NULL),
+ /* Hostname */
+ *DNSSDRegType VALUE(NULL);
+ /* Bonjour registration type */
+-VAR cups_array_t *DNSSDAlias VALUE(NULL);
+- /* List of dynamic ServerAlias's */
+ VAR int DNSSDPort VALUE(0);
+ /* Port number to register */
+ VAR cups_array_t *DNSSDPrinters VALUE(NULL);
+ /* Printers we have registered */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
++#ifdef HAVE_DNSSD
++VAR cups_array_t *DNSSDAlias VALUE(NULL);
++ /* List of dynamic ServerAlias's */
+ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Master DNS-SD service reference */
+ WebIFRef VALUE(NULL),
+@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Remote printer browse reference */
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
++ /* AvahiCupsPoll object */
++VAR AvahiClient *AvahiCupsClient VALUE(NULL);
++ /* AvahiClient object */
++VAR int AvahiCupsClientConnecting VALUE(0);
++ /* Is AvahiClient object connecting? */
++VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
++ /* Web interface entry group */
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LIBSLP
+ VAR SLPHandle BrowseSLPHandle VALUE(NULL);
+ /* SLP API handle */
+@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
+ extern void cupsdRestartPolling(void);
+ extern void cupsdSaveRemoteCache(void);
+ extern void cupsdSendBrowseList(void);
++extern void cupsdStartAvahiClient(void);
+ extern void cupsdStartBrowsing(void);
+ extern void cupsdStartPolling(void);
+ extern void cupsdStopBrowsing(void);
+ extern void cupsdStopPolling(void);
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ extern void cupsdUpdateDNSSDName(void);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ #ifdef HAVE_LDAP
+ extern void cupsdUpdateLDAPBrowse(void);
+ #endif /* HAVE_LDAP */
+diff -up cups-1.5.2/scheduler/ipp.c.avahi-5-services cups-1.5.2/scheduler/ipp.c
+--- cups-1.5.2/scheduler/ipp.c.avahi-5-services 2012-03-14 15:04:17.665305560 +0000
++++ cups-1.5.2/scheduler/ipp.c 2012-03-14 15:08:25.715611813 +0000
+@@ -6099,7 +6099,7 @@ copy_printer_attrs(
+ ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
+ ippTimeToDate(curtime));
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
+ {
+ if (printer->reg_name)
+@@ -6109,7 +6109,7 @@ copy_printer_attrs(
+ ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
+ "printer-dns-sd-name", 0);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ if (!ra || cupsArrayFind(ra, "printer-error-policy"))
+ ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
+diff -up cups-1.5.2/scheduler/main.c.avahi-5-services cups-1.5.2/scheduler/main.c
+--- cups-1.5.2/scheduler/main.c.avahi-5-services 2012-03-14 15:06:36.511476986 +0000
++++ cups-1.5.2/scheduler/main.c 2012-03-14 15:08:25.718611817 +0000
+@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
+ cupsd_listener_t *lis; /* Current listener */
+ time_t current_time, /* Current time */
+ activity, /* Client activity timer */
++#ifdef HAVE_AVAHI
++ avahi_client_time, /* Time for next Avahi client
++ check */
++#endif /* HAVE_AVAHI */
+ browse_time, /* Next browse send time */
+ senddoc_time, /* Send-Document time */
+ expire_time, /* Subscription expire time */
+@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
+ */
+
+ current_time = time(NULL);
++#ifdef HAVE_AVAHI
++ avahi_client_time = current_time;
++#endif /* HAVE_AVAHI */
+ browse_time = current_time;
+ event_time = current_time;
+ expire_time = current_time;
+@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
+ tmo = cupsdNextTimeout (&tmo_delay);
+ if (tmo && tmo_delay == 0)
+ cupsdRunTimeout (tmo);
++
++ /*
++ * Try to restart the Avahi client every 10 seconds if needed...
++ */
++
++ if ((current_time - avahi_client_time) >= 10)
++ {
++ avahi_client_time = current_time;
++ cupsdStartAvahiClient();
++ }
+ #endif /* HAVE_AVAHI */
+
+ #ifndef __APPLE__
+diff -up cups-1.5.2/scheduler/printers.c.avahi-5-services cups-1.5.2/scheduler/printers.c
+--- cups-1.5.2/scheduler/printers.c.avahi-5-services 2012-03-14 15:04:17.646305537 +0000
++++ cups-1.5.2/scheduler/printers.c 2012-03-14 15:08:25.720611819 +0000
+@@ -883,9 +883,9 @@ cupsdDeletePrinter(
+ cupsdClearString(&p->alert);
+ cupsdClearString(&p->alert_description);
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdClearString(&p->pdl);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ cupsArrayDelete(p->filetypes);
+
+@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
+ attr->values[i].string.text = _cupsStrAlloc(mimetype);
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ {
+ char pdl[1024]; /* Buffer to build pdl list */
+ mime_filter_t *filter; /* MIME filter looping var */
+@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
+
+ cupsdSetString(&p->pdl, pdl);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+diff -up cups-1.5.2/scheduler/printers.h.avahi-5-services cups-1.5.2/scheduler/printers.h
+--- cups-1.5.2/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
++++ cups-1.5.2/scheduler/printers.h 2012-03-14 15:08:25.721611820 +0000
+@@ -16,6 +16,9 @@
+ #ifdef HAVE_DNSSD
+ # include <dns_sd.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include "avahi.h"
++#endif /* HAVE_AVAHI */
+ #include <cups/pwg-private.h>
+
+
+@@ -95,16 +98,23 @@ struct cupsd_printer_s
+ time_t marker_time; /* Last time marker attributes were updated */
+ _ppd_cache_t *pc; /* PPD cache and mapping data */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ char *reg_name, /* Name used for service registration */
+- *pdl, /* pdl value for TXT record */
+- *ipp_txt, /* IPP TXT record contents */
++ *pdl; /* pdl value for TXT record */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++#ifdef HAVE_DNSSD
++ char *ipp_txt, /* IPP TXT record contents */
+ *printer_txt; /* LPD TXT record contents */
+ int ipp_len, /* IPP TXT record length */
+ printer_len; /* LPD TXT record length */
+ DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
+ printer_ref; /* Reference for _printer._tcp */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ AvahiEntryGroup *avahi_group; /* Avahi entry group */
++#endif /* HAVE_AVAHI */
+ };
+
+
diff --git a/extra/cups/cups-no-export-ssllibs.patch b/extra/cups/cups-no-export-ssllibs.patch
new file mode 100644
index 000000000..9be3c819b
--- /dev/null
+++ b/extra/cups/cups-no-export-ssllibs.patch
@@ -0,0 +1,12 @@
+diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
+--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
+@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
+ AC_SUBST(SSLFLAGS)
+ AC_SUBST(SSLLIBS)
+
+-EXPORT_SSLLIBS="$SSLLIBS"
++EXPORT_SSLLIBS=""
+ AC_SUBST(EXPORT_SSLLIBS)
+
+
diff --git a/extra/cups/cups-no-gcrypt.patch b/extra/cups/cups-no-gcrypt.patch
new file mode 100644
index 000000000..42f71d0d4
--- /dev/null
+++ b/extra/cups/cups-no-gcrypt.patch
@@ -0,0 +1,38 @@
+diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
+--- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
+@@ -96,7 +96,6 @@
+ dnl Then look for GNU TLS...
+ if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
+ AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
+- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
+ if $PKGCONFIG --exists gnutls; then
+ have_ssl=1
+ SSLLIBS=`$PKGCONFIG --libs gnutls`
+@@ -110,16 +109,6 @@
+ AC_DEFINE(HAVE_SSL)
+ AC_DEFINE(HAVE_GNUTLS)
+ fi
+-
+- if test $have_ssl = 1; then
+- if $PKGCONFIG --exists gcrypt; then
+- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
+- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
+- elif test "x$LIBGCRYPTCONFIG" != x; then
+- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
+- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
+- fi
+- fi
+ fi
+
+ dnl Check for the OpenSSL library last...
+--- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
++++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
+@@ -93,7 +93,6 @@
+ # elif defined HAVE_GNUTLS
+ # include <gnutls/gnutls.h>
+ # include <gnutls/x509.h>
+-# include <gcrypt.h>
+ # elif defined(HAVE_CDSASSL)
+ # include <CoreFoundation/CoreFoundation.h>
+ # include <Security/Security.h>
diff --git a/extra/cups/cups-no-gzip-man.patch b/extra/cups/cups-no-gzip-man.patch
new file mode 100644
index 000000000..6786c4430
--- /dev/null
+++ b/extra/cups/cups-no-gzip-man.patch
@@ -0,0 +1,18 @@
+diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
+--- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
+@@ -69,10 +69,10 @@ case "$uname" in
+ ;;
+ Linux* | GNU* | Darwin*)
+ # Linux, GNU Hurd, and Mac OS X
+- MAN1EXT=1.gz
+- MAN5EXT=5.gz
+- MAN7EXT=7.gz
+- MAN8EXT=8.gz
++ MAN1EXT=1
++ MAN5EXT=5
++ MAN7EXT=7
++ MAN8EXT=8
+ MAN8DIR=8
+ ;;
+ *)
diff --git a/extra/cups/cups-no-gzip-man.patch.16 b/extra/cups/cups-no-gzip-man.patch.16
new file mode 100644
index 000000000..69899b9cb
--- /dev/null
+++ b/extra/cups/cups-no-gzip-man.patch.16
@@ -0,0 +1,18 @@
+diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
+--- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
+@@ -69,10 +69,10 @@ case "$uname" in
+ ;;
+ Linux* | GNU* | Darwin*)
+ # Linux, GNU Hurd, and OS X
+- MAN1EXT=1.gz
+- MAN5EXT=5.gz
+- MAN7EXT=7.gz
+- MAN8EXT=8.gz
++ MAN1EXT=1
++ MAN5EXT=5
++ MAN7EXT=7
++ MAN8EXT=8
+ MAN8DIR=8
+ ;;
+ *)
diff --git a/extra/cups/cups.install b/extra/cups/cups.install
new file mode 100644
index 000000000..47c3d9b82
--- /dev/null
+++ b/extra/cups/cups.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ echo ">> If you use an HTTPS connection to CUPS, the first time you access"
+ echo ">> the interface it may take a very long time before the site comes up."
+ echo ">> This is because the first request triggers the generation of the CUPS"
+ echo ">> SSL certificates which can be a very time-consuming job."
+}
+
+post_upgrade() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
+ # important upgrade notice
+ echo "daemon script has been renamed to /etc/rc.d/cupsd"
+ echo "change your entry in /etc/rc.conf"
+ fi
+}
+
+post_remove() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+}
diff --git a/extra/cups/cups.logrotate b/extra/cups/cups.logrotate
new file mode 100644
index 000000000..9c49bbdaf
--- /dev/null
+++ b/extra/cups/cups.logrotate
@@ -0,0 +1,8 @@
+/var/log/cups/*log {
+ missingok
+ notifempty
+ delaycompress
+ postrotate
+ /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/extra/cups/cups.pam b/extra/cups/cups.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/extra/cups/cups.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
index bab18a03e..b20a2c63b 100644
--- a/extra/dovecot/PKGBUILD
+++ b/extra/dovecot/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 158862 2012-05-12 13:27:15Z andyrtr $
+# $Id: PKGBUILD 160203 2012-05-30 19:05:51Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Paul Mattal <paul@mattal.com>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
# Contributor: GARETTE Emmanuel <gnunux at laposte dot net>
pkgname=dovecot
-pkgver=2.1.6
+pkgver=2.1.7
pkgrel=1
pkgdesc="An IMAP and POP3 server written with security primarily in mind"
arch=('i686' 'x86_64' 'mips64el')
@@ -20,8 +20,8 @@ provides=('imap-server' 'pop3-server')
options=('!libtool')
install=$pkgname.install
source=(http://dovecot.org/releases/2.1/${pkgname}-${pkgver}.tar.gz{,.sig} dovecot.sh)
-md5sums=('56d2a8d5273d39caa41d6a8dd9f4442c'
- 'f4eed12984b9ddf6eea37fc9f1828af8'
+md5sums=('b52d0faf1b9ec21bc5552691fe0ff1d1'
+ '391cd5f98442ef446916c0f3b671d3f7'
'587159e84e2da6f83d70b3c706ba87cc')
build() {
diff --git a/extra/fping/PKGBUILD b/extra/fping/PKGBUILD
index 558322443..c3ccbebb6 100644
--- a/extra/fping/PKGBUILD
+++ b/extra/fping/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 157363 2012-04-28 03:29:31Z giovanni $
+# $Id: PKGBUILD 160147 2012-05-29 23:00:04Z giovanni $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=fping
-pkgver=3.1
+pkgver=3.2
pkgrel=1
pkgdesc="A utility to ping multiple hosts at once"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,7 +11,7 @@ url="http://www.fping.org/"
license=('custom')
depends=('glibc')
source=("http://www.fping.org/dist/${pkgname}-${pkgver}.tar.gz")
-md5sums=('a2bbf3316da8c7b47a1a0ffe959d5d9e')
+md5sums=('efc86557e9b54e5c3becb598a50684a0')
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD
index 0a09ff856..8e4800ce4 100644
--- a/extra/git/PKGBUILD
+++ b/extra/git/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 158835 2012-05-12 03:22:50Z dan $
+# $Id: PKGBUILD 160199 2012-05-30 18:30:33Z dan $
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=git
-pkgver=1.7.10.2
+pkgver=1.7.10.3
pkgrel=1
pkgdesc="the fast distributed version control system"
arch=(i686 x86_64 'mips64el')
@@ -99,7 +99,7 @@ package() {
install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf
}
-sha1sums=('e4b7f746ff4e356baaddcad0b2911376efde031b'
- '6cc3f80185bdd1a608cf373b05313b2adc82b898'
+sha1sums=('172c6ad5a55276213c5e40b83a4c270f6f931b3e'
+ '4ae4f9f0f0dc42ad5cb2de309049c953841bc413'
'f2b41828bd912b72e2cb3e14677739c4f370de66'
'149e2da1ecb48872ddb31c0945afeaad1f9653d7')
diff --git a/extra/gptfdisk/PKGBUILD b/extra/gptfdisk/PKGBUILD
index 739dff6d5..116afdcd6 100644
--- a/extra/gptfdisk/PKGBUILD
+++ b/extra/gptfdisk/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 157022 2012-04-23 09:27:34Z ibiru $
+# $Id: PKGBUILD 160220 2012-05-31 03:41:30Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Hokum <hokum_at_mail_dot_ru>
pkgname=gptfdisk
-pkgver=0.8.4
-pkgrel=2
+pkgver=0.8.5
+pkgrel=1
pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.rodsbooks.com/gdisk/"
@@ -15,7 +15,7 @@ provides=("gdisk=$pkgver")
conflicts=('gdisk')
replaces=('gdisk')
source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
-sha256sums=('a4aa6800df3a43bec2900eff3c2d8488d8d60c06833035bc881237f9acb79b85')
+sha256sums=('15cc691f28212c157e05315662ed6b76ffdcc8de6fc118fa21c81ef5aae84af9')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -26,8 +26,8 @@ build() {
package () {
cd "$srcdir/$pkgname-$pkgver"
- install -d "$pkgdir"/{sbin,usr/share/{doc/gdisk,man/man8}}
- install -t "$pkgdir/sbin" {,c,s}gdisk fixparts
+ install -d "$pkgdir"/usr/{bin,share/{doc/gdisk,man/man8}}
+ install -t "$pkgdir/usr/bin" {,c,s}gdisk fixparts
install -m644 -t "$pkgdir/usr/share/man/man8" {{,c,s}gdisk,fixparts}.8
install -m644 -t "$pkgdir/usr/share/doc/gdisk" README NEWS
}
diff --git a/extra/icewm/PKGBUILD b/extra/icewm/PKGBUILD
index 56b363d6b..922f2706b 100644
--- a/extra/icewm/PKGBUILD
+++ b/extra/icewm/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 160012 2012-05-28 00:49:21Z eric $
+# $Id: PKGBUILD 160075 2012-05-29 22:01:31Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=icewm
pkgver=1.3.7
-pkgrel=2
+pkgrel=3
pkgdesc="A Window Manager designed for speed, usability, and consistency"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.icewm.org/"
@@ -11,12 +11,14 @@ license=('LGPL')
depends=('libxrandr' 'libxft' 'libsm' 'libxinerama' 'gdk-pixbuf2')
makedepends=('xorg-mkfontdir')
source=(http://downloads.sourceforge.net/sourceforge/icewm/${pkgname}-${pkgver}.tar.gz
- use_ICEWM_deprecated.patch ignore_workarea_hints.patch no_proc_acpi.patch wmclient.patch)
+ use_ICEWM_deprecated.patch ignore_workarea_hints.patch no_proc_acpi.patch
+ wmclient.patch icewm-cpustatus.patch)
sha1sums=('ce8d86190e275dc7db2d8c28472a579264120803'
'ac8f352ba5ee33e19ce75fdeed890361550e125a'
'49ca37ae41290f17a71a177b1f774235f91d79f1'
'a47fb4191f30b8f42a6bd90ca5d7941bb3d65338'
- 'd16b4b3ab269a657e735e343833973d000c0b35b')
+ 'd16b4b3ab269a657e735e343833973d000c0b35b'
+ '0f4a02153496dadd26742f6bd3bdc166d7eafaed')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -24,6 +26,7 @@ build() {
patch -p1 -i "${srcdir}/ignore_workarea_hints.patch"
patch -p1 -i "${srcdir}/no_proc_acpi.patch"
patch -p1 -i "${srcdir}/wmclient.patch"
+ patch -p2 -i "${srcdir}/icewm-cpustatus.patch"
LIBS+="-lfontconfig" ./configure --prefix=/usr --sysconfdir=/etc \
--enable-shaped-decorations --enable-gradients
make
diff --git a/extra/icewm/icewm-cpustatus.patch b/extra/icewm/icewm-cpustatus.patch
new file mode 100644
index 000000000..9bb9241f0
--- /dev/null
+++ b/extra/icewm/icewm-cpustatus.patch
@@ -0,0 +1,45 @@
+ icewm/src/acpustatus.cc | 31 +++++++++++++++++++++++++++++++
+ 1 files changed, 31 insertions(+), 0 deletions(-)
+
+diff --git a/icewm/src/acpustatus.cc b/icewm/src/acpustatus.cc
+index 5e959d6..b9e5450 100644
+--- a/icewm/src/acpustatus.cc
++++ b/icewm/src/acpustatus.cc
+@@ -315,6 +315,37 @@ int CPUStatus::getAcpiTemp(char *tempbuf, int buflen) {
+ }
+ closedir(dir);
+ }
++ else if ((dir = opendir("/sys/class/thermal")) != NULL) {
++ struct dirent *de;
++
++ while ((de = readdir(dir)) != NULL) {
++
++ int fd, seglen;
++
++ if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)
++ continue;
++
++ sprintf(namebuf, "/sys/class/thermal/%s/temp", de->d_name);
++ fd = open(namebuf, O_RDONLY);
++ if (fd != -1) {
++ int len = read(fd, buf, sizeof(buf) - 1);
++ buf[len - 4] = '\0';
++ seglen = strlen(buf) + 4;
++ if (retbuflen + seglen >= buflen) {
++ retbuflen = -retbuflen;
++ close(fd);
++ closedir(dir);
++ break;
++ }
++ retbuflen += seglen;
++ strcat(tempbuf, " ");
++ strncat(tempbuf, buf, seglen);
++ strcat(tempbuf, " C");
++ close(fd);
++ }
++ }
++ closedir(dir);
++ }
+ return retbuflen;
+ }
+
diff --git a/extra/lame/PKGBUILD b/extra/lame/PKGBUILD
new file mode 100644
index 000000000..7a090e7b4
--- /dev/null
+++ b/extra/lame/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 151868 2012-03-03 15:54:16Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=lame
+pkgver=3.99.5
+pkgrel=1
+pkgdesc="A high quality MPEG Audio Layer III (MP3) encoder"
+arch=('i686' 'x86_64')
+url="http://lame.sourceforge.net/"
+depends=('ncurses')
+makedepends=('nasm')
+license=('LGPL')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('84835b313d4a8b68f5349816d33e07ce')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --enable-nasm \
+ --enable-shared
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/lftp/PKGBUILD b/extra/lftp/PKGBUILD
index 3f5a23d4a..e04ad0065 100644
--- a/extra/lftp/PKGBUILD
+++ b/extra/lftp/PKGBUILD
@@ -1,20 +1,20 @@
-# $Id: PKGBUILD 155769 2012-04-06 09:28:27Z andyrtr $
+# $Id: PKGBUILD 160201 2012-05-30 18:58:58Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
pkgname=lftp
-pkgver=4.3.6
+pkgver=4.3.7
pkgrel=1
pkgdesc="Sophisticated command line based FTP client"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL3')
depends=('gcc-libs' 'readline>=6.2' "gnutls" "expat>=2.0.1-4" 'sh')
optdepends=('perl: needed for convert-netscape-cookies and verify-file')
-makedepends=('autoconf')
+#makedepends=('autoconf')
url="http://lftp.yar.ru/"
backup=('etc/lftp.conf')
source=(http://ftp.yars.free.net/pub/source/lftp/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('1b04a191817ce6c582dc66b3dff09943')
+md5sums=('7216925813c7b09d22b54340b98daf7f')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
index b7db7fd99..5ad89c952 100644
--- a/extra/libreoffice/PKGBUILD
+++ b/extra/libreoffice/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159710 2012-05-26 07:54:26Z andyrtr $
+# $Id: PKGBUILD 160068 2012-05-29 19:23:15Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
pkgbase="libreoffice"
@@ -19,9 +19,9 @@ pkgname=('libreoffice-common'
'libreoffice-scripting-beanshell'
'libreoffice-scripting-javascript'
'libreoffice-extension-scripting-python') # svn up -r 142692 (last one with all extensions built
-_LOver=3.5.3.2
-pkgver=3.5.3
-pkgrel=3
+_LOver=3.5.4.2
+pkgver=3.5.4
+pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
@@ -77,9 +77,7 @@ source=(${_mirror}/${pkgbase}-{core,help,translations}-${_LOver}.tar.xz
http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
gmake_install.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=1048d8fa4abd3e55a45dfb6884db808da1d72c9e
smp_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=cf23f57ae6bb7af689a45e0a850c3c2f67a8f810
- poppler_buildfix.diff::http://cgit.freedesktop.org/libreoffice/core/patch/?id=ac68934592ec7d838cf5c22744be8d97aa4a1a47
fix_broken_hebrew_wordwrapping.diff
- buildfix_icu49.diff
libreoffice-common.sh libreoffice-common.csh)
noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
@@ -109,9 +107,9 @@ noextract=(2fa6028324347860e684e75310818d43-libvisio-0.0.16.tar.bz2
ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip)
-md5sums=('d22cd79e7463ac4caf0a4b47d78a82ac'
- '3455f3f523d739aa391b5a5bf04ff958'
- '945fbf7888c464f4e1cf7282d370b257'
+md5sums=('61afc900785dd7d071b96d9ab0af46f3'
+ 'd2e7414a60eacafef45fbc4bc1a8ccb3'
+ '545d1608da2cc736be5c8bf941adbbfb'
'18f577b374d60b3c760a3a3350407632'
'2fa6028324347860e684e75310818d43'
'1f24ab1d39f4a51faf22244c94a6203f'
@@ -142,9 +140,7 @@ md5sums=('d22cd79e7463ac4caf0a4b47d78a82ac'
'185d60944ea767075d27247c3162b3bc'
'60ce5dc9bd098f95c2e621a930c98dd9'
'661a52a02a31b3afbe4b3b3146061afd'
- '72ba8d57cefdc25a6f1bc845edfd4d78'
'025d9b17d9eb90dc282c5c1289a666aa'
- '9734ea20c9f67e1b6e1c5a1247fbd3ff'
'f0e72d0e1bc93a50a3aa9d31350b156c'
'867c682b45f477f916786e00c45d7ab7')
@@ -175,8 +171,6 @@ build() {
# one late fix to solve make distro-pack-install issue
patch -Np1 -i ${srcdir}/gmake_install.diff
patch -Np1 -i ${srcdir}/smp_buildfix.diff
- #patch -Np0 -i ${srcdir}/buildfix_icu49.diff
- patch -Np1 -i ${srcdir}/poppler_buildfix.diff
# https://bugs.archlinux.org/task/29854 based on 3.6/master patch http://cgit.freedesktop.org/libreoffice/core/patch/?id=20c24114143d6d38774b56a142fd4ae05094308e
patch -Np1 -i ${srcdir}/fix_broken_hebrew_wordwrapping.diff
# Checks if --hash-style is accepted, not if --hash-style=both is accepted.
@@ -356,7 +350,7 @@ package_libreoffice-common() {
# set python-uno PYTHON path
install -dm755 ${pkgdir}/etc/profile.d
- install -m644 ${srcdir}/libreoffice-common.{sh,csh} ${pkgdir}/etc/profile.d/
+ install -m755 ${srcdir}/libreoffice-common.{sh,csh} ${pkgdir}/etc/profile.d/
# move bash-completion files to its new place
install -dm755 ${pkgdir}/usr/share/bash-completion/completions
diff --git a/extra/libx11/PKGBUILD b/extra/libx11/PKGBUILD
index 332328dcb..541fc294c 100644
--- a/extra/libx11/PKGBUILD
+++ b/extra/libx11/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 153607 2012-03-16 17:04:23Z andyrtr $
+# $Id: PKGBUILD 160023 2012-05-28 10:00:52Z andyrtr $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=libx11
-pkgver=1.4.99.901
+pkgver=1.4.99.902
pkgrel=1
pkgdesc="X11 client-side library"
arch=(i686 x86_64 'mips64el')
@@ -14,7 +14,7 @@ license=('custom')
source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2
xorg.sh
xorg.csh)
-sha1sums=('af10b064c1c64ee9e7daae0a7f1f9719eb7e965a'
+sha1sums=('afe75b7c2c54e354f726fd36251bcfec1e1f833a'
'4b756387426afb2a5bb7a155631ec42348abf5c1'
'45b0b310776cf5d9a94b4a18a5c63ddad9de6ba8')
diff --git a/extra/mahjong/PKGBUILD b/extra/mahjong/PKGBUILD
index 82050d483..1e87da8b1 100644
--- a/extra/mahjong/PKGBUILD
+++ b/extra/mahjong/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 136995 2011-09-04 21:27:03Z eric $
+# $Id: PKGBUILD 160020 2012-05-28 05:16:18Z eric $
# Maintainer: Kevin Piche <kevin@archlinux.org>
# Contributor: Jason Chu <jchu@xentac.net>
pkgname=mahjong
-pkgver=1.11
+pkgver=1.12.1
pkgrel=1
pkgdesc="The classical game of Mah Jong (not the solitare version) with network support"
arch=('i686' 'x86_64' 'mips64el')
@@ -11,12 +11,12 @@ url="http://www.stevens-bradfield.com/MahJong/"
license=('GPL' 'custom')
depends=('gtk2')
source=(http://mahjong.julianbradfield.org/Source/mj-$pkgver-src.tar.gz)
-md5sums=('c0cd19620eb3fcef3e0a83eaed6c3780')
+md5sums=('a74acae39d6a49bad9c34b84088f72f3')
build() {
cd "$srcdir/mj-$pkgver-src"
sed -i 's/& Calling/Calling/' gui-dial.c
- make
+ make LDLIBS="-lm"
}
package() {
diff --git a/extra/trayer/PKGBUILD b/extra/trayer/PKGBUILD
index 6f5de6602..d9a8e1259 100644
--- a/extra/trayer/PKGBUILD
+++ b/extra/trayer/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 138436 2011-09-23 04:20:09Z eric $
+# $Id: PKGBUILD 160179 2012-05-30 03:39:36Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=trayer
pkgver=1.0
-pkgrel=6
+pkgrel=7
pkgdesc="A lightweight GTK2-based systray"
arch=('i686' 'x86_64' 'mips64el')
url="https://gna.org/projects/fvwm-crystal/"
@@ -13,15 +13,15 @@ makedepends=('libxmu')
options=('!makeflags')
source=(http://download.gna.org/fvwm-crystal/trayer/${pkgver}/${pkgname}-${pkgver}.tar.gz
trayer.diff manpage.diff)
-md5sums=('e1b0b6464f991f2c296561e377585867'
- '7f66eee885563871f9f76646bca6b14d'
- '3f1c92bbe275f186b613c04a47e8e977')
+sha1sums=('f2657693d196578e3776b0812952dfa1c25878cc'
+ '63459c5f74b8cc137d8a16ab997200025225215c'
+ 'eb919fd4a6223034e59e7c9fd0de298d40c91242')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
patch -p0 -i ../trayer.diff
patch -p1 -i ../manpage.diff
- sed -i 's/$(LIBS) $(OBJ) $(SYSTRAYOBJ)/$(OBJ) $(SYSTRAYOBJ) $(LIBS)/' Makefile
+ sed -i 's/$(LIBS) $(OBJ) $(SYSTRAYOBJ)/$(OBJ) $(SYSTRAYOBJ) $(LIBS) -lX11/' Makefile
make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
}
diff --git a/extra/trayer/manpage.diff b/extra/trayer/manpage.diff
index c99fc71af..f4ea9394e 100644
--- a/extra/trayer/manpage.diff
+++ b/extra/trayer/manpage.diff
@@ -4,7 +4,7 @@ Index: trayer/trayer.1
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ trayer/trayer.1 2011-05-08 21:38:37.000000000 +0200
-@@ -0,0 +1,197 @@
+@@ -0,0 +1,190 @@
+.TH TRAYER 1 "Feb 14, 2005" "FVWM\-Crystal"
+.SH NAME
+trayer \- a lightweight GTK2\-based systray for UNIX desktop
@@ -55,9 +55,6 @@ Index: trayer/trayer.1
+.RB [\| \-\-distance
+.RI \| <length> \|]
+.\"
-+.RB [\| \-\-distancefrom
-+.RI \| left \||\| right \||\| top \||\| bottom \||\| none \|]
-+.\"
+.RB [\| \-\-expand
+.RI \| true \||\| false \|]
+.\"
@@ -176,10 +173,6 @@ Index: trayer/trayer.1
+Specifies distance between trayer's window and screen edge (in pixels)
+
+.TP
-+\fB\-\-distancefrom\fP \fI<edge>\fP
-+Specifies which edge to calculate distance from, see above.
-+
-+.TP
+\fB\-\-expand\fP \fItrue\fP\||\|\fIfalse\fP
+Specifies whether trayer may accommodate extra space when there is too much
+icons.
diff --git a/gis/grass/PKGBUILD b/gis/grass/PKGBUILD
new file mode 100644
index 000000000..eaf1dfc5c
--- /dev/null
+++ b/gis/grass/PKGBUILD
@@ -0,0 +1,119 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Emiliano Vavassori <syntaxerrormmm(at)gmail.com>
+
+pkgname=grass
+pkgver=6.4.2
+pkgrel=2
+pkgdesc='Geographic Information System (GIS) used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization.'
+arch=('i686' 'x86_64')
+url='http://grass.fbk.eu/'
+license=('GPL')
+depends=('cfitsio' 'fftw' 'gdal' 'libjpeg' 'libpng' 'libtiff' 'libxmu' 'mesa' 'python2' 'postgresql' 'proj' 'tcl' 'tk' 'wxpython' 'xorg-server')
+makedepends=('freetype2')
+optdepends=('sqlite3: sqlite3 database interface'
+ 'mysql: mysql database interface'
+ 'r: R language interface'
+ 'blas: required for GMATH library'
+ 'lapack: required for GMATH library'
+ 'cairo: cairo support'
+ 'ffmpeg: ffmpeg support'
+ 'lesstif: motif support')
+options=('!libtool' '!makeflags')
+install='grass.install'
+source=("http://grass.fbk.eu/grass64/source/${pkgname}-${pkgver}.tar.gz"
+ "grass.sh"
+ "grass.conf")
+md5sums=('d3398d6b1e3a2ef19cfb6e39a5ae9919'
+ 'a0e0ac6275e09a272f8ec38d3c0b4b3a'
+ '6103480c2a1adc19a50b9e925e5e6d4c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2 fix
+ sed -i 's_python $< $(GISBASE) > $@_python2 $< $(GISBASE) > $@_' gui/wxpython/Makefile
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ # the following exports are probably not needed
+ export PYTHON=python2
+ export DOXNAME=python2
+ export GRASS_python=python2
+
+ # fix wxpython error
+ sed -i 's/python/&2/' ./include/Make/Platform.make.in
+
+ # see ${srcdir}/grass-6.4.0/REQUIREMENTS.html for options
+ ./configure \
+ --prefix=/opt \
+ --with-fftw \
+ --with-postgres \
+ --with-freetype \
+ --with-freetype-includes=/usr/include/freetype2 \
+ --with-nls \
+ --with-gdal \
+ --with-geos \
+ --with-proj \
+ --with-proj-share=/usr/share/proj \
+ --with-python=/usr/bin/python2-config \
+ --with-wxwidgets=/usr/bin/wx-config
+
+ # sqlite3 support
+ # --with-sqlite \
+
+ # mysql support
+ # --with-mysql \
+ # --with-mysql-includes=/usr/include/mysql \
+
+ # blas support
+ # --with-blas \
+
+ # lapack support
+ # --with-lapack \
+
+ make
+
+ # some more potential problems nvm, works without, but save for future use if problems arrise
+ #cd ${pkgdir}/opt/grass-${pkgver}
+ #sed -i 's/PYTHON = python/PYTHON = python2/' include/Make/Python.make
+ #sed -i 's/GRASS_PYTHON=python/GRASS_PYTHON=python2/' etc/Init.sh
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make \
+ INST_DIR=${pkgdir}/opt/grass-${pkgver} \
+ BINDIR=${pkgdir}/usr/bin \
+ install
+
+ # fix $GISBASE path
+ sed -i "s|GISBASE=${pkgdir}/opt/grass-${pkgver}|GISBASE=/opt/grass-${pkgver}|g" \
+ ${pkgdir}/usr/bin/grass64
+
+ # install profile.d file
+ install -D ${srcdir}/grass.sh \
+ ${pkgdir}/etc/profile.d/grass.sh
+
+ # install some freedesktop.org compatibility
+ install -D -m644 gui/icons/grass.desktop \
+ ${pkgdir}/usr/share/applications/grass.desktop
+
+ sed -i -e 's/grass65/grass64/' -e 's_/usr/share/icons_/usr/share/pixmaps_' \
+ ${pkgdir}/usr/share/applications/grass.desktop
+
+ install -D -m644 gui/icons/grass-48x48.png \
+ ${pkgdir}/usr/share/pixmaps/grass-48x48.png
+
+ install -D -m644 ${srcdir}/grass.conf \
+ ${pkgdir}/etc/ld.so.conf.d/grass.conf
+
+ # install g.html2man which is needed for some extensions
+ # FS#25705 - [grass] g.html2man is not installed into package directory
+ # https://bugs.archlinux.org/task/25705
+ # most likely upstream problem which will be fixed in a version later than 6.4.1
+ cp -r ./tools/g.html2man ${pkgdir}/opt/${pkgname}-${pkgver}/tools
+}
diff --git a/gis/grass/grass.conf b/gis/grass/grass.conf
new file mode 100644
index 000000000..bb4964d93
--- /dev/null
+++ b/gis/grass/grass.conf
@@ -0,0 +1 @@
+/opt/grass/lib
diff --git a/gis/grass/grass.install b/gis/grass/grass.install
new file mode 100644
index 000000000..878ea0186
--- /dev/null
+++ b/gis/grass/grass.install
@@ -0,0 +1,26 @@
+## arg 1: the new package version
+post_install() {
+ pkgver=${1%-*}
+
+ # Create symlink for version workaround.
+ ln -sf /opt/grass-${pkgver} /opt/grass
+
+ echo 'Please relogin for required variables to be set from /etc/profile.d/grass.sh'
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ pkgver=${1%-*}
+
+ # Updating symlink for new version
+ ln -sf /opt/grass-${pkgver} /opt/grass
+}
+
+## arg 1: the old package version
+pre_remove() {
+ # Removing cruft symlink
+ rm -f /opt/grass
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gis/grass/grass.sh b/gis/grass/grass.sh
new file mode 100644
index 000000000..ccc2fcd7e
--- /dev/null
+++ b/gis/grass/grass.sh
@@ -0,0 +1,4 @@
+export GISBASE=/opt/grass
+export PATH=$PATH:$GISBASE/bin
+export MANPATH=$MANPATH:$GISBASE/man
+export GRASS_PYTHON=python2
diff --git a/gis/merkaartor/PKGBUILD b/gis/merkaartor/PKGBUILD
new file mode 100644
index 000000000..333bc15fb
--- /dev/null
+++ b/gis/merkaartor/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Michael Kanis <mkanis gmx de>
+# Contributor: Paulo Freire <paulofreire gmail com>
+# Contributor: Brice Maron <brice bmaron net>
+
+pkgname=merkaartor
+pkgver=0.17.2
+pkgrel=3
+pkgdesc='OpenStreetMap editor'
+url='http://merkaartor.be/'
+arch=('i686' 'x86_64')
+license=('GPL2')
+makedepends=('boost')
+depends=('qtwebkit' 'exiv2')
+optdepends=('gpsd' 'desktop-file-utils' 'gtk-update-icon-cache')
+source=("http://www.merkaartor.be/attachments/download/253/merkaartor-${pkgver}.tar.bz2")
+sha1sums=('f789141db427bf25bb3b61801fefc98ab0430012')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ echo 'QMAKE_MOC = $$QMAKE_MOC -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED' >> src/src.pro
+ lrelease src/src.pro
+ qmake Merkaartor.pro \
+ PREFIX="/usr" \
+ GEOIMAGE=1 \
+ NODEBUG=1 \
+ RELEASE=1 \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/gis/merkaartor/install b/gis/merkaartor/install
new file mode 100644
index 000000000..af0c8724a
--- /dev/null
+++ b/gis/merkaartor/install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gis/qgis/PKGBUILD b/gis/qgis/PKGBUILD
new file mode 100644
index 000000000..7c348fd1e
--- /dev/null
+++ b/gis/qgis/PKGBUILD
@@ -0,0 +1,70 @@
+# Maintainer: Lantald < lantald at gmx.com
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+# Contributor: Eric Forgeot < http://esclinux.tk >
+
+pkgname=qgis
+pkgver=1.7.4
+pkgrel=4
+pkgdesc='Quantum GIS is a Geographic Information System (GIS) that supports vector, raster & database formats'
+url='http://qgis.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+# update to http://www.qgis.org/wiki/Building_QGIS_from_Source#Overview
+depends=('libmysqlclient' 'postgresql-libs' 'sqlite3' 'jasper' 'curl' 'qt' 'python2' 'python2-qt' 'giflib' 'xerces-c' 'cfitsio' 'qwt5' 'gdal' 'flex' 'bison')
+makedepends=('cmake' 'grass' 'gsl' 'postgis' 'netcdf' 'fcgi' 'python2-sip' 'txt2tags')
+optdepends=('postgis: postgis support and SPIT plugin'
+ 'fcgi: qgis mapserver'
+ 'python2-sip: python-support'
+ 'grass: grass plugin'
+ 'gsl: georeferencer ')
+options=('!makeflags')
+source=("http://qgis.org/downloads/qgis-${pkgver}.tar.bz2"
+ 'qgis.desktop'
+ 'qgis_1.7.4_gcc4.7.patch')
+
+md5sums=('ad6e2bd8c5eb0c486939c420af5d8c44'
+ '8ab66039f2aba519b92f52272ec3c13e'
+ '0a978eac520b3df8736603074b1072b0')
+
+build() {
+ # Fix insecure RPATH is weird, but just works ;)
+ # echo "os.system(\"sed -i '/^LFLAGS/s|-Wl,-rpath,.\+ ||g' gui/Makefile core/Makefile\")" >> python/configure.py.in
+ #cd qgis-${pkgver}
+
+ #apply patch to be able to build qgis with GCC 4.7
+ patch -p0 < ${srcdir}/qgis_1.7.4_gcc4.7.patch
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake ../qgis-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DGRASS_PREFIX=/opt/grass \
+ -DQGIS_MANUAL_SUBDIR=share/man \
+ -DQWT_INCLUDE_DIR=/usr/include/qwt5 \
+ -DQWT_LIBRARY=/usr/lib/libqwt5.so \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DPYTHON_SITE_PACKAGES_DIR=/usr/lib/python2.7/site-packages \
+ -DPYTHON_INCLUDE_PATH=/usr/include/python2.7/
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # create a more user-friendly application name link
+ ln -s /usr/bin/qgis $pkgdir/usr/bin/quantum-gis
+
+ # install some freedesktop.org compatibility
+ install -D -m644 ${srcdir}/qgis.desktop \
+ ${pkgdir}/usr/share/applications/qgis.desktop
+}
diff --git a/gis/qgis/qgis.desktop b/gis/qgis/qgis.desktop
new file mode 100644
index 000000000..c3db5ad08
--- /dev/null
+++ b/gis/qgis/qgis.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Quantum GIS
+GenericName="GIS"
+Comment="Geographic Information System (GIS) that supports vector, raster & database formats"
+Exec=/usr/bin/qgis
+Icon=/usr/share/qgis/images/icons/qgis-icon.png
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;Science
diff --git a/gis/qgis/qgis_1.7.4_gcc4.7.patch b/gis/qgis/qgis_1.7.4_gcc4.7.patch
new file mode 100644
index 000000000..858a42c94
--- /dev/null
+++ b/gis/qgis/qgis_1.7.4_gcc4.7.patch
@@ -0,0 +1,20 @@
++++ qgis-1.7.4/src/core/spatialindex/storagemanager/DiskStorageManager.cc 2012-04-21 13:58:04.107239275 +0300
+@@ -26,6 +26,7 @@
+ #include <sys/stat.h>
+ #include <stdio.h>
+ #include <cstring>
++#include <unistd.h>
+
+ #ifdef WIN32
+ #include <io.h>
+
++++ qgis-1.7.4/src/core/spatialindex/tools/TemporaryFile.cc 2012-04-21 13:16:42.213690282 +0300
+@@ -20,7 +20,7 @@
+ // mhadji@gmail.com
+
+ #include <stdio.h>
+-
++#include <unistd.h>
+ #include <Tools.h>
+
+ #ifdef WIN32
diff --git a/gis/qwt5/PKGBUILD b/gis/qwt5/PKGBUILD
new file mode 100644
index 000000000..f998a0765
--- /dev/null
+++ b/gis/qwt5/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Eugen Zagorodniy <e dot zagorodniy at gmail dot com>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=qwt5
+pkgver=5.2.2
+pkgrel=1
+pkgdesc="Qt Widgets for Technical Applications (version 5.X)"
+arch=('i686' 'x86_64')
+url="http://qwt.sourceforge.net/"
+depends=('qt>=4.5.1')
+options=('!makeflags')
+license=("custom:$pkgname")
+provides=('qwt')
+source=("http://downloads.sourceforge.net/sourceforge/qwt/qwt-$pkgver.tar.bz2" \
+ "qwtconfig-archlinux.pri")
+md5sums=('70d77e4008a6cc86763737f0f24726ca'
+ '15db52c3312b5f8f7cbbdabc4831591b')
+build() {
+ cd ${srcdir}/qwt-${pkgver}
+
+ # copy our config file to the right place
+ install -Dm644 ${srcdir}/qwtconfig-archlinux.pri \
+ ${srcdir}/qwt-${pkgver}/qwtconfig.pri
+
+ # build qwt:
+ qmake qwt.pro
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/qwt-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} QTDIR=/usr install
+
+ # rename conlicting symlink
+ mv ${pkgdir}/usr/lib/libqwt.so ${pkgdir}/usr/lib/libqwt5.so
+
+ # move html docs to propee place and move man pages to avoid conflict
+ # with qwt from [extra]
+ install -d ${pkgdir}/usr/share/doc/${pkgname}
+ mv ${pkgdir}/usr/share/html ${pkgdir}/usr/share/doc/${pkgname}/
+ mv ${pkgdir}/usr/share/man ${pkgdir}/usr/share/doc/${pkgname}/
+
+ # install licence
+ install -Dm644 ${srcdir}/qwt-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/gis/qwt5/qwtconfig-archlinux.pri b/gis/qwt5/qwtconfig-archlinux.pri
new file mode 100644
index 000000000..045e53275
--- /dev/null
+++ b/gis/qwt5/qwtconfig-archlinux.pri
@@ -0,0 +1,85 @@
+######################################################################
+# Install paths
+######################################################################
+
+unix {
+ INSTALLBASE = /usr
+}
+
+win32 {
+ INSTALLBASE = C:/Qwt
+}
+
+target.path = $$INSTALLBASE/lib
+headers.path = $$INSTALLBASE/include/qwt5
+doc.path = $$INSTALLBASE/share
+
+######################################################################
+# qmake internal options
+######################################################################
+
+CONFIG += qt # Also for Qtopia Core!
+CONFIG += warn_on
+CONFIG += thread
+
+######################################################################
+# release/debug mode
+# The designer plugin is always built in release mode.
+# If want to change this, you have to edit designer/designer.pro.
+######################################################################
+
+CONFIG += release # release/debug
+
+######################################################################
+# Build the static/shared libraries.
+# If QwtDll is enabled, a shared library is built, otherwise
+# it will be a static library.
+######################################################################
+
+CONFIG += QwtDll
+
+######################################################################
+# QwtPlot enables all classes, that are needed to use the QwtPlot
+# widget.
+######################################################################
+
+CONFIG += QwtPlot
+
+######################################################################
+# QwtWidgets enables all classes, that are needed to use the all other
+# widgets (sliders, dials, ...), beside QwtPlot.
+######################################################################
+
+CONFIG += QwtWidgets
+
+######################################################################
+# If you want to display svg images on the plot canvas, enable the
+# line below. Note that Qwt needs the svg+xml, when enabling
+# QwtSVGItem.
+######################################################################
+
+CONFIG += QwtSVGItem
+
+######################################################################
+# If you have a commercial license you can use the MathML renderer
+# of the Qt solutions package to enable MathML support in Qwt.
+# So if you want this, copy qtmmlwidget.h + qtmmlwidget.cpp to
+# textengines/mathml and enable the line below.
+######################################################################
+
+#CONFIG += QwtMathML
+
+######################################################################
+# If you want to build the Qwt designer plugin,
+# enable the line below.
+# Otherwise you have to build it from the designer directory.
+######################################################################
+
+CONFIG += QwtDesigner
+
+######################################################################
+# If you want to auto build the examples, enable the line below
+# Otherwise you have to build them from the examples directory.
+######################################################################
+
+#CONFIG += QwtExamples
diff --git a/kde-unstable/kactivities/PKGBUILD b/kde-unstable/kactivities/PKGBUILD
new file mode 100644
index 000000000..576f83981
--- /dev/null
+++ b/kde-unstable/kactivities/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 160080 2012-05-29 22:12:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kactivities
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='API for using and interacting with the Activity Manager'
+url='https://projects.kde.org/projects/kde/kdelibs/kactivities'
+license=('GPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('e98929eff9d8c4102bc643cf44a06d28646ff8ce')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-jovie/PKGBUILD b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
new file mode 100644
index 000000000..b736ffae5
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 160105 2012-05-29 22:33:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-jovie
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='A text to speech application'
+url='http://kde.org/applications/utilities/jovie/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+replaces=('kdeaccessibility-kttsd')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/jovie-${pkgver}.tar.xz")
+sha1sums=('5b1f25ece3e8b0bcb40b72be493c9b7524880b26')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../jovie-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/libre/kdenetwork-libre/kdenetwork.install b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
index e70c054ec..e70c054ec 100644
--- a/libre/kdenetwork-libre/kdenetwork.install
+++ b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
diff --git a/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
new file mode 100644
index 000000000..eb829ddfb
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160106 2012-05-29 22:34:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kaccessible
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+url='http://accessibility.kde.org/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdelibs' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kaccessible-${pkgver}.tar.xz")
+sha1sums=('b38912943052b797b5568bae7bb2a2ff31839d84')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kaccessible-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/PKGBUILD b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
new file mode 100644
index 000000000..a3118d209
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160107 2012-05-29 22:34:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmag
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Screen Magnifier'
+url='http://kde.org/applications/utilities/kmag/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmag-${pkgver}.tar.xz")
+sha1sums=('8e4251fc8cf61a18816d5674ce4e353f5ab70560')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmag-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
new file mode 100644
index 000000000..dfe9ffefb
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160108 2012-05-29 22:34:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmousetool
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+url='http://kde.org/applications/utilities/kmousetool/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmousetool-${pkgver}.tar.xz")
+sha1sums=('8f7a55b3cb32ffe4cd098f5c66c8d6327d97e027')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmousetool-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/PKGBUILD b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
new file mode 100644
index 000000000..a261d76ce
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160109 2012-05-29 22:35:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmouth
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Speech Synthesizer Frontend'
+url='http://kde.org/applications/utilities/kmouth/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmouth-${pkgver}.tar.xz")
+sha1sums=('6f11f249f3b2fb314a2536c23da2ccea9f491762')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmouth-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/PKGBUILD b/kde-unstable/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..a9813985e
--- /dev/null
+++ b/kde-unstable/kdeadmin/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 160110 2012-05-29 22:35:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('cmake' 'automoc4' 'kdebindings-python2' 'system-config-printer-common')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
+ 'syslog-path.patch')
+sha1sums=('3c9016b7ec0e174c9744dd340d237086d90aa345'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_strigi-analyzer=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdebase-runtime' 'kdepimlibs')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python2' 'system-config-printer-common' 'cups' 'python2-gobject2')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/{system-config-printer-kde,authconn}.py
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/pysmb.py
+}
diff --git a/kde-unstable/kdeadmin/kdeadmin.install b/kde-unstable/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeadmin/kdeadmin.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/syslog-path.patch b/kde-unstable/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/kde-unstable/kdeadmin/syslog-path.patch
@@ -0,0 +1,11 @@
+--- kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h~ 2011-01-27 14:24:29.840000005 +0100
++++ kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h 2011-01-27 14:24:53.803333335 +0100
+@@ -39,7 +39,7 @@
+ SystemConfiguration() :
+ GenericLogModeConfiguration(
+ QLatin1String( SYSTEM_LOG_MODE_ID ),
+- QStringList() << QLatin1String( "/var/log/syslog" ),
++ QStringList() << QLatin1String( "/var/log/messages.log" ),
+ QList<int>() << INFORMATION_LOG_LEVEL_ID
+ ) {
+
diff --git a/kde-unstable/kdeartwork/PKGBUILD b/kde-unstable/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..ccf21da8c
--- /dev/null
+++ b/kde-unstable/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 160111 2012-05-29 22:36:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace'
+ 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('0a021b7c4b8595936c6721061b9590bbaecd642e')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ replaces=('kdeaccessibility-colorschemes')
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ replaces=('kdeaccessibility-iconthemes')
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase-konsole/PKGBUILD b/kde-unstable/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..5493f2076
--- /dev/null
+++ b/kde-unstable/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160112 2012-05-29 22:41:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebase-konsole
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime' 'kdebase-lib')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/konsole-${pkgver}.tar.xz")
+sha1sums=('e7c471637fd052261521716882f0d543161692c4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../konsole-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebase-runtime/PKGBUILD b/kde-unstable/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..a05f08eda
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 160082 2012-05-29 22:21:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Plugins and applications necessary for the running of KDE applications"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/kde/kde-runtime'
+license=('GPL' 'LGPL')
+depends=('kdepimlibs' 'nepomuk-core' 'smbclient' 'libssh' 'libcanberra' 'oxygen-icons'
+'xorg-xauth' 'kactivities')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'openslp' 'doxygen' 'networkmanager')
+optdepends=('htdig: to build the search index in khelpcenter'
+ 'rarian: needed by khelpcenter'
+ 'gdb: drkonq crash handler')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-runtime-${pkgver}.tar.xz")
+sha1sums=('2ef106862e33a8fc2b936a875ab87e581d25d2ee')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kde-runtime-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_QNtrack=OFF \
+ -DWITH_Xine=OFF
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+
+ # Fix conflict
+ rm "${pkgdir}"/usr/lib/libnepomukcommon.so
+}
diff --git a/kde-unstable/kdebase-runtime/kdebase-runtime.install b/kde-unstable/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/kdebase-runtime.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase-workspace/PKGBUILD b/kde-unstable/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..9b138a0a1
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 160094 2012-05-29 22:27:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-workspace
+_pkgname=kde-workspace
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Provides the interface and basic tools for the KDE workspace"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/kde/kde-workspace'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde')
+# note on libxdamage:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxdamage
+depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'libqalculate'
+ 'qimageblitz' 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage'
+ 'libxklavier' 'xorg-xsetroot' 'libxcomposite' 'libxinerama'
+ 'xorg-xrdb' 'libgles' 'libegl' 'libxres' 'xorg-xrandr'
+ 'xorg-xmessage' 'libusb-compat' 'kde-base-artwork')
+makedepends=('cmake' 'automoc4' 'boost' 'kdebindings-python2' 'networkmanager')
+optdepends=('kde-wallpapers: wallpapers for KDE Plasma Workspaces')
+install="${pkgname}.install"
+backup=('usr/share/config/kdm/kdmrc'
+ 'etc/pam.d/kde'
+ 'etc/pam.d/kde-np'
+ 'etc/pam.d/kscreensaver')
+options=('emptydirs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
+ 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
+ 'fixpath.patch' 'terminate-server.patch' 'kdm-xinitrd.patch')
+sha1sums=('4d07acfeddf522d6354bb4ee9330cdf0be8d06de'
+ '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+ '712a90999bd429883dcef5dcaf288aace332ced8'
+ 'b321b5e613b60231330e606fdf1e124646148388'
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+ 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
+ 'd509dac592bd8b310df27991b208c95b6d907514')
+
+build() {
+ cd "${srcdir}"/${_pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/kdm-xinitrd.patch
+ patch -p0 -i "${srcdir}"/fixpath.patch
+ patch -p0 -i "${srcdir}"/terminate-server.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${_pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xmms=OFF \
+ -DWITH_Googlegadgets=OFF \
+ -DWITH_libgps=OFF \
+ -DWITH_OpenGLES=ON \
+ -DKWIN_BUILD_WITH_OPENGLES=ON \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 "${srcdir}"/kdm "${pkgdir}"/etc/rc.d/kdm
+ install -D -m644 "${srcdir}"/kde.pam "${pkgdir}"/etc/pam.d/kde
+ install -D -m644 "${srcdir}"/kde-np.pam "${pkgdir}"/etc/pam.d/kde-np
+ install -D -m644 "${srcdir}"/kscreensaver.pam "${pkgdir}"/etc/pam.d/kscreensaver
+ install -d -m755 "${pkgdir}"/usr/share/xsessions/
+ ln -sf /usr/share/apps/kdm/sessions/kde-plasma{,-safe}.desktop "${pkgdir}"/usr/share/xsessions/
+ install -d -m755 "${pkgdir}"/etc/kde/{env,shutdown}
+
+ install -d -g 135 -o 135 "${pkgdir}"/var/lib/kdm
+}
diff --git a/kde-unstable/kdebase-workspace/fixpath.patch b/kde-unstable/kdebase-workspace/fixpath.patch
new file mode 100644
index 000000000..be2b8383e
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/fixpath.patch
@@ -0,0 +1,34 @@
+--- startkde.cmake.orig 2009-01-15 14:24:44.000000000 +0100
++++ startkde.cmake 2009-01-15 14:33:08.000000000 +0100
+@@ -34,22 +34,6 @@
+ MALLOC_CHECK_=2
+ export MALLOC_CHECK_
+
+-# in case we have been started with full pathname spec without being in PATH
+-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
+-if [ -n "$bindir" ]; then
+- qbindir=`$bindir/kde4-config --qt-binaries`
+- if [ -n "$qbindir" ]; then
+- case $PATH in
+- $qbindir|$qbindir:*|*:$qbindir|*:$qbindir:*) ;;
+- *) PATH=$qbindir:$PATH; export PATH;;
+- esac
+- fi
+- case $PATH in
+- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
+- *) PATH=$bindir:$PATH; export PATH;;
+- esac
+-fi
+-
+ # Boot sequence:
+ #
+ # kdeinit is used to fork off processes which improves memory usage
+@@ -206,7 +190,7 @@
+ # For anything else (that doesn't set env vars, or that needs a window manager),
+ # better use the Autostart folder.
+
+-libpath=`kde4-config --path lib | tr : '\n'`
++libpath=`kde4-config --path lib | tr : '\n'`$(echo -e '\n/etc/kde/lib/')
+
+ for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+ for file in "$prefix"*.sh; do
diff --git a/kde-unstable/kdebase-workspace/kde-np.pam b/kde-unstable/kdebase-workspace/kde-np.pam
new file mode 100644
index 000000000..7d60cc35c
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kde-np.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth required pam_nologin.so
+auth required pam_permit.so
+auth required pam_env.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so
+-session optional pam_systemd.so
diff --git a/kde-unstable/kdebase-workspace/kde.pam b/kde-unstable/kdebase-workspace/kde.pam
new file mode 100644
index 000000000..ec1d8277f
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kde.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
+auth required pam_env.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so
+-session optional pam_systemd.so
diff --git a/kde-unstable/kdebase-workspace/kdebase-workspace.install b/kde-unstable/kdebase-workspace/kdebase-workspace.install
new file mode 100644
index 000000000..f7d6d305b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,25 @@
+post_install() {
+ groupadd -g 135 kdm &>/dev/null
+ useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ getent group kdm >/dev/null 2>&1 || groupadd -g 135 kdm &>/dev/null
+ getent passwd kdm >/dev/null 2>&1 || useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_remove() {
+ if getent passwd kdm >/dev/null 2>&1; then
+ userdel kdm
+ fi
+ if getent group kdm >/dev/null 2>&1; then
+ groupdel kdm
+ fi
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdebase-workspace/kdm b/kde-unstable/kdebase-workspace/kdm
new file mode 100644
index 000000000..799d58f4b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/kdm)
+case "$1" in
+ start)
+ stat_busy "Starting KDE Desktop Manager"
+ [ -z "$PID" ] && /usr/bin/kdm &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping KDE Desktop Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/kde-unstable/kdebase-workspace/kdm-xinitrd.patch b/kde-unstable/kdebase-workspace/kdm-xinitrd.patch
new file mode 100644
index 000000000..f5fc0e571
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdm-xinitrd.patch
@@ -0,0 +1,18 @@
+--- kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c~ 2011-10-04 22:11:24.787771512 +0000
++++ kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c 2011-10-04 22:13:58.612702824 +0000
+@@ -742,6 +742,15 @@
+ "[ -f /etc/xprofile ] && . /etc/xprofile\n"
+ "[ -f $HOME/.xprofile ] && . $HOME/.xprofile\n"
+ "\n"
++"# run all system xinitrc shell scripts.\n"
++"if [ -d /etc/X11/xinit/xinitrc.d ]; then\n"
++" for i in /etc/X11/xinit/xinitrc.d/* ; do\n"
++" if [ -x \"$i\" ]; then\n"
++" . \"$i\"\n"
++" fi\n"
++" done\n"
++"fi\n"
++"\n"
+ "if [ -d /etc/X11/Xresources ]; then\n"
+ " for i in /etc/X11/Xresources/*; do\n"
+ " [ -f $i ] && xrdb -merge $i\n"
diff --git a/kde-unstable/kdebase-workspace/kscreensaver.pam b/kde-unstable/kdebase-workspace/kscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kscreensaver.pam
@@ -0,0 +1 @@
+auth required pam_unix_auth.so
diff --git a/kde-unstable/kdebase-workspace/terminate-server.patch b/kde-unstable/kdebase-workspace/terminate-server.patch
new file mode 100644
index 000000000..094591317
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/terminate-server.patch
@@ -0,0 +1,11 @@
+--- kdm/config.def 2009-08-27 10:17:39.000000000 +0200
++++ kdm/config.def 2009-10-31 00:40:21.000000000 +0100
+@@ -1448,7 +1448,7 @@
+
+ Key: TerminateServer
+ Type: bool
+-Default: false
++Default: true
+ User: core
+ Instance: #:*/!
+ Merge: xdm
diff --git a/kde-unstable/kdebase/PKGBUILD b/kde-unstable/kdebase/PKGBUILD
new file mode 100644
index 000000000..5a2078269
--- /dev/null
+++ b/kde-unstable/kdebase/PKGBUILD
@@ -0,0 +1,120 @@
+# $Id: PKGBUILD 160096 2012-05-29 22:29:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konq-plugins'
+ 'kdebase-konqueror'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz")
+sha1sums=('7057f83087295391c2bbbd1d75a79cf1ec696a20')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('kdegraphics-svgpart: thumbailers for SVG files'
+ 'kdegraphics-thumbnailers: thumbnailers for graphics file'
+ 'ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ install=kdebase-dolphin.install
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+ pkgdesc='Extra plugins for Konqueror'
+ depends=('kdebase-konqueror' 'tidyhtml')
+ replaces=('konq-plugins')
+ install='kdebase.install'
+ cd $srcdir/build/konq-plugins
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase-konqueror.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase/kdebase-dolphin.install b/kde-unstable/kdebase/kdebase-dolphin.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase-dolphin.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdenetwork-libre/kdenetwork-kget.install b/kde-unstable/kdebase/kdebase-konqueror.install
index 5495fb1b5..5495fb1b5 100644
--- a/libre/kdenetwork-libre/kdenetwork-kget.install
+++ b/kde-unstable/kdebase/kdebase-konqueror.install
diff --git a/kde-unstable/kdebase/kdebase.install b/kde-unstable/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebindings-kimono/PKGBUILD b/kde-unstable/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..cfc7ee060
--- /dev/null
+++ b/kde-unstable/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160113 2012-05-29 22:41:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-kimono
+pkgver=4.8.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="https://projects.kde.org/projects/kde/kdebindings/csharp/kimono"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/kimono-${pkgver}.tar.xz")
+sha1sums=('348529351170cba46ea3bb071416f54cedd05f9c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kimono-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-kross/PKGBUILD b/kde-unstable/kdebindings-kross/PKGBUILD
new file mode 100644
index 000000000..f9eb6df19
--- /dev/null
+++ b/kde-unstable/kdebindings-kross/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 160114 2012-05-29 22:42:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-kross
+pkgname=('kdebindings-kross-python'
+# 'kdebindings-kross-ruby'
+ 'kdebindings-kross-java')
+pkgver=4.8.80
+pkgrel=1
+url="https://projects.kde.org/projects/kde/kdebindings/kross-interpreters"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'java-environment')
+source=("http://download.kde.org/unstable/${pkgver}/src/kross-interpreters-${pkgver}.tar.xz")
+sha1sums=('829814ae8753ffe4c7dc44a733c022b5447d7fa5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kross-interpreters-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ruby=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdebindings-kross-python() {
+ pkgdesc="Python2 language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'python2')
+
+ cd "${srcdir}"/build/python
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-java() {
+ pkgdesc="Java language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'java-environment')
+
+ cd "${srcdir}"/build/java
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-ruby() {
+ pkgdesc="Ruby language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'ruby')
+
+ cd "${srcdir}"/build/ruby
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlqt/PKGBUILD b/kde-unstable/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..fa27f08c5
--- /dev/null
+++ b/kde-unstable/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160184 2012-05-30 07:32:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlqt
+pkgver=4.8.80
+pkgrel=2
+pkgdesc="Perl bindings for the Qt libraries"
+url="https://projects.kde.org/projects/kde/kdebindings/perl/perlqt"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'perl-list-moreutils')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlqt-${pkgver}.tar.xz")
+sha1sums=('a0e7bbb60978c43dc6f888c3ee0e757d0eb14be0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-python/PKGBUILD b/kde-unstable/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..f1b22222f
--- /dev/null
+++ b/kde-unstable/kdebindings-python/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 160090 2012-05-29 22:25:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-python
+pkgname=('kdebindings-python'
+ 'kdebindings-python2')
+pkgver=4.8.80
+pkgrel=1
+url='https://projects.kde.org/projects/kde/kdebindings/pykde4'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'python2-pyqt' 'qscintilla')
+source=("http://download.kde.org/unstable/${pkgver}/src/pykde4-${pkgver}.tar.xz")
+sha1sums=('72bd95baeaf8ab71a66de6da8bba09e978e59bd2')
+
+build() {
+ export PYTHONDONTWRITEBYTECODE="TRUE"
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_LIBRARY=/usr/lib/libpython3.2mu.so.1.0 \
+ -DWITH_Soprano=OFF
+ make
+ cd ..
+
+ mkdir build-python2
+ cd build-python2
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package_kdebindings-python() {
+ pkgdesc="A set of Python 3.x bindings for KDE"
+ depends=('kdepim-runtime' 'pyqt' 'qscintilla')
+
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-python2() {
+ pkgdesc="A set of Python 2.x bindings for KDE"
+ depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla')
+ conflicts=('kdebindings-python<4.8.1-2')
+
+ cd "${srcdir}"/build-python2
+ make DESTDIR="${pkgdir}" install
+
+ # Fix conflicts
+ rm "${pkgdir}"/usr/bin/pykdeuic4
+ ln -sf /usr/lib/python2.7/site-packages/PyQt4/uic/pykdeuic4.py \
+ "${pkgdir}"/usr/bin/python2-pykdeuic4
+
+ mv "${pkgdir}"/usr/share/apps/pykde4/examples \
+ "${pkgdir}"/usr/share/apps/pykde4/python2-examples
+
+ mv "${pkgdir}"/usr/share/sip/PyKDE4 \
+ "${pkgdir}"/usr/share/sip/python2-PyKDE4
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/kde-unstable/kdebindings-qtruby/PKGBUILD b/kde-unstable/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..a3965d5e4
--- /dev/null
+++ b/kde-unstable/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160092 2012-05-29 22:26:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qtruby
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Ruby bindings for the Qt libraries"
+url="https://projects.kde.org/projects/kde/kdebindings/ruby/qtruby"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/qtruby-${pkgver}.tar.xz")
+sha1sums=('8cf9bc95f95f72c00f32e0a867e20e5029b8bcbb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qtruby-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCUSTOM_RUBY_SITE_LIB_DIR=$(ruby -e 'puts RbConfig::CONFIG["vendorlibdir"]') \
+ -DCUSTOM_RUBY_SITE_ARCH_DIR=$(ruby -e 'puts RbConfig::CONFIG["vendorarchdir"]')
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-qyoto/PKGBUILD b/kde-unstable/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..2ba17465a
--- /dev/null
+++ b/kde-unstable/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160091 2012-05-29 22:26:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qyoto
+pkgver=4.8.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="https://projects.kde.org/projects/kde/kdebindings/csharp/qyoto"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/qyoto-${pkgver}.tar.xz")
+sha1sums=('70b384fdc5509fcde8870e5aa1a08b285ef9d35f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qyoto-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokegen/PKGBUILD b/kde-unstable/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..6c47db7fc
--- /dev/null
+++ b/kde-unstable/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160084 2012-05-29 22:22:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokegen
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="https://projects.kde.org/projects/kde/kdebindings/smoke/smokegen"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokegen-${pkgver}.tar.xz")
+sha1sums=('3f98d0a97db5604a924fdf2e654640b0f257486a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokegen-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokekde/PKGBUILD b/kde-unstable/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..4c28d7f8b
--- /dev/null
+++ b/kde-unstable/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 160088 2012-05-29 22:24:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokekde
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="https://projects.kde.org/projects/kde/kdebindings/smoke/smokekde"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+optdepends=('kdesdk-kate: Kate bindings'
+ 'kdegraphics-okular: Okular bindings')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokekde-${pkgver}.tar.xz")
+sha1sums=('d349b9fe6ef29c0717d3faa831d2f2d1f0281290')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokekde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokeqt/PKGBUILD b/kde-unstable/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..08600b411
--- /dev/null
+++ b/kde-unstable/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160085 2012-05-29 22:22:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokeqt
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="https://projects.kde.org/projects/kde/kdebindings/smoke/smokeqt"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokegen' 'qimageblitz' 'qscintilla')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokeqt-${pkgver}.tar.xz")
+sha1sums=('8ecb3a8aa49a7095ae4c0b74949ba66cb4d63c2d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokeqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Qwt5=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-analitza/PKGBUILD b/kde-unstable/kdeedu-analitza/PKGBUILD
new file mode 100644
index 000000000..a6c1a1a30
--- /dev/null
+++ b/kde-unstable/kdeedu-analitza/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160103 2012-05-29 22:32:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-analitza
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A library to add mathematical features to your program"
+url="https://projects.kde.org/projects/kde/kdeedu/analitza"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/analitza-${pkgver}.tar.xz")
+sha1sums=('5ebeced5d8f4b2aa58e532d5c46511e01fe31f54')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../analitza-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/PKGBUILD b/kde-unstable/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..bc8d1272d
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160115 2012-05-29 22:42:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-blinken
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/blinken-${pkgver}.tar.xz")
+sha1sums=('30070f8de37593ae25c764d269fc6dbcf688f82a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../blinken-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/kdeedu-blinken.install b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-cantor/PKGBUILD b/kde-unstable/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..f4fb2d591
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 160116 2012-05-29 22:42:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-cantor
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libspectre' 'kdeedu-analitza' 'libqalculate')
+makedepends=('cmake' 'automoc4' 'r')
+optdepends=('maxima: Maxima backend'
+ 'octave: Octave backend'
+ 'r: R backend')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/cantor-${pkgver}.tar.xz")
+sha1sums=('cdb2842805d8a35f465101b5efe6906ecf9a6bfe')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../cantor-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-cantor/kdeedu-cantor.install b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/PKGBUILD b/kde-unstable/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..dca3c6bee
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160117 2012-05-29 22:43:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalgebra
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu' 'kdeedu-analitza')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalgebra-${pkgver}.tar.xz")
+sha1sums=('890a56c4f302019015fc3f85ef044a638f35d01e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalgebra-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalzium/PKGBUILD b/kde-unstable/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..cc4855602
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160118 2012-05-29 22:43:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalzium
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml' 'facile')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalzium-${pkgver}.tar.xz")
+sha1sums=('94f69274e86ffa5159bcb2e670be1d5560068057')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalzium-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kanagram/PKGBUILD b/kde-unstable/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..999cc365f
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160119 2012-05-29 22:44:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kanagram
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kanagram-${pkgver}.tar.xz")
+sha1sums=('311c23ac72fda6c425b4a74c687e41fb730ec3de')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kanagram-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kbruch/PKGBUILD b/kde-unstable/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..ed62bbe52
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160120 2012-05-29 22:44:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kbruch
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kbruch-${pkgver}.tar.xz")
+sha1sums=('38277c19633c864fefbeb337eb27bdbbb851fdf8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kbruch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kgeography/PKGBUILD b/kde-unstable/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..ceb1278eb
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160121 2012-05-29 22:45:22Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kgeography
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgeography-${pkgver}.tar.xz")
+sha1sums=('5b2a17154fdce9d5bdd27124e8c51816d6679e93')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgeography-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-khangman/PKGBUILD b/kde-unstable/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..8c6ec0457
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160122 2012-05-29 22:45:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-khangman
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/khangman-${pkgver}.tar.xz")
+sha1sums=('25a57b963e0ad130fcacd926316bd1237d93a573')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../khangman-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-khangman/kdeedu-khangman.install b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kig/PKGBUILD b/kde-unstable/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..3cff24139
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 160123 2012-05-29 22:46:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kig
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kig-${pkgver}.tar.xz")
+sha1sums=('37c9801eb57c8bc774621f76c12eb7805bd895cd')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kig-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/kde-unstable/kdeedu-kig/kdeedu-kig.install b/kde-unstable/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kiten/PKGBUILD b/kde-unstable/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..d03a6e4f9
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160124 2012-05-29 22:46:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kiten
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kiten-${pkgver}.tar.xz")
+sha1sums=('04502f5b20493ec396c31e844ceba4aff09d6b30')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kiten-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kiten/kdeedu-kiten.install b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-klettres/PKGBUILD b/kde-unstable/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..702a3b60a
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160125 2012-05-29 22:47:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-klettres
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/klettres-${pkgver}.tar.xz")
+sha1sums=('7e13e0b73dfb7b99372c636f5d8ec52112869cb7')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../klettres-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-klettres/kdeedu-klettres.install b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kmplot/PKGBUILD b/kde-unstable/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..a752eef8a
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160126 2012-05-29 22:48:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kmplot
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmplot-${pkgver}.tar.xz")
+sha1sums=('0ccef544a8fcde8be41300d160253505bca41576')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmplot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kstars/PKGBUILD b/kde-unstable/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..d64be6c06
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160127 2012-05-29 22:48:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kstars
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libindi')
+makedepends=('cmake' 'automoc4' 'eigen')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kstars-${pkgver}.tar.xz")
+sha1sums=('8e869413470abc4b984ae878ebcc34646cfaafe5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kstars-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xplanet=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kstars/kdeedu-kstars.install b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-ktouch/PKGBUILD b/kde-unstable/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..222ea6d74
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160128 2012-05-29 22:49:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-ktouch
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktouch-${pkgver}.tar.xz")
+sha1sums=('5d046796b78e506ef451c70a2ee68b8b337dc4de')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktouch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kturtle/PKGBUILD b/kde-unstable/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..dcd5afd29
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160129 2012-05-29 22:50:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kturtle
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kturtle-${pkgver}.tar.xz")
+sha1sums=('b5c3705ac91c0ab3e5781f0fb764da113a427673')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kturtle-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/PKGBUILD b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..5769e6566
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160130 2012-05-29 22:50:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwordquiz-${pkgver}.tar.xz")
+sha1sums=('3a0e782456430e878118256e8058518d981433d2')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwordquiz-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-marble/PKGBUILD b/kde-unstable/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..95184c315
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160098 2012-05-29 22:30:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-marble
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'gpsd')
+optdepends=('gpsd: gps support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/marble-${pkgver}.tar.xz")
+sha1sums=('d3f6b27cda2710d48dfa2873dc09f4b0bccbcb09')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../marble-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-marble/kdeedu-marble.install b/kde-unstable/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-pairs/PKGBUILD b/kde-unstable/kdeedu-pairs/PKGBUILD
new file mode 100644
index 000000000..8cf2bee76
--- /dev/null
+++ b/kde-unstable/kdeedu-pairs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160131 2012-05-29 22:50:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-pairs
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A memory and pairs game for KDE"
+url="https://projects.kde.org/projects/kde/kdeedu/pairs"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/pairs-${pkgver}.tar.xz")
+sha1sums=('349954ee22080f49025d997047d2b2ce88f00c9c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pairs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-pairs/kdeedu-pairs.install b/kde-unstable/kdeedu-pairs/kdeedu-pairs.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-pairs/kdeedu-pairs.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-parley/PKGBUILD b/kde-unstable/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..6a442172b
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160132 2012-05-29 22:51:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-parley
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/parley-${pkgver}.tar.xz")
+sha1sums=('0ea1f3fbe0ab321d347e0d961c0bc335b8babf63')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../parley-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-parley/kdeedu-parley.install b/kde-unstable/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-rocs/PKGBUILD b/kde-unstable/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..70aba2913
--- /dev/null
+++ b/kde-unstable/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160133 2012-05-29 22:51:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-rocs
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/rocs-${pkgver}.tar.xz")
+sha1sums=('58722f1cd841e417ac0b3a3074b03e509f34e8e2')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../rocs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/PKGBUILD b/kde-unstable/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..56e097e21
--- /dev/null
+++ b/kde-unstable/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160134 2012-05-29 22:52:22Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-step
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl')
+makedepends=('cmake' 'automoc4' 'eigen')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/step-${pkgver}.tar.xz")
+sha1sums=('7136e43cb22feb501aee4a3a5efbf96892148198')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../step-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/kdeedu-step.install b/kde-unstable/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/PKGBUILD b/kde-unstable/kdegames/PKGBUILD
new file mode 100644
index 000000000..e3a82756c
--- /dev/null
+++ b/kde-unstable/kdegames/PKGBUILD
@@ -0,0 +1,510 @@
+# $Id: PKGBUILD 160135 2012-05-29 22:53:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('cmake' 'automoc4' 'twisted' 'kdebindings-python2'
+ 'openal')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('7bdb73030e4db5431f7a6babcd8b06f49185680f')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python2' 'twisted')
+ url="http://www.kde.org/applications/games/kajongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames-kpatience.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs' 'openal')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdegames/kdegames-kbattleship.install b/kde-unstable/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kfourinline.install b/kde-unstable/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kigo.install b/kde-unstable/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kolf.install b/kde-unstable/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kpatience.install b/kde-unstable/kdegames/kdegames-kpatience.install
new file mode 100644
index 000000000..3af34a012
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kpatience.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kspaceduel.install b/kde-unstable/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-ktuberling.install b/kde-unstable/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-lskat.install b/kde-unstable/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-palapeli.install b/kde-unstable/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames.install b/kde-unstable/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/PKGBUILD b/kde-unstable/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..023c7183e
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160136 2012-05-29 22:55:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-gwenview
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins: extra plugins to share photos')
+install=$pkgname.install
+source=("http://download.kde.org/unstable/${pkgver}/src/gwenview-${pkgver}.tar.xz")
+sha1sums=('aaebf6f6772cda045b8f322e4bd2fabb8253e3e7')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../gwenview-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kamera/PKGBUILD b/kde-unstable/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..ea75e6e63
--- /dev/null
+++ b/kde-unstable/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160137 2012-05-29 22:56:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kamera
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kamera-${pkgver}.tar.xz")
+sha1sums=('4b9da61bee650aefe85e46183dd720fcf89e5240')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kamera-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..7511b88f9
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160138 2012-05-29 22:56:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcolorchooser-${pkgver}.tar.xz")
+sha1sums=('dd76ff7e8a906dd2010aff6ba674dfe9494ffc21')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcolorchooser-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kgamma/PKGBUILD b/kde-unstable/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..4104c6674
--- /dev/null
+++ b/kde-unstable/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160139 2012-05-29 22:57:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kgamma
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kgamma-${pkgver}.tar.xz")
+sha1sums=('65abd0f994448a9a92048145af3e4b5121be59ed')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgamma-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/PKGBUILD b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..8ed7fb0a0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160140 2012-05-29 22:57:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kolourpaint-${pkgver}.tar.xz")
+sha1sums=('d755e72558fd333697028fdc14bcb8a1db7f8256')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kolourpaint-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kruler/PKGBUILD b/kde-unstable/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..037b4913a
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160141 2012-05-29 22:58:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kruler
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kruler-${pkgver}.tar.xz")
+sha1sums=('ccaa5c48bd2a64f9d428729edb6b6dbdbbface3a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kruler-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..21e8f51c7
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160142 2012-05-29 22:58:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="https://projects.kde.org/projects/kde/kdegraphics/ksaneplugin"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/ksaneplugin-${pkgver}.tar.xz")
+sha1sums=('9327ce8c88ec2b425717538f9dc3a0ce4fc0c50c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksaneplugin-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/PKGBUILD b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..6c9dc11c3
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160143 2012-05-29 22:58:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ksnapshot-${pkgver}.tar.xz")
+sha1sums=('8b19cf73a9a0ad34de612167bf7be6a47babfe8d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksnapshot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/PKGBUILD b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
new file mode 100644
index 000000000..0efa8ae2a
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160144 2012-05-29 22:59:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-mobipocket
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A collection of plugins to handle mobipocket files"
+url="https://projects.kde.org/projects/kde/kdegraphics/kdegraphics-mobipocket"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4' 'kdegraphics-okular')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('38772a3e115d27945727c2d5d0c6b0e5ba055ac0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-okular/PKGBUILD b/kde-unstable/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..35d1f3293
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160086 2012-05-29 22:23:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/okular-${pkgver}.tar.xz")
+sha1sums=('01f5bccc92a12847d975ff39f5ae0861fbcefe7c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-okular/kdegraphics-okular.install b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..616426eaa
--- /dev/null
+++ b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160146 2012-05-29 22:59:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="https://projects.kde.org/projects/kde/kdegraphics/kdegraphics-strigi-analyzer"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('82afc822ac42d8128f6181c24a84ef8734ec67e8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-svgpart/PKGBUILD b/kde-unstable/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..91e5f74ba
--- /dev/null
+++ b/kde-unstable/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160148 2012-05-29 23:00:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-svgpart
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="https://projects.kde.org/projects/kde/kdegraphics/svgpart"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/svgpart-${pkgver}.tar.xz")
+sha1sums=('812a5b8972137d3edb9cd0c922f4e5630374500f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../svgpart-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-thumbnailers/PKGBUILD b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..fec3c1c29
--- /dev/null
+++ b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160149 2012-05-29 23:00:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="https://projects.kde.org/projects/kde/kdegraphics/kdegraphics-thumbnailers"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('fcaa45c94ff6809722548449deb96149b7e35ba1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-audiocd-kio/PKGBUILD b/kde-unstable/kdemultimedia-audiocd-kio/PKGBUILD
new file mode 100644
index 000000000..0be5b4124
--- /dev/null
+++ b/kde-unstable/kdemultimedia-audiocd-kio/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160150 2012-05-29 23:01:01Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-audiocd-kio
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Kioslave for accessing audio CDs"
+url='https://projects.kde.org/projects/kde/kdemultimedia/audiocd-kio'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkcddb' 'libkcompactdisc' 'lame')
+makedepends=('cmake' 'automoc4')
+groups=('kdemultimedia')
+replaces=('kdemultimedia-kioslave')
+conflicts=('kdemultimedia-kioslave')
+source=("http://download.kde.org/unstable/${pkgver}/src/audiocd-kio-${pkgver}.tar.xz")
+sha1sums=('eb4d8c065a77c43eb4492c75085ddf9a1be0d1c8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../audiocd-kio-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-dragonplayer/PKGBUILD b/kde-unstable/kdemultimedia-dragonplayer/PKGBUILD
new file mode 100644
index 000000000..2cb1481f2
--- /dev/null
+++ b/kde-unstable/kdemultimedia-dragonplayer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160151 2012-05-29 23:01:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-dragonplayer
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A multimedia player where the focus is on simplicity, instead of
+features"
+url='http://kde.org/applications/multimedia/dragonplayer/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/dragon-${pkgver}.tar.xz")
+sha1sums=('2bf02ca31e2dac65bc621a89e09cc8e5885593d8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../dragon-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/libre/kdenetwork-libre/kdenetwork-kopete.install b/kde-unstable/kdemultimedia-dragonplayer/kdemultimedia-dragonplayer.install
index 5495fb1b5..5495fb1b5 100644
--- a/libre/kdenetwork-libre/kdenetwork-kopete.install
+++ b/kde-unstable/kdemultimedia-dragonplayer/kdemultimedia-dragonplayer.install
diff --git a/kde-unstable/kdemultimedia-ffmpegthumbs/PKGBUILD b/kde-unstable/kdemultimedia-ffmpegthumbs/PKGBUILD
new file mode 100644
index 000000000..de2684a8b
--- /dev/null
+++ b/kde-unstable/kdemultimedia-ffmpegthumbs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 160152 2012-05-29 23:01:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-ffmpegthumbs
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='FFmpeg-based thumbnail creator for video files'
+url='https://projects.kde.org/projects/kde/kdemultimedia/ffmpegthumbs'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'ffmpeg')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/ffmpegthumbs-${pkgver}.tar.xz")
+sha1sums=('092060cc8ab89612a5fd1955f2d9c39521c67daa')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ffmpegthumbs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-juk/PKGBUILD b/kde-unstable/kdemultimedia-juk/PKGBUILD
new file mode 100644
index 000000000..78a75b39a
--- /dev/null
+++ b/kde-unstable/kdemultimedia-juk/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160153 2012-05-29 23:02:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-juk
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='A jukebox, tagger and music collection manager'
+url='http://kde.org/applications/multimedia/juk/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'taglib')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/juk-${pkgver}.tar.xz")
+sha1sums=('07cf74206540294e4a942482708182e4d2578b37')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../juk-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_TunePimp=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-juk/kdemultimedia-juk.install b/kde-unstable/kdemultimedia-juk/kdemultimedia-juk.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/kde-unstable/kdemultimedia-juk/kdemultimedia-juk.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia-kmix/PKGBUILD b/kde-unstable/kdemultimedia-kmix/PKGBUILD
new file mode 100644
index 000000000..88336c1c7
--- /dev/null
+++ b/kde-unstable/kdemultimedia-kmix/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160154 2012-05-29 23:02:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-kmix
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="KDE volume control program"
+url='http://kde.org/applications/multimedia/kmix/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/kmix-${pkgver}.tar.xz")
+sha1sums=('e6e7ffc05b800d17b8b32600410a6ecbce773f8c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmix-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-kmix/kdemultimedia-kmix.install b/kde-unstable/kdemultimedia-kmix/kdemultimedia-kmix.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/kde-unstable/kdemultimedia-kmix/kdemultimedia-kmix.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia-kscd/PKGBUILD b/kde-unstable/kdemultimedia-kscd/PKGBUILD
new file mode 100644
index 000000000..5a759b1f0
--- /dev/null
+++ b/kde-unstable/kdemultimedia-kscd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160155 2012-05-29 23:02:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-kscd
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="KDE CD player"
+url='http://kde.org/applications/multimedia/kscd/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'libkcddb' 'libkcompactdisc' 'libmusicbrainz3')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/kscd-${pkgver}.tar.xz")
+sha1sums=('2352ef7a8b85ce6a4610563b2be0a37c0c1dfe41')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kscd-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdemultimedia-kscd/kdemultimedia-kscd.install b/kde-unstable/kdemultimedia-kscd/kdemultimedia-kscd.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/kde-unstable/kdemultimedia-kscd/kdemultimedia-kscd.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia-mplayerthumbs/PKGBUILD b/kde-unstable/kdemultimedia-mplayerthumbs/PKGBUILD
new file mode 100644
index 000000000..32fed8740
--- /dev/null
+++ b/kde-unstable/kdemultimedia-mplayerthumbs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 160156 2012-05-29 23:03:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdemultimedia-mplayerthumbs
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="MPlayer based thumbnail generator for video files"
+url='https://projects.kde.org/projects/kde/kdemultimedia/mplayerthumbs'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'mplayer')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/mplayerthumbs-${pkgver}.tar.xz")
+sha1sums=('44f530ac94b1b5b4051579e407dd6a98636be1eb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../mplayerthumbs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/libre/kdenetwork-libre/PKGBUILD b/kde-unstable/kdenetwork/PKGBUILD
index e39929f4c..366cddbac 100644
--- a/libre/kdenetwork-libre/PKGBUILD
+++ b/kde-unstable/kdenetwork/PKGBUILD
@@ -1,47 +1,40 @@
-# $Id: PKGBUILD 154726 2012-03-30 16:15:21Z andrea $
+# $Id: PKGBUILD 160157 2012-05-29 23:04:03Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
-# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
-_pkgbase=kdenetwork
-pkgbase=kdenetwork-libre
+pkgbase=kdenetwork
pkgname=('kdenetwork-filesharing'
'kdenetwork-kdnssd'
'kdenetwork-kget'
- 'kdenetwork-kopete-libre'
+ 'kdenetwork-kopete'
'kdenetwork-kppp'
'kdenetwork-krdc'
'kdenetwork-krfb')
-pkgver=4.8.2
+pkgver=4.8.80
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
- 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
- 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
- 'libktorrent' 'libmms' 'mediastreamer')
-source=("http://download.kde.org/stable/${pkgver}/src/${_pkgbase}-${pkgver}.tar.xz")
-sha1sums=('a899a9ef1637612a5ec14bb3ff950f3ed565d60e')
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver'
+ 'v4l-utils' 'libidn' 'qimageblitz' 'libxdamage' 'libgadu' 'libmsn'
+ 'libktorrent' 'libmms' 'mediastreamer' 'telepathy-qt')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('66a50bb88660c85fb6a94c3411b9387f8c885544')
build() {
cd "${srcdir}"
-
-# 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"
-
mkdir build
cd build
- cmake ../${_pkgbase}-${pkgver} \
+ cmake ../${pkgbase}-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
-DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
-DWITH_Xmms=OFF \
- -DWITH_LibMeanwhile=OFF
+ -DWITH_LibMeanwhile=OFF \
+ -DWITH_qq=OFF
make
}
@@ -71,13 +64,10 @@ package_kdenetwork-kget() {
make DESTDIR=$pkgdir install
}
-package_kdenetwork-kopete-libre() {
- pkgdesc='Instant Messenger (without skype support)'
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
'libidn' 'qimageblitz' 'libgadu' 'mediastreamer')
- conflicts=('kdenetwork-kopete')
- provides=("kdenetwork-kopete=${pkgver}")
- replaces=('kdenetwork-kopete')
url="http://kde.org/applications/internet/kopete/"
install='kdenetwork-kopete.install'
cd $srcdir/build/kopete
@@ -99,8 +89,10 @@ package_kdenetwork-kppp() {
package_kdenetwork-krdc() {
pkgdesc='Remote Desktop Client'
- depends=('kdebase-runtime' 'libvncserver' 'rdesktop')
- optdepends=('kdebase-keditbookmarks: to edit bookmarks')
+ depends=('kdebase-runtime' 'telepathy-qt')
+ optdepends=('libvncserver: VNC support'
+ 'rdesktop: RDP support'
+ 'kdebase-keditbookmarks: to edit bookmarks')
url="http://kde.org/applications/internet/krdc/"
cd $srcdir/build/krdc
make DESTDIR=$pkgdir install
@@ -113,7 +105,7 @@ package_kdenetwork-krfb() {
# note on libxdamage:
# not detected by namcap because libgl depends on it
# but nvidia providing libgl does not depend on libxdamage
- depends=('kdebase-runtime' 'libvncserver' 'libxdamage')
+ depends=('kdebase-runtime' 'libvncserver' 'libxdamage' 'telepathy-qt')
cd $srcdir/build/krfb
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/krfb
diff --git a/libre/kdenetwork-libre/kdenetwork-kppp.install b/kde-unstable/kdenetwork/kdenetwork-kget.install
index 5495fb1b5..5495fb1b5 100644
--- a/libre/kdenetwork-libre/kdenetwork-kppp.install
+++ b/kde-unstable/kdenetwork/kdenetwork-kget.install
diff --git a/kde-unstable/kdenetwork/kdenetwork-kopete.install b/kde-unstable/kdenetwork/kdenetwork-kopete.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kopete.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kppp.install b/kde-unstable/kdenetwork/kdenetwork-kppp.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kppp.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork.install b/kde-unstable/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim-runtime/PKGBUILD b/kde-unstable/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..5734ab542
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160083 2012-05-29 22:21:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Extends the functionality of kdepim'
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/kde/kdepim-runtime'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'libkgoogle')
+makedepends=('cmake' 'automoc4' 'boost')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('1c9b97f2e562edeebda926b16f8b97a257b000d0')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim-runtime/kdepim-runtime.install b/kde-unstable/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/kdepim-runtime.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/PKGBUILD b/kde-unstable/kdepim/PKGBUILD
new file mode 100644
index 000000000..bb01a34be
--- /dev/null
+++ b/kde-unstable/kdepim/PKGBUILD
@@ -0,0 +1,244 @@
+# $Id: PKGBUILD 160158 2012-05-29 23:05:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'pilot-link'
+ 'kde-agent')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('c563279f8ae207ee3a4aa01534f38bfadee92cff')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ install=kdepim-kleopatra.install
+ url="http://kde.org/applications/utilities/kleopatra/"
+ cd "${srcdir}"/build/kleopatra
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kleopatra
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kmail() {
+ pkgdesc='Mail Client'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim-kmail.install'
+ conflicts=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ for i in kmail doc/kmail kmailcvt ksendemail libksieve mailcommon \
+ mailfilteragent ontologies kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim-korganizer.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
diff --git a/kde-unstable/kdepim/kdepim-kleopatra.install b/kde-unstable/kdepim/kdepim-kleopatra.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kleopatra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-kmail.install b/kde-unstable/kdepim/kdepim-kmail.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kmail.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-korganizer.install b/kde-unstable/kdepim/kdepim-korganizer.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-korganizer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim.install b/kde-unstable/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepimlibs/PKGBUILD b/kde-unstable/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..e82ec55d3
--- /dev/null
+++ b/kde-unstable/kdepimlibs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160077 2012-05-29 22:07:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='https://projects.kde.org/projects/kde/kdepimlibs'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
+makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl')
+install='kdepimlibs.install'
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('ae808daa00e5d8a5fa3f62777e311391d2412c7c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepimlibs/kdepimlibs.install b/kde-unstable/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/kde-unstable/kdepimlibs/kdepimlibs.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/PKGBUILD b/kde-unstable/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..be384b5f3
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,619 @@
+# $Id: PKGBUILD 160159 2012-05-29 23:06:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeplasma-addons
+pkgname=('kdeplasma-addons-applets-bball'
+ 'kdeplasma-addons-applets-binary-clock'
+ 'kdeplasma-addons-applets-blackboard'
+ 'kdeplasma-addons-applets-bookmarks'
+ 'kdeplasma-addons-applets-bubblemon'
+ 'kdeplasma-addons-applets-calculator'
+ 'kdeplasma-addons-applets-charselect'
+ 'kdeplasma-addons-applets-comic'
+ 'kdeplasma-addons-applets-community'
+ 'kdeplasma-addons-applets-dict'
+ 'kdeplasma-addons-applets-eyes'
+ 'kdeplasma-addons-applets-fifteenpuzzle'
+ 'kdeplasma-addons-applets-filewatcher'
+ 'kdeplasma-addons-applets-frame'
+ 'kdeplasma-addons-applets-fuzzy-clock'
+ 'kdeplasma-addons-applets-icontasks'
+ 'kdeplasma-addons-applets-incomingmsg'
+ 'kdeplasma-addons-applets-kdeobservatory'
+ 'kdeplasma-addons-applets-kimpanel'
+ 'kdeplasma-addons-applets-knowledgebase'
+ 'kdeplasma-addons-applets-kolourpicker'
+ 'kdeplasma-addons-applets-konqprofiles'
+ 'kdeplasma-addons-applets-konsoleprofiles'
+ 'kdeplasma-addons-applets-lancelot'
+ 'kdeplasma-addons-applets-leavenote'
+ 'kdeplasma-addons-applets-life'
+ 'kdeplasma-addons-applets-luna'
+ 'kdeplasma-addons-applets-magnifique'
+ 'kdeplasma-addons-applets-mediaplayer'
+ 'kdeplasma-addons-applets-microblog'
+ 'kdeplasma-addons-applets-news'
+ 'kdeplasma-addons-applets-notes'
+ 'kdeplasma-addons-applets-nowplaying'
+ 'kdeplasma-addons-applets-paste'
+ 'kdeplasma-addons-applets-pastebin'
+ 'kdeplasma-addons-applets-plasmaboard'
+ 'kdeplasma-addons-applets-previewer'
+ 'kdeplasma-addons-applets-qalculate'
+ 'kdeplasma-addons-applets-rememberthemilk'
+ 'kdeplasma-addons-applets-rssnow'
+ 'kdeplasma-addons-applets-showdashboard'
+ 'kdeplasma-addons-applets-showdesktop'
+ 'kdeplasma-addons-applets-social-news'
+ 'kdeplasma-addons-applets-spellcheck'
+ 'kdeplasma-addons-applets-systemloadviewer'
+ 'kdeplasma-addons-applets-timer'
+ 'kdeplasma-addons-applets-unitconverter'
+ 'kdeplasma-addons-applets-weather'
+ 'kdeplasma-addons-applets-weatherstation'
+ 'kdeplasma-addons-applets-webslice'
+ 'kdeplasma-addons-containments'
+ 'kdeplasma-addons-libs'
+ 'kdeplasma-addons-runners-audioplayercontrol'
+ 'kdeplasma-addons-runners-browserhistory'
+ 'kdeplasma-addons-runners-characters'
+ 'kdeplasma-addons-runners-contacts'
+ 'kdeplasma-addons-runners-converter'
+ 'kdeplasma-addons-runners-datetime'
+ 'kdeplasma-addons-runners-events'
+ 'kdeplasma-addons-runners-katesessions'
+ 'kdeplasma-addons-runners-konquerorsessions'
+ 'kdeplasma-addons-runners-konsolesessions'
+ 'kdeplasma-addons-runners-kopete'
+ 'kdeplasma-addons-runners-mediawiki'
+ 'kdeplasma-addons-runners-spellchecker'
+ 'kdeplasma-addons-wallpapers-mandelbrot'
+ 'kdeplasma-addons-wallpapers-marble'
+ 'kdeplasma-addons-wallpapers-pattern'
+ 'kdeplasma-addons-wallpapers-potd'
+ 'kdeplasma-addons-wallpapers-virus'
+ 'kdeplasma-addons-wallpapers-weather')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen'
+ 'scim' 'qwt' 'boost' 'libkexiv2' 'ibus' 'qoauth')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('f29306ffbae3fab7eb4f3bd0a0e9a3cb6be88036')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-icontasks() {
+ pkgdesc='Switch between running applications'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/icontasks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-incomingmsg() {
+ pkgdesc='Notification of new messages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/incomingmsg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kdeobservatory() {
+ pkgdesc='Visualize the KDE ecosystem'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qwt')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/kdeobservatory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kimpanel() {
+ pkgdesc='A generic input method panel for Oriental languages'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ optdepends=('scim: SCIM backend'
+ 'fcitx: FCITX backend'
+ 'ibus: IBUS backend')
+ cd $srcdir/build/applets/kimpanel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-knowledgebase() {
+ pkgdesc='Opendesktop Knowledgebase'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/knowledgebase
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kolourpicker() {
+ pkgdesc='Pick a color from the desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/kolourpicker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konqprofiles() {
+ pkgdesc='List and launch Konqueror profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konqprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konsoleprofiles() {
+ pkgdesc='List and launch Konsole profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konsoleprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-lancelot() {
+ pkgdesc='Launcher to start applications'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ replaces=('lancelot')
+ provides=('lancelot')
+ conflicts=('lancelot')
+ install='kdeplasma-addons-applets-lancelot.install'
+ cd $srcdir/build/applets/lancelot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-leavenote() {
+ pkgdesc='Leave notes for users while they are away'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/leavenote
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-life() {
+ pkgdesc='Life'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/life
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-luna() {
+ pkgdesc='Display moon phases for your location'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/luna
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-magnifique() {
+ pkgdesc='A magnification glass for the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/magnifique
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-mediaplayer() {
+ pkgdesc='Widget that can play video and sound'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/mediaplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-microblog() {
+ pkgdesc='Update and view your microblog status.'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qoauth' 'qca-ossl')
+ cd $srcdir/build/applets/microblog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-news() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-notes() {
+ pkgdesc='Desktop sticky notes'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/notes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-nowplaying() {
+ pkgdesc='Displays currently playing audio'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/nowplaying
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-paste() {
+ pkgdesc='Paste text snippets'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/paste
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-pastebin() {
+ pkgdesc='Paste text/images to a remote server'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/pastebin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-plasmaboard() {
+ pkgdesc='A virtual, on-screen keyboard'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/plasmaboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-previewer() {
+ pkgdesc='Preview This File'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/previewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-qalculate() {
+ pkgdesc='A powerful mathematical equation solver'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/qalculate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rememberthemilk() {
+ pkgdesc='Remember The Milk Todo list applet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/rememberthemilk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rssnow() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/rssnow
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdashboard() {
+ pkgdesc='Show the Plasma widget dashboard above other windows'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdashboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdesktop() {
+ pkgdesc='Show the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdesktop
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-social-news() {
+ pkgdesc='Stay informed with the Social Desktop'
+ replaces=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ conflicts=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/social-news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-spellcheck() {
+ pkgdesc='Fast spell checking'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/spellcheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-systemloadviewer() {
+ pkgdesc='Tiny CPU/RAM/Swap monitor'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/systemloadviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-timer() {
+ pkgdesc='Countdown over a specified time period'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/timer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-unitconverter() {
+ pkgdesc='Plasmoid for converting units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/unitconverter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weather() {
+ pkgdesc='Displays Weather information'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weather
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weatherstation() {
+ pkgdesc='Weather reports with an LCD display style'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weatherstation
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-webslice() {
+ pkgdesc='Show a part of a webpage'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/webslice
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-containments() {
+ pkgdesc='Activities types for Plasma shells'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/containments
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-libs() {
+ pkgdesc='Plasma Addon Library'
+ depends=('kdebase-workspace')
+ groups=()
+ replaces=('kdeplasma-addons-dataengines')
+ provides=('kdeplasma-addons-dataengines')
+ conflicts=('kdeplasma-addons-dataengines')
+ cd $srcdir/build/libs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dataengines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-audioplayercontrol() {
+ pkgdesc='Allows to control MPRIS audio players (it is able to search through Amarok´s collection, too)'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/audioplayercontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-browserhistory() {
+ pkgdesc='Searches in Konqueror´s history'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/browserhistory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-characters() {
+ pkgdesc='special Characters'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/characters
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-contacts() {
+ pkgdesc='Finds entries in your address book'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/contacts
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-converter() {
+ pkgdesc='Convert values to different units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/converter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-datetime() {
+ pkgdesc='The current date and time, locally or in any timezone'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/datetime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-events() {
+ pkgdesc='Calendar Events runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/events
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-katesessions() {
+ pkgdesc='Matches Kate Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/katesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konquerorsessions() {
+ pkgdesc='Matches Konqueror Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konquerorsessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konsolesessions() {
+ pkgdesc='Matches Konsole Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konsolesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-kopete() {
+ pkgdesc='Kopete Contact runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-mediawiki() {
+ pkgdesc='Search on Wikitravel'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/mediawiki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-spellchecker() {
+ pkgdesc='Check the spelling of a word'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/spellchecker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-mandelbrot() {
+ pkgdesc='Mandelbrot'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/mandelbrot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-marble() {
+ pkgdesc='Globe'
+ depends=('kdebase-workspace' 'kdeedu-marble')
+ cd $srcdir/build/wallpapers/marble
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-pattern() {
+ pkgdesc='Pattern'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/pattern
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-potd() {
+ pkgdesc='Picture of the Day'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/potd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-virus() {
+ pkgdesc='Virus'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/virus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-weather() {
+ pkgdesc='Weather'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/weather
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdesdk-kate/PKGBUILD b/kde-unstable/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..172a0e987
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 160087 2012-05-29 22:23:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-katepart'
+ 'kdebase-kwrite'
+ 'kdesdk-kate')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kate-${pkgver}.tar.xz"
+ 'pkgbuild-syntax-highlight.patch')
+sha1sums=('4f757fe5fd2a49a0119b8cafb072d8e742189029'
+ '0a928253bd2077f0264d96a6c8823c69c47b6a8d')
+
+build() {
+ cd "${srcdir}"/kate-${pkgver}
+ patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kate-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-katepart() {
+ pkgdesc="A fast and feature-rich text editor component"
+ depends=('kdelibs')
+ url="http://kate-editor.org/about-katepart/"
+ install='kdebase-katepart.install'
+
+ cd "${srcdir}"/build/part
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebase-kwrite() {
+ pkgdesc="Text Editor"
+ depends=('kdebase-runtime' 'kdebase-katepart')
+ groups=('kde' 'kdebase')
+ url="http://www.kde.org/applications/utilities/kwrite/"
+ install='kdebase-kwrite.install'
+
+ cd "${srcdir}"/build/kwrite
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kwrite
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+ pkgdesc="Advanced Text Editor"
+ depends=('kdebase-runtime' 'kdebase-katepart')
+ groups=('kde' 'kdesdk')
+ url="http://www.kde.org/applications/utilities/kate/"
+ install='kdesdk-kate.install'
+ optdepends=('kdebase-konsole: open a terminal in Kate')
+
+ cd "${srcdir}"/build/kate
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kate
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdesdk-kate/kdebase-katepart.install b/kde-unstable/kdesdk-kate/kdebase-katepart.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdebase-katepart.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/kdebase-kwrite.install b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/kdesdk-kate.install b/kde-unstable/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..0446d161b
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdesdk-kate.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..27729d1ad
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.7.80/part/syntax/data/bash.xml~ 2011-11-20 06:14:30.581097154 +0000
++++ kate-4.7.80/part/syntax/data/bash.xml 2011-11-20 06:14:45.494553146 +0000
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
++<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+ <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+ Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
diff --git a/kde-unstable/kdesdk/PKGBUILD b/kde-unstable/kdesdk/PKGBUILD
new file mode 100644
index 000000000..660a33a4d
--- /dev/null
+++ b/kde-unstable/kdesdk/PKGBUILD
@@ -0,0 +1,248 @@
+# $Id: PKGBUILD 160160 2012-05-29 23:07:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kcachegrind'
+ 'kdesdk-kioslave'
+ 'kdesdk-kmtrace'
+ 'kdesdk-kompare'
+ 'kdesdk-kpartloader'
+ 'kdesdk-kprofilemethod'
+ 'kdesdk-kstartperf'
+ 'kdesdk-kuiviewer'
+ 'kdesdk-lokalize'
+ 'kdesdk-okteta'
+ 'kdesdk-poxml'
+ 'kdesdk-scripts'
+ 'kdesdk-strigi-analyzer'
+ 'kdesdk-umbrello')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('cmake' 'automoc4' 'boost' 'subversion' 'antlr2' 'kdepimlibs'
+ 'kdebase-lib')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
+ 'fix-python2-path.patch')
+sha1sums=('1d8787a52aa8ef29ae80ca85683b7d0303277c38'
+ '923cabd7a877cf9a68efeb24fbf3d5827e1d949e')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # Fix hardcoded python2 cmd
+ patch -Np1 -i ${srcdir}/fix-python2-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdesdk-cervisia() {
+ pkgdesc='CVS Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/cervisia/"
+ install='kdesdk-cervisia.install'
+ cd $srcdir/build/cervisia
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/cervisia
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-dolphin-plugins() {
+ pkgdesc='Extra Dolphin plugins'
+ depends=('kdebase-dolphin')
+ optdepends=('bzr: bazaar support'
+ 'git: git support'
+ 'mercurial: hg support'
+ 'subversion: svn support')
+ install='kdesdk.install'
+ for i in bazaar git hg svn; do
+ cd $srcdir/build/dolphin-plugins/$i
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdesdk-kapptemplate() {
+ pkgdesc='KDE Template Generator'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kapptemplate/"
+ install='kdesdk.install'
+ cd $srcdir/build/kapptemplate
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapptemplate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kcachegrind() {
+ pkgdesc='Visualization of Performance Profiling Data'
+ depends=('kdebase-runtime' 'python2')
+ optdepends=('php: PHP support')
+ url="http://kde.org/applications/development/kcachegrind/"
+ install='kdesdk-kcachegrind.install'
+ cd $srcdir/build/kcachegrind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcachegrind
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/hotshot2calltree
+}
+
+package_kdesdk-kioslave() {
+ pkgdesc='KDED Subversion Module'
+ depends=('kdebase-runtime' 'subversion')
+ install='kdesdk.install'
+ cd $srcdir/build/kioslave
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kmtrace() {
+ pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kmtrace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmtrace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kompare() {
+ pkgdesc='Diff/Patch Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kompare/"
+ install='kdesdk-kompare.install'
+ cd $srcdir/build/kompare
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kompare
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kpartloader() {
+ pkgdesc='A test application for KParts'
+ depends=('kdebase-runtime')
+ install='kdesdk.install'
+ cd $srcdir/build/kpartloader
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kprofilemethod() {
+ pkgdesc='Macros helping to profile'
+ cd $srcdir/build/kprofilemethod
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kspy() {
+ pkgdesc='An Object Inspector for Qt/KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kspy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kstartperf() {
+ pkgdesc='Startup time measurement tool for KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kstartperf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kuiviewer() {
+ pkgdesc='Qt Designer UI File Viewer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kuiviewer/"
+ install='kdesdk-kuiviewer.install'
+ cd $srcdir/build/kuiviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-lokalize() {
+ pkgdesc='Computer-Aided Translation System'
+ depends=('kdebase-runtime' 'kdebindings-python2')
+ url="http://kde.org/applications/development/lokalize/"
+ optdepends=('translate-toolkit: enable extra python script')
+ install='kdesdk-lokalize.install'
+ cd $srcdir/build/lokalize
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lokalize
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/lokalize/scripts/odf/xliffmerge.py
+}
+
+package_kdesdk-okteta() {
+ pkgdesc='Hex Editor'
+ depends=('kdebase-runtime')
+ replaces=('kdeutils-okteta')
+ conflicts=('kdeutils-okteta')
+ url="http://kde.org/applications/utilities/okteta/"
+ install='kdesdk-okteta.install'
+ cd $srcdir/build/okteta
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/okteta
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-poxml() {
+ pkgdesc='Translates DocBook XML files using gettext po files'
+ depends=('qt' 'antlr2')
+ cd $srcdir/build/poxml
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/poxml
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scheck() {
+ pkgdesc='An interface style to highlight accel and style guide conflicts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/scheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/kde-systemsettings-tree.py
+ sed -i 's|#! /usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/{{kdelnk2desktop,zonetab2pot}.py,kde_generate_export_header}
+}
+
+package_kdesdk-strigi-analyzer() {
+ pkgdesc='Strigi-Analyzer for KDE SDK'
+ depends=('kdelibs')
+ cd $srcdir/build/strigi-analyzer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-umbrello() {
+ pkgdesc='UML Modeller'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/umbrello/"
+ install='kdesdk-umbrello.install'
+ cd $srcdir/build/umbrello
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/umbrello
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/umbrello/headings/heading.py
+}
diff --git a/kde-unstable/kdesdk/fix-python2-path.patch b/kde-unstable/kdesdk/fix-python2-path.patch
new file mode 100644
index 000000000..720487031
--- /dev/null
+++ b/kde-unstable/kdesdk/fix-python2-path.patch
@@ -0,0 +1,32 @@
+--- kdesdk-4.5.80/lokalize/scripts/msgmerge.py~ 2010-11-24 11:22:42.120000002 +0100
++++ kdesdk-4.5.80/lokalize/scripts/msgmerge.py 2010-11-24 11:22:42.146666670 +0100
+@@ -114,7 +114,7 @@
+ print >>sys.stderr, "Execution failed:", e
+
+ cmd='%s/odf/xliffmerge.py -i %s -t %s -o %s' % (ourPath,xliffpathname,xlifftemplatepathname,xliffpathname)
+- if os.name!='nt': cmd='python '+cmd
++ if os.name!='nt': cmd='python2 '+cmd
+ else: cmd=cmd.replace('/','\\')
+ os.system(cmd)
+
+--- kdesdk-4.5.80/lokalize/scripts/xliff2odf.py~ 2010-11-24 11:24:10.853333336 +0100
++++ kdesdk-4.5.80/lokalize/scripts/xliff2odf.py 2010-11-24 11:24:10.883333336 +0100
+@@ -42,7 +42,7 @@
+ xliff2odf.convertxliff(xliffinput, translatedodfpathname, odf)
+
+ ourpath=([p for p in sys.path if os.path.exists(p+'/xliff2odf.py')]+[''])[0]
+- os.system('python "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
++ os.system('python2 "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
+
+ try: convert()
+ except: print 'error occured'
+--- kdesdk-4.5.80/scripts/svn2log.sh~ 2010-11-24 11:46:24.863333337 +0100
++++ kdesdk-4.5.80/scripts/svn2log.sh 2010-11-24 11:46:24.896666669 +0100
+@@ -17,6 +17,6 @@
+ svn cat svn://anonsvn.kde.org/home/kde/trunk/kde-common/accounts > /tmp/accounts.$PPID
+
+ echo "Creating changelog...";
+-svn log -v --xml $1 | python $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
++svn log -v --xml $1 | python2 $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
+
+ rm /tmp/accounts.$PPID \ No newline at end of file
diff --git a/kde-unstable/kdesdk/kdesdk-cervisia.install b/kde-unstable/kdesdk/kdesdk-cervisia.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-cervisia.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kcachegrind.install b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kompare.install b/kde-unstable/kdesdk/kdesdk-kompare.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kompare.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kuiviewer.install b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-lokalize.install b/kde-unstable/kdesdk/kdesdk-lokalize.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-lokalize.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-okteta.install b/kde-unstable/kdesdk/kdesdk-okteta.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-okteta.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-umbrello.install b/kde-unstable/kdesdk/kdesdk-umbrello.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-umbrello.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk.install b/kde-unstable/kdesdk/kdesdk.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdetoys/PKGBUILD b/kde-unstable/kdetoys/PKGBUILD
new file mode 100644
index 000000000..882107a87
--- /dev/null
+++ b/kde-unstable/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 160161 2012-05-29 23:08:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('dab1f82bb98ee92b77be3e600c8e4005a0579b38')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdetoys-amor() {
+ pkgdesc='On-Screen Creature'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/amor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/amor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-kteatime() {
+ pkgdesc='Tea Cooker'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/kteatime
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kteatime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-ktux() {
+ pkgdesc='KTux'
+ depends=('kdebase-workspace' )
+ install='kdetoys.install'
+ cd $srcdir/build/ktux
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdetoys/kdetoys.install b/kde-unstable/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdetoys/kdetoys.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-filelight/PKGBUILD b/kde-unstable/kdeutils-filelight/PKGBUILD
new file mode 100644
index 000000000..5a3141933
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 160163 2012-05-29 23:08:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-filelight
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='View disk usage information'
+url='http://kde.org/applications/utilities/filelight'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('filelight')
+conflicts=('filelight')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/filelight-${pkgver}.tar.xz")
+sha1sums=('a21fff43422eba68c687ca41003e29ed7229cffc')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../filelight-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-filelight/kdeutils-filelight.install b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcalc/PKGBUILD b/kde-unstable/kdeutils-kcalc/PKGBUILD
new file mode 100644
index 000000000..235b3acfe
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160164 2012-05-29 23:09:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcalc
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Scientific Calculator'
+url='http://kde.org/applications/utilities/kcalc/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcalc-${pkgver}.tar.xz")
+sha1sums=('bff210b459668cbb47d22edf66c002dd3d31988c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcalc-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcharselect/PKGBUILD b/kde-unstable/kdeutils-kcharselect/PKGBUILD
new file mode 100644
index 000000000..79730c9d7
--- /dev/null
+++ b/kde-unstable/kdeutils-kcharselect/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160165 2012-05-29 23:09:41Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcharselect
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Character Selector'
+url="http://kde.org/applications/utilities/kcharselect/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/kcharselect-${pkgver}.tar.xz")
+sha1sums=('1c990336dd9c1af8df12f5a71a59e552b9ac6448')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcharselect-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/PKGBUILD b/kde-unstable/kdeutils-kdf/PKGBUILD
new file mode 100644
index 000000000..40b8e73b4
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160166 2012-05-29 23:10:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kdf
+pkgver=4.8.80
+pkgrel=1
+url="http://kde.org/applications/system/kdiskfree/"
+arch=('i686' 'x86_64')
+pkgdesc='View Disk Usage'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kdf-${pkgver}.tar.xz")
+sha1sums=('985c810ba4c8a266b289de6e0935c28c47cdd41f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kdf-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/kdeutils-kdf.install b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/PKGBUILD b/kde-unstable/kdeutils-kfloppy/PKGBUILD
new file mode 100644
index 000000000..d9acf610c
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160167 2012-05-29 23:10:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kfloppy
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Floppy Formatter'
+url='http://kde.org/applications/utilities/kfloppy/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kfloppy-${pkgver}.tar.xz")
+sha1sums=('2c1db0970b2b00c12180a9abfdbef558780d9e64')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kfloppy-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kgpg/PKGBUILD b/kde-unstable/kdeutils-kgpg/PKGBUILD
new file mode 100644
index 000000000..e8b3a2631
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160168 2012-05-29 23:10:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kgpg
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='A GnuPG frontend'
+url='http://kde.org/applications/utilities/kgpg/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'kdepimlibs' 'kde-agent')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgpg-${pkgver}.tar.xz")
+sha1sums=('08d13af5cbc44547b96087cbbcbeae249fd6fdc6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgpg-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/PKGBUILD b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
new file mode 100644
index 000000000..02d38b463
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kremotecontrol
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Configure your remote controls for use with applications'
+url='http://kde.org/applications/utilities/kremotecontrol/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-workspace')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('kdeutils-kdelirc')
+conflicts=('kdeutils-kdelirc')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kremotecontrol-${pkgver}.tar.xz")
+sha1sums=('4a29cb8461e8ef3f5a145116112b2c013d14804c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kremotecontrol-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-ktimer/PKGBUILD b/kde-unstable/kdeutils-ktimer/PKGBUILD
new file mode 100644
index 000000000..38ea7c24f
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160170 2012-05-29 23:11:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-ktimer
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Countdown Launcher'
+url='http://kde.org/applications/utilities/ktimer/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktimer-${pkgver}.tar.xz")
+sha1sums=('dd5da011a51b93b9aceaa9372ce1a598dfb0bbf5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktimer-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kwallet/PKGBUILD b/kde-unstable/kdeutils-kwallet/PKGBUILD
new file mode 100644
index 000000000..f84e4f91c
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160171 2012-05-29 23:12:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kwallet
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='Wallet Management Tool'
+url='http://kde.org/applications/system/kwalletmanager/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwallet-${pkgver}.tar.xz")
+sha1sums=('9a10b4c1fa41cc842ca47889a11a107430994f55')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwallet-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-superkaramba/PKGBUILD b/kde-unstable/kdeutils-superkaramba/PKGBUILD
new file mode 100644
index 000000000..d01c0ad6c
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160173 2012-05-29 23:12:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-superkaramba
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='An engine for cool desktop eyecandy'
+url='http://kde.org/applications/utilities/superkaramba/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/superkaramba-${pkgver}.tar.xz")
+sha1sums=('52bc79af7791641aee7988bacdbcd63c589ce40a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../superkaramba-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-sweeper/PKGBUILD b/kde-unstable/kdeutils-sweeper/PKGBUILD
new file mode 100644
index 000000000..6d99e6143
--- /dev/null
+++ b/kde-unstable/kdeutils-sweeper/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160174 2012-05-29 23:13:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-sweeper
+pkgver=4.8.80
+pkgrel=1
+pkgdesc='System Cleaner'
+url='http://kde.org/applications/utilities/sweeper'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/sweeper-${pkgver}.tar.xz")
+sha1sums=('2c36c5e3f32fdd9b83fcd908b831a5df5a23e619')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../sweeper-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/PKGBUILD b/kde-unstable/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..09bda7df8
--- /dev/null
+++ b/kde-unstable/kdewebdev/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 160175 2012-05-29 23:13:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.8.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepimlibs' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz")
+sha1sums=('3190023d96038eb58dbaa59a25d5688f07e11559')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdewebdev-kfilereplace() {
+ pkgdesc='Search & Replace Tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kfilereplace/"
+ install='kdewebdev.install'
+ cd $srcdir/build/kfilereplace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfilereplace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kimagemapeditor() {
+ pkgdesc='HTML Image Map Editor'
+ depends=('kdebase-runtime')
+ url="http://www.kde.org/applications/development/kimagemapeditor/"
+ install='kdewebdev-kimagemapeditor.install'
+ cd $srcdir/build/kimagemapeditor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kimagemapeditor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-klinkstatus() {
+ pkgdesc='Link Checker'
+ depends=('kdebase-runtime' 'kdepimlibs' 'tidyhtml')
+ url="http://www.kde.org/applications/development/klinkstatus/"
+ install='kdewebdev.install'
+ cd $srcdir/build/klinkstatus
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klinkstatus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kommander() {
+ pkgdesc='Executor for Kommander dialogs'
+ depends=('kdebase-runtime')
+ url="http://www.kde.org/applications/development/kommander/"
+ cd $srcdir/build/kommander
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev.install b/kde-unstable/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkcddb/PKGBUILD b/kde-unstable/libkcddb/PKGBUILD
new file mode 100644
index 000000000..6a90c4c59
--- /dev/null
+++ b/kde-unstable/libkcddb/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160104 2012-05-29 22:33:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkcddb
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="KDE CDDB library"
+url='https://projects.kde.org/projects/kde/kdemultimedia/libkcddb'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdemultimedia-kioslave')
+conflicts=('kdemultimedia-kioslave')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('7741b061d9dcb0cb8edc73c140943ca52ce8e74e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkcompactdisc/PKGBUILD b/kde-unstable/libkcompactdisc/PKGBUILD
new file mode 100644
index 000000000..112e1689c
--- /dev/null
+++ b/kde-unstable/libkcompactdisc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160182 2012-05-30 06:34:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkcompactdisc
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A library for interfacing with CDs"
+url='https://projects.kde.org/projects/kde/kdemultimedia/libkcompactdisc'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdemultimedia-kioslave')
+conflicts=('kdemultimedia-kioslave')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('52c984a187195e92436b070cee186977c5dee977')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdcraw/PKGBUILD b/kde-unstable/libkdcraw/PKGBUILD
new file mode 100644
index 000000000..91be2c916
--- /dev/null
+++ b/kde-unstable/libkdcraw/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160099 2012-05-29 22:31:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdcraw
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A C++ interface used to decode RAW picture"
+url="https://projects.kde.org/projects/kde/kdegraphics/libs/libkdcraw"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'lcms')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('d2b2e3ab0ca1a1ca58e73de0595ea3c3ebcb56c6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdcraw/libkdcraw.install b/kde-unstable/libkdcraw/libkdcraw.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdcraw/libkdcraw.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkdeedu/PKGBUILD b/kde-unstable/libkdeedu/PKGBUILD
new file mode 100644
index 000000000..f6114daec
--- /dev/null
+++ b/kde-unstable/libkdeedu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160097 2012-05-29 22:29:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdeedu
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Libraries used by KDE Education applications"
+url="https://projects.kde.org/projects/kde/kdeedu/libkdeedu"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+replaces=('kdeedu-libkdeedu' 'kdeedu-data')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('d260aa9679ed0d9a7711b4e9311d4c8cb7e9c17d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdeedu/libkdeedu.install b/kde-unstable/libkdeedu/libkdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdeedu/libkdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkexiv2/PKGBUILD b/kde-unstable/libkexiv2/PKGBUILD
new file mode 100644
index 000000000..258732e1b
--- /dev/null
+++ b/kde-unstable/libkexiv2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 160100 2012-05-29 22:31:35Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkexiv2
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="A library to manipulate pictures metadata"
+url="https://projects.kde.org/projects/kde/kdegraphics/libs/libkexiv2"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('7693b3454d6dd0a77e01df6f160bb7721605db73')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkgoogle/PKGBUILD b/kde-unstable/libkgoogle/PKGBUILD
index 1748fc7b6..5ec2ef8cb 100644
--- a/kde-unstable/libkgoogle/PKGBUILD
+++ b/kde-unstable/libkgoogle/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 159612 2012-05-25 20:44:23Z andrea $
+# $Id: PKGBUILD 160216 2012-05-30 23:49:23Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=libkgoogle
diff --git a/kde-unstable/libkipi/PKGBUILD b/kde-unstable/libkipi/PKGBUILD
new file mode 100644
index 000000000..5b43dece2
--- /dev/null
+++ b/kde-unstable/libkipi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 145371 2011-12-22 07:58:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkipi
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="An interface to use kipi-plugins from a KDE application"
+url="https://projects.kde.org/projects/kde/kdegraphics/libs/libkipi"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('0e2335ab38e65fa33a93fed1d8f35c6984b20c30')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkipi/libkipi.install b/kde-unstable/libkipi/libkipi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkipi/libkipi.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libksane/PKGBUILD b/kde-unstable/libksane/PKGBUILD
new file mode 100644
index 000000000..40ba16940
--- /dev/null
+++ b/kde-unstable/libksane/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 160102 2012-05-29 22:32:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libksane
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="An image scanning library"
+url="https://projects.kde.org/projects/kde/kdegraphics/libs/libksane"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'sane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('f5377bce072e80a122c5e2371076463f70d9a7f1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libksane/libksane.install b/kde-unstable/libksane/libksane.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libksane/libksane.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/nepomuk-core/PKGBUILD b/kde-unstable/nepomuk-core/PKGBUILD
new file mode 100644
index 000000000..066760b54
--- /dev/null
+++ b/kde-unstable/nepomuk-core/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 160079 2012-05-29 22:12:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=nepomuk-core
+pkgver=4.8.80
+pkgrel=1
+pkgdesc="Contains the central Nepomuk services like file indexing, file system monitoring, query, storage, client libraries"
+url="https://projects.kde.org/projects/kde/kdelibs/nepomuk-core"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4' 'doxygen')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('6d1a84f51018476b2fe05b47c265bd6d182335aa')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Fix the python shebang
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/nepomuk-simpleresource-rcgen
+
+ # Fix conflict
+ rm "${pkgdir}"/usr/bin/nepomuk-rcgen
+}
diff --git a/kde-unstable/soprano/PKGBUILD b/kde-unstable/soprano/PKGBUILD
index 77b8d6fb9..8f30b6c0c 100644
--- a/kde-unstable/soprano/PKGBUILD
+++ b/kde-unstable/soprano/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 159614 2012-05-25 21:30:09Z andrea $
+# $Id: PKGBUILD 160186 2012-05-30 08:17:09Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgname=soprano
-pkgver=2.7.6.git20120525
+pkgver=2.7.56
pkgrel=1
pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data'
arch=('i686' 'x86_64')
@@ -11,9 +11,8 @@ url='http://soprano.sourceforge.net/'
license=('GPL' 'LGPL')
depends=('qt' 'redland-storage-virtuoso' 'libiodbc' 'virtuoso')
makedepends=('cmake' 'openjdk6' 'doxygen')
-source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz")
-#source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
-md5sums=('fe2e81a54ed8e22e06e0bf4b394b4960')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('999781170ebcf3e1494127f2eda7aa00')
build() {
cd "${srcdir}"
@@ -21,7 +20,7 @@ build() {
cd build
. /etc/profile.d/openjdk6.sh
# we need the rpath
- cmake ../${pkgname}-${pkgver} \
+ cmake ../${pkgname}-${pkgver}-beta1 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
diff --git a/kernels/aufs3-libre/PKGBUILD b/kernels/aufs3-libre/PKGBUILD
index 6c593e2c2..b27b14117 100644
--- a/kernels/aufs3-libre/PKGBUILD
+++ b/kernels/aufs3-libre/PKGBUILD
@@ -4,14 +4,14 @@
# Contributor (Parabola): Márcio Silva <coadde@adinet.com.uy>
pkgname=aufs3-libre
-pkgver=3.2_20120109
-pkgrel=2
+pkgver=3.3_20120430
+pkgrel=1
# Set to whatever the tree of your aufs-libre-friendly kernel is, and set the right dependency.
#_kernver=${pkgver%_*}-LIBRE
#depends=('aufs_friendly')
-_kernver=3.2-LIBRE-AUFS_FRIENDLY
+_kernver=3.3-LIBRE-AUFS_FRIENDLY
depends=('linux-libre-aufs_friendly' 'linux-libre-aufs_friendly-headers')
pkgdesc="Another UnionFS implementation"
@@ -19,12 +19,12 @@ arch=('i686' 'x86_64')
url="http://aufs.sourceforge.net/"
license=('GPL2')
replaces=('aufs' 'aufs2' 'aufs3')
-conflicts=('aufs3')
+conflicts=('aufs2' 'aufs3')
provides=("aufs3=$pkgver")
install=aufs3-libre.install
source=("http://calimeroteknik.free.fr/src/aufs3-${pkgver}.tar.gz")
options=('!makeflags' '!strip')
-md5sums=('35dd55adc3f403f532ebe6d8fb354c77')
+md5sums=('70ccfcf9914ce46ba7cbab42444b6ce8')
build() {
cd "${srcdir}/aufs3-${pkgver}"
@@ -52,6 +52,7 @@ build() {
# build, sed fixes are from gentoo portage build
sed -i "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" Makefile
sed -i "s:__user::g" include/linux/aufs_type.h
+ ln -s "/usr/src/linux-$(</lib/modules/extramodules-${_kernver}/version)/include/linux/mount.h" fs/mount.h
make KDIR="/usr/src/linux-$(</lib/modules/extramodules-${_kernver}/version)"
}
diff --git a/kernels/aufs3-libre/aufs3-libre.install b/kernels/aufs3-libre/aufs3-libre.install
index e08b76b54..fc48ad506 100644
--- a/kernels/aufs3-libre/aufs3-libre.install
+++ b/kernels/aufs3-libre/aufs3-libre.install
@@ -1,5 +1,5 @@
post_install() {
- KERNEL_VERSION=3.2-LIBRE-AUFS_FRIENDLY
+ KERNEL_VERSION=3.3-LIBRE-AUFS_FRIENDLY
depmod $(cat /lib/modules/extramodules-$KERNEL_VERSION/version)
}
diff --git a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch b/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch
deleted file mode 100644
index 6a83fef1c..000000000
--- a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open. That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler. If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve. So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd@ut.ee>
-Cc: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- fs/proc/base.c | 145 +++++++++++++++-----------------------------------------
- 1 files changed, 39 insertions(+), 106 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 5485a53..662ddf2 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path)
- return result;
- }
-
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
--
-- mm = get_task_mm(task);
-- if (!mm)
-- return ERR_PTR(-EINVAL);
--
-- /*
-- * A task can always look at itself, in case it chooses
-- * to use system calls instead of load instructions.
-- */
-- if (task == current)
-- return mm;
--
-- /*
-- * If current is actively ptrace'ing, and would also be
-- * permitted to freshly attach with ptrace now, permit it.
-- */
-- if (task_is_stopped_or_traced(task)) {
-- int match;
-- rcu_read_lock();
-- match = (ptrace_parent(task) == current);
-- rcu_read_unlock();
-- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
-- return mm;
-- }
--
-- /*
-- * No one else is allowed.
-- */
-- mmput(mm);
-- return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
-- int err;
--
-- /*
-- * Avoid racing if task exec's as we might get a new mm but validate
-- * against old credentials.
-- */
-- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
-- if (err)
-- return ERR_PTR(err);
--
-- mm = __check_mem_permission(task);
-- mutex_unlock(&task->signal->cred_guard_mutex);
--
-- return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- struct mm_struct *mm;
- int err;
-@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
-
- mm = get_task_mm(task);
- if (mm && mm != current->mm &&
-- !ptrace_may_access(task, PTRACE_MODE_READ)) {
-+ !ptrace_may_access(task, mode)) {
- mmput(mm);
- mm = ERR_PTR(-EACCES);
- }
-@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
- return mm;
- }
-
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+ return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- int res = 0;
-@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = {
-
- static int mem_open(struct inode* inode, struct file* file)
- {
-- file->private_data = (void*)((long)current->self_exec_id);
-+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ struct mm_struct *mm;
-+
-+ if (!task)
-+ return -ESRCH;
-+
-+ mm = mm_access(task, PTRACE_MODE_ATTACH);
-+ put_task_struct(task);
-+
-+ if (IS_ERR(mm))
-+ return PTR_ERR(mm);
-+
- /* OK to pass negative loff_t, we can catch out-of-range */
- file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+ file->private_data = mm;
-+
- return 0;
- }
-
- static ssize_t mem_read(struct file * file, char __user * buf,
- size_t count, loff_t *ppos)
- {
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ int ret;
- char *page;
- unsigned long src = *ppos;
-- int ret = -ESRCH;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- ret = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out;
--
-- mm = check_mem_permission(task);
-- ret = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- ret = -EIO;
--
-- if (file->private_data != (void*)((long)current->self_exec_id))
-- goto out_put;
-+ return -ENOMEM;
-
- ret = 0;
-
-@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
- }
- *ppos = src;
-
--out_put:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out:
-- put_task_struct(task);
--out_no_task:
- return ret;
- }
-
-@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- {
- int copied;
- char *page;
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- unsigned long dst = *ppos;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- copied = -ESRCH;
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- copied = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out_task;
--
-- mm = check_mem_permission(task);
-- copied = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- copied = -EIO;
-- if (file->private_data != (void *)((long)current->self_exec_id))
-- goto out_mm;
-+ return -ENOMEM;
-
- copied = 0;
- while (count > 0) {
-@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- }
- *ppos = dst;
-
--out_mm:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out_task:
-- put_task_struct(task);
--out_no_task:
- return copied;
- }
-
-@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- return file->f_pos;
- }
-
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+ struct mm_struct *mm = file->private_data;
-+
-+ mmput(mm);
-+ return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- .llseek = mem_lseek,
- .read = mem_read,
- .write = mem_write,
- .open = mem_open,
-+ .release = mem_release,
- };
-
- static ssize_t environ_read(struct file *file, char __user *buf,
---
-1.7.6.5
-
diff --git a/kernels/linux-libre-aufs_friendly/PKGBUILD b/kernels/linux-libre-aufs_friendly/PKGBUILD
index 41ccc96bb..8c82d07cd 100644
--- a/kernels/linux-libre-aufs_friendly/PKGBUILD
+++ b/kernels/linux-libre-aufs_friendly/PKGBUILD
@@ -8,29 +8,22 @@
# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
# Contributor (Parabola): Márcio Silva <coadde@adinet.com.uy>
-# In order to just get linux-libre as it used to be, with the exported symbols for AUFS-libre:
-
-# Uncomment these lines
-# pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -LIBRE kernel
-# pkgname=linux-custom # Build kernel with a different name
-# pkgbase=linux-libre
-
-# Comment this line
+pkgbase=linux-libre-aufs_friendly
pkgname=('linux-libre-aufs_friendly' 'linux-libre-aufs_friendly-headers') # Build stock -LIBRE kernel with AUFS-libre support
-
+# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-AUFS_FRIENDLY
-_basekernel=3.2
-_sublevel=9
+_basekernel=3.3
+_sublevel=4
pkgver=${_basekernel}.${_sublevel}
-_lxopkgver=${_basekernel}.7 # nearly always the same as pkgver
-pkgrel=2
+_lxopkgver=${_basekernel}.4 # nearly always the same as pkgver
+pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
-source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-libre/linux-${_basekernel}-libre.tar.xz"
- "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz"
+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"
# the main kernel config files
'config.i686' 'config.x86_64'
# patches exporting symbols for the aufs module (reason for this package)
@@ -42,24 +35,22 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-li
'boot-logo.patch'
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
- 'i915-gpu-finish.patch'
'ext4-options.patch'
- "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-libre-lemote_0lxo_mipsel.tar.bz2")
-md5sums=('27c641c4f6785fc647cdd3e44963a55c'
- '8e601878ccdd37111cc84500ebd81387'
- '1e5dd328dbf4e68072a22c05c18813c7'
- '6f9df3879268e0f07f535db2b6197475'
- '44a5461daf301a46adf20c475069aaa7'
- '9c1d9e47a0991b9d3d1f1ede01171c04'
+ "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
+md5sums=('5487da14ca81715a469c7594d39722fa'
+ 'ce7d959667b9f158b1fb814b5806950a'
+ '9824d09d2a659db17a6468e27ccc29ad'
+ '2ffd4a4dbd5dbc16c378befd6917b7f5'
+ '753713a00d3150ee1e03f33d97326100'
+ 'f78455bd6fabaae14bc98d83baf8bfa9'
'318ce8b3b64e4923a840817b91035753'
'2967cecc3af9f954ccc822fd63dca6ff'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
- '4cd79aa147825837dc8bc9f6b736c0a0'
- 'f36222e7ce20c8e4dc27376f9be60f6c'
- '690e6201d219638544d2fba3996dc822')
+ 'bb7fd1aa23016c8057046b84fd4eb528'
+ 'c22b03a6351698b07cd08767d8ddeacd')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -70,16 +61,12 @@ build() {
cd "${srcdir}/linux-${_basekernel}"
if [ "${_basekernel}" != "${pkgver}" ]; then
- patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${pkgver}-libre"
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
fi
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
- # fix FS#27883
- # drm/i915: Only clear the GPU domains upon a successful finish
- patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
-
# Some chips detect a ghost TV output
# mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
# Arch Linux bug report: FS#19234
@@ -89,19 +76,20 @@ build() {
# needed.
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
+ # Patch submitted upstream, waiting for inclusion:
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- msg 'AUFS3-libre patches'
- patch -p1 -i "${srcdir}/aufs3-libre-base.patch"
- patch -p1 -i "${srcdir}/aufs3-libre-standalone.patch"
-
# fix ext4 module to mount ext3/2 correct
# https://bugs.archlinux.org/task/28653
patch -Np1 -i "${srcdir}/ext4-options.patch"
+ msg 'AUFS3-libre patches'
+ patch -p1 -i "${srcdir}/aufs3-libre-base.patch"
+ patch -p1 -i "${srcdir}/aufs3-libre-standalone.patch"
+
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
@@ -117,7 +105,7 @@ build() {
sed -ri -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
-e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
-e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \
- -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"-LIBRE\"|g" \
+ -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" \
-e "s;(CONFIG_USB(_COMMON|_EHCI_HCD|_OHCI_HCD|_STORAGE.*|_UAS)?)=.*;\1=y;g" \
./.config
else
@@ -261,7 +249,7 @@ package_linux-libre-aufs_friendly-headers() {
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
for i in acpi asm-generic config crypto drm generated linux math-emu \
- media net pcmcia scsi sound trace video xen; do
+ media mtd net pcmcia scsi sound trace video xen; do
cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
done
diff --git a/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch b/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch
index ac30c8db9..99a63d024 100644
--- a/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch
+++ b/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch
@@ -1,10 +1,10 @@
-aufs3.2 base patch
+aufs3.3 base patch
diff --git a/fs/namei.c b/fs/namei.c
-index 5008f01..4cc94cf 100644
+index 46ea9cc..f2dcf8d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
-@@ -1753,7 +1753,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
+@@ -1781,7 +1781,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
* needs parent already locked. Doesn't follow mounts.
* SMP-safe.
*/
@@ -14,10 +14,10 @@ index 5008f01..4cc94cf 100644
return __lookup_hash(&nd->last, nd->path.dentry, nd);
}
diff --git a/fs/splice.c b/fs/splice.c
-index fa2defa..e3569b0 100644
+index 1ec0493..c599f73 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
@@ -28,7 +28,7 @@ index fa2defa..e3569b0 100644
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
-@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/*
* Attempt to initiate a splice from a file to a pipe.
*/
diff --git a/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch b/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch
index ae897f388..584d592ef 100644
--- a/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch
+++ b/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch
@@ -1,7 +1,7 @@
-aufs3.2 standalone patch
+aufs3.3 standalone patch
diff --git a/fs/file_table.c b/fs/file_table.c
-index c322794..2aad244 100644
+index 20002e3..6d792ad 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file)
@@ -14,10 +14,10 @@ index c322794..2aad244 100644
/*
diff --git a/fs/inode.c b/fs/inode.c
-index ee4e66b..728042b 100644
+index 83ab215..45242cd 100644
--- a/fs/inode.c
+++ b/fs/inode.c
-@@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
+@@ -66,6 +66,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
__cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
@@ -26,10 +26,10 @@ index ee4e66b..728042b 100644
/*
* Empty aops. Can be used for the cases where the user does not
diff --git a/fs/namei.c b/fs/namei.c
-index 4cc94cf..af19e30 100644
+index f2dcf8d..bcccefd 100644
--- a/fs/namei.c
+++ b/fs/namei.c
-@@ -1757,6 +1757,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
+@@ -1785,6 +1785,7 @@ struct dentry *lookup_hash(struct nameidata *nd)
{
return __lookup_hash(&nd->last, nd->path.dentry, nd);
}
@@ -38,16 +38,16 @@ index 4cc94cf..af19e30 100644
/**
* lookup_one_len - filesystem helper to lookup single pathname component
diff --git a/fs/namespace.c b/fs/namespace.c
-index cfc6d44..173d15a 100644
+index e608199..38fcc2e 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -1506,6 +1506,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
+EXPORT_SYMBOL(iterate_mounts);
- static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
+ static void cleanup_group_ids(struct mount *mnt, struct mount *end)
{
diff --git a/fs/notify/group.c b/fs/notify/group.c
index 63fc294..6f4adca 100644
@@ -75,7 +75,7 @@ index 63fc294..6f4adca 100644
}
+EXPORT_SYMBOL(fsnotify_alloc_group);
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
-index e14587d..be6533b 100644
+index f104d56..54f36db 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
@@ -86,7 +86,7 @@ index e14587d..be6533b 100644
/*
* Any time a mark is getting freed we end up here.
-@@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
+@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
if (unlikely(atomic_dec_and_test(&group->num_marks)))
fsnotify_final_destroy_group(group);
}
@@ -94,7 +94,7 @@ index e14587d..be6533b 100644
void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
{
-@@ -276,6 +278,7 @@ err:
+@@ -278,6 +280,7 @@ err:
return ret;
}
@@ -102,7 +102,7 @@ index e14587d..be6533b 100644
/*
* clear any marks in a group in which mark->flags & flags is true
-@@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
@@ -111,7 +111,7 @@ index e14587d..be6533b 100644
static int fsnotify_mark_destroy(void *ignored)
{
diff --git a/fs/open.c b/fs/open.c
-index 22c41b5..33b4033 100644
+index 77becc0..f634f02 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
@@ -123,10 +123,10 @@ index 22c41b5..33b4033 100644
static long do_sys_truncate(const char __user *pathname, loff_t length)
{
diff --git a/fs/splice.c b/fs/splice.c
-index e3569b0..9dc07b7 100644
+index c599f73..00303ba 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
@@ -134,7 +134,7 @@ index e3569b0..9dc07b7 100644
/*
* Attempt to initiate a splice from a file to a pipe.
-@@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+@@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
@@ -143,16 +143,16 @@ index e3569b0..9dc07b7 100644
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/security/commoncap.c b/security/commoncap.c
-index ee4f848..611fd70 100644
+index 7ce191e..19a95be 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
-@@ -975,3 +975,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+@@ -965,3 +965,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
}
return ret;
}
+EXPORT_SYMBOL(cap_file_mmap);
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index 4450fbe..bc94175 100644
+index 8b5b5d8..911850c 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -7,6 +7,7 @@
@@ -163,7 +163,7 @@ index 4450fbe..bc94175 100644
#include <linux/list.h>
#include <linux/uaccess.h>
#include <linux/seq_file.h>
-@@ -500,6 +501,7 @@ found:
+@@ -501,6 +502,7 @@ found:
return -EPERM;
}
@@ -172,10 +172,10 @@ index 4450fbe..bc94175 100644
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff --git a/security/security.c b/security/security.c
-index e2f684a..892000c 100644
+index d754249..1aa6154 100644
--- a/security/security.c
+++ b/security/security.c
-@@ -411,6 +411,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+@@ -392,6 +392,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
return 0;
return security_ops->path_rmdir(dir, dentry);
}
@@ -183,7 +183,7 @@ index e2f684a..892000c 100644
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
-@@ -427,6 +428,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+@@ -408,6 +409,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
return 0;
return security_ops->path_symlink(dir, dentry, old_name);
}
@@ -191,7 +191,7 @@ index e2f684a..892000c 100644
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
-@@ -435,6 +437,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+@@ -416,6 +418,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
return 0;
return security_ops->path_link(old_dentry, new_dir, new_dentry);
}
@@ -199,23 +199,23 @@ index e2f684a..892000c 100644
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry)
-@@ -453,6 +456,7 @@ int security_path_truncate(struct path *path)
+@@ -434,6 +437,7 @@ int security_path_truncate(struct path *path)
return 0;
return security_ops->path_truncate(path);
}
+EXPORT_SYMBOL(security_path_truncate);
- int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
- mode_t mode)
-@@ -461,6 +465,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ int security_path_chmod(struct path *path, umode_t mode)
+ {
+@@ -441,6 +445,7 @@ int security_path_chmod(struct path *path, umode_t mode)
return 0;
- return security_ops->path_chmod(dentry, mnt, mode);
+ return security_ops->path_chmod(path, mode);
}
+EXPORT_SYMBOL(security_path_chmod);
int security_path_chown(struct path *path, uid_t uid, gid_t gid)
{
-@@ -468,6 +473,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+@@ -448,6 +453,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
return 0;
return security_ops->path_chown(path, uid, gid);
}
@@ -223,7 +223,7 @@ index e2f684a..892000c 100644
int security_path_chroot(struct path *path)
{
-@@ -544,6 +550,7 @@ int security_inode_readlink(struct dentry *dentry)
+@@ -524,6 +530,7 @@ int security_inode_readlink(struct dentry *dentry)
return 0;
return security_ops->inode_readlink(dentry);
}
@@ -231,7 +231,7 @@ index e2f684a..892000c 100644
int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
{
-@@ -558,6 +565,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -538,6 +545,7 @@ int security_inode_permission(struct inode *inode, int mask)
return 0;
return security_ops->inode_permission(inode, mask);
}
@@ -239,7 +239,7 @@ index e2f684a..892000c 100644
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
-@@ -673,6 +681,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -653,6 +661,7 @@ int security_file_permission(struct file *file, int mask)
return fsnotify_perm(file, mask);
}
@@ -247,7 +247,7 @@ index e2f684a..892000c 100644
int security_file_alloc(struct file *file)
{
-@@ -700,6 +709,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
+@@ -680,6 +689,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
return ret;
return ima_file_mmap(file, prot);
}
diff --git a/kernels/linux-libre-aufs_friendly/config.i686 b/kernels/linux-libre-aufs_friendly/config.i686
index 220956bb0..7ef304fb7 100644
--- a/kernels/linux-libre-aufs_friendly/config.i686
+++ b/kernels/linux-libre-aufs_friendly/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.2.6-1 Kernel Configuration
+# Linux/i386 3.3.3-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -17,11 +17,9 @@ CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_GPIO=y
@@ -40,7 +38,6 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
@@ -89,6 +86,7 @@ CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
#
@@ -99,7 +97,6 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
@@ -111,6 +108,7 @@ CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
CONFIG_IKCONFIG=y
@@ -128,6 +126,7 @@ CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
@@ -135,6 +134,7 @@ CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
@@ -194,6 +194,7 @@ CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=m
# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -213,6 +214,9 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
#
# GCOV-based kernel profiling
@@ -237,6 +241,29 @@ CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_THROTTLING=y
#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+
+#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
@@ -283,6 +310,7 @@ CONFIG_FREEZER=y
#
# Processor type and features
#
+CONFIG_ZONE_DMA=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
@@ -335,8 +363,6 @@ CONFIG_M686=y
CONFIG_X86_GENERIC=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
-CONFIG_CMPXCHG_LOCAL=y
-CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
# CONFIG_X86_PPRO_FENCE is not set
@@ -407,6 +433,8 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_COMPACTION=y
@@ -422,8 +450,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
-CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -438,6 +466,7 @@ CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
+CONFIG_EFI_STUB=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
@@ -520,17 +549,17 @@ CONFIG_APM_DO_ENABLE=y
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
@@ -606,7 +635,7 @@ CONFIG_OLPC_XO1_PM=y
CONFIG_OLPC_XO1_RTC=y
CONFIG_OLPC_XO1_SCI=y
CONFIG_OLPC_XO15_SCI=y
-CONFIG_ALIX=y
+# CONFIG_ALIX is not set
CONFIG_AMD_NB=y
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
@@ -654,6 +683,7 @@ CONFIG_RAPIDIO_TSI500=y
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
CONFIG_BINFMT_AOUT=m
@@ -667,6 +697,7 @@ CONFIG_NET=y
#
CONFIG_PACKET=y
CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
@@ -705,6 +736,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
@@ -756,12 +788,15 @@ CONFIG_BRIDGE_NETFILTER=y
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
@@ -829,6 +864,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
@@ -840,6 +876,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
@@ -900,6 +937,11 @@ CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
@@ -911,11 +953,11 @@ CONFIG_IP_VS_PE_SIP=m
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
@@ -962,6 +1004,7 @@ CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_LOG=m
@@ -1112,16 +1155,42 @@ CONFIG_NET_SCH_FIFO=y
CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
+CONFIG_NETPRIO_CGROUP=m
+CONFIG_BQL=y
#
# Network testing
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
# CONFIG_CAN is not set
CONFIG_IRDA=m
@@ -1181,8 +1250,6 @@ CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_MCS_FIR=m
CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
@@ -1252,18 +1319,19 @@ CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_REGULATOR=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
CONFIG_NFC=m
CONFIG_NFC_NCI=m
+# CONFIG_NFC_LLCP is not set
#
# Near Field Communication (NFC) devices
@@ -1290,9 +1358,10 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=m
-CONFIG_REGMAP_SPI=y
+# CONFIG_DMA_SHARED_BUFFER is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
@@ -1376,9 +1445,6 @@ CONFIG_MTD_PLATRAM=m
CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
CONFIG_MTD_MTDRAM=m
@@ -1393,6 +1459,8 @@ CONFIG_MTD_BLOCK2MTD=m
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND=m
@@ -1430,6 +1498,7 @@ CONFIG_OF=y
# Device Tree and Open Firmware support
#
CONFIG_PROC_DEVICETREE=y
+# CONFIG_OF_SELFTEST is not set
CONFIG_OF_PROMTREE=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
@@ -1437,7 +1506,6 @@ CONFIG_OF_DEVICE=y
CONFIG_OF_GPIO=y
CONFIG_OF_I2C=m
CONFIG_OF_NET=y
-CONFIG_OF_SPI=y
CONFIG_OF_MDIO=m
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
@@ -1464,6 +1532,7 @@ CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
# CONFIG_CISS_SCSI_TAPE is not set
@@ -1476,6 +1545,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
CONFIG_BLK_DEV_OSD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
@@ -1490,11 +1560,13 @@ CONFIG_ATA_OVER_ETH=m
CONFIG_VIRTIO_BLK=m
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_RBD=m
+
+#
+# Misc devices
+#
CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_MISC_DEVICES=y
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
# CONFIG_IBM_ASM is not set
CONFIG_PHANTOM=m
CONFIG_INTEL_MID_PTI=m
@@ -1516,7 +1588,6 @@ CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_APDS990X=m
CONFIG_HMC6352=m
CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
# CONFIG_PCH_PHUB is not set
@@ -1528,11 +1599,9 @@ CONFIG_C2PORT_DURAMAR_2150=m
# EEPROM support
#
CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1891,6 +1960,9 @@ CONFIG_MII=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKEHARD=m
CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_NETCONSOLE=m
@@ -1982,6 +2054,7 @@ CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
+CONFIG_NET_CALXEDA_XGMAC=m
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
@@ -2059,12 +2132,8 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
-CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2125,6 +2194,8 @@ CONFIG_EPIC100=m
CONFIG_SMSC9420=m
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
CONFIG_STMMAC_RING=y
@@ -2257,6 +2328,7 @@ CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
CONFIG_CARL9170=m
@@ -2266,11 +2338,14 @@ CONFIG_CARL9170_WPC=y
CONFIG_ATH6KL=m
# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_BCMA=y
+# CONFIG_B43_BCMA_EXTRA is not set
CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
@@ -2292,6 +2367,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -2317,14 +2393,14 @@ CONFIG_IWLWIFI=m
#
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWLWIFI_LEGACY=m
+CONFIG_IWLWIFI_DEVICE_TESTMODE=y
+# CONFIG_IWLWIFI_P2P is not set
+CONFIG_IWLEGACY=m
#
# Debugging Options
#
-# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
-# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+# CONFIG_IWLEGACY_DEBUG is not set
CONFIG_IWL4965=m
CONFIG_IWL3945=m
CONFIG_IWM=m
@@ -2334,7 +2410,6 @@ CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_HERMES=m
@@ -2350,8 +2425,6 @@ CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-CONFIG_P54_SPI_DEFAULT_EEPROM=y
CONFIG_P54_LEDS=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
@@ -2383,13 +2456,10 @@ CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
-CONFIG_WL12XX_SDIO_TEST=m
CONFIG_WL12XX_PLATFORM_DATA=y
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
@@ -2407,6 +2477,7 @@ CONFIG_WIMAX_I2400M_SDIO=m
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
# CONFIG_WAN is not set
CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
@@ -2584,9 +2655,10 @@ CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_QT1070=m
CONFIG_KEYBOARD_QT2160=m
# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
CONFIG_KEYBOARD_MATRIX=m
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
@@ -2616,7 +2688,7 @@ CONFIG_MOUSE_INPORT=m
CONFIG_MOUSE_LOGIBM=m
CONFIG_MOUSE_PC110PAD=m
CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
+# CONFIG_MOUSE_GPIO is not set
CONFIG_MOUSE_SYNAPTICS_I2C=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
@@ -2657,17 +2729,16 @@ CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_WACOM=m
CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
CONFIG_TOUCHSCREEN_AD7879=m
CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX=m
CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
@@ -2682,13 +2753,12 @@ CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_WM9705=y
CONFIG_TOUCHSCREEN_WM9712=y
CONFIG_TOUCHSCREEN_WM9713=y
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
@@ -2701,28 +2771,27 @@ CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
-CONFIG_TOUCHSCREEN_PCAP=m
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_TPS6507X=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_GP2A=m
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
CONFIG_INPUT_WISTRON_BTNS=m
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
@@ -2736,11 +2805,8 @@ CONFIG_INPUT_UINPUT=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
-# CONFIG_INPUT_PCAP is not set
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
@@ -2810,20 +2876,16 @@ CONFIG_SERIAL_8250_DW=m
#
# Non-8250 serial port support
#
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_MAX3107=m
CONFIG_SERIAL_MFD_HSU=m
-CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
CONFIG_SERIAL_OF_PLATFORM=m
-CONFIG_SERIAL_TIMBERDALE=m
+# CONFIG_SERIAL_TIMBERDALE is not set
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_IFX6X60=m
CONFIG_SERIAL_PCH_UART=m
CONFIG_SERIAL_XILINX_PS_UART=m
CONFIG_PRINTER=m
@@ -2876,14 +2938,7 @@ CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
+# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -2922,7 +2977,7 @@ CONFIG_I2C_SCMI=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_GPIO=m
+# CONFIG_I2C_GPIO is not set
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PCA_PLATFORM=m
@@ -2950,30 +3005,7 @@ CONFIG_SCx200_ACB=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_ALTERA=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX=m
-CONFIG_SPI_PXA2XX_PCI=y
-CONFIG_SPI_TOPCLIFF_PCH=m
-CONFIG_SPI_XILINX=m
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPI_TLE62X0=m
+# CONFIG_SPI is not set
#
# PPS support
@@ -3002,45 +3034,37 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_GENERIC=m
-CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_GENERIC_PLATFORM=m
-CONFIG_GPIO_IT8761E=m
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
CONFIG_GPIO_SCH=m
-CONFIG_GPIO_VX855=m
+# CONFIG_GPIO_VX855 is not set
#
# I2C GPIO expanders:
#
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_TPS65912=m
-CONFIG_GPIO_WM831X=m
-CONFIG_GPIO_ADP5588=m
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
#
# PCI GPIO expanders:
#
CONFIG_GPIO_CS5535=y
-CONFIG_GPIO_LANGWELL=y
-CONFIG_GPIO_PCH=m
-CONFIG_GPIO_ML_IOH=m
-CONFIG_GPIO_TIMBERDALE=y
-CONFIG_GPIO_RDC321X=m
+# CONFIG_GPIO_LANGWELL is not set
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
#
# SPI GPIO expanders:
#
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MCP23S08=m
-CONFIG_GPIO_MC33880=m
-CONFIG_GPIO_74X164=m
+# CONFIG_GPIO_MCP23S08 is not set
#
# AC97 GPIO expanders:
@@ -3050,52 +3074,23 @@ CONFIG_GPIO_UCB1400=y
#
# MODULbus GPIO expanders:
#
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_BQ27000=m
+# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
-CONFIG_WM831X_BACKUP=m
-CONFIG_WM831X_POWER=m
CONFIG_TEST_POWER=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2780=m
-CONFIG_BATTERY_DS2782=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
CONFIG_BATTERY_OLPC=m
-CONFIG_BATTERY_BQ20Z75=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_BQ27X00_I2C=y
-CONFIG_BATTERY_BQ27X00_PLATFORM=y
-CONFIG_BATTERY_MAX17040=m
-CONFIG_BATTERY_MAX17042=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_CHARGER_ISP1704=m
-CONFIG_CHARGER_MAX8903=m
-CONFIG_CHARGER_GPIO=m
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3105,10 +3100,8 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
@@ -3135,7 +3128,7 @@ CONFIG_SENSORS_FSCHMD=m
CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_GPIO_FAN=m
+# CONFIG_SENSORS_GPIO_FAN is not set
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IBMAEM=m
CONFIG_SENSORS_IBMPEX=m
@@ -3143,7 +3136,6 @@ CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
@@ -3161,7 +3153,6 @@ CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
@@ -3199,7 +3190,6 @@ CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
@@ -3219,9 +3209,7 @@ CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83L786NG=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
CONFIG_SENSORS_APPLESMC=m
-CONFIG_SENSORS_MC13783_ADC=m
#
# ACPI drivers
@@ -3238,7 +3226,6 @@ CONFIG_WATCHDOG_CORE=y
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
@@ -3268,6 +3255,7 @@ CONFIG_SBC7240_WDT=m
CONFIG_CPU5_WDT=m
CONFIG_SMSC_SCH311X_WDT=m
CONFIG_SMSC37B787_WDT=m
+CONFIG_VIA_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83697HF_WDT=m
CONFIG_W83697UG_WDT=m
@@ -3316,7 +3304,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-# CONFIG_BCMA is not set
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
#
# Multifunction device drivers
@@ -3326,61 +3318,25 @@ CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
CONFIG_HTC_PASIC3=m
CONFIG_UCB1400_CORE=m
-CONFIG_TPS6105X=m
+# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
-CONFIG_MFD_TPS65912=y
-CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_SPI=y
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_MFD_MC13783=m
-CONFIG_MFD_MC13XXX=m
CONFIG_ABX500_CORE=y
-CONFIG_EZX_PCAP=y
CONFIG_AB8500_CORE=y
# CONFIG_AB8500_DEBUG is not set
-CONFIG_AB8500_GPADC=y
CONFIG_MFD_CS5535=m
-CONFIG_MFD_TIMBERDALE=m
+# CONFIG_MFD_TIMBERDALE is not set
CONFIG_LPC_SCH=m
CONFIG_MFD_RDC321X=m
-CONFIG_MFD_JANZ_CMODIO=m
+# CONFIG_MFD_JANZ_CMODIO is not set
CONFIG_MFD_VX855=m
CONFIG_MFD_WL1273_CORE=m
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_GPIO=m
-CONFIG_REGULATOR_BQ24022=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_MAX8649=m
-CONFIG_REGULATOR_MAX8660=m
-CONFIG_REGULATOR_MAX8952=m
-CONFIG_REGULATOR_WM831X=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_LP3972=m
-CONFIG_REGULATOR_PCAP=m
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_TPS6105X=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_TPS65912=m
-CONFIG_REGULATOR_ISL6271A=m
-CONFIG_REGULATOR_AD5398=m
-CONFIG_REGULATOR_AB8500=y
-CONFIG_REGULATOR_TPS6524X=m
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=m
#
@@ -3408,6 +3364,7 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
CONFIG_RC_ATI_REMOTE=m
@@ -3449,7 +3406,6 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
CONFIG_VIDEOBUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_TVEEPROM=m
@@ -3545,6 +3501,7 @@ CONFIG_VIDEO_S5K6AA=m
# Flash devices
#
CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_AS3645A=m
#
# Video improvement chips
@@ -3558,63 +3515,6 @@ CONFIG_VIDEO_UPD64083=m
CONFIG_VIDEO_THS7303=m
CONFIG_VIDEO_M52790=m
CONFIG_VIDEO_VIVI=m
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_PMS=m
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_TIMBERDALE=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
@@ -3628,6 +3528,7 @@ CONFIG_USB_GSPCA_CPIA1=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
CONFIG_USB_GSPCA_KINECT=m
CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_MARS=m
@@ -3687,42 +3588,68 @@ CONFIG_USB_SN9C102=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_VIDEO_CPIA2=m
CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
CONFIG_USB_S2255=m
+CONFIG_V4L_PCI_DRIVERS=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_TESTDEV=m
CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_CADET=m
-CONFIG_RADIO_RTRACK=m
-CONFIG_RADIO_RTRACK2=m
-CONFIG_RADIO_AZTECH=m
-CONFIG_RADIO_GEMTEK=m
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_RADIO_MIROPCM20=m
-CONFIG_RADIO_SF16FMI=m
-CONFIG_RADIO_SF16FMR2=m
-CONFIG_RADIO_TERRATEC=m
-CONFIG_RADIO_TRUST=m
-CONFIG_RADIO_TYPHOON=m
-CONFIG_RADIO_ZOLTRIX=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_DSBR=m
CONFIG_RADIO_SI470X=y
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_TIMBERDALE=m
CONFIG_RADIO_WL1273=m
#
# Texas Instruments WL128x FM driver (ST based)
#
CONFIG_RADIO_WL128X=m
+# CONFIG_V4L_RADIO_ISA_DRIVERS is not set
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -3995,6 +3922,9 @@ CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -4053,7 +3983,7 @@ CONFIG_FB_I810_I2C=y
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
+# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
@@ -4069,36 +3999,17 @@ CONFIG_FB_VIRTUAL=m
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_S6E63M0=m
-CONFIG_LCD_LD9040=m
-CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
+# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PROGEAR=m
CONFIG_BACKLIGHT_APPLE=m
-CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
-CONFIG_BACKLIGHT_ADP8860=m
-CONFIG_BACKLIGHT_ADP8870=m
+# CONFIG_BACKLIGHT_SAHARA is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_PCF50633=m
#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
-
-#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
@@ -4144,6 +4055,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
+CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
@@ -4303,7 +4215,6 @@ CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
-CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
@@ -4319,10 +4230,7 @@ CONFIG_SND_ISIGHT=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_CACHE_LZO=y
-CONFIG_SND_SOC_I2C_AND_SPI=m
-# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
@@ -4384,10 +4292,10 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PRIMAX=m
-CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_ISKU=m
CONFIG_HID_ROCCAT_KONE=m
CONFIG_HID_ROCCAT_KONEPLUS=m
CONFIG_HID_ROCCAT_KOVAPLUS=m
@@ -4398,6 +4306,7 @@ CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
+CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TOPSEED=m
@@ -4406,6 +4315,7 @@ CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
CONFIG_HID_WIIMOTE=m
+CONFIG_HID_WIIMOTE_EXT=y
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
@@ -4427,8 +4337,7 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
-CONFIG_USB_DWC3=m
-# CONFIG_USB_DWC3_DEBUG is not set
+# CONFIG_USB_DWC3 is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4443,6 +4352,7 @@ CONFIG_USB_XHCI_HCD=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_MV=y
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
@@ -4461,6 +4371,9 @@ CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_RENESAS_USBHS=m
#
@@ -4611,7 +4524,9 @@ CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_FUSB300=m
CONFIG_USB_R8A66597=m
-CONFIG_USB_GADGET_DWC3=m
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_GADGET_MUSB_HDRC=m
CONFIG_USB_M66592=m
CONFIG_USB_AMD5536UDC=m
CONFIG_USB_CI13XXX_PCI=m
@@ -4655,9 +4570,10 @@ CONFIG_USB_G_WEBCAM=m
# OTG and related infrastructure
#
CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=m
+# CONFIG_USB_GPIO_VBUS is not set
CONFIG_NOP_USB_XCEIV=m
-CONFIG_AB8500_USB=m
+# CONFIG_AB8500_USB is not set
+# CONFIG_USB_MV_OTG is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4665,7 +4581,7 @@ CONFIG_UWB_I1480U=m
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
-CONFIG_MMC_CLKGATE=y
+# CONFIG_MMC_CLKGATE is not set
#
# MMC/SD/SDIO Card Drivers
@@ -4714,21 +4630,19 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
CONFIG_LEDS_DELL_NETBOOKS=m
-CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_OT200=m
CONFIG_LEDS_TRIGGERS=y
#
@@ -4812,15 +4726,6 @@ CONFIG_RTC_DRV_RV3029C2=m
#
# SPI RTC drivers
#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
#
# Platform RTC drivers
@@ -4838,15 +4743,12 @@ CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_RP5C01=m
CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
CONFIG_RTC_DRV_PCF50633=m
CONFIG_RTC_DRV_AB8500=m
#
# on-CPU RTC drivers
#
-# CONFIG_RTC_DRV_PCAP is not set
-CONFIG_RTC_DRV_MC13XXX=m
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
@@ -4889,6 +4791,12 @@ CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MMIO=m
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
CONFIG_STAGING=y
CONFIG_ET131X=m
CONFIG_SLICOSS=m
@@ -5028,23 +4936,22 @@ CONFIG_COMEDI_NI_LABPC=m
CONFIG_COMEDI_8255=m
CONFIG_COMEDI_DAS08=m
CONFIG_COMEDI_FC=m
-CONFIG_FB_OLPC_DCON=m
-CONFIG_FB_OLPC_DCON_1=y
-CONFIG_FB_OLPC_DCON_1_5=y
+# CONFIG_FB_OLPC_DCON is not set
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
-CONFIG_POHMELFS=m
-# CONFIG_POHMELFS_DEBUG is not set
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -5067,8 +4974,6 @@ CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
@@ -5109,10 +5014,6 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
-CONFIG_DRM_PSB=m
-CONFIG_DRM_PSB_MRST=y
-CONFIG_DRM_PSB_MFLD=y
-CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AS102=m
@@ -5144,6 +5045,11 @@ CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_TTUSBIR=m
CONFIG_LIRC_ZILOG=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5153,6 +5059,8 @@ CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
CONFIG_TC1100_WMI=m
CONFIG_HP_ACCEL=m
CONFIG_HP_WMI=m
@@ -5205,8 +5113,6 @@ CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_VIRT_DRIVERS=y
-CONFIG_HYPERV=m
-CONFIG_HYPERV_UTILS=m
# CONFIG_PM_DEVFREQ is not set
#
@@ -5221,7 +5127,6 @@ CONFIG_DCDBAS=m
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=m
# CONFIG_ISCSI_IBFT_FIND is not set
-CONFIG_SIGMA=m
# CONFIG_GOOGLE_FIRMWARE is not set
#
@@ -5235,8 +5140,6 @@ CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
@@ -5266,6 +5169,7 @@ CONFIG_OCFS2_FS_STATS=y
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=m
@@ -5401,6 +5305,7 @@ CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
@@ -5436,29 +5341,6 @@ CONFIG_AFS_FSCACHE=y
CONFIG_9P_FS=m
CONFIG_9P_FSCACHE=y
CONFIG_9P_FS_POSIX_ACL=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
@@ -5530,7 +5412,7 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
+CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
@@ -5655,6 +5537,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
#
# Security options
@@ -5786,6 +5669,7 @@ CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_586=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -5833,6 +5717,8 @@ CONFIG_BINARY_PRINTF=y
CONFIG_RAID6_PQ=m
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=m
@@ -5863,6 +5749,8 @@ CONFIG_DECOMPRESS_LZO=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5873,6 +5761,7 @@ CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
diff --git a/kernels/linux-libre-aufs_friendly/config.x86_64 b/kernels/linux-libre-aufs_friendly/config.x86_64
index 6fe3c37d0..1a687faf0 100644
--- a/kernels/linux-libre-aufs_friendly/config.x86_64
+++ b/kernels/linux-libre-aufs_friendly/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.2.6-1 Kernel Configuration
+# Linux/x86_64 3.3.4-1 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -18,11 +18,9 @@ CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
@@ -42,7 +40,6 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
@@ -91,6 +88,7 @@ CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y
+# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
#
@@ -101,7 +99,6 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
@@ -113,6 +110,7 @@ CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=64
# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
CONFIG_IKCONFIG=y
@@ -130,6 +128,7 @@ CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
@@ -137,6 +136,7 @@ CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
@@ -196,6 +196,7 @@ CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=m
# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -215,6 +216,9 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
#
# GCOV-based kernel profiling
@@ -236,6 +240,29 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
CONFIG_BLOCK_COMPAT=y
#
@@ -285,6 +312,7 @@ CONFIG_FREEZER=y
#
# Processor type and features
#
+CONFIG_ZONE_DMA=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
@@ -302,7 +330,7 @@ CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PVHVM=y
-CONFIG_XEN_MAX_DOMAIN_MEMORY=128
+CONFIG_XEN_MAX_DOMAIN_MEMORY=500
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
CONFIG_KVM_CLOCK=y
@@ -320,8 +348,6 @@ CONFIG_NO_BOOTMEM=y
CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=7
CONFIG_X86_CMPXCHG=y
-CONFIG_CMPXCHG_LOCAL=y
-CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
@@ -391,6 +417,8 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_MEMORY_HOTREMOVE=y
@@ -409,8 +437,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
-CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -423,6 +451,7 @@ CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
+CONFIG_EFI_STUB=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
@@ -502,17 +531,17 @@ CONFIG_SFI=y
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
@@ -611,6 +640,7 @@ CONFIG_RAPIDIO_TSI500=y
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=y
@@ -629,6 +659,7 @@ CONFIG_COMPAT_NETLINK_MESSAGES=y
#
CONFIG_PACKET=y
CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=m
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
@@ -667,6 +698,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
@@ -718,12 +750,14 @@ CONFIG_BRIDGE_NETFILTER=y
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
@@ -791,6 +825,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
@@ -802,6 +837,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
@@ -862,6 +898,11 @@ CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
@@ -873,11 +914,12 @@ CONFIG_IP_VS_PE_SIP=m
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
@@ -924,6 +966,7 @@ CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_LOG=m
@@ -1070,9 +1113,12 @@ CONFIG_NET_SCH_FIFO=y
CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
+CONFIG_NETPRIO_CGROUP=m
+CONFIG_BQL=y
CONFIG_HAVE_BPF_JIT=y
CONFIG_BPF_JIT=y
@@ -1081,7 +1127,26 @@ CONFIG_BPF_JIT=y
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
-# CONFIG_HAMRADIO is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_YAM=m
# CONFIG_CAN is not set
CONFIG_IRDA=m
@@ -1140,8 +1205,6 @@ CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_MCS_FIR=m
CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
@@ -1211,18 +1274,19 @@ CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_REGULATOR=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
CONFIG_NFC=m
CONFIG_NFC_NCI=m
+# CONFIG_NFC_LLCP is not set
#
# Near Field Communication (NFC) devices
@@ -1249,9 +1313,10 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
+# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=m
-CONFIG_REGMAP_SPI=y
+# CONFIG_DMA_SHARED_BUFFER is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
@@ -1333,9 +1398,6 @@ CONFIG_MTD_PLATRAM=m
CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
CONFIG_MTD_MTDRAM=m
@@ -1350,6 +1412,8 @@ CONFIG_MTD_BLOCK2MTD=m
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND=m
@@ -1400,6 +1464,7 @@ CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_PARIDE is not set
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
# CONFIG_CISS_SCSI_TAPE is not set
@@ -1412,6 +1477,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
CONFIG_BLK_DEV_OSD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
@@ -1428,11 +1494,13 @@ CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_RBD=m
+
+#
+# Misc devices
+#
CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_MISC_DEVICES=y
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
# CONFIG_IBM_ASM is not set
CONFIG_PHANTOM=m
CONFIG_INTEL_MID_PTI=m
@@ -1454,7 +1522,6 @@ CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_APDS990X=m
CONFIG_HMC6352=m
CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
CONFIG_PCH_PHUB=m
@@ -1466,11 +1533,9 @@ CONFIG_C2PORT_DURAMAR_2150=m
# EEPROM support
#
CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1805,6 +1870,9 @@ CONFIG_MII=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKEHARD=m
CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_NETCONSOLE=m
@@ -1890,6 +1958,7 @@ CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
+CONFIG_NET_CALXEDA_XGMAC=m
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
@@ -1955,12 +2024,8 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
-CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2011,6 +2076,8 @@ CONFIG_EPIC100=m
CONFIG_SMSC9420=m
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
CONFIG_STMMAC_RING=y
@@ -2143,6 +2210,7 @@ CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
CONFIG_CARL9170=m
@@ -2152,11 +2220,14 @@ CONFIG_CARL9170_WPC=y
CONFIG_ATH6KL=m
# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_BCMA=y
+# CONFIG_B43_BCMA_EXTRA is not set
CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
@@ -2178,6 +2249,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -2203,14 +2275,14 @@ CONFIG_IWLWIFI=m
#
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWLWIFI_LEGACY=m
+CONFIG_IWLWIFI_DEVICE_TESTMODE=y
+# CONFIG_IWLWIFI_P2P is not set
+CONFIG_IWLEGACY=m
#
# Debugging Options
#
-# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
-# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+# CONFIG_IWLEGACY_DEBUG is not set
CONFIG_IWL4965=m
CONFIG_IWL3945=m
CONFIG_IWM=m
@@ -2220,7 +2292,6 @@ CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_HERMES=m
@@ -2236,8 +2307,6 @@ CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-CONFIG_P54_SPI_DEFAULT_EEPROM=y
CONFIG_P54_LEDS=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
@@ -2269,13 +2338,10 @@ CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
-CONFIG_WL12XX_SDIO_TEST=m
CONFIG_WL12XX_PLATFORM_DATA=y
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
@@ -2295,6 +2361,7 @@ CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
@@ -2456,9 +2523,10 @@ CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_QT1070=m
CONFIG_KEYBOARD_QT2160=m
# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_GPIO_POLLED=m
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
CONFIG_KEYBOARD_MATRIX=m
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
@@ -2483,7 +2551,7 @@ CONFIG_MOUSE_SERIAL=y
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
+# CONFIG_MOUSE_GPIO is not set
CONFIG_MOUSE_SYNAPTICS_I2C=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
@@ -2524,17 +2592,16 @@ CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_WACOM=m
CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
CONFIG_TOUCHSCREEN_AD7879=m
CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_EGALAX=m
CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
@@ -2548,13 +2615,12 @@ CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_WM9705=y
CONFIG_TOUCHSCREEN_WM9712=y
CONFIG_TOUCHSCREEN_WM9713=y
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_MC13783=m
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
@@ -2567,28 +2633,27 @@ CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
-CONFIG_TOUCHSCREEN_PCAP=m
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_TPS6507X=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_GP2A=m
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
@@ -2601,11 +2666,8 @@ CONFIG_INPUT_UINPUT=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
-# CONFIG_INPUT_PCAP is not set
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
@@ -2675,19 +2737,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
#
# Non-8250 serial port support
#
-CONFIG_SERIAL_MAX3100=m
-CONFIG_SERIAL_MAX3107=m
CONFIG_SERIAL_MFD_HSU=m
-CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_TIMBERDALE=m
+# CONFIG_SERIAL_TIMBERDALE is not set
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_IFX6X60=m
CONFIG_SERIAL_PCH_UART=m
CONFIG_SERIAL_XILINX_PS_UART=m
CONFIG_PRINTER=m
@@ -2737,14 +2795,7 @@ CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
+# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -2783,7 +2834,7 @@ CONFIG_I2C_SCMI=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_GPIO=m
+# CONFIG_I2C_GPIO is not set
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PCA_PLATFORM=m
@@ -2808,29 +2859,7 @@ CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_ALTERA=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_OC_TINY=m
-# CONFIG_SPI_PXA2XX_PCI is not set
-CONFIG_SPI_TOPCLIFF_PCH=m
-CONFIG_SPI_XILINX=m
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPI_TLE62X0=m
+# CONFIG_SPI is not set
#
# PPS support
@@ -2859,45 +2888,37 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_GENERIC=m
-CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_GENERIC_PLATFORM=m
-CONFIG_GPIO_IT8761E=m
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
CONFIG_GPIO_SCH=m
-CONFIG_GPIO_VX855=m
+# CONFIG_GPIO_VX855 is not set
#
# I2C GPIO expanders:
#
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_TPS65912=m
-CONFIG_GPIO_WM831X=m
-CONFIG_GPIO_ADP5588=m
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
#
# PCI GPIO expanders:
#
CONFIG_GPIO_CS5535=m
CONFIG_GPIO_LANGWELL=y
-CONFIG_GPIO_PCH=m
-CONFIG_GPIO_ML_IOH=m
-CONFIG_GPIO_TIMBERDALE=y
-CONFIG_GPIO_RDC321X=m
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
#
# SPI GPIO expanders:
#
-CONFIG_GPIO_MAX7301=m
-CONFIG_GPIO_MCP23S08=m
-CONFIG_GPIO_MC33880=m
-CONFIG_GPIO_74X164=m
+# CONFIG_GPIO_MCP23S08 is not set
#
# AC97 GPIO expanders:
@@ -2907,51 +2928,22 @@ CONFIG_GPIO_UCB1400=y
#
# MODULbus GPIO expanders:
#
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_W1=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_MATROX=m
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-# CONFIG_W1_SLAVE_DS2433_CRC is not set
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_BQ27000=m
+# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
-CONFIG_WM831X_BACKUP=m
-CONFIG_WM831X_POWER=m
CONFIG_TEST_POWER=m
-CONFIG_BATTERY_DS2760=m
-CONFIG_BATTERY_DS2780=m
-CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_BQ20Z75=m
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_BATTERY_BQ27X00_I2C=y
-CONFIG_BATTERY_BQ27X00_PLATFORM=y
-CONFIG_BATTERY_MAX17040=m
-CONFIG_BATTERY_MAX17042=m
-CONFIG_CHARGER_PCF50633=m
-CONFIG_CHARGER_ISP1704=m
-CONFIG_CHARGER_MAX8903=m
-CONFIG_CHARGER_GPIO=m
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_PCF50633 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2961,10 +2953,8 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
@@ -2991,7 +2981,7 @@ CONFIG_SENSORS_FSCHMD=m
CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_GPIO_FAN=m
+# CONFIG_SENSORS_GPIO_FAN is not set
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IBMAEM=m
CONFIG_SENSORS_IBMPEX=m
@@ -2999,7 +2989,6 @@ CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
@@ -3017,7 +3006,6 @@ CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
@@ -3055,7 +3043,6 @@ CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
@@ -3075,9 +3062,7 @@ CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83L786NG=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
CONFIG_SENSORS_APPLESMC=m
-CONFIG_SENSORS_MC13783_ADC=m
#
# ACPI drivers
@@ -3094,7 +3079,6 @@ CONFIG_WATCHDOG_CORE=y
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
@@ -3123,6 +3107,7 @@ CONFIG_SBC8360_WDT=m
CONFIG_CPU5_WDT=m
CONFIG_SMSC_SCH311X_WDT=m
CONFIG_SMSC37B787_WDT=m
+CONFIG_VIA_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83697HF_WDT=m
CONFIG_W83697UG_WDT=m
@@ -3165,7 +3150,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-# CONFIG_BCMA is not set
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
#
# Multifunction device drivers
@@ -3175,61 +3164,25 @@ CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
CONFIG_HTC_PASIC3=m
CONFIG_UCB1400_CORE=m
-CONFIG_TPS6105X=m
+# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
-CONFIG_MFD_TPS65912=y
-CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_SPI=y
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_MFD_MC13783=m
-CONFIG_MFD_MC13XXX=m
CONFIG_ABX500_CORE=y
-CONFIG_EZX_PCAP=y
CONFIG_AB8500_CORE=y
# CONFIG_AB8500_DEBUG is not set
-CONFIG_AB8500_GPADC=y
CONFIG_MFD_CS5535=m
-CONFIG_MFD_TIMBERDALE=m
+# CONFIG_MFD_TIMBERDALE is not set
CONFIG_LPC_SCH=m
CONFIG_MFD_RDC321X=m
-CONFIG_MFD_JANZ_CMODIO=m
+# CONFIG_MFD_JANZ_CMODIO is not set
CONFIG_MFD_VX855=m
CONFIG_MFD_WL1273_CORE=m
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=m
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
-CONFIG_REGULATOR_USERSPACE_CONSUMER=m
-CONFIG_REGULATOR_GPIO=m
-CONFIG_REGULATOR_BQ24022=m
-CONFIG_REGULATOR_MAX1586=m
-CONFIG_REGULATOR_MAX8649=m
-CONFIG_REGULATOR_MAX8660=m
-CONFIG_REGULATOR_MAX8952=m
-CONFIG_REGULATOR_WM831X=m
-CONFIG_REGULATOR_WM8400=m
-CONFIG_REGULATOR_PCF50633=m
-CONFIG_REGULATOR_LP3971=m
-CONFIG_REGULATOR_LP3972=m
-CONFIG_REGULATOR_PCAP=m
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-CONFIG_REGULATOR_TPS6105X=m
-CONFIG_REGULATOR_TPS65023=m
-CONFIG_REGULATOR_TPS6507X=m
-CONFIG_REGULATOR_TPS65912=m
-CONFIG_REGULATOR_ISL6271A=m
-CONFIG_REGULATOR_AD5398=m
-CONFIG_REGULATOR_AB8500=y
-CONFIG_REGULATOR_TPS6524X=m
+# CONFIG_REGULATOR is not set
CONFIG_MEDIA_SUPPORT=m
#
@@ -3257,6 +3210,7 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
CONFIG_RC_ATI_REMOTE=m
@@ -3298,7 +3252,6 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
CONFIG_VIDEOBUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_TVEEPROM=m
@@ -3394,6 +3347,7 @@ CONFIG_VIDEO_S5K6AA=m
# Flash devices
#
CONFIG_VIDEO_ADP1653=m
+CONFIG_VIDEO_AS3645A=m
#
# Video improvement chips
@@ -3407,62 +3361,6 @@ CONFIG_VIDEO_UPD64083=m
CONFIG_VIDEO_THS7303=m
CONFIG_VIDEO_M52790=m
CONFIG_VIDEO_VIVI=m
-CONFIG_VIDEO_BT848=m
-CONFIG_VIDEO_BT848_DVB=y
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_ZR36060=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_ZORAN_AVS6EYES=m
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_TIMBERDALE=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_AU0828=m
-CONFIG_VIDEO_IVTV=m
-CONFIG_VIDEO_FB_IVTV=m
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_SAA7164=m
-CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_SOC_CAMERA=m
-CONFIG_SOC_CAMERA_IMX074=m
-CONFIG_SOC_CAMERA_MT9M001=m
-CONFIG_SOC_CAMERA_MT9M111=m
-CONFIG_SOC_CAMERA_MT9T031=m
-CONFIG_SOC_CAMERA_MT9T112=m
-CONFIG_SOC_CAMERA_MT9V022=m
-CONFIG_SOC_CAMERA_RJ54N1=m
-CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_SOC_CAMERA_PLATFORM=m
-CONFIG_SOC_CAMERA_OV2640=m
-CONFIG_SOC_CAMERA_OV5642=m
-CONFIG_SOC_CAMERA_OV6650=m
-CONFIG_SOC_CAMERA_OV772X=m
-CONFIG_SOC_CAMERA_OV9640=m
-CONFIG_SOC_CAMERA_OV9740=m
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
@@ -3476,6 +3374,7 @@ CONFIG_USB_GSPCA_CPIA1=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
CONFIG_USB_GSPCA_KINECT=m
CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_MARS=m
@@ -3535,24 +3434,61 @@ CONFIG_USB_SN9C102=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_VIDEO_CPIA2=m
CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
CONFIG_USB_S2255=m
+CONFIG_V4L_PCI_DRIVERS=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_TESTDEV=m
CONFIG_RADIO_ADAPTERS=y
-CONFIG_RADIO_MAXIRADIO=m
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_DSBR=m
CONFIG_RADIO_SI470X=y
CONFIG_USB_SI470X=m
CONFIG_I2C_SI470X=m
CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_TIMBERDALE=m
CONFIG_RADIO_WL1273=m
#
@@ -3825,6 +3761,9 @@ CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3880,7 +3819,7 @@ CONFIG_FB_EFI=y
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
+# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
@@ -3897,36 +3836,17 @@ CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_S6E63M0=m
-CONFIG_LCD_LD9040=m
-CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
+# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PROGEAR=m
CONFIG_BACKLIGHT_APPLE=m
-CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
-CONFIG_BACKLIGHT_ADP8860=m
-CONFIG_BACKLIGHT_ADP8870=m
+# CONFIG_BACKLIGHT_SAHARA is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_PCF50633=m
#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=m
-
-#
-# Display hardware drivers
-#
-
-#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
@@ -3971,6 +3891,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
+CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
@@ -4093,7 +4014,6 @@ CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
-CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
@@ -4109,10 +4029,7 @@ CONFIG_SND_ISIGHT=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_CACHE_LZO=y
-CONFIG_SND_SOC_I2C_AND_SPI=m
-# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
@@ -4174,10 +4091,10 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PRIMAX=m
-CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_ISKU=m
CONFIG_HID_ROCCAT_KONE=m
CONFIG_HID_ROCCAT_KONEPLUS=m
CONFIG_HID_ROCCAT_KOVAPLUS=m
@@ -4188,6 +4105,7 @@ CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
+CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TOPSEED=m
@@ -4196,6 +4114,7 @@ CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
CONFIG_HID_WIIMOTE=m
+CONFIG_HID_WIIMOTE_EXT=y
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
@@ -4217,8 +4136,7 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
-CONFIG_USB_DWC3=m
-# CONFIG_USB_DWC3_DEBUG is not set
+# CONFIG_USB_DWC3 is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4233,6 +4151,7 @@ CONFIG_USB_XHCI_HCD=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_MV=y
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
@@ -4251,6 +4170,9 @@ CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_TUSB6010=m
+CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_RENESAS_USBHS=m
#
@@ -4400,7 +4322,9 @@ CONFIG_USB_GADGET=m
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_R8A66597=m
-CONFIG_USB_GADGET_DWC3=m
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_GADGET_MUSB_HDRC=m
CONFIG_USB_M66592=m
CONFIG_USB_AMD5536UDC=m
CONFIG_USB_CI13XXX_PCI=m
@@ -4443,9 +4367,10 @@ CONFIG_USB_G_WEBCAM=m
# OTG and related infrastructure
#
CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=m
+# CONFIG_USB_GPIO_VBUS is not set
CONFIG_NOP_USB_XCEIV=m
-CONFIG_AB8500_USB=m
+# CONFIG_AB8500_USB is not set
+# CONFIG_USB_MV_OTG is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4453,7 +4378,7 @@ CONFIG_UWB_I1480U=m
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
-CONFIG_MMC_CLKGATE=y
+# CONFIG_MMC_CLKGATE is not set
#
# MMC/SD/SDIO Card Drivers
@@ -4473,7 +4398,6 @@ CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
@@ -4503,21 +4427,19 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
CONFIG_LEDS_PCA9532=m
-CONFIG_LEDS_PCA9532_GPIO=y
-CONFIG_LEDS_GPIO=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
CONFIG_LEDS_DELL_NETBOOKS=m
-CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_OT200=m
CONFIG_LEDS_TRIGGERS=y
#
@@ -4599,15 +4521,6 @@ CONFIG_RTC_DRV_RV3029C2=m
#
# SPI RTC drivers
#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
#
# Platform RTC drivers
@@ -4625,15 +4538,12 @@ CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_RP5C01=m
CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
CONFIG_RTC_DRV_PCF50633=m
CONFIG_RTC_DRV_AB8500=m
#
# on-CPU RTC drivers
#
-# CONFIG_RTC_DRV_PCAP is not set
-CONFIG_RTC_DRV_MC13XXX=m
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set
@@ -4678,6 +4588,12 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MMIO=m
#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+
+#
# Xen driver support
#
CONFIG_XEN_BALLOON=y
@@ -4695,6 +4611,7 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_TMEM=y
CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PRIVCMD=m
CONFIG_STAGING=y
CONFIG_ET131X=m
CONFIG_SLICOSS=m
@@ -4796,16 +4713,17 @@ CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
-CONFIG_POHMELFS=m
-# CONFIG_POHMELFS_DEBUG is not set
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -4828,8 +4746,6 @@ CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
@@ -4870,10 +4786,6 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
-CONFIG_DRM_PSB=m
-CONFIG_DRM_PSB_MRST=y
-CONFIG_DRM_PSB_MFLD=y
-CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AS102=m
@@ -4905,6 +4817,11 @@ CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_TTUSBIR=m
CONFIG_LIRC_ZILOG=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -4914,6 +4831,8 @@ CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
CONFIG_HP_ACCEL=m
CONFIG_HP_WMI=m
CONFIG_MSI_LAPTOP=m
@@ -4960,14 +4879,13 @@ CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
CONFIG_AMD_IOMMU=y
# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_AMD_IOMMU_V2=m
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y
CONFIG_VIRT_DRIVERS=y
-CONFIG_HYPERV=m
-CONFIG_HYPERV_UTILS=m
# CONFIG_PM_DEVFREQ is not set
#
@@ -4982,7 +4900,6 @@ CONFIG_DCDBAS=m
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=m
# CONFIG_ISCSI_IBFT_FIND is not set
-CONFIG_SIGMA=m
# CONFIG_GOOGLE_FIRMWARE is not set
#
@@ -4996,8 +4913,6 @@ CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
@@ -5027,6 +4942,7 @@ CONFIG_OCFS2_FS_STATS=y
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=m
@@ -5163,6 +5079,7 @@ CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
@@ -5198,29 +5115,6 @@ CONFIG_AFS_FSCACHE=y
CONFIG_9P_FS=m
CONFIG_9P_FSCACHE=y
CONFIG_9P_FS_POSIX_ACL=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
@@ -5292,11 +5186,12 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
+CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
@@ -5415,6 +5310,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_NMI_SELFTEST is not set
#
# Security options
@@ -5549,6 +5445,7 @@ CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_X86_64=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -5593,6 +5490,8 @@ CONFIG_BINARY_PRINTF=y
CONFIG_RAID6_PQ=m
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=m
@@ -5622,6 +5521,8 @@ CONFIG_DECOMPRESS_LZO=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5632,6 +5533,7 @@ CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
diff --git a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch b/kernels/linux-libre-aufs_friendly/dib0700-fix.patch
deleted file mode 100644
index 48f07e6fd..000000000
--- a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch
+++ /dev/null
@@ -1,1487 +0,0 @@
-commit 198c545cd7306dc90aaae1d61e64175e70a70dc8
-Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-Date: Wed Aug 3 17:08:21 2011 +0200
-
- [media] DiBcom: protect the I2C bufer access
-
- This patch protect the I2C buffer access in order to manage concurrent
- access. This protection is done using mutex.
- Furthermore, for the dib9000, if a pid filtering command is
- received during the tuning, this pid filtering command is delayed to
- avoid any concurrent access issue.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c
-index 1d47d4d..dc1cb17 100644
---- a/drivers/media/dvb/frontends/dib0070.c
-+++ b/drivers/media/dvb/frontends/dib0070.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -78,10 +79,18 @@ struct dib0070_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
--static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0070 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
- state->i2c_write_buffer[0] = reg;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0070 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { \
-@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter
- state->cfg = cfg;
- state->i2c = i2c;
- state->fe = fe;
-+ mutex_init(&state->i2c_buffer_lock);
- fe->tuner_priv = state;
-
- if (dib0070_reset(fe) != 0)
-diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c
-index c9c935a..b174d1c 100644
---- a/drivers/media/dvb/frontends/dib0090.c
-+++ b/drivers/media/dvb/frontends/dib0090.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -196,6 +197,7 @@ struct dib0090_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- struct dib0090_fw_state {
-@@ -208,10 +210,18 @@ struct dib0090_fw_state {
- struct i2c_msg msg;
- u8 i2c_write_buffer[2];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = reg & 0xff;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(&state->msg, 0, sizeof(struct i2c_msg));
-@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = val >> 8;
- state->i2c_write_buffer[1] = val & 0xff;
-
-@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0)
-@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (config->wbd == NULL)
-@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (dib0090_fw_reset_digital(fe, st->config) != 0)
-diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c
-index 79cb1c2..dbb76d7 100644
---- a/drivers/media/dvb/frontends/dib7000m.c
-+++ b/drivers/media/dvb/frontends/dib7000m.c
-@@ -11,6 +11,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -55,6 +56,7 @@ struct dib7000m_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000m_power_mode {
-@@ -69,6 +71,13 @@ enum dib7000m_power_mode {
-
- static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) | 0x80;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d",reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
- static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf)
- {
-@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- st->timf_default = cfg->bw->timf;
-
-diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c
-index 0c9f40c..292bc19 100644
---- a/drivers/media/dvb/frontends/dib7000p.c
-+++ b/drivers/media/dvb/frontends/dib7000p.c
-@@ -10,6 +10,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_math.h"
- #include "dvb_frontend.h"
-@@ -68,6 +69,7 @@ struct dib7000p_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000p_power_mode {
-@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff);
-
- static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf)
-@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau
- return -ENOMEM;
-
- dpst->i2c_adap = i2c;
-+ mutex_init(&dpst->i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- dpst->cfg = cfg[k];
-@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */
-
-@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- st->version = dib7000p_read_word(st, 897);
-
- /* FIXME: make sure the dev.parent field is initialized, or else
-- request_firmware() will hit an OOPS (this should be moved somewhere
-- more common) */
-+ request_firmware() will hit an OOPS (this should be moved somewhere
-+ more common) */
-+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent;
-
- dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr);
-
-diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c
-index 7d2ea11..fe284d5 100644
---- a/drivers/media/dvb/frontends/dib8000.c
-+++ b/drivers/media/dvb/frontends/dib8000.c
-@@ -10,6 +10,8 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-+
- #include "dvb_math.h"
-
- #include "dvb_frontend.h"
-@@ -37,6 +39,7 @@ struct i2c_device {
- u8 addr;
- u8 *i2c_write_buffer;
- u8 *i2c_read_buffer;
-+ struct mutex *i2c_buffer_lock;
- };
-
- struct dib8000_state {
-@@ -77,6 +80,7 @@ struct dib8000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib8000_power_mode {
-@@ -86,24 +90,39 @@ enum dib8000_power_mode {
-
- static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg)
- {
-+ u16 ret;
- struct i2c_msg msg[2] = {
-- {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 2},
-- {.addr = i2c->addr >> 1, .flags = I2C_M_RD,
-- .buf = i2c->i2c_read_buffer, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2},
- };
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
-+ msg[0].buf = i2c->i2c_write_buffer;
- msg[0].buf[0] = reg >> 8;
- msg[0].buf[1] = reg & 0xff;
-+ msg[1].buf = i2c->i2c_read_buffer;
-
- if (i2c_transfer(i2c->adap, msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ mutex_unlock(i2c->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-
- static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val)
- {
-- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 4};
-+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4};
- int ret = 0;
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ msg.buf = i2c->i2c_write_buffer;
- msg.buf[0] = (reg >> 8) & 0xff;
- msg.buf[1] = reg & 0xff;
- msg.buf[2] = (val >> 8) & 0xff;
- msg.buf[3] = val & 0xff;
-
- ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(i2c->i2c_buffer_lock);
-
- return ret;
- }
-
- static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static const s16 coeff_2k_sb_1seg_dqpsk[8] = {
-@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- if (!client.i2c_read_buffer) {
- dprintk("%s: not enough memory", __func__);
- ret = -ENOMEM;
-- goto error_memory;
-+ goto error_memory_read;
-+ }
-+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL);
-+ if (!client.i2c_buffer_lock) {
-+ dprintk("%s: not enough memory", __func__);
-+ ret = -ENOMEM;
-+ goto error_memory_lock;
- }
-+ mutex_init(client.i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- /* designated i2c address */
-@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- }
-
- error:
-+ kfree(client.i2c_buffer_lock);
-+error_memory_lock:
- kfree(client.i2c_read_buffer);
--error_memory:
-+error_memory_read:
- kfree(client.i2c_write_buffer);
-
- return ret;
-@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s
- state->i2c.addr = i2c_addr;
- state->i2c.i2c_write_buffer = state->i2c_write_buffer;
- state->i2c.i2c_read_buffer = state->i2c_read_buffer;
-+ mutex_init(&state->i2c_buffer_lock);
-+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock;
- state->gpio_val = cfg->gpio_val;
- state->gpio_dir = cfg->gpio_dir;
-
-diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c
-index a085588..b931074 100644
---- a/drivers/media/dvb/frontends/dib9000.c
-+++ b/drivers/media/dvb/frontends/dib9000.c
-@@ -38,6 +38,15 @@ struct i2c_device {
- #define DibInitLock(lock) mutex_init(lock)
- #define DibFreeLock(lock)
-
-+struct dib9000_pid_ctrl {
-+#define DIB9000_PID_FILTER_CTRL 0
-+#define DIB9000_PID_FILTER 1
-+ u8 cmd;
-+ u8 id;
-+ u16 pid;
-+ u8 onoff;
-+};
-+
- struct dib9000_state {
- struct i2c_device i2c;
-
-@@ -99,6 +108,10 @@ struct dib9000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[255];
- u8 i2c_read_buffer[255];
-+ DIB_LOCK demod_lock;
-+ u8 get_frontend_internal;
-+ struct dib9000_pid_ctrl pid_ctrl[10];
-+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */
- };
-
- static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio);
- int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef;
-+ u16 val;
-+ int ret;
-+
-+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter cmd postpone");
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
-+
-+ val = dib9000_read_word(state, 294 + 1) & 0xffef;
- val |= (onoff & 0x1) << 4;
-
- dprintk("PID filter enabled %d", onoff);
-- return dib9000_write_word(state, 294 + 1, val);
-+ ret = dib9000_write_word(state, 294 + 1, val);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
-+
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl);
-
- int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-+ int ret;
-+
-+ if (state->pid_ctrl_index != -2) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter postpone");
-+ if (state->pid_ctrl_index < 9) {
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER;
-+ state->pid_ctrl[state->pid_ctrl_index].id = id;
-+ state->pid_ctrl[state->pid_ctrl_index].pid = pid;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ } else
-+ dprintk("can not add any more pid ctrl cmd");
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
- dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff);
-- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0);
-+ ret = dib9000_write_word(state, 300 + 1 + id,
-+ onoff ? (1 << 13) | pid : 0);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter);
-
-@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod)
- DibFreeLock(&state->platform.risc.mbx_lock);
- DibFreeLock(&state->platform.risc.mem_lock);
- DibFreeLock(&state->platform.risc.mem_mbx_lock);
-+ DibFreeLock(&state->demod_lock);
- dibx000_exit_i2c_master(&st->i2c_master);
-
- i2c_del_adapter(&st->tuner_adap);
-@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend;
-- int ret;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]);
- if (ret < 0)
-- return ret;
-+ goto error;
- }
-- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune)
-@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend, sub_index_frontend;
- fe_status_t stat;
-- int ret;
-+ int ret = 0;
-+
-+ if (state->get_frontend_internal == 0)
-+ DibAcquireLock(&state->demod_lock);
-
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat);
-@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.rolloff;
- }
- }
-- return 0;
-+ ret = 0;
-+ goto return_value;
- }
- }
-
- /* get the channel from master chip */
- ret = dib9000_fw_get_channel(fe, fep);
- if (ret != 0)
-- return ret;
-+ goto return_value;
-
- /* synchronize the cache with the other frontends */
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
-@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP;
- state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff;
- }
-+ ret = 0;
-
-- return 0;
-+return_value:
-+ if (state->get_frontend_internal == 0)
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state)
-@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- dprintk("dib9000: must specify bandwidth ");
- return 0;
- }
-+
-+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */
-+ DibAcquireLock(&state->demod_lock);
-+
- fe->dtv_property_cache.delivery_system = SYS_DVBT;
-
- /* set the master status */
-@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* check the tune result */
- if (exit_condition == 1) { /* tune failed */
- dprintk("tune failed");
-+ DibReleaseLock(&state->demod_lock);
-+ /* tune failed; put all the pid filtering cmd to junk */
-+ state->pid_ctrl_index = -1;
- return 0;
- }
-
- dprintk("tune success on frontend%i", index_frontend_success);
-
- /* synchronize all the channel cache */
-+ state->get_frontend_internal = 1;
- dib9000_get_frontend(state->fe[0], fep);
-+ state->get_frontend_internal = 0;
-
- /* retune the other frontends with the found channel */
- channel_status.status = CHANNEL_STATUS_PARAMETERS_SET;
-@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* turn off the diversity for the last frontend */
- dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0);
-
-+ DibReleaseLock(&state->demod_lock);
-+ if (state->pid_ctrl_index >= 0) {
-+ u8 index_pid_filter_cmd;
-+ u8 pid_ctrl_index = state->pid_ctrl_index;
-+
-+ state->pid_ctrl_index = -2;
-+ for (index_pid_filter_cmd = 0;
-+ index_pid_filter_cmd <= pid_ctrl_index;
-+ index_pid_filter_cmd++) {
-+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL)
-+ dib9000_fw_pid_filter_ctrl(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER)
-+ dib9000_fw_pid_filter(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].id,
-+ state->pid_ctrl[index_pid_filter_cmd].pid,
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ }
-+ }
-+ /* do not postpone any more the pid filtering */
-+ state->pid_ctrl_index = -2;
-+
- return 0;
- }
-
-@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- u8 index_frontend;
- u16 lock = 0, lock_slave = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- lock_slave |= dib9000_read_lock(state->fe[index_frontend]);
-
-@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- if ((lock & 0x0008) || (lock_slave & 0x0008))
- *stat |= FE_HAS_LOCK;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR,
- state->i2c_read_buffer, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- c = (u16 *)state->i2c_read_buffer;
-
- *ber = c[10] << 16 | c[11];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
-@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- u8 index_frontend;
- u16 *c = (u16 *)state->i2c_read_buffer;
- u16 val;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- *strength = 0;
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val);
-@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- }
-
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
-@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- *strength = 65535;
- else
- *strength += val;
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static u32 dib9000_get_snr(struct dvb_frontend *fe)
-@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- u8 index_frontend;
- u32 snr_master;
-
-+ DibAcquireLock(&state->demod_lock);
- snr_master = dib9000_get_snr(fe);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- snr_master += dib9000_get_snr(state->fe[index_frontend]);
-@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- } else
- *snr = 0;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c = (u16 *)state->i2c_read_buffer;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
- *unc = c[12];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr)
-@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c
- DibInitLock(&st->platform.risc.mbx_lock);
- DibInitLock(&st->platform.risc.mem_lock);
- DibInitLock(&st->platform.risc.mem_mbx_lock);
-+ DibInitLock(&st->demod_lock);
-+ st->get_frontend_internal = 0;
-+
-+ st->pid_ctrl_index = -2;
-
- st->fe[0] = fe;
- fe->demodulator_priv = st;
-diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c
-index dc5d17a..774d507 100644
---- a/drivers/media/dvb/frontends/dibx000_common.c
-+++ b/drivers/media/dvb/frontends/dibx000_common.c
-@@ -1,4 +1,5 @@
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dibx000_common.h"
-
-@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)");
-
- static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- mst->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- mst->i2c_write_buffer[1] = reg & 0xff;
- mst->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- mst->msg[0].buf = mst->i2c_write_buffer;
- mst->msg[0].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- mst->i2c_write_buffer[0] = reg >> 8;
- mst->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst)
-@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = {
-@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = {
-@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap,
- int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- struct i2c_adapter *i2c_adap, u8 i2c_addr)
- {
-- u8 tx[4];
-- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 };
-+ int ret;
-+
-+ mutex_init(&mst->i2c_buffer_lock);
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg));
-+ mst->msg[0].addr = i2c_addr >> 1;
-+ mst->msg[0].flags = 0;
-+ mst->msg[0].buf = mst->i2c_write_buffer;
-+ mst->msg[0].len = 4;
-
- mst->device_rev = device_rev;
- mst->i2c_adap = i2c_adap;
-@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- "DiBX000: could not initialize the master i2c_adapter\n");
-
- /* initialize the i2c-master by closing the gate */
-- dibx000_i2c_gate_ctrl(mst, tx, 0, 0);
-+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0);
-+
-+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-
-- return i2c_transfer(i2c_adap, &m, 1) == 1;
-+ return ret;
- }
-
- EXPORT_SYMBOL(dibx000_init_i2c_master);
-diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h
-index f031165..5e01147 100644
---- a/drivers/media/dvb/frontends/dibx000_common.h
-+++ b/drivers/media/dvb/frontends/dibx000_common.h
-@@ -33,6 +33,7 @@ struct dibx000_i2c_master {
- struct i2c_msg msg[34];
- u8 i2c_write_buffer[8];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst,
-commit 45cbff13693d645fa5dcbba964e802e1746b2e57
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Mon Aug 1 17:45:58 2011 +0200
-
- [media] dib0700: protect the dib0700 buffer access
-
- This patch protects the common buffer access inside the dib0700 in order
- to manage concurrent access. This protection is done using mutex.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Javier Marcet <javier@marcet.info>
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 5eb91b4..291b645 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- struct dib0700_state *st = d->priv;
- int ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0),
- REQUEST_GET_VERSION,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
-@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- if (fwtype != NULL)
- *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) |
- (st->buf[14] << 8) | st->buf[15];
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen
- int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_GPIO;
- st->buf[1] = gpio;
-@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- int ret;
-
- if (st->fw_version >= 0x10201) {
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_USB_XFER_LEN;
- st->buf[1] = (nb_ts_packets >> 8) & 0xff;
- st->buf[2] = nb_ts_packets & 0xff;
-@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets);
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-+ mutex_unlock(&d->usb_mutex);
- } else {
- deb_info("this firmware does not allow to change the USB xfer len\n");
- ret = -EIO;
-@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
-
- } else {
- /* Write request */
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
- st->buf[1] = msg[i].addr << 1;
- st->buf[2] = (en_start << 7) | (en_stop << 6) |
-@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- USB_TYPE_VENDOR | USB_DIR_OUT,
- 0, 0, st->buf, msg[i].len + 4,
- USB_CTRL_GET_TIMEOUT);
-+ mutex_unlock(&d->usb_mutex);
- if (result < 0) {
- deb_info("i2c write error (status = %d)\n", result);
- break;
-@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
-
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- for (i = 0; i < num; i++) {
- /* fill in the address */
-@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- break;
- }
- }
-+ mutex_unlock(&d->usb_mutex);
- mutex_unlock(&d->i2c_mutex);
-
- return i;
-@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- u16 pll_loopdiv, u16 free_div, u16 dsuScaler)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_CLOCK;
- st->buf[1] = (en_pll << 7) | (pll_src << 6) |
-@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- st->buf[9] = dsuScaler & 0xff; /* LSB */
-
- ret = dib0700_ctrl_wr(d, st->buf, 10);
-+ mutex_unlock(&d->usb_mutex);
-
- return ret;
- }
-@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- {
- struct dib0700_state *st = d->priv;
- u16 divider;
-+ int ret;
-
- if (scl_kHz == 0)
- return -EINVAL;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_I2C_PARAM;
- divider = (u16) (30000 / scl_kHz);
- st->buf[1] = 0;
-@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- deb_info("setting I2C speed: %04x %04x %04x (%d kHz).",
- (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) |
- st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz);
-- return dib0700_ctrl_wr(d, st->buf, 8);
-+
-+ ret = dib0700_ctrl_wr(d, st->buf, 8);
-+ mutex_unlock(&d->usb_mutex);
-+
-+ return ret;
- }
-
-
-@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
- }
-
-+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_ENABLE_VIDEO;
- /* this bit gives a kind of command,
- * rather than enabling something or not */
-@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
-
- deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]);
-
-- return dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ mutex_unlock(&adap->dev->usb_mutex);
-+
-+ return ret;
- }
-
- int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
-@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- struct dib0700_state *st = d->priv;
- int new_proto, ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_RC;
- st->buf[1] = 0;
- st->buf[2] = 0;
-@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- else if (rc_type == RC_TYPE_NEC)
- new_proto = 0;
- else if (rc_type == RC_TYPE_RC6) {
-- if (st->fw_version < 0x10200)
-- return -EINVAL;
-+ if (st->fw_version < 0x10200) {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- new_proto = 2;
-- } else
-- return -EINVAL;
-+ } else {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- st->buf[1] = new_proto;
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
- if (ret < 0) {
- err("ir protocol setup failed");
-- return ret;
-+ goto out;
- }
-
- d->props.rc.core.protocol = rc_type;
-
-+out:
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-commit aeb2d456b746164a4bd19e53de0a6678ca63fcad
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Thu Aug 4 18:10:03 2011 +0200
-
- [media] dib0700: correct error message
-
- The goal of this patch is to correct a previous patch. In case of error,
- the err() function should be used instead of dprintk() function.
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 291b645..b693ed1 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
-
- if (st->fw_version >= 0x10201) {
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- } else {
- /* Write request */
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
-@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- return -EINVAL;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
-
- if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- int new_proto, ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
diff --git a/kernels/linux-libre-aufs_friendly/ext4-options.patch b/kernels/linux-libre-aufs_friendly/ext4-options.patch
index ef1b2417d..ea48c384b 100644
--- a/kernels/linux-libre-aufs_friendly/ext4-options.patch
+++ b/kernels/linux-libre-aufs_friendly/ext4-options.patch
@@ -47,3 +47,4 @@ index 502c61f..30de9cd 100644
default:
ext4_msg(sb, KERN_ERR,
"Unrecognized mount option \"%s\" "
+
diff --git a/kernels/linux-libre-aufs_friendly/fix-i915.patch b/kernels/linux-libre-aufs_friendly/fix-i915.patch
deleted file mode 100644
index 3b631361a..000000000
--- a/kernels/linux-libre-aufs_friendly/fix-i915.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-Tested-by: Santi <santi@agolina.net>
----
- drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index dc83b7a..c8f67bf 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1267,6 +1267,15 @@
- DAC_B_0_7_V |
- DAC_C_0_7_V);
-
-+ /*
-+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
-+ * the TV is misdetected. This is hardware requirement.
-+ */
-+ if (IS_GM45(dev))
-+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
-+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
-+
-+
- I915_WRITE(TV_CTL, tv_ctl);
- I915_WRITE(TV_DAC, tv_dac);
- POSTING_READ(TV_DAC);
diff --git a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch b/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch
deleted file mode 100644
index e1addbb05..000000000
--- a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4
-Author: Thomas Bächler <thomas@archlinux.org>
-Date: Mon Oct 31 19:16:18 2011 +0100
-
- Change accidental error message to debug message.
-
- According to https://lkml.org/lkml/2011/9/19/80, this is not supposed
- to be an error message, but a debug message. This worries users.
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 04411ad..02d5794 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev)
- } else {
- /* Enable SSC on PCH eDP if needed */
- if (intel_panel_use_ssc(dev_priv)) {
-- DRM_ERROR("enabling SSC on PCH\n");
-+ DRM_DEBUG("enabling SSC on PCH\n");
- temp |= DREF_SUPERSPREAD_SOURCE_ENABLE;
- }
- }
diff --git a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch b/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch
deleted file mode 100644
index 5840c9181..000000000
--- a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Tue Nov 29 15:12:16 2011 +0000
-
- drm/i915: Only clear the GPU domains upon a successful finish
-
- By clearing the GPU read domains before waiting upon the buffer, we run
- the risk of the wait being interrupted and the domains prematurely
- cleared. The next time we attempt to wait upon the buffer (after
- userspace handles the signal), we believe that the buffer is idle and so
- skip the wait.
-
- There are a number of bugs across all generations which show signs of an
- overly haste reuse of active buffers.
-
- Such as:
-
- https://bugs.freedesktop.org/show_bug.cgi?id=29046
- https://bugs.freedesktop.org/show_bug.cgi?id=35863
- https://bugs.freedesktop.org/show_bug.cgi?id=38952
- https://bugs.freedesktop.org/show_bug.cgi?id=40282
- https://bugs.freedesktop.org/show_bug.cgi?id=41098
- https://bugs.freedesktop.org/show_bug.cgi?id=41102
- https://bugs.freedesktop.org/show_bug.cgi?id=41284
- https://bugs.freedesktop.org/show_bug.cgi?id=42141
-
- A couple of those pre-date i915_gem_object_finish_gpu(), so may be
- unrelated (such as a wild write from a userspace command buffer), but
- this does look like a convincing cause for most of those bugs.
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
- Cc: stable@kernel.org
- Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
- Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
-
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index d560175..036bc58 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
- return ret;
- }
-
-+ ret = i915_gem_object_wait_rendering(obj);
-+ if (ret)
-+ return ret;
-+
- /* Ensure that we invalidate the GPU's caches and TLBs. */
- obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
--
-- return i915_gem_object_wait_rendering(obj);
-+ return 0;
- }
-
- /**
diff --git a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch b/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch
deleted file mode 100644
index a53a3a425..000000000
--- a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-This fix regression introduced by commit:
-
-commit 15b3f3b006b42a678523cad989bfd60b76bf4403
-Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-Date: Fri Jun 3 07:54:13 2011 -0700
-
- iwlagn: set smps mode after assoc for 1000 device
-
-Also remove unneeded brackets on the way.
-
-Address:
-https://bugzilla.redhat.com/show_bug.cgi?id=744155
-
-If fix will not get 3.1 release, it should be applied in 3.1 stable.
-
-Cc: stable@kernel.org # 3.1+
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-index ca632f9..5004342 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv,
- return ret;
- }
-
-- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) &&
-- priv->cfg->ht_params->smps_mode)
-+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION &&
-+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode)
- ieee80211_request_smps(ctx->vif,
- priv->cfg->ht_params->smps_mode);
-
---
-1.7.1
diff --git a/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install b/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install
index 09ca175a6..cad3564d8 100644
--- a/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install
+++ b/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install
@@ -2,16 +2,14 @@
# arg 2: the old package version
KERNEL_NAME=-aufs_friendly
-KERNEL_VERSION=3.2.9-2-LIBRE-AUFS_FRIENDLY
+KERNEL_VERSION=3.3.4-1-LIBRE-AUFS_FRIENDLY
post_install () {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
- if command -v mkinitcpio 2>&1 > /dev/null; then
- echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
- mkinitcpio -p linux-libre${KERNEL_NAME}
- fi
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
# compat symlinks for the official kernels only
if [ -z "${KERNEL_NAME}" -o "${KERNEL_NAME}" = "-aufs_friendly" ]; then
@@ -19,8 +17,9 @@ post_install () {
[ -f /etc/lilo.conf ] && loaders="$loaders /etc/lilo.conf"
if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then
# add compat symlinks for the initramfs images
- ln -sf initramfs-linux-libre${KERNEL_NAME}.img /boot/kernel26${KERNEL_NAME}.img
- ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img /boot/kernel26${KERNEL_NAME}-fallback.img
+ ln -sf initramfs-linux-libre${KERNEL_NAME}.img boot/kernel26${KERNEL_NAME}.img
+ ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img \
+ boot/kernel26${KERNEL_NAME}-fallback.img
ln -sf vmlinuz-linux-libre${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME}
fi
fi
@@ -52,10 +51,8 @@ post_upgrade() {
# updating module dependencies
echo ">>> Updating module dependencies. Please wait ..."
depmod ${KERNEL_VERSION}
- if command -v mkinitcpio 2>&1 > /dev/null; then
- echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
- mkinitcpio -p linux-libre${KERNEL_NAME}
- fi
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
}
post_remove() {
diff --git a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
deleted file mode 100644
index 880849db5..000000000
--- a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Mon, 31 Oct 2011 12:59:44 +1100
-Subject: md/raid10: Fix bug when activating a hot-spare.
-
-From: NeilBrown <neilb@suse.de>
-
-commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream.
-
-This is a fairly serious bug in RAID10.
-
-When a RAID10 array is degraded and a hot-spare is activated, the
-spare does not take up the empty slot, but rather replaces the first
-working device.
-This is likely to make the array non-functional. It would normally
-be possible to recover the data, but that would need care and is not
-guaranteed.
-
-This bug was introduced in commit
- 2bb77736ae5dca0a189829fbb7379d43364a9dac
-which first appeared in 3.1.
-
-Signed-off-by: NeilBrown <neilb@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/md/raid10.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde
- mirror_info_t *p = &conf->mirrors[mirror];
- if (p->recovery_disabled == mddev->recovery_disabled)
- continue;
-- if (!p->rdev)
-+ if (p->rdev)
- continue;
-
- disk_stack_limits(mddev->gendisk, rdev->bdev,
diff --git a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch b/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch
deleted file mode 100644
index 9e570dd3f..000000000
--- a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-commit 2394d67e446bf616a0885167d5f0d397bdacfdfc
-Author: Oliver Neukum <oneukum@suse.de>
-Date: Tue Sep 13 08:42:21 2011 +0200
-
- USB: add RESET_RESUME for webcams shown to be quirky
-
- The new runtime PM code has shown that many webcams suffer
- from a race condition that may crash them upon resume.
- Runtime PM is especially prone to show the problem because
- it retains power to the cameras at all times. However
- system suspension may also crash the devices and retain
- power to the devices.
- The only way to solve this problem without races is in
- usbcore with the RESET_RESUME quirk.
-
- Signed-off-by: Oliver Neukum <oneukum@suse.de>
- Signed-off-by: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 81ce6a8..38f0510 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Creative SB Audigy 2 NX */
- { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C200 */
-+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C250 */
-+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam B/C500 */
-+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam Pro 9000 */
-+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C310 */
-+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C270 */
-+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Harmony 700-series */
- { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
-
-@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- { USB_DEVICE(0x06a3, 0x0006), .driver_info =
- USB_QUIRK_CONFIG_INTF_STRINGS },
-
-+ /* Guillemot Webcam Hercules Dualpix Exchange*/
-+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* M-Systems Flash Disk Pioneers */
- { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
-
-commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc
-Author: Jon Levell <linuxusb@coralbark.net>
-Date: Thu Sep 29 20:42:52 2011 +0100
-
- USB: add quirk for Logitech C300 web cam
-
- My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound.
- The following trivial patch fixes it.
-
- Signed-off-by: Jon Levell <linuxusb@coralbark.net>
- Cc: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 38f0510..d6a8d82 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam C250 */
- { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C300 */
-+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index d6a8d82..caa1991 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C600 */
-+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam Pro 9000 */
- { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-
diff --git a/kernels/linux-libre-rt/PKGBUILD b/kernels/linux-libre-rt/PKGBUILD
index 0af6437d1..7c4870f1a 100644
--- a/kernels/linux-libre-rt/PKGBUILD
+++ b/kernels/linux-libre-rt/PKGBUILD
@@ -13,8 +13,8 @@ pkgname=('linux-libre-rt' 'linux-libre-rt-headers') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-RT
_basekernel=3.2
-_releasever=15
-_rtpatchver=rt26
+_releasever=16
+_rtpatchver=rt27
_pkgver=${_basekernel}.${_releasever}
pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
pkgrel=1
@@ -35,11 +35,11 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'i915-fix-ghost-tv-output.patch'
'ext4-options.patch')
md5sums=('65c669b6e4888db84a80882461851867'
- '7dcae363be46096d15d3bb9456991048'
- '0aa7c5d90e4e01e7775a1a030c24ca56'
+ '88427253e35474302c40ab1d4843a9aa'
+ 'f003895eb0231f829f74f93921568d53'
'6141ab0cb60a5cf9e6ee3bdf8c8c79b1'
'c2f3423d7c7d8e5776e961b75a52a3fc'
- '0d001b0277f318bc40a263aaa980d44e'
+ '82496e68851d1960543a07ba51cdb44a'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
diff --git a/kernels/linux-libre-rt/linux-libre-rt.install b/kernels/linux-libre-rt/linux-libre-rt.install
index 63ffbc03d..5f73fb8fb 100644
--- a/kernels/linux-libre-rt/linux-libre-rt.install
+++ b/kernels/linux-libre-rt/linux-libre-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-rt
-KERNEL_VERSION=3.2.15-1-rt26-LIBRE-RT
+KERNEL_VERSION=3.2.16-1-rt27-LIBRE-RT
post_install () {
# updating module dependencies
diff --git a/kernels/linux-libre-rt/linux-libre-rt.preset b/kernels/linux-libre-rt/linux-libre-rt.preset
index 4a0543c42..cd522e792 100644
--- a/kernels/linux-libre-rt/linux-libre-rt.preset
+++ b/kernels/linux-libre-rt/linux-libre-rt.preset
@@ -1,4 +1,4 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-libre-rt' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-libre-rt"
diff --git a/libre-testing/icedove-libre/PKGBUILD b/libre-testing/icedove-libre/PKGBUILD
deleted file mode 100644
index 9beba51a8..000000000
--- a/libre-testing/icedove-libre/PKGBUILD
+++ /dev/null
@@ -1,87 +0,0 @@
-# Maintainer : Márcio Silva <coadde@adinet.com.uy>
-# Maintainer : André Silva <andre.paulista@adinet.com.uy>
-# Contributor: Esteban V. Carnevale <evcarnevale@gmail.com>
-
-# We're getting this from Debian Sid
-_debname=icedove
-_debver=10.0.3
-_debrel=3
-_debrepo=http://ftp.debian.org/debian/pool/main/
-debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-
-_pkgname=$_debname
-pkgname=$_debname-libre
-pkgver=$_debver
-pkgrel=1
-pkgdesc="A libre version of Debian Icedove, the Standalone Mail/News reader based on Mozilla thunderbird."
-arch=('i586' 'i686' 'x86_64' 'mips64el')
-license=('GPL2' 'MPL' 'LGPL')
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
-makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt')
-optdepends=('libcanberra: for sound support')
-url="http://packages.debian.org/source/sid/$_pkgname"
-install=$_pkgname.install
-source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2"
- "$_debrepo/`debfile $_debname`_$_debver-$_debrel.debian.tar.gz"
- "$_debrepo/`debfile $_debname`_$_debver-$_debrel.dsc"
- mozconfig
- channel-prefs.js
- vendor.js
- makefile.patch
- gcc47.patch
- rules.patch
- searchplugins-libre.patch)
-md5sums=('3efe2ef4d5471aae3b79531ce8aee9dc'
- 'cb3dba2916bdf2deb72248b0984c4302'
- '57e21e997a75d85fcc0dcfe30b83f1ee'
- '76e01cfd6de4d4289265882774d1ba7d'
- '476ec205162340fb0679f522c9d31c3b'
- '4eecc4fc5aafaf0da651a09eadc90bee'
- '5a6282bb005d596aa4ab1884ac6b0517'
- '66376a8e934013078f0e646e49614937'
- '2e6a57dc04b4a7255f5f1f3642af23ac'
- '8f6d5be227bb68e1558dd6674cbba446')
-
-build() {
- export QUILT_PATCHES=debian/patches
- export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
- export QUILT_DIFF_ARGS='--no-timestamps'
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname"
- export PYTHON="/usr/bin/python2"
-
- mv comm-esr10 "$srcdir/mozilla-build"
- mv debian "$srcdir/mozilla-build"
-
- cd "$srcdir/mozilla-build"
- quilt push -a
-
- cp "$srcdir/mozconfig" .mozconfig
- patch -Np1 -i "$srcdir/gcc47.patch"
- patch -Np1 -i "$srcdir/makefile.patch"
- patch -Np1 -i "$srcdir/rules.patch"
-
- # Removing non-free search plugins replacing them with duckduckgo and identi.ca
- patch -Np0 -i "$srcdir/searchplugins-libre.patch"
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
-}
-
-package() {
- cd "$srcdir/mozilla-build"
- make -j1 -f client.mk DESTDIR="$pkgdir" install
-
- install -m644 "$srcdir/vendor.js" "$pkgdir/usr/lib/$_pkgname/defaults/pref"
- install -m644 "$srcdir/channel-prefs.js" "$pkgdir/usr/lib/$_pkgname/defaults/pref" # Recommend free addons
-
- for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
- install -Dm644 debian/app-icons/$_pkgname${i/x*/}.png \
- "$pkgdir/usr/share/icons/hicolor/$i/apps/$_pkgname.png"
- install -Dm644 debian/app-icons/icedovebig.svg \
- "$pkgdir/usr/share/icons/hicolor/scalable/apps/$_pkgname.svg"
- done
-
- rm -rf "$pkgdir"/usr/lib/$_pkgname/{dictionaries,hyphenation}
- ln -sf /usr/share/hunspell "$pkgdir/usr/lib/$_pkgname/dictionaries"
- ln -sf /usr/share/hyphen "$pkgdir/usr/lib/$_pkgname/hyphenation"
- rm -r "$pkgdir"/usr/{include,lib/$_pkgname-devel,share/idl} # We don't want the development stuff
-}
diff --git a/libre-testing/icedove-libre/gcc47.patch b/libre-testing/icedove-libre/gcc47.patch
deleted file mode 100644
index 9824e6ab2..000000000
--- a/libre-testing/icedove-libre/gcc47.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- mozilla-build.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-build/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-04 18:50:02.094431651 -0300
-@@ -8,7 +8,7 @@
- #include <io.h>
- #endif
- #include <stdio.h>
--#if defined(ANDROID)
-+#if defined(ANDROID) || defined(OS_POSIX)
- #include <unistd.h>
- #endif
-
---- mozilla-build.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-build/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-04 19:55:24.140455837 -0300
-@@ -6,6 +6,7 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#include <unistd.h>
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
-
---- mozilla-build.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-build/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-04 20:49:49.756138306 -0300
-@@ -5,6 +5,7 @@
- #include "base/file_util.h"
-
- #include <fcntl.h>
-+#include <unistd.h>
-
- #include <string>
- #include <vector>
-
---- mozilla-build.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-build/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-04 20:55:12.678037291 -0300
-@@ -8,6 +8,7 @@
- #include <mach/mach_time.h>
- #endif
- #include <sys/time.h>
-+#include <unistd.h>
- #ifdef ANDROID
- #include <time64.h>
- #else
-
diff --git a/libre-testing/icedove-libre/makefile.patch b/libre-testing/icedove-libre/makefile.patch
deleted file mode 100644
index 284ca68c2..000000000
--- a/libre-testing/icedove-libre/makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla-build/debian/icedove-branding/Makefile.in 2012-04-05 06:50:17.708640714 -0300
-+++ mozilla-build/debian/icedove-branding/Makefile.in 2012-04-05 06:50:41.902614597 -0300
-@@ -38,7 +38,7 @@
- # Branding Makefile for Icedove branding
-
- DEPTH = ../../..
--topsrcdir = ../../../
-+topsrcdir = ../../
- srcdir = @srcdir@
- VPATH = @srcdir@
-
diff --git a/libre-testing/icedove-libre/rules.patch b/libre-testing/icedove-libre/rules.patch
deleted file mode 100644
index ce857ebd3..000000000
--- a/libre-testing/icedove-libre/rules.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- mozilla-build/config/rules.mk.orig 2012-03-06 13:44:49.000000000 -0200
-+++ mozilla-build/config/rules.mk 2012-04-05 22:24:29.473430588 -0300
-@@ -48,11 +48,11 @@
- endif
-
- ifndef INCLUDED_CONFIG_MK
--include $(topsrcdir)/config/config.mk
-+include /build/src/mozilla-build/config/config.mk
- endif
-
- ifndef INCLUDED_VERSION_MK
--include $(topsrcdir)/config/version.mk
-+include /build/src/mozilla-build/config/version.mk
- endif
-
- ifdef SDK_XPIDLSRCS
diff --git a/libre-testing/icedove-libre/searchplugins-libre.patch b/libre-testing/icedove-libre/searchplugins-libre.patch
deleted file mode 100644
index 19c1ea5ab..000000000
--- a/libre-testing/icedove-libre/searchplugins-libre.patch
+++ /dev/null
@@ -1,141 +0,0 @@
---- mail.orig/locales/en-US/searchplugins/list.txt 2012-03-27 15:56:00.000000000 -0300
-+++ mail/locales/en-US/searchplugins/list.txt 2012-04-13 05:43:25.227475353 -0300
-@@ -1,8 +1,5 @@
--amazondotcom
--aol-web-search
--bing
-+duckduckgo-ssl
- eBay
--google
--twitter
-+identica-notice-search
-+identica-people-search
- wikipedia
--yahoo
---- mail/locales/en-US/searchplugins/amazondotcom.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,11 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Amazon.com</ShortName>
--<Description>Amazon.com Search</Description>
--<InputEncoding>ISO-8859-1</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHgSURBVHjalFM9TNtQEP4cB7PwM1RITUXIgsRaYEEVEyKZwhiyZAQyd0BhpFOlIjoBqhjSqVQMoVMLLAjEwECCQJkSkBqJYDOAFOMKFSf28d7DTUxiUDnp/Pzeu/vuu7t3ICKF6SLTMv2/lB0fRWKfjwDm4JJisYh0Oo3fpZLYT0SjSCQS8JAFMADNDZ3NZsnf1taiqVTKi4nGASruk5lkkmTmMB6JUKFQqO+DfX1eABWeQoVR6f7HSdM0obqu48Yw8G1tDT82NsRd1TSbU9BbGPCog8PDj+jLzurFoAVgMh4XxoNDQ6SqKi0tL9eBvAB8zZwymYxYY7EYAoEA8vm82BNTg6XUIs0MeGTZoR1mhXSnwNl4pmAbjU7mcjkKhkL1ynMnntZ4OEw3VyrV8utk7s5TdW++0QXz+1i3P7IK36t+PCfVn1OQOoOA0gXr5DPak+cPXbBK+/T3S69AtY3LJ98vZ1or/iLr+pTuvr59/A6s003UdqZFJF/PCKQ3o5CUznoBST2AfbEF/9iqYEDaIfwj73VJPEfgNTe0tWNYR0uwy9uOW0OkrgHI7z5ADo2C7v48nLV3XHKAT+x/1m1sX58xsBxg8rZJrDYD8DHHp4aJj/MK09sXjPOt46PcCzAACXY8/u34wN0AAAAASUVORK5CYII=</Image>
--<Url type="text/html" method="GET" template="http://www.amazon.com/exec/obidos/external-search/">
-- <Param name="field-keywords" value="{searchTerms}"/>
-- <Param name="mode" value="blended"/>
--</Url>
--<SearchForm>http://www.amazon.com/</SearchForm>
--</SearchPlugin>
---- mail/locales/en-US/searchplugins/aol-web-search.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
--<os:ShortName>AOL Web Search</os:ShortName>
--<os:Description>The AOL Search engine delivers great web search results, enhanced by Google, plus relevant multimedia results delivered on a single page-so you can search less and discover more.</os:Description>
--<os:InputEncoding>UTF-8</os:InputEncoding>
--<os:Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%06bKGD%00%FF%00%FF%00%FF%A0%BD%A7%93%00%00%00%09pHYs%00%00%00H%00%00%00H%00F%C9k%3E%00%00%00%FAIDAT8%CB%9D%D3%B1q%C2%40%10%85%E1%0F%8F%0B%A0%04%97%00%1D%40%05%C6%01%B9%95*1%AA%C0C%05%E0%84%D4%E4%0A%0C%15H%EE%40%1D%98%12%D4%81%1D%E84%C8B%60%C9%2F9%AD%EE%EE%9F%DD%B7%7B%23%B0%DC%7D%A3D%22%8D%F7%06h%D4%00%D4*%02(%EF%03%B8%EB%F87Af%B9%7B%EF%03%B8o%C59%DE%A4%F1%E1%3F%25%EC%91%60%83%87%B0%FF%89m%F8%5Et%F9S%032%3C%E1%0B%E3%D6%99%02s%7C%848%91%C6E%1B0%C1%0B%9E%AFd%9A%E0%D4%80l%B1%96%C6eebE%9C%DC(%F51dRk%15%B2%FD%D5%85%B1a*%CF%80%AA%84%FC%C6%E1%23f%8Dx%8D)%E76n%10aq%C5%C4%03%B2%B0%26%D2%F8To%D6%80Y0q%8AW%97m%1C%23%EA%9A%CE%E6%20%AD%82%91%5D%83T%AA%BAp%A1%AE%B7Pk%2F%8D%A3%BF%9C%ECz%0B9%E6%7D.7K(%C3%3A%F89%FF%00_%82G%C3%D5%0E(%3E%00%00%00%00IEND%AEB%60%82</os:Image>
--<SearchForm>http://search.aol.com</SearchForm>
--<os:Url type="text/html" method="GET" template="http://search.aol.com/aol/search">
-- <os:Param name="query" value="{searchTerms}"/>
--</os:Url>
--</SearchPlugin>
---- mail/locales/en-US/searchplugins/bing.xml 2012-03-06 13:44:50.000000000 -0200
-+++ /dev/null 2012-04-25 14:16:16.847855589 -0300
-@@ -1,17 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
-- <ShortName>Bing</ShortName>
-- <Description>Bing. Search by Microsoft.</Description>
-- <InputEncoding>UTF-8</InputEncoding>
-- <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24//F6f/F6f/F6f+K0/9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P/////////w+f/F6f/F6f/i9P/////////T7v9Bt/8Vpv8Vpv8Vpv8Vpv/T7v/////w+f97zf8Vpv8Vpv8Vpv8Vpv9QvP/T7v/////w+f9Bt/8Vpv8Vpv97zf////////9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP/i9P/////i9P8Vpv8Vpv+24//////i9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0/////////8Vpv8Vpv/F6f////////8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v/////w+f8Vpv8Vpv/F6f////////+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx/////////+Z2P8Vpv8Vpv/F6f/////////////i9P+K0/9QvP9QvP9tx//F6f////////+n3v8Vpv8Vpv8Vpv/F6f/////T7v+Z2P/i9P////////////////////+24/9QvP8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8krP9QvP9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv/F6f/////F6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt/9QvP9Bt/8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W</Image>
-- <Url type="application/x-suggestions+json" template="http://api.bing.com/osjson.aspx">
-- <Param name="query" value="{searchTerms}"/>
-- <Param name="form" value="OSDJAS"/>
-- </Url>
-- <Url type="text/html" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- </Url>
-- <Url type="application/x-moz-keywordsearch" method="GET" template="http://www.bing.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- </Url>
-- <SearchForm>http://www.bing.com/search</SearchForm>
--</SearchPlugin>
---- mail/locales/en-US/searchplugins/google.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,14 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Google</ShortName>
--<Description>Google Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%2BTzvb2%2B%2Fne4dFJeBw0egA%2FfAJAfAA8ewBBegAAAAD%2B%2FPtft98Mp%2BwWsfAVsvEbs%2FQeqvF8xO7%2F%2F%2F63yqkxdgM7gwE%2FggM%2BfQA%2BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%2FQvq%2Bfz%2Bf%2F%2B%2B%2FZKhR05hgBBhQI8hgBAgAI9ewD0%2B%2Fg3pswAtO8Cxf4Kw%2FsJvvYAqupKsNv%2B%2Fv7%2F%2FP5VkSU0iQA7jQA9hgBDgQU%2BfQH%2F%2Ff%2FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%2Fv%2Fg6Nc%2Fhg05kAA8jAM9iQI%2BhQA%2BgQDQu6b97uv%2F%2F%2F7V8Pqw3eiWz97q8%2Ff%2F%2F%2F%2F7%2FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%2F%2B%2F%2F39%2F%2F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%2F%2B%2Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%2BooT8%2Fv%2F7%2F%2F%2FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%2BhwGfXifWvqz%2B%2Ff%2F58u%2Fev6Dt4tr%2B%2F%2F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%2FkwBChwHt4dv%2F%2F%2F728ei1bCi7VAC5XQ7kz7n%2F%2F%2F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%2F%2F%2F9%2F%2F%2FSqYK5UwDKZAS9WALIkFn%2B%2F%2F3%2F%2BP8oKccGGcIRJrERILYFEMwAAuEAAdX%2F%2Ff7%2F%2FP%2B%2BfDvGXQLIZgLEWgLOjlf7%2F%2F%2F%2F%2F%2F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%2F%2F%2F%2F7%2B%2Fu2bCTIYwDPZgDBWQDSr4P%2F%2Fv%2F%2F%2FP5GRuABAPkAA%2FwBAfkDAPAAAesAAN%2F%2F%2B%2Fz%2F%2F%2F64g1C5VwDMYwK8Yg7y5tz8%2Fv%2FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%2F%2FPvi28ymXyChTATRrIb8%2F%2F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA</Image>
--<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>
--<Url type="text/html" method="GET" template="http://www.google.com/search">
-- <Param name="q" value="{searchTerms}"/>
-- <Param name="ie" value="utf-8"/>
-- <Param name="oe" value="utf-8"/>
-- <Param name="aq" value="t"/>
--</Url>
--<SearchForm>http://www.google.com</SearchForm>
--</SearchPlugin>
---- mail/locales/en-US/searchplugins/twitter.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,10 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Twitter Search</ShortName>
--<Description>Realtime Twitter Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%19tEXtSoftware%00Adobe%20ImageReadyq%C9e%3C%00%00%06%60IDATx%DA%ACWMLSY%14%BE%F7%F5%97%B6%96%96%16P%84q%02H%A0%01%85%08%26%C4%18%C9D%60%D8L2%0Bfm2%89%86%85%3B%E2l%5D%BA%9Ad%E2%CEY%B8%18c2a%8C%B3%10%893%02e%98d%F0%07%22c%D0%22%88%C4%01K)%D0%3F%FA%FF%DE%BB%F3%DD%F7Z%82%B5%16%A8%DE%E4%B6%AF%AF%EF%DD%F3%DDs%BEs%BEs)c%8C%F0A)%25%D9q%F9%F2eC%7F%7F%7F%1D.%BF%12%04%A1%F30F%22%91%10%A3%D1%E8%92%C1%60ponn%FE%3D99%E9%BDz%F5%AAL%3Ea(%B6%F9G%16%04%1F%83%83%83%E6%B1%B1%B1oVVV%86%E2%F1%F8%7F%C9d2%22%8Ab%2C%95J%C5p%1D%8A%C5b%9E%85%85%85%1F%EF%DF%BF%DF%06%90%9A%CF%0A%00%3B%D2%3Fy%F2%A4okkk%0C%06%A3%B8%CF%D22c1%91%B1%B8%C4%98%84kY%96%19%3C%B1%B6%B8%B8%F83F%13w%DE%E7%02%40%1F%3E%7CX%BB%BA%BAz%0B%C6%23%DCx%24%CD%D8%F30c%7F%FAe%E6%DE%90%D9%1B%40JIL%19%E1px%05%5E%F8a%60%60%C0%FE)%00%B4%D9%1F%D8%BDA%92%A4%13v%BB%FD%8CN%A7%B3D%25B%A6%02%8C%3C%0E2%12H1%A2%C1%3EkJ(%E9rP%D2x%88%92%92%92%92J%97%CB%F5%F5%F2%F2%F2%08%5E%0FcJ%C5%80%D8%01p%EC%D81%23%10%B94%1A%8DM%82C%BC%09BfB%8C%F8%93%8Cp~%8A%A0%DB%9B%18%23V%1D!%D5%00R%AA%D3j%9DNg%3D%80%B8n%DF%BE%ED%EB%EC%ECL%EE%5E8%18%0C%12%84J%9A%9B%9BK%5C%BAt)%BD'%00%B0%5D%83Lp%02%84%86%03%88%88%8C%84E%D5%B8%40%D4H%F3%FB~%98%89c%AF%1C%08%3CU%D6%D6%D6%F6%9D%CDfs%99%CD%E64%F8%B1%C3%07%AC%25%E9%F5%FA%8D%8E%8E%0E%CF%F8%F8%F8%FC%C4%C4%C4z%BE%AC%D1%E6%FC%D6dl%91%EC%93%BB%19%C6%C1H%84%E1%3F%CE%1BJ%60%C0%D4%D4%D4%D4%AB%D5j%BBr%C9%98%E1V%1A%E9%EB%F5%F9%7C%7F%9C%3Bw%EE%D7%8B%17%2F%CE%DE%B8q%23%5D%08%40%C1A3%93%7B%22%8DI9w%B5z%93H%88%E9%83g%E16-%1E%B6X%2C%0E%84%F5%08%C0V%9D%3F%7F%FE%A7%40%200%3D44%24%15%0D%20%81W%E7%B7%19%F1%26%0B%E7%9F%11%00%1CzJ%9Cz%22%80'%E5eee%3D%B5%B5%B5%1B%ED%ED%ED%EF%00%60%A5(%00%0A%B9%E0%C0%F1%0D%BEuV%F09%9E5%87%0D%94%9C%B6S%D2b%A5%C4d29%EB%EA%EA%BE%9E%99%99%19%ED%EA%EA%DAp%BB%DD%09%85%7B%C5%A4NB%DE%7Bn%23.%8BQF%FEA*%AF'9%5CJP%C6%2B0%DBz%7B%7BKv%C8_%0C%00%BA%8F)P%D5G%3E%A4%F1%26%08%23%AA%0E%D3%19%8D%C6%A3%C8%16%FD'%018%C8%1023%ABu(v4%9DNgq%1E%9C%03d%CF%E8%ABCfd%A7zV%80%8C%3C%23R%B2%9C%0E%85B%3E%BF%DF%9F%CE.s%60%00%DC%B5%A5Z%F5%BB0%09)%A92%12%D2%5E%8AL0%A8%85%01)%E8%F7z%BDsSSS%F1%A2%B2%80C%B6%A3%02v%97%0B%CA%A2TY7%0FG%A8%0A%E0%10%CA%9AE%ABz%C2%EF%DF%D8z%F4%E8%91%7Bzz%FA%19f%B2%E84%D4!%A0G%60%BC%D2H%F7%24%10%F7%12%E2-n%05%83%5BH%BF%C9%7B%F7%EE%0D%0D%0F%0F%2F%EF%16.m1%F1%CF%EA%C3%5Ea%E0%C6%D1%BC%2CC%07%1E%8C%8E%8E%FE~%E7%CE%9D%C7%3C%8BsI%BA%BB~%B3%BDH%26g%CA%F0~%DA%10%A6%F4%2Fr%10%A5x%B1%B2%B2r%1E%B7%22%B9%CB%EFx%00%82%22%A3%F5%8AB%C5d%BEC%BD%A0%C6.w%F0%02%F36F%88%13%5C0%EF%E1%3F%D4%7F%7DCCC3%A4%FEBww%B7%EE%E4%C9%93%B7%20%CD%DE%BC%1E%98%9D%9D%15%A1%E1k%40%2CrI%2CE%DE%98%81%20%D7%1B1D%EF)%9A%14tJ%8A4%87E.%DD%1FN~%9F%CB%B6N%AF7B%90N%94%97%97%7F%7F%FC%F8%F1o%A1%88%A5y%3D%80%064%05%97-!n%DB(%97%0E%0E%80%A7%91%2F%99%89%7Bf%F2%EB%95%04%23%0F%FC%10%1B4%2C%5Cth%1EO%F1M%1C%C6%FB'%AC%02%BE)%85%16%D4566%F6%9F%3Auj%1A%7F%3D%CD%12q%C7%03%D7%AF_O%A1%C1XX__%7F%89j%952a%85F%0BUr%5Ef%EF%97a%3Ex%B3%C2%3B%A4%97P%C6%17%91%0F%E7%BF%F0%D0%C4%86%3A%03)%A5%E1%D1Z%ADV%DEqu%5C%B9r%C5%94%8F%84%CC%E3%F1%AC%A3%85%FA%0BMD%88%A7%5B%BD%99%12%17%FA%3F%83%A0%F6%00%B9ZPP%2F%F0%40%1C%A2%B4%00A%E2z%C0%B5%00%C6%E1%08SCEE%85!o%16%A0e%8A%A0L%8E%A2-%9F%85%17%D2%A5%20%DAi%BB%A0%82%D0%A8%20%D8%01D%89%A7i%12%EEK%CA%AA%17%11b8B%B0%80g%DA%8Fi%81%84%5C%F5%A0%D9%FC%0D%C4%F9%02MDC5%E2%D8%E5%14%00%40%26sp%2B%EF%96%E5%7Dx%80e%AA%A4MG%89%15%7C%D2(%ED%1C%91%E1%DD%08%0E7%F2G%0B%D1%C8%C8H%B8%BE%BE~%18%00%8E%B6%B6%B6%5Ep8%1C55Po%B3F%20%D5FF%3C%88%EF%BB%04%CF%06%F6%5EX%F2%15%2B%1BD%A8%0DZ%C0%C9%C8%01%80%E8%DBkkk%8B(%C9%89%82b%04B%AEB%B7%7F%C1%A5%01%20x%D7%5B%E3%D0k4%ED6%AA%10%937%18%5C%E3%A3%A2%1A%16%9A%07%80%5E%A3vD_*%E0%15%E3%C9%D7%AF_%3F%C7%89%EA%196%19%CF%ED%5E%F3%F2%08%A7%9EZ%F4o%83x%F11NB!%14*)%7B%5CKH%EA%91%AD%D0%E4%CF%F1%C1%8D%BFz%F5%EA%D9%B5k%D7%06%AA%AA%AA%9C%D9%08r%BB4%DF%E9x7%88%BE%BE%3E%E7%D9%B3g%CF477%F7%B5%B4%B4t%22%24UHWd6%E5%E7%08%0Af%D3%DC%0D%F0%B5%F8%19%92%D7a%C4%3B%B6%B4%B4%F4%12%C7%BE%BB7o%DE%BC%3B%3F%3F%FF6%5B%03%F6%03%40%19%D5%D5%D5%25%3D%3D%3DG%90%C7%AD%A8%E9%EDh.%1BA%D4%0A%FC6%E1%5BGs%5E%86%5D%02%EDO%E3%3C%10x%81%81*%EB%86%18M%E1%DC%B9%86%BF%C5%DD%DE%FF_%80%01%00%94%13%9D%26%E9%81%03P%00%00%00%00IEND%AEB%60%82</Image>
--<Url type="text/html" method="get"
-- template="http://search.twitter.com/search?q={searchTerms}"/>
--<SearchForm>http://search.twitter.com/</SearchForm>
--</SearchPlugin>
--
---- mail/locales/en-US/searchplugins/yahoo.xml 2012-03-27 15:56:00.000000000 -0300
-+++ /dev/null 2012-04-12 23:52:53.981159155 -0300
-@@ -1,13 +0,0 @@
--<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
--<ShortName>Yahoo</ShortName>
--<Description>Yahoo Search</Description>
--<InputEncoding>UTF-8</InputEncoding>
--<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgJqAIoCdgCaAnoAnhKCAKYijgCuLpIAskKeALpSpgC+Yq4AzHy8ANqezgDmvt4A7tLqAPz5+wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlRFIoABWAKERERE6ADcKMzzu2hOgAAhERK8REWCWBERE36ERMHMEREvo6iEgY6hEn6Pu0mAzqkz/xjMzoDNwpERERDoAMzAKlERIoAAzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AADAOQAAgBkAAAAPAAAACQAAAAkAAAAIAAAACAAAAAgAAIAYAADAOAAA//8AAP//AAD//wAA</Image>
--<Url type="application/x-suggestions+json" method="GET"
-- template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
--<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
-- <Param name="p" value="{searchTerms}"/>
-- <Param name="ei" value="UTF-8"/>
--</Url>
--<SearchForm>http://search.yahoo.com/</SearchForm>
--</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ mail/locales/en-US/searchplugins/duckduckgo-ssl.xml 2012-04-09 14:43:56.000000000 -0300
-@@ -0,0 +1,11 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>DuckDuckGo RU SSL</os:ShortName>
-+<os:Description>DDG Search + Google's suggestions (Russian)</os:Description>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
-+<SearchForm>https://duckduckgo.com/</SearchForm>
-+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}&amp;kl=ru-ru">
-+</os:Url><os:Url type="application/x-suggestions+json" method="GET" template="http://ddgg.nfriedly.com/complete/search?output=firefox&amp;hl=ru&amp;q={searchTerms}">
-+</os:Url><os:Url type="application/opensearchdescription+xml" method="GET" template="http://mycroft.mozdev.org/updateos.php/id0/duckduckgo_ssl.xml" rel="self">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ mail/locales/en-US/searchplugins/identica-notice-search.xml 2012-04-13 05:15:55.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca Notice Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/notice?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
---- /dev/null 2012-04-12 23:52:53.981159155 -0300
-+++ mail/locales/en-US/searchplugins/identica-people-search.xml 2012-04-13 05:15:53.000000000 -0300
-@@ -0,0 +1,7 @@
-+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
-+<os:ShortName>Identi.ca People Search</os:ShortName>
-+<os:InputEncoding>UTF-8</os:InputEncoding>
-+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAABGD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAABAQEBAQEBAQEBAAAAAAAAAQEBAQEBAQEBAQAAAAAAAAEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA4AcAAOAHAADgBwAA//8AAP//AAA=</os:Image>
-+<os:Url type="text/html" method="GET" template="http://identi.ca/search/people?q={searchTerms}">
-+</os:Url>
-+</SearchPlugin>
diff --git a/libre/blackbox-libre/PKGBUILD b/libre/blackbox-libre/PKGBUILD
new file mode 100644
index 000000000..c76d7cba5
--- /dev/null
+++ b/libre/blackbox-libre/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id$
+# 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>
+
+_pkgname=blackbox
+pkgname=${_pkgname}-libre
+pkgver=0.70.1
+pkgrel=10.1
+pkgdesc="A window manager for X11 without non-free programs on menu"
+url="http://${_pkgname}wm.sourceforge.net/"
+arch=('i686' 'x86_64')
+depends=('gcc-libs' 'libxft' 'libxext' 'libx11' 'libxt')
+replaces=("${_pkgname}")
+conflicts=("${_pkgname}")
+provides=("${_pkgname}=${pkgver}")
+license=('MIT')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${_pkgname}wm/${_pkgname}-${pkgver}.tar.gz
+ gcc4.3.patch
+ bbdock.patch
+ bsetbg-feh.patch
+ textpropertytostring-unconditional.patch
+ menu)
+md5sums=('2d173b95ca5e64ef478c6a5d2deee9df'
+ 'bc7a1335d77cdeb6f85cba4d01e68e63'
+ '69c5a5e981b087b2d8267cab996b48dd'
+ 'e7fb0d5bfd95820c0194ec73df66dadc'
+ '3b92ad246f07126dd55ae9634d6e875e'
+ 'f4fefa5f25c65c5d9a601e9c14646757')
+
+build() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+
+ patch -Np1 -i ../gcc4.3.patch
+ patch -Np0 -i ../bbdock.patch
+ patch -Np0 -i ../bsetbg-feh.patch
+ patch -Np1 -i ../textpropertytostring-unconditional.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE
+ install -D -m644 ${srcdir}/menu ${pkgdir}/usr/share/${_pkgname}/menu
+}
diff --git a/libre/blackbox-libre/bbdock.patch b/libre/blackbox-libre/bbdock.patch
new file mode 100644
index 000000000..709b6cfe1
--- /dev/null
+++ b/libre/blackbox-libre/bbdock.patch
@@ -0,0 +1,16 @@
+--- src/Slit.cc 2005-01-04 05:58:33.000000000 -0700
++++ /root/tmp/Slit.cc 2007-12-29 11:13:09.000000000 -0700
+@@ -248,6 +248,13 @@
+ bt::PixmapCache::find(screen->screenNumber(), texture,
+ frame.rect.width(), frame.rect.height(),
+ frame.pixmap);
++/*** START: BBDOCK PATCH FOR DOCK APPS THAT USE ParentRelative **************/
++ if ((texture.texture() & bt::Texture::Gradient) && frame.pixmap)
++ XSetWindowBackgroundPixmap(display, frame.window, frame.pixmap);
++ else if ((texture.texture() & bt::Texture::Solid))
++ XSetWindowBackground(display, frame.window,
++ texture.color1().pixel(screen->screenNumber()));
++/*** STOP: BBDOCK PATCH FOR DOCK APPS THAT USE ParentRelative ***************/
+ XClearArea(display, frame.window, 0, 0,
+ frame.rect.width(), frame.rect.height(), True);
+
diff --git a/libre/blackbox-libre/bsetbg-feh.patch b/libre/blackbox-libre/bsetbg-feh.patch
new file mode 100644
index 000000000..17a612ff0
--- /dev/null
+++ b/libre/blackbox-libre/bsetbg-feh.patch
@@ -0,0 +1,23 @@
+--- util/bsetbg.orig 2008-03-26 21:17:04.000000000 -0700
++++ util/bsetbg 2008-03-26 21:21:57.000000000 -0700
+@@ -22,7 +22,7 @@
+
+ PATH=$PATH:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+
+-img_apps="display xli xsetbg Esetroot qiv wmsetbg xv"
++img_apps="display xli xsetbg Esetroot qiv wmsetbg xv feh"
+
+ display_full_cmd="display -geometry 800x600 -window root"
+ display_tile_cmd="display -window root"
+@@ -59,6 +59,11 @@
+ xsetbg_center_cmd="xsetbg -center"
+ xsetbg_default_cmd="$xsetbg_center_cmd"
+
++feh_full_cmd="feh --bg-scale"
++feh_tile_cmd="feh --bg-tile"
++feh_center_cmd="feh --bg-center"
++feh_default_cmd="$feh_center_cmd"
++
+ ##################################
+
+ me=`basename $0`
diff --git a/libre/blackbox-libre/gcc4.3.patch b/libre/blackbox-libre/gcc4.3.patch
new file mode 100644
index 000000000..40a9dcdef
--- /dev/null
+++ b/libre/blackbox-libre/gcc4.3.patch
@@ -0,0 +1,111 @@
+diff -Nur blackbox-0.70.1/lib/Image.cc blackbox-0.70.1-new/lib/Image.cc
+--- blackbox-0.70.1/lib/Image.cc 2005-04-08 08:41:09.000000000 -0700
++++ blackbox-0.70.1-new/lib/Image.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -45,6 +45,8 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+
++#include <cstring>
++
+ // #define COLORTABLE_DEBUG
+ // #define MITSHM_DEBUG
+
+diff -Nur blackbox-0.70.1/lib/Resource.cc blackbox-0.70.1-new/lib/Resource.cc
+--- blackbox-0.70.1/lib/Resource.cc 2005-04-06 14:16:50.000000000 -0700
++++ blackbox-0.70.1-new/lib/Resource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -30,6 +30,8 @@
+
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ bt::Resource::Resource(void)
+ : db(NULL)
+diff -Nur blackbox-0.70.1/lib/XDG.cc blackbox-0.70.1-new/lib/XDG.cc
+--- blackbox-0.70.1/lib/XDG.cc 2005-04-06 07:04:38.000000000 -0700
++++ blackbox-0.70.1-new/lib/XDG.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -26,7 +26,7 @@
+ #include "XDG.hh"
+
+ #include <stdlib.h>
+-
++#include <algorithm>
+
+ // make sure directory names end with a slash
+ static std::string terminateDir(const std::string &string)
+diff -Nur blackbox-0.70.1/src/BlackboxResource.cc blackbox-0.70.1-new/src/BlackboxResource.cc
+--- blackbox-0.70.1/src/BlackboxResource.cc 2005-10-18 00:34:46.000000000 -0700
++++ blackbox-0.70.1-new/src/BlackboxResource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -33,6 +33,8 @@
+ #include <X11/Xutil.h>
+ #include <X11/cursorfont.h>
+
++#include <cstring>
++
+
+ BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
+ screen_resources = 0;
+diff -Nur blackbox-0.70.1/src/Screen.cc blackbox-0.70.1-new/src/Screen.cc
+--- blackbox-0.70.1/src/Screen.cc 2005-10-18 01:07:22.000000000 -0700
++++ blackbox-0.70.1-new/src/Screen.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -48,6 +48,8 @@
+ #include <ctype.h>
+ #include <dirent.h>
+
++#include <cstring>
++
+
+ static bool running = true;
+ static int anotherWMRunning(Display *, XErrorEvent *) {
+diff -Nur blackbox-0.70.1/src/ScreenResource.cc blackbox-0.70.1-new/src/ScreenResource.cc
+--- blackbox-0.70.1/src/ScreenResource.cc 2005-04-12 22:54:08.000000000 -0700
++++ blackbox-0.70.1-new/src/ScreenResource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -33,6 +33,8 @@
+
+ #include <assert.h>
+
++#include <cstring>
++
+
+ static const int iconify_width = 9;
+ static const int iconify_height = 9;
+diff -Nur blackbox-0.70.1/src/main.cc blackbox-0.70.1-new/src/main.cc
+--- blackbox-0.70.1/src/main.cc 2005-01-03 02:42:57.000000000 -0700
++++ blackbox-0.70.1-new/src/main.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -36,6 +36,8 @@
+
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ static void showHelp(int exitval) {
+ // print version - this should not be localized!
+diff -Nur blackbox-0.70.1/util/bsetbg blackbox-0.70.1-new/util/bsetbg
+--- blackbox-0.70.1/util/bsetbg 2004-12-22 02:40:18.000000000 -0700
++++ blackbox-0.70.1-new/util/bsetbg 2008-05-21 20:52:44.000000000 -0700
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ # Copyright (c) 2000-2002 Timothy M. King (tmk@lordzork.com)
+ #
+diff -Nur blackbox-0.70.1/util/bsetroot.cc blackbox-0.70.1-new/util/bsetroot.cc
+--- blackbox-0.70.1/util/bsetroot.cc 2005-03-15 00:01:37.000000000 -0700
++++ blackbox-0.70.1-new/util/bsetroot.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -27,11 +27,14 @@
+ #include <Pen.hh>
+ #include <Texture.hh>
+
++#include <cstdlib>
+ #include <cctype>
+
+ #include <X11/Xatom.h>
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ // ignore all X errors
+ static int x11_error(::Display *, XErrorEvent *)
diff --git a/libre/blackbox-libre/menu b/libre/blackbox-libre/menu
new file mode 100644
index 000000000..9cba27d16
--- /dev/null
+++ b/libre/blackbox-libre/menu
@@ -0,0 +1,112 @@
+# This is the default menu file for Blackbox 0.33.0 and up
+#
+# Lines beginning with the '#' character are ignored.
+#
+# The new syntax is simpler than the old X resource format...
+# Each menu item consists of 2 or 3 fields:
+#
+# [command] (label) {data}
+#
+# where [command] is one of:
+#
+# [begin] [end] [exec] [exit] [reconfig] [restart] [submenu]
+# [style] [stylesdir] [include] [workspaces] [config]
+#
+# [begin] is used for the top level menu
+# [submenu] is used for submenus
+# [end] must be used with BOTH [begin] and [submenu] to tell the parser to stop
+# reading from the file.
+#
+# [exec] (label) {string}
+# This will insert an item that runs a program.
+#
+# [exit] (label)
+# This will insert an item that exits the window manager.
+#
+# [reconfig] (label) {string}
+# This will insert an item that tells blackbox to re-read it's configuration
+# files. {string} is optional, and if supplied, will execute the string with
+# /bin/sh -c before the reconfiguration is performed. (this is helpful for
+# writing multiple config files and switching between them)
+#
+# [restart] (label) {string}
+# This will insert an item to restart the window manager. {string} is
+# optional, and if omitted, blackbox will restart itself. If {string} is
+# specified, then a different window manager will be started.
+#
+# [style] (filename)
+# This will insert an item to reconfigure blackbox with the new style. This
+# change is saved when blackbox exits or restarts.
+#
+# [include] (filename)
+# This will read more menu items from the file "filename". The file cannot
+# contain a [begin] or [end], except for the [end] needed for submenus.
+#
+# [workspaces] (label)
+# This tells Blackbox to insert a "link" to the workspaces menu directly
+# into your menu.
+#
+# [config] (label)
+# This tells Blackbox to insert the ConfigMenu into your menu. The ConfigMenu
+# allows you to change several options found in your ~/.blackboxrc file on the
+# fly.
+#
+# example:
+
+[begin] (Blackbox)
+ [exec] (xterm) {xterm -ls}
+ [exec] (rxvt) {rxvt}
+
+ [exec] (LibreOffice) {soffice}
+ [exec] (XEmacs) {xemacs}
+ [exec] (XPDF) {xpdf}
+
+ [submenu] (Graphics)
+ [exec] (The GIMP) {gimp}
+ [exec] (Image Magick) {display}
+ [end]
+
+ [submenu] (Internet)
+ [exec] (Icecat) {icecat}
+ [exec] (Iceweasel libre) {iceweasel}
+ [submenu] (Icedove libre)
+ [exec] (Icedove libre Mail) {icedove -mail}
+ [exec] (Icedove libre News) {icedove -news}
+ [end]
+ [submenu] (Iceape libre)
+ [exec] (Iceape libre Mail) {icedove -mail}
+ [exec] (Iceape libre News) {icedove -news}
+ [exec] (Iceape libre Composer) {icedove -edit}
+ [end]
+ [end]
+
+ [submenu] (X Utilities)
+ [exec] (Xfontsel) {xfontsel}
+ [exec] (Xman) {xman}
+ [exec] (Xcalc) {xcalc}
+ [exec] (Xload) {xload}
+ [end]
+
+ [submenu] (Styles) {Choose a style...}
+ [stylesdir] (/usr/share/blackbox/styles)
+ [end]
+
+ [workspaces] (Workspace List)
+ [config] (Configuration)
+
+ [reconfig] (Reconfigure)
+ [restart] (Restart)
+ [submenu] (Others) {Other Window Managers}
+ [restart] (Start FVWM) {fvwm}
+ [restart] (Start WindowMaker) {wmaker}
+ [restart] (Start Afterstep) {afterstep}
+ [restart] (Start Enlightenment) {enlightenment}
+ [restart] (Start TWM) {twm}
+ [restart] (Start KWIM) {kwim}
+ [end]
+
+ [exit] (Exit)
+[end]
+
+# End of example menu.
+
diff --git a/libre/blackbox-libre/textpropertytostring-unconditional.patch b/libre/blackbox-libre/textpropertytostring-unconditional.patch
new file mode 100644
index 000000000..ed320388a
--- /dev/null
+++ b/libre/blackbox-libre/textpropertytostring-unconditional.patch
@@ -0,0 +1,28 @@
+Description: Declare bt::textPropertyToString unconditionally.
+Author: Jakub Wilk <jwilk@debian.org>
+Forwarded: no
+Bug-Debian: http://bugs.debian.org/614468
+Last-Update: 2011-03-12
+
+--- a/lib/Util.hh
++++ b/lib/Util.hh
+@@ -25,6 +25,8 @@
+ #ifndef __Util_hh
+ #define __Util_hh
+
++#include <X11/Xutil.h>
++
+ #include <limits.h>
+ #include <string>
+
+@@ -94,10 +96,8 @@
+
+ std::string tolower(const std::string &string);
+
+-#ifdef _XUTIL_H_
+ std::string textPropertyToString(::Display *display,
+ ::XTextProperty& text_prop);
+-#endif
+
+ } // namespace bt
+
diff --git a/libre/clementine-libre/PKGBUILD b/libre/clementine-libre/PKGBUILD
new file mode 100644
index 000000000..defa4ae57
--- /dev/null
+++ b/libre/clementine-libre/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id$
+#Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+#Contributor: BlackEagle <ike.devolder@gmail.com>
+#Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
+#Maintainer (Parabola): Kete <kete@ninthfloor.org>
+#Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+_pkgname=clementine
+pkgname=clementine-libre
+pkgver=1.0.1
+pkgrel=3.1
+pkgdesc="A music player and library organizer, without spotify support"
+url="http://www.clementine-player.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gstreamer0.10-base' 'taglib' 'glew' 'liblastfm' 'libgpod'
+ 'libmtp' 'libplist' 'hicolor-icon-theme' 'qt' 'libimobiledevice'
+ 'qjson' 'libcdio' 'protobuf' 'qca' 'qca-ossl')
+makedepends=('cmake' 'boost')
+optdepends=('gstreamer0.10-base-plugins: for more open formats'
+ 'gstreamer0.10-good-plugins: for use with "Good" plugin libraries'
+ 'gstreamer0.10-bad-libre-plugins: for use with "Bad" plugin libraries'
+ 'gstreamer0.10-ugly-plugins: for use with "Ugly" plugin libraries')
+replaces=('clementine')
+conflicts=('clementine')
+provides=("clementine=$pkgver")
+source=(http://clementine-player.googlecode.com/files/${_pkgname}-${pkgver}.tar.gz
+ clementine-fix-albumcoverfetch-crash.patch
+ clementine-fresh-start.patch
+ remove-and-disable-spotify.patch
+ remove-nonfree-references-on-translations.patch)
+sha1sums=('e05320da689e2fad744fd3e68518bc4103ecf0fd'
+ 'fddd2e784181ce1dcc7809e7122cbade0af7b01f'
+ 'd8abab4b8fb2d5284a2f43107505325e62d4af5f'
+ '2fef46eaffa7b5cd61afbf19b1dc909d11972a34'
+ '745bc4fd639d7ef3230592c6275fb43b8956f3d5')
+install=clementine.install
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ # https://bugs.gentoo.org/401713?id=401713
+ patch -Np1 -i ../clementine-fresh-start.patch
+
+ # http://code.google.com/p/clementine-player/issues/detail?id=2752
+ patch -Np1 -i ../clementine-fix-albumcoverfetch-crash.patch
+
+ # https://labs.parabola.nu/issues/99
+ patch -Np1 -i ../remove-and-disable-spotify.patch
+ patch -Np1 -i ../remove-nonfree-references-on-translations.patch
+
+ # Remove nonfree spotifyblob folder
+ rm -Rf "./spotifyblob"
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_REMOTE=ON
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch b/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch
new file mode 100644
index 000000000..d7e64388c
--- /dev/null
+++ b/libre/clementine-libre/clementine-fix-albumcoverfetch-crash.patch
@@ -0,0 +1,20 @@
+diff -rupN clementine-1.0.1.old/src/covers/albumcoverfetcher.cpp clementine-1.0.1/src/covers/albumcoverfetcher.cpp
+--- clementine-1.0.1.old/src/covers/albumcoverfetcher.cpp 2011-12-02 16:24:44.000000000 -0500
++++ clementine-1.0.1/src/covers/albumcoverfetcher.cpp 2012-02-26 11:37:56.351044572 -0500
+@@ -108,12 +108,16 @@ void AlbumCoverFetcher::StartRequests()
+
+ void AlbumCoverFetcher::SingleSearchFinished(quint64 request_id, CoverSearchResults results) {
+ AlbumCoverFetcherSearch* search = active_requests_.take(request_id);
++ if (!search)
++ return;
+ search->deleteLater();
+ emit SearchFinished(request_id, results, search->statistics());
+ }
+
+ void AlbumCoverFetcher::SingleCoverFetched(quint64 request_id, const QImage& image) {
+ AlbumCoverFetcherSearch* search = active_requests_.take(request_id);
++ if (!search)
++ return;
+ search->deleteLater();
+ emit AlbumCoverFetched(request_id, image, search->statistics());
+ }
diff --git a/libre/clementine-libre/clementine-fresh-start.patch b/libre/clementine-libre/clementine-fresh-start.patch
new file mode 100644
index 000000000..9bf12973d
--- /dev/null
+++ b/libre/clementine-libre/clementine-fresh-start.patch
@@ -0,0 +1,9 @@
+diff -rupN clementine-0.7.1.old/data/schema/schema.sql clementine-0.7.1/data/schema/schema.sql
+--- clementine-0.7.1.old/data/schema/schema.sql 2011-03-29 15:16:12.000000000 -0400
++++ clementine-0.7.1/data/schema/schema.sql 2012-01-12 19:15:39.889374607 -0500
+@@ -35,4 +35,5 @@ CREATE TABLE songs (
+ CREATE TABLE schema_version (
+ version INTEGER NOT NULL
+ );
++
+ INSERT INTO schema_version (version) VALUES (0);
diff --git a/libre/clementine-libre/clementine.install b/libre/clementine-libre/clementine.install
new file mode 100644
index 000000000..2f0338d8a
--- /dev/null
+++ b/libre/clementine-libre/clementine.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+post_remove() {
+ post_install $1
+}
diff --git a/libre/clementine-libre/remove-and-disable-spotify.patch b/libre/clementine-libre/remove-and-disable-spotify.patch
new file mode 100644
index 000000000..9cfc3092a
--- /dev/null
+++ b/libre/clementine-libre/remove-and-disable-spotify.patch
@@ -0,0 +1,3268 @@
+diff -rauN clementine-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m clementine-libre-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
+--- clementine-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m 2012-05-28 17:19:14.612750904 -0300
+@@ -98,7 +98,6 @@
+ {
+ return [NSArray arrayWithObjects:
+ [[NSBundle mainBundle] bundleIdentifier], // your app
+- @"com.spotify.client",
+ @"com.apple.iTunes",
+ @"com.apple.QuickTimePlayerX",
+ @"com.apple.quicktimeplayer",
+diff -rauN clementine-1.0.1/Changelog clementine-libre-1.0.1/Changelog
+--- clementine-1.0.1/Changelog 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/Changelog 2012-05-28 13:50:10.422664725 -0300
+@@ -1,3 +1,7 @@
++Version 1.0.1 (libre version):
++ Major features:
++ * Disabled and removed Spotify.
++
+ Version 1.0.1:
+ Bugfixes:
+ * Use Chromaprinter and Acoustid instead of Echoprint and MusicDNS.
+diff -rauN clementine-1.0.1/cmake/SpotifyVersion.cmake /dev/null
+--- clementine-1.0.1/cmake/SpotifyVersion.cmake 2011-12-02 19:24:43.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,3 +0,0 @@
+-# Increment this whenever the user needs to download a new blob
+-# Remember to upload and sign the new version of the blob.
+-set(SPOTIFY_BLOB_VERSION 11)
+diff -rauN clementine-1.0.1/CMakeLists.txt clementine-libre-1.0.1/CMakeLists.txt
+--- clementine-1.0.1/CMakeLists.txt 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/CMakeLists.txt 2012-05-28 17:32:48.690568781 -0300
+@@ -6,7 +6,6 @@
+ include(cmake/Version.cmake)
+ include(cmake/Deb.cmake)
+ include(cmake/Rpm.cmake)
+-include(cmake/SpotifyVersion.cmake)
+ include(cmake/OptionalSource.cmake)
+
+ if (UNIX AND NOT APPLE)
+@@ -66,7 +65,6 @@
+ pkg_check_modules(USBMUXD libusbmuxd)
+ pkg_check_modules(LIBMTP libmtp>=1.0)
+ pkg_check_modules(INDICATEQT indicate-qt)
+-pkg_check_modules(SPOTIFY libspotify>=10.1.16)
+ pkg_check_modules(CDIO libcdio)
+ pkg_check_modules(QCA qca2)
+ pkg_check_modules(CHROMAPRINT libchromaprint)
+@@ -90,13 +88,6 @@
+ set(HAVE_SPARKLE ON)
+ endif (ENABLE_SPARKLE AND SPARKLE)
+
+- find_library(SPOTIFY libspotify)
+- if (SPOTIFY)
+- set (SPOTIFY_FOUND ON)
+- set (SPOTIFY_INCLUDE_DIRS ${SPOTIFY})
+- set (SPOTIFY_LIBRARIES ${SPOTIFY})
+- endif (SPOTIFY)
+-
+ add_subdirectory(3rdparty/SPMediaKeyTap)
+ set(SPMEDIAKEYTAP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SPMediaKeyTap)
+ set(SPMEDIAKEYTAP_LIBRARIES SPMediaKeyTap)
+@@ -191,8 +182,8 @@
+ option(ENABLE_LIBLASTFM "Use liblastfm for fetching song info, scrobbling and radio streams" ON)
+ option(ENABLE_REMOTE "Enable support for using remote controls with Clementine" OFF)
+ option(ENABLE_BREAKPAD "Enable crash reporting" OFF)
+-option(ENABLE_SPOTIFY_BLOB "Build the spotify non-GPL binary" ON)
+-option(ENABLE_SPOTIFY "Enable spotify support" ON)
++option(ENABLE_SPOTIFY_BLOB "Build the spotify non-GPL binary" OFF)
++option(ENABLE_SPOTIFY "Enable spotify support" OFF)
+ option(ENABLE_PLASMARUNNER "Enable plasma krunner global search" OFF)
+
+ if(WIN32)
+@@ -235,24 +226,6 @@
+ set(HAVE_BREAKPAD ON)
+ endif(ENABLE_BREAKPAD)
+
+-if(ENABLE_SPOTIFY AND PROTOBUF_FOUND AND PROTOBUF_PROTOC_EXECUTABLE)
+- set(HAVE_SPOTIFY ON)
+-endif(ENABLE_SPOTIFY AND PROTOBUF_FOUND AND PROTOBUF_PROTOC_EXECUTABLE)
+-
+-if(ENABLE_SPOTIFY_BLOB AND PROTOBUF_FOUND AND PROTOBUF_PROTOC_EXECUTABLE AND SPOTIFY_FOUND)
+- set(HAVE_SPOTIFY_BLOB ON)
+-endif(ENABLE_SPOTIFY_BLOB AND PROTOBUF_FOUND AND PROTOBUF_PROTOC_EXECUTABLE AND SPOTIFY_FOUND)
+-
+-if((NOT HAVE_SPOTIFY_BLOB) AND (NOT QCA_FOUND))
+- # If we're not bundling the spotify blob then we must ensure QCA is available
+- # so we can verify the blob we download at runtime.
+- unset(HAVE_SPOTIFY)
+-endif((NOT HAVE_SPOTIFY_BLOB) AND (NOT QCA_FOUND))
+-
+-if(QCA_FOUND AND HAVE_SPOTIFY)
+- set(HAVE_QCA ON)
+-endif(QCA_FOUND AND HAVE_SPOTIFY)
+-
+
+ if(ENABLE_VISUALISATIONS)
+ # When/if upstream accepts our patches then these options can be used to link
+@@ -391,14 +364,6 @@
+ add_subdirectory(3rdparty/google-breakpad)
+ endif(HAVE_BREAKPAD)
+
+-if(HAVE_SPOTIFY)
+- add_subdirectory(spotifyblob/common)
+-endif(HAVE_SPOTIFY)
+-
+-if(HAVE_SPOTIFY_BLOB)
+- add_subdirectory(spotifyblob/blob)
+-endif(HAVE_SPOTIFY_BLOB)
+-
+ # This goes after everything else because KDE fucks everything else up with its
+ # cmake includes.
+ find_package(KDE4 4.3.60)
+@@ -430,8 +395,6 @@
+ summary_add("Devices: GIO backend" HAVE_GIO)
+ summary_add("Gnome sound menu integration" HAVE_LIBINDICATE)
+ summary_add("Last.fm support" HAVE_LIBLASTFM)
+-summary_add("Spotify support: core code" HAVE_SPOTIFY)
+-summary_add("Spotify support: non-GPL binary helper" HAVE_SPOTIFY_BLOB)
+ summary_add("Visualisations" ENABLE_VISUALISATIONS)
+ summary_add("Wiimote support" HAVE_WIIMOTEDEV)
+ summary_add("(KDE) Plasma global search" HAVE_PLASMARUNNER)
+diff -rauN clementine-1.0.1/data/data.qrc clementine-libre-1.0.1/data/data.qrc
+--- clementine-1.0.1/data/data.qrc 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/data/data.qrc 2012-05-28 17:50:22.768352061 -0300
+@@ -49,9 +49,6 @@
+ <file>providers/magnatune.png</file>
+ <file>schema/schema-8.sql</file>
+ <file>schema/schema-9.sql</file>
+- <file>icons/22x22/spotify.png</file>
+- <file>icons/32x32/spotify.png</file>
+- <file>icons/48x48/spotify.png</file>
+ <file>icons/22x22/application-exit.png</file>
+ <file>icons/22x22/applications-internet.png</file>
+ <file>icons/22x22/configure.png</file>
+@@ -320,7 +317,6 @@
+ <file>icons/32x32/edit-find.png</file>
+ <file>icons/48x48/edit-find.png</file>
+ <file>schema/schema-33.sql</file>
+- <file>spotify-core-logo-128x128.png</file>
+ <file>icons/22x22/dialog-warning.png</file>
+ <file>icons/22x22/dialog-ok-apply.png</file>
+ <file>schema/schema-34.sql</file>
+@@ -331,7 +327,6 @@
+ <file>providers/grooveshark.png</file>
+ <file>allthethings.png</file>
+ <file>globalsearch.css</file>
+- <file>clementine-spotify-public.pem</file>
+ <file>icons/22x22/user-away.png</file>
+ <file>icons/32x32/search.png</file>
+ <file>schema/schema-35.sql</file>
+diff -rauN clementine-1.0.1/data/icons/svg/spotify.svg /dev/null
+--- clementine-1.0.1/data/icons/svg/spotify.svg 2011-12-02 19:24:43.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,285 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+-<!-- Created with Inkscape (http://www.inkscape.org/) -->
+-<svg
+- xmlns:dc="http://purl.org/dc/elements/1.1/"
+- xmlns:cc="http://creativecommons.org/ns#"
+- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+- xmlns:svg="http://www.w3.org/2000/svg"
+- xmlns="http://www.w3.org/2000/svg"
+- xmlns:xlink="http://www.w3.org/1999/xlink"
+- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+- width="48"
+- height="48"
+- id="svg2"
+- sodipodi:version="0.32"
+- inkscape:version="0.46"
+- version="1.0"
+- sodipodi:docname="spotify.svg"
+- inkscape:output_extension="org.inkscape.output.svg.inkscape">
+- <defs
+- id="defs4">
+- <linearGradient
+- inkscape:collect="always"
+- id="linearGradient7729">
+- <stop
+- style="stop-color:#467700;stop-opacity:1"
+- offset="0"
+- id="stop7731" />
+- <stop
+- style="stop-color:#518900;stop-opacity:1"
+- offset="1"
+- id="stop7733" />
+- </linearGradient>
+- <linearGradient
+- inkscape:collect="always"
+- id="linearGradient7721">
+- <stop
+- style="stop-color:#1a4300;stop-opacity:1"
+- offset="0"
+- id="stop7723" />
+- <stop
+- style="stop-color:#215300;stop-opacity:1"
+- offset="1"
+- id="stop7725" />
+- </linearGradient>
+- <linearGradient
+- inkscape:collect="always"
+- id="linearGradient7713">
+- <stop
+- style="stop-color:#193d00;stop-opacity:1"
+- offset="0"
+- id="stop7715" />
+- <stop
+- style="stop-color:#1f4b00;stop-opacity:1"
+- offset="1"
+- id="stop7717" />
+- </linearGradient>
+- <linearGradient
+- inkscape:collect="always"
+- id="linearGradient6355">
+- <stop
+- style="stop-color:#23371c;stop-opacity:1"
+- offset="0"
+- id="stop6357" />
+- <stop
+- style="stop-color:#004100;stop-opacity:1"
+- offset="1"
+- id="stop6359" />
+- </linearGradient>
+- <linearGradient
+- inkscape:collect="always"
+- id="linearGradient6347">
+- <stop
+- style="stop-color:#abd033;stop-opacity:1"
+- offset="0"
+- id="stop6349" />
+- <stop
+- style="stop-color:#9ec02d;stop-opacity:0;"
+- offset="1"
+- id="stop6351" />
+- </linearGradient>
+- <linearGradient
+- id="linearGradient5519">
+- <stop
+- style="stop-color:#88ae04;stop-opacity:1"
+- offset="0"
+- id="stop5521" />
+- <stop
+- style="stop-color:#73a400;stop-opacity:1"
+- offset="1"
+- id="stop5523" />
+- </linearGradient>
+- <inkscape:perspective
+- sodipodi:type="inkscape:persp3d"
+- inkscape:vp_x="0 : 526.18109 : 1"
+- inkscape:vp_y="0 : 1000 : 0"
+- inkscape:vp_z="744.09448 : 526.18109 : 1"
+- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+- id="perspective10" />
+- <inkscape:perspective
+- id="perspective5505"
+- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+- inkscape:vp_z="744.09448 : 526.18109 : 1"
+- inkscape:vp_y="0 : 1000 : 0"
+- inkscape:vp_x="0 : 526.18109 : 1"
+- sodipodi:type="inkscape:persp3d" />
+- <linearGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient5519"
+- id="linearGradient6853"
+- gradientUnits="userSpaceOnUse"
+- x1="119.5"
+- y1="91.362183"
+- x2="102.5"
+- y2="128.36218" />
+- <radialGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient6355"
+- id="radialGradient6855"
+- gradientUnits="userSpaceOnUse"
+- gradientTransform="matrix(1.1318093,0.197699,-0.1703116,0.9750189,-125.44033,-100.50883)"
+- cx="147.76869"
+- cy="120.16964"
+- fx="147.76869"
+- fy="120.16964"
+- r="14.451495" />
+- <linearGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient6347"
+- id="linearGradient6857"
+- gradientUnits="userSpaceOnUse"
+- gradientTransform="translate(-125.45979,-77.491488)"
+- x1="149.09062"
+- y1="85.104187"
+- x2="139.1649"
+- y2="106.61218" />
+- <filter
+- inkscape:collect="always"
+- id="filter7655"
+- x="-1.0712544"
+- width="3.1425087"
+- y="-1.0712544"
+- height="3.1425087">
+- <feGaussianBlur
+- inkscape:collect="always"
+- stdDeviation="20.086019"
+- id="feGaussianBlur7657" />
+- </filter>
+- <linearGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient7713"
+- id="linearGradient7719"
+- x1="38.714096"
+- y1="17.417631"
+- x2="31.1127"
+- y2="15.165503"
+- gradientUnits="userSpaceOnUse"
+- gradientTransform="matrix(0.999924,1.232938e-2,-1.232938e-2,0.999924,0.2587749,-0.2864042)" />
+- <linearGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient7721"
+- id="linearGradient7727"
+- x1="35.708893"
+- y1="25.90625"
+- x2="27.400389"
+- y2="22.312458"
+- gradientUnits="userSpaceOnUse"
+- gradientTransform="matrix(0.965063,1.1899533e-2,-1.232938e-2,0.999924,1.1112913,-0.2758924)" />
+- <linearGradient
+- inkscape:collect="always"
+- xlink:href="#linearGradient7729"
+- id="linearGradient7735"
+- x1="35.607697"
+- y1="31.414557"
+- x2="23.13369"
+- y2="26.433243"
+- gradientUnits="userSpaceOnUse"
+- gradientTransform="matrix(0.8596429,1.059967e-2,-1.232938e-2,0.999924,3.5039934,-0.2463897)" />
+- <filter
+- inkscape:collect="always"
+- id="filter7785"
+- x="-0.089479765"
+- width="1.1789595"
+- y="-0.14834692"
+- height="1.2966938">
+- <feGaussianBlur
+- inkscape:collect="always"
+- stdDeviation="1.5684595"
+- id="feGaussianBlur7787" />
+- </filter>
+- </defs>
+- <sodipodi:namedview
+- id="base"
+- pagecolor="#ffffff"
+- bordercolor="#666666"
+- borderopacity="1.0"
+- gridtolerance="10000"
+- guidetolerance="10"
+- objecttolerance="10"
+- inkscape:pageopacity="0.0"
+- inkscape:pageshadow="2"
+- inkscape:zoom="5.6568542"
+- inkscape:cx="-0.10040691"
+- inkscape:cy="47.355194"
+- inkscape:document-units="px"
+- inkscape:current-layer="layer1"
+- showgrid="false"
+- inkscape:snap-bbox="true"
+- inkscape:snap-nodes="false"
+- inkscape:window-width="1440"
+- inkscape:window-height="853"
+- inkscape:window-x="0"
+- inkscape:window-y="25">
+- <inkscape:grid
+- type="xygrid"
+- id="grid5511"
+- visible="true"
+- enabled="true" />
+- </sodipodi:namedview>
+- <metadata
+- id="metadata7">
+- <rdf:RDF>
+- <cc:Work
+- rdf:about="">
+- <dc:format>image/svg+xml</dc:format>
+- <dc:type
+- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+- </cc:Work>
+- </rdf:RDF>
+- </metadata>
+- <g
+- inkscape:label="Layer 1"
+- inkscape:groupmode="layer"
+- id="layer1">
+- <g
+- id="g6847"
+- transform="translate(-0.29021,-0.7456946)">
+- <path
+- sodipodi:type="arc"
+- style="opacity:0.64566926;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter7655);enable-background:accumulate"
+- id="path6363"
+- sodipodi:cx="112.5"
+- sodipodi:cy="109.86218"
+- sodipodi:rx="22.5"
+- sodipodi:ry="22.5"
+- d="M 135,109.86218 A 22.5,22.5 0 1 1 90,109.86218 A 22.5,22.5 0 1 1 135,109.86218 z"
+- transform="matrix(0.4666666,0,0,0.111111,-28.709782,33.038802)" />
+- <path
+- transform="translate(-88.70979,-85.616488)"
+- d="M 135,109.86218 A 22.5,22.5 0 1 1 90,109.86218 A 22.5,22.5 0 1 1 135,109.86218 z"
+- sodipodi:ry="22.5"
+- sodipodi:rx="22.5"
+- sodipodi:cy="109.86218"
+- sodipodi:cx="112.5"
+- id="path5513"
+- style="opacity:1;fill:url(#linearGradient6853);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+- sodipodi:type="arc" />
+- <path
+- sodipodi:nodetypes="csccscc"
+- id="path5529"
+- d="M 7.6378996,39.420202 C 8.1682296,39.420202 11.29843,32.092852 23.23086,33.507062 C 35.16329,34.921272 36.54089,42.778952 36.54089,42.778952 C 34.49039,44.179572 32.3092,45.405922 29.55821,45.872552 C 29.55821,45.872552 26.55929,40.325532 21.1676,40.679082 C 15.77591,41.032632 13.91347,44.193172 13.91347,44.193172 C 11.14188,43.198092 8.9957096,41.593432 7.6378996,39.420202 z"
+- style="fill:url(#radialGradient6855);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+- <path
+- sodipodi:nodetypes="cccc"
+- id="path5531"
+- d="M 2.6652096,29.120692 C 35.315841,10.631207 30.66521,27.370692 44.66521,26.495692 C 44.14296,15.562843 35.20292,3.7456934 23.66521,3.7456934 C 6.6997296,4.3119254 1.9479196,20.58416 2.6652096,29.120692 z"
+- style="fill:url(#linearGradient6857);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7785)" />
+- </g>
+- <path
+- style="opacity:1;fill:url(#linearGradient7719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+- d="M 10.300245,11.619555 C 8.241027,12.012805 7.9425774,15.355405 10.765465,15.313073 C 21.977063,13.20149 31.048724,15.49889 39.670046,19.826041 C 40.808245,20.378971 42.647611,18.028703 41.02047,16.758511 C 31.316836,11.614062 19.960975,9.8780472 10.300245,11.619555 z"
+- id="path7661"
+- sodipodi:nodetypes="ccccc" />
+- <path
+- style="opacity:1;fill:url(#linearGradient7727);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+- d="M 12.303532,19.144827 C 10.172718,19.381037 9.829391,22.969311 12.56196,22.64828 C 21.903655,21.50982 27.85363,22.62879 35.683323,25.808592 C 37.647192,26.873264 38.724998,23.482585 36.929338,22.604961 C 28.133565,18.889799 21.412131,18.726151 12.303532,19.144827 z"
+- id="path7666"
+- sodipodi:nodetypes="ccccc" />
+- <path
+- style="opacity:1;fill:url(#linearGradient7735);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+- d="M 14.447653,25.703011 C 12.75416,26.30833 13.053805,29.148649 14.863112,29.052139 C 17.870832,28.722372 20.153948,28.706138 23.615532,29.097554 C 27.126432,29.494545 29.233258,30.435974 32.157356,31.453048 C 33.350406,31.961876 34.447173,29.764482 33.187538,28.528027 C 29.966426,27.274723 27.415802,26.174879 23.388506,25.719498 C 20.084015,25.348048 17.755584,25.371512 14.447653,25.703011 z"
+- id="path7668"
+- sodipodi:nodetypes="ccscccc" />
+- </g>
+-</svg>
+diff -rauN clementine-1.0.1/data/schema/schema-30.sql clementine-libre-1.0.1/data/schema/schema-30.sql
+--- clementine-1.0.1/data/schema/schema-30.sql 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/data/schema/schema-30.sql 2012-05-28 17:55:40.840489308 -0300
+@@ -1,45 +1 @@
+-CREATE TABLE spotify_search_songs (
+- title TEXT,
+- album TEXT,
+- artist TEXT,
+- albumartist TEXT,
+- composer TEXT,
+- track INTEGER,
+- disc INTEGER,
+- bpm REAL,
+- year INTEGER,
+- genre TEXT,
+- comment TEXT,
+- compilation INTEGER,
+-
+- length INTEGER,
+- bitrate INTEGER,
+- samplerate INTEGER,
+-
+- directory INTEGER NOT NULL,
+- filename TEXT NOT NULL,
+- mtime INTEGER NOT NULL,
+- ctime INTEGER NOT NULL,
+- filesize INTEGER NOT NULL,
+- sampler INTEGER NOT NULL DEFAULT 0,
+- art_automatic TEXT,
+- art_manual TEXT,
+- filetype INTEGER NOT NULL DEFAULT 0,
+- playcount INTEGER NOT NULL DEFAULT 0,
+- lastplayed INTEGER,
+- rating INTEGER,
+- forced_compilation_on INTEGER NOT NULL DEFAULT 0,
+- forced_compilation_off INTEGER NOT NULL DEFAULT 0,
+- effective_compilation NOT NULL DEFAULT 0,
+- skipcount INTEGER NOT NULL DEFAULT 0,
+- score INTEGER NOT NULL DEFAULT 0,
+- beginning INTEGER NOT NULL DEFAULT 0,
+- cue_path TEXT
+-);
+-
+-CREATE VIRTUAL TABLE spotify_search_songs_fts USING fts3 (
+- ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsgenre, ftscomment,
+- tokenize=unicode
+-);
+-
+ UPDATE schema_version SET version=30;
+diff -rauN clementine-1.0.1/dist/macdeploy.py clementine-libre-1.0.1/dist/macdeploy.py
+--- clementine-1.0.1/dist/macdeploy.py 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/dist/macdeploy.py 2012-05-28 17:58:29.937662793 -0300
+@@ -367,11 +367,6 @@
+
+ FixPlugin(FindGstreamerPlugin('gst-plugin-scanner'), '.')
+
+-try:
+- FixPlugin('clementine-spotifyblob', '.')
+-except:
+- print 'Failed to find spotify blob'
+-
+ for plugin in QT_PLUGINS:
+ FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
+
+diff -rauN clementine-1.0.1/dist/windows/clementine.nsi clementine-libre-1.0.1/dist/windows/clementine.nsi
+--- clementine-1.0.1/dist/windows/clementine.nsi 2012-01-22 10:43:46.000000000 -0200
++++ clementine-libre-1.0.1/dist/windows/clementine.nsi 2012-05-28 18:06:56.812551755 -0300
+@@ -95,7 +95,6 @@
+ Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
+
+ ; 1.0 prerelease
+- Delete "$INSTDIR\spotify.dll"
+
+ ; 1.0
+ Delete "$INSTDIR\libofa.dll"
+@@ -109,7 +108,6 @@
+ File "avformat-52.dll"
+ File "avutil-50.dll"
+ File "clementine.exe"
+- File "clementine-spotifyblob.exe"
+ File "clementine.ico"
+ File "glew32.dll"
+ File "intl.dll"
+@@ -163,7 +161,6 @@
+ File "libqjson.dll"
+ File "libsoup-2.4-1.dll"
+ File "libspeex-1.dll"
+- File "libspotify.dll"
+ File "libtag.dll"
+ File "libtasn1-3.dll"
+ File "libusbmuxd.dll"
+@@ -949,7 +946,6 @@
+ Delete "$INSTDIR\avutil-50.dll"
+ Delete "$INSTDIR\clementine.ico"
+ Delete "$INSTDIR\clementine.exe"
+- Delete "$INSTDIR\clementine-spotifyblob.exe"
+ Delete "$INSTDIR\glew32.dll"
+ Delete "$INSTDIR\intl.dll"
+ Delete "$INSTDIR\libcdio-12.dll"
+@@ -1002,7 +998,6 @@
+ Delete "$INSTDIR\libqjson.dll"
+ Delete "$INSTDIR\libsoup-2.4-1.dll"
+ Delete "$INSTDIR\libspeex-1.dll"
+- Delete "$INSTDIR\libspotify.dll"
+ Delete "$INSTDIR\libtag.dll"
+ Delete "$INSTDIR\libtasn1-3.dll"
+ Delete "$INSTDIR\libusbmuxd.dll"
+diff -rauN clementine-1.0.1/dist/windows/clementine.nsi.in clementine-libre-1.0.1/dist/windows/clementine.nsi.in
+--- clementine-1.0.1/dist/windows/clementine.nsi.in 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/dist/windows/clementine.nsi.in 2012-05-28 18:09:14.664818947 -0300
+@@ -95,7 +95,6 @@
+ Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
+
+ ; 1.0 prerelease
+- Delete "$INSTDIR\spotify.dll"
+
+ ; 1.0
+ Delete "$INSTDIR\libofa.dll"
+@@ -109,7 +108,6 @@
+ File "avformat-52.dll"
+ File "avutil-50.dll"
+ File "clementine.exe"
+- File "clementine-spotifyblob.exe"
+ File "clementine.ico"
+ File "glew32.dll"
+ File "intl.dll"
+@@ -163,7 +161,6 @@
+ File "libqjson.dll"
+ File "libsoup-2.4-1.dll"
+ File "libspeex-1.dll"
+- File "libspotify.dll"
+ File "libtag.dll"
+ File "libtasn1-3.dll"
+ File "libusbmuxd.dll"
+@@ -949,7 +946,6 @@
+ Delete "$INSTDIR\avutil-50.dll"
+ Delete "$INSTDIR\clementine.ico"
+ Delete "$INSTDIR\clementine.exe"
+- Delete "$INSTDIR\clementine-spotifyblob.exe"
+ Delete "$INSTDIR\glew32.dll"
+ Delete "$INSTDIR\intl.dll"
+ Delete "$INSTDIR\libcdio-12.dll"
+@@ -1002,7 +998,6 @@
+ Delete "$INSTDIR\libqjson.dll"
+ Delete "$INSTDIR\libsoup-2.4-1.dll"
+ Delete "$INSTDIR\libspeex-1.dll"
+- Delete "$INSTDIR\libspotify.dll"
+ Delete "$INSTDIR\libtag.dll"
+ Delete "$INSTDIR\libtasn1-3.dll"
+ Delete "$INSTDIR\libusbmuxd.dll"
+diff -rauN clementine-1.0.1/src/CMakeLists.txt clementine-libre-1.0.1/src/CMakeLists.txt
+--- clementine-1.0.1/src/CMakeLists.txt 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/src/CMakeLists.txt 2012-05-30 02:50:15.725755468 -0300
+@@ -552,7 +552,6 @@
+ internet/internetviewcontainer.ui
+ internet/magnatunedownloaddialog.ui
+ internet/magnatunesettingspage.ui
+- internet/spotifysettingspage.ui
+
+ library/groupbydialog.ui
+ library/libraryfilterwidget.ui
+@@ -690,23 +689,6 @@
+ internet/lastfmstationdialog.ui
+ )
+
+-# Spotify
+-optional_source(HAVE_SPOTIFY
+- SOURCES
+- globalsearch/spotifysearchprovider.cpp
+- internet/spotifyblobdownloader.cpp
+- internet/spotifysearchplaylisttype.cpp
+- internet/spotifyserver.cpp
+- internet/spotifyservice.cpp
+- internet/spotifysettingspage.cpp
+- HEADERS
+- globalsearch/spotifysearchprovider.h
+- internet/spotifyblobdownloader.h
+- internet/spotifyserver.h
+- internet/spotifyservice.h
+- internet/spotifysettingspage.h
+-)
+-
+ optional_source(HAVE_QCA INCLUDE_DIRECTORIES ${QCA_INCLUDE_DIRS})
+
+ # Platform specific - OS X
+@@ -1037,14 +1019,6 @@
+ endif (LINUX)
+ endif(HAVE_BREAKPAD)
+
+-if(HAVE_SPOTIFY)
+- target_link_libraries(clementine_lib
+- clementine-spotifyblob-messages
+- ${QCA_LIBRARIES}
+- )
+- link_directories(${QCA_LIBRARY_DIRS})
+-endif(HAVE_SPOTIFY)
+-
+ if (APPLE)
+ target_link_libraries(clementine_lib
+ ${GROWL}
+@@ -1118,11 +1092,6 @@
+ clementine_lib
+ )
+
+-# macdeploy.py relies on the blob being built first.
+-if(HAVE_SPOTIFY_BLOB)
+- add_dependencies(clementine clementine-spotifyblob)
+-endif(HAVE_SPOTIFY_BLOB)
+-
+ set_target_properties(clementine PROPERTIES
+ MACOSX_BUNDLE_INFO_PLIST "../dist/Info.plist"
+ )
+diff -rauN clementine-1.0.1/src/config.h.in clementine-libre-1.0.1/src/config.h.in
+--- clementine-1.0.1/src/config.h.in 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/src/config.h.in 2012-05-28 18:17:13.027993639 -0300
+@@ -35,7 +35,6 @@
+ #cmakedefine HAVE_QCA
+ #cmakedefine HAVE_REMOTE
+ #cmakedefine HAVE_SPARKLE
+-#cmakedefine HAVE_SPOTIFY
+ #cmakedefine HAVE_STATIC_SQLITE
+ #cmakedefine HAVE_WIIMOTEDEV
+ #cmakedefine LEOPARD
+diff -rauN clementine-1.0.1/src/core/utilities.cpp clementine-libre-1.0.1/src/core/utilities.cpp
+--- clementine-1.0.1/src/core/utilities.cpp 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/src/core/utilities.cpp 2012-05-28 18:25:43.252728803 -0300
+@@ -277,9 +277,6 @@
+ return QDir::homePath();
+ #endif
+
+- case Path_LocalSpotifyBlob:
+- return GetConfigPath(Path_Root) + "/spotifyblob";
+-
+ default:
+ qFatal("%s", Q_FUNC_INFO);
+ return QString::null;
+diff -rauN clementine-1.0.1/src/core/utilities.h clementine-libre-1.0.1/src/core/utilities.h
+--- clementine-1.0.1/src/core/utilities.h 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/src/core/utilities.h 2012-05-28 18:27:31.686659381 -0300
+@@ -88,7 +88,6 @@
+ Path_NetworkCache,
+ Path_GstreamerRegistry,
+ Path_DefaultMusicLibrary,
+- Path_LocalSpotifyBlob,
+ };
+ QString GetConfigPath(ConfigPath config);
+
+diff -rauN clementine-1.0.1/src/covers/albumcoverloader.cpp clementine-libre-1.0.1/src/covers/albumcoverloader.cpp
+--- clementine-1.0.1/src/covers/albumcoverloader.cpp 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/covers/albumcoverloader.cpp 2012-05-28 18:34:26.543457483 -0300
+@@ -28,10 +28,6 @@
+ #include <QUrl>
+ #include <QNetworkReply>
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifyservice.h"
+-#endif
+-
+
+ AlbumCoverLoader::AlbumCoverLoader(QObject* parent)
+ : QObject(parent),
+@@ -40,8 +36,7 @@
+ scale_(true),
+ padding_(true),
+ next_id_(0),
+- network_(new NetworkAccessManager(this)),
+- connected_spotify_(false)
++ network_(new NetworkAccessManager(this))
+ {
+ }
+
+@@ -148,46 +143,12 @@
+
+ remote_tasks_.insert(reply, task);
+ return TryLoadResult(true, false, QImage());
+- } else if (filename.toLower().startsWith("spotify://image/")) {
+- // HACK: we should add generic image URL handlers
+- #ifdef HAVE_SPOTIFY
+- SpotifyService* spotify = InternetModel::Service<SpotifyService>();
+-
+- if (!connected_spotify_) {
+- connect(spotify, SIGNAL(ImageLoaded(QString,QImage)),
+- SLOT(SpotifyImageLoaded(QString,QImage)));
+- connected_spotify_ = true;
+- }
+-
+- QString id = QUrl(filename).path();
+- if (id.startsWith('/')) {
+- id.remove(0, 1);
+- }
+- remote_spotify_tasks_.insert(id, task);
+-
+- // Need to schedule this in the spotify service's thread
+- QMetaObject::invokeMethod(spotify, "LoadImage", Qt::QueuedConnection,
+- Q_ARG(QString, id));
+- return TryLoadResult(true, false, QImage());
+- #else
+- return TryLoadResult(false, false, QImage());
+- #endif
+ }
+
+ QImage image(filename);
+ return TryLoadResult(false, !image.isNull(), image.isNull() ? default_ : image);
+ }
+
+-void AlbumCoverLoader::SpotifyImageLoaded(const QString& id, const QImage& image) {
+- if (!remote_spotify_tasks_.contains(id))
+- return;
+-
+- Task task = remote_spotify_tasks_.take(id);
+- QImage scaled = ScaleAndPad(image);
+- emit ImageLoaded(task.id, scaled);
+- emit ImageLoaded(task.id, scaled, image);
+-}
+-
+ void AlbumCoverLoader::RemoteFetchFinished() {
+ QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
+ if (!reply)
+diff -rauN clementine-1.0.1/src/covers/albumcoverloader.h clementine-libre-1.0.1/src/covers/albumcoverloader.h
+--- clementine-1.0.1/src/covers/albumcoverloader.h 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/covers/albumcoverloader.h 2012-05-28 18:38:03.228006474 -0300
+@@ -65,7 +65,6 @@
+ protected slots:
+ void ProcessTasks();
+ void RemoteFetchFinished();
+- void SpotifyImageLoaded(const QString& url, const QImage& image);
+
+ protected:
+ enum State {
+@@ -108,13 +107,10 @@
+ QMutex mutex_;
+ QQueue<Task> tasks_;
+ QMap<QNetworkReply*, Task> remote_tasks_;
+- QMap<QString, Task> remote_spotify_tasks_;
+ quint64 next_id_;
+
+ NetworkAccessManager* network_;
+
+- bool connected_spotify_;
+-
+ static const int kMaxRedirects = 3;
+ };
+
+diff -rauN clementine-1.0.1/src/engines/gstenginepipeline.cpp clementine-libre-1.0.1/src/engines/gstenginepipeline.cpp
+--- clementine-1.0.1/src/engines/gstenginepipeline.cpp 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/engines/gstenginepipeline.cpp 2012-05-28 18:51:35.779395089 -0300
+@@ -26,11 +26,6 @@
+ #include "core/utilities.h"
+ #include "internet/internetmodel.h"
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifyserver.h"
+-# include "internet/spotifyservice.h"
+-#endif
+-
+ #include <QtConcurrentRun>
+
+ const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000;
+@@ -131,36 +126,6 @@
+ bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) {
+ GstElement* new_bin = NULL;
+
+- if (url.scheme() == "spotify") {
+- #ifdef HAVE_SPOTIFY
+- new_bin = gst_bin_new("spotify_bin");
+-
+- // Create elements
+- GstElement* src = engine_->CreateElement("tcpserversrc", new_bin);
+- GstElement* gdp = engine_->CreateElement("gdpdepay", new_bin);
+- if (!src || !gdp)
+- return false;
+-
+- // Pick a port number
+- const int port = Utilities::PickUnusedPort();
+- g_object_set(G_OBJECT(src), "host", "127.0.0.1", NULL);
+- g_object_set(G_OBJECT(src), "port", port, NULL);
+-
+- // Link the elements
+- gst_element_link(src, gdp);
+-
+- // Add a ghost pad
+- GstPad* pad = gst_element_get_static_pad(gdp, "src");
+- gst_element_add_pad(GST_ELEMENT(new_bin), gst_ghost_pad_new("src", pad));
+- gst_object_unref(GST_OBJECT(pad));
+-
+- // Tell spotify to start sending data to us.
+- InternetModel::Service<SpotifyService>()->server()->StartPlaybackLater(url.toString(), port);
+- #else // HAVE_SPOTIFY
+- qLog(Error) << "Tried to play a spotify:// url, but spotify support is not compiled in";
+- return false;
+- #endif
+- } else {
+ new_bin = engine_->CreateElement("uridecodebin");
+ g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), NULL);
+ g_object_set(G_OBJECT(new_bin), "buffer-duration", buffer_duration_nanosec_, NULL);
+@@ -169,7 +134,6 @@
+ g_signal_connect(G_OBJECT(new_bin), "drained", G_CALLBACK(SourceDrainedCallback), this);
+ g_signal_connect(G_OBJECT(new_bin), "pad-added", G_CALLBACK(NewPadCallback), this);
+ g_signal_connect(G_OBJECT(new_bin), "notify::source", G_CALLBACK(SourceSetupCallback), this);
+- }
+
+ return ReplaceDecodeBin(new_bin);
+ }
+diff -rauN clementine-1.0.1/src/globalsearch/spotifysearchprovider.cpp /dev/null
+--- clementine-1.0.1/src/globalsearch/spotifysearchprovider.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,208 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#include "spotifysearchprovider.h"
+-#include "core/logging.h"
+-#include "internet/internetmodel.h"
+-#include "internet/spotifyserver.h"
+-#include "internet/spotifyservice.h"
+-#include "playlist/songmimedata.h"
+-#include "spotifyblob/common/spotifymessagehandler.h"
+-
+-SpotifySearchProvider::SpotifySearchProvider(QObject* parent)
+- : SearchProvider(parent),
+- server_(NULL),
+- service_(NULL)
+-{
+- Init("Spotify", "spotify", QIcon(":icons/32x32/spotify.png"),
+- WantsDelayedQueries | WantsSerialisedArtQueries | ArtIsProbablyRemote |
+- CanShowConfig);
+-}
+-
+-SpotifyServer* SpotifySearchProvider::server() {
+- if (server_)
+- return server_;
+-
+- if (!service_)
+- service_ = InternetModel::Service<SpotifyService>();
+-
+- if (service_->login_state() != SpotifyService::LoginState_LoggedIn)
+- return NULL;
+-
+- server_ = service_->server();
+- connect(server_, SIGNAL(SearchResults(spotify_pb::SearchResponse)),
+- SLOT(SearchFinishedSlot(spotify_pb::SearchResponse)));
+- connect(server_, SIGNAL(ImageLoaded(QString,QImage)),
+- SLOT(ArtLoadedSlot(QString,QImage)));
+- connect(server_, SIGNAL(AlbumBrowseResults(spotify_pb::BrowseAlbumResponse)),
+- SLOT(AlbumBrowseResponse(spotify_pb::BrowseAlbumResponse)));
+- connect(server_, SIGNAL(destroyed()), SLOT(ServerDestroyed()));
+-
+- return server_;
+-}
+-
+-void SpotifySearchProvider::ServerDestroyed() {
+- server_ = NULL;
+-}
+-
+-void SpotifySearchProvider::SearchAsync(int id, const QString& query) {
+- SpotifyServer* s = server();
+- if (!s) {
+- emit SearchFinished(id);
+- return;
+- }
+-
+- PendingState state;
+- state.orig_id_ = id;
+- state.tokens_ = TokenizeQuery(query);
+-
+- const QString query_string = state.tokens_.join(" ");
+- s->Search(query_string, 5, 5);
+- queries_[query_string] = state;
+-}
+-
+-void SpotifySearchProvider::SearchFinishedSlot(const spotify_pb::SearchResponse& response) {
+- QString query_string = QString::fromUtf8(response.request().query().c_str());
+- QMap<QString, PendingState>::iterator it = queries_.find(query_string);
+- if (it == queries_.end())
+- return;
+-
+- PendingState state = it.value();
+- queries_.erase(it);
+-
+- ResultList ret;
+- for (int i=0; i < response.result_size() ; ++i) {
+- const spotify_pb::Track& track = response.result(i);
+-
+- Result result(this);
+- result.type_ = globalsearch::Type_Track;
+- SpotifyService::SongFromProtobuf(track, &result.metadata_);
+- result.match_quality_ = MatchQuality(state.tokens_, result.metadata_.title());
+-
+- ret << result;
+- }
+-
+- for (int i=0 ; i<response.album_size() ; ++i) {
+- const spotify_pb::Album& album = response.album(i);
+-
+- Result result(this);
+- result.type_ = globalsearch::Type_Album;
+- SpotifyService::SongFromProtobuf(album.metadata(), &result.metadata_);
+- result.match_quality_ =
+- qMin(MatchQuality(state.tokens_, result.metadata_.album()),
+- MatchQuality(state.tokens_, result.metadata_.artist()));
+- result.album_size_ = album.metadata().track();
+-
+- for (int j=0; j < album.track_size() ; ++j) {
+- Song track_song;
+- SpotifyService::SongFromProtobuf(album.track(j), &track_song);
+- result.album_songs_ << track_song;
+- }
+-
+- ret << result;
+- }
+-
+- emit ResultsAvailable(state.orig_id_, ret);
+- emit SearchFinished(state.orig_id_);
+-}
+-
+-void SpotifySearchProvider::LoadArtAsync(int id, const Result& result) {
+- SpotifyServer* s = server();
+- if (!s) {
+- emit ArtLoaded(id, QImage());
+- return;
+- }
+-
+- QString image_id = QUrl(result.metadata_.art_automatic()).path();
+- if (image_id.startsWith('/'))
+- image_id.remove(0, 1);
+-
+- pending_art_[image_id] = id;
+- s->LoadImage(image_id);
+-}
+-
+-void SpotifySearchProvider::ArtLoadedSlot(const QString& id, const QImage& image) {
+- QMap<QString, int>::iterator it = pending_art_.find(id);
+- if (it == pending_art_.end())
+- return;
+-
+- const int orig_id = it.value();
+- pending_art_.erase(it);
+-
+- emit ArtLoaded(orig_id, ScaleAndPad(image));
+-}
+-
+-void SpotifySearchProvider::LoadTracksAsync(int id, const Result& result) {
+- switch (result.type_) {
+- case globalsearch::Type_Track: {
+- SongMimeData* mime_data = new SongMimeData;
+- mime_data->songs = SongList() << result.metadata_;
+- emit TracksLoaded(id, mime_data);
+- break;
+- }
+-
+- case globalsearch::Type_Album: {
+- SpotifyServer* s = server();
+- if (!s) {
+- emit TracksLoaded(id, NULL);
+- return;
+- }
+-
+- QString uri = result.metadata_.url().toString();
+-
+- pending_tracks_[uri] = id;
+- s->AlbumBrowse(uri);
+- break;
+- }
+-
+- default:
+- break;
+- }
+-}
+-
+-void SpotifySearchProvider::AlbumBrowseResponse(const spotify_pb::BrowseAlbumResponse& response) {
+- QString uri = QStringFromStdString(response.uri());
+- QMap<QString, int>::iterator it = pending_tracks_.find(uri);
+- if (it == pending_tracks_.end())
+- return;
+-
+- const int orig_id = it.value();
+- pending_tracks_.erase(it);
+-
+- SongMimeData* mime_data = new SongMimeData;
+-
+- for (int i=0 ; i<response.track_size() ; ++i) {
+- Song song;
+- SpotifyService::SongFromProtobuf(response.track(i), &song);
+- mime_data->songs << song;
+- }
+-
+- emit TracksLoaded(orig_id, mime_data);
+-}
+-
+-bool SpotifySearchProvider::IsLoggedIn() {
+- if (server()) {
+- return service_->IsLoggedIn();
+- }
+- return false;
+-}
+-
+-void SpotifySearchProvider::ShowConfig() {
+- if (service_) {
+- return service_->ShowConfig();
+- }
+-}
+diff -rauN clementine-1.0.1/src/globalsearch/spotifysearchprovider.h /dev/null
+--- clementine-1.0.1/src/globalsearch/spotifysearchprovider.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,60 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#ifndef SPOTIFYSEARCHPROVIDER_H
+-#define SPOTIFYSEARCHPROVIDER_H
+-
+-#include "searchprovider.h"
+-#include "spotifyblob/common/spotifymessages.pb.h"
+-
+-class SpotifyServer;
+-class SpotifyService;
+-
+-
+-class SpotifySearchProvider : public SearchProvider {
+- Q_OBJECT
+-
+-public:
+- SpotifySearchProvider(QObject* parent = 0);
+-
+- void SearchAsync(int id, const QString& query);
+- void LoadArtAsync(int id, const Result& result);
+- void LoadTracksAsync(int id, const Result& result);
+-
+- bool IsLoggedIn();
+- void ShowConfig();
+-
+-private slots:
+- void ServerDestroyed();
+- void SearchFinishedSlot(const spotify_pb::SearchResponse& response);
+- void ArtLoadedSlot(const QString& id, const QImage& image);
+-
+- void AlbumBrowseResponse(const spotify_pb::BrowseAlbumResponse& response);
+-
+-private:
+- SpotifyServer* server();
+-
+-private:
+- SpotifyServer* server_;
+- SpotifyService* service_;
+-
+- QMap<QString, PendingState> queries_;
+- QMap<QString, int> pending_art_;
+- QMap<QString, int> pending_tracks_;
+-};
+-
+-#endif // SPOTIFYSEARCHPROVIDER_H
+diff -rauN clementine-1.0.1/src/internet/internetmodel.cpp clementine-libre-1.0.1/src/internet/internetmodel.cpp
+--- clementine-1.0.1/src/internet/internetmodel.cpp 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/internet/internetmodel.cpp 2012-05-28 18:56:58.934758916 -0300
+@@ -32,9 +32,6 @@
+ #ifdef HAVE_LIBLASTFM
+ #include "lastfmservice.h"
+ #endif
+-#ifdef HAVE_SPOTIFY
+- #include "spotifyservice.h"
+-#endif
+
+ #include <QMimeData>
+ #include <QtDebug>
+@@ -75,9 +72,6 @@
+ AddService(new SavedRadio(this));
+ AddService(new SkyFmService(this));
+ AddService(new SomaFMService(this));
+-#ifdef HAVE_SPOTIFY
+- AddService(new SpotifyService(this));
+-#endif
+ }
+
+ void InternetModel::AddService(InternetService *service) {
+diff -rauN clementine-1.0.1/src/internet/spotifyblobdownloader.cpp /dev/null
+--- clementine-1.0.1/src/internet/spotifyblobdownloader.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,222 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#include "config.h"
+-#include "spotifyblobdownloader.h"
+-#include "spotifyservice.h"
+-#include "core/logging.h"
+-#include "core/network.h"
+-#include "core/utilities.h"
+-
+-#include <QDir>
+-#include <QMessageBox>
+-#include <QNetworkReply>
+-#include <QProgressDialog>
+-
+-#ifdef HAVE_QCA
+- #include <QtCrypto>
+-#endif // HAVE_QCA
+-
+-const char* SpotifyBlobDownloader::kSignatureSuffix = ".sha1";
+-
+-
+-SpotifyBlobDownloader::SpotifyBlobDownloader(
+- const QString& version, const QString& path, QObject* parent)
+- : QObject(parent),
+- version_(version),
+- path_(path),
+- network_(new NetworkAccessManager(this)),
+- progress_(new QProgressDialog(tr("Downloading Spotify plugin"), tr("Cancel"), 0, 0))
+-{
+- progress_->setWindowTitle(QCoreApplication::applicationName());
+- connect(progress_, SIGNAL(canceled()), SLOT(Cancel()));
+-}
+-
+-SpotifyBlobDownloader::~SpotifyBlobDownloader() {
+- qDeleteAll(replies_);
+- replies_.clear();
+-
+- delete progress_;
+-}
+-
+-bool SpotifyBlobDownloader::Prompt() {
+- QMessageBox::StandardButton ret = QMessageBox::question(NULL,
+- tr("Spotify plugin not installed"),
+- tr("An additional plugin is required to use Spotify in Clementine. Would you like to download and install it now?"),
+- QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
+- return ret == QMessageBox::Yes;
+-}
+-
+-void SpotifyBlobDownloader::Start() {
+- qDeleteAll(replies_);
+- replies_.clear();
+-
+- const QStringList filenames = QStringList()
+- << "blob"
+- << "blob" + QString(kSignatureSuffix)
+- << "libspotify.so.10.1.16"
+- << "libspotify.so.10.1.16" + QString(kSignatureSuffix);
+-
+- foreach (const QString& filename, filenames) {
+- const QUrl url(SpotifyService::kBlobDownloadUrl + version_ + "/" + filename);
+- qLog(Info) << "Downloading" << url;
+-
+- QNetworkReply* reply = network_->get(QNetworkRequest(url));
+- connect(reply, SIGNAL(finished()), SLOT(ReplyFinished()));
+- connect(reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(ReplyProgress()));
+-
+- replies_ << reply;
+- }
+-
+- progress_->show();
+-}
+-
+-void SpotifyBlobDownloader::ReplyFinished() {
+- QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
+- if (reply->error() != QNetworkReply::NoError) {
+- // Handle network errors
+- ShowError(reply->errorString());
+- return;
+- }
+-
+- // Is everything finished?
+- foreach (QNetworkReply* reply, replies_) {
+- if (!reply->isFinished()) {
+- return;
+- }
+- }
+-
+- // Read files into memory first.
+- QMap<QString, QByteArray> file_data;
+- QStringList signature_filenames;
+-
+- foreach (QNetworkReply* reply, replies_) {
+- const QString filename = reply->url().path().section('/', -1, -1);
+-
+- if (filename.endsWith(kSignatureSuffix)) {
+- signature_filenames << filename;
+- }
+-
+- file_data[filename] = reply->readAll();
+- }
+-
+-#ifdef HAVE_QCA
+- // Load the public key
+- QCA::ConvertResult conversion_result;
+- QCA::PublicKey key = QCA::PublicKey::fromPEMFile(":/clementine-spotify-public.pem",
+- &conversion_result);
+- if (QCA::ConvertGood != conversion_result) {
+- ShowError("Failed to load Spotify public key");
+- return;
+- }
+-
+- // Verify signatures
+- foreach (const QString& signature_filename, signature_filenames) {
+- QString actual_filename = signature_filename;
+- actual_filename.remove(kSignatureSuffix);
+-
+- qLog(Debug) << "Verifying" << actual_filename << "against" << signature_filename;
+-
+- if (!key.verifyMessage(file_data[actual_filename],
+- file_data[signature_filename],
+- QCA::EMSA3_SHA1)) {
+- ShowError("Invalid signature: " + actual_filename);
+- return;
+- }
+- }
+-#endif // HAVE_QCA
+-
+- // Make the destination directory and write the files into it
+- QDir().mkpath(path_);
+-
+- foreach (const QString& filename, file_data.keys()) {
+- const QString dest_path = path_ + "/" + filename;
+-
+- if (filename.endsWith(kSignatureSuffix))
+- continue;
+-
+- qLog(Info) << "Writing" << dest_path;
+-
+- QFile file(dest_path);
+- if (!file.open(QIODevice::WriteOnly)) {
+- ShowError("Failed to open " + dest_path + " for writing");
+- return;
+- }
+-
+- file.write(file_data[filename]);
+- file.close();
+- file.setPermissions(QFile::Permissions(0x7755));
+-
+-#ifdef Q_OS_UNIX
+- const int so_pos = filename.lastIndexOf(".so.");
+- if (so_pos != -1) {
+- QString link_path = path_ + "/" + filename.left(so_pos + 3);
+- QStringList version_parts = filename.mid(so_pos + 4).split('.');
+-
+- while (!version_parts.isEmpty()) {
+- qLog(Debug) << "Linking" << dest_path << "to" << link_path;
+- int ret = symlink(dest_path.toLocal8Bit().constData(),
+- link_path.toLocal8Bit().constData());
+-
+- if (ret != 0) {
+- qLog(Warning) << "Creating symlink failed with return code" << ret;
+- }
+-
+- link_path += "." + version_parts.takeFirst();
+- }
+- }
+-#endif // Q_OS_UNIX
+- }
+-
+- EmitFinished();
+-}
+-
+-void SpotifyBlobDownloader::ReplyProgress() {
+- int progress = 0;
+- int total = 0;
+-
+- foreach (QNetworkReply* reply, replies_) {
+- progress += reply->bytesAvailable();
+- total += reply->rawHeader("Content-Length").toInt();
+- }
+-
+- progress_->setMaximum(total);
+- progress_->setValue(progress);
+-}
+-
+-void SpotifyBlobDownloader::Cancel() {
+- deleteLater();
+-}
+-
+-void SpotifyBlobDownloader::ShowError(const QString& message) {
+- // Stop any remaining replies before showing the dialog so they don't
+- // carry on in the background
+- foreach (QNetworkReply* reply, replies_) {
+- disconnect(reply, 0, this, 0);
+- reply->abort();
+- }
+-
+- qLog(Warning) << message;
+- QMessageBox::warning(NULL, tr("Error downloading Spotify plugin"), message,
+- QMessageBox::Close);
+- deleteLater();
+-}
+-
+-void SpotifyBlobDownloader::EmitFinished() {
+- emit Finished();
+- deleteLater();
+-}
+diff -rauN clementine-1.0.1/src/internet/spotifyblobdownloader.h /dev/null
+--- clementine-1.0.1/src/internet/spotifyblobdownloader.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,63 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#ifndef SPOTIFYBLOBDOWNLOADER_H
+-#define SPOTIFYBLOBDOWNLOADER_H
+-
+-#include <QObject>
+-
+-class QNetworkAccessManager;
+-class QNetworkReply;
+-class QProgressDialog;
+-
+-class SpotifyBlobDownloader : public QObject {
+- Q_OBJECT
+-
+-public:
+- SpotifyBlobDownloader(const QString& version, const QString& path,
+- QObject* parent = 0);
+- ~SpotifyBlobDownloader();
+-
+- static const char* kSignatureSuffix;
+-
+- static bool Prompt();
+-
+- void Start();
+-
+-signals:
+- void Finished();
+-
+-private slots:
+- void ReplyFinished();
+- void ReplyProgress();
+- void Cancel();
+-
+-private:
+- void ShowError(const QString& message);
+- void EmitFinished();
+-
+-private:
+- QString version_;
+- QString path_;
+-
+- QNetworkAccessManager* network_;
+- QList<QNetworkReply*> replies_;
+-
+- QProgressDialog* progress_;
+-};
+-
+-#endif // SPOTIFYBLOBDOWNLOADER_H
+diff -rauN clementine-1.0.1/src/internet/spotifysearchplaylisttype.cpp /dev/null
+--- clementine-1.0.1/src/internet/spotifysearchplaylisttype.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,49 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#include "spotifysearchplaylisttype.h"
+-#include "spotifyservice.h"
+-
+-const char* SpotifySearchPlaylistType::kName = "spotify-search";
+-
+-SpotifySearchPlaylistType::SpotifySearchPlaylistType(SpotifyService* service)
+- : service_(service) {
+-}
+-
+-QIcon SpotifySearchPlaylistType::icon(Playlist* playlist) const {
+- return QIcon(":icons/32x32/spotify.png");
+-}
+-
+-QString SpotifySearchPlaylistType::search_hint_text(Playlist* playlist) const {
+- return QObject::tr("Search Spotify");
+-}
+-
+-QString SpotifySearchPlaylistType::empty_playlist_text(Playlist* playlist) const {
+- return QObject::tr("Start typing in the search box above to find music on %1.").arg("Spotify");
+-}
+-
+-bool SpotifySearchPlaylistType::has_special_search_behaviour(Playlist* playlist) const {
+- return true;
+-}
+-
+-void SpotifySearchPlaylistType::Search(const QString& text, Playlist* playlist) {
+- service_->Search(text, playlist);
+-}
+-
+-void SpotifySearchPlaylistType::DidYouMeanClicked(const QString& text, Playlist* playlist) {
+- service_->Search(text, playlist, true);
+-}
+diff -rauN clementine-1.0.1/src/internet/spotifysearchplaylisttype.h /dev/null
+--- clementine-1.0.1/src/internet/spotifysearchplaylisttype.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,44 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#ifndef SPOTIFYSEARCHPLAYLISTTYPE_H
+-#define SPOTIFYSEARCHPLAYLISTTYPE_H
+-
+-#include "playlist/specialplaylisttype.h"
+-
+-class SpotifyService;
+-
+-class SpotifySearchPlaylistType : public SpecialPlaylistType {
+-public:
+- SpotifySearchPlaylistType(SpotifyService* service);
+-
+- static const char* kName;
+- virtual QString name() const { return kName; }
+-
+- virtual QIcon icon(Playlist* playlist) const;
+- virtual QString search_hint_text(Playlist* playlist) const;
+- virtual QString empty_playlist_text(Playlist* playlist) const;
+-
+- virtual bool has_special_search_behaviour(Playlist* playlist) const;
+- virtual void Search(const QString& text, Playlist* playlist);
+- virtual void DidYouMeanClicked(const QString& text, Playlist* playlist);
+-
+-private:
+- SpotifyService* service_;
+-};
+-
+-#endif // SPOTIFYSEARCHPLAYLISTTYPE_H
+diff -rauN clementine-1.0.1/src/internet/spotifyserver.cpp /dev/null
+--- clementine-1.0.1/src/internet/spotifyserver.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,261 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#include "spotifyserver.h"
+-#include "core/closure.h"
+-#include "core/logging.h"
+-
+-#include "spotifyblob/common/spotifymessages.pb.h"
+-#include "spotifyblob/common/spotifymessagehandler.h"
+-
+-#include <QTcpServer>
+-#include <QTcpSocket>
+-#include <QTimer>
+-
+-SpotifyServer::SpotifyServer(QObject* parent)
+- : QObject(parent),
+- server_(new QTcpServer(this)),
+- protocol_socket_(NULL),
+- handler_(NULL),
+- logged_in_(false)
+-{
+- connect(server_, SIGNAL(newConnection()), SLOT(NewConnection()));
+-}
+-
+-void SpotifyServer::Init() {
+- if (!server_->listen(QHostAddress::LocalHost)) {
+- qLog(Error) << "Couldn't open server socket" << server_->errorString();
+- }
+-}
+-
+-int SpotifyServer::server_port() const {
+- return server_->serverPort();
+-}
+-
+-void SpotifyServer::NewConnection() {
+- delete protocol_socket_;
+- delete handler_;
+-
+- protocol_socket_ = server_->nextPendingConnection();
+- handler_ = new SpotifyMessageHandler(protocol_socket_, this);
+- connect(handler_, SIGNAL(MessageArrived(spotify_pb::SpotifyMessage)),
+- SLOT(HandleMessage(spotify_pb::SpotifyMessage)));
+-
+- qLog(Info) << "Connection from port" << protocol_socket_->peerPort();
+-
+- // Send any login messages that were queued before the client connected
+- foreach (const spotify_pb::SpotifyMessage& message, queued_login_messages_) {
+- SendMessage(message);
+- }
+- queued_login_messages_.clear();
+-}
+-
+-void SpotifyServer::SendMessage(const spotify_pb::SpotifyMessage& message) {
+- const bool is_login_message = message.has_login_request();
+-
+- QList<spotify_pb::SpotifyMessage>* queue =
+- is_login_message ? &queued_login_messages_ : &queued_messages_;
+-
+- if (!protocol_socket_ || (!is_login_message && !logged_in_)) {
+- queue->append(message);
+- } else {
+- handler_->SendMessage(message);
+- }
+-}
+-
+-void SpotifyServer::Login(const QString& username, const QString& password,
+- spotify_pb::Bitrate bitrate, bool volume_normalisation) {
+- spotify_pb::SpotifyMessage message;
+-
+- spotify_pb::LoginRequest* request = message.mutable_login_request();
+- request->set_username(DataCommaSizeFromQString(username));
+- if (!password.isEmpty()) {
+- request->set_password(DataCommaSizeFromQString(password));
+- }
+- request->mutable_playback_settings()->set_bitrate(bitrate);
+- request->mutable_playback_settings()->set_volume_normalisation(volume_normalisation);
+-
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::SetPlaybackSettings(spotify_pb::Bitrate bitrate, bool volume_normalisation) {
+- spotify_pb::SpotifyMessage message;
+-
+- spotify_pb::PlaybackSettings* request = message.mutable_set_playback_settings_request();
+- request->set_bitrate(bitrate);
+- request->set_volume_normalisation(volume_normalisation);
+-
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::HandleMessage(const spotify_pb::SpotifyMessage& message) {
+- if (message.has_login_response()) {
+- const spotify_pb::LoginResponse& response = message.login_response();
+- logged_in_ = response.success();
+-
+- if (response.success()) {
+- // Send any messages that were queued before the client logged in
+- foreach (const spotify_pb::SpotifyMessage& message, queued_messages_) {
+- SendMessage(message);
+- }
+- queued_messages_.clear();
+- }
+-
+- emit LoginCompleted(response.success(), QStringFromStdString(response.error()),
+- response.error_code());
+- } else if (message.has_playlists_updated()) {
+- emit PlaylistsUpdated(message.playlists_updated());
+- } else if (message.has_load_playlist_response()) {
+- const spotify_pb::LoadPlaylistResponse& response = message.load_playlist_response();
+-
+- switch (response.request().type()) {
+- case spotify_pb::Inbox:
+- emit InboxLoaded(response);
+- break;
+-
+- case spotify_pb::Starred:
+- emit StarredLoaded(response);
+- break;
+-
+- case spotify_pb::UserPlaylist:
+- emit UserPlaylistLoaded(response);
+- break;
+- }
+- } else if (message.has_playback_error()) {
+- emit PlaybackError(QStringFromStdString(message.playback_error().error()));
+- } else if (message.has_search_response()) {
+- emit SearchResults(message.search_response());
+- } else if (message.has_image_response()) {
+- const spotify_pb::ImageResponse& response = message.image_response();
+- const QString id = QStringFromStdString(response.id());
+-
+- if (response.has_data()) {
+- emit ImageLoaded(id, QImage::fromData(QByteArray(
+- response.data().data(), response.data().size())));
+- } else {
+- emit ImageLoaded(id, QImage());
+- }
+- } else if (message.has_sync_playlist_progress()) {
+- emit SyncPlaylistProgress(message.sync_playlist_progress());
+- } else if (message.has_browse_album_response()) {
+- emit AlbumBrowseResults(message.browse_album_response());
+- }
+-}
+-
+-void SpotifyServer::LoadPlaylist(spotify_pb::PlaylistType type, int index) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::LoadPlaylistRequest* req = message.mutable_load_playlist_request();
+-
+- req->set_type(type);
+- if (index != -1) {
+- req->set_user_playlist_index(index);
+- }
+-
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::SyncPlaylist(
+- spotify_pb::PlaylistType type, int index, bool offline) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::SyncPlaylistRequest* req = message.mutable_sync_playlist_request();
+- req->mutable_request()->set_type(type);
+- if (index != -1) {
+- req->mutable_request()->set_user_playlist_index(index);
+- }
+- req->set_offline_sync(offline);
+-
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::SyncInbox() {
+- SyncPlaylist(spotify_pb::Inbox, -1, true);
+-}
+-
+-void SpotifyServer::SyncStarred() {
+- SyncPlaylist(spotify_pb::Starred, -1, true);
+-}
+-
+-void SpotifyServer::SyncUserPlaylist(int index) {
+- Q_ASSERT(index >= 0);
+- SyncPlaylist(spotify_pb::UserPlaylist, index, true);
+-}
+-
+-void SpotifyServer::LoadInbox() {
+- LoadPlaylist(spotify_pb::Inbox);
+-}
+-
+-void SpotifyServer::LoadStarred() {
+- LoadPlaylist(spotify_pb::Starred);
+-}
+-
+-void SpotifyServer::LoadUserPlaylist(int index) {
+- Q_ASSERT(index >= 0);
+- LoadPlaylist(spotify_pb::UserPlaylist, index);
+-}
+-
+-void SpotifyServer::StartPlaybackLater(const QString& uri, quint16 port) {
+- QTimer* timer = new QTimer(this);
+- connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()));
+-
+- timer->start(100); // lol
+- NewClosure(timer, SIGNAL(timeout()),
+- this, SLOT(StartPlayback(QString,quint16)),
+- uri, port);
+-}
+-
+-void SpotifyServer::StartPlayback(const QString& uri, quint16 port) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::PlaybackRequest* req = message.mutable_playback_request();
+-
+- req->set_track_uri(DataCommaSizeFromQString(uri));
+- req->set_media_port(port);
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::Seek(qint64 offset_bytes) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::SeekRequest* req = message.mutable_seek_request();
+-
+- req->set_offset_bytes(offset_bytes);
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::Search(const QString& text, int limit, int limit_album) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::SearchRequest* req = message.mutable_search_request();
+-
+- req->set_query(DataCommaSizeFromQString(text));
+- req->set_limit(limit);
+- req->set_limit_album(limit_album);
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::LoadImage(const QString& id) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::ImageRequest* req = message.mutable_image_request();
+-
+- req->set_id(DataCommaSizeFromQString(id));
+- SendMessage(message);
+-}
+-
+-void SpotifyServer::AlbumBrowse(const QString& uri) {
+- spotify_pb::SpotifyMessage message;
+- spotify_pb::BrowseAlbumRequest* req = message.mutable_browse_album_request();
+-
+- req->set_uri(DataCommaSizeFromQString(uri));
+- SendMessage(message);
+-}
+diff -rauN clementine-1.0.1/src/internet/spotifyserver.h /dev/null
+--- clementine-1.0.1/src/internet/spotifyserver.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,91 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#ifndef SPOTIFYSERVER_H
+-#define SPOTIFYSERVER_H
+-
+-#include "spotifyblob/common/spotifymessages.pb.h"
+-
+-#include <QImage>
+-#include <QObject>
+-
+-class SpotifyMessageHandler;
+-
+-class QTcpServer;
+-class QTcpSocket;
+-
+-class SpotifyServer : public QObject {
+- Q_OBJECT
+-
+-public:
+- SpotifyServer(QObject* parent = 0);
+-
+- void Init();
+- void Login(const QString& username, const QString& password,
+- spotify_pb::Bitrate bitrate, bool volume_normalisation);
+-
+- void LoadStarred();
+- void SyncStarred();
+- void LoadInbox();
+- void SyncInbox();
+- void LoadUserPlaylist(int index);
+- void SyncUserPlaylist(int index);
+- void StartPlaybackLater(const QString& uri, quint16 port);
+- void Search(const QString& text, int limit, int limit_album = 0);
+- void LoadImage(const QString& id);
+- void AlbumBrowse(const QString& uri);
+- void SetPlaybackSettings(spotify_pb::Bitrate bitrate, bool volume_normalisation);
+-
+- int server_port() const;
+-
+-public slots:
+- void StartPlayback(const QString& uri, quint16 port);
+- void Seek(qint64 offset_bytes);
+-
+-signals:
+- void LoginCompleted(bool success, const QString& error,
+- spotify_pb::LoginResponse_Error error_code);
+- void PlaylistsUpdated(const spotify_pb::Playlists& playlists);
+-
+- void StarredLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void InboxLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void UserPlaylistLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void PlaybackError(const QString& message);
+- void SearchResults(const spotify_pb::SearchResponse& response);
+- void ImageLoaded(const QString& id, const QImage& image);
+- void SyncPlaylistProgress(const spotify_pb::SyncPlaylistProgress& progress);
+- void AlbumBrowseResults(const spotify_pb::BrowseAlbumResponse& response);
+-
+-private slots:
+- void NewConnection();
+- void HandleMessage(const spotify_pb::SpotifyMessage& message);
+-
+-private:
+- void LoadPlaylist(spotify_pb::PlaylistType type, int index = -1);
+- void SyncPlaylist(spotify_pb::PlaylistType type, int index, bool offline);
+- void SendMessage(const spotify_pb::SpotifyMessage& message);
+-
+- QTcpServer* server_;
+- QTcpSocket* protocol_socket_;
+- SpotifyMessageHandler* handler_;
+- bool logged_in_;
+-
+- QList<spotify_pb::SpotifyMessage> queued_login_messages_;
+- QList<spotify_pb::SpotifyMessage> queued_messages_;
+-};
+-
+-#endif // SPOTIFYSERVER_H
+diff -rauN clementine-1.0.1/src/internet/spotifyservice.cpp /dev/null
+--- clementine-1.0.1/src/internet/spotifyservice.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,669 +0,0 @@
+-#include "config.h"
+-#include "internetmodel.h"
+-#include "spotifyblobdownloader.h"
+-#include "spotifyserver.h"
+-#include "spotifyservice.h"
+-#include "spotifysearchplaylisttype.h"
+-#include "core/database.h"
+-#include "core/logging.h"
+-#include "core/player.h"
+-#include "core/taskmanager.h"
+-#include "core/timeconstants.h"
+-#include "core/utilities.h"
+-#include "globalsearch/globalsearch.h"
+-#include "globalsearch/spotifysearchprovider.h"
+-#include "playlist/playlist.h"
+-#include "playlist/playlistcontainer.h"
+-#include "playlist/playlistmanager.h"
+-#include "spotifyblob/common/blobversion.h"
+-#include "spotifyblob/common/spotifymessagehandler.h"
+-#include "widgets/didyoumean.h"
+-#include "ui/iconloader.h"
+-
+-#include <QCoreApplication>
+-#include <QFile>
+-#include <QFileInfo>
+-#include <QMenu>
+-#include <QMessageBox>
+-#include <QProcess>
+-#include <QSettings>
+-#include <QVariant>
+-
+-Q_DECLARE_METATYPE(QStandardItem*);
+-
+-const char* SpotifyService::kServiceName = "Spotify";
+-const char* SpotifyService::kSettingsGroup = "Spotify";
+-const char* SpotifyService::kBlobDownloadUrl = "http://spotify.clementine-player.org/";
+-const int SpotifyService::kSearchDelayMsec = 400;
+-
+-SpotifyService::SpotifyService(InternetModel* parent)
+- : InternetService(kServiceName, parent, parent),
+- server_(NULL),
+- blob_process_(NULL),
+- root_(NULL),
+- search_(NULL),
+- starred_(NULL),
+- inbox_(NULL),
+- login_task_id_(0),
+- pending_search_playlist_(NULL),
+- context_menu_(NULL),
+- search_delay_(new QTimer(this)),
+- login_state_(LoginState_OtherError),
+- bitrate_(spotify_pb::Bitrate320k),
+- volume_normalisation_(false)
+-{
+- // Build the search path for the binary blob.
+- // Look for one distributed alongside clementine first, then check in the
+- // user's home directory for any that have been downloaded.
+-#ifdef Q_OS_MAC
+- system_blob_path_ = QCoreApplication::applicationDirPath() +
+- "/../PlugIns/clementine-spotifyblob";
+-#else
+- system_blob_path_ = QCoreApplication::applicationDirPath() +
+- "/clementine-spotifyblob" CMAKE_EXECUTABLE_SUFFIX;
+-#endif
+-
+- local_blob_version_ = QString("version%1-%2bit").arg(SPOTIFY_BLOB_VERSION).arg(sizeof(void*) * 8);
+- local_blob_path_ = Utilities::GetConfigPath(Utilities::Path_LocalSpotifyBlob) +
+- "/" + local_blob_version_ + "/blob";
+-
+- qLog(Debug) << "Spotify system blob path:" << system_blob_path_;
+- qLog(Debug) << "Spotify local blob path:" << local_blob_path_;
+-
+- model()->player()->playlists()->RegisterSpecialPlaylistType(
+- new SpotifySearchPlaylistType(this));
+-
+- model()->global_search()->AddProvider(new SpotifySearchProvider(this));
+-
+- search_delay_->setInterval(kSearchDelayMsec);
+- search_delay_->setSingleShot(true);
+- connect(search_delay_, SIGNAL(timeout()), SLOT(DoSearch()));
+-}
+-
+-SpotifyService::~SpotifyService() {
+- if (blob_process_ && blob_process_->state() == QProcess::Running) {
+- qLog(Info) << "Terminating blob process...";
+- blob_process_->terminate();
+- blob_process_->waitForFinished(1000);
+- }
+-}
+-
+-QStandardItem* SpotifyService::CreateRootItem() {
+- root_ = new QStandardItem(QIcon(":icons/22x22/spotify.png"), kServiceName);
+- root_->setData(true, InternetModel::Role_CanLazyLoad);
+- return root_;
+-}
+-
+-void SpotifyService::LazyPopulate(QStandardItem* item) {
+- switch (item->data(InternetModel::Role_Type).toInt()) {
+- case InternetModel::Type_Service:
+- EnsureServerCreated();
+- break;
+-
+- case Type_SearchResults:
+- break;
+-
+- case Type_InboxPlaylist:
+- EnsureServerCreated();
+- server_->LoadInbox();
+- break;
+-
+- case Type_StarredPlaylist:
+- EnsureServerCreated();
+- server_->LoadStarred();
+- break;
+-
+- case InternetModel::Type_UserPlaylist:
+- EnsureServerCreated();
+- server_->LoadUserPlaylist(item->data(Role_UserPlaylistIndex).toInt());
+- break;
+-
+- default:
+- break;
+- }
+-
+- return;
+-}
+-
+-QModelIndex SpotifyService::GetCurrentIndex() {
+- return QModelIndex();
+-}
+-
+-void SpotifyService::Login(const QString& username, const QString& password) {
+- Logout();
+- EnsureServerCreated(username, password);
+-}
+-
+-void SpotifyService::LoginCompleted(bool success, const QString& error,
+- spotify_pb::LoginResponse_Error error_code) {
+- if (login_task_id_) {
+- model()->task_manager()->SetTaskFinished(login_task_id_);
+- login_task_id_ = 0;
+- }
+-
+- if (!success) {
+- bool show_error_dialog = true;
+- QString error_copy(error);
+-
+- switch (error_code) {
+- case spotify_pb::LoginResponse_Error_BadUsernameOrPassword:
+- login_state_ = LoginState_BadCredentials;
+- break;
+-
+- case spotify_pb::LoginResponse_Error_UserBanned:
+- login_state_ = LoginState_Banned;
+- break;
+-
+- case spotify_pb::LoginResponse_Error_UserNeedsPremium:
+- login_state_ = LoginState_NoPremium;
+- break;
+-
+- case spotify_pb::LoginResponse_Error_ReloginFailed:
+- if (login_state_ == LoginState_LoggedIn) {
+- // This is the first time the relogin has failed - show a message this
+- // time only.
+- error_copy = tr("You have been logged out of Spotify, please re-enter your password in the Settings dialog.");
+- } else {
+- show_error_dialog = false;
+- }
+-
+- login_state_ = LoginState_ReloginFailed;
+- break;
+-
+- default:
+- login_state_ = LoginState_OtherError;
+- break;
+- }
+-
+- if (show_error_dialog) {
+- QMessageBox::warning(NULL, tr("Spotify login error"), error_copy, QMessageBox::Close);
+- }
+- } else {
+- login_state_ = LoginState_LoggedIn;
+- }
+-
+- QSettings s;
+- s.beginGroup(kSettingsGroup);
+- s.setValue("login_state", login_state_);
+-
+- emit LoginFinished(success);
+-}
+-
+-void SpotifyService::BlobProcessError(QProcess::ProcessError error) {
+- qLog(Error) << "Spotify blob process failed:" << error;
+- blob_process_->deleteLater();
+- blob_process_ = NULL;
+-
+- if (login_task_id_) {
+- model()->task_manager()->SetTaskFinished(login_task_id_);
+- }
+-}
+-
+-void SpotifyService::ReloadSettings() {
+- QSettings s;
+- s.beginGroup(kSettingsGroup);
+-
+- login_state_ = LoginState(s.value("login_state", LoginState_OtherError).toInt());
+- bitrate_ = static_cast<spotify_pb::Bitrate>(
+- s.value("bitrate", spotify_pb::Bitrate320k).toInt());
+- volume_normalisation_ = s.value("volume_normalisation", false).toBool();
+-
+- if (server_ && blob_process_) {
+- server_->SetPlaybackSettings(bitrate_, volume_normalisation_);
+- }
+-}
+-
+-void SpotifyService::EnsureServerCreated(const QString& username,
+- const QString& password) {
+- if (server_ && blob_process_) {
+- return;
+- }
+-
+- delete server_;
+- server_ = new SpotifyServer(this);
+-
+- connect(server_, SIGNAL(LoginCompleted(bool,QString,spotify_pb::LoginResponse_Error)),
+- SLOT(LoginCompleted(bool,QString,spotify_pb::LoginResponse_Error)));
+- connect(server_, SIGNAL(PlaylistsUpdated(spotify_pb::Playlists)),
+- SLOT(PlaylistsUpdated(spotify_pb::Playlists)));
+- connect(server_, SIGNAL(InboxLoaded(spotify_pb::LoadPlaylistResponse)),
+- SLOT(InboxLoaded(spotify_pb::LoadPlaylistResponse)));
+- connect(server_, SIGNAL(StarredLoaded(spotify_pb::LoadPlaylistResponse)),
+- SLOT(StarredLoaded(spotify_pb::LoadPlaylistResponse)));
+- connect(server_, SIGNAL(UserPlaylistLoaded(spotify_pb::LoadPlaylistResponse)),
+- SLOT(UserPlaylistLoaded(spotify_pb::LoadPlaylistResponse)));
+- connect(server_, SIGNAL(PlaybackError(QString)),
+- SIGNAL(StreamError(QString)));
+- connect(server_, SIGNAL(SearchResults(spotify_pb::SearchResponse)),
+- SLOT(SearchResults(spotify_pb::SearchResponse)));
+- connect(server_, SIGNAL(ImageLoaded(QString,QImage)),
+- SIGNAL(ImageLoaded(QString,QImage)));
+- connect(server_, SIGNAL(SyncPlaylistProgress(spotify_pb::SyncPlaylistProgress)),
+- SLOT(SyncPlaylistProgress(spotify_pb::SyncPlaylistProgress)));
+-
+- server_->Init();
+-
+- login_task_id_ = model()->task_manager()->StartTask(tr("Connecting to Spotify"));
+-
+- QString login_username = username;
+- QString login_password = password;
+-
+- if (username.isEmpty()) {
+- QSettings s;
+- s.beginGroup(kSettingsGroup);
+-
+- login_username = s.value("username").toString();
+- login_password = QString();
+- }
+-
+- server_->Login(login_username, login_password, bitrate_, volume_normalisation_);
+-
+- StartBlobProcess();
+-}
+-
+-void SpotifyService::StartBlobProcess() {
+- // Try to find an executable to run
+- QString blob_path;
+- QProcessEnvironment env(QProcessEnvironment::systemEnvironment());
+-
+- // Look in the system search path first
+- if (QFile::exists(system_blob_path_)) {
+- blob_path = system_blob_path_;
+- }
+-
+- // Next look in the local path
+- if (blob_path.isEmpty()) {
+- if (QFile::exists(local_blob_path_)) {
+- blob_path = local_blob_path_;
+- env.insert("LD_LIBRARY_PATH", QFileInfo(local_blob_path_).path());
+- }
+- }
+-
+- if (blob_path.isEmpty()) {
+- // If the blob still wasn't found then we'll prompt the user to download one
+- if (login_task_id_) {
+- model()->task_manager()->SetTaskFinished(login_task_id_);
+- }
+-
+- #ifdef Q_OS_LINUX
+- if (SpotifyBlobDownloader::Prompt()) {
+- InstallBlob();
+- }
+- #endif
+-
+- return;
+- }
+-
+- delete blob_process_;
+- blob_process_ = new QProcess(this);
+- blob_process_->setProcessChannelMode(QProcess::ForwardedChannels);
+- blob_process_->setProcessEnvironment(env);
+-
+- connect(blob_process_,
+- SIGNAL(error(QProcess::ProcessError)),
+- SLOT(BlobProcessError(QProcess::ProcessError)));
+-
+- qLog(Info) << "Starting" << blob_path;
+- blob_process_->start(
+- blob_path, QStringList() << QString::number(server_->server_port()));
+-}
+-
+-bool SpotifyService::IsBlobInstalled() const {
+- return QFile::exists(system_blob_path_) ||
+- QFile::exists(local_blob_path_);
+-}
+-
+-void SpotifyService::InstallBlob() {
+- // The downloader deletes itself when it finishes
+- SpotifyBlobDownloader* downloader = new SpotifyBlobDownloader(
+- local_blob_version_, QFileInfo(local_blob_path_).path(), this);
+- connect(downloader, SIGNAL(Finished()), SLOT(BlobDownloadFinished()));
+- connect(downloader, SIGNAL(Finished()), SIGNAL(BlobStateChanged()));
+- downloader->Start();
+-}
+-
+-void SpotifyService::BlobDownloadFinished() {
+- EnsureServerCreated();
+-}
+-
+-void SpotifyService::PlaylistsUpdated(const spotify_pb::Playlists& response) {
+- if (login_task_id_) {
+- model()->task_manager()->SetTaskFinished(login_task_id_);
+- login_task_id_ = 0;
+- }
+-
+- // Create starred and inbox playlists if they're not here already
+- if (!search_) {
+- search_ = new QStandardItem(IconLoader::Load("edit-find"),
+- tr("Search Spotify (opens a new tab)"));
+- search_->setData(Type_SearchResults, InternetModel::Role_Type);
+- search_->setData(InternetModel::PlayBehaviour_DoubleClickAction,
+- InternetModel::Role_PlayBehaviour);
+-
+- starred_ = new QStandardItem(QIcon(":/star-on.png"), tr("Starred"));
+- starred_->setData(Type_StarredPlaylist, InternetModel::Role_Type);
+- starred_->setData(true, InternetModel::Role_CanLazyLoad);
+-
+- inbox_ = new QStandardItem(IconLoader::Load("mail-message"), tr("Inbox"));
+- inbox_->setData(Type_InboxPlaylist, InternetModel::Role_Type);
+- inbox_->setData(true, InternetModel::Role_CanLazyLoad);
+-
+- root_->appendRow(search_);
+- root_->appendRow(starred_);
+- root_->appendRow(inbox_);
+- }
+-
+- // Don't do anything if the playlists haven't changed since last time.
+- if (!DoPlaylistsDiffer(response)) {
+- qLog(Debug) << "Playlists haven't changed - not updating";
+- return;
+- }
+-
+- // Remove and recreate the other playlists
+- foreach (QStandardItem* item, playlists_) {
+- item->parent()->removeRow(item->row());
+- }
+- playlists_.clear();
+-
+- for (int i=0 ; i<response.playlist_size() ; ++i) {
+- const spotify_pb::Playlists::Playlist& msg = response.playlist(i);
+-
+- QStandardItem* item = new QStandardItem(QStringFromStdString(msg.name()));
+- item->setData(InternetModel::Type_UserPlaylist, InternetModel::Role_Type);
+- item->setData(true, InternetModel::Role_CanLazyLoad);
+- item->setData(msg.index(), Role_UserPlaylistIndex);
+- item->setData(InternetModel::PlayBehaviour_SingleItem, InternetModel::Role_PlayBehaviour);
+-
+- root_->appendRow(item);
+- playlists_ << item;
+-
+- // Preload the playlist items so that drag & drop works immediately.
+- LazyPopulate(item);
+- }
+-}
+-
+-bool SpotifyService::DoPlaylistsDiffer(const spotify_pb::Playlists& response) const {
+- if (playlists_.count() != response.playlist_size()) {
+- return true;
+- }
+-
+- for (int i=0 ; i<response.playlist_size() ; ++i) {
+- const spotify_pb::Playlists::Playlist& msg = response.playlist(i);
+- const QStandardItem* item = PlaylistBySpotifyIndex(msg.index());
+-
+- if (!item) {
+- return true;
+- }
+-
+- if (QStringFromStdString(msg.name()) != item->text()) {
+- return true;
+- }
+- }
+-
+- return false;
+-}
+-
+-void SpotifyService::InboxLoaded(const spotify_pb::LoadPlaylistResponse& response) {
+- FillPlaylist(inbox_, response);
+-}
+-
+-void SpotifyService::StarredLoaded(const spotify_pb::LoadPlaylistResponse& response) {
+- FillPlaylist(starred_, response);
+-}
+-
+-QStandardItem* SpotifyService::PlaylistBySpotifyIndex(int index) const {
+- foreach (QStandardItem* item, playlists_) {
+- if (item->data(Role_UserPlaylistIndex).toInt() == index) {
+- return item;
+- }
+- }
+- return NULL;
+-}
+-
+-void SpotifyService::UserPlaylistLoaded(const spotify_pb::LoadPlaylistResponse& response) {
+- // Find a playlist with this index
+- QStandardItem* item = PlaylistBySpotifyIndex(response.request().user_playlist_index());
+- if (item) {
+- FillPlaylist(item, response);
+- }
+-}
+-
+-void SpotifyService::FillPlaylist(QStandardItem* item, const spotify_pb::LoadPlaylistResponse& response) {
+- qLog(Debug) << "Filling playlist:" << item->text();
+- if (item->hasChildren())
+- item->removeRows(0, item->rowCount());
+-
+- for (int i=0 ; i<response.track_size() ; ++i) {
+- Song song;
+- SongFromProtobuf(response.track(i), &song);
+-
+- QStandardItem* child = new QStandardItem(song.PrettyTitleWithArtist());
+- child->setData(Type_Track, InternetModel::Role_Type);
+- child->setData(QVariant::fromValue(song), InternetModel::Role_SongMetadata);
+- child->setData(InternetModel::PlayBehaviour_SingleItem, InternetModel::Role_PlayBehaviour);
+- child->setData(song.url(), InternetModel::Role_Url);
+-
+- item->appendRow(child);
+- }
+-}
+-
+-void SpotifyService::SongFromProtobuf(const spotify_pb::Track& track, Song* song) {
+- song->set_rating(track.starred() ? 1.0 : 0.0);
+- song->set_title(QStringFromStdString(track.title()));
+- song->set_album(QStringFromStdString(track.album()));
+- song->set_length_nanosec(track.duration_msec() * kNsecPerMsec);
+- song->set_score(track.popularity());
+- song->set_disc(track.disc());
+- song->set_track(track.track());
+- song->set_year(track.year());
+- song->set_url(QUrl(QStringFromStdString(track.uri())));
+- song->set_art_automatic("spotify://image/" + QStringFromStdString(track.album_art_id()));
+-
+- QStringList artists;
+- for (int i=0 ; i<track.artist_size() ; ++i) {
+- artists << QStringFromStdString(track.artist(i));
+- }
+-
+- song->set_artist(artists.join(", "));
+-
+- song->set_filetype(Song::Type_Stream);
+- song->set_valid(true);
+- song->set_directory_id(0);
+- song->set_mtime(0);
+- song->set_ctime(0);
+- song->set_filesize(0);
+-}
+-
+-PlaylistItem::Options SpotifyService::playlistitem_options() const {
+- return PlaylistItem::PauseDisabled | PlaylistItem::SeekDisabled;
+-}
+-
+-void SpotifyService::EnsureMenuCreated() {
+- if (context_menu_)
+- return;
+-
+- context_menu_ = new QMenu;
+-
+- context_menu_->addActions(GetPlaylistActions());
+- context_menu_->addSeparator();
+- context_menu_->addAction(IconLoader::Load("edit-find"), tr("Search Spotify (opens a new tab)..."), this, SLOT(OpenSearchTab()));
+- context_menu_->addSeparator();
+- context_menu_->addAction(IconLoader::Load("configure"), tr("Configure Spotify..."), this, SLOT(ShowConfig()));
+-
+- playlist_context_menu_ = new QMenu;
+- playlist_sync_action_ = playlist_context_menu_->addAction(
+- IconLoader::Load("view-refresh"),
+- tr("Make playlist available offline"),
+- this,
+- SLOT(SyncPlaylist()));
+-}
+-
+-void SpotifyService::SyncPlaylist() {
+- QStandardItem* item = playlist_sync_action_->data().value<QStandardItem*>();
+- Q_ASSERT(item);
+-
+- switch (item->data(InternetModel::Role_Type).toInt()) {
+- case InternetModel::Type_UserPlaylist: {
+- int index = item->data(Role_UserPlaylistIndex).toInt();
+- server_->SyncUserPlaylist(index);
+- playlist_sync_ids_[index] =
+- model()->task_manager()->StartTask(tr("Syncing Spotify playlist"));
+- break;
+- }
+- case Type_InboxPlaylist:
+- server_->SyncInbox();
+- inbox_sync_id_ = model()->task_manager()->StartTask(tr("Syncing Spotify inbox"));
+- break;
+- case Type_StarredPlaylist:
+- server_->SyncStarred();
+- starred_sync_id_ = model()->task_manager()->StartTask(tr("Syncing Spotify starred tracks"));
+- break;
+- default:
+- break;
+- }
+-}
+-
+-void SpotifyService::Search(const QString& text, Playlist* playlist, bool now) {
+- EnsureServerCreated();
+-
+- pending_search_ = text;
+- pending_search_playlist_ = playlist;
+-
+- if (now) {
+- search_delay_->stop();
+- DoSearch();
+- } else {
+- search_delay_->start();
+- }
+-}
+-
+-void SpotifyService::DoSearch() {
+- if (!pending_search_.isEmpty()) {
+- server_->Search(pending_search_, 200);
+- }
+-}
+-
+-void SpotifyService::SearchResults(const spotify_pb::SearchResponse& response) {
+- if (QStringFromStdString(response.request().query()) != pending_search_) {
+- qLog(Debug) << "Old search result for"
+- << QStringFromStdString(response.request().query())
+- << "expecting" << pending_search_;
+- return;
+- }
+- pending_search_.clear();
+-
+- SongList songs;
+- for (int i=0 ; i<response.result_size() ; ++i) {
+- Song song;
+- SongFromProtobuf(response.result(i), &song);
+- songs << song;
+- }
+-
+- qLog(Debug) << "Got" << songs.count() << "results";
+-
+- pending_search_playlist_->Clear();
+- pending_search_playlist_->InsertSongs(songs);
+-
+- const QString did_you_mean = QStringFromStdString(response.did_you_mean());
+- if (!did_you_mean.isEmpty()) {
+- model()->player()->playlists()->playlist_container()->did_you_mean()->Show(did_you_mean);
+- }
+-}
+-
+-SpotifyServer* SpotifyService::server() const {
+- SpotifyService* nonconst_this = const_cast<SpotifyService*>(this);
+-
+- if (QThread::currentThread() != thread()) {
+- metaObject()->invokeMethod(nonconst_this, "EnsureServerCreated",
+- Qt::BlockingQueuedConnection);
+- } else {
+- nonconst_this->EnsureServerCreated();
+- }
+-
+- return server_;
+-}
+-
+-void SpotifyService::ShowContextMenu(const QModelIndex& index, const QPoint& global_pos) {
+- EnsureMenuCreated();
+- QStandardItem* item = model()->itemFromIndex(index);
+- if (item) {
+- int type = item->data(InternetModel::Role_Type).toInt();
+- if (type == Type_InboxPlaylist ||
+- type == Type_StarredPlaylist ||
+- type == InternetModel::Type_UserPlaylist) {
+- playlist_sync_action_->setData(qVariantFromValue(item));
+- playlist_context_menu_->popup(global_pos);
+- return;
+- }
+- }
+-
+- context_menu_->popup(global_pos);
+-}
+-
+-void SpotifyService::OpenSearchTab() {
+- model()->player()->playlists()->New(tr("Search Spotify"), SongList(),
+- SpotifySearchPlaylistType::kName);
+-}
+-
+-void SpotifyService::ItemDoubleClicked(QStandardItem* item) {
+- if (item == search_) {
+- OpenSearchTab();
+- }
+-}
+-
+-void SpotifyService::LoadImage(const QString& id) {
+- EnsureServerCreated();
+- server_->LoadImage(id);
+-}
+-
+-void SpotifyService::SyncPlaylistProgress(
+- const spotify_pb::SyncPlaylistProgress& progress) {
+- qLog(Debug) << "Sync progress:" << progress.sync_progress();
+- int task_id = -1;
+- switch (progress.request().type()) {
+- case spotify_pb::Inbox:
+- task_id = inbox_sync_id_;
+- break;
+- case spotify_pb::Starred:
+- task_id = starred_sync_id_;
+- break;
+- case spotify_pb::UserPlaylist: {
+- QMap<int, int>::const_iterator it = playlist_sync_ids_.constFind(
+- progress.request().user_playlist_index());
+- if (it != playlist_sync_ids_.constEnd()) {
+- task_id = it.value();
+- }
+- break;
+- }
+- default:
+- break;
+- }
+- if (task_id == -1) {
+- qLog(Warning) << "Received sync progress for unknown playlist";
+- return;
+- }
+- model()->task_manager()->SetTaskProgress(task_id, progress.sync_progress(), 100);
+- if (progress.sync_progress() == 100) {
+- model()->task_manager()->SetTaskFinished(task_id);
+- if (progress.request().type() == spotify_pb::UserPlaylist) {
+- playlist_sync_ids_.remove(task_id);
+- }
+- }
+-}
+-
+-void SpotifyService::ShowConfig() {
+- emit OpenSettingsAtPage(SettingsDialog::Page_Spotify);
+-}
+-
+-void SpotifyService::Logout() {
+- delete server_;
+- delete blob_process_;
+- server_ = NULL;
+- blob_process_ = NULL;
+-
+- login_state_ = LoginState_OtherError;
+-
+- QSettings s;
+- s.beginGroup(kSettingsGroup);
+- s.setValue("login_state", login_state_);
+-}
+diff -rauN clementine-1.0.1/src/internet/spotifyservice.h /dev/null
+--- clementine-1.0.1/src/internet/spotifyservice.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,147 +0,0 @@
+-#ifndef SPOTIFYSERVICE_H
+-#define SPOTIFYSERVICE_H
+-
+-#include "internetmodel.h"
+-#include "internetservice.h"
+-#include "spotifyblob/common/spotifymessages.pb.h"
+-
+-#include <QProcess>
+-#include <QTimer>
+-
+-#include <boost/shared_ptr.hpp>
+-
+-class Playlist;
+-class SpotifyServer;
+-
+-class QMenu;
+-
+-class SpotifyService : public InternetService {
+- Q_OBJECT
+-
+-public:
+- SpotifyService(InternetModel* parent);
+- ~SpotifyService();
+-
+- enum Type {
+- Type_SearchResults = InternetModel::TypeCount,
+- Type_StarredPlaylist,
+- Type_InboxPlaylist,
+- Type_Track,
+- };
+-
+- enum Role {
+- Role_UserPlaylistIndex = InternetModel::RoleCount,
+- };
+-
+- // Values are persisted - don't change.
+- enum LoginState {
+- LoginState_LoggedIn = 1,
+- LoginState_Banned = 2,
+- LoginState_BadCredentials = 3,
+- LoginState_NoPremium = 4,
+- LoginState_OtherError = 5,
+- LoginState_ReloginFailed = 6
+- };
+-
+- static const char* kServiceName;
+- static const char* kSettingsGroup;
+- static const char* kBlobDownloadUrl;
+- static const int kSearchDelayMsec;
+-
+- void ReloadSettings();
+-
+- QStandardItem* CreateRootItem();
+- void LazyPopulate(QStandardItem* parent);
+- void ShowContextMenu(const QModelIndex& index, const QPoint& global_pos);
+- void ItemDoubleClicked(QStandardItem* item);
+- PlaylistItem::Options playlistitem_options() const;
+-
+- void Logout();
+- void Login(const QString& username, const QString& password);
+- void Search(const QString& text, Playlist* playlist, bool now = false);
+- Q_INVOKABLE void LoadImage(const QString& id);
+-
+- SpotifyServer* server() const;
+-
+- bool IsBlobInstalled() const;
+- void InstallBlob();
+-
+- // Persisted in the settings and updated on each Login().
+- LoginState login_state() const { return login_state_; }
+- bool IsLoggedIn() const { return login_state_ == LoginState_LoggedIn; }
+-
+- static void SongFromProtobuf(const spotify_pb::Track& track, Song* song);
+-
+-signals:
+- void BlobStateChanged();
+- void LoginFinished(bool success);
+- void ImageLoaded(const QString& id, const QImage& image);
+-
+-public slots:
+- void ShowConfig();
+-
+-protected:
+- virtual QModelIndex GetCurrentIndex();
+-
+-private:
+- void StartBlobProcess();
+- void FillPlaylist(QStandardItem* item, const spotify_pb::LoadPlaylistResponse& response);
+- void EnsureMenuCreated();
+-
+- QStandardItem* PlaylistBySpotifyIndex(int index) const;
+- bool DoPlaylistsDiffer(const spotify_pb::Playlists& response) const;
+-
+-private slots:
+- void EnsureServerCreated(const QString& username = QString(),
+- const QString& password = QString());
+- void BlobProcessError(QProcess::ProcessError error);
+- void LoginCompleted(bool success, const QString& error,
+- spotify_pb::LoginResponse_Error error_code);
+- void PlaylistsUpdated(const spotify_pb::Playlists& response);
+- void InboxLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void StarredLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void UserPlaylistLoaded(const spotify_pb::LoadPlaylistResponse& response);
+- void SearchResults(const spotify_pb::SearchResponse& response);
+- void SyncPlaylistProgress(const spotify_pb::SyncPlaylistProgress& progress);
+-
+- void OpenSearchTab();
+- void DoSearch();
+-
+- void SyncPlaylist();
+- void BlobDownloadFinished();
+-
+-private:
+- SpotifyServer* server_;
+-
+- QString system_blob_path_;
+- QString local_blob_version_;
+- QString local_blob_path_;
+- QProcess* blob_process_;
+-
+- QStandardItem* root_;
+- QStandardItem* search_;
+- QStandardItem* starred_;
+- QStandardItem* inbox_;
+- QList<QStandardItem*> playlists_;
+-
+- int login_task_id_;
+- QString pending_search_;
+- Playlist* pending_search_playlist_;
+-
+- QMenu* context_menu_;
+- QMenu* playlist_context_menu_;
+- QAction* playlist_sync_action_;
+- QModelIndex context_item_;
+-
+- QTimer* search_delay_;
+-
+- int inbox_sync_id_;
+- int starred_sync_id_;
+- QMap<int, int> playlist_sync_ids_;
+-
+- LoginState login_state_;
+- spotify_pb::Bitrate bitrate_;
+- bool volume_normalisation_;
+-};
+-
+-#endif
+diff -rauN clementine-1.0.1/src/internet/spotifysettingspage.cpp /dev/null
+--- clementine-1.0.1/src/internet/spotifysettingspage.cpp 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,172 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#include "spotifysettingspage.h"
+-
+-#include "spotifyservice.h"
+-#include "internetmodel.h"
+-#include "ui_spotifysettingspage.h"
+-#include "core/network.h"
+-#include "spotifyblob/common/spotifymessages.pb.h"
+-#include "ui/iconloader.h"
+-
+-#include <QMessageBox>
+-#include <QNetworkReply>
+-#include <QNetworkRequest>
+-#include <QSettings>
+-#include <QtDebug>
+-
+-SpotifySettingsPage::SpotifySettingsPage(SettingsDialog* dialog)
+- : SettingsPage(dialog),
+- network_(new NetworkAccessManager(this)),
+- ui_(new Ui_SpotifySettingsPage),
+- service_(InternetModel::Service<SpotifyService>()),
+- validated_(false)
+-{
+- ui_->setupUi(this);
+-
+- setWindowIcon(QIcon(":/icons/48x48/spotify.png"));
+-
+- QFont bold_font(font());
+- bold_font.setBold(true);
+- ui_->blob_status->setFont(bold_font);
+-
+- connect(ui_->download_blob, SIGNAL(clicked()), SLOT(DownloadBlob()));
+- connect(ui_->login, SIGNAL(clicked()), SLOT(Login()));
+- connect(ui_->login_state, SIGNAL(LogoutClicked()), SLOT(Logout()));
+- connect(ui_->login_state, SIGNAL(LoginClicked()), SLOT(Login()));
+-
+- connect(service_, SIGNAL(LoginFinished(bool)), SLOT(LoginFinished(bool)));
+- connect(service_, SIGNAL(BlobStateChanged()), SLOT(BlobStateChanged()));
+-
+- ui_->login_state->AddCredentialField(ui_->username);
+- ui_->login_state->AddCredentialField(ui_->password);
+- ui_->login_state->AddCredentialGroup(ui_->account_group);
+-
+- ui_->bitrate->addItem("96 " + tr("kbps"), spotify_pb::Bitrate96k);
+- ui_->bitrate->addItem("160 " + tr("kbps"), spotify_pb::Bitrate160k);
+- ui_->bitrate->addItem("320 " + tr("kbps"), spotify_pb::Bitrate320k);
+-
+- BlobStateChanged();
+-}
+-
+-SpotifySettingsPage::~SpotifySettingsPage() {
+- delete ui_;
+-}
+-
+-void SpotifySettingsPage::BlobStateChanged() {
+- const bool installed = service_->IsBlobInstalled();
+-
+- ui_->account_group->setEnabled(installed);
+- ui_->blob_status->setText(installed ? tr("Installed") : tr("Not installed"));
+-
+-#ifdef Q_OS_LINUX
+- ui_->download_blob->setEnabled(!installed);
+-#else
+- ui_->download_blob->setEnabled(false);
+-#endif
+-}
+-
+-void SpotifySettingsPage::DownloadBlob() {
+- service_->InstallBlob();
+-}
+-
+-void SpotifySettingsPage::Login() {
+- if (!service_->IsBlobInstalled()) {
+- return;
+- }
+-
+- if (ui_->username->text() == original_username_ &&
+- ui_->password->text() == original_password_ &&
+- service_->login_state() == SpotifyService::LoginState_LoggedIn) {
+- return;
+- }
+-
+- ui_->login_state->SetLoggedIn(LoginStateWidget::LoginInProgress);
+- service_->Login(ui_->username->text(), ui_->password->text());
+-}
+-
+-void SpotifySettingsPage::Load() {
+- QSettings s;
+- s.beginGroup(SpotifyService::kSettingsGroup);
+-
+- original_username_ = s.value("username").toString();
+-
+- ui_->username->setText(original_username_);
+- validated_ = false;
+-
+- ui_->bitrate->setCurrentIndex(ui_->bitrate->findData(
+- s.value("bitrate", spotify_pb::Bitrate320k).toInt()));
+- ui_->volume_normalisation->setChecked(
+- s.value("volume_normalisation", false).toBool());
+-
+- UpdateLoginState();
+-}
+-
+-void SpotifySettingsPage::Save() {
+- QSettings s;
+- s.beginGroup(SpotifyService::kSettingsGroup);
+-
+- s.setValue("username", ui_->username->text());
+- s.setValue("password", ui_->password->text());
+-
+- s.setValue("bitrate", ui_->bitrate->itemData(ui_->bitrate->currentIndex()).toInt());
+- s.setValue("volume_normalisation", ui_->volume_normalisation->isChecked());
+-}
+-
+-void SpotifySettingsPage::LoginFinished(bool success) {
+- validated_ = success;
+-
+- Save();
+- UpdateLoginState();
+-}
+-
+-void SpotifySettingsPage::UpdateLoginState() {
+- const bool logged_in =
+- service_->login_state() == SpotifyService::LoginState_LoggedIn;
+-
+- ui_->login_state->SetLoggedIn(logged_in ? LoginStateWidget::LoggedIn
+- : LoginStateWidget::LoggedOut,
+- ui_->username->text());
+- ui_->login_state->SetAccountTypeVisible(!logged_in);
+-
+- switch (service_->login_state()) {
+- case SpotifyService::LoginState_NoPremium:
+- ui_->login_state->SetAccountTypeText(tr("You do not have a Spotify Premium account."));
+- break;
+-
+- case SpotifyService::LoginState_Banned:
+- case SpotifyService::LoginState_BadCredentials:
+- ui_->login_state->SetAccountTypeText(tr("Your username or password was incorrect."));
+- break;
+-
+- case SpotifyService::LoginState_ReloginFailed:
+- ui_->login_state->SetAccountTypeText(tr("You have been logged out of Spotify, please re-enter your password."));
+- break;
+-
+- default:
+- ui_->login_state->SetAccountTypeText(tr("A Spotify Premium account is required."));
+- break;
+- }
+-}
+-
+-void SpotifySettingsPage::Logout() {
+- service_->Logout();
+- UpdateLoginState();
+-
+- ui_->username->clear();
+-}
+diff -rauN clementine-1.0.1/src/internet/spotifysettingspage.h /dev/null
+--- clementine-1.0.1/src/internet/spotifysettingspage.h 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,59 +0,0 @@
+-/* This file is part of Clementine.
+- Copyright 2010, David Sansome <me@davidsansome.com>
+-
+- Clementine is free software: you can redistribute it and/or modify
+- it under the terms of the GNU General Public License as published by
+- the Free Software Foundation, either version 3 of the License, or
+- (at your option) any later version.
+-
+- Clementine 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 General Public License for more details.
+-
+- You should have received a copy of the GNU General Public License
+- along with Clementine. If not, see <http://www.gnu.org/licenses/>.
+-*/
+-
+-#ifndef SPOTIFYSETTINGSPAGE_H
+-#define SPOTIFYSETTINGSPAGE_H
+-
+-#include "ui/settingspage.h"
+-
+-class NetworkAccessManager;
+-class Ui_SpotifySettingsPage;
+-class SpotifyService;
+-
+-class SpotifySettingsPage : public SettingsPage {
+- Q_OBJECT
+-
+-public:
+- SpotifySettingsPage(SettingsDialog* dialog);
+- ~SpotifySettingsPage();
+-
+- void Load();
+- void Save();
+-
+-public slots:
+- void BlobStateChanged();
+- void DownloadBlob();
+-
+-private slots:
+- void Login();
+- void LoginFinished(bool success);
+- void Logout();
+-
+-private:
+- void UpdateLoginState();
+-
+-private:
+- NetworkAccessManager* network_;
+- Ui_SpotifySettingsPage* ui_;
+- SpotifyService* service_;
+-
+- bool validated_;
+- QString original_username_;
+- QString original_password_;
+-};
+-
+-#endif // SPOTIFYSETTINGSPAGE_H
+diff -rauN clementine-1.0.1/src/internet/spotifysettingspage.ui /dev/null
+--- clementine-1.0.1/src/internet/spotifysettingspage.ui 2011-12-02 19:24:44.000000000 -0200
++++ /dev/null 2012-05-28 12:50:04.796939473 -0300
+@@ -1,214 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<ui version="4.0">
+- <class>SpotifySettingsPage</class>
+- <widget class="QWidget" name="SpotifySettingsPage">
+- <property name="geometry">
+- <rect>
+- <x>0</x>
+- <y>0</y>
+- <width>545</width>
+- <height>458</height>
+- </rect>
+- </property>
+- <property name="windowTitle">
+- <string>Spotify</string>
+- </property>
+- <layout class="QVBoxLayout" name="verticalLayout_2">
+- <item>
+- <widget class="LoginStateWidget" name="login_state" native="true"/>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="account_group">
+- <property name="title">
+- <string>Account details</string>
+- </property>
+- <layout class="QVBoxLayout" name="verticalLayout_3">
+- <item>
+- <widget class="QWidget" name="login_container" native="true">
+- <property name="enabled">
+- <bool>true</bool>
+- </property>
+- <layout class="QGridLayout" name="gridLayout">
+- <property name="margin">
+- <number>0</number>
+- </property>
+- <item row="1" column="0">
+- <widget class="QLabel" name="username_label">
+- <property name="text">
+- <string>Username</string>
+- </property>
+- </widget>
+- </item>
+- <item row="1" column="1">
+- <widget class="QLineEdit" name="username"/>
+- </item>
+- <item row="2" column="0">
+- <widget class="QLabel" name="password_label">
+- <property name="text">
+- <string>Password</string>
+- </property>
+- </widget>
+- </item>
+- <item row="2" column="1" colspan="2">
+- <widget class="QLineEdit" name="password">
+- <property name="echoMode">
+- <enum>QLineEdit::Password</enum>
+- </property>
+- </widget>
+- </item>
+- <item row="1" column="2">
+- <widget class="QPushButton" name="login">
+- <property name="text">
+- <string>Login</string>
+- </property>
+- </widget>
+- </item>
+- </layout>
+- </widget>
+- </item>
+- </layout>
+- </widget>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="groupBox_2">
+- <property name="title">
+- <string>Spotify plugin</string>
+- </property>
+- <layout class="QVBoxLayout" name="verticalLayout">
+- <item>
+- <widget class="QLabel" name="label">
+- <property name="text">
+- <string>For licensing reasons Spotify support is in a separate plugin.</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <layout class="QHBoxLayout" name="horizontalLayout_2">
+- <item>
+- <widget class="QLabel" name="label_2">
+- <property name="text">
+- <string>Plugin status:</string>
+- </property>
+- </widget>
+- </item>
+- <item>
+- <widget class="QLabel" name="blob_status"/>
+- </item>
+- <item>
+- <spacer name="horizontalSpacer">
+- <property name="orientation">
+- <enum>Qt::Horizontal</enum>
+- </property>
+- <property name="sizeHint" stdset="0">
+- <size>
+- <width>40</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </item>
+- <item>
+- <widget class="QPushButton" name="download_blob">
+- <property name="text">
+- <string>Download...</string>
+- </property>
+- </widget>
+- </item>
+- </layout>
+- </item>
+- </layout>
+- </widget>
+- </item>
+- <item>
+- <widget class="QGroupBox" name="groupBox">
+- <property name="title">
+- <string>Preferences</string>
+- </property>
+- <layout class="QFormLayout" name="formLayout">
+- <item row="0" column="0">
+- <widget class="QLabel" name="label_4">
+- <property name="text">
+- <string>Preferred bitrate</string>
+- </property>
+- </widget>
+- </item>
+- <item row="0" column="1">
+- <widget class="QComboBox" name="bitrate"/>
+- </item>
+- <item row="1" column="0" colspan="2">
+- <widget class="QCheckBox" name="volume_normalisation">
+- <property name="text">
+- <string>Use volume normalisation</string>
+- </property>
+- </widget>
+- </item>
+- </layout>
+- </widget>
+- </item>
+- <item>
+- <spacer name="verticalSpacer">
+- <property name="orientation">
+- <enum>Qt::Vertical</enum>
+- </property>
+- <property name="sizeHint" stdset="0">
+- <size>
+- <width>20</width>
+- <height>30</height>
+- </size>
+- </property>
+- </spacer>
+- </item>
+- <item>
+- <layout class="QHBoxLayout" name="horizontalLayout_3">
+- <item>
+- <spacer name="horizontalSpacer_2">
+- <property name="orientation">
+- <enum>Qt::Horizontal</enum>
+- </property>
+- <property name="sizeHint" stdset="0">
+- <size>
+- <width>40</width>
+- <height>20</height>
+- </size>
+- </property>
+- </spacer>
+- </item>
+- <item>
+- <widget class="QLabel" name="label_3">
+- <property name="minimumSize">
+- <size>
+- <width>64</width>
+- <height>64</height>
+- </size>
+- </property>
+- <property name="maximumSize">
+- <size>
+- <width>64</width>
+- <height>64</height>
+- </size>
+- </property>
+- <property name="pixmap">
+- <pixmap resource="../../data/data.qrc">:/spotify-core-logo-128x128.png</pixmap>
+- </property>
+- <property name="scaledContents">
+- <bool>true</bool>
+- </property>
+- </widget>
+- </item>
+- </layout>
+- </item>
+- </layout>
+- </widget>
+- <customwidgets>
+- <customwidget>
+- <class>LoginStateWidget</class>
+- <extends>QWidget</extends>
+- <header>widgets/loginstatewidget.h</header>
+- <container>1</container>
+- </customwidget>
+- </customwidgets>
+- <resources>
+- <include location="../../data/data.qrc"/>
+- </resources>
+- <connections/>
+-</ui>
+diff -rauN clementine-1.0.1/src/ui/about.cpp clementine-libre-1.0.1/src/ui/about.cpp
+--- clementine-1.0.1/src/ui/about.cpp 2012-01-22 10:43:26.000000000 -0200
++++ clementine-libre-1.0.1/src/ui/about.cpp 2012-05-28 19:44:38.760244927 -0300
+@@ -79,12 +79,6 @@
+ ret += QString("<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott Smitelli</a>");
+ ret += QString("<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie Brosh</a></p>");
+
+-#ifdef HAVE_SPOTIFY
+- ret += "<p>This product uses SPOTIFY(R) CORE but is not endorsed, certified "
+- "or otherwise approved in any way by Spotify. Spotify is the "
+- "registered trade mark of the Spotify Group.</p>";
+-#endif // HAVE_SPOTIFY
+-
+ return ret;
+ }
+
+diff -rauN clementine-1.0.1/src/ui/settingsdialog.cpp clementine-libre-1.0.1/src/ui/settingsdialog.cpp
+--- clementine-1.0.1/src/ui/settingsdialog.cpp 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/ui/settingsdialog.cpp 2012-05-28 19:46:49.506369764 -0300
+@@ -55,10 +55,6 @@
+ # include "remote/remotesettingspage.h"
+ #endif
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifysettingspage.h"
+-#endif
+-
+ #include <QDesktopWidget>
+ #include <QPainter>
+ #include <QPushButton>
+@@ -140,10 +136,6 @@
+
+ AddPage(Page_Grooveshark, new GroovesharkSettingsPage(this), providers);
+
+-#ifdef HAVE_SPOTIFY
+- AddPage(Page_Spotify, new SpotifySettingsPage(this), providers);
+-#endif
+-
+ AddPage(Page_Magnatune, new MagnatuneSettingsPage(this), providers);
+ AddPage(Page_DigitallyImported, new DigitallyImportedSettingsPage(this), providers);
+ AddPage(Page_BackgroundStreams, new BackgroundStreamsSettingsPage(this), providers);
+diff -rauN clementine-1.0.1/src/ui/settingsdialog.h clementine-libre-1.0.1/src/ui/settingsdialog.h
+--- clementine-1.0.1/src/ui/settingsdialog.h 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/ui/settingsdialog.h 2012-05-28 19:48:55.399426104 -0300
+@@ -65,7 +65,6 @@
+ Page_Library,
+ Page_Lastfm,
+ Page_Grooveshark,
+- Page_Spotify,
+ Page_Magnatune,
+ Page_DigitallyImported,
+ Page_BackgroundStreams,
+--- clementine-1.0.1/src/core/logging.cpp 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/src/core/logging.cpp 2012-05-30 03:09:25.554790760 -0300
+@@ -14,10 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+
+ #include <QCoreApplication>
+ #include <QDateTime>
+--- clementine-1.0.1/src/core/logging.h 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/src/core/logging.h 2012-05-30 03:09:44.390404481 -0300
+@@ -14,10 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+
+ #ifndef LOGGING_H
+ #define LOGGING_H
+--- clementine-1.0.1/src/core/timeconstants.h 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/core/timeconstants.h 2012-05-30 03:10:10.338953893 -0300
+@@ -14,10 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+ #ifndef TIMECONSTANTS_H
+ #define TIMECONSTANTS_H
+
diff --git a/libre/clementine-libre/remove-nonfree-references-on-translations.patch b/libre/clementine-libre/remove-nonfree-references-on-translations.patch
new file mode 100644
index 000000000..f80e7f5a7
--- /dev/null
+++ b/libre/clementine-libre/remove-nonfree-references-on-translations.patch
@@ -0,0 +1,20088 @@
+diff -rauN clementine-1.0.1/src/translations/ar.po clementine-libre-1.0.1/src/translations/ar.po
+--- clementine-1.0.1/src/translations/ar.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ar.po 2012-05-28 22:09:35.427205715 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "ابدأ قئمة التشغيل اللتي تعمل حالياً"
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/be.po clementine-libre-1.0.1/src/translations/be.po
+--- clementine-1.0.1/src/translations/be.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/be.po 2012-05-29 13:46:37.876404109 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -311,7 +307,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -584,12 +579,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -815,10 +804,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1025,10 +1010,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Наладзіць калекцыю..."
+@@ -1046,10 +1027,6 @@
+ msgid "Connect device"
+ msgstr "Падлучэнне прылады"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1465,10 +1442,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1481,10 +1454,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Спампаваць каталог Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1634,10 +1603,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1819,10 +1784,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2085,10 +2046,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2117,10 +2074,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2423,7 +2376,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2499,10 +2451,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2759,10 +2707,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2897,7 +2841,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -3004,10 +2947,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3038,7 +2977,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3055,10 +2993,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3449,18 +3383,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3785,30 +3707,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3818,7 +3720,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3904,18 +3805,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4273,10 +4162,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4292,7 +4177,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4516,20 +4400,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4589,7 +4459,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4678,8 +4547,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/bg.po clementine-libre-1.0.1/src/translations/bg.po
+--- clementine-1.0.1/src/translations/bg.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/bg.po 2012-05-29 13:48:35.013070898 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Необходим е Grooveshark Anywhere акаунт"
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Нуждаете се от премиум регистрация в Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Винаги да се започва възпроизвеждането"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"За да използвате Spotify в Clementine е необходима допълнителна приставка. "
+-"Иската ли да я свалите и инсталирате сега?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Получи се грешка при копирането на iTunes базата данни от утройството"
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr "Поддръжка на CUE листове"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Отказ"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Смени обложката"
+@@ -1038,10 +1021,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Настройване на бързите клавиши"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Настройване на Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Настройване на библиотека..."
+@@ -1060,10 +1039,6 @@
+ msgid "Connect device"
+ msgstr "Свързване на устройство"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Свързване към Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Постоянен битов поток"
+@@ -1480,10 +1455,6 @@
+ msgid "Download this album..."
+ msgstr "Сваляне на този албум..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Изтегляне..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Сваляне на icecast директорията"
+@@ -1496,10 +1467,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Сваляне на каталог Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Изтегляне на приставка за Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Сваляне на метаданни"
+@@ -1654,10 +1621,6 @@
+ msgid "Error deleting songs"
+ msgstr "Грешка при изтриване на песни"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Грешка при изтеглянето на приставка за Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1839,12 +1802,6 @@
+ msgid "Font size"
+ msgstr "Размер на шрифта"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Поради причини, свързани с лицензирането, поддръжката на Spotify е като "
+-"отделна приставка."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Принудително кодиране в моно"
+@@ -2117,10 +2074,6 @@
+ "В динамичен режим новите песни ще бъдат избирани и добавяни към списъка с "
+ "песни всеки път, когато свърши песента."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Входящи"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Включване на обложката в известяването"
+@@ -2149,10 +2102,6 @@
+ msgid "Insert..."
+ msgstr "Вмъкване..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Инсталирани"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Интернет"
+@@ -2459,7 +2408,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2535,10 +2483,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Списъкът с песни да е наличен в режим извън мрежа"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Грешка при отговора"
+@@ -2798,10 +2742,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Недостатъчно съседи"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Не е инсталиран"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Не сте вписан"
+@@ -2936,7 +2876,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Парола"
+@@ -3043,10 +2982,6 @@
+ msgid "Playlists"
+ msgstr "Списъци с песни"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Състояние на приставката:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Поп"
+@@ -3077,7 +3012,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Настройки"
+@@ -3095,10 +3029,6 @@
+ msgid "Preferred audio format"
+ msgstr "Предпочитан аудио формат"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Предпочитан битов поток"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Предпочитан формат"
+@@ -3489,18 +3419,6 @@
+ msgid "Search Magnatune"
+ msgstr "Търси в Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Търсене в Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Търсене в Spotify (отваря нов подпрозорец)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Търсене в Spotify (отваря нов подпрозорец)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Търсене във всички източници (библиотека, интернет услуги, ...)"
+@@ -3826,30 +3744,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Грешка в вписване в Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Приставка за Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Приставката за Spotify не е инсталирана"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Стандартно"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Със звезда"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Стартиране на текущо възпроизвеждания списък с песни"
+@@ -3859,7 +3757,6 @@
+ msgstr "Начало на прекодирането"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Започнете да пишете в полето за търсее за да намерите музика на %1."
+@@ -3945,18 +3842,6 @@
+ msgid "Switch provider"
+ msgstr "Смяна на доставчика"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Синхронизиране на входящата кутия на Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Синхронизиране на списъка с песни от Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Синхронизиране на оценените песни от Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Табовете отгоре"
+@@ -4342,10 +4227,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Използване на системните настройки за сървър-посредник"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Използване на нормализация на звука"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Използван"
+@@ -4361,7 +4242,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Потребителско име"
+@@ -4599,20 +4479,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Нямате Grooveshark Anywhere акаунт."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Нямате Spotify Premium акаунт."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr "Отписан сте от Spotify, моля въведете отново паролата си в Настройки."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Изписан сте от Spotify, моля въведете паролата си отново"
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Харесвате тази песен"
+@@ -4680,7 +4546,6 @@
+ msgstr "Вашите слушания: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Вашето потребителско име или парола не съвпада."
+
+@@ -4769,8 +4634,6 @@
+ msgstr "в последните"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "килобита/сек"
+
+diff -rauN clementine-1.0.1/src/translations/bn.po clementine-libre-1.0.1/src/translations/bn.po
+--- clementine-1.0.1/src/translations/bn.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/bn.po 2012-05-29 13:50:28.419737684 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "এক্ টি স্পটীফাই অ্যাকাউন্ট প্রয়োজন"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -311,7 +307,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -584,14 +579,6 @@
+ msgid "Always start playing"
+ msgstr "স্থায়ী ভাবে সঙ্গীত চালু রাখুন"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"এক্ টি প্লাগ ইন প্রয়োজন। আপনি কি প্লাগ ইন টি ডাউনলোড করে ইন্সটল করতে ইচ্ছুক "
+-"?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "iTune ডাটাবেস কপি করায় ত্রুটি র জন্য দুঃখিত ।"
+@@ -817,10 +804,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1021,10 +1004,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1042,10 +1021,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1455,10 +1430,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1471,10 +1442,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1624,10 +1591,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1809,10 +1772,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2075,10 +2034,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2107,10 +2062,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2413,7 +2364,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2489,10 +2439,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2749,10 +2695,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2887,7 +2829,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2994,10 +2935,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3028,7 +2965,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3045,10 +2981,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3439,18 +3371,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3775,30 +3695,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3808,7 +3708,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3894,18 +3793,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4263,10 +4150,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4282,7 +4165,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4506,20 +4388,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4579,7 +4447,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4668,8 +4535,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/br.po clementine-libre-1.0.1/src/translations/br.po
+--- clementine-1.0.1/src/translations/br.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/br.po 2012-05-29 13:51:23.959737744 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Ur c'hont Grooveshark a zo dleet"
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Ret eo deoc'h kaout ur kont Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -314,7 +310,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -588,14 +583,6 @@
+ msgid "Always start playing"
+ msgstr "Atav kregin da lenn"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Un enlugellad a zo ezhomm a-benn implij Spotify e-barzh Clementine. C'hoant "
+-"ho peus pellgargañ ha staliañ anezhañ bremañ ?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -824,10 +811,6 @@
+ msgid "CUE sheet support"
+ msgstr "Kemer e kont ar CUE sheet"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Nullañ"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Kemmañ golo an albom"
+@@ -1040,10 +1023,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Kefluniañ ar Berradennoù"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Kefluniañ Spotify"
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Kefluniañ al levraoueg..."
+@@ -1061,10 +1040,6 @@
+ msgid "Connect device"
+ msgstr "An drobarzhell a zo o kennaskañ"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "O kennaskañ da Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "CBR"
+@@ -1480,10 +1455,6 @@
+ msgid "Download this album..."
+ msgstr "Pellgkargañ an albom..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Pellgargañ"
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "O pellgargañ katalog Icecast"
+@@ -1496,10 +1467,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "O pellgargañ katalog Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "O pellgargañ enlugellad Spotify..."
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "O pellgargañ metadaveennoù"
+@@ -1653,10 +1620,6 @@
+ msgid "Error deleting songs"
+ msgstr "Ur gudenn a zo savet e-kerzh dilamidigezh an tonioù"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Ur gudenn a zo savet o pellgargañ enlugellad Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1841,10 +1804,6 @@
+ msgid "Font size"
+ msgstr "Ment an nodrezh"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Evit abegoù lañsav, meret eo Spotify gant un enlugellad distag."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forsiñ an enkodiñ mono"
+@@ -2119,10 +2078,6 @@
+ "E stumm dinamek, roudennoù nevez a vo choazet hag ouzhpennet e fin al roll "
+ "c'hoari bep taol ma vo echu gant un ton."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Boest degemer"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Diskouez an albom er gemenadenn"
+@@ -2151,10 +2106,6 @@
+ msgid "Insert..."
+ msgstr "Enlakaat..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Staliaet"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2458,7 +2409,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2534,10 +2484,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Profil pennañ (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Lakaat ar roll c'hoari da vezañ lennus ezlinenn"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Respont furmed fall"
+@@ -2798,10 +2744,6 @@
+ msgid "Not enough neighbors"
+ msgstr "N'eus ket trawalc'h a amezeizen"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "N'eo ket staliet"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "N'eo ket kannasket"
+@@ -2936,7 +2878,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Tremenger"
+@@ -3043,10 +2984,6 @@
+ msgid "Playlists"
+ msgstr "Rollioù c'hoari"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stad an enlugellad"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3077,7 +3014,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Gwellvezioù"
+@@ -3094,10 +3030,6 @@
+ msgid "Preferred audio format"
+ msgstr "Stumm audio gwellañ"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Bitrate gwellañ"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Stumm gwellañ"
+@@ -3488,18 +3420,6 @@
+ msgid "Search Magnatune"
+ msgstr "Klask Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Klask Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Klask Spotify (digeriñ un ivinel nevez)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Klask Spotify (digeriñ un ivinel nevez)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Klask e-touez holl o mammennoù (levraoueg, internet, servijoù...)"
+@@ -3824,30 +3744,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Kudenn kennaskañ gant Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Enlugellad Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Enlugellad Spotify n'eo ket staliet"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Boaz"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Gwellañ"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Kregiñ ar roll c'hoari"
+@@ -3857,7 +3757,6 @@
+ msgstr "Kregin an transkodiñ"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Kregin da skrivañ er boest klask a-us evit kavout sonerezh war %1"
+@@ -3943,18 +3842,6 @@
+ msgid "Switch provider"
+ msgstr "Cheñch servij"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Sinkronizadur ar boest degemer Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Sinkronizadur ar roll c'hoari Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Sinkronizadur tonioù gwellañ Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Ivinelloù a-us"
+@@ -4336,10 +4223,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Implij dibarzhioù dre ziouer ar proksi"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Implij normalizadur an ampled"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Implijet"
+@@ -4355,7 +4238,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Lezanv"
+@@ -4592,22 +4474,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "N'ho peus ket a kont Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "N'ho peus ket a kont Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Digevreet oc'h bet eus Spotify, adskrivit ho ger-tremen e-barzh prenestr ar "
+-"c'hefluniadoù."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Digevreet oc'h bet eus Spotify, adskrivit ho ger-tremen mar plij."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Karout a rit ar roadenn-mañ"
+@@ -4675,7 +4541,6 @@
+ msgstr "Ho scrobble: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Ho anv implijer pe ho tremenger a zo direizh."
+
+@@ -4764,8 +4629,6 @@
+ msgstr "etrezek ar re ziwezhañ"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbde"
+
+diff -rauN clementine-1.0.1/src/translations/bs.po clementine-libre-1.0.1/src/translations/bs.po
+--- clementine-1.0.1/src/translations/bs.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/bs.po 2012-05-29 13:52:24.389737809 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -311,7 +307,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -584,12 +579,6 @@
+ msgid "Always start playing"
+ msgstr "Uvjek počni sa slušanjem"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Desila se greška prilikom kopiranja iTunes baze podataka sa uređaja"
+@@ -815,10 +804,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE lista podrška"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Promjeni omot"
+@@ -1029,10 +1014,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Podesi prečice"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Podesi biblioteku..."
+@@ -1050,10 +1031,6 @@
+ msgid "Connect device"
+ msgstr "Spoji uređaj"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1467,10 +1444,6 @@
+ msgid "Download this album..."
+ msgstr "Preuzmi ovaj album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Preuzimam Icecast fasciklu"
+@@ -1483,10 +1456,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Preuzimam Magnatune katalog"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1636,10 +1605,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1821,10 +1786,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2087,10 +2048,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2119,10 +2076,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2425,7 +2378,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2501,10 +2453,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2761,10 +2709,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2899,7 +2843,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -3006,10 +2949,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3040,7 +2979,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3057,10 +2995,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3451,18 +3385,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3787,30 +3709,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3820,7 +3722,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3906,18 +3807,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4275,10 +4164,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4294,7 +4179,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4518,20 +4402,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4591,7 +4461,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4680,8 +4549,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/ca.po clementine-libre-1.0.1/src/translations/ca.po
+--- clementine-1.0.1/src/translations/ca.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ca.po 2012-05-29 14:27:32.546406760 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Us cal un compte Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Cal un compte Premium de Spotify"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Començar sempre reproduint"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Cal un connector addicional per utilitzar Spotify a Clementine. Voleu "
+-"descarregar-lo i instaŀlar-lo ara?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -827,10 +814,6 @@
+ msgid "CUE sheet support"
+ msgstr "Suport per a CUE sheet"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Canceŀla"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Canviar la imatge de la portada"
+@@ -1043,10 +1026,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configura dreceres"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configura l'Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configura la llibreria..."
+@@ -1064,10 +1043,6 @@
+ msgid "Connect device"
+ msgstr "Connecta el dispositiu"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Connectant amb Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Taxa de bits constant"
+@@ -1483,10 +1458,6 @@
+ msgid "Download this album..."
+ msgstr "Descarrega aquest àlbum..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Descarrega..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Descarregant el directori d'Icecast"
+@@ -1499,10 +1470,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Descarregant el catàleg de Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Descarregant el connector d'Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Descarregant metadades"
+@@ -1654,10 +1621,6 @@
+ msgid "Error deleting songs"
+ msgstr "Error esborrant cançons"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1839,10 +1802,6 @@
+ msgid "Font size"
+ msgstr "Mida de la font"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Força la codificació mono"
+@@ -2110,10 +2069,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Safata d'entrafa"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Incloure la caràtula a la notificació"
+@@ -2142,10 +2097,6 @@
+ msgid "Insert..."
+ msgstr "Insereix..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instaŀlat"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2450,7 +2401,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2526,10 +2476,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Resposta malformada"
+@@ -2788,10 +2734,6 @@
+ msgid "Not enough neighbors"
+ msgstr "No hi ha prous veïns"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "No heu iniciat la sessió"
+@@ -2926,7 +2868,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Contrasenya"
+@@ -3033,10 +2974,6 @@
+ msgid "Playlists"
+ msgstr "Llistes de reproducció"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3067,7 +3004,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferències"
+@@ -3084,10 +3020,6 @@
+ msgid "Preferred audio format"
+ msgstr "Format d'àudio preferit"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Format preferit"
+@@ -3478,18 +3410,6 @@
+ msgid "Search Magnatune"
+ msgstr "Cercar a Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3814,30 +3734,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Error en iniciar sessió a Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Connector d'Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Connector d'Spotify no instaŀlat"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Estàndard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Destacat"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Inicia la llista de reproducció que s'està reproduint"
+@@ -3847,7 +3747,6 @@
+ msgstr "Inicia transcodificació"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3933,18 +3832,6 @@
+ msgid "Switch provider"
+ msgstr "Canvia de proveïdor"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4314,10 +4201,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Usat"
+@@ -4333,7 +4216,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nom d'usuari"
+@@ -4560,20 +4442,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4636,7 +4504,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4725,8 +4592,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/cs.po clementine-libre-1.0.1/src/translations/cs.po
+--- clementine-1.0.1/src/translations/cs.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/cs.po 2012-05-29 14:53:26.439741827 -0400
+@@ -257,10 +257,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Je požadován účet Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Je požadován účet Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -321,7 +317,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -594,14 +589,6 @@
+ msgid "Always start playing"
+ msgstr "Vždy začít přehrávat"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Pro používání Spotify v Clementine je vyžadován přídavný modul. Chcete jej "
+-"stáhnout a nainstalovat nyní?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Při kopírování databáze iTunes ze zařízení nastala chyba"
+@@ -827,10 +814,6 @@
+ msgid "CUE sheet support"
+ msgstr "Podpora pro list CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Zrušit"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Změnit obal"
+@@ -1041,10 +1024,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Nastavit klávesové zkratky"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Nastavit Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Nastavit sbírku..."
+@@ -1062,10 +1041,6 @@
+ msgid "Connect device"
+ msgstr "Připojit zařízení"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Připojuje se k Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Stálý datový tok"
+@@ -1481,10 +1456,6 @@
+ msgid "Download this album..."
+ msgstr "Stáhnout toto album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Stáhnout..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Stahuje se adresář Icecast"
+@@ -1497,10 +1468,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Stahuje se katalog Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Stahuje se přídavný modul Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Stahují se metadata"
+@@ -1653,10 +1620,6 @@
+ msgid "Error deleting songs"
+ msgstr "Chyba při mazání písní"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Chyba při stahování přídavného modulu Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1838,11 +1801,6 @@
+ msgid "Font size"
+ msgstr "Velikost písma"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Z licenčních důvodů je podpora pro Spotify v odděleném přídavném modulu"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Vynutit monokódování"
+@@ -2115,10 +2073,6 @@
+ "V dynamickém režimu budou nové skladby vybrány a přidány do seznamu skladeb "
+ "pokaždé, když píseň skončí."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Doručená pošta"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Zahrnout obal alba do oznámení"
+@@ -2147,10 +2101,6 @@
+ msgid "Insert..."
+ msgstr "Vložit..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Nainstalován"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2456,7 +2406,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2532,12 +2481,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Hlavní profil"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-"Zajistit, že seznam skladeb bude dostupný, i když počítač nebude připojen k "
+-"internetu"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Poškozená odpověď"
+@@ -2796,10 +2739,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nedostatek sousedů"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nenainstalován"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Nepřihlášen"
+@@ -2934,7 +2873,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Heslo"
+@@ -3041,10 +2979,6 @@
+ msgid "Playlists"
+ msgstr "Seznamy skladeb"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stav přídavného modulu:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3075,7 +3009,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Nastavení"
+@@ -3092,10 +3025,6 @@
+ msgid "Preferred audio format"
+ msgstr "Upřednostňovaný zvukový formát"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Upřednostňovaný datový tok"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Upřednostňovaný formát"
+@@ -3486,18 +3415,6 @@
+ msgid "Search Magnatune"
+ msgstr "Hledat na Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Hledat v Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Hledat v Spotify (otevře novou kartu)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Hledat v Spotify (otevře novou kartu)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Hledat ve všech vašich zdrojích (sbírka, internetové služby, ...)"
+@@ -3822,30 +3739,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Chyba přihlášení k Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Přídavný modul Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Přídavný modul Spotify není nainstalován"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Obvyklý"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "S hvězdičkou"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Přehrát současnou skladbu v seznamu skladeb"
+@@ -3855,7 +3752,6 @@
+ msgstr "Převést"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Začněte psát ve vyhledávacím poli pro nalezení hudby na %1."
+@@ -3941,18 +3837,6 @@
+ msgid "Switch provider"
+ msgstr "Přepnout poskytovatele"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synchronizuje se schránka Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synchronizuje se seznam skladeb Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synchronizují se skladby označené hvězdičkou na Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Karty nahoře"
+@@ -4329,10 +4213,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Použít systémové nastavení proxy"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Použít normalizaci hlasitosti"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Použito"
+@@ -4348,7 +4228,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Uživatelské jméno"
+@@ -4584,22 +4463,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Nemáte účet Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Nemáte účet Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Byl jste odhlášen ze Spotify. zadejte, prosím, své heslo v dialogu pro "
+-"nastavení znovu."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Byl jste odhlášen ze Spotify. zadejte, prosím, své heslo znovu."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Tato skladba patří mezi vaše oblíbené"
+@@ -4667,7 +4530,6 @@
+ msgstr "Váš počet přehrání: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Uživatelské jméno nebo heslo bylo nesprávné."
+
+@@ -4756,8 +4618,6 @@
+ msgstr "za posledních"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/cy.po clementine-libre-1.0.1/src/translations/cy.po
+--- clementine-1.0.1/src/translations/cy.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/cy.po 2012-05-29 14:57:59.696408611 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/da.po clementine-libre-1.0.1/src/translations/da.po
+--- clementine-1.0.1/src/translations/da.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/da.po 2012-05-29 14:59:00.383075364 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "En Spotify Premium konto er påkrævet."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -315,7 +311,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -588,12 +583,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -819,10 +808,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1023,10 +1008,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Konfigurér Genveje"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Indstil bibliotek..."
+@@ -1044,10 +1025,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1457,10 +1434,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1473,10 +1446,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1628,10 +1597,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1813,10 +1778,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2079,10 +2040,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Inkludér albumkunst i bekendtgørelsen"
+@@ -2111,10 +2068,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2417,7 +2370,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2493,10 +2445,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Misdannet svar"
+@@ -2753,10 +2701,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Ikke nok naboer"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2891,7 +2835,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2998,10 +2941,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3032,7 +2971,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3049,10 +2987,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3443,18 +3377,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3781,30 +3703,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Start den spilleliste der afspiller nu"
+@@ -3814,7 +3716,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3900,18 +3801,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4270,10 +4159,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4289,7 +4174,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4513,20 +4397,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4586,7 +4456,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4675,8 +4544,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/de.po clementine-libre-1.0.1/src/translations/de.po
+--- clementine-1.0.1/src/translations/de.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/de.po 2012-05-29 15:03:39.899742271 -0400
+@@ -258,10 +258,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Ein Grooveshark Anywhere-Konto wird benötigt."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Ein Spotify Premium-Konto ist erforderlich."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -323,7 +319,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -597,14 +592,6 @@
+ msgid "Always start playing"
+ msgstr "Immer mit der Wiedergabe beginnen"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Ein zusätzlich Plugin ist benötigt, um Spotify in Clementine zu benutzen. "
+-"Möchten Sie es jetzt herunterladen und installieren?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -832,10 +819,6 @@
+ msgid "CUE sheet support"
+ msgstr "Unterstützung von Cuesheets"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Abbrechen"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Cover ändern"
+@@ -1048,10 +1031,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Tastenkürzel einrichten"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Spotify konfigurieren..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Musiksammlung einrichten..."
+@@ -1069,10 +1048,6 @@
+ msgid "Connect device"
+ msgstr "Gerät verbinden"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Verbindung mit Spotify wird aufgebaut"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konstante Bitrate"
+@@ -1488,10 +1463,6 @@
+ msgid "Download this album..."
+ msgstr "Album herunterladen..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Herunterladen..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Lade Icecast-Verzeichnis herunter"
+@@ -1504,10 +1475,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Magnatune-Katalog wird geladen"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Spotify-Plugin wird heruntergeladen"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Metadaten werden heruntergeladen"
+@@ -1662,10 +1629,6 @@
+ msgid "Error deleting songs"
+ msgstr "Fehler beim Löschen der Titel"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Fehler beim herunterladen von Spotify-Plugin"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1847,12 +1810,6 @@
+ msgid "Font size"
+ msgstr "Schriftgröße"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Aus lizenzrechtlichen Gründen, ist die Spotify-Unterstützung in einem "
+-"Separaten Plugin enthalten."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Mono Encoding erzwingen"
+@@ -2125,10 +2082,6 @@
+ "Im dynamischen Modus werden neue Stücke automatisch ausgewählt und an die "
+ "Wiedergabeliste angehängt, sobald ein Titel zu Ende ist."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Posteingang"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Cover in der Benachrichtigung anzeigen"
+@@ -2157,10 +2110,6 @@
+ msgid "Insert..."
+ msgstr "Einfügen..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Installiert"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2465,7 +2414,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2541,10 +2489,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Standard - Profil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Wiedergabeliste für die Offlinebenutzung verfügbar machen"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Ungültige Antwort"
+@@ -2803,10 +2747,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nicht genug Nachbarn"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nicht installiert"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Nicht angemeldet"
+@@ -2941,7 +2881,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Passwort"
+@@ -3049,10 +2988,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Plugin-Status"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3083,7 +3018,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Einstellungen"
+@@ -3100,10 +3034,6 @@
+ msgid "Preferred audio format"
+ msgstr "Bevorzugtes Dateiformat"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Bevorzugte Bitrate"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Bevorzugtes Format"
+@@ -3494,18 +3424,6 @@
+ msgid "Search Magnatune"
+ msgstr "Magnatune durchsuchen"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Spotify-Suche"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Spotify-Suche (öffnet im neuen Tab)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Spotify-Suche (öffnet im neuen Tab)"
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Alle Quellen durchsuchen (Sammlung, Internetdienste, …)"
+@@ -3832,30 +3750,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Fehler beim anmelden bei Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify-Plugin"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify-Plugin nicht installiert"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Markiert"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Spiele das aktuelle Stück in der Wiedergabeliste ab"
+@@ -3865,7 +3763,6 @@
+ msgstr "Konvertieren"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Benutzen Sie die Suchleiste um Musik auf %1 zu finden."
+@@ -3951,18 +3848,6 @@
+ msgid "Switch provider"
+ msgstr "Anbieter wechseln"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synchronisiere Spotify Postfach"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synchronisiere Spotify Wiedergabeliste"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synchronisiere markierte Stücke von Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Tabs oben"
+@@ -4345,10 +4230,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Verwende Proxy-Einstellungen des Betriebssystems"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Belegt"
+@@ -4364,7 +4245,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Benutzername"
+@@ -4602,20 +4482,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Sie haben kein Grooveshark Anywhere-Konto."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Sie haben kein Spotify Premium-Konto."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Sie lieben dieses Stück"
+@@ -4683,7 +4549,6 @@
+ msgstr "Ihre Scrobbles: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Ihr Benutzername oder Kennwort sind ungültig."
+
+@@ -4772,8 +4637,6 @@
+ msgstr "in den letzten"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "Kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/el.po clementine-libre-1.0.1/src/translations/el.po
+--- clementine-1.0.1/src/translations/el.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/el.po 2012-05-29 15:04:37.229742284 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Απαιτείτε ένας λογαρισμός Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Απαιτείται premium λογαριασμός Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Έναρξη αναπαραγωγής πάντα"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Απαιτείται ένα πρόσθετο για να χρησιμοποιήσετε το Spotify. Θέλετε να το "
+-"κατεβάσετε και να το εγκαταστήσετε τώρα;"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -827,10 +814,6 @@
+ msgid "CUE sheet support"
+ msgstr "Υποστήριξη φύλλων CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Άκυρο"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Αλλαγή εξώφυλλου καλλιτέχνη"
+@@ -1046,10 +1029,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Ρύθμιση συντομεύσεων"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Ρύθμιση του Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Παραμετροποίηση της βιβλιοθήκης"
+@@ -1069,10 +1048,6 @@
+ msgid "Connect device"
+ msgstr "Σύνδεση συσκευής"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Σύνδεση στο Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Σταθερός ρυθμός bit"
+@@ -1488,10 +1463,6 @@
+ msgid "Download this album..."
+ msgstr "Μεταφόρτωση αυτού του άλμπουμ..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Λήψη..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Μεταφόρτωση καταλόγου Icecast"
+@@ -1504,10 +1475,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Μεταφόρτωση καταλόγου του Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Λήψη πρόσθετου για το Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Λήψη μεταδεδομένων"
+@@ -1664,10 +1631,6 @@
+ msgid "Error deleting songs"
+ msgstr "Σφάλμα κατά την διαγραφή τραγουδιών"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Σφάλμα στην λήψη του πρόσθετου του Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1850,11 +1813,6 @@
+ msgid "Font size"
+ msgstr "Μέγεθος γραμματοσειράς"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Για λόγους αδειοδότησης η υποστήριξη για το Spotify γίνεται ξεχωριστά."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Επιβολή κωδικοποίησης mono"
+@@ -2129,10 +2087,6 @@
+ "Στην δυναμική λειτουργία νέα κομμάτια θα επιλέγονται και τοποθετούνται στην "
+ "λίστα κάθε φορά που ένα τραγούδι τελειώνει."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Εισερχόμενα"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Εμφάνιση του άλμπουμ (εικόνα) στην ειδοποίηση"
+@@ -2163,10 +2117,6 @@
+ msgid "Insert..."
+ msgstr "Εισαγωγή..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Εγκατεστημένο"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Διαδίκτυο"
+@@ -2471,7 +2421,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2547,10 +2496,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Κύριο προφίλ (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Η λίστα να είναι διαθέσιμη και εκτός σύνδεσης"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Παραμορφωμένη απάντηση"
+@@ -2812,10 +2757,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Δεν υπάρχουν αρκετοί γείτονες"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Μη εγκατεστημένο"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Δεν είστε συνδεδεμένος"
+@@ -2950,7 +2891,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Συνθηματικό"
+@@ -3057,10 +2997,6 @@
+ msgid "Playlists"
+ msgstr "Λίστες"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Κατάσταση πρόσθετου:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3091,7 +3027,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Προτιμήσεις"
+@@ -3110,10 +3045,6 @@
+ msgid "Preferred audio format"
+ msgstr "Προτιμώμενη ηχητική διαμόρφωση"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Προτιμώμενος ρυθμός bit "
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Προτιμώμενη μορφή"
+@@ -3504,18 +3435,6 @@
+ msgid "Search Magnatune"
+ msgstr "Εύρεση στο Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Εύρεση Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Εύρεση Spotify (άνοιγμα νέας πινακίδας)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Εύρεση Spotify (άνοιγμα νέας πινακίδας)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Αναζήτηση σε όλες τις πηγές σας (βιβλιοθήκη, υπηρεσίες internet, ...)"
+@@ -3843,30 +3762,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Σφάλμα εισόδου στο Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Πρόσθετο Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Το πρόσθετο του Spotify μη εγκατεστημένο"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Κανονικό"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Με αστέρι"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Εκκίνηση της λίστας αναπαραγωγής που παίζει τώρα"
+@@ -3876,7 +3775,6 @@
+ msgstr "Εκκίνηση επανακωδικοποίησης"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3964,18 +3862,6 @@
+ msgid "Switch provider"
+ msgstr "Αλλαγή παροχέα"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Συγχρονισμός εισερχομένων του Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Συγχρονισμός λίστας του Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Συγχρονισμός κομματιών επισημασμένων με αστέρι του Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Καρτέλες στην κορυφή"
+@@ -4361,10 +4247,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Χρήση ρυθμίσεων του διαμεσολαβητή του συστήματος"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Χρήση κανονικοποίησης ήχου"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Σε χρήση"
+@@ -4380,7 +4262,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Όνομα χρήστη"
+@@ -4617,22 +4498,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Δεν έχετε λογαριασμό στο GrooveShark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Δεν έχετε Premium λογαριασμό στο Spotify."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Έχετε εξέλθει από το Spotify, παρακαλώ εισάγετε πάλι τον κωδικό σας στις "
+-"ρυθμίσεις."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Έχετε εξέλθει από το Spotify, παρακαλώ εισάγετε πάλι τον κωδικό σας."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Λατρεύεις αυτό το κομμάτι"
+@@ -4699,7 +4564,6 @@
+ msgstr "Τα scrobbles σου: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Το όνομα χρήστη ή το συνθηματικό ήταν λανθασμένο."
+
+@@ -4788,8 +4652,6 @@
+ msgstr "εντός των τελευταίων"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/en_CA.po clementine-libre-1.0.1/src/translations/en_CA.po
+--- clementine-1.0.1/src/translations/en_CA.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/en_CA.po 2012-05-29 15:05:50.036409383 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configure Shortcuts"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configure library..."
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1452,10 +1429,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1468,10 +1441,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Downloading Magnatune catalogue"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1622,10 +1591,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1807,10 +1772,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2073,10 +2034,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Include album art in the notification"
+@@ -2105,10 +2062,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2411,7 +2364,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2487,10 +2439,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Malformed response"
+@@ -2748,10 +2696,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Not enough neighbours"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2886,7 +2830,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2993,10 +2936,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3027,7 +2966,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3044,10 +2982,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3438,18 +3372,6 @@
+ msgid "Search Magnatune"
+ msgstr "Search Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3774,30 +3696,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Start the playlist currently playing"
+@@ -3807,7 +3709,6 @@
+ msgstr "Start transcoding"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3893,18 +3794,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4262,10 +4151,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4281,7 +4166,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4505,20 +4389,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4578,7 +4448,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4667,8 +4536,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/en_GB.po clementine-libre-1.0.1/src/translations/en_GB.po
+--- clementine-1.0.1/src/translations/en_GB.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/en_GB.po 2012-05-29 15:06:41.279742544 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "A Spotify Premium account is required."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -315,7 +311,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -588,14 +583,6 @@
+ msgid "Always start playing"
+ msgstr "Always start playing"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "An error occurred copying the iTunes database from the device"
+@@ -821,10 +808,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE sheet support"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Cancel"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Change cover art"
+@@ -1026,10 +1009,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configure library..."
+@@ -1047,10 +1026,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1460,10 +1435,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1476,10 +1447,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1630,10 +1597,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1815,10 +1778,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2081,10 +2040,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Include album art in the notification"
+@@ -2113,10 +2068,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2419,7 +2370,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2495,10 +2445,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Malformed response"
+@@ -2755,10 +2701,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Not enough neighbours"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2893,7 +2835,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -3000,10 +2941,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3034,7 +2971,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3051,10 +2987,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3445,18 +3377,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3781,30 +3701,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Start the playlist currently playing"
+@@ -3814,7 +3714,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3900,18 +3799,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4269,10 +4156,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4288,7 +4171,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4512,20 +4394,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4585,7 +4453,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4674,8 +4541,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/en.po clementine-libre-1.0.1/src/translations/en.po
+--- clementine-1.0.1/src/translations/en.po 2011-12-02 16:24:44.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/en.po 2012-05-29 15:04:56.353075508 -0400
+@@ -178,9 +178,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+ "There are different types of smart playlist that offer different ways of "
+@@ -408,11 +405,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+
+@@ -720,9 +712,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ msgid "Configure library..."
+ msgstr ""
+
+@@ -735,9 +724,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ msgid "Constant bitrate"
+ msgstr ""
+
+@@ -1045,9 +1031,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ msgid "Downloading metadata"
+ msgstr ""
+
+@@ -1152,9 +1135,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #, qt-format
+ msgid "Error loading %1"
+ msgstr ""
+@@ -1280,9 +1260,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ msgid "Force mono encoding"
+ msgstr ""
+
+@@ -2409,15 +2386,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-msgid "Search Spotify"
+-msgstr ""
+-
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ msgid "Search for album covers..."
+ msgstr ""
+
+@@ -2647,18 +2615,6 @@
+ msgid "Speex"
+ msgstr ""
+
+-msgid "Spotify"
+-msgstr ""
+-
+-msgid "Spotify login error"
+-msgstr ""
+-
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ msgid "Standard"
+ msgstr ""
+
+@@ -2674,9 +2630,6 @@
+ msgid "Start typing in the search box above to find music on Grooveshark."
+ msgstr ""
+
+-msgid "Start typing in the search box above to find music on Spotify."
+-msgstr ""
+-
+ #, qt-format
+ msgid "Starting %1"
+ msgstr ""
+@@ -2731,15 +2684,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ msgid "Tabs on top"
+ msgstr ""
+
+@@ -3180,9 +3124,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+ msgid ""
+ "You have selected a Premium-only audio type but do not have any account "
+ "details entered"
+diff -rauN clementine-1.0.1/src/translations/eo.po clementine-libre-1.0.1/src/translations/eo.po
+--- clementine-1.0.1/src/translations/eo.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/eo.po 2012-05-29 15:18:59.993076631 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Eraro okazis dum kopiado de la iTunes-datumbazo el aparato"
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/es.po clementine-libre-1.0.1/src/translations/es.po
+--- clementine-1.0.1/src/translations/es.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/es.po 2012-05-29 15:22:56.383076862 -0400
+@@ -254,10 +254,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Se requiere una cuenta Grooveshrak Anywhere"
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Se requiere una cuenta Premium de Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -319,7 +315,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -592,14 +587,6 @@
+ msgid "Always start playing"
+ msgstr "Siempre empezar a reproducir"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Un plugin adicional es requerido para usar Spotify en Clementine. ¿Te "
+-"gustaría descargarlo e instalarlo ahora?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -829,10 +816,6 @@
+ msgid "CUE sheet support"
+ msgstr "Soporte de hoja CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Cancelar"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Cambiar portada"
+@@ -1046,10 +1029,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurar accesos rápidos"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configurar Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurar colección..."
+@@ -1067,10 +1046,6 @@
+ msgid "Connect device"
+ msgstr "Conectar dispositivo"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Connectando con Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Flujo de bits constante"
+@@ -1486,10 +1461,6 @@
+ msgid "Download this album..."
+ msgstr "Descargar este álbum..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Descargar..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Descargar el directorio de Icecast"
+@@ -1502,10 +1473,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Descargando el catálogo de Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Descargando el plugin Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Descargando metadatos"
+@@ -1657,10 +1624,6 @@
+ msgid "Error deleting songs"
+ msgstr "Error al borrar canciones"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Error descargando el plugin Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1844,12 +1807,6 @@
+ msgid "Font size"
+ msgstr "Tamaño de letra"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Por razones de licenciamiento, para usar Spotify se necesita un complemento "
+-"separado."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forzar la codificación en mono"
+@@ -2123,10 +2080,6 @@
+ "En el modo dinámico las canciones nuevas se elegirán y añadirán a la lista "
+ "de reproducción cada vez que termine una canción."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Bandeja de entrada"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Incluir carátula en la notificación"
+@@ -2155,10 +2108,6 @@
+ msgid "Insert..."
+ msgstr "Insertar..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalado"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2463,7 +2412,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2539,10 +2487,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Perfil principal (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Hacer disponible la lista de reproducción fuera de línea"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Respuesta malformada"
+@@ -2803,10 +2747,6 @@
+ msgid "Not enough neighbors"
+ msgstr "No hay suficientes vecinos"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "No instalado"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "No ha iniciado sesión"
+@@ -2941,7 +2881,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Contraseña"
+@@ -3048,10 +2987,6 @@
+ msgid "Playlists"
+ msgstr "Listas de reproducción"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Estado del complemento:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3082,7 +3017,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferencias"
+@@ -3099,10 +3033,6 @@
+ msgid "Preferred audio format"
+ msgstr "Formato de audio preferido"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Formato preferido"
+@@ -3493,18 +3423,6 @@
+ msgid "Search Magnatune"
+ msgstr "Buscar en Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Buscar en Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Buscar en Spotify (abre una nueva pestaña)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Buscar en Spotify (abre una pestaña nueva)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Buscar en todas tus fuentes(libreria, servicios de internet, ...) "
+@@ -3830,30 +3748,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Error de inicio de sesión de Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Complemento de Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "El complemento de Spotify no está instalado"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Estándar"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Destacado"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Iniciar la lista de reproducción actualmente reproduciendose"
+@@ -3863,7 +3761,6 @@
+ msgstr "Comenzar conversión"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3951,18 +3848,6 @@
+ msgid "Switch provider"
+ msgstr "Cambiar proveedor"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Sincronizando bandeja de entrada de Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Sincronizando lista de reproducción de Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Sincronizando canciones destacadas de Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Pestañas en la parte superior"
+@@ -4341,10 +4226,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Utilizar la configuración para proxy del sistema"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Usado"
+@@ -4360,7 +4241,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nombre de Usuario"
+@@ -4599,20 +4479,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "No tienes una cuenta Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "No tienes una cuenta Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Amas esta canción"
+@@ -4680,7 +4546,6 @@
+ msgstr "Sus scrobbles: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Tu nombre de usuario o contraseña es incorrecta."
+
+@@ -4769,8 +4634,6 @@
+ msgstr "en los últimos"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/et.po clementine-libre-1.0.1/src/translations/et.po
+--- clementine-1.0.1/src/translations/et.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/et.po 2012-05-29 15:46:09.829745009 -0400
+@@ -251,10 +251,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -310,7 +306,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -583,12 +578,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -814,10 +803,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Loobu"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1018,10 +1003,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Kiirklahvide seadistamine"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1039,10 +1020,6 @@
+ msgid "Connect device"
+ msgstr "Ühenda seade"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1452,10 +1429,6 @@
+ msgid "Download this album..."
+ msgstr "Lae see album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1468,10 +1441,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1622,10 +1591,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1807,10 +1772,6 @@
+ msgid "Font size"
+ msgstr "Kirja suurus"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2073,10 +2034,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2105,10 +2062,6 @@
+ msgid "Insert..."
+ msgstr "Lisa..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Paigaldatud"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2411,7 +2364,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2487,10 +2439,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Vigane vastus"
+@@ -2748,10 +2696,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Pole piisavalt naabreid"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2886,7 +2830,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Parool"
+@@ -2993,10 +2936,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3027,7 +2966,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Seadistused"
+@@ -3044,10 +2982,6 @@
+ msgid "Preferred audio format"
+ msgstr "Eelistatud heli vorming"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Eelistatud vorming"
+@@ -3438,18 +3372,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3774,30 +3696,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3807,7 +3709,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3893,18 +3794,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4262,10 +4151,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Kasutuses"
+@@ -4281,7 +4166,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Kasutajanimi"
+@@ -4505,20 +4389,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4578,7 +4448,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4667,8 +4536,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/eu.po clementine-libre-1.0.1/src/translations/eu.po
+--- clementine-1.0.1/src/translations/eu.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/eu.po 2012-05-29 15:47:59.699745177 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/fa.po clementine-libre-1.0.1/src/translations/fa.po
+--- clementine-1.0.1/src/translations/fa.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/fa.po 2012-05-29 15:57:55.966412407 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "حساب کاربری «Spotify Premium» مورد نیاز است."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -315,7 +311,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -588,14 +583,6 @@
+ msgid "Always start playing"
+ msgstr "همواره پخش را شروع کن"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"کلمنتاین به افزونهٔ دیگری برای استفادهٔ اسپاتیفای نیاز دارد. آیا می‌خواهید"
+-" این افزونه را بارگیری و نصب نمایید؟"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "مشکلی هنگام کپی‌کردن بانک اطلاعاتی آی‌تیون از دستگاه پیش آمد"
+@@ -821,10 +808,6 @@
+ msgid "CUE sheet support"
+ msgstr "برگهٔ پشتیبانی CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "لغو"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "تغییر جلد هنری"
+@@ -1035,10 +1018,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "پیکربندی میان‌برها"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "پیکربندی Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "پیکربندی کتابخانه..."
+@@ -1056,10 +1035,6 @@
+ msgid "Connect device"
+ msgstr "اتصال دستگاه"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "اتصال به Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "ضرباهنگ ثابت"
+@@ -1475,10 +1450,6 @@
+ msgid "Download this album..."
+ msgstr "بارگیری این آلبوم..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "بارگیری..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "بارگیری پوشهٔ Icecast"
+@@ -1491,10 +1462,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "بارگیری کاتالوگ Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "بارگیری افزونهٔ Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "بارگیری ابرداده"
+@@ -1645,10 +1612,6 @@
+ msgid "Error deleting songs"
+ msgstr "خطا در پاک کردن آهنگ‌ها"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "خطا در بارگیری افزونهٔ Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1830,10 +1793,6 @@
+ msgid "Font size"
+ msgstr "اندازهٔ قلم"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "به دلایل اجازه‌نامه، پشتیبانی اسپاتیفای در افزونه‌ای جداگانه است."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "رمزینهٔ مونو پخش کن"
+@@ -2104,10 +2063,6 @@
+ "در حالت دینامیک پس از پایان هر آهنگ، قطعه‌های تازه انتخاب و به لیست‌پخش "
+ "افزوده می‌شوند."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "صندوق ورودی"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "آلبوم هنری را در آگاهساز قرار بده"
+@@ -2136,10 +2091,6 @@
+ msgid "Insert..."
+ msgstr "قرار دادن..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "نصب شد"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "اینترنت"
+@@ -2442,7 +2393,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2518,10 +2468,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "مشخصات اصلی (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "لیست‌پخش را بیرون‌خط در دسترس بگذار"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "پاسخ ناهنجار"
+@@ -2780,10 +2726,6 @@
+ msgid "Not enough neighbors"
+ msgstr "بدون همسایهٔ کافی"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "نصب نشده"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2918,7 +2860,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "کلمهٔ عبور"
+@@ -3025,10 +2966,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "وضعیت افزونه"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "پاپ"
+@@ -3059,7 +2996,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "تنظیمات‌"
+@@ -3076,10 +3012,6 @@
+ msgid "Preferred audio format"
+ msgstr "فرمت صوتی ترجیحی"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "فرمت ترجیحی"
+@@ -3470,18 +3402,6 @@
+ msgid "Search Magnatune"
+ msgstr "جستجوی Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "جستجوی Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "جستجوی Spotify (گشودن باریکهٔ تازه)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "جستجوی Spotify (گشودن باریکهٔ تازه)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3806,30 +3726,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "خطای ورود به سیستم Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "افزونهٔ Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "افزونهٔ Spotify نصب نیست"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "استاندارد"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "ستاره‌دار"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "شروع لیست‌پخش در حال پخش"
+@@ -3839,7 +3739,6 @@
+ msgstr "شروع ترانسکد"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3925,18 +3824,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "همگام‌سازی صندوق ورودی اسپاتیفای"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "همگام‌سازی لیست‌پخش اسپاتیفای"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "همگام‌سازی قطعه‌های ستاره‌دار اسپاتیفای"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "باریکه‌ها در بالا"
+@@ -4314,10 +4201,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "بکاربردن تنظیمات پراکسی سیستم"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "استفاده‌شده"
+@@ -4333,7 +4216,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "شناسه"
+@@ -4568,20 +4450,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "عاشق این آهنگ هستید"
+@@ -4648,7 +4516,6 @@
+ msgstr "برونکشی‌های شما: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4737,8 +4604,6 @@
+ msgstr "در آخرین"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/fi.po clementine-libre-1.0.1/src/translations/fi.po
+--- clementine-1.0.1/src/translations/fi.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/fi.po 2012-05-29 16:22:14.749747287 -0400
+@@ -250,10 +250,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Grooveshark Anywhere tili vaaditaan käyttöön."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotifyn Premium-tili vaaditaan."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -311,7 +307,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -584,14 +579,6 @@
+ msgid "Always start playing"
+ msgstr "Aloita aina toisto"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Spotifyn käyttö Clementinessä vaatii lisäosan. Haluatko ladata ja asentaa "
+-"sen nyt?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "iTunes-tietokantaa laitteesta ladatessa tapahtui virhe"
+@@ -819,10 +806,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE-tiedostojen tuki"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Peru"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Vaihda kansikuvaa"
+@@ -1032,10 +1015,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Pikanäppäinten asetukset..."
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Muokkaa Spotifya..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Kirjaston asetukset..."
+@@ -1053,10 +1032,6 @@
+ msgid "Connect device"
+ msgstr "Yhdistä laite"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Yhdistetään Spotifyyn"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Pysyvä bittinopeus"
+@@ -1468,10 +1443,6 @@
+ msgid "Download this album..."
+ msgstr "Lataa tämä levy..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Lataa..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Ladataan Icecast-hakemistoa"
+@@ -1484,10 +1455,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Ladataan Magnatune-luetteloa"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Ladataan Spotify-liitännäistä"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Noudetaan metadataa"
+@@ -1638,10 +1605,6 @@
+ msgid "Error deleting songs"
+ msgstr "Virhe kappaleita poistaessa"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Virhe ladatessa Spotify-liitännäistä"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1825,10 +1788,6 @@
+ msgid "Font size"
+ msgstr "Kirjasinkoko"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Lisenssisyistä Spotify-tuki on erillinen liitännäinen."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Pakota monokoodaus"
+@@ -2097,10 +2056,6 @@
+ "Dynaamisessa tilassa uusia kappaleita valitaan ja lisätään soittolistaan "
+ "joka kerta kun yksi kappale on soitettu."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Saapuneet"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Näytä kansikuva ilmoituksen yhteydessä"
+@@ -2129,10 +2084,6 @@
+ msgid "Insert..."
+ msgstr "Lisää..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Asennettu"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2435,7 +2386,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2511,10 +2461,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Oletusprofiili (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Virheellinen vastaus"
+@@ -2775,10 +2721,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Ei tarpeeksi naapureita"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Ei asennettu"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Ei kirjautunut"
+@@ -2913,7 +2855,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Salasana"
+@@ -3020,10 +2961,6 @@
+ msgid "Playlists"
+ msgstr "Soittolistat"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Liitännäisen tila:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3054,7 +2991,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Asetukset"
+@@ -3071,10 +3007,6 @@
+ msgid "Preferred audio format"
+ msgstr "Ensisijainen äänimuoto"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Ensisijainen muoto"
+@@ -3465,18 +3397,6 @@
+ msgid "Search Magnatune"
+ msgstr "Etsi Magnatunesta"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Etsi Spotifysta"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Etsi Spotifysta (avaa uuden välilehden)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Etsi Spotifysta (avaa uuden välilehden)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Etsi kaikista lähteistä (kirjasto, internet, ...)"
+@@ -3801,30 +3721,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify-kirjautumisvirhe"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify-liitännäinen"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify-liitännäistä ei ole asennettu"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Normaali"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3834,7 +3734,6 @@
+ msgstr "Aloita muunnos"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3920,18 +3819,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synkronoi Spotify saapuneet"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synkronoi Spotify soittolistan"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synkronoi Spotify arvostellut kappaleet"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Välilehdet ylhäällä"
+@@ -4306,10 +4193,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Käytä järjestelmän välityspalvelinasetuksia"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Käytetty"
+@@ -4325,7 +4208,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Käyttäjätunnus"
+@@ -4562,20 +4444,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Sinulla ei ole Grooveshark Anywhere tiliä."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Sinulla ei ole Spotify Premium tiliä."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Tykkäät tästä kappaleesta"
+@@ -4635,7 +4503,6 @@
+ msgstr "Lähetyksesi: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Käyttäjätunnus tai salasana oli virheellinen."
+
+@@ -4724,8 +4591,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/fr.po clementine-libre-1.0.1/src/translations/fr.po
+--- clementine-1.0.1/src/translations/fr.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/fr.po 2012-05-29 16:25:03.779747446 -0400
+@@ -258,10 +258,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Un compte Grooveshark Anywhere est nécessaire."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Un compte Spotify Premium est nécessaire."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -323,7 +319,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -597,14 +592,6 @@
+ msgid "Always start playing"
+ msgstr "Toujours commencer à lire"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Un module externe est requis pour pouvoir utiliser Spotify. Voulez-vous le "
+-"télécharger et l'installer maintenant ?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -838,10 +825,6 @@
+ msgid "CUE sheet support"
+ msgstr "Support des CUE sheet."
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Annuler"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Changer la couverture de l'album"
+@@ -1056,10 +1039,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurer les raccourcis clavier"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configurer Spotify…"
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurer votre bibliothèque..."
+@@ -1077,10 +1056,6 @@
+ msgid "Connect device"
+ msgstr "Connexion du périphérique"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Connexion à Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Débit constant"
+@@ -1496,10 +1471,6 @@
+ msgid "Download this album..."
+ msgstr "Télécharger cet album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Télécharger..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Téléchargement du catalogue d'Icecast"
+@@ -1512,10 +1483,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Téléchargement du catalogue Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Téléchargement du module Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Téléchargement des métadonnées"
+@@ -1671,10 +1638,6 @@
+ msgid "Error deleting songs"
+ msgstr "Erreur lors de la suppression des morceaux"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Erreur lors du téléchargement du module Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1858,12 +1821,6 @@
+ msgid "Font size"
+ msgstr "Taille de la police"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Pour des raisons de licence, le support de Spotify est dans un module "
+-"séparé."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forcer l’encodage en mono"
+@@ -2138,10 +2095,6 @@
+ "En mode dynamique, de nouvelles pistes seront choisies et ajoutées à la fin "
+ "de la liste de lecture chaque fois qu'un morceau se terminera."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Boîte de réception"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Inclure la pochette de l'abum dans la fenêtre de notification"
+@@ -2170,10 +2123,6 @@
+ msgid "Insert..."
+ msgstr "Insérer..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Installé(e)(s)"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2481,7 +2430,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2557,10 +2505,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Profil principal (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Rendre la liste de lecture accessible hors ligne"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Réponse mal formatée"
+@@ -2822,10 +2766,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Voisins insuffisants"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Non installé"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Non connecté"
+@@ -2960,7 +2900,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Mot de passe"
+@@ -3067,10 +3006,6 @@
+ msgid "Playlists"
+ msgstr "Listes de lecture"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "État du module externe :"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3101,7 +3036,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Préférences"
+@@ -3118,10 +3052,6 @@
+ msgid "Preferred audio format"
+ msgstr "Format audio préféré"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Débit préféré"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Format préféré"
+@@ -3512,18 +3442,6 @@
+ msgid "Search Magnatune"
+ msgstr "Recherche Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Recherche Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Recherche Spotify (ouvre un nouvel onglet)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Recherche Spotify (ouvre un nouvel onglet)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3851,30 +3769,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Erreur lors de la connexion à Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Module externe Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Le module externe de Spotify n'est pas installé"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Favoris"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Commencer la liste de lecture jouée actuellement"
+@@ -3884,7 +3782,6 @@
+ msgstr "Démarrer transcodage"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3972,18 +3869,6 @@
+ msgid "Switch provider"
+ msgstr "Changer de service"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synchronisation de la boîte de réception Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synchronisation de la liste de lecture Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synchronisation des morceaux Spotify préférés"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Onglets au dessus"
+@@ -4369,10 +4254,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Utiliser les paramètres du système pour le serveur mandataire"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Utilisé"
+@@ -4388,7 +4269,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nom d'utilisateur"
+@@ -4629,23 +4509,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Vous n'avez pas de compte Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Vous n'avez pas de compte Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Vous avez été déconnecté de Spotify ; merci de ressaisir votre mot de passe "
+-"dans la fenêtre des préférences."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-"Vous avez été déconnecté de Spotify ; merci de ressaisir votre mot de passe."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Vous aimez cette piste"
+@@ -4713,7 +4576,6 @@
+ msgstr "Vos scrobbles : %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Votre nom d'utilisateur ou mot de passe est incorrect."
+
+@@ -4802,8 +4664,6 @@
+ msgstr "parmi les derniers"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/gl.po clementine-libre-1.0.1/src/translations/gl.po
+--- clementine-1.0.1/src/translations/gl.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/gl.po 2012-05-29 16:27:07.409747570 -0400
+@@ -251,10 +251,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -310,7 +306,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -583,12 +578,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Aconteceu un erro copiando a base de datos de iTunes do dispositivo"
+@@ -814,10 +803,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1022,10 +1007,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurar a biblioteca..."
+@@ -1043,10 +1024,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1456,10 +1433,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1472,10 +1445,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1625,10 +1594,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1810,10 +1775,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2076,10 +2037,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2108,10 +2065,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2415,7 +2368,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2491,10 +2443,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Resposta mal formada"
+@@ -2751,10 +2699,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Viciños insuficientes"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2889,7 +2833,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2996,10 +2939,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3030,7 +2969,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3047,10 +2985,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3441,18 +3375,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3777,30 +3699,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Reproducir a playlist actualmente reproducindo"
+@@ -3810,7 +3712,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3896,18 +3797,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4265,10 +4154,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4284,7 +4169,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4508,20 +4392,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4581,7 +4451,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4670,8 +4539,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/he.po clementine-libre-1.0.1/src/translations/he.po
+--- clementine-1.0.1/src/translations/he.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/he.po 2012-05-29 16:33:23.043081344 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -313,7 +309,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -586,12 +581,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "ארעה שגיאה בהעתקת מסד הנתונים של iTunes מההתקן"
+@@ -817,10 +806,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "שינוי עטיפת האלבום"
+@@ -1025,10 +1010,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "הגדר קיצורי מקשים"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "הגדר את הספרייה..."
+@@ -1046,10 +1027,6 @@
+ msgid "Connect device"
+ msgstr "חבר התקן"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1464,10 +1441,6 @@
+ msgid "Download this album..."
+ msgstr "הורד את האלבום הזה..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "מוריד תיקיית Icecast"
+@@ -1480,10 +1453,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "מוריד את הקטלוג של Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1633,10 +1602,6 @@
+ msgid "Error deleting songs"
+ msgstr "שגיאה במחיקת שירים"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1818,10 +1783,6 @@
+ msgid "Font size"
+ msgstr "גודל הגופן"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2086,10 +2047,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "אומנות אלבום בתוך ההתראה"
+@@ -2118,10 +2075,6 @@
+ msgid "Insert..."
+ msgstr "הוספה..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "אינטרנט"
+@@ -2424,7 +2377,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2500,10 +2452,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "תגובה שגויה"
+@@ -2761,10 +2709,6 @@
+ msgid "Not enough neighbors"
+ msgstr "אין מספיק שכנים"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2899,7 +2843,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "סיסמא"
+@@ -3006,10 +2949,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "פופ"
+@@ -3040,7 +2979,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "מאפיינים"
+@@ -3057,10 +2995,6 @@
+ msgid "Preferred audio format"
+ msgstr "פורמט אודיו מועדף"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "פורמט מועדף"
+@@ -3451,18 +3385,6 @@
+ msgid "Search Magnatune"
+ msgstr "חיפוש ב־Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3787,30 +3709,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "התחל את רשימת־ההשמעה המתנגנת כעת"
+@@ -3820,7 +3722,6 @@
+ msgstr "התחלת הקידוד"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3906,18 +3807,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "לשוניות למעלה"
+@@ -4280,10 +4169,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "שימוש בהגדרות הפרוקסי של המערכת"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "בשימוש"
+@@ -4299,7 +4184,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "שם משתמש"
+@@ -4532,20 +4416,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "אתה אוהב את הרצועה הזו"
+@@ -4608,7 +4478,6 @@
+ msgstr "ה-scrobbles שלך: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4697,8 +4566,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "קילו־סיביות לשניה"
+
+diff -rauN clementine-1.0.1/src/translations/hi.po clementine-libre-1.0.1/src/translations/hi.po
+--- clementine-1.0.1/src/translations/hi.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/hi.po 2012-05-29 16:34:21.266414734 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/hr.po clementine-libre-1.0.1/src/translations/hr.po
+--- clementine-1.0.1/src/translations/hr.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/hr.po 2012-05-29 16:50:07.443081990 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify Premium račun je obvezan."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Uvijek započinji reprodukciju glazbe"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Dodatni dodatak je potreban za korištenje Spotify-a u Clementine-u. Želite "
+-"li preuzeti dodatak i instalirati sada?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Pogreška je nastala tijekom kopiranja iTunes baze podataka sa uređaja"
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr "Podrška za CUE listu"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Otkaži"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Promijenite omot albuma"
+@@ -1039,10 +1022,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Podesi prečace"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Podesite Spotify ..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Podesi zbirku..."
+@@ -1060,10 +1039,6 @@
+ msgid "Connect device"
+ msgstr "Spoji uređaj"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Spajanje Spotify-a"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konstantna brzina prijenosa"
+@@ -1479,10 +1454,6 @@
+ msgid "Download this album..."
+ msgstr "Preuzmi ovaj album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Preuzmi..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Preuzimanje Icecast direktorija"
+@@ -1495,10 +1466,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Preuzimanje Magnatune kataloga"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Preuzimanje Spotify dodatka"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Preuzimanje metapodataka"
+@@ -1649,10 +1616,6 @@
+ msgid "Error deleting songs"
+ msgstr "Pogreška u brisanju pjesama"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "pogreška pri preuzimanju Spotify dodatka"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1834,10 +1797,6 @@
+ msgid "Font size"
+ msgstr "Veličina slova"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Zbog razloga licenciranja Spotify-a podrška je u posebnom dodatak."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forsiraj mono enkodiranje"
+@@ -2108,10 +2067,6 @@
+ "U dinamičkom modu nove pjesme će biti izabrane i dodane u popis izvođenja "
+ "svaki puta kada je pjesma odsvirana."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Pristigle poruke"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Prikaži omot albuma u obavijesti"
+@@ -2140,10 +2095,6 @@
+ msgid "Insert..."
+ msgstr "Umetni..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalirano"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2446,7 +2397,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2522,10 +2472,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Glavni profil (GLAVNI)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Učini popis izvođenja dostupnim kada je veza prekinuta"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Pogreška u odgovoru"
+@@ -2784,10 +2730,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nema dovoljno susjeda"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nije instalirano"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2922,7 +2864,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Lozinka"
+@@ -3029,10 +2970,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Status dodatka:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3063,7 +3000,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Opcije"
+@@ -3080,10 +3016,6 @@
+ msgid "Preferred audio format"
+ msgstr "Željeni audio format"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Željeni format"
+@@ -3474,18 +3406,6 @@
+ msgid "Search Magnatune"
+ msgstr "Pretražite Magnatune stanice"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Pretražite Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Pretražite Spotify (otvori u novoj kartici)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Pretražite Spotify (otvori u novoj kartici)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3811,30 +3731,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify pogreška kod prijave"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify dodatak"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify dodatak nije instaliran"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standardno"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Sa zvjezdicom"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Pokrenite popis izvođenja koji se trenutno izvodi"
+@@ -3844,7 +3744,6 @@
+ msgstr "Započni enkodiranje"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3930,18 +3829,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Sinkronizacija Spotify ulaznog spremnika"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Sinkroniziranje Spotify popisa izvođenja"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Sinkronizacija Spotify pjesama označenim zvjezdicama"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Kartice pri vrhu"
+@@ -4318,10 +4205,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Koristite proxy postavke od sustava"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Iskorišteno"
+@@ -4337,7 +4220,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Korisničko ime"
+@@ -4572,20 +4454,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Sviđa vam se ova pjesma"
+@@ -4653,7 +4521,6 @@
+ msgstr "Vaši scrobbles: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4742,8 +4609,6 @@
+ msgstr "u posljednjih"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/hu.po clementine-libre-1.0.1/src/translations/hu.po
+--- clementine-1.0.1/src/translations/hu.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/hu.po 2012-05-29 16:50:46.463082538 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Grooveshark Anywhere fiók szükséges."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify prémium fiók szükséges"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Mindig indítja a lejátszást"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"A Spotify használatához külön beépülő szükséges. Szeretnéd most letölteni és"
+-" telepíteni?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Hiba történt az iTunes adatbázis másolása közben az eszközről"
+@@ -823,10 +810,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE fájl támogatás"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Mégsem"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Albumborító módosítása"
+@@ -1042,10 +1025,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Billentyűkombinációk beállítása"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Spotify beállítása..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Zenetár beállítása..."
+@@ -1065,10 +1044,6 @@
+ msgid "Connect device"
+ msgstr "Eszköz csatlakoztatása"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Csatlakozás a Spotifyhoz"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Állandó bitráta"
+@@ -1484,10 +1459,6 @@
+ msgid "Download this album..."
+ msgstr "Album letöltése..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Letöltés…"
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Icecast könyvtár letöltése"
+@@ -1500,10 +1471,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Magnatune katalógus letöltése"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Spotify beépülő letöltése"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Metaadat letöltése"
+@@ -1656,10 +1623,6 @@
+ msgid "Error deleting songs"
+ msgstr "Hiba történt a számok törlése közben"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Hiba a Spotify beépülő letöltése közben"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1842,12 +1805,6 @@
+ msgid "Font size"
+ msgstr "Betűméret"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Licencelési okok miatt a Spotify támogatást külön beépülőben kell "
+-"telepíteni."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Mono kódolás kényszerítése"
+@@ -2117,10 +2074,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Beérkezett üzenetek"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Albumborító megjelenítése az értesítésben"
+@@ -2149,10 +2102,6 @@
+ msgid "Insert..."
+ msgstr "Beszúrás..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Telepítve"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2455,7 +2404,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2531,10 +2479,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Fő profil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Hibásan formázott válasz"
+@@ -2793,10 +2737,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nincs elég szomszédja"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nincs telepítve"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2931,7 +2871,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Jelszó"
+@@ -3038,10 +2977,6 @@
+ msgid "Playlists"
+ msgstr "Lejátszási lista"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Beépülő állapot:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3072,7 +3007,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Beállítások"
+@@ -3089,10 +3023,6 @@
+ msgid "Preferred audio format"
+ msgstr "Előnyben részesített audio formátum"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Előnyben részesített formátum"
+@@ -3483,18 +3413,6 @@
+ msgid "Search Magnatune"
+ msgstr "Keresés a Magnatuneon"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Keresés Spotifyon"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Keresés Spotifyon (új lapot nyit)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Keresés Spotifyon (új lapot nyit)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3822,30 +3740,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Hiba a Spotifyra való bejelentkezéskor"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify beépülő"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "A Spotify beépülő nincs telepítve"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Normál"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Kedvenc"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Az éppen lejátszott lista indítása"
+@@ -3855,7 +3753,6 @@
+ msgstr "Átkódolás indítása"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3941,18 +3838,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Spotify üzenetek szinkronizálása"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Spotify lejátszási lista szinkronizálása"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Spotify csillagozott számok szinronizálása"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Lapfülek felül"
+@@ -4327,10 +4212,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "A rendszer proxy beállításainak használata"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Használt"
+@@ -4346,7 +4227,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Felhasználónév"
+@@ -4580,20 +4460,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Kedveled ezt a számot"
+@@ -4660,7 +4526,6 @@
+ msgstr "Scrobblejaid: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4749,8 +4614,6 @@
+ msgstr "az utóbbi"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/hy.po clementine-libre-1.0.1/src/translations/hy.po
+--- clementine-1.0.1/src/translations/hy.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/hy.po 2012-05-29 16:51:35.523082336 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/ia.po clementine-libre-1.0.1/src/translations/ia.po
+--- clementine-1.0.1/src/translations/ia.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ia.po 2012-05-29 16:52:43.266415554 -0400
+@@ -250,10 +250,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -309,7 +305,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -582,12 +577,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -813,10 +802,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1017,10 +1002,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1038,10 +1019,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1451,10 +1428,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1467,10 +1440,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1620,10 +1589,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1805,10 +1770,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2071,10 +2032,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2103,10 +2060,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2409,7 +2362,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2485,10 +2437,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2745,10 +2693,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2883,7 +2827,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2990,10 +2933,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3024,7 +2963,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3041,10 +2979,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3435,18 +3369,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3771,30 +3693,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3804,7 +3706,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3890,18 +3791,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4259,10 +4148,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4278,7 +4163,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4502,20 +4386,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4575,7 +4445,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4664,8 +4533,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/id.po clementine-libre-1.0.1/src/translations/id.po
+--- clementine-1.0.1/src/translations/id.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/id.po 2012-05-29 16:55:43.939749412 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Sebuah akun Premium Spotify diperlukan."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,12 +584,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -820,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1024,10 +1009,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1045,10 +1026,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1458,10 +1435,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1474,10 +1447,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1627,10 +1596,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1812,10 +1777,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2078,10 +2039,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2110,10 +2067,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2416,7 +2369,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2492,10 +2444,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2752,10 +2700,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2890,7 +2834,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2997,10 +2940,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3031,7 +2970,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3048,10 +2986,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3442,18 +3376,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3778,30 +3700,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3811,7 +3713,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3897,18 +3798,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4266,10 +4155,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4285,7 +4170,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4509,20 +4393,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4582,7 +4452,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4671,8 +4540,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/is.po clementine-libre-1.0.1/src/translations/is.po
+--- clementine-1.0.1/src/translations/is.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/is.po 2012-05-29 16:56:42.033082876 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr "Alltaf hefja spilun"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Villa kom upp við afritun iTunes gagnagrunns af tæki"
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/it.po clementine-libre-1.0.1/src/translations/it.po
+--- clementine-1.0.1/src/translations/it.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/it.po 2012-05-29 16:57:27.279749567 -0400
+@@ -256,10 +256,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "È richiesto un account Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "È richiesto un account Premium di Spotify"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Inizia sempre la riproduzione"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Un plugin aggiuntivo è richiesto per utilizzare Spotify in Clementine. Vuoi "
+-"scaricarlo e installarlo subito?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -829,10 +816,6 @@
+ msgid "CUE sheet support"
+ msgstr "Supporto CUE sheet"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Annulla"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Cambia copertina"
+@@ -1044,10 +1027,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configura scorciatoie"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configura Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configura raccolta..."
+@@ -1065,10 +1044,6 @@
+ msgid "Connect device"
+ msgstr "Connetti dispositivo"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Connessione a Spotify in corso"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Bitrate costante"
+@@ -1484,10 +1459,6 @@
+ msgid "Download this album..."
+ msgstr "Scarica questo album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Scarica..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Scaricamento directory Icecast in corso"
+@@ -1500,10 +1471,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Scaricamento catalogo Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Scarica il plugin di Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Scaricamento metadati in corso"
+@@ -1658,10 +1625,6 @@
+ msgid "Error deleting songs"
+ msgstr "Errore durante l'eliminazione dei brani"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Errore di scaricamento del plugin di Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1844,11 +1807,6 @@
+ msgid "Font size"
+ msgstr "Dimensione del carattere"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Per motivi di licenza, il supporto di Spotify è in un plugin separato."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forza codifica mono"
+@@ -2123,10 +2081,6 @@
+ "Nella modalità dinamica le nuove tracce saranno scelte e aggiunte alla "
+ "scaletta al termine di ogni brano."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "In arrivo"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Includi copertina nella notifica"
+@@ -2155,10 +2109,6 @@
+ msgid "Insert..."
+ msgstr "Inserisci..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Installati"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2465,7 +2415,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2541,10 +2490,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Profilo principale (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Rendi la scaletta disponibile non in linea"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Risposta non corretta"
+@@ -2804,10 +2749,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Vicini non sufficienti"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Non installati"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Accesso non effettuato"
+@@ -2942,7 +2883,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Password"
+@@ -3049,10 +2989,6 @@
+ msgid "Playlists"
+ msgstr "Scalette"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stato del plugin:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3083,7 +3019,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferenze"
+@@ -3100,10 +3035,6 @@
+ msgid "Preferred audio format"
+ msgstr "Formato audio preferito"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Bitrate preferito"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Formato preferito"
+@@ -3494,18 +3425,6 @@
+ msgid "Search Magnatune"
+ msgstr "Cerca in Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Cerca in Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Cerca in Spotify (apre una nuova scheda)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Cerca in Spotify (apre una nuova scheda)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Cerca in tutte le fonti (raccolta, servizi internet, ...)"
+@@ -3831,30 +3750,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Errore di accesso a Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Plugin di Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Plugin di Spotify non installato"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Preferiti"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Avvia la scaletta attualmente in riproduzione"
+@@ -3864,7 +3763,6 @@
+ msgstr "Avvia transcodifica"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3952,18 +3850,6 @@
+ msgid "Switch provider"
+ msgstr "Cambia fornitore"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Sincronizzazione inbox di Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Sincronizzazione scaletta di Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Sincronizzazione tracce preferite di Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Schede in alto"
+@@ -4351,10 +4237,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Utilizza le impostazioni di sistema del proxy"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Usa la normalizzazione del volume"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Utilizzato"
+@@ -4370,7 +4252,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nome utente"
+@@ -4607,22 +4488,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Non hai un account Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Non hai un account Premium Spotify."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Ti sei disconnesso da Spotify, reinserisci la password nella finestra "
+-"Impostazioni."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Ti sei disconnesso da Spotify, reinserisci la password."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Ti piace questa traccia"
+@@ -4690,7 +4555,6 @@
+ msgstr "I tuoi scrobble: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Nome utente o password non corretta."
+
+@@ -4779,8 +4643,6 @@
+ msgstr "negli ultimi"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/ja.po clementine-libre-1.0.1/src/translations/ja.po
+--- clementine-1.0.1/src/translations/ja.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ja.po 2012-05-29 16:58:23.063082909 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Grooveshark Anywhere のアカウントが必要です。"
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify のプレミアムアカウントが必要です。"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -313,7 +309,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -586,12 +581,6 @@
+ msgid "Always start playing"
+ msgstr "常に再生を開始する"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr "Clementine で Spotify を利用するには追加のプラグインが必要です。今すぐダウンロードしてインストールしますか?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "デバイスからの iTunes データベースのコピー エラーです"
+@@ -817,10 +806,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "キャンセル"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "カバー アートの変更"
+@@ -1023,10 +1008,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "ショートカットの構成"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "ライブラリの構成..."
+@@ -1044,10 +1025,6 @@
+ msgid "Connect device"
+ msgstr "デバイスの接続"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1461,10 +1438,6 @@
+ msgid "Download this album..."
+ msgstr "このアルバムをダウンロード..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Icecast ディレクトリのダウンロード"
+@@ -1477,10 +1450,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Magnatune カタログのダウンロード"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Spotify のプラグインをダウンロード中"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "メタデータをダウンロード中"
+@@ -1630,10 +1599,6 @@
+ msgid "Error deleting songs"
+ msgstr "曲の削除エラー"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1815,10 +1780,6 @@
+ msgid "Font size"
+ msgstr "フォント サイズ"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2081,10 +2042,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "通知にアルバム アートを含める"
+@@ -2113,10 +2070,6 @@
+ msgid "Insert..."
+ msgstr "挿入..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "インターネット"
+@@ -2419,7 +2372,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2495,10 +2447,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "不正な応答です"
+@@ -2755,10 +2703,6 @@
+ msgid "Not enough neighbors"
+ msgstr "ご近所さんが足りません"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2893,7 +2837,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "パスワード"
+@@ -3000,10 +2943,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3034,7 +2973,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "環境設定"
+@@ -3051,10 +2989,6 @@
+ msgid "Preferred audio format"
+ msgstr "優先するオーディオ形式"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "優先する形式"
+@@ -3445,18 +3379,6 @@
+ msgid "Search Magnatune"
+ msgstr "Magnatune の検索"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3781,30 +3703,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "現在再生中のプレイリストを開始する"
+@@ -3814,7 +3716,6 @@
+ msgstr "トランスコードの開始"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3900,18 +3801,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "タブを上に配置"
+@@ -4271,10 +4160,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "システムのプロキシ設定を使用する"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "使用中"
+@@ -4290,7 +4175,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "ユーザー名"
+@@ -4520,20 +4404,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "このトラックは Love されています"
+@@ -4595,7 +4465,6 @@
+ msgstr "Scrobble 回数: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "ユーザネームまたはパスワードが間違っています。"
+
+@@ -4684,8 +4553,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/ka.po clementine-libre-1.0.1/src/translations/ka.po
+--- clementine-1.0.1/src/translations/ka.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ka.po 2012-05-29 16:59:47.116416380 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify-ის Premium ანგარიში აუცილებელია."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr "ყოველთვის დაიწყე დაკვრა"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "შეცდომა მოწყობილობიდან iTunes-ის მონაცემთა ბაზის კოპირებისას"
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE sheet-ის მხარდაჭერა"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "გაუქმება"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "ალბომის ყდის შეცვლა"
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/kk.po clementine-libre-1.0.1/src/translations/kk.po
+--- clementine-1.0.1/src/translations/kk.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/kk.po 2012-05-29 17:17:47.953084141 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Поп"
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/ko.po clementine-libre-1.0.1/src/translations/ko.po
+--- clementine-1.0.1/src/translations/ko.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ko.po 2012-05-29 17:20:24.469750963 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify 프리미엄 계정이 필요합니다."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/lt.po clementine-libre-1.0.1/src/translations/lt.po
+--- clementine-1.0.1/src/translations/lt.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/lt.po 2012-05-29 17:21:09.749751142 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Reikalingas mokamas Spotify vartotojas"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -313,7 +309,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -586,14 +581,6 @@
+ msgid "Always start playing"
+ msgstr "Visada pradėti grojant"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Kad naudotumėte Spotify Clementine grotuve, jums reikia papildomo išplėtimo."
+-" Ar parsiųsti ir įdiegti jį dabar?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Iškilo klaida kopijuojant iTunes duomenų bazę iš įrenginio"
+@@ -819,10 +806,6 @@
+ msgid "CUE sheet support"
+ msgstr "\"CUE sheet\" palaikymas"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Atšaukti"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Keisti viršelio paveikslėlį"
+@@ -1032,10 +1015,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Konfigūruoti sparčiuosius klavišus"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Konfigūruoti Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Konfigūruoti fonoteką..."
+@@ -1053,10 +1032,6 @@
+ msgid "Connect device"
+ msgstr "Prijungti įrenginį"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Jungiamasi prie Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Pastovus bitų dažnis"
+@@ -1472,10 +1447,6 @@
+ msgid "Download this album..."
+ msgstr "Atsisiunčiamas šis albumas"
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Atsisiųsti..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Atsiunčiamas Icecast aplankas"
+@@ -1488,10 +1459,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Atsiunčiamas Magnatune katalogas"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Siunčiamas Spotify plėtinys"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Atsiunčiami metaduomenys"
+@@ -1643,10 +1610,6 @@
+ msgid "Error deleting songs"
+ msgstr "Klaida trinant dainas"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Klaida siunčiant Spotify plėtinį"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1828,12 +1791,6 @@
+ msgid "Font size"
+ msgstr "Šrifto dydis"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Dėl licencijavimo priežasčių Spotify palaikymas yra įjungiamas per atskirą "
+-"plėtinį."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Įjungti tik mono kodavimą"
+@@ -2104,10 +2061,6 @@
+ "Dinamiškame režime nauji kūriniais bus parinkti ir pridėti į grojaraštį "
+ "kaskart, kai dabar grojamas kūrinys baigsis."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Gautieji"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Rodyti albumo paveikslus pranešime"
+@@ -2136,10 +2089,6 @@
+ msgid "Insert..."
+ msgstr "Įterpti..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Įdiegta"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internetas"
+@@ -2444,7 +2393,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2520,10 +2468,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Pagrindinis profilis"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Padaryti šį grojaraštį prieinamą atsijungus"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Netinkamas atsakymas"
+@@ -2781,10 +2725,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nepakanka kaimynų"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Neįdiegta"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2919,7 +2859,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Slaptažodis"
+@@ -3026,10 +2965,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Plėtinio būklė:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3060,7 +2995,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Nustatymai"
+@@ -3078,10 +3012,6 @@
+ msgid "Preferred audio format"
+ msgstr "Pageidaujamas audio formatas"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Pageidaujamas formatas"
+@@ -3472,18 +3402,6 @@
+ msgid "Search Magnatune"
+ msgstr "Ieškoti Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Ieškoti Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Ieškoti Spotify (atveria naują kortelę)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Ieškoti Spotify (atveria naują kortelę)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3808,30 +3726,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify prisijungimo klaida"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify plėtinys"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify plėtinys neįdiegtas"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standartinis"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Su žvaigždute"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Pradėti grajaraštį nuo dabar grojančio"
+@@ -3841,7 +3739,6 @@
+ msgstr "Perkoduoti"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3927,18 +3824,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Atnaujinama Spotify dėžutė"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Atnaujinama Spotify grojaraštis"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Atnaujinama Spotify pažymėti kūriniai"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Kortelės viršuje"
+@@ -4312,10 +4197,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Naudoti sistemos tarpinio serverio nustatymus"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Panaudota"
+@@ -4331,7 +4212,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Naudotojo vardas"
+@@ -4565,20 +4445,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Jūs mylite šį takelį"
+@@ -4645,7 +4511,6 @@
+ msgstr "Jūsų pateikta informacija: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4734,8 +4599,6 @@
+ msgstr "per paskutines"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/lv.po clementine-libre-1.0.1/src/translations/lv.po
+--- clementine-1.0.1/src/translations/lv.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/lv.po 2012-05-29 17:21:57.143084399 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Nepieciešams Spotify Premium konts."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -315,7 +311,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -588,14 +583,6 @@
+ msgid "Always start playing"
+ msgstr "Vienmēr sākt atskaņošanu"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Lai lietotu Spotify, nepieciešams papildus spraudnis. Vai jūs vēlaties to "
+-"lejupielādēt un instalēt?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Kļūda kopējot iTunes datubāzi no ierīces"
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Atcelt"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Mainīt vāka attēlu"
+@@ -1035,10 +1018,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Konfigurēt īsceļus"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Konfigurēt Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Konfigurēt bibliotēku..."
+@@ -1056,10 +1035,6 @@
+ msgid "Connect device"
+ msgstr "Pieslēgt ierīci"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Pieslēdzos Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konstants bitreits"
+@@ -1475,10 +1450,6 @@
+ msgid "Download this album..."
+ msgstr "Lejupielādēt šo albumu..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Lejupielādēt..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Lejupielādē Icecast mapi"
+@@ -1491,10 +1462,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Lejupielādē Magnatude katalogu"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Lejupielādē Spotify spraudni"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Lejupielādē metadatus"
+@@ -1646,10 +1613,6 @@
+ msgid "Error deleting songs"
+ msgstr "Kļūda dzēšot dziesmas"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Kļūda lejupielādējot Spotify spraudni"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1832,10 +1795,6 @@
+ msgid "Font size"
+ msgstr "Fonta izmērs"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Licencēšanas nolūkā Spotify atbalsts pieejams kā atsevišķs spraudnis"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forsēt mono kodēšanu"
+@@ -2102,10 +2061,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Ienākošie"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Iekļaut vāku attēlus paziņojumos"
+@@ -2134,10 +2089,6 @@
+ msgid "Insert..."
+ msgstr "Ievietot..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Uzstādīts"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internets"
+@@ -2441,7 +2392,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2517,10 +2467,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Galvenais profils (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Izkropļota atbilde"
+@@ -2778,10 +2724,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nepietiek kaimiņu"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nav uzstādīta"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2916,7 +2858,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Parole"
+@@ -3023,10 +2964,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Spraudņa statuss:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Popmūzika"
+@@ -3057,7 +2994,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Uzstādījumi"
+@@ -3074,10 +3010,6 @@
+ msgid "Preferred audio format"
+ msgstr "Vēlamais audio formāts"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Vēlamais formāts"
+@@ -3468,18 +3400,6 @@
+ msgid "Search Magnatune"
+ msgstr "Meklēt Magnatude"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Meklēt Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Meklēt Spotify (tiks atvērta jauna cilne)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Meklēt Spotify (tiks atvērta jauna cilne)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3804,30 +3724,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify pieslēgšanās kļūda"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify spraudnis"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify spraudnis nav uzstādīts"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standarts"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Novērtēts ar zvaigzni"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Sākt pašreiz atskaņoto dziesmu listi"
+@@ -3837,7 +3737,6 @@
+ msgstr "Sākt kodēšanu"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3923,18 +3822,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Cilnes pa virsu"
+@@ -4304,10 +4191,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Lietot sistēmas starpniekservera uzstādījumus"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Izmantots"
+@@ -4323,7 +4206,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Lietotājvārds"
+@@ -4554,20 +4436,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Jūs mīlat šo dziesmu"
+@@ -4630,7 +4498,6 @@
+ msgstr "Jūsu skrobli: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4719,8 +4586,6 @@
+ msgstr "pēdējās"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/mr.po clementine-libre-1.0.1/src/translations/mr.po
+--- clementine-1.0.1/src/translations/mr.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/mr.po 2012-05-29 17:22:45.193084728 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/ms.po clementine-libre-1.0.1/src/translations/ms.po
+--- clementine-1.0.1/src/translations/ms.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ms.po 2012-05-29 17:23:27.779751138 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Akaun Spotify Premium diperlukan"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -313,7 +309,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -586,14 +581,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Satu plugin tambahan diperlukan untuk menggunakan Spotify dalam Clementine. "
+-"Inginkah anda memuat turun dan memasangnya sekarang?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Satu ralat berlaku semasa menyalin pangkalan data iTunes dari peranti"
+@@ -819,10 +806,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Batal"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Ubahkan seni kulit muka"
+@@ -1030,10 +1013,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Tetapkan Pintasan"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1051,10 +1030,6 @@
+ msgid "Connect device"
+ msgstr "Sambung peranti"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Menyambung ke Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Kadar bit malar"
+@@ -1464,10 +1439,6 @@
+ msgid "Download this album..."
+ msgstr "Muat turun album ini..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Muat Turun..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Memuat turun direktori Icecast"
+@@ -1480,10 +1451,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Memuat turun katalog Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Memuat turun plugin Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Memuatturun metadata"
+@@ -1633,10 +1600,6 @@
+ msgid "Error deleting songs"
+ msgstr "Ralat memadam lagu-lagu"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Ralat memuat turun plugin Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1822,11 +1785,6 @@
+ msgid "Font size"
+ msgstr "Saiz fon"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Atas sebab-sebab perlesenan sokongan Spotify berada dalam plugin berasingan."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2099,10 +2057,6 @@
+ "Dalam mod dinamik trek-trek baru akan dipilih dan ditambah ke senarai main "
+ "setiap kali lagu selesai."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Peti Masuk"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Sertakan hasil seni album dalam pemberitahuan"
+@@ -2131,10 +2085,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Terpasang"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2437,7 +2387,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2513,10 +2462,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Buatkan senarai main tersedia di luar talian"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2775,10 +2720,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Tidak dipasang"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2913,7 +2854,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Kata laluan"
+@@ -3020,10 +2960,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Status plugin:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3054,7 +2990,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3071,10 +3006,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3465,18 +3396,6 @@
+ msgid "Search Magnatune"
+ msgstr "Cari Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Cari Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Cari Spotify (buka tab baru)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Cari Spotify (buka tab baru)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3801,30 +3720,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Ralat log masuk Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Plugin Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Plugin Spotify tidak dipasang"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Piawai"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Disukai"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3834,7 +3733,6 @@
+ msgstr "Mulakan transkod"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3920,18 +3818,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Tab-tab di atas"
+@@ -4308,10 +4194,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4327,7 +4209,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nama pengguna"
+@@ -4555,20 +4436,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Anda suka trek ini"
+@@ -4628,7 +4495,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4717,8 +4583,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/nb.po clementine-libre-1.0.1/src/translations/nb.po
+--- clementine-1.0.1/src/translations/nb.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/nb.po 2012-05-29 17:24:06.539751459 -0400
+@@ -254,10 +254,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Til dette trenger du en Grooveshark Anywhere-konto."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Til dette trenger du en Spotify Premium-konto."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Alltid start avspilling"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Det trengs et programtillegg for å bruke Spotify i Clementine. Ønsker du å "
+-"laste ned og installere den nå?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "En feil oppsto under kopiering av iTunes databasen fra enheten"
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr "Støtte for CUE-filer"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Avbryt"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Endre omslagsbilde"
+@@ -1038,10 +1021,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Oppsett av hurtigtaster"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Konfigurere Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Sett opp bibliotek..."
+@@ -1059,10 +1038,6 @@
+ msgid "Connect device"
+ msgstr "Koble til enhet"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Kobler til Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konstant bitrate"
+@@ -1478,10 +1453,6 @@
+ msgid "Download this album..."
+ msgstr "Last ned dette albumet..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Last ned..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Laster ned Icecast-katalogen"
+@@ -1494,10 +1465,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Laster ned Magnatune-katalogen"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Laster ned Spotify-modul"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Laster ned metadata"
+@@ -1648,10 +1615,6 @@
+ msgid "Error deleting songs"
+ msgstr "Kunne ikke slette sanger"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Kunne ikke laste ned Spotify-modul"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1833,10 +1796,6 @@
+ msgid "Font size"
+ msgstr "Skriftstørrelse"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Av lisenshensyn er Spotify-støtte en egen innstikksmodul."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Tving monolyd-koding"
+@@ -2108,10 +2067,6 @@
+ "I dynamisk modus vil nye spor bli valgt og lagt til spillelista hver gang en"
+ " sang tar slutt."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Innboks"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Inkludér cover i meldingen"
+@@ -2140,10 +2095,6 @@
+ msgid "Insert..."
+ msgstr "Sett inn..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Installert"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internett"
+@@ -2446,7 +2397,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2522,10 +2472,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Hovedprofil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Gjør spillelista tilgjengelig online"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Ugyldig svar"
+@@ -2782,10 +2728,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Ikke nok naboer"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Ikke installert"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Ikke pålogget"
+@@ -2920,7 +2862,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Passord"
+@@ -3027,10 +2968,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Modulens status:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3061,7 +2998,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Innstillinger"
+@@ -3078,10 +3014,6 @@
+ msgid "Preferred audio format"
+ msgstr "Foretrukket lydformat"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Foretrukket format"
+@@ -3472,18 +3404,6 @@
+ msgid "Search Magnatune"
+ msgstr "Søk i Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Søk i Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Søk i Spotify (åpner en ny flik)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Søk i Spotify (åpner en ny flik...)"
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3808,30 +3728,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Kunne ikke logge på Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify-modul"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Har ikke installert Spotify-modul"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Har stjerner"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Begynn på spillelista nå"
+@@ -3841,7 +3741,6 @@
+ msgstr "Start koding"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3927,18 +3826,6 @@
+ msgid "Switch provider"
+ msgstr "Switch-leverandør"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synkroniserer Spotify-innboksen"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synkroniserer Spotify-spillelista"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synkroniserer spor med sterner mot Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Fliker på toppen"
+@@ -4310,10 +4197,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Bruk standard proxy-innstillinger"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Brukt"
+@@ -4329,7 +4212,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Brukernavn"
+@@ -4565,20 +4447,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Du har ikke noen Grooveshark Anywhare-konto."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Du har ikke noen Spotify Premium-konto."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Du elsker dette sporet"
+@@ -4644,7 +4512,6 @@
+ msgstr "Dine delte lyttevaner (\"scrobbles\"): %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Feil med din brukerinformasjon"
+
+@@ -4733,8 +4600,6 @@
+ msgstr "i de siste"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/nl.po clementine-libre-1.0.1/src/translations/nl.po
+--- clementine-1.0.1/src/translations/nl.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/nl.po 2012-05-29 17:24:47.773084596 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Een Grooveshark Anywhere account is vereist."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Een Spotify Premium account is vereist."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -317,7 +313,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -592,14 +587,6 @@
+ msgid "Always start playing"
+ msgstr "Altijd afspelen"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Een extra plug-in is vereist om Spotify in Clementine te gebruiken. Wilt u "
+-"deze nu downloaden en installeren?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -829,10 +816,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE-sheet ondersteuning"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Annuleren"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Albumhoes wijzigen"
+@@ -1047,10 +1030,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Sneltoetsen instellen"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configureer Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Bibliotheek configureren…"
+@@ -1068,10 +1047,6 @@
+ msgid "Connect device"
+ msgstr "Apparaat verbinden"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Met Spotify verbinden"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Constante bitrate"
+@@ -1487,10 +1462,6 @@
+ msgid "Download this album..."
+ msgstr "Dit album downloaden…"
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Downloaden…"
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Icecast-map aan het downloaden"
+@@ -1503,10 +1474,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Magnatune-catalogus downloaden"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "De Spotify plug-in aan het downloaden"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Metadata ophalen"
+@@ -1660,10 +1627,6 @@
+ msgid "Error deleting songs"
+ msgstr "Fout tijdens het verwijderen van de nummers"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Fout bij het downloaden van de Spotify plug-in"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1846,12 +1809,6 @@
+ msgid "Font size"
+ msgstr "Tekengrootte"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Vanwege licenties is Spotify-ondersteuning alleen via een plug-in "
+-"beschikbaar."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Mono-encodering forceren"
+@@ -2126,10 +2083,6 @@
+ "In ‘dynamische modus’ worden nieuwe nummers gekozen en aan de afspeellijst "
+ "toegevoegd op het moment dat een nummer eindigt."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Inbox"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Albumhoes in de notificatie weergeven"
+@@ -2158,10 +2111,6 @@
+ msgid "Insert..."
+ msgstr "Invoegen…"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Geïnstalleerd"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2466,7 +2415,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2542,10 +2490,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Normaal profiel (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Afspeellijst offline beschikbaar maken"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Foutieve respons"
+@@ -2806,10 +2750,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Onvoldoende buren"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Niet geïnstalleerd"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Niet ingelogd"
+@@ -2944,7 +2884,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Wachtwoord"
+@@ -3051,10 +2990,6 @@
+ msgid "Playlists"
+ msgstr "Afspeellijsten"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Plug-in status:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3085,7 +3020,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Voorkeuren"
+@@ -3103,10 +3037,6 @@
+ msgid "Preferred audio format"
+ msgstr "Audioformaat-voorkeur"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Bitrate voorkeur"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Voorkeursformaat"
+@@ -3497,18 +3427,6 @@
+ msgid "Search Magnatune"
+ msgstr "Zoeken op Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Doorzoek Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Doorzoek Spotify (open nieuw tabblad)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Doorzoek Spotify (open nieuw tabblad)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Doorzoek al uw bronnen (bibliotheek, internet bronnen, ...)"
+@@ -3833,30 +3751,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify inlogfout"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify plug-in"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify plug-in niet geïnstalleerd"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standaard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Met ster"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Momenteel spelende afspeellijst starten"
+@@ -3866,7 +3764,6 @@
+ msgstr "Converteren starten"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Typ in de zoekbalk hierboven om naar muziek te zoeken op %1."
+@@ -3952,18 +3849,6 @@
+ msgid "Switch provider"
+ msgstr "Switch provider"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Spotify inbox synchroniseren"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Spotify afspeellijst synchroniseren"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Favoriete Spotify-nummers synchroniseren"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Tabs bovenaan"
+@@ -4350,10 +4235,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Globale proxy-instellingen gebruiken"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Volume normalisatie gebruiken"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Gebruikt"
+@@ -4369,7 +4250,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Gebruikersnaam"
+@@ -4607,22 +4487,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "U heeft geen Grooveshark Anywhere account."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "U heeft geen Spotify Premium account."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"U bent uitgelogd bij Spotify, voer in het voorkeuren venster nogmaals uw "
+-"wachtwoord in."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "U bent uitgelogd bij Spotify, voer nogmaals uw wachtwoord in."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "U vindt dit nummer mooi"
+@@ -4690,7 +4554,6 @@
+ msgstr "Uw scrobbles: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Uw gebruikersnaam of wachtwoord is niet correct."
+
+@@ -4779,8 +4642,6 @@
+ msgstr "in de laatste"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/oc.po clementine-libre-1.0.1/src/translations/oc.po
+--- clementine-1.0.1/src/translations/oc.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/oc.po 2012-05-29 17:25:36.176417975 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurar los acorchis de clavièr"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Sus Internet"
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/pa.po clementine-libre-1.0.1/src/translations/pa.po
+--- clementine-1.0.1/src/translations/pa.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/pa.po 2012-05-29 17:26:32.036418109 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/pl.po clementine-libre-1.0.1/src/translations/pl.po
+--- clementine-1.0.1/src/translations/pl.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/pl.po 2012-05-29 17:27:25.839751300 -0400
+@@ -254,10 +254,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Potrzebne jest konto Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Musisz posiadać konto Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Odtwarzaj automatycznie"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Aby korzystać ze Spotify przy użyciu Clementine, wymagany jest dodatkowy "
+-"skrypt. Czy chcesz go teraz pobrać?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Wystąpił błąd podczas kopiowania bazy danych iTunes z urządzenia"
+@@ -824,10 +811,6 @@
+ msgid "CUE sheet support"
+ msgstr "obsługa arkuszy CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Anuluj"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Zmień okładkę"
+@@ -1041,10 +1024,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Konfiguracja skrótów klawiszowych"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Konfiguracja Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Konfiguruj bibliotekę..."
+@@ -1062,10 +1041,6 @@
+ msgid "Connect device"
+ msgstr "Podłącz urządzenie"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Połącz z Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Stały bitrate"
+@@ -1481,10 +1456,6 @@
+ msgid "Download this album..."
+ msgstr "Pobierz ten album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Pobierz..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Pobieranie katalogu Icecast"
+@@ -1497,10 +1468,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Pobieranie katalogu Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Pobierz plugin Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Pobieranie metadanych"
+@@ -1651,10 +1618,6 @@
+ msgid "Error deleting songs"
+ msgstr "Błąd przy usuwaniu utworów"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Plugin Spotify - nieudane pobieranie"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1837,11 +1800,6 @@
+ msgid "Font size"
+ msgstr "Rozmiar czcionki"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Ze względów licencyjnych Spotify obsługiwany jest przez oddzielny plugin"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Wymuś kodowanie mono"
+@@ -2114,10 +2072,6 @@
+ "W trybie dynamicznym nowe utwory będą wybierane i dodawane do playlisty za "
+ "każdym razem gdy skończy się odtwarzanie bieżącego utworu."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Skrzynka odbiorcza"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Dołącz okładkę albumu"
+@@ -2146,10 +2100,6 @@
+ msgid "Insert..."
+ msgstr "Wstaw..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Zainstalowano"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2454,7 +2404,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2530,10 +2479,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Profil główny (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Uczyń playlistę dostępną offline"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Nieprawidłowa odpowiedź"
+@@ -2793,10 +2738,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Za mało sąsiadów"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nie zainstalowano"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2931,7 +2872,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Hasło"
+@@ -3038,10 +2978,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stan wtyczki:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3072,7 +3008,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Ustawienia"
+@@ -3090,10 +3025,6 @@
+ msgid "Preferred audio format"
+ msgstr "Preferowany format audio"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Preferowany format"
+@@ -3484,18 +3415,6 @@
+ msgid "Search Magnatune"
+ msgstr "Przeszukaj Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Szukaj w Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Szukaj w Spotify (nowa karta)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Szukaj w Spotify (nowa karta)"
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3821,30 +3740,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Nieudane logowanie do Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Wtyczka Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Nie zainstalowano pluginu Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standardowy"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Oznaczone gwiazdką"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Rozpocznij aktualnie odtwarzaną listę"
+@@ -3854,7 +3753,6 @@
+ msgstr "Rozpocznij transkodowanie"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3940,18 +3838,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synchronizowanie skrzynki Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synchronizowanie playlisty Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synchronizowanie utworów oznaczonych gwiazdką na Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Zakładki na górze"
+@@ -4326,10 +4212,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Użyj systemowych ustawień proxy"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Użyto"
+@@ -4345,7 +4227,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Użytkownik"
+@@ -4579,20 +4460,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Kochasz tę ścieżkę"
+@@ -4662,7 +4529,6 @@
+ msgstr "Przesłane utwory: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4751,8 +4617,6 @@
+ msgstr "w ostatnich"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/pt_BR.po clementine-libre-1.0.1/src/translations/pt_BR.po
+--- clementine-1.0.1/src/translations/pt_BR.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/pt_BR.po 2012-05-29 17:30:29.606418269 -0400
+@@ -251,10 +251,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "É necessária uma conta Premium Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -313,7 +309,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -586,14 +581,6 @@
+ msgid "Always start playing"
+ msgstr "Sempre começar tocando"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Um plugin adicional é necessário para usar Spotify no Clementine. Gostaria "
+-"de fazer o download e instalá-lo agora?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -821,10 +808,6 @@
+ msgid "CUE sheet support"
+ msgstr "Suporte a lista CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Cancelar"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Alterar capa"
+@@ -1036,10 +1019,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurar atalhos"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configurar Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurar biblioteca"
+@@ -1057,10 +1036,6 @@
+ msgid "Connect device"
+ msgstr "Conectar dispositivo"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Conectando ao Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Taxa de bits constante"
+@@ -1476,10 +1451,6 @@
+ msgid "Download this album..."
+ msgstr "Baixar este álbum..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Baixar..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Baixando diretório Icecast"
+@@ -1492,10 +1463,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Baixando catálogo da Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Baixando plugin Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Baixando metadados"
+@@ -1647,10 +1614,6 @@
+ msgid "Error deleting songs"
+ msgstr "Erro ao apagar músicas"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Erro ao baixar o plugin Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1834,12 +1797,6 @@
+ msgid "Font size"
+ msgstr "Tamanho da fonte"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Por motivos de licenciamento, o suporte ao Spotify está em um plugin "
+-"separado."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forçar codificação em mono"
+@@ -2113,10 +2070,6 @@
+ "No modo dinâmico, novas faixas serão escolhidas e adicionadas à lista de "
+ "reprodução toda a vez que uma musica terminar."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Caixa de entrada"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Incluir capa do álbum na notificação"
+@@ -2145,10 +2098,6 @@
+ msgid "Insert..."
+ msgstr "Inserir..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalado"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2453,7 +2402,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2529,10 +2477,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Meu perfil (PRINCIPAL)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Tornar lista de reprodução disponível offline"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Resposta inválida"
+@@ -2793,10 +2737,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Sem vizinhos o bastante"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Não instalado"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2931,7 +2871,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Senha"
+@@ -3038,10 +2977,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Status do plugin:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3072,7 +3007,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferências"
+@@ -3089,10 +3023,6 @@
+ msgid "Preferred audio format"
+ msgstr "Formato de áudio preferido"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Formato preferido"
+@@ -3483,18 +3413,6 @@
+ msgid "Search Magnatune"
+ msgstr "Pesquisar Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Procurar Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Procurar Spotify (abre um novo aba)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Procurar Spotify (abre um novo aba)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3819,30 +3737,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Erro ao conectar no Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Plugin Spofity"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Plugin Spofity não instalado"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Padrão"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Favoritos"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Iniciar a lista que está em execução"
+@@ -3852,7 +3750,6 @@
+ msgstr "Começar transcodificação"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3938,18 +3835,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Sincronizando caixa de entrada do Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Sincronizando listas de reprodução do Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Sincronizando faixas favoritas do Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Mostrar abas no topo"
+@@ -4329,10 +4214,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Usar configurações de proxy do sistema"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Usado"
+@@ -4348,7 +4229,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nome de usuário"
+@@ -4582,20 +4462,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Você adora essa faixa"
+@@ -4661,7 +4527,6 @@
+ msgstr "Seus scrobbles: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4750,8 +4615,6 @@
+ msgstr "nos últimos"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/pt.po clementine-libre-1.0.1/src/translations/pt.po
+--- clementine-1.0.1/src/translations/pt.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/pt.po 2012-05-29 17:28:15.776418125 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Requer uma conta Grooveshark Anywhere"
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Requer uma conta Spotify Premium"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Iniciar sempre a reprodução"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Necessita de um \"plug-in\" para utilizar o Spotify no Clementine. Pretende "
+-"transferir e instalar o \"plug-in\"?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -823,10 +810,6 @@
+ msgid "CUE sheet support"
+ msgstr "Suporte a ficheiros CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Cancelar"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Alterar capa do álbum"
+@@ -1040,10 +1023,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurar atalhos"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configurar Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurar coleção..."
+@@ -1061,10 +1040,6 @@
+ msgid "Connect device"
+ msgstr "Ligar dispositivo"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Ligar ao Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Taxa de dados constante"
+@@ -1480,10 +1455,6 @@
+ msgid "Download this album..."
+ msgstr "Transferir este álbum..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Transferir..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "A transferir o diretório Icecast"
+@@ -1496,10 +1467,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "A transferir o catálogo Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "A transferir o \"plug-in\" Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "A transferir dados"
+@@ -1652,10 +1619,6 @@
+ msgid "Error deleting songs"
+ msgstr "Erro ao eliminar faixas"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Erro ao transferir o \"plug-in\""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1837,12 +1800,6 @@
+ msgid "Font size"
+ msgstr "Tamanho de letra"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Devido à sua licença, o \"plug-in\" do Spotify é disponibilizado "
+-"separadamente"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forçar codificação mono"
+@@ -2114,10 +2071,6 @@
+ "No modo dinâmico, as faixas são escolhidas e adicionadas à lista de "
+ "reprodução assim que uma música termine"
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Caixa de entrada"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Incluir capa do álbum na notificação"
+@@ -2146,10 +2099,6 @@
+ msgid "Insert..."
+ msgstr "Inserir..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalado"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2454,7 +2403,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2530,10 +2478,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Perfil principal (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Tornar lista de reprodução disponível localmente"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Resposta inválida"
+@@ -2793,10 +2737,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Vizinhos insuficientes"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Não instalado"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Sessão não iniciada"
+@@ -2931,7 +2871,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Senha"
+@@ -3038,10 +2977,6 @@
+ msgid "Playlists"
+ msgstr "Listas de reprodução"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Estado:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3072,7 +3007,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferências"
+@@ -3089,10 +3023,6 @@
+ msgid "Preferred audio format"
+ msgstr "Formato áudio preferido"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Taxa de dados preferencial"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Formato preferido"
+@@ -3483,18 +3413,6 @@
+ msgid "Search Magnatune"
+ msgstr "Pesquisar no Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Procurar no Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Procurar no Spotify (abre um novo separador)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Procurar no Spotify (abre um novo separador)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Procurar em todas as fontes (coleção, internet, ...)"
+@@ -3820,30 +3738,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Erro de autenticação Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "\"Plug-in\" Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "\"Plug-in\" Spotify não instalado"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Padrão"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Com estrela"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Iniciar lista de reprodução atual"
+@@ -3853,7 +3751,6 @@
+ msgstr "Iniciar conversão"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Escreva algo na caixa de procura para descobrir músicas no %1"
+@@ -3939,18 +3836,6 @@
+ msgid "Switch provider"
+ msgstr "Trocar fornecedor"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "A sincronizar caixa de entrada Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "A sincronizar lista de reprodução Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "A sincronizar faixas Spotify assinaladas"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Separadores no topo"
+@@ -4333,10 +4218,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Utilizar definições do sistema"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Utilizar normalização de volume"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Utilizado"
+@@ -4352,7 +4233,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Utilizador"
+@@ -4589,22 +4469,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Você não tem uma conta Grooveshark Anywhere"
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Você não tem uma conta Spotify Premium"
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Terminou a sessão no Spotify. Reintroduza a sua senha na caixa de diálogo de"
+-" definições"
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Terminou a sessão no Spotify. Reintroduza a sua senha"
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Você gosta desta faixa"
+@@ -4671,7 +4535,6 @@
+ msgstr "Os seus envios: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Utilizador e/ou senha inválida"
+
+@@ -4760,8 +4623,6 @@
+ msgstr "no(s) último(s)"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/ro.po clementine-libre-1.0.1/src/translations/ro.po
+--- clementine-1.0.1/src/translations/ro.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ro.po 2012-05-29 17:31:07.169751658 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Este necesar un cont Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Este necesar un cont Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -317,7 +313,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -590,14 +585,6 @@
+ msgid "Always start playing"
+ msgstr "Începe redarea întotdeauna"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Este necesara activarea unui plugin pentru utlizarea Spotify in Clementine. "
+-"Doriți să fie descărcat si instalat acum?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "A apărut o eroare de copiere a bazei de date iTunes de pe dispozitiv"
+@@ -823,10 +810,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE placa suport"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Anulare"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Schimbă imaginea coperții"
+@@ -1037,10 +1020,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Configurează scurtături"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Configurare Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Configurează biblioteca..."
+@@ -1058,10 +1037,6 @@
+ msgid "Connect device"
+ msgstr "Conectează un dispozitiv"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Se conectează la Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Rată de biți constantă"
+@@ -1477,10 +1452,6 @@
+ msgid "Download this album..."
+ msgstr "Descarcă acest album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Descărcare..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Descărcare dosarul Icecast"
+@@ -1493,10 +1464,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Descărcare catalog Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Se descarcă pluginul Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Descărcare metadata"
+@@ -1651,10 +1618,6 @@
+ msgid "Error deleting songs"
+ msgstr "Eroare ștergere melodii"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Eroare la descărcarea pluginului Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1838,11 +1801,6 @@
+ msgid "Font size"
+ msgstr "Dimensiunea fontului"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"Din motive de licență, suportul pentru Spotify este într-un plugin separat."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Forțează codarea mono"
+@@ -2114,10 +2072,6 @@
+ "În modul dinamic, melodii noi vor fi alese și adăugate la lista de redare de"
+ " fiecare dată când se termină o melodie."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Includeți album de artă în notificare"
+@@ -2146,10 +2100,6 @@
+ msgid "Insert..."
+ msgstr "Introduce..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalat"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2452,7 +2402,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2528,10 +2477,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Profil principal (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2788,10 +2733,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nu sunt destui vecini"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Neinstalat"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2926,7 +2867,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Parolă"
+@@ -3033,10 +2973,6 @@
+ msgid "Playlists"
+ msgstr "Liste de redare"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Status plugin:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3067,7 +3003,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Preferinţe"
+@@ -3084,10 +3019,6 @@
+ msgid "Preferred audio format"
+ msgstr "Format audio preferat"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Rată de biți preferată"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Format preferat"
+@@ -3478,18 +3409,6 @@
+ msgid "Search Magnatune"
+ msgstr "Caută în Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Caută în Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Caută în Spotify (deschide o filă nouă)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Caută în Spotify (deschide o filă nouă)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3814,30 +3733,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Eroare la logarea în Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Plugin Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Pluginul Spotify nu este instalat"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Cu steluță"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3847,7 +3746,6 @@
+ msgstr "Începe transcodare"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3933,18 +3831,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "File deasupra"
+@@ -4304,10 +4190,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Folosește setările de proxy ale sistemului"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4323,7 +4205,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Nume de utilizator"
+@@ -4549,20 +4430,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Nu aveți un cont Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4622,7 +4489,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Parola sau numele de utilizator au fost incorecte."
+
+@@ -4711,8 +4577,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/ru.po clementine-libre-1.0.1/src/translations/ru.po
+--- clementine-1.0.1/src/translations/ru.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/ru.po 2012-05-29 17:31:44.913085063 -0400
+@@ -256,10 +256,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Требуется учётная запись Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Требуется Premium аккаунт Spotify"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -320,7 +316,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -593,14 +588,6 @@
+ msgid "Always start playing"
+ msgstr "Всегда начинать воспроизведение"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Требуется дополнительный модуль для использования Spotify в Clementine. "
+-"Скачать и установить его?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Произошла ошибка при загрузке данных iTunes с устройства"
+@@ -826,10 +813,6 @@
+ msgid "CUE sheet support"
+ msgstr "Поддержка файлов разметки CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Отмена"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Выберите обложку"
+@@ -1045,10 +1028,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Комбинации клавиш"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Настройка Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Настроить коллекцию..."
+@@ -1066,10 +1045,6 @@
+ msgid "Connect device"
+ msgstr "Подсоединение устройства"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Подключение к Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Постоянный битрейт"
+@@ -1485,10 +1460,6 @@
+ msgid "Download this album..."
+ msgstr "Загрузить этот альбом"
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Загрузить..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Загружаем директорию Icecast"
+@@ -1501,10 +1472,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Скачать каталог Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Загрузка модуля Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Загрузка метаданных"
+@@ -1658,10 +1625,6 @@
+ msgid "Error deleting songs"
+ msgstr "Ошибка удаления композиций"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Ошибка загрузки модуля Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1845,12 +1808,6 @@
+ msgid "Font size"
+ msgstr "Размер шрифта"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"По лицензионным соображениям поддержка Spotify реализована в виде отдельного"
+-" плагина"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Принудительное кодирование в моно"
+@@ -2122,10 +2079,6 @@
+ "В динамическом режиме новые треки выбираются и добавляются в список "
+ "воспроизведения каждый раз, когда заканчивается очередная песня."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Входящие"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Показывать обложку альбома в уведомлении"
+@@ -2154,10 +2107,6 @@
+ msgid "Insert..."
+ msgstr "Вставить..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Установлено"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Интернет"
+@@ -2462,7 +2411,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2538,10 +2486,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Основной профиль (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Сделать плейлист доступным оффлайн"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Неправильный ответ"
+@@ -2800,10 +2744,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Недостаточно соседей"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Не установлено"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Не был выполнен логин"
+@@ -2938,7 +2878,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Пароль"
+@@ -3045,10 +2984,6 @@
+ msgid "Playlists"
+ msgstr "Списки воспроизведения"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Статус модуля:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3079,7 +3014,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Настройки"
+@@ -3096,10 +3030,6 @@
+ msgid "Preferred audio format"
+ msgstr "Предпочитаемый аудио формат"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Предпочитаемый битрейт"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Предпочитаемый формат"
+@@ -3490,18 +3420,6 @@
+ msgid "Search Magnatune"
+ msgstr "Искать на Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Поиск на Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Поиск на Spotify (открывается в новой вкладке)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Поиск на Spotify (в новой вкладке)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Искать во всех источниках (библиотеке, интернет сервисах, ...)"
+@@ -3827,30 +3745,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Ошибка имени пользователя Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Модуль Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Модуль Spotify не установлен"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Стандартный"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Оцененные"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Запустить список воспроизведения проигрываемый в данный момент"
+@@ -3860,7 +3758,6 @@
+ msgstr "Начать перекодирование"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Наберите начальные буквы наименования песни чтобы начать поиск в %1"
+@@ -3946,18 +3843,6 @@
+ msgid "Switch provider"
+ msgstr "Выбрать другой источник"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Синхронизация входящих Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Синхронизация плейлистов Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Синхронизация рейтингованных треков Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Вкладки вверху"
+@@ -4336,10 +4221,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Использовать системные настройки прокси"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Использовать выравнивание громкости"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Использовано"
+@@ -4355,7 +4236,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Имя пользователя"
+@@ -4591,23 +4471,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "У вас нет учетной записи Grooveshark Anywhere"
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "У вас нет учетной записи Spotify Premium"
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Подключение к сервису Spotify было разорвано, введите ваш пароль ещё раз в"
+-" диалоге Настройки."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-"Подключение к сервису Spotify было разорвано, введите ваш пароль ещё раз."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Вам нравится эта композиция"
+@@ -4675,7 +4538,6 @@
+ msgstr "Ваш скробблинг: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Имя пользователя или пароль неправильные."
+
+@@ -4764,8 +4626,6 @@
+ msgstr "в последние"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "кбит/с"
+
+diff -rauN clementine-1.0.1/src/translations/sk.po clementine-libre-1.0.1/src/translations/sk.po
+--- clementine-1.0.1/src/translations/sk.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/sk.po 2012-05-29 17:32:30.349751863 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Je vyžadovaný Grooveshark Anywhere účet."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Je vyžadovaný prémium účet na Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -314,7 +310,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -587,14 +582,6 @@
+ msgid "Always start playing"
+ msgstr "Hneď začne hrať"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Aby sa dalo Spotify využiť v Clementine, je vyžadovaný ďalší plugin. Chcete "
+-"ho teraz stiahnuť a nainštalovať?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Nastala chyba pri kopírovaní iTunes databázy zo zariadenia"
+@@ -820,10 +807,6 @@
+ msgid "CUE sheet support"
+ msgstr "podpora CUE zoznamu"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Zrušiť"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Zmeniť obal albumu"
+@@ -1034,10 +1017,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Klávesové skratky"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Nastaviť Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Nastaviť zbierku..."
+@@ -1055,10 +1034,6 @@
+ msgid "Connect device"
+ msgstr "Pripojiť zariadenie"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Pripájanie k Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konštantný dátový tok"
+@@ -1474,10 +1449,6 @@
+ msgid "Download this album..."
+ msgstr "Stiahnuť tento album..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Stiahnuť..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Sťahuje sa Icecast priečinok"
+@@ -1490,10 +1461,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Sťahuje sa Magnatune katalóg"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Sťahuje sa Spotify plugin"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Sťahujú sa metadáta"
+@@ -1648,10 +1615,6 @@
+ msgid "Error deleting songs"
+ msgstr "Chyba pri vymazávaní piesní"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Chyba pri sťahovaní Spotify pluginu."
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1834,10 +1797,6 @@
+ msgid "Font size"
+ msgstr "Veľkosť písma"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Kvôli licenčným dôvodom je podpora Spotify v oddelenom plugine."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Vynútiť mono enkódovanie"
+@@ -2109,10 +2068,6 @@
+ "V dynamickom režime budú nové skladby vybraté a pridané do playlistu "
+ "zakaždým keď skončí pieseň."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Doručené"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Zahrnúť obal do upozornenia"
+@@ -2141,10 +2096,6 @@
+ msgid "Insert..."
+ msgstr "Vložiť..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Nainštalované"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2447,7 +2398,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2523,10 +2473,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Hlavný profil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Urobiť playlist dostupný offline"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Poškodená odpoveď"
+@@ -2785,10 +2731,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Nedostatok susedov"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Nenainštalované"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Nieprihlásený"
+@@ -2923,7 +2865,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Heslo"
+@@ -3030,10 +2971,6 @@
+ msgid "Playlists"
+ msgstr "Playlisty"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stav pluginu:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3064,7 +3001,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Nastavenia"
+@@ -3081,10 +3017,6 @@
+ msgid "Preferred audio format"
+ msgstr "Preferovaný formát zvuku"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Preferovaný dátový tok"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Preferovaný formát"
+@@ -3475,18 +3407,6 @@
+ msgid "Search Magnatune"
+ msgstr "Hľadať na Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Hľadať v Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Hľadať v Spotify (otvorí novú kartu)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Hľadať v Spotify (otvorí novú kartu)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3812,30 +3732,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Chyba pri prihlasovaní na Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify plugin"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify plugin nieje nainštalovaný"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Štandardný"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "S hviezdičkou"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Začať playlist práve prehrávanou"
+@@ -3845,7 +3745,6 @@
+ msgstr "Začať transkódovanie"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3932,18 +3831,6 @@
+ msgid "Switch provider"
+ msgstr "Zmeniť poskytovateľa"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synchronizuje sa Spotify schránka"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synchronizuje sa Spotify playlist"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synchronizujú sa skladby ohviezdičkované na Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Karty na vrchu"
+@@ -4325,10 +4212,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Použiť systémové nastavenia proxy"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Použiť normalizáciu hlasitosti"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Použitých"
+@@ -4344,7 +4227,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Meno používateľa"
+@@ -4580,22 +4462,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Nemáte Grooveshark Anywhere účet."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Nemáte Spotify prémium účet."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Boli ste odhlásení zo Spotify, prosím, zadajte heslo znovu v dialógu "
+-"Nastavenia."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Boli ste odhlásený zo Spotify, prosím znovu zadajte heslo."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Milujete túto pieseň"
+@@ -4663,7 +4529,6 @@
+ msgstr "Skroblujete: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Vaše meno používateľa alebo heslo bolo nesprávne."
+
+@@ -4752,8 +4617,6 @@
+ msgstr "za posledných"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/sl.po clementine-libre-1.0.1/src/translations/sl.po
+--- clementine-1.0.1/src/translations/sl.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/sl.po 2012-05-29 17:41:04.549752271 -0400
+@@ -252,10 +252,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Zahtevan je račun Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -314,7 +310,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -587,14 +582,6 @@
+ msgid "Always start playing"
+ msgstr "Vedno začni s predvajanjem"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Da lahko uporabite Spotify v Clementine, potrebujete dodaten vstavek. Ga "
+-"želite prejeti in namestiti zdaj?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr "Podpora predlogam CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Prekliči"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Spremeni ovitek albuma"
+@@ -1039,10 +1022,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Nastavi bližnjice"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Nastavi Spotify ..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Nastavi knjižnico ..."
+@@ -1060,10 +1039,6 @@
+ msgid "Connect device"
+ msgstr "Priklopi napravo"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Povezovanje na Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Stalna bitna hitrost"
+@@ -1479,10 +1454,6 @@
+ msgid "Download this album..."
+ msgstr "Prejmi ta album ..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Prejmi ..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Prejemanje imenika Icecast"
+@@ -1495,10 +1466,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Prejemanje kataloga Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Prejemanje vstavka Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Prejemanje metapodatkov"
+@@ -1651,10 +1618,6 @@
+ msgid "Error deleting songs"
+ msgstr "Napaka pri brisanju skladb"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Napaka med prejemanjem vstavka Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1836,10 +1799,6 @@
+ msgid "Font size"
+ msgstr "Velikost pisave"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Zaradi licence je podpora Spotify v ločenem vstavku."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Vsili mono kodiranje"
+@@ -2111,10 +2070,6 @@
+ "V dinamičnem načinu bodo nove skladbe izbrane in dodane na seznam "
+ "predvajanja vsakič, ko se prejšnja skladba konča."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Prejeto"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Vključi ovitek albuma v obvestilo"
+@@ -2143,10 +2098,6 @@
+ msgid "Insert..."
+ msgstr "Vstavi ..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Nameščeno"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Medmrežje"
+@@ -2449,7 +2400,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2525,10 +2475,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Glavni profil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Seznam predvajanja naj bo na voljo tudi brez povezave"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Nepravilno oblikovan odziv"
+@@ -2787,10 +2733,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Ni dovolj sosedov"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Ni nameščeno"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2925,7 +2867,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Geslo"
+@@ -3032,10 +2973,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Stanje vstavka:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3066,7 +3003,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Možnosti"
+@@ -3083,10 +3019,6 @@
+ msgid "Preferred audio format"
+ msgstr "Prednostna vrsta zvoka"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Prednostna vrsta"
+@@ -3477,18 +3409,6 @@
+ msgid "Search Magnatune"
+ msgstr "Išči na Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Išči po Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Išči po Spotify (odpre nov zavihek)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Išči po Spotify (odpre nov zavihek) ..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3814,30 +3734,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Napaka med prijavo na Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Vstavek Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Vstavek Spotify ni nameščen"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Običajno"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Z zvezdico"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Predvajaj skladbo, ki je označena v predvajalnem seznamu"
+@@ -3847,7 +3747,6 @@
+ msgstr "Začni s prekodiranjem"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3933,18 +3832,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Usklajevanje mape Spotify - prejeto"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Usklajevanje seznama predvajanja Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Usklajevanje označenih skladb v Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Zavihki na vrhu"
+@@ -4322,10 +4209,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Uporabi nastavitve posredniškega strežnika sistema"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Uporabljeno"
+@@ -4341,7 +4224,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Uporabniško ime"
+@@ -4575,20 +4457,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "To je vaša priljubljena skladba"
+@@ -4655,7 +4523,6 @@
+ msgstr "Vaši seznami predvajanih skladb: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4744,8 +4611,6 @@
+ msgstr "v zadnjih"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/sr@latin.po clementine-libre-1.0.1/src/translations/sr@latin.po
+--- clementine-1.0.1/src/translations/sr@latin.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/sr@latin.po 2012-05-29 17:42:43.256419021 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr ""
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr ""
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr ""
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4501,20 +4385,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4574,7 +4444,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4663,8 +4532,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/sr.po clementine-libre-1.0.1/src/translations/sr.po
+--- clementine-1.0.1/src/translations/sr.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/sr.po 2012-05-29 17:41:46.463085756 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Потребан је Spotify Premium налог"
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -311,7 +307,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -584,14 +579,6 @@
+ msgid "Always start playing"
+ msgstr "Увек почни да свираш"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Додатак је потребан да би се користио Spotify у Клементини. Да ли желиш да "
+-"га преузмеш и одмах уградиш?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Дошло је до грешке услед копирања базе података iTunes из уређаја"
+@@ -817,10 +804,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE подршка листа"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Otkaži"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Промени слику насловне"
+@@ -1030,10 +1013,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Подеси пречице"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Подеси Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Подеси библиотеку"
+@@ -1051,10 +1030,6 @@
+ msgid "Connect device"
+ msgstr "Повежи уређај"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Повежи се на Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Константан битни проток"
+@@ -1470,10 +1445,6 @@
+ msgid "Download this album..."
+ msgstr "Preuzmi ovaj albm"
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Preuzmi..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Преузимање Icecast директоријума"
+@@ -1486,10 +1457,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Преузми Магнатјунов каталог"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Преузимање Spotify додатка"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Преузимање метаподатака"
+@@ -1641,10 +1608,6 @@
+ msgid "Error deleting songs"
+ msgstr "Грешка при брисању песама"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Грешка преузимања Spotify додатка"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1828,10 +1791,6 @@
+ msgid "Font size"
+ msgstr "Veličina fonta"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Због лиценцираниг разлога Spotify подршка је на посебном додатку."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Присили моно енкодирање"
+@@ -2102,10 +2061,6 @@
+ "У промењивом режиму нове нумере ће бити изабране и додате листи сваки пут "
+ "кад се песма заврши."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Сандуче"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Укључи омоте албума у обавештења"
+@@ -2134,10 +2089,6 @@
+ msgid "Insert..."
+ msgstr "Убаци..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Instalirano"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Интернет"
+@@ -2441,7 +2392,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2517,10 +2467,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Главни налог (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Направи листу доступну ван мреже"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Лош одговор"
+@@ -2778,10 +2724,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Нема довољно комшија"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Није уграђен"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2916,7 +2858,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Лозинка"
+@@ -3023,10 +2964,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Статус додатка:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Поп"
+@@ -3057,7 +2994,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Поставке"
+@@ -3074,10 +3010,6 @@
+ msgid "Preferred audio format"
+ msgstr "Пожељни формат звука"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Жељени формат"
+@@ -3468,18 +3400,6 @@
+ msgid "Search Magnatune"
+ msgstr "Претражи Магнатјун"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Потражи Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Потражи Spotify (отвара нову картицу)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Потражи Spotify (отвара нову картицу)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3804,30 +3724,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify грешка пријављивања"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify додатак"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify додатак није уграђен"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Стандард"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Звездицом"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Почни листу тренутно пуштаним"
+@@ -3837,7 +3737,6 @@
+ msgstr "Започни транскодирање"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3923,18 +3822,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Усаглашавање Spotify сандучета"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Усаглашавање Spotify листе"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Усаглашавање Spotify оцењених нумера"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Картице на врх"
+@@ -4313,10 +4200,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "искоришћено"
+@@ -4332,7 +4215,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Корисничко име"
+@@ -4560,20 +4442,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4633,7 +4501,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4722,8 +4589,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kb/s"
+
+diff -rauN clementine-1.0.1/src/translations/sv.po clementine-libre-1.0.1/src/translations/sv.po
+--- clementine-1.0.1/src/translations/sv.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/sv.po 2012-05-29 17:43:39.719752433 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Ett Grooveshark Anywhere konto krävs."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Kräver ett Spotify Premium-konto."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -316,7 +312,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -589,14 +584,6 @@
+ msgid "Always start playing"
+ msgstr "Starta alltid att spela"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Ett ytterligare insticksprogram krävs för att använda Spotify i Clementine. "
+-"Vill du ladda ner och installera det nu?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Ett fel uppstod vid kopiering av iTunes-databasen från enheten"
+@@ -822,10 +809,6 @@
+ msgid "CUE sheet support"
+ msgstr "Stöd för CUE-filer"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Avbryt"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Ändra omslag"
+@@ -1039,10 +1022,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Konfigurera snabbtangenter"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Anpassa Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Konfigurera biblioteket..."
+@@ -1060,10 +1039,6 @@
+ msgid "Connect device"
+ msgstr "Anslut enhet"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Ansluter till Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Konstant bithastighet"
+@@ -1479,10 +1454,6 @@
+ msgid "Download this album..."
+ msgstr "Ladda ner det här albumet ..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Ladda ner..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Ladda ner Icecast-katalog"
+@@ -1495,10 +1466,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Hämtar katalog från Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Laddar ner Spotify-insticket"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Hämtar metadata"
+@@ -1650,10 +1617,6 @@
+ msgid "Error deleting songs"
+ msgstr "Fel vid borttagning av låtar"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Fel vid hämtning av Spotify-insticket"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1835,10 +1798,6 @@
+ msgid "Font size"
+ msgstr "Typsnittsstorlek"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Av licensskäl finns Spotify-stöd i ett separat insticksprogram."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Tvinga enkanalskodning"
+@@ -2109,10 +2068,6 @@
+ "I dynamiskt läge kommer nya spår väljas och läggas till i spellistan varje "
+ "gång en låt tar slut."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Inkorg"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Inkludera albumomslag i notifieringen"
+@@ -2141,10 +2096,6 @@
+ msgid "Insert..."
+ msgstr "Infoga..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Installerad"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2447,7 +2398,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2523,10 +2473,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Huvudprofil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Gör spellista tillgänglig offline"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Felformaterat svar"
+@@ -2784,10 +2730,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Inte tillräckligt med grannar"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Inte installerad"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2922,7 +2864,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Lösenord"
+@@ -3029,10 +2970,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Instickstatus:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3063,7 +3000,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Inställningar"
+@@ -3080,10 +3016,6 @@
+ msgid "Preferred audio format"
+ msgstr "Önskat ljudformat"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Önskat format"
+@@ -3474,18 +3406,6 @@
+ msgid "Search Magnatune"
+ msgstr "Sök i Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Sök på Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Sök på Spotify (öppnar en ny flik)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Sök på Spotify (öppnar en ny flik)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3810,30 +3730,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Fel vid inloggning på Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify-insticksprogram"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify-insticksprogrammet är inte installerat"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Stjärnmärkta"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Starta spellistan som spelas för närvarande"
+@@ -3843,7 +3743,6 @@
+ msgstr "Starta omkodning"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3929,18 +3828,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Synkroniserar Spotify-inkorg"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Synkroniserar Spotify-spellista"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Synkroniserar stjärnmärkta spår i Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Flikar längst upp"
+@@ -4321,10 +4208,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Använd systemets proxy inställningar"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Använd"
+@@ -4340,7 +4223,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Användarnamn"
+@@ -4574,20 +4456,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Du älskar detta spår"
+@@ -4655,7 +4523,6 @@
+ msgstr "Dina skrobblingar: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4744,8 +4611,6 @@
+ msgstr "de senaste"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/translations.pot clementine-libre-1.0.1/src/translations/translations.pot
+--- clementine-1.0.1/src/translations/translations.pot 2012-01-22 07:43:21.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/translations.pot 2012-05-29 17:45:10.709752528 -0400
+@@ -239,10 +239,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -297,7 +293,6 @@
+
+ #: ../mingw/src/ui_groovesharksettingspage.h:113
+ #: ../mingw/src/ui_magnatunesettingspage.h:155
+-#: ../mingw/src/ui_spotifysettingspage.h:209
+ #: ../mingw/src/ui_remotesettingspage.h:203
+ #: ../mingw/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -571,12 +566,6 @@
+ msgid "Always start playing"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -803,10 +792,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../mingw/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1005,10 +990,6 @@
+ msgid "Configure Shortcuts"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:490
+ msgid "Configure library..."
+ msgstr ""
+@@ -1026,10 +1007,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../mingw/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1431,10 +1408,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1447,10 +1420,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr ""
+@@ -1600,10 +1569,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1785,10 +1750,6 @@
+ msgid "Font size"
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../mingw/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2053,10 +2014,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../mingw/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr ""
+@@ -2086,10 +2043,6 @@
+ msgid "Insert..."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:252
+ msgid "Internet"
+ msgstr ""
+@@ -2391,7 +2344,6 @@
+ #: ../mingw/src/ui_digitallyimportedsettingspage.h:163
+ #: ../mingw/src/ui_groovesharksettingspage.h:116
+ #: ../mingw/src/ui_magnatunesettingspage.h:164
+-#: ../mingw/src/ui_spotifysettingspage.h:212
+ #: ../mingw/src/ui_remotesettingspage.h:205
+ #: ../mingw/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2468,10 +2420,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr ""
+@@ -2730,10 +2678,6 @@
+ msgid "Not enough neighbors"
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2868,7 +2812,6 @@
+
+ #: ../mingw/src/ui_groovesharksettingspage.h:115
+ #: ../mingw/src/ui_magnatunesettingspage.h:165
+-#: ../mingw/src/ui_spotifysettingspage.h:211
+ #: ../mingw/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr ""
+@@ -2975,10 +2918,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr ""
+@@ -3009,7 +2948,6 @@
+
+ #: ../mingw/src/ui_digitallyimportedsettingspage.h:166
+ #: ../mingw/src/ui_magnatunesettingspage.h:166
+-#: ../mingw/src/ui_spotifysettingspage.h:217
+ #: ../mingw/src/ui_settingsdialog.h:115
+ #: ../mingw/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+@@ -3027,10 +2965,6 @@
+ msgid "Preferred audio format"
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../mingw/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3422,18 +3356,6 @@
+ msgid "Search Magnatune"
+ msgstr ""
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../mingw/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3756,30 +3678,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../mingw/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../mingw/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:145
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3789,7 +3691,6 @@
+ msgstr ""
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3875,18 +3776,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr ""
+@@ -4246,10 +4135,6 @@
+ msgid "Use the system proxy settings"
+ msgstr ""
+
+-#: ../mingw/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr ""
+@@ -4265,7 +4150,6 @@
+
+ #: ../mingw/src/ui_groovesharksettingspage.h:114
+ #: ../mingw/src/ui_magnatunesettingspage.h:163
+-#: ../mingw/src/ui_spotifysettingspage.h:210
+ #: ../mingw/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr ""
+@@ -4489,20 +4373,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr ""
+@@ -4562,7 +4432,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4651,8 +4520,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr ""
+
+diff -rauN clementine-1.0.1/src/translations/tr.po clementine-libre-1.0.1/src/translations/tr.po
+--- clementine-1.0.1/src/translations/tr.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/tr.po 2012-05-29 17:44:19.953085826 -0400
+@@ -256,10 +256,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Grooveshark Anywhere hesabı gereklidir."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Spotify üyeliği gerekli."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Her zaman çalarak başlat"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Spotify'ın Clementine'de kullanılması için harici bir eklenti gerekmektedir."
+-" Şimdi indirmek ve kurulumunu yapmak ister misiniz?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Aygıttan iTunes veritabanı kopyalanırken hata oluştu"
+@@ -824,10 +811,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE desteği"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "İptal"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Kapak resmini değiştir"
+@@ -1038,10 +1021,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Kısayolları Yapılandır"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Spotify Ayarları..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Kütüphaneyi düzenle..."
+@@ -1059,10 +1038,6 @@
+ msgid "Connect device"
+ msgstr "Aygıtı bağla"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Spotify'a bağlanılıyor."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Sabit bithızı"
+@@ -1478,10 +1453,6 @@
+ msgid "Download this album..."
+ msgstr "Bu albümü indirin..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "İndir..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Icecast dizini indiriliyor"
+@@ -1494,10 +1465,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Magnatune kataloğu indiriliyor"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Spotify eklentisi indiriliyor"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Üstveri indiriliyor"
+@@ -1652,10 +1619,6 @@
+ msgid "Error deleting songs"
+ msgstr "Şarkılar silinirken hata"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Spotify eklentisini indirirken hata"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1837,10 +1800,6 @@
+ msgid "Font size"
+ msgstr "Yazı tipi boyutu"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Lisans sebepleri dolayısıyla Spotify desteği ayrı bir eklentidir."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Mono çözümlemeye zorla"
+@@ -2112,10 +2071,6 @@
+ "Dinamik modda yeni şarkılar seçilerek, her şarkı bittiğinde çalma listesine "
+ "eklenecektir."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Gelen Kutusu"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Bildirimde albüm resimlendirmesini göster"
+@@ -2144,10 +2099,6 @@
+ msgid "Insert..."
+ msgstr "Ekle..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Kuruldu"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2454,7 +2405,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2530,10 +2480,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Ana profil (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Çalma listesini çevrim dışındayken kullanılabilir yap"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Bozuk yanıt"
+@@ -2792,10 +2738,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Yeterli komşu yok"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Kurulu değil"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Giriş yapmadınız"
+@@ -2930,7 +2872,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Parola"
+@@ -3037,10 +2978,6 @@
+ msgid "Playlists"
+ msgstr "Çalma listeleri"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Eklenti durumu:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3071,7 +3008,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Tercihler"
+@@ -3088,10 +3024,6 @@
+ msgid "Preferred audio format"
+ msgstr "Tercih edilen ses biçimleri"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Tercih edilen bit oranı"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Tercih edilen biçim"
+@@ -3482,18 +3414,6 @@
+ msgid "Search Magnatune"
+ msgstr "Magnatune'da Ara"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Spotify'i ara"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Spotify'i ara (yeni sekme açar)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Spotify'i ara (yeni sekme açar)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Tüm kaynaklarınızda arayın (kütüphane, internet servisleri, ...)"
+@@ -3818,30 +3738,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Spotify giriş hatası"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Spotify eklentisi"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Spotify eklentisi kurulu değil"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Standard"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Yıldızlı"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Çalma listesini mevcut çalınanla başlat"
+@@ -3851,7 +3751,6 @@
+ msgstr "Dönüştürmeye başla"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Müzik bulmak için yukarıdaki arama kutusuna yazarak başlayın %1 "
+@@ -3937,18 +3836,6 @@
+ msgid "Switch provider"
+ msgstr "Anahtar sağlayıcı"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Spotify gelen kutusu eşleniyor"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Spotify çalma listesi eşleniyor"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Spotify yıldızlı şarkılar eşleniyor"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Üstteki sekmeler"
+@@ -4320,10 +4207,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Sistem vekil sunucu ayarlarını kullan"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Ses normalleştirme kullan"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Kullanılan"
+@@ -4339,7 +4222,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Kullanıcı Adı"
+@@ -4574,22 +4456,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Bir Grooveshark Anywhere hesabınız yok"
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Spotify Premium hesabınız yok."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Spotify servisinden çıktınız, lütfen Ayarlar ekranında parolanızı yeniden "
+-"girin."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Spotify servisinden çıktınız, lütfen parolanızı yeniden girin."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Bu şarkıyı seviyorsunuz"
+@@ -4656,7 +4522,6 @@
+ msgstr "Skroplarınız: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Kullanıcı adı veya parolanız yanlış."
+
+@@ -4745,8 +4610,6 @@
+ msgstr "Sonuncu"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/uk.po clementine-libre-1.0.1/src/translations/uk.po
+--- clementine-1.0.1/src/translations/uk.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/uk.po 2012-05-29 17:45:51.199752577 -0400
+@@ -254,10 +254,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Потрібен обліковий запис Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Потрібен обліковий запис Spotify Premium."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -318,7 +314,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -591,14 +586,6 @@
+ msgid "Always start playing"
+ msgstr "Завжди починати відтворення"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Для користування Spotify в Clementine, потрібний додатковий модуль. "
+-"Завантажити і встановити його зараз?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Виникла помилка копіювання бази даних iTunes з пристрою"
+@@ -824,10 +811,6 @@
+ msgid "CUE sheet support"
+ msgstr "Підтримка листів CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Скасувати"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Змінити обкладинку"
+@@ -1039,10 +1022,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Налаштування комбінацій клавіш"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Налаштування Spotify…"
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Налаштувати фонотеку"
+@@ -1060,10 +1039,6 @@
+ msgid "Connect device"
+ msgstr "З’єднати пристрій"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "З'єднання зі Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Стала бітова швидкість"
+@@ -1479,10 +1454,6 @@
+ msgid "Download this album..."
+ msgstr "Завантажити цей альбом…"
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Звантажити…"
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Завантажую каталог Icecast"
+@@ -1495,10 +1466,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Завантаження каталогу Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Завантаження модуля Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Завантажую метадані"
+@@ -1651,10 +1618,6 @@
+ msgid "Error deleting songs"
+ msgstr "Помилка вилучення композицій"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Помилка завантаження модуля Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1837,11 +1800,6 @@
+ msgid "Font size"
+ msgstr "Розмір шрифту"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-"З підстав ліцензування, для підтримки Spotify потрібен спеціальний модуль."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Примусове моно-кодування"
+@@ -2113,10 +2071,6 @@
+ "У динамічному режимі нові доріжку буде обрано та додано до списку "
+ "відтворення кожного разу як завершується пісня."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Вхідні"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Показувати обкладинку в повідомлені"
+@@ -2145,10 +2099,6 @@
+ msgid "Insert..."
+ msgstr "Вставити…"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Встановлено"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Інтернет"
+@@ -2451,7 +2401,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2527,10 +2476,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Основний профіль (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Зробити список відтворення доступним онлайн"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Спотворений відгук"
+@@ -2789,10 +2734,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Недостатньо сусідів"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Не встановлено"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Вхід не здійснено"
+@@ -2927,7 +2868,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Пароль"
+@@ -3034,10 +2974,6 @@
+ msgid "Playlists"
+ msgstr "Списки відтворення"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Статус модуля:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Поп"
+@@ -3068,7 +3004,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Параметри"
+@@ -3085,10 +3020,6 @@
+ msgid "Preferred audio format"
+ msgstr "Бажаний аудіо формат"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Бажана бітова швидкість"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Бажаний формат"
+@@ -3479,18 +3410,6 @@
+ msgid "Search Magnatune"
+ msgstr "Пошук на Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Пошук в Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Пошук в Spotify (у новій вкладці)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Пошук в Spotify (у новій вкладці)…"
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Шукати у всіх джерелах даних (бібліотеці, на службах інтернету тощо)"
+@@ -3816,30 +3735,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Помилка входу до Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Модуль Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Модуль Spotify не встановлено"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Типово"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Оцінені"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Запустити список відтворення, що відтворюється на цей час"
+@@ -3849,7 +3748,6 @@
+ msgstr "Почати перекодування"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3937,18 +3835,6 @@
+ msgid "Switch provider"
+ msgstr "Перемкнути джерело"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Синхронізація вхідних Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Синхронізація списку відтворення Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Синхронізація оцінених доріжок Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Вкладки зверху"
+@@ -4323,10 +4209,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Використовувати системні налаштування проксі"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Використати нормалізацію гучності"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Використано"
+@@ -4342,7 +4224,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Користувач"
+@@ -4579,21 +4460,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "У вас немає облікового запису Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "У вас немає облікового запису Spotify Premium."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Ви вийшли зі Spotify, введіть ваш пароль знов у налаштуваннях, будь ласка."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Ви вийшли зі Spotify, введіть ваш пароль знов, будь ласка."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Улюблена композиція"
+@@ -4661,7 +4527,6 @@
+ msgstr "%1 відтворень у вас"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Вами вказано помилкове ім’я користувача або пароль."
+
+@@ -4750,8 +4615,6 @@
+ msgstr "за останні"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "кбіт/с"
+
+diff -rauN clementine-1.0.1/src/translations/vi.po clementine-libre-1.0.1/src/translations/vi.po
+--- clementine-1.0.1/src/translations/vi.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/vi.po 2012-05-29 17:46:32.973085951 -0400
+@@ -256,10 +256,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr "Cần có tài khoản Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr "Yêu cầu một tài khoản Premium của Spotify."
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -320,7 +316,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -593,14 +588,6 @@
+ msgid "Always start playing"
+ msgstr "Bắt đầu phát nhạc"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-"Cần phải có một trình cắm thêm để sử dụng Spotify trong Clementine. Bạn có "
+-"muốn tải nó về và cài đặt ngay không?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "Một lỗi đã xảy ra khi sao chép cơ sở dữ liệu iTunes từ thiết bị"
+@@ -826,10 +813,6 @@
+ msgid "CUE sheet support"
+ msgstr "Hỗ trợ danh sách CUE"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr "Hủy bỏ"
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "Đổi ảnh bìa"
+@@ -1040,10 +1023,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "Phím tắt"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "Cấu hình Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "Cấu hình thư viện..."
+@@ -1061,10 +1040,6 @@
+ msgid "Connect device"
+ msgstr "Kết nối thiết bị"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "Kết nối đến Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "Bitrate cố định"
+@@ -1480,10 +1455,6 @@
+ msgid "Download this album..."
+ msgstr "Tải album này..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "Tải về..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "Đang tải thư mục Icecast"
+@@ -1496,10 +1467,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "Đang tải mục lục Magnatune"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "Tải trình cắm thêm Spotify"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "Đang tải thông tin dữ liệu"
+@@ -1653,10 +1620,6 @@
+ msgid "Error deleting songs"
+ msgstr "Lỗi xóa các bài hát"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "Lỗi khi tải trình cắm thêm Spotify"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1841,10 +1804,6 @@
+ msgid "Font size"
+ msgstr "Kích cỡ phông chữ"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr "Vì lí do giấy phép nên Spotify được hỗ trợ trong một trình cắm riêng."
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr "Buộc mã hóa đơn kênh"
+@@ -2116,10 +2075,6 @@
+ "Trong chế độ năng động, các bài hát mới sẽ được chọn và thêm vào danh sách "
+ "mỗi khi một bài hát được phát xong."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "Hộp thư đến"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "Kèm theo ảnh bìa album trong thông báo"
+@@ -2148,10 +2103,6 @@
+ msgid "Insert..."
+ msgstr "Nhập..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr "Đã cài đặt"
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "Internet"
+@@ -2454,7 +2405,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2530,10 +2480,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr "Hồ sơ chính (MAIN)"
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr "Danh sách sẵn sàng ngoại tuyến"
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "Phản hồi có vẻ xấu"
+@@ -2792,10 +2738,6 @@
+ msgid "Not enough neighbors"
+ msgstr "Chưa đủ những người lân cận"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr "Chưa cài đặt"
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr "Chưa đăng nh"
+@@ -2930,7 +2872,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "Mật khẩu"
+@@ -3037,10 +2978,6 @@
+ msgid "Playlists"
+ msgstr "Danh sách"
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "Trạng thái trình cắm:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "Pop"
+@@ -3071,7 +3008,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "Thiết lập"
+@@ -3089,10 +3025,6 @@
+ msgid "Preferred audio format"
+ msgstr "Định dạng âm thanh được ưu tiên"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr "Bitrate ưu tiên"
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "Định dạng được ưu tiên"
+@@ -3483,18 +3415,6 @@
+ msgid "Search Magnatune"
+ msgstr "Tìm kiếm trên Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr "Tìm kiếm trong Spotify"
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr "Tìm kiếm trong Spotify (mở trong tab mới)"
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "Tìm kiếm trong Spotify (mở trong tab mới)..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr "Tìm từ tất cả các nguồn (thư viện, các dịch vụ internet, ...)"
+@@ -3819,30 +3739,10 @@
+ msgid "Speex"
+ msgstr "Speex"
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr "Lỗi đăng nhập Spotify"
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr "Trình cắm Spotify"
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "Trình cắm thêm Spotify chưa được cài đặt"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr "Chuẩn"
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr "Đã bắt đầu"
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "Bắt đầu danh sách hiện đang phát"
+@@ -3852,7 +3752,6 @@
+ msgstr "Bắt đầu chuyển mã"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr "Nhập vào hộp tìm kiếm ở trên để tìm nhạc trên %1."
+@@ -3938,18 +3837,6 @@
+ msgid "Switch provider"
+ msgstr "Đổi nhà cung cấp"
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr "Đang đồng bộ hộp thư đến Spotify"
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr "Đang đồng bộ danh sách Spotify"
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr "Đang đồng bộ các bài hát được đánh dấu sao của Spotify"
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "Các tab ở phía trên"
+@@ -4328,10 +4215,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "Sử dụng thiết lập proxy của hệ thống"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr "Sử dụng cân bằng âm lượng"
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "Đã dùng"
+@@ -4347,7 +4230,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "Tên người dùng"
+@@ -4584,22 +4466,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr "Bạn không có tài khoản Grooveshark Anywhere."
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr "Bạn không có tài khoản cao cấp của Spotify."
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-"Bạn đã đăng xuất khỏi Spotify, hãy nhập lại mật khẩu trong hộp thoại Thiết "
+-"lập."
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr "Bạn đã đăng xuất khỏi Spotify, hãy nhập lại mật khẩu."
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "Bạn thích bài hát này"
+@@ -4666,7 +4532,6 @@
+ msgstr "Thông tin bài hát của bạn: %1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr "Tên người dùng hay mật khẩu không đúng."
+
+@@ -4755,8 +4620,6 @@
+ msgstr "cuối"
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/zh_CN.po clementine-libre-1.0.1/src/translations/zh_CN.po
+--- clementine-1.0.1/src/translations/zh_CN.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/zh_CN.po 2012-05-29 17:47:24.893086011 -0400
+@@ -249,10 +249,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -308,7 +304,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -581,12 +576,6 @@
+ msgid "Always start playing"
+ msgstr "总是开始播放"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr "Clementine需要安装额外的插件才能使用Spotify.现在就下载并安装吗?"
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr "从 iTunes 复制数据库出错"
+@@ -812,10 +801,6 @@
+ msgid "CUE sheet support"
+ msgstr "CUE 支持"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr "更改封面"
+@@ -1016,10 +1001,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "配置快捷键"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr "配置Spotify..."
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "配置音乐库..."
+@@ -1037,10 +1018,6 @@
+ msgid "Connect device"
+ msgstr "连接设备"
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr "连接Spotify"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr "固定位速率"
+@@ -1450,10 +1427,6 @@
+ msgid "Download this album..."
+ msgstr "下载此专辑..."
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr "下载..."
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr "正在下载 Icecast 目录"
+@@ -1466,10 +1439,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "正在下载 Magnatune 分类"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr "下载Spotify插件中"
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "下载元数据"
+@@ -1619,10 +1588,6 @@
+ msgid "Error deleting songs"
+ msgstr "删除曲目出错"
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr "下载Spotify插件出错"
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1804,10 +1769,6 @@
+ msgid "Font size"
+ msgstr "字号"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2070,10 +2031,6 @@
+ "time a song finishes."
+ msgstr "在动态模式中, 每次歌曲播放完之后会被选择并添加新歌曲到播放列表.使用动态模式将忽略您的播放列表大小设定值."
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr "收件夹"
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "在提示中中加入专辑封面"
+@@ -2102,10 +2059,6 @@
+ msgid "Insert..."
+ msgstr "插入..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "互联网"
+@@ -2408,7 +2361,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2484,10 +2436,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "无效的响应"
+@@ -2744,10 +2692,6 @@
+ msgid "Not enough neighbors"
+ msgstr "邻居不足"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2882,7 +2826,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "密码"
+@@ -2989,10 +2932,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr "插件状态:"
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "流行"
+@@ -3023,7 +2962,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "首选项"
+@@ -3040,10 +2978,6 @@
+ msgid "Preferred audio format"
+ msgstr "首选音乐格式"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr "首选格式"
+@@ -3434,18 +3368,6 @@
+ msgid "Search Magnatune"
+ msgstr "搜索 Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr "在新标签栏中查找Spotify..."
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3770,30 +3692,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr "Spotify"
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr "potify 插件未安装"
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr ""
+@@ -3803,7 +3705,6 @@
+ msgstr "开始转换"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3889,18 +3790,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "标签在上"
+@@ -4258,10 +4147,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "使用系统代理设置"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "已使用"
+@@ -4277,7 +4162,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "用户名"
+@@ -4505,20 +4389,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "您喜爱这个音轨"
+@@ -4579,7 +4449,6 @@
+ msgstr "提交的音轨:%1"
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4668,8 +4537,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
+diff -rauN clementine-1.0.1/src/translations/zh_TW.po clementine-libre-1.0.1/src/translations/zh_TW.po
+--- clementine-1.0.1/src/translations/zh_TW.po 2011-12-27 13:16:09.000000000 -0500
++++ clementine-libre-1.0.1/src/translations/zh_TW.po 2012-05-29 17:48:16.866419419 -0400
+@@ -253,10 +253,6 @@
+ msgid "A Grooveshark Anywhere account is required."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:162
+-msgid "A Spotify Premium account is required."
+-msgstr ""
+-
+ #: smartplaylists/wizard.cpp:72
+ msgid ""
+ "A smart playlist is a dynamic list of songs that come from your library. "
+@@ -312,7 +308,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:113
+ #: ../bin/src/ui_magnatunesettingspage.h:155
+-#: ../bin/src/ui_spotifysettingspage.h:209
+ #: ../bin/src/ui_remotesettingspage.h:203
+ #: ../bin/src/ui_lastfmsettingspage.h:145
+ msgid "Account details"
+@@ -585,12 +580,6 @@
+ msgid "Always start playing"
+ msgstr "總是開始播放"
+
+-#: internet/spotifyblobdownloader.cpp:59
+-msgid ""
+-"An additional plugin is required to use Spotify in Clementine. Would you "
+-"like to download and install it now?"
+-msgstr ""
+-
+ #: devices/afcdevice.cpp:62
+ msgid "An error occurred copying the iTunes database from the device"
+ msgstr ""
+@@ -816,10 +805,6 @@
+ msgid "CUE sheet support"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Cancel"
+-msgstr ""
+-
+ #: ../bin/src/ui_edittagdialog.h:634
+ msgid "Change cover art"
+ msgstr ""
+@@ -1020,10 +1005,6 @@
+ msgid "Configure Shortcuts"
+ msgstr "設定快速鍵"
+
+-#: internet/spotifyservice.cpp:491
+-msgid "Configure Spotify..."
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:491
+ msgid "Configure library..."
+ msgstr "設定音樂庫"
+@@ -1041,10 +1022,6 @@
+ msgid "Connect device"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:246
+-msgid "Connecting to Spotify"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:196
+ msgid "Constant bitrate"
+ msgstr ""
+@@ -1454,10 +1431,6 @@
+ msgid "Download this album..."
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:216
+-msgid "Download..."
+-msgstr ""
+-
+ #: internet/icecastservice.cpp:97
+ msgid "Downloading Icecast directory"
+ msgstr ""
+@@ -1470,10 +1443,6 @@
+ msgid "Downloading Magnatune catalogue"
+ msgstr "下載 Magnatune目錄"
+
+-#: internet/spotifyblobdownloader.cpp:43
+-msgid "Downloading Spotify plugin"
+-msgstr ""
+-
+ #: musicbrainz/tagfetcher.cpp:101
+ msgid "Downloading metadata"
+ msgstr "正在下載元數據"
+@@ -1623,10 +1592,6 @@
+ msgid "Error deleting songs"
+ msgstr ""
+
+-#: internet/spotifyblobdownloader.cpp:214
+-msgid "Error downloading Spotify plugin"
+-msgstr ""
+-
+ #: playlist/songloaderinserter.cpp:71 playlist/songloaderinserter.cpp:133
+ #, qt-format
+ msgid "Error loading %1"
+@@ -1808,10 +1773,6 @@
+ msgid "Font size"
+ msgstr "字型大小"
+
+-#: ../bin/src/ui_spotifysettingspage.h:214
+-msgid "For licensing reasons Spotify support is in a separate plugin."
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:204
+ msgid "Force mono encoding"
+ msgstr ""
+@@ -2074,10 +2035,6 @@
+ "time a song finishes."
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:347
+-msgid "Inbox"
+-msgstr ""
+-
+ #: ../bin/src/ui_notificationssettingspage.h:408
+ msgid "Include album art in the notification"
+ msgstr "包括專輯封面的通知"
+@@ -2106,10 +2063,6 @@
+ msgid "Insert..."
+ msgstr "插入..."
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Installed"
+-msgstr ""
+-
+ #: ui/mainwindow.cpp:253
+ msgid "Internet"
+ msgstr "網際網路"
+@@ -2412,7 +2365,6 @@
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:163
+ #: ../bin/src/ui_groovesharksettingspage.h:116
+ #: ../bin/src/ui_magnatunesettingspage.h:164
+-#: ../bin/src/ui_spotifysettingspage.h:212
+ #: ../bin/src/ui_remotesettingspage.h:205
+ #: ../bin/src/ui_lastfmsettingspage.h:147
+ msgid "Login"
+@@ -2488,10 +2440,6 @@
+ msgid "Main profile (MAIN)"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:496
+-msgid "Make playlist available offline"
+-msgstr ""
+-
+ #: internet/lastfmservice.cpp:449
+ msgid "Malformed response"
+ msgstr "格式不正確的反應"
+@@ -2748,10 +2696,6 @@
+ msgid "Not enough neighbors"
+ msgstr "沒有足夠的鄰居"
+
+-#: internet/spotifysettingspage.cpp:75
+-msgid "Not installed"
+-msgstr ""
+-
+ #: globalsearch/globalsearchsettingspage.cpp:123
+ msgid "Not logged in"
+ msgstr ""
+@@ -2886,7 +2830,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:115
+ #: ../bin/src/ui_magnatunesettingspage.h:165
+-#: ../bin/src/ui_spotifysettingspage.h:211
+ #: ../bin/src/ui_networkproxysettingspage.h:169
+ msgid "Password"
+ msgstr "密碼"
+@@ -2993,10 +2936,6 @@
+ msgid "Playlists"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:215
+-msgid "Plugin status:"
+-msgstr ""
+-
+ #: ui/equalizer.cpp:119
+ msgid "Pop"
+ msgstr "流行音樂"
+@@ -3027,7 +2966,6 @@
+
+ #: ../bin/src/ui_digitallyimportedsettingspage.h:166
+ #: ../bin/src/ui_magnatunesettingspage.h:166
+-#: ../bin/src/ui_spotifysettingspage.h:217 ../bin/src/ui_settingsdialog.h:115
+ #: ../bin/src/ui_lastfmsettingspage.h:149
+ msgid "Preferences"
+ msgstr "偏好設定"
+@@ -3044,10 +2982,6 @@
+ msgid "Preferred audio format"
+ msgstr "首選的音頻格式"
+
+-#: ../bin/src/ui_spotifysettingspage.h:218
+-msgid "Preferred bitrate"
+-msgstr ""
+-
+ #: ../bin/src/ui_deviceproperties.h:380
+ msgid "Preferred format"
+ msgstr ""
+@@ -3438,18 +3372,6 @@
+ msgid "Search Magnatune"
+ msgstr "搜尋 Magnatune"
+
+-#: internet/spotifysearchplaylisttype.cpp:32 internet/spotifyservice.cpp:604
+-msgid "Search Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:338
+-msgid "Search Spotify (opens a new tab)"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:489
+-msgid "Search Spotify (opens a new tab)..."
+-msgstr ""
+-
+ #: ../bin/src/ui_globalsearchwidget.h:61
+ msgid "Search around all your sources (library, internet services, ...)"
+ msgstr ""
+@@ -3774,30 +3696,10 @@
+ msgid "Speex"
+ msgstr ""
+
+-#: ../bin/src/ui_spotifysettingspage.h:208
+-msgid "Spotify"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:179
+-msgid "Spotify login error"
+-msgstr ""
+-
+-#: ../bin/src/ui_spotifysettingspage.h:213
+-msgid "Spotify plugin"
+-msgstr ""
+-
+-#: internet/spotifyblobdownloader.cpp:58
+-msgid "Spotify plugin not installed"
+-msgstr ""
+-
+ #: ../bin/src/ui_transcoderoptionsmp3.h:201
+ msgid "Standard"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:343
+-msgid "Starred"
+-msgstr ""
+-
+ #: core/commandlineoptions.cpp:148
+ msgid "Start the playlist currently playing"
+ msgstr "開始播放目前播放清單"
+@@ -3807,7 +3709,6 @@
+ msgstr "開始轉碼"
+
+ #: internet/groovesharksearchplaylisttype.cpp:36
+-#: internet/spotifysearchplaylisttype.cpp:36
+ #, qt-format
+ msgid "Start typing in the search box above to find music on %1."
+ msgstr ""
+@@ -3893,18 +3794,6 @@
+ msgid "Switch provider"
+ msgstr ""
+
+-#: internet/spotifyservice.cpp:515
+-msgid "Syncing Spotify inbox"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:510
+-msgid "Syncing Spotify playlist"
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:519
+-msgid "Syncing Spotify starred tracks"
+-msgstr ""
+-
+ #: widgets/fancytabwidget.cpp:650
+ msgid "Tabs on top"
+ msgstr "標籤在上面"
+@@ -4262,10 +4151,6 @@
+ msgid "Use the system proxy settings"
+ msgstr "使用系統代理伺服器設置"
+
+-#: ../bin/src/ui_spotifysettingspage.h:219
+-msgid "Use volume normalisation"
+-msgstr ""
+-
+ #: widgets/freespacebar.cpp:47
+ msgid "Used"
+ msgstr "已用"
+@@ -4281,7 +4166,6 @@
+
+ #: ../bin/src/ui_groovesharksettingspage.h:114
+ #: ../bin/src/ui_magnatunesettingspage.h:163
+-#: ../bin/src/ui_spotifysettingspage.h:210
+ #: ../bin/src/ui_networkproxysettingspage.h:168
+ msgid "Username"
+ msgstr "帳號"
+@@ -4505,20 +4389,6 @@
+ msgid "You do not have a Grooveshark Anywhere account."
+ msgstr ""
+
+-#: internet/spotifysettingspage.cpp:149
+-msgid "You do not have a Spotify Premium account."
+-msgstr ""
+-
+-#: internet/spotifyservice.cpp:165
+-msgid ""
+-"You have been logged out of Spotify, please re-enter your password in the "
+-"Settings dialog."
+-msgstr ""
+-
+-#: internet/spotifysettingspage.cpp:158
+-msgid "You have been logged out of Spotify, please re-enter your password."
+-msgstr ""
+-
+ #: songinfo/lastfmtrackinfoprovider.cpp:95
+ msgid "You love this track"
+ msgstr "您愛這首歌曲"
+@@ -4578,7 +4448,6 @@
+ msgstr ""
+
+ #: internet/groovesharksettingspage.cpp:108
+-#: internet/spotifysettingspage.cpp:154
+ msgid "Your username or password was incorrect."
+ msgstr ""
+
+@@ -4667,8 +4536,6 @@
+ msgstr ""
+
+ #: playlist/playlistview.cpp:163 ui/edittagdialog.cpp:422
+-#: internet/spotifysettingspage.cpp:60 internet/spotifysettingspage.cpp:61
+-#: internet/spotifysettingspage.cpp:62
+ msgid "kbps"
+ msgstr "kbps"
+
diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD
index 93d779d22..35b477457 100644
--- a/libre/crosstool-ng/PKGBUILD
+++ b/libre/crosstool-ng/PKGBUILD
@@ -2,13 +2,13 @@
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
pkgname=crosstool-ng
-pkgver=1.14.1
+pkgver=1.15.2
pkgrel=1
pkgdesc="A versatile cross toolchain generator (eglibc addons patch)"
arch=('i686' 'x86_64' 'mips64el')
url="http://crosstool-ng.org/"
license=(GPL2)
-depends=('cvs' 'curl')
+depends=('cvs' 'curl' 'gperf')
makedepends=('libtool')
optdepends=('subversion: for retrieving eglibc sources')
source=(http://crosstool-ng.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
@@ -26,4 +26,4 @@ package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
}
-md5sums=('1e8e723df67c643ebdd529990607d5bf')
+md5sums=('0d03314debb73de37a72014632bf1ab3')
diff --git a/libre/cups-libre/PKGBUILD b/libre/cups-libre/PKGBUILD
index f50b04848..e46b5d356 100644
--- a/libre/cups-libre/PKGBUILD
+++ b/libre/cups-libre/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 149429 2012-02-07 16:59:12Z andyrtr $
+# $Id: PKGBUILD 159509 2012-05-25 16:34:34Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase="cups"
pkgname=('libcups' 'cups-libre')
-pkgver=1.5.2
-pkgrel=1
+pkgver=1.5.3
+pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.cups.org/"
makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3'
- 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+ 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
cups-avahi-1-config.patch
cups-avahi-2-backend.patch
@@ -18,22 +18,22 @@ source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
cups-avahi-5-services.patch
cups-no-export-ssllibs.patch
cups-no-gcrypt.patch
+ cups-no-gzip-man.patch
cups cups.logrotate cups.pam)
#options=('!emptydirs')
-md5sums=('9471d2a7c920cfbb17133c32d2e6866f'
- '8496c48a7ab5918ce546cfb72472def3'
- '7df4c2e0a69bf072d7b7e96523df9dce'
- '9a207c5d5189b1c2fc55907b7ed09372'
- '5da4ba0837f9a685f146797fcfcd455e'
- 'fe782a8fd4351741120d485d476abe8a'
+md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
+ '8ec0d9d4b6fe3a8902042ed2432fb8b4'
+ 'c80bd1ff8d342cdf379ce5f445b9e944'
+ '1a5112f63958643f2888abc9418dbcac'
+ 'c37d1bf1bb76acc3fe93362c80d91b7c'
+ '5d302860559960042f3b47a91b97c5fe'
'9b8467a1e51d360096b70e2c3c081e6c'
'3733c23e77eb503bd94cc368e02830dc'
+ 'c9159ba1233902ba6ddbbe6885a46b72'
'9657daa21760bb0b5fa3d8b51d5e01a1'
'f861b18f4446c43918c8643dcbbd7f6d'
'96f82c38f3f540b53f3e5144900acf17')
-# move client.conf man page for next update to the client pkg.
-
build() {
cd ${srcdir}/${pkgbase}-${pkgver}
# http://www.cups.org/str.php?L3066
@@ -48,6 +48,8 @@ build() {
patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+ # don't zip man pages in make install, let makepkg do that / Fedora
+ patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch
# Rebuild configure script for --enable-avahi.
aclocal -I config-scripts
@@ -83,12 +85,23 @@ check() {
package_libcups() {
pkgdesc="The CUPS Printing System - client libraries and headers"
depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
+backup=(etc/cups/client.conf)
cd ${srcdir}/${pkgbase}-${pkgver}
make BUILDROOT=${pkgdir} install-headers install-libs
# put this into the libs pkg to make other software find the libs(no pkg-config file included)
- mkdir -p ${pkgdir}/usr/bin
+ mkdir -p ${pkgdir}/usr/bin
install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+
+ # install client.conf man page and config file
+ install -dm755 ${pkgdir}/usr/share/man/man5
+ #install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
+ install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
+ install -dm755 ${pkgdir}/etc/cups
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ chgrp lp ${pkgdir}/etc/cups/client.conf
}
package_cups-libre() {
@@ -98,18 +111,15 @@ replaces=("${pkgbase}")
conflicts=("${pkgbase}")
install=cups.install
backup=(etc/cups/cupsd.conf
- etc/cups/mime.convs
- etc/cups/mime.types
etc/cups/snmp.conf
etc/cups/printers.conf
etc/cups/classes.conf
- etc/cups/client.conf
etc/cups/subscriptions.conf
etc/dbus-1/system.d/cups.conf
etc/logrotate.d/cups
etc/pam.d/cups
etc/xinetd.d/cups-lpd)
-depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'libusb' 'dbus-core' 'hicolor-icon-theme')
optdepends=('php: for included phpcups.so module'
'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
@@ -145,15 +155,15 @@ optdepends=('php: for included phpcups.so module'
# install some more configuration files that will get filled by cupsd
touch ${pkgdir}/etc/cups/printers.conf
touch ${pkgdir}/etc/cups/classes.conf
- touch ${pkgdir}/etc/cups/client.conf
- echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
- echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
touch ${pkgdir}/etc/cups/subscriptions.conf
- chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf}
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
# fix .desktop file
sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
# compress some driver files, adopted from Fedora
find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+
+ # remove client.conf man page
+ rm -f ${pkgdir}/usr/share/man/man5/client.conf.5
}
diff --git a/libre/cups-libre/cups-avahi-1-config.patch b/libre/cups-libre/cups-avahi-1-config.patch
index 663eb39df..516e01fa9 100644
--- a/libre/cups-libre/cups-avahi-1-config.patch
+++ b/libre/cups-libre/cups-avahi-1-config.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.0/config.h.in.avahi-1-config cups-1.5.0/config.h.in
---- cups-1.5.0/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
-+++ cups-1.5.0/config.h.in 2011-08-05 15:04:09.535759988 +0100
+diff -up cups-1.5.2/config.h.in.avahi-1-config cups-1.5.2/config.h.in
+--- cups-1.5.2/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
++++ cups-1.5.2/config.h.in 2012-03-14 15:04:51.365347165 +0000
@@ -390,6 +390,13 @@
@@ -15,9 +15,9 @@ diff -up cups-1.5.0/config.h.in.avahi-1-config cups-1.5.0/config.h.in
* Do we have <sys/ioctl.h>?
*/
-diff -up cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.0/config-scripts/cups-dnssd.m4
---- cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
-+++ cups-1.5.0/config-scripts/cups-dnssd.m4 2011-08-05 15:04:09.525760307 +0100
+diff -up cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.2/config-scripts/cups-dnssd.m4
+--- cups-1.5.2/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
++++ cups-1.5.2/config-scripts/cups-dnssd.m4 2012-03-14 15:04:51.365347165 +0000
@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
DNSSDLIBS=""
DNSSD_BACKEND=""
diff --git a/libre/cups-libre/cups-avahi-2-backend.patch b/libre/cups-libre/cups-avahi-2-backend.patch
index 4c0d4989b..9fa367729 100644
--- a/libre/cups-libre/cups-avahi-2-backend.patch
+++ b/libre/cups-libre/cups-avahi-2-backend.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
---- cups-1.5.2/backend/dnssd.c.avahi-2-backend 2012-02-06 11:09:08.318644741 +0100
-+++ cups-1.5.2/backend/dnssd.c 2012-02-06 11:09:08.326644641 +0100
+diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
+--- cups-1.5.3/backend/dnssd.c.avahi-2-backend 2012-05-15 16:53:18.164774446 +0200
++++ cups-1.5.3/backend/dnssd.c 2012-05-15 17:09:07.684155704 +0200
@@ -15,14 +15,21 @@
*
* Contents:
@@ -85,23 +85,24 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
static void browse_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
-@@ -93,12 +131,6 @@ static void browse_local_callback(DNSSe
- const char *regtype,
+@@ -95,13 +133,6 @@ static void browse_local_callback(DNSSe
const char *replyDomain,
- void *context);
+ void *context)
+ __attribute__((nonnull(1,5,6,7,8)));
-static int compare_devices(cups_device_t *a, cups_device_t *b);
-static void exec_backend(char **argv);
-static cups_device_t *get_device(cups_array_t *devices,
- const char *serviceName,
- const char *regtype,
-- const char *replyDomain);
+- const char *replyDomain)
+- __attribute__((nonnull(1,2,3,4)));
static void query_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
-@@ -107,9 +139,118 @@ static void query_callback(DNSServiceRe
- uint16_t rrclass, uint16_t rdlen,
+@@ -111,10 +142,119 @@ static void query_callback(DNSServiceRe
const void *rdata, uint32_t ttl,
- void *context);
+ void *context)
+ __attribute__((nonnull(1,5,9,11)));
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+static void avahi_client_callback (AvahiClient *client,
@@ -117,7 +118,6 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+ AvahiLookupResultFlags flags,
+ void *context);
+#endif /* HAVE_AVAHI */
-+
+static cups_device_t * find_device (cups_array_t *devices,
+ cups_txt_records_t *txt,
+ cups_device_t *dkey);
@@ -126,9 +126,11 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+static cups_device_t *get_device(cups_array_t *devices,
+ const char *serviceName,
+ const char *regtype,
-+ const char *replyDomain);
++ const char *replyDomain)
++ __attribute__((nonnull(1,2,3,4)));
static void sigterm_handler(int sig);
- static void unquote(char *dst, const char *src, size_t dstsize);
+ static void unquote(char *dst, const char *src, size_t dstsize)
+ __attribute__((nonnull(1,2)));
+#ifdef HAVE_AVAHI
+static AvahiSimplePoll *simple_poll = NULL;
@@ -174,7 +176,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+ */
+
+ datalen = *data++;
-+ if (!datalen || (data + datalen) >= txt->dataend)
++ if (!datalen || (data + datalen) > txt->dataend)
+ return NULL;
+ txt->datanext = data + datalen;
+
@@ -217,7 +219,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'main()' - Browse for printers.
-@@ -120,6 +261,13 @@ main(int argc, /* I - Number of comm
+@@ -125,6 +265,13 @@ main(int argc, /* I - Number of comm
char *argv[]) /* I - Command-line arguments */
{
const char *name; /* Backend name */
@@ -231,7 +233,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
DNSServiceRef main_ref, /* Main service reference */
fax_ipp_ref, /* IPP fax service reference */
ipp_ref, /* IPP service reference */
-@@ -133,12 +281,11 @@ main(int argc, /* I - Number of comm
+@@ -138,12 +285,11 @@ main(int argc, /* I - Number of comm
pdl_datastream_ref, /* AppSocket service reference */
printer_ref, /* LPD service reference */
riousbprint_ref; /* Remote IO service reference */
@@ -249,7 +251,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
-@@ -198,6 +345,49 @@ main(int argc, /* I - Number of comm
+@@ -203,6 +349,49 @@ main(int argc, /* I - Number of comm
* Browse for different kinds of printers...
*/
@@ -299,7 +301,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
{
perror("ERROR: Unable to create service connection");
-@@ -258,6 +448,7 @@ main(int argc, /* I - Number of comm
+@@ -263,6 +452,7 @@ main(int argc, /* I - Number of comm
riousbprint_ref = main_ref;
DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
"_riousbprint._tcp", NULL, browse_callback, devices);
@@ -307,7 +309,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* Loop until we are killed...
-@@ -265,6 +456,9 @@ main(int argc, /* I - Number of comm
+@@ -270,6 +460,9 @@ main(int argc, /* I - Number of comm
while (!job_canceled)
{
@@ -317,7 +319,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
FD_ZERO(&input);
FD_SET(fd, &input);
-@@ -284,11 +478,35 @@ main(int argc, /* I - Number of comm
+@@ -289,11 +482,35 @@ main(int argc, /* I - Number of comm
}
else
{
@@ -353,7 +355,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
cups_device_t *best; /* Best matching device */
char device_uri[1024]; /* Device URI */
int count; /* Number of queries */
-@@ -302,6 +520,7 @@ main(int argc, /* I - Number of comm
+@@ -307,6 +524,7 @@ main(int argc, /* I - Number of comm
if (device->sent)
sent ++;
@@ -361,7 +363,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (device->ref)
count ++;
-@@ -333,14 +552,23 @@ main(int argc, /* I - Number of comm
+@@ -338,14 +556,23 @@ main(int argc, /* I - Number of comm
count ++;
}
}
@@ -386,7 +388,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
if (!best)
best = device;
-@@ -401,6 +629,7 @@ main(int argc, /* I - Number of comm
+@@ -406,6 +633,7 @@ main(int argc, /* I - Number of comm
}
@@ -394,7 +396,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'browse_callback()' - Browse devices.
*/
-@@ -489,6 +718,7 @@ browse_local_callback(
+@@ -494,6 +722,7 @@ browse_local_callback(
device->fullName);
device->sent = 1;
}
@@ -402,7 +404,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
-@@ -569,6 +799,41 @@ exec_backend(char **argv) /* I - Comman
+@@ -574,6 +803,41 @@ exec_backend(char **argv) /* I - Comman
/*
@@ -444,7 +446,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
* 'get_device()' - Create or update a device.
*/
-@@ -589,20 +854,7 @@ get_device(cups_array_t *devices, /* I -
+@@ -594,20 +858,7 @@ get_device(cups_array_t *devices, /* I -
*/
key.name = (char *)serviceName;
@@ -466,7 +468,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
for (device = cupsArrayFind(devices, &key);
device;
-@@ -622,8 +874,14 @@ get_device(cups_array_t *devices, /* I -
+@@ -627,8 +878,14 @@ get_device(cups_array_t *devices, /* I -
free(device->domain);
device->domain = strdup(replyDomain);
@@ -481,7 +483,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
free(device->fullName);
device->fullName = strdup(fullName);
}
-@@ -643,6 +901,9 @@ get_device(cups_array_t *devices, /* I -
+@@ -648,6 +905,9 @@ get_device(cups_array_t *devices, /* I -
device->domain = strdup(replyDomain);
device->type = key.type;
device->priority = 50;
@@ -491,7 +493,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
cupsArrayAdd(devices, device);
-@@ -650,13 +911,20 @@ get_device(cups_array_t *devices, /* I -
+@@ -655,13 +915,20 @@ get_device(cups_array_t *devices, /* I -
* Set the "full name" of this service, which is used for queries...
*/
@@ -512,7 +514,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'query_callback()' - Process query data.
*/
-@@ -680,7 +948,7 @@ query_callback(
+@@ -685,7 +952,7 @@ query_callback(
*ptr; /* Pointer into string */
cups_device_t dkey, /* Search key */
*device; /* Device */
@@ -521,7 +523,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
"interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -714,94 +982,233 @@ query_callback(
+@@ -719,94 +986,233 @@ query_callback(
if ((ptr = strstr(name, "._")) != NULL)
*ptr = '\0';
@@ -638,7 +640,8 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
else
- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
-+
+
+- for (device = cupsArrayFind(devices, &dkey);
+ avahi_service_resolver_free (resolver);
+}
+
@@ -713,8 +716,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+}
+#endif /* HAVE_AVAHI */
+
-
-- for (device = cupsArrayFind(devices, &dkey);
++
+/*
+ * 'find_device()' - Find a device from its name and domain.
+ */
@@ -817,7 +819,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
{
/*
* Add USB device ID information...
-@@ -856,6 +1263,10 @@ query_callback(
+@@ -861,6 +1267,10 @@ query_callback(
if (device->type == CUPS_DEVICE_PRINTER)
device->sent = 1;
}
@@ -828,7 +830,7 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
}
if (device->device_id)
-@@ -912,11 +1323,9 @@ query_callback(
+@@ -917,11 +1327,9 @@ query_callback(
}
}
@@ -841,9 +843,9 @@ diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
/*
* 'sigterm_handler()' - Handle termination signals...
*/
-diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-support.c
---- cups-1.5.2/cups/http-support.c.avahi-2-backend 2011-09-26 20:46:46.000000000 +0200
-+++ cups-1.5.2/cups/http-support.c 2012-02-06 11:09:08.327644629 +0100
+diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
+--- cups-1.5.3/cups/http-support.c.avahi-2-backend 2012-02-15 02:06:12.000000000 +0100
++++ cups-1.5.3/cups/http-support.c 2012-05-15 17:04:51.045944634 +0200
@@ -43,6 +43,10 @@
* http_copy_decode() - Copy and decode a URI.
* http_copy_encode() - Copy and encode a URI.
@@ -892,7 +894,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
/*
* 'httpAssembleURI()' - Assemble a uniform resource identifier from its
-@@ -1431,6 +1458,9 @@ _httpResolveURI(
+@@ -1434,6 +1461,9 @@ _httpResolveURI(
if (strstr(hostname, "._tcp"))
{
@@ -902,7 +904,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
#ifdef HAVE_DNSSD
# ifdef WIN32
# pragma comment(lib, "dnssd.lib")
-@@ -1449,6 +1479,17 @@ _httpResolveURI(
+@@ -1452,6 +1482,17 @@ _httpResolveURI(
fd_set input_set; /* Input set for select() */
struct timeval stimeout; /* Timeout value for select() */
#endif /* HAVE_POLL */
@@ -920,7 +922,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (options & _HTTP_RESOLVE_STDERR)
fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
-@@ -1485,9 +1526,16 @@ _httpResolveURI(
+@@ -1488,9 +1529,16 @@ _httpResolveURI(
if (domain)
*domain++ = '\0';
@@ -937,7 +939,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
resolved_uri[0] = '\0';
DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
-@@ -1501,6 +1549,7 @@ _httpResolveURI(
+@@ -1504,6 +1552,7 @@ _httpResolveURI(
uri = NULL;
@@ -945,7 +947,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
{
localref = ref;
-@@ -1608,6 +1657,36 @@ _httpResolveURI(
+@@ -1611,6 +1660,36 @@ _httpResolveURI(
DNSServiceRefDeallocate(ref);
}
@@ -982,7 +984,7 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if (options & _HTTP_RESOLVE_STDERR)
{
-@@ -1619,13 +1698,13 @@ _httpResolveURI(
+@@ -1622,13 +1701,13 @@ _httpResolveURI(
fputs("STATE: -connecting-to-device,offline-report\n", stderr);
}
@@ -998,10 +1000,10 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
if ((options & _HTTP_RESOLVE_STDERR) && !uri)
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
-@@ -1914,6 +1993,116 @@ http_resolve_cb(
+@@ -1916,6 +1995,115 @@ http_resolve_cb(
+ }
#endif /* HAVE_DNSSD */
-
+#ifdef HAVE_AVAHI
+/*
+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
@@ -1111,7 +1113,6 @@ diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-sup
+}
+#endif /* HAVE_AVAHI */
+
-+
+
/*
- * End of "$Id: http-support.c 10017 2011-09-26 18:46:46Z mike $".
- */
+ * End of "$Id: http-support.c 10284 2012-02-15 01:06:12Z mike $".
diff --git a/libre/cups-libre/cups-avahi-3-timeouts.patch b/libre/cups-libre/cups-avahi-3-timeouts.patch
index 1c547c042..daf852a0f 100644
--- a/libre/cups-libre/cups-avahi-3-timeouts.patch
+++ b/libre/cups-libre/cups-avahi-3-timeouts.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cupsd.h
---- cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
-+++ cups-1.5.0/scheduler/cupsd.h 2011-10-07 13:20:41.522867324 +0100
+diff -up cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.2/scheduler/cupsd.h
+--- cups-1.5.2/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
++++ cups-1.5.2/scheduler/cupsd.h 2012-03-14 15:06:36.509476983 +0000
@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
typedef void (*cupsd_selfunc_t)(void *data);
@@ -50,9 +50,9 @@ diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cups
/*
* End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
-diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.c
---- cups-1.5.0/scheduler/main.c.avahi-3-timeouts 2011-10-07 13:20:36.875954675 +0100
-+++ cups-1.5.0/scheduler/main.c 2011-10-07 13:20:41.524867282 +0100
+diff -up cups-1.5.2/scheduler/main.c.avahi-3-timeouts cups-1.5.2/scheduler/main.c
+--- cups-1.5.2/scheduler/main.c.avahi-3-timeouts 2012-03-14 15:04:17.655305548 +0000
++++ cups-1.5.2/scheduler/main.c 2012-03-14 15:06:36.511476986 +0000
@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
int launchd_idle_exit;
/* Idle exit on select timeout? */
@@ -116,8 +116,8 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.
+ * See if there are any scheduled timed callbacks to run.
+ */
+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo)
++ if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
++ (now + tmo_delay) < timeout)
+ {
+ timeout = tmo_delay;
+ why = "run a timed callback";
@@ -127,9 +127,9 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.
/*
* Check whether we are accepting new connections...
*/
-diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Makefile
---- cups-1.5.0/scheduler/Makefile.avahi-3-timeouts 2011-10-07 13:20:36.955953170 +0100
-+++ cups-1.5.0/scheduler/Makefile 2011-10-07 13:20:41.521867343 +0100
+diff -up cups-1.5.2/scheduler/Makefile.avahi-3-timeouts cups-1.5.2/scheduler/Makefile
+--- cups-1.5.2/scheduler/Makefile.avahi-3-timeouts 2012-03-14 15:04:17.685305586 +0000
++++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:06:36.508476980 +0000
@@ -39,7 +39,8 @@ CUPSDOBJS = \
server.o \
statbuf.o \
@@ -140,9 +140,9 @@ diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Mak
LIBOBJS = \
filter.o \
mime.o \
-diff -up cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts cups-1.5.0/scheduler/timeout.c
---- cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts 2011-10-07 13:20:41.525867259 +0100
-+++ cups-1.5.0/scheduler/timeout.c 2011-10-07 13:20:41.525867259 +0100
+diff -up cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts cups-1.5.2/scheduler/timeout.c
+--- cups-1.5.2/scheduler/timeout.c.avahi-3-timeouts 2012-03-14 15:06:36.552477037 +0000
++++ cups-1.5.2/scheduler/timeout.c 2012-03-14 15:06:36.552477037 +0000
@@ -0,0 +1,235 @@
+/*
+ * "$Id$"
diff --git a/libre/cups-libre/cups-avahi-4-poll.patch b/libre/cups-libre/cups-avahi-4-poll.patch
index 189e83da6..d7fa5fd56 100644
--- a/libre/cups-libre/cups-avahi-4-poll.patch
+++ b/libre/cups-libre/cups-avahi-4-poll.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.0/scheduler/avahi.c.avahi-4-poll cups-1.5.0/scheduler/avahi.c
---- cups-1.5.0/scheduler/avahi.c.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
-+++ cups-1.5.0/scheduler/avahi.c 2011-10-11 10:56:50.102288037 +0100
+diff -up cups-1.5.2/scheduler/avahi.c.avahi-4-poll cups-1.5.2/scheduler/avahi.c
+--- cups-1.5.2/scheduler/avahi.c.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.c 2012-03-14 15:07:29.477542381 +0000
@@ -0,0 +1,441 @@
+/*
+ * "$Id$"
@@ -443,9 +443,9 @@ diff -up cups-1.5.0/scheduler/avahi.c.avahi-4-poll cups-1.5.0/scheduler/avahi.c
+/*
+ * End of "$Id$".
+ */
-diff -up cups-1.5.0/scheduler/avahi.h.avahi-4-poll cups-1.5.0/scheduler/avahi.h
---- cups-1.5.0/scheduler/avahi.h.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
-+++ cups-1.5.0/scheduler/avahi.h 2011-10-11 10:56:50.119287724 +0100
+diff -up cups-1.5.2/scheduler/avahi.h.avahi-4-poll cups-1.5.2/scheduler/avahi.h
+--- cups-1.5.2/scheduler/avahi.h.avahi-4-poll 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:07:29.477542381 +0000
@@ -0,0 +1,69 @@
+/*
+ * "$Id$"
@@ -516,9 +516,9 @@ diff -up cups-1.5.0/scheduler/avahi.h.avahi-4-poll cups-1.5.0/scheduler/avahi.h
+/*
+ * End of "$Id$".
+ */
-diff -up cups-1.5.0/scheduler/Makefile.avahi-4-poll cups-1.5.0/scheduler/Makefile
---- cups-1.5.0/scheduler/Makefile.avahi-4-poll 2011-10-11 10:56:45.868365861 +0100
-+++ cups-1.5.0/scheduler/Makefile 2011-10-11 10:56:50.101288055 +0100
+diff -up cups-1.5.2/scheduler/Makefile.avahi-4-poll cups-1.5.2/scheduler/Makefile
+--- cups-1.5.2/scheduler/Makefile.avahi-4-poll 2012-03-14 15:06:36.508476980 +0000
++++ cups-1.5.2/scheduler/Makefile 2012-03-14 15:07:29.476542380 +0000
@@ -17,6 +17,7 @@ include ../Makedefs
CUPSDOBJS = \
diff --git a/libre/cups-libre/cups-avahi-5-services.patch b/libre/cups-libre/cups-avahi-5-services.patch
index 9713bbc53..820b3c32b 100644
--- a/libre/cups-libre/cups-avahi-5-services.patch
+++ b/libre/cups-libre/cups-avahi-5-services.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.0/cgi-bin/admin.c.avahi-5-services cups-1.5.0/cgi-bin/admin.c
---- cups-1.5.0/cgi-bin/admin.c.avahi-5-services 2011-05-20 04:49:49.000000000 +0100
-+++ cups-1.5.0/cgi-bin/admin.c 2011-10-19 11:53:32.123177998 +0100
+diff -up cups-1.5.2/cgi-bin/admin.c.avahi-5-services cups-1.5.2/cgi-bin/admin.c
+--- cups-1.5.2/cgi-bin/admin.c.avahi-5-services 2011-08-17 22:01:53.000000000 +0100
++++ cups-1.5.2/cgi-bin/admin.c 2012-03-14 15:08:25.701611799 +0000
@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
else
local_protocols[0] = '\0';
@@ -31,10 +31,75 @@ diff -up cups-1.5.0/cgi-bin/admin.c.avahi-5-services cups-1.5.0/cgi-bin/admin.c
#ifdef HAVE_LDAP
cgiSetVariable("HAVE_LDAP", "1");
-diff -up cups-1.5.0/scheduler/client.c.avahi-5-services cups-1.5.0/scheduler/client.c
---- cups-1.5.0/scheduler/client.c.avahi-5-services 2011-06-10 22:16:18.000000000 +0100
-+++ cups-1.5.0/scheduler/client.c 2011-10-19 11:53:32.127177926 +0100
-@@ -4987,7 +4987,7 @@ valid_host(cupsd_client_t *con) /* I -
+diff -up cups-1.5.2/scheduler/avahi.h.avahi-5-services cups-1.5.2/scheduler/avahi.h
+--- cups-1.5.2/scheduler/avahi.h.avahi-5-services 2012-03-14 15:07:29.477542381 +0000
++++ cups-1.5.2/scheduler/avahi.h 2012-03-14 15:08:25.701611799 +0000
+@@ -3,7 +3,7 @@
+ *
+ * Avahi poll implementation for the CUPS scheduler.
+ *
+- * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Copyright (C) 2010, 2011, 2012 Red Hat, Inc.
+ * Authors:
+ * Tim Waugh <twaugh@redhat.com>
+ *
+@@ -32,37 +32,40 @@
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <config.h>
++#ifndef _CUPS_AVAHI_H_
++# define _CUPS_AVAHI_H_
+
+-#ifdef HAVE_AVAHI
+-# include <avahi-client/client.h>
+-# include <avahi-client/publish.h>
+-#endif /* HAVE_AVAHI */
++/*
++ * Include necessary headers...
++ */
+
+-#ifdef HAVE_AUTHORIZATION_H
+-# include <Security/Authorization.h>
+-#endif /* HAVE_AUTHORIZATION_H */
++# include <config.h>
+
++# ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++# endif /* HAVE_AVAHI */
+
+-#ifdef HAVE_AVAHI
++# ifdef HAVE_AVAHI
+ typedef struct
+ {
+ AvahiPoll api;
+ cups_array_t *watched_fds;
+ cups_array_t *timeouts;
+ } AvahiCupsPoll;
+-#endif /* HAVE_AVAHI */
++# endif /* HAVE_AVAHI */
+
+ /*
+ * Prototypes...
+ */
+
+-#ifdef HAVE_AVAHI
++# ifdef HAVE_AVAHI
+ extern AvahiCupsPoll * avahi_cups_poll_new(void);
+ extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
+ extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
+-#endif /* HAVE_AVAHI */
++# endif /* HAVE_AVAHI */
+
++#endif /* !_CUPS_AVAHI_H_ */
+
+ /*
+ * End of "$Id$".
+diff -up cups-1.5.2/scheduler/client.c.avahi-5-services cups-1.5.2/scheduler/client.c
+--- cups-1.5.2/scheduler/client.c.avahi-5-services 2012-01-13 23:00:22.000000000 +0000
++++ cups-1.5.2/scheduler/client.c 2012-03-14 15:08:25.703611797 +0000
+@@ -4989,7 +4989,7 @@ valid_host(cupsd_client_t *con) /* I -
!strncmp(host, "[::1]:", 6));
}
@@ -43,7 +108,7 @@ diff -up cups-1.5.0/scheduler/client.c.avahi-5-services cups-1.5.0/scheduler/cli
/*
* Check if the hostname is something.local (Bonjour); if so, allow it.
*/
-@@ -4996,7 +4996,7 @@ valid_host(cupsd_client_t *con) /* I -
+@@ -4998,7 +4998,7 @@ valid_host(cupsd_client_t *con) /* I -
(!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
!_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
return (1);
@@ -52,10 +117,10 @@ diff -up cups-1.5.0/scheduler/client.c.avahi-5-services cups-1.5.0/scheduler/cli
/*
* Check if the hostname is an IP address...
-diff -up cups-1.5.0/scheduler/conf.c.avahi-5-services cups-1.5.0/scheduler/conf.c
---- cups-1.5.0/scheduler/conf.c.avahi-5-services 2011-10-19 11:53:31.895182225 +0100
-+++ cups-1.5.0/scheduler/conf.c 2011-10-19 11:53:32.131177850 +0100
-@@ -651,7 +651,7 @@ cupsdReadConfiguration(void)
+diff -up cups-1.5.2/scheduler/conf.c.avahi-5-services cups-1.5.2/scheduler/conf.c
+--- cups-1.5.2/scheduler/conf.c.avahi-5-services 2012-03-14 15:04:17.636305526 +0000
++++ cups-1.5.2/scheduler/conf.c 2012-03-14 15:08:25.706611803 +0000
+@@ -652,7 +652,7 @@ cupsdReadConfiguration(void)
Browsing = CUPS_DEFAULT_BROWSING;
DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
@@ -64,9 +129,9 @@ diff -up cups-1.5.0/scheduler/conf.c.avahi-5-services cups-1.5.0/scheduler/conf.
cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
#endif /* HAVE_DNSSD */
-diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dirsvc.c
---- cups-1.5.0/scheduler/dirsvc.c.avahi-5-services 2011-10-19 11:53:32.011180075 +0100
-+++ cups-1.5.0/scheduler/dirsvc.c 2011-10-19 11:53:58.916681461 +0100
+diff -up cups-1.5.2/scheduler/dirsvc.c.avahi-5-services cups-1.5.2/scheduler/dirsvc.c
+--- cups-1.5.2/scheduler/dirsvc.c.avahi-5-services 2012-03-14 15:04:17.674305572 +0000
++++ cups-1.5.2/scheduler/dirsvc.c 2012-03-14 15:08:25.709611806 +0000
@@ -27,6 +27,7 @@
* ldap_connect() - Start new LDAP connection
* ldap_reconnect() - Reconnect to LDAP Server
@@ -799,15 +864,31 @@ diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dir
/*
* De-register the individual printers
-@@ -2906,6 +3292,7 @@ dnssdStop(void)
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- dnssdDeregisterPrinter(p);
-
-+#ifdef HAVE_DNSSD
- /*
+@@ -2910,12 +3296,23 @@ dnssdStop(void)
* Shutdown the rest of the service refs...
*/
-@@ -2926,14 +3313,17 @@ dnssdStop(void)
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ {
+ DNSServiceRefDeallocate(WebIFRef);
+ WebIFRef = NULL;
+ }
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (AvahiWebIFGroup)
++ {
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ avahi_entry_group_free (AvahiWebIFGroup);
++ AvahiWebIFGroup = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
++#ifdef HAVE_DNSSD
+ if (RemoteRef)
+ {
+ DNSServiceRefDeallocate(RemoteRef);
+@@ -2926,14 +3323,17 @@ dnssdStop(void)
DNSServiceRefDeallocate(DNSSDRef);
DNSSDRef = NULL;
@@ -825,7 +906,7 @@ diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dir
/*
* 'dnssdUpdate()' - Handle DNS-SD queries.
*/
-@@ -2955,6 +3345,153 @@ dnssdUpdate(void)
+@@ -2955,6 +3355,153 @@ dnssdUpdate(void)
#endif /* HAVE_DNSSD */
@@ -979,9 +1060,9 @@ diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dir
/*
* 'get_auth_info_required()' - Get the auth-info-required value to advertise.
*/
-diff -up cups-1.5.0/scheduler/dirsvc.h.avahi-5-services cups-1.5.0/scheduler/dirsvc.h
---- cups-1.5.0/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
-+++ cups-1.5.0/scheduler/dirsvc.h 2011-10-19 11:53:32.138177721 +0100
+diff -up cups-1.5.2/scheduler/dirsvc.h.avahi-5-services cups-1.5.2/scheduler/dirsvc.h
+--- cups-1.5.2/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
++++ cups-1.5.2/scheduler/dirsvc.h 2012-03-14 15:08:25.711611808 +0000
@@ -31,6 +31,10 @@
# endif /* HAVE_LDAP_SSL_H */
#endif /* HAVE_LDAP */
@@ -1054,10 +1135,10 @@ diff -up cups-1.5.0/scheduler/dirsvc.h.avahi-5-services cups-1.5.0/scheduler/dir
#ifdef HAVE_LDAP
extern void cupsdUpdateLDAPBrowse(void);
#endif /* HAVE_LDAP */
-diff -up cups-1.5.0/scheduler/ipp.c.avahi-5-services cups-1.5.0/scheduler/ipp.c
---- cups-1.5.0/scheduler/ipp.c.avahi-5-services 2011-10-19 11:53:31.978180686 +0100
-+++ cups-1.5.0/scheduler/ipp.c 2011-10-19 11:53:32.147177555 +0100
-@@ -6096,7 +6096,7 @@ copy_printer_attrs(
+diff -up cups-1.5.2/scheduler/ipp.c.avahi-5-services cups-1.5.2/scheduler/ipp.c
+--- cups-1.5.2/scheduler/ipp.c.avahi-5-services 2012-03-14 15:04:17.665305560 +0000
++++ cups-1.5.2/scheduler/ipp.c 2012-03-14 15:08:25.715611813 +0000
+@@ -6099,7 +6099,7 @@ copy_printer_attrs(
ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
ippTimeToDate(curtime));
@@ -1066,7 +1147,7 @@ diff -up cups-1.5.0/scheduler/ipp.c.avahi-5-services cups-1.5.0/scheduler/ipp.c
if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
{
if (printer->reg_name)
-@@ -6106,7 +6106,7 @@ copy_printer_attrs(
+@@ -6109,7 +6109,7 @@ copy_printer_attrs(
ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
"printer-dns-sd-name", 0);
}
@@ -1075,9 +1156,9 @@ diff -up cups-1.5.0/scheduler/ipp.c.avahi-5-services cups-1.5.0/scheduler/ipp.c
if (!ra || cupsArrayFind(ra, "printer-error-policy"))
ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
-diff -up cups-1.5.0/scheduler/main.c.avahi-5-services cups-1.5.0/scheduler/main.c
---- cups-1.5.0/scheduler/main.c.avahi-5-services 2011-10-19 11:53:32.101178406 +0100
-+++ cups-1.5.0/scheduler/main.c 2011-10-19 11:53:32.151177479 +0100
+diff -up cups-1.5.2/scheduler/main.c.avahi-5-services cups-1.5.2/scheduler/main.c
+--- cups-1.5.2/scheduler/main.c.avahi-5-services 2012-03-14 15:06:36.511476986 +0000
++++ cups-1.5.2/scheduler/main.c 2012-03-14 15:08:25.718611817 +0000
@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
cupsd_listener_t *lis; /* Current listener */
time_t current_time, /* Current time */
@@ -1116,9 +1197,9 @@ diff -up cups-1.5.0/scheduler/main.c.avahi-5-services cups-1.5.0/scheduler/main.
#endif /* HAVE_AVAHI */
#ifndef __APPLE__
-diff -up cups-1.5.0/scheduler/printers.c.avahi-5-services cups-1.5.0/scheduler/printers.c
---- cups-1.5.0/scheduler/printers.c.avahi-5-services 2011-10-19 11:53:31.916181835 +0100
-+++ cups-1.5.0/scheduler/printers.c 2011-10-19 11:53:32.156177388 +0100
+diff -up cups-1.5.2/scheduler/printers.c.avahi-5-services cups-1.5.2/scheduler/printers.c
+--- cups-1.5.2/scheduler/printers.c.avahi-5-services 2012-03-14 15:04:17.646305537 +0000
++++ cups-1.5.2/scheduler/printers.c 2012-03-14 15:08:25.720611819 +0000
@@ -883,9 +883,9 @@ cupsdDeletePrinter(
cupsdClearString(&p->alert);
cupsdClearString(&p->alert_description);
@@ -1149,9 +1230,9 @@ diff -up cups-1.5.0/scheduler/printers.c.avahi-5-services cups-1.5.0/scheduler/p
}
-diff -up cups-1.5.0/scheduler/printers.h.avahi-5-services cups-1.5.0/scheduler/printers.h
---- cups-1.5.0/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
-+++ cups-1.5.0/scheduler/printers.h 2011-10-19 11:53:32.157177369 +0100
+diff -up cups-1.5.2/scheduler/printers.h.avahi-5-services cups-1.5.2/scheduler/printers.h
+--- cups-1.5.2/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
++++ cups-1.5.2/scheduler/printers.h 2012-03-14 15:08:25.721611820 +0000
@@ -16,6 +16,9 @@
#ifdef HAVE_DNSSD
# include <dns_sd.h>
diff --git a/libre/cups-libre/cups-no-gzip-man.patch b/libre/cups-libre/cups-no-gzip-man.patch
new file mode 100644
index 000000000..6786c4430
--- /dev/null
+++ b/libre/cups-libre/cups-no-gzip-man.patch
@@ -0,0 +1,18 @@
+diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4
+--- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200
+@@ -69,10 +69,10 @@ case "$uname" in
+ ;;
+ Linux* | GNU* | Darwin*)
+ # Linux, GNU Hurd, and Mac OS X
+- MAN1EXT=1.gz
+- MAN5EXT=5.gz
+- MAN7EXT=7.gz
+- MAN8EXT=8.gz
++ MAN1EXT=1
++ MAN5EXT=5
++ MAN7EXT=7
++ MAN8EXT=8
+ MAN8DIR=8
+ ;;
+ *)
diff --git a/libre/cups-libre/rePKGBUILD b/libre/cups-libre/rePKGBUILD
index 2ae999f9c..5f55000cc 100644
--- a/libre/cups-libre/rePKGBUILD
+++ b/libre/cups-libre/rePKGBUILD
@@ -5,7 +5,6 @@
# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
source PKGBUILD
-CARCH=x86_64
unset build package md5sums source check
_repo=extra
pkgname='cups-libre'
@@ -46,7 +45,6 @@ package_cups-libre() {
'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
'xdg-utils: xdg .desktop file support')
- find ${srcdir} -type l -maxdepth 1 -delete
- cd ${srcdir}
- cp -a ./* ${pkgdir}
+ find ${srcdir} -maxdepth 1 -type l -delete
+ cp -a ${srcdir}/* ${pkgdir}
}
diff --git a/libre/dvdrip-libre/PKGBUILD b/libre/dvdrip-libre/PKGBUILD
new file mode 100644
index 000000000..b9cd0c8ff
--- /dev/null
+++ b/libre/dvdrip-libre/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id$
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Fredrik Hammar <Horney_C86@Hotmail.com>
+# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
+
+_pkgname=dvdrip
+pkgname=dvdrip-libre
+pkgver=0.98.11
+pkgrel=10
+pkgdesc="A Gtk frontend for transcode writen in Perl, without opcional hal and unfree rar dependencies"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.exit1.org/${_pkgname}/"
+install=${_pkgname}.install
+depends=('perl-gtk2-ex-formfactory' 'transcode' 'imagemagick'
+ 'perl-libintl-perl' 'desktop-file-utils' 'perl-event-execflow')
+optdepends=('xvid4conf: xvid4 configuration tool'
+ 'lsdvd: Needed for faster DVD TOC reading'
+ 'mplayer-libre: Needed for subtitle vobsub viewing'
+ 'mplayer-vaapi-libre: Needed for subtitle vobsub viewing'
+ 'mplayer2: Needed for subtitle vobsub viewing'
+ 'ogmtools: Needed for OGG/Vorbis and for chapter progress bar'
+ 'xine-ui: Can be used to view DVD'\''s/files'
+ 'fping: Only for cluster mode master')
+source=("http://www.exit1.org/${_pkgname}/dist/${_pkgname}-${pkgver}.tar.gz"
+ "${_pkgname}.desktop" "libre.patch")
+options=('!emptydirs' '!makeflags')
+replaces=("${_pkgname}")
+conflicts=("${_pkgname}")
+provides=("${_pkgname}=${pkgver}")
+md5sums=('6dfa4199d451757a37eea233a07da4c0'
+ 'e91cf411928fd0500d07a0022b4ef546'
+ 'bc006d3b3447f8b62ae6ba29773a064b')
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ patch -Np1 -i "$srcdir/libre.patch"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ make install DESTDIR="${pkgdir}"
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ install -Dm644 ${srcdir}/${_pkgname}.desktop "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
+ install -Dm 644 COPYRIGHT "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
+}
diff --git a/libre/dvdrip-libre/dvdrip.desktop b/libre/dvdrip-libre/dvdrip.desktop
new file mode 100644
index 000000000..dd19b4aae
--- /dev/null
+++ b/libre/dvdrip-libre/dvdrip.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=dvd::rip
+Comment=DVD Ripper and Encoder - Backup and compression utility for DVDs
+Exec=/usr/bin/vendor_perl/dvdrip
+Icon=/usr/share/perl5/vendor_perl/Video/DVDRip/icon.xpm
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;Video;
diff --git a/libre/dvdrip-libre/dvdrip.install b/libre/dvdrip-libre/dvdrip.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/libre/dvdrip-libre/dvdrip.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/dvdrip-libre/libre.patch b/libre/dvdrip-libre/libre.patch
new file mode 100644
index 000000000..cc24ef467
--- /dev/null
+++ b/libre/dvdrip-libre/libre.patch
@@ -0,0 +1,81 @@
+diff -Naur dvdrip-0.98.11.orig/lib/Video/DVDRip/Config.pm dvdrip-0.98.11/lib/Video/DVDRip/Config.pm
+--- dvdrip-0.98.11.orig/lib/Video/DVDRip/Config.pm 2009-02-28 16:28:00.000000000 -0200
++++ dvdrip-0.98.11/lib/Video/DVDRip/Config.pm 2012-05-15 15:41:34.554118050 -0300
+@@ -233,13 +233,6 @@
+ ],
+ rules => "executable-command",
+ },
+- rar_command => {
+- label => __ "rar command (for vobsub compression)",
+- type => 'string',
+- value => 'rar',
+- presets => [ 'rar', ],
+- rules => "executable-command",
+- },
+ base_project_dir => {
+ label => __ "Default data base directory",
+ type => 'dir',
+@@ -355,7 +348,6 @@
+ __ "Commands" => [
+ qw(
+ play_dvd_command play_file_command
+- play_stdin_command rar_command
+ )
+ ],
+ __ "Cluster options" => [
+@@ -907,7 +899,6 @@
+ sub test_play_dvd_command { _executable(@_) }
+ sub test_play_file_command { _executable(@_) }
+ sub test_play_stdin_command { _executable(@_) }
+-sub test_rar_command { _executable(@_) }
+ sub test_dvd_device { _exists(@_) }
+ sub test_writer_device { _exists(@_) }
+ sub test_base_project_dir { _abs_and_writable(@_) }
+diff -Naur dvdrip-0.98.11.orig/lib/Video/DVDRip/Depend.pm dvdrip-0.98.11/lib/Video/DVDRip/Depend.pm
+--- dvdrip-0.98.11.orig/lib/Video/DVDRip/Depend.pm 2009-02-28 16:28:00.000000000 -0200
++++ dvdrip-0.98.11/lib/Video/DVDRip/Depend.pm 2012-05-15 15:30:13.506056523 -0300
+@@ -171,22 +171,6 @@
+ min => "0.15",
+ suggested => "0.15",
+ },
+- rar => {
+- order => ++$ORDER,
+- command => Video::DVDRip::Depend->config('rar_command'),
+- comment => __ "Needed for compressed vobsub subtitles",
+- optional => 1,
+- version_cmd => "",
+- get_version => sub {
+- my $cmd = Video::DVDRip::Depend->config('rar_command')." '-?'";
+- qx[$cmd 2>&1] =~ /rar\s+(\d+\.\d+(\.\d+)?)/i;
+- return $1;
+- },
+- convert => 'default',
+- min => "2.71",
+- max => "2.99",
+- suggested => "2.71",
+- },
+ mplayer => {
+ order => ++$ORDER,
+ command => "mplayer",
+@@ -284,21 +268,6 @@
+ min => "2.2",
+ suggested => "2.4",
+ },
+- hal => {
+- order => ++$ORDER,
+- command => "lshal",
+- comment => __"Used for DVD device scanning",
+- optional => 1,
+- version_cmd => "lshal -v",
+- get_version => sub {
+- my ($cmd) = @_;
+- qx[$cmd 2>&1] =~ /version\s+(\d+\.\d+(\.\d+)?)/i;
+- return $1;
+- },
+- convert => 'default',
+- min => "0.5",
+- suggested => "0.5.7",
+- },
+ );
+
+ sub convert_default {
diff --git a/libre/file-roller-libre/PKGBUILD b/libre/file-roller-libre/PKGBUILD
index 14e9eab77..85e605002 100644
--- a/libre/file-roller-libre/PKGBUILD
+++ b/libre/file-roller-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 156381 2012-04-17 20:08:15Z ibiru $
+# $Id: PKGBUILD 159054 2012-05-15 11:14:08Z 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.4.1
+pkgver=3.4.2
pkgrel=1
pkgdesc="Archive manipulator for GNOME"
arch=('i686' 'x86_64' 'mips64el')
@@ -25,7 +25,7 @@ options=('!libtool' '!emptydirs')
install=file-roller.install
url="http://www.gnome.org"
source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgname/${pkgver%.*}/$_pkgname-$pkgver.tar.xz)
-sha256sums=('94600d880ce65ab171a174a83519e4911f570fd000c33497b4805100029ebd8b')
+sha256sums=('7085a351c55171718bbf5b9b614a7b9606efb8cbd2eb44cc6c538545444d0cdd')
build() {
cd $_pkgname-$pkgver
diff --git a/libre/filesystem/PKGBUILD b/libre/filesystem/PKGBUILD
index 90b39d121..94d5390ab 100644
--- a/libre/filesystem/PKGBUILD
+++ b/libre/filesystem/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 155345 2012-04-01 23:43:12Z tomegun $
+# $Id: PKGBUILD 158070 2012-05-02 11:53:48Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=filesystem
pkgver=2012.2
-pkgrel=4
+pkgrel=5
pkgdesc='Base filesystem for Parabola'
arch=('any')
license=('GPL')
@@ -43,7 +43,7 @@ package() {
#
# setup root filesystem
#
- for d in bin boot dev etc home lib/modules media mnt sbin usr var opt srv/http sys run; do
+ for d in bin boot dev etc home media mnt sbin usr var opt srv/http sys run; do
install -d -m755 ${d}
done
install -d -m555 proc
diff --git a/libre/foomatic-filters-libre/PKGBUILD b/libre/foomatic-filters-libre/PKGBUILD
new file mode 100644
index 000000000..1149a2558
--- /dev/null
+++ b/libre/foomatic-filters-libre/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 155770 2012-04-06 10:08:29Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase="foomatic"
+pkgname=('foomatic-filters-libre')
+arch=('i686' 'x86_64' 'mips64el') # needs to be changed in the subpackages when makepkg will support it
+_snapdate=20120406
+_filtersver=4.0.15
+pkgver=${_filtersver}_${_snapdate}
+pkgrel=1.2
+epoch=1
+makedepends=('cups' 'perl' 'libxml2' 'enscript' 'perl' 'net-snmp' 'bash')
+#_url=http://www.openprinting.org/download/foomatic/ # switch after build
+_url=ftp://ftp.archlinux.org/other/foomatic/
+source=(${_url}/$pkgbase-filters-${_filtersver}.tar.gz)
+url="http://www.linuxprinting.org/foomatic.html"
+options=('!emptydirs')
+md5sums=('1b7efcdc57340915647daa5b5c15b0ef')
+
+package_foomatic-filters-libre() {
+
+ pkgdesc="Foomatic - Filter scripts used by the printer spoolers to convert the incoming PostScript data into the printer's native format."
+# arch=('i686' 'x86_64')
+ license=('GPL')
+ backup=(etc/foomatic/filter.conf)
+ depends=('glibc' 'dbus-core')
+ provides=("foomatic-filters=${pkgver}")
+ replaces=('foomatic-filters')
+ conflicts=('foomatic-filters')
+ optdepends=('perl: for the "beh" Backend End Handler used by cups'
+ 'net-snmp: certain (mostly HP) printers need it to work')
+
+ cd ${srcdir}/foomatic-filters-${_filtersver}
+ rm -rfv test/{lsbfuncs,shfuncs,tcm,tetapi}.sh
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/libre/foomatic/PKGBUILD b/libre/foomatic/PKGBUILD
deleted file mode 100644
index 5446bb579..000000000
--- a/libre/foomatic/PKGBUILD
+++ /dev/null
@@ -1,92 +0,0 @@
-# $Id: PKGBUILD 155771 2012-04-06 10:09:10Z andyrtr $
-# Maintainer: Andreas Radke <andyrtr@archlinux.org>
-
-pkgbase="foomatic"
-pkgname=('foomatic-db' 'foomatic-filters-libre' 'foomatic-db-engine')
-arch=('i686' 'x86_64' 'mips64el') # needs to be changed in the subpackages when makepkg will support it
-_snapdate=20120406
-_filtersver=4.0.15
-_enginever=4.0.8
-pkgver=${_filtersver}_${_snapdate}
-pkgrel=1
-epoch=1
-makedepends=('cups' 'perl' 'libxml2' 'enscript' 'perl' 'net-snmp' 'bash')
-#_url=http://www.openprinting.org/download/foomatic/ # switch after build
-_url=ftp://ftp.archlinux.org/other/foomatic/
-source=(https://repo.parabolagnulinux.org/other/${pkgbase}-filters-libre-${_filtersver}.tar.gz
- ${_url}/$pkgbase-db-engine-${_enginever}.tar.gz
- ${_url}/$pkgbase-db-4.0-${_snapdate}.tar.gz)
-url="http://www.linuxprinting.org/foomatic.html"
-options=('!emptydirs')
-
-mksource() {
- if [ ! -d ${pkgbase}-filters-libre-${_filtersver}/ ]; then
- wget -O - http://www.openprinting.org/download/foomatic/foomatic-filters-${_filtersver}.tar.gz | \
- bsdtar xzf -
-
- mv ${pkgbase}-filters{,-libre}-${_filtersver}/
- fi
-
- rm -rfv ${pkgbase}-filters-libre-${_filtersver}/test/{lsbfuncs,shfuncs,tcm,tetapi}.sh
- bsdtar cvzf ${pkgbase}-filters-libre-${_filtersver}.tar.gz ${pkgbase}-filters-libre-${_filtersver}/
-}
-
-package_foomatic-db() {
-
- pkgdesc="Foomatic - The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files."
-# arch=('any')
- license=('GPL' 'custom')
- depends=('perl' 'libxml2')
- replaces=('foomatic-db-ppd' 'foomatic-db-hpijs')
- conflicts=('foomatic-db-ppd' 'foomatic-db-hpijs')
- provides=('foomatic-db-hpijs')
-
- cd ${srcdir}/${pkgname}-${_snapdate}
- ./configure --prefix=/usr
- make DESTDIR=${pkgdir} install
- install -v -Dm644 ${srcdir}/${pkgname}-${_snapdate}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
-}
-
-package_foomatic-filters-libre() {
-
- pkgdesc="Foomatic - Filter scripts used by the printer spoolers to convert the incoming PostScript data into the printer's native format."
-# arch=('i686' 'x86_64')
- license=('GPL')
- backup=(etc/foomatic/filter.conf)
- depends=('glibc')
- provides=("foomatic-filters=${pkgver}")
- replaces=('foomatic-filters')
- conflicts=('foomatic-filters')
- optdepends=('perl: for the "beh" Backend End Handler used by cups'
- 'net-snmp: certain (mostly HP) printers need it to work')
-
- cd ${srcdir}/${pkgname}-${_filtersver}
- ./configure --prefix=/usr --sysconfdir=/etc
- make
- make DESTDIR=${pkgdir} install
-}
-
-package_foomatic-db-engine() {
-
- pkgdesc="Foomatic - Foomatic's database engine generates PPD files from the data in Foomatic's XML database. It also contains scripts to directly generate print queues and handle jobs."
-# arch=(i686 x86_64)
- license=('GPL')
- depends=('perl' 'libxml2' 'foomatic-filters' 'bash')
-
- cd ${srcdir}/foomatic-db-engine-${_enginever}
- ./configure --prefix=/usr
- make
- eval `perl -V:archname`
- make DESTDIR=${pkgdir} \
- INSTALLARCHLIB=/usr/lib/perl5/vendor_perl/ \
- INSTALLSITELIB=/usr/lib/perl5/vendor_perl/ \
- INSTALLSITEARCH=/usr/lib/perl5/vendor_perl/ install
- /usr/bin/find ${pkgdir} -name '.packlist' -delete
- # fix permissions
- chmod 755 ${pkgdir}/usr/lib{,/perl5,/perl5/vendor_perl}
-}
-
-
-md5sums=('957a07820f47804ce76dbb59cd79cd1b'
- '5283cd5125a96dc0b35d896326512b1a'
- 'ccb72c201e14bfc5eb23ea839ecc0623')
diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD
index 049eed1df..b89a3095b 100644
--- a/libre/ghostscript-libre/PKGBUILD
+++ b/libre/ghostscript-libre/PKGBUILD
@@ -1,11 +1,12 @@
-# $Id: PKGBUILD 146976 2012-01-19 20:56:52Z andyrtr $
+# $Id: PKGBUILD 149732 2012-02-09 20:34:33Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer (Parabola): xihh
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+_pkgname=ghostscript
pkgname=ghostscript-libre
-pkgver=9.04
-_srcpkgrel=5
-pkgrel=6
+pkgver=9.05
+pkgrel=1
pkgdesc="An interpreter for the PostScript language without non-free files"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL3') #non free files removed
@@ -17,22 +18,15 @@ conflicts=('ghostscript')
replaces=('ghostscript-lrpng' 'ghostscript')
provides=('ghostscript-lprng' "ghostscript=$pkgver")
url="http://www.ghostscript.com/"
-source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${_srcpkgrel}-any.src.tar.xz
- ghostscript-cups-rgbw.patch
- ghostscript-gpl-9.04-freetype-underlinking.patch)
+source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2)
options=('!libtool' '!makeflags')
-md5sums=('ac8f77c94a6b5d5f0170c2e6db38c6bb'
- 'bc56eb8c5fef0ecf964f6b3e9b7e65ae'
- 'a1928c3e4459dcfee0aaa4b38fadba57')
+md5sums=('8bcef1f33ddf8a4d12b2cf8da385c191')
build() {
cd ${srcdir}/ghostscript-${pkgver}
- # fix broken color printing https://bugs.archlinux.org/task/25519
- patch -Np1 -i ${srcdir}/ghostscript-cups-rgbw.patch
-
- # fix a linking issue
- patch -Np1 -i ${srcdir}/ghostscript-gpl-9.04-freetype-underlinking.patch
+ # delete non-free packages
+ grep -l "are not altered" Resource/CMap/* | xargs rm -fv
# force it to use system-libs
rm -rf jpeg libpng zlib jasper expat tiff lcms freetype
@@ -49,6 +43,7 @@ build() {
--enable-fontconfig \
--enable-freetype \
--without-luratech \
+ --with-system-libtiff \
--disable-compile-inits #--help # needed for linking with system-zlib
make
@@ -68,8 +63,8 @@ package() {
# install missing doc files # http://bugs.archlinux.org/task/18023
install -m 644 ${srcdir}/ghostscript-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} ${pkgdir}/usr/share/ghostscript/$pkgver/doc/
- mkdir -p ${pkgdir}/usr/share/licenses/${pkgname}
- install -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/
+ mkdir -p ${pkgdir}/usr/share/licenses/${_pkgname}
+ install -m644 LICENSE ${pkgdir}/usr/share/licenses/${_pkgname}/
# remove unwanted localized man-pages
rm -rf $pkgdir/usr/share/man/[^man1]*
diff --git a/libre/ghostscript-libre/SRCBUILD b/libre/ghostscript-libre/SRCBUILD
deleted file mode 100644
index dc28e857e..000000000
--- a/libre/ghostscript-libre/SRCBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id: PKGBUILD 123066 2011-05-07 23:01:49Z stephane $
-# Maintainer: AndyRTR <andyrtr@archlinux.org>
-# Maintainer (Parabola): xihh
-
-pkgname=ghostscript-libre
-pkgver=9.04
-pkgrel=5
-pkgdesc="An interpreter for the PostScript language without non-free files"
-arch=('any')
-license=('GPL3') #non free files removed
-url="http://www.ghostscript.com/"
-source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2)
-md5sums=('9f6899e821ab6d78ab2c856f10fa3023')
-options=(!strip !docs !libtool !emptydirs !zipman !purge)
-
-build() {
- cd ${srcdir}/ghostscript-${pkgver}
-
- export PKGEXT=.src.tar.xz
-
- # delete non-free packages
- grep -l "are not altered" Resource/CMap/* | xargs rm -fv
-}
-
-package() {
- cd ${srcdir}
- export PKGEXT=.src.tar.xz
- export PKGDEST=${startdir}
-
- mv ghostscript-${pkgver} ${pkgdir}/
-
-}
diff --git a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch
deleted file mode 100644
index f6ae2dae7..000000000
--- a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-diff -up ghostscript-9.04/cups/gdevcups.c.cups-rgbw ghostscript-9.04/cups/gdevcups.c
---- ghostscript-9.04/cups/gdevcups.c.cups-rgbw 2011-08-05 12:12:21.000000000 +0100
-+++ ghostscript-9.04/cups/gdevcups.c 2011-08-22 10:54:24.614010581 +0100
-@@ -225,6 +225,7 @@ typedef struct gx_device_cups_s
- unsigned short EncodeLUT[gx_max_color_value + 1];/* RGB value to output color LUT */
- int Density[CUPS_MAX_VALUE + 1];/* Density LUT */
- int Matrix[3][3][CUPS_MAX_VALUE + 1];/* Color transform matrix LUT */
-+ int user_icc;
- int cupsRasterVersion;
-
- /* Used by cups_put_params(): */
-@@ -426,6 +427,7 @@ gx_device_cups gs_cups_device =
- {0x00}, /* EncodeLUT */
- {0x00}, /* Density */
- {0x00}, /* Matrix */
-+ 0,
- 3 /* cupsRasterVersion */
- };
-
-@@ -1182,15 +1184,18 @@ cups_map_cmyk(gx_device *pdev, /* I - D
-
- case CUPS_CSPACE_RGB :
- case CUPS_CSPACE_RGBW :
-+ c0 = c + k;
-+ c1 = m + k;
-+ c2 = y + k;
- if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
-- c0 = c;
-- c1 = m;
-- c2 = y;
-- c3 = k;
-- } else {
-- c0 = c + k;
-- c1 = m + k;
-- c2 = y + k;
-+ if ((k >= frac_1 - 1) ||
-+ ((c0 >= frac_1) && (c1 >= frac_1) && (c2 >= frac_1))) {
-+ c0 = frac_1;
-+ c1 = frac_1;
-+ c2 = frac_1;
-+ c3 = frac_1;
-+ } else
-+ c3 = 0;
- }
-
- if (c0 < 0)
-@@ -1212,11 +1217,12 @@ cups_map_cmyk(gx_device *pdev, /* I - D
- out[2] = frac_1 - (frac)cups->Density[c2];
-
- if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
-- if (c3 < 0)
-- c3 = 0;
-- else if (c3 > frac_1)
-- c3 = frac_1;
-- out[3] = frac_1 - (frac)cups->Density[c3];
-+ if (c3 == 0)
-+ out[3] = frac_1;
-+ else if (c3 == frac_1)
-+ out[3] = 0;
-+ else
-+ out[3] = frac_1;
- }
- break;
-
-@@ -2034,10 +2040,15 @@ cups_map_color_rgb(gx_device *pdev,
- * cups->DecodeLUT actually maps to RGBW, not CMYK...
- */
-
-- k = cups->DecodeLUT[c3];
-- c = cups->DecodeLUT[c0] + k - gx_max_color_value;
-- m = cups->DecodeLUT[c1] + k - gx_max_color_value;
-- y = cups->DecodeLUT[c2] + k - gx_max_color_value;
-+ if (c3 == 0) {
-+ c = 0;
-+ m = 0;
-+ y = 0;
-+ } else {
-+ c = cups->DecodeLUT[c0];
-+ m = cups->DecodeLUT[c1];
-+ y = cups->DecodeLUT[c2];
-+ }
-
- if (c > gx_max_color_value)
- prgb[0] = gx_max_color_value;
-@@ -2282,20 +2293,20 @@ cups_map_rgb_color(gx_device *pdev,
- switch (cups->header.cupsBitsPerColor)
- {
- default :
-- i = 0x0e;
-+ i = 0x00;
- break;
- case 2 :
-- i = 0xfc;
-+ i = 0x00;
- break;
- case 4 :
-- i = 0xfff0;
-+ i = 0x0000;
- break;
- case 8 :
-- i = 0xffffff00;
-+ i = 0x00000000;
- break;
- #ifdef GX_COLOR_INDEX_TYPE
- case 16 :
-- i = 0xffffffffffff0000;
-+ i = 0x0000000000000000;
- break;
- #endif /* GX_COLOR_INDEX_TYPE */
- }
-@@ -2929,7 +2940,10 @@ cups_put_params(gx_device *pdev, /*
- int xflip = 0,
- yflip = 0;
- int found = 0;
--
-+ gs_param_string icc_pro_dummy;
-+ int old_cmps = cups->color_info.num_components;
-+ int old_depth = cups->color_info.depth;
-+
- #ifdef DEBUG
- dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist);
- #endif /* DEBUG */
-@@ -3024,6 +3038,11 @@ cups_put_params(gx_device *pdev, /*
- margins_set = param_read_float_array(plist, "Margins", &arrayval) == 0;
- color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 ||
- param_read_int(plist, "cupsBitsPerColor", &intval) == 0;
-+
-+ if (!cups->user_icc) {
-+ cups->user_icc = param_read_string(plist, "OutputICCProfile", &icc_pro_dummy) == 0;
-+ }
-+
- /* We set the old dimensions to 1 if we have a color depth change, so
- that memory reallocation gets forced. This is perhaps not the correct
- approach to prevent crashes like in bug 690435. We keep it for the
-@@ -3134,12 +3153,20 @@ cups_put_params(gx_device *pdev, /*
- if ((code = gdev_prn_put_params(pdev, plist)) < 0)
- return (code);
-
-+ /* If cups_set_color_info() changed the color model of the device we want to
-+ * force the raster memory to be recreated/reinitialized
-+ */
-+ if (cups->color_info.num_components != old_cmps || cups->color_info.depth != old_depth) {
-+ width_old = 0;
-+ height_old = 0;
-+ }
-+ else {
- /* pdev->width/height may have been changed by the call to
- * gdev_prn_put_params()
- */
-- width_old = pdev->width;
-- height_old = pdev->height;
--
-+ width_old = pdev->width;
-+ height_old = pdev->height;
-+ }
- /*
- * Update margins/sizes as needed...
- */
-@@ -4044,22 +4071,88 @@ cups_set_color_info(gx_device *pdev) /*
- for (k = 0; k <= CUPS_MAX_VALUE; k ++)
- cups->Density[k] = k;
- }
-- /* Set up the ICC profile for ghostscript to use based upon the color space.
-- This is different than the PPD profile above which appears to be some sort
-- of matrix based TRC profile */
-- switch (cups->header.cupsColorSpace) {
-- /* Use RGB profile for this */
-- case CUPS_CSPACE_RGBW:
-- if (pdev->icc_struct == NULL) {
-- pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-- }
-- if (pdev->icc_struct->device_profile[gsDEFAULTPROFILE] == NULL) {
-- code = gsicc_set_device_profile(pdev, pdev->memory,
-- DEFAULT_RGB_ICC, gsDEFAULTPROFILE);
-- }
-- break;
-- default:
-- break;
-+ if (!cups->user_icc) {
-+ /* Set up the ICC profile for ghostscript to use based upon the color space.
-+ This is different than the PPD profile above which appears to be some sort
-+ of matrix based TRC profile */
-+ switch (cups->header.cupsColorSpace)
-+ {
-+ default :
-+ case CUPS_CSPACE_RGBW :
-+ case CUPS_CSPACE_RGB :
-+ case CUPS_CSPACE_RGBA :
-+ case CUPS_CSPACE_CMY :
-+ case CUPS_CSPACE_YMC :
-+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC
-+ case CUPS_CSPACE_CIELab :
-+ case CUPS_CSPACE_ICC1 :
-+ case CUPS_CSPACE_ICC2 :
-+ case CUPS_CSPACE_ICC3 :
-+ case CUPS_CSPACE_ICC4 :
-+ case CUPS_CSPACE_ICC5 :
-+ case CUPS_CSPACE_ICC6 :
-+ case CUPS_CSPACE_ICC7 :
-+ case CUPS_CSPACE_ICC8 :
-+ case CUPS_CSPACE_ICC9 :
-+ case CUPS_CSPACE_ICCA :
-+ case CUPS_CSPACE_ICCB :
-+ case CUPS_CSPACE_ICCC :
-+ case CUPS_CSPACE_ICCD :
-+ case CUPS_CSPACE_ICCE :
-+ case CUPS_CSPACE_ICCF :
-+# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsRGB)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory,
-+ (char *)DEFAULT_RGB_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+
-+ case CUPS_CSPACE_W :
-+ case CUPS_CSPACE_WHITE :
-+ case CUPS_CSPACE_K :
-+ case CUPS_CSPACE_GOLD :
-+ case CUPS_CSPACE_SILVER :
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsGRAY)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory->non_gc_memory,
-+ (char *)DEFAULT_GRAY_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+ case CUPS_CSPACE_KCMYcm :
-+# ifdef CUPS_RASTER_HAVE_COLORIMETRIC
-+ case CUPS_CSPACE_CIEXYZ :
-+#endif
-+ case CUPS_CSPACE_CMYK :
-+ case CUPS_CSPACE_YMCK :
-+ case CUPS_CSPACE_KCMY :
-+ case CUPS_CSPACE_GMCK :
-+ case CUPS_CSPACE_GMCS :
-+ if (!pdev->icc_struct || (pdev->icc_struct &&
-+ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsCMYK)) {
-+
-+ if (pdev->icc_struct) {
-+ rc_decrement(pdev->icc_struct, "cups_set_color_info");
-+ }
-+ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory);
-+
-+ code = gsicc_set_device_profile(pdev, pdev->memory,
-+ (char *)DEFAULT_CMYK_ICC, gsDEFAULTPROFILE);
-+ }
-+ break;
-+ }
- }
- }
-
diff --git a/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch b/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch
deleted file mode 100644
index 1a81863be..000000000
--- a/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur ghostscript-9.04/base/Makefile.in ghostscript-9.04.new/base/Makefile.in
---- ghostscript-9.04/base/Makefile.in 2011-08-05 13:12:20.000000000 +0200
-+++ ghostscript-9.04.new/base/Makefile.in 2011-08-16 16:06:50.487377337 +0200
-@@ -375,7 +375,7 @@
- # Solaris may need -lnsl -lsocket -lposix4.
- # (Libraries required by individual drivers are handled automatically.)
-
--EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@
-+EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@ @FT_LIBS@
-
- # Define the standard libraries to search at the end of linking.
- # Most platforms require -lpthread for the POSIX threads library;
diff --git a/libre/ghostscript-libre/gs_bug691759and691760.diff b/libre/ghostscript-libre/gs_bug691759and691760.diff
deleted file mode 100644
index ca394427a..000000000
--- a/libre/ghostscript-libre/gs_bug691759and691760.diff
+++ /dev/null
@@ -1,215 +0,0 @@
-Modified: trunk/gs/base/gdevnfwd.c
-===================================================================
---- trunk/gs/base/gdevnfwd.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gdevnfwd.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -1117,3 +1117,29 @@
- {
- return 0;
- }
-+
-+bool
-+fwd_uses_fwd_cmap_procs(gx_device * dev)
-+{
-+ const gx_cm_color_map_procs *pprocs;
-+
-+ pprocs = dev_proc(dev, get_color_mapping_procs)(dev);
-+ if (pprocs == &FwdDevice_cm_map_procs) {
-+ return true;
-+ }
-+ return false;
-+}
-+
-+const gx_cm_color_map_procs*
-+fwd_get_target_cmap_procs(gx_device * dev)
-+{
-+ const gx_cm_color_map_procs *pprocs;
-+ gx_device_forward * const fdev = (gx_device_forward *)dev;
-+ gx_device * const tdev = fdev->target;
-+
-+ pprocs = dev_proc(tdev, get_color_mapping_procs(tdev));
-+ while (pprocs == &FwdDevice_cm_map_procs) {
-+ pprocs = fwd_get_target_cmap_procs(tdev);
-+ }
-+ return pprocs;
-+}
-\ No newline at end of file
-
-Modified: trunk/gs/base/gdevp14.c
-===================================================================
---- trunk/gs/base/gdevp14.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gdevp14.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -900,7 +900,11 @@
- nos->parent_color_info_procs->num_components, 1,
- false, false, true, tos->planestride,
- tos->rowstride, num_rows, num_cols);
-- /* Transform the data */
-+ /* Transform the data. Since the pdf14 device should be
-+ using RGB, CMYK or Gray buffers, this transform
-+ does not need to worry about the cmap procs of
-+ the target device. Those are handled when we do
-+ the pdf14 put image operation */
- gscms_transform_color_buffer(icc_link, &input_buff_desc,
- &output_buff_desc, tos->data,
- new_data_buf);
-
-Modified: trunk/gs/base/gxcmap.c
-===================================================================
---- trunk/gs/base/gxcmap.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gxcmap.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -31,6 +31,7 @@
- #include "gsicc_manage.h"
- #include "gdevdevn.h"
- #include "gsicc_cache.h"
-+#include "gscms.h"
-
- /* Structure descriptor */
- public_st_device_color();
-@@ -1744,3 +1745,37 @@
-
- }
- }
-+
-+bool
-+gx_device_uses_std_cmap_procs(gx_device * dev)
-+{
-+ const gx_cm_color_map_procs *pprocs;
-+
-+ if (dev->device_icc_profile != NULL) {
-+ pprocs = dev_proc(dev, get_color_mapping_procs)(dev);
-+ /* Check if they are forwarding procs */
-+ if (fwd_uses_fwd_cmap_procs(dev)) {
-+ pprocs = fwd_get_target_cmap_procs(dev);
-+ }
-+ switch(dev->device_icc_profile->data_cs) {
-+ case gsGRAY:
-+ if (pprocs == &DeviceGray_procs) {
-+ return true;
-+ }
-+ break;
-+ case gsRGB:
-+ if (pprocs == &DeviceRGB_procs) {
-+ return true;
-+ }
-+ break;
-+ case gsCMYK:
-+ if (pprocs == &DeviceCMYK_procs) {
-+ return true;
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+ }
-+ return false;
-+}
-
-Modified: trunk/gs/base/gxcmap.h
-===================================================================
---- trunk/gs/base/gxcmap.h 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gxcmap.h 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -284,5 +284,11 @@
- * [0,1]
- */
- frac gx_unit_frac(float fvalue);
-+/* Determine if the device is using the standard color mapping procs. In
-+ such a case, we can make use of the faster icc color conversions for
-+ images */
-+bool gx_device_uses_std_cmap_procs(gx_device * dev);
-+bool fwd_uses_fwd_cmap_procs(gx_device * dev);
-+const gx_cm_color_map_procs* fwd_get_target_cmap_procs(gx_device * dev);
-
- #endif /* gxcmap_INCLUDED */
-
-Modified: trunk/gs/base/gxi12bit.c
-===================================================================
---- trunk/gs/base/gxi12bit.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gxi12bit.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -113,6 +113,8 @@
- irender_proc_t
- gs_image_class_2_fracs(gx_image_enum * penum)
- {
-+ bool std_cmap_procs;
-+
- if (penum->bps > 8) {
- if (penum->use_mask_color) {
- /* Convert color mask values to fracs. */
-@@ -122,9 +124,14 @@
- penum->mask_color.values[i] =
- bits2frac(penum->mask_color.values[i], 12);
- }
-+ /* If the device has some unique color mapping procs due to its color space,
-+ then we will need to use those and go through pixel by pixel instead
-+ of blasting through buffers. This is true for example with many of
-+ the color spaces for CUPs */
-+ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev);
- if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN &&
- penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ||
-- penum->bps != 16 ||
-+ penum->bps != 16 || !std_cmap_procs ||
- gs_color_space_get_index(penum->pcs) == gs_color_space_index_DevicePixel) {
- /* DevicePixel color space used in mask from 3x type. Basically
- a simple color space that just is scaled to the device bit
-
-Modified: trunk/gs/base/gxicolor.c
-===================================================================
---- trunk/gs/base/gxicolor.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gxicolor.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -97,6 +97,8 @@
- irender_proc_t
- gs_image_class_4_color(gx_image_enum * penum)
- {
-+ bool std_cmap_procs;
-+
- if (penum->use_mask_color) {
- /*
- * Scale the mask colors to match the scaling of each sample to
-@@ -128,8 +130,14 @@
- penum->mask_color.mask = 0;
- penum->mask_color.test = ~0;
- }
-+ /* If the device has some unique color mapping procs due to its color space,
-+ then we will need to use those and go through pixel by pixel instead
-+ of blasting through buffers. This is true for example with many of
-+ the color spaces for CUPs */
-+ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev);
- if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN &&
-- penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ) {
-+ penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ||
-+ !std_cmap_procs) {
- return &image_render_color_DeviceN;
- } else {
- /* Set up the link now */
-
-Modified: trunk/gs/base/gxiscale.c
-===================================================================
---- trunk/gs/base/gxiscale.c 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/gxiscale.c 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -104,6 +104,13 @@
- != penum->dev->color_info.num_components) {
- use_icc = false;
- }
-+ /* If the device has some unique color mapping procs due to its color space,
-+ then we will need to use those and go through pixel by pixel instead
-+ of blasting through buffers. This is true for example with many of
-+ the color spaces for CUPs */
-+ if(!gx_device_uses_std_cmap_procs(penum->dev)) {
-+ use_icc = false;
-+ }
- /*
- * USE_CONSERVATIVE_INTERPOLATION_RULES is normally NOT defined since
- * the MITCHELL digital filter seems OK as long as we are going out to
-
-Modified: trunk/gs/base/lib.mak
-===================================================================
---- trunk/gs/base/lib.mak 2011-01-06 23:48:14 UTC (rev 12004)
-+++ trunk/gs/base/lib.mak 2011-01-07 04:49:42 UTC (rev 12005)
-@@ -602,7 +602,7 @@
- $(gxalpha_h) $(gxcspace_h) $(gxfarith_h) $(gxfrac_h)\
- $(gxdcconv_h) $(gxdevice_h) $(gxcmap_h) $(gsnamecl_h) $(gxlum_h)\
- $(gzstate_h) $(gxdither_h) $(gxcdevn_h) $(string__h)\
-- $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h)
-+ $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) $(gscms_h)
- $(GLCC) $(GLO_)gxcmap.$(OBJ) $(C_) $(GLSRC)gxcmap.c
-
- $(GLOBJ)gxcpath.$(OBJ) : $(GLSRC)gxcpath.c $(GXERR)\
-
diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD
index 29870d611..7b9198d8d 100644
--- a/libre/grub/PKGBUILD
+++ b/libre/grub/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=grub
pkgver=0.97
-pkgrel=21
+pkgrel=21.3
pkgdesc="A GNU multiboot boot loader (Parabola rebranded)"
arch=('i686' 'x86_64')
license=('GPL')
@@ -13,9 +13,6 @@ url="http://www.gnu.org/software/grub/"
groups=('base')
depends=('ncurses' 'diffutils' 'sed')
optdepends=('xfsprogs: freezing of xfs /boot in install-grub script')
-replaces=('grub')
-conflicts=('grub')
-provides=("grub=$pkgver")
source=(ftp://alpha.gnu.org/gnu/grub/grub-$pkgver.tar.gz
menu.lst
install-grub
diff --git a/libre/grub/rePKGBUILD b/libre/grub/rePKGBUILD
index 909ce8550..b14550034 100644
--- a/libre/grub/rePKGBUILD
+++ b/libre/grub/rePKGBUILD
@@ -1,10 +1,12 @@
# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+# Contributor: André Silva <andre.paulista@adinet.com.uy>
source PKGBUILD
-CARCH=x86_64
+CARCH=i686
unset build package md5sums source
_repo=core
source=(PKGBUILD
- http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
+ #http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
+ http://mirrors.kernel.org/archlinux/${_repo}/os/${CARCH}/${pkgname%}-$pkgver-21-$CARCH$PKGEXT
# files for pkg modifications
menu.lst
install-grub
@@ -13,7 +15,8 @@ options=(!strip)
build() {
cd "${srcdir}/"
- rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
+ #rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT
+ rm PKGBUILD .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-21-$CARCH$PKGEXT
# put actions for package modifications below this line
rm -v boot/grub/menu.lst sbin/install-grub
diff --git a/libre/gstreamer0.10-good/PKGBUILD b/libre/gstreamer0.10-good/PKGBUILD
new file mode 100644
index 000000000..abe7dc0ef
--- /dev/null
+++ b/libre/gstreamer0.10-good/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=gstreamer0.10-good
+pkgname=('gstreamer0.10-good' 'gstreamer0.10-good-plugins')
+pkgver=0.10.31
+pkgrel=1.1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('intltool' 'pkgconfig' 'gstreamer0.10-base>=0.10.34' 'libavc1394' 'libiec61883' 'aalib' 'libshout' 'libdv' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'bzip2' 'gdk-pixbuf2' 'libpulse' 'jack' 'udev')
+url="http://gstreamer.freedesktop.org/"
+options=(!libtool !emptydirs)
+source=(${url}/src/gst-plugins-good/gst-plugins-good-${pkgver}.tar.xz)
+sha256sums=('77a8436a7c0a15f876bad29616835046890df2bcaf72da02151bd91e3d292b64')
+
+build() {
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --disable-schemas-install \
+ --disable-hal \
+ --disable-esd \
+ --with-package-name="GStreamer Good Plugins (Parabola GNU/Linux-libre)" \
+ --with-package-origin="https://parabolagnulinux.org/"
+
+ make
+ sed -e 's/gst sys ext/gst/' -i Makefile
+}
+
+package_gstreamer0.10-good() {
+ depends=('gstreamer0.10-base>=0.10.34' 'bzip2')
+ pkgdesc="GStreamer Multimedia Framework Good plugin libraries (Parabola rebranded)"
+
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/etc/gconf"
+}
+
+package_gstreamer0.10-good-plugins() {
+ depends=("gstreamer0.10-good=${pkgver}" 'libavc1394' 'libiec61883' 'aalib' 'libshout' 'libdv' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'libpng' 'libjpeg' 'jack' 'libpulse' 'udev')
+ pkgdesc="GStreamer Multimedia Framework Good Plugins (gst-plugins-good)"
+ groups=('gstreamer0.10-plugins')
+ replaces=('gstreamer0.10-aalib' 'gstreamer0.10-wavpack' 'gstreamer0.10-shout2' 'gstreamer0.10-taglib' 'gstreamer0.10-libcaca' 'gstreamer0.10-libpng' 'gstreamer0.10-jpeg' 'gstreamer0.10-cairo' 'gstreamer0.10-flac' 'gstreamer0.10-speex' 'gstreamer0.10-gdkpixbuf' 'gstreamer0.10-dv1394' 'gstreamer0.10-annodex' 'gstreamer0.10-gconf' 'gstreamer0.10-esd' 'gstreamer0.10-cdio' 'gstreamer0.10-dv' 'gstreamer0.10-soup' 'gstreamer0.10-pulse')
+ conflicts=('gstreamer0.10-aalib' 'gstreamer0.10-wavpack' 'gstreamer0.10-shout2' 'gstreamer0.10-taglib' 'gstreamer0.10-libcaca' 'gstreamer0.10-libpng' 'gstreamer0.10-jpeg' 'gstreamer0.10-cairo' 'gstreamer0.10-flac' 'gstreamer0.10-speex' 'gstreamer0.10-gdkpixbuf' 'gstreamer0.10-dv1394' 'gstreamer0.10-annodex' 'gstreamer0.10-gconf' 'gstreamer0.10-esd' 'gstreamer0.10-cdio' 'gstreamer0.10-dv' 'gstreamer0.10-bad-plugins<0.10.7' 'gstreamer0.10-soup' 'gstreamer0.10-pulse')
+ install=gstreamer0.10-good-plugins.install
+
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ make -C sys DESTDIR="${pkgdir}" install
+ make -C ext GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ install -m644 gconf/gstreamer-0.10.schemas "${pkgdir}/usr/share/gconf/schemas/gstreamer0.10-good-plugins.schemas"
+}
diff --git a/libre/gstreamer0.10-good/gstreamer0.10-good-plugins.install b/libre/gstreamer0.10-good/gstreamer0.10-good-plugins.install
new file mode 100644
index 000000000..e343beea5
--- /dev/null
+++ b/libre/gstreamer0.10-good/gstreamer0.10-good-plugins.install
@@ -0,0 +1,19 @@
+pkgname=gstreamer0.10-good-plugins
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ pre_remove
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/libre/hplip-libre/PKGBUILD b/libre/hplip-libre/PKGBUILD
index ff876dfe8..81b24e100 100644
--- a/libre/hplip-libre/PKGBUILD
+++ b/libre/hplip-libre/PKGBUILD
@@ -5,7 +5,7 @@
_pkgname=hplip
pkgname=hplip-libre
-pkgver=3.12.2
+pkgver=3.12.4
pkgrel=1
pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
arch=('i686' 'x86_64')
@@ -13,14 +13,14 @@ url="http://hplipopensource.com"
license=('GPL')
depends=('python2' 'ghostscript>=8.64-6' 'foomatic-db' 'foomatic-db-engine'
'net-snmp>=5.7.1')
-makedepends=('python2-qt' 'python2-gobject2' 'sane' 'rpcbind' 'cups')
+makedepends=('python2-pyqt' 'python2-gobject2' 'sane' 'rpcbind' 'cups')
optdepends=('cups: for printing support'
'dbus-python: for dbus support'
'sane: for scanner support'
'python-imaging: for commandline scanning support'
'python-notify: for Desktop notification support'
'rpcbind: for network support'
- 'python2-qt: for running hp-toolbox'
+ 'python2-pyqt: for running hp-toolbox'
'python2-gobject2: for running hp-toolbox')
replaces=('hpijs' "${_pkgname}")
conflicts=("${_pkgname}")
@@ -28,8 +28,6 @@ provides=("${_pkgname}=${pkgver}")
options=('!libtool')
install=hplip.install
source=(http://downloads.sourceforge.net/${_pkgname}/$_pkgname-$pkgver.tar.gz{,.asc})
-sha1sums=('bdf3e37a344f5b57b62425f755c4293d6d4ae875'
- 'aa00cdf755fea38f39247a0a4a2e8241dc15112c')
build() {
cd "$srcdir/$_pkgname-$pkgver"
@@ -68,4 +66,9 @@ package() {
rm -rf "$pkgdir"/etc/{sane.d,xdg}
# remove HAL .fdi file because HAL is no longer used
rm -rf "$pkgdir"/usr/share/hal
+ # move to /usr
+ mv "$pkgdir"/lib/udev "$pkgdir"/usr/lib/
+ rm "$pkgdir"/lib -r
}
+md5sums=('a063f76aa47edab55a3f31ff2558df07'
+ '2fe18f4091afb3dec200271dc7836128')
diff --git a/libre/iceape-i18n/Makefile b/libre/iceape-i18n/Makefile
new file mode 100644
index 000000000..89aaccfdc
--- /dev/null
+++ b/libre/iceape-i18n/Makefile
@@ -0,0 +1,59 @@
+#!/usr/bin/make -f
+# Use this script to update the PKGBUILD's list of langpacks.
+# This script depends on:
+# - coreutils
+# - pacman
+# - sed
+
+# Variables:
+# This is to get it from Debian Sid
+debname=iceape-l10n
+debver=2.7.4+debian
+debrel=2
+debrepo=http://ftp.debian.org/debian/pool/main/
+
+pkgver=2.7.4
+pkgrel=1
+
+# Guts: ##############################################################
+
+default: PHONY all
+all: PHONY
+ $(MAKE) clean
+ $(MAKE) PKGBUILD
+.PRECIOUS: PKGBUILD
+
+PKGBUILD.list: Makefile
+ sed \
+ -e 's/@DEBNAME@/$(debname)/' \
+ -e 's/@DEBVER@/$(debver)/' \
+ -e 's/@DEBREL@/$(debrel)/' \
+ -e 's%@DEBREPO@%$(debrepo)%' \
+ -e 's/@PKGVER@/$(pkgver)/' \
+ -e 's/@PKGREL@/$(pkgrel)/' \
+ -e "s/@LANGPACKS@/(phony)/" \
+ -e '/CUT HERE/,$$d' \
+ PKGBUILD.in > $@
+ echo 'package() { exit 0; }' >> $@
+ makepkg -gp $@ >> $@
+langpacks.txt: PKGBUILD.list Makefile
+ makepkg -dp $<
+ ls src/*/upstream | sed 's/\.xpi//' > $@
+PKGBUILD: PKGBUILD.in langpacks.txt Makefile
+ sed \
+ -e 's/@DEBNAME@/$(debname)/' \
+ -e 's/@DEBVER@/$(debver)/' \
+ -e 's/@DEBREL@/$(debrel)/' \
+ -e 's%@DEBREPO@%$(debrepo)%' \
+ -e 's/@PKGVER@/$(pkgver)/' \
+ -e 's/@PKGREL@/$(pkgrel)/' \
+ -e "s/@LANGPACKS@/(`xargs echo < langpacks.txt`)/" \
+ -e '/CUT HERE/d' \
+ -e '/md5sums/,$$d' \
+ PKGBUILD.in > $@
+ makepkg -dg >> $@
+
+clean: PHONY
+ rm -f PKGBUILD.list langpacks.txt
+
+.PHONY: PHONY FORCE
diff --git a/libre/iceape-i18n/PKGBUILD b/libre/iceape-i18n/PKGBUILD
new file mode 100644
index 000000000..3c0b42b31
--- /dev/null
+++ b/libre/iceape-i18n/PKGBUILD
@@ -0,0 +1,81 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer: André Silva <andre.paulista@adinet.com.uy>
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Figue <ffigue@gmail.com>
+# Based on icecat-i18n package, which is in turn based on firefox-i18n
+
+# When updating to a newer upstream release:
+# - Edit variables in in Makefile.
+# - (optionally) edit PKGBUILD.in
+# - Run 'make'. It will take care of everything else for you.
+
+_debname=iceape
+_debver=2.7.4
+_debrel=2
+_debrepo=http://ftp.debian.org/debian/pool/main/
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_langpacks=(be ca cs de en-GB es-ES fi fr gl hu it ja lt nb-NO nl pl pt-PT ru sk sv-SE tr zh-CN)
+
+pkgbase=iceape-i18n
+pkgname=($(for lang in ${_langpacks[@]}
+ do echo $pkgbase-$lang | tr A-Z a-z
+ done))
+_pkgver=2.7.4
+pkgver=${_debver}.${_debrel}
+pkgrel=1
+
+pkgdesc="Language packs for Debian Iceape."
+arch=('any')
+url="http://packages.debian.org/source/sid/iceape"
+license=('MPL')
+depends=("iceape-libre>=$_pkgver")
+source=()
+for lang in ${_langpacks[@]}
+do
+ source+=("${_debrepo}/`debfile ${_debname}`-l10n-$(echo $lang | tr A-Z a-z)_${_debver}-${_debrel}_all.deb")
+done
+
+build() {
+ cd "${srcdir}"
+ for f in *.deb
+ do
+ bsdtar xf $f
+ bsdtar xf data.tar.gz
+ done
+}
+
+_path="/usr/lib/iceape/extensions"
+
+
+for lang in ${_langpacks[@]}
+do
+ eval "
+package_iceape-i18n-$(echo $lang | tr A-Z a-z)() {
+ install -Dm644 \"\$srcdir$_path/langpack-$lang@iceape.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceape.mozilla.org.xpi\"
+}
+"
+done
+
+md5sums=('6d773ee12e9e3475f20f7ae1a13ae60b'
+ 'cce134a647f71808c15d3a693c6e0d91'
+ '289b5df66a7bf79a900f7033f034b941'
+ '90f7836b6dbe752fe0eb6e85be961dad'
+ '46f6170f7ca9a0e7d1be7cf2da411089'
+ '16fcf9e6c74a25ec164e4d0d9be7a9d4'
+ 'ad7eb7ff8ec821d3bb8baedb4c83b9a1'
+ '612ed06337160596629f92699bc9dc08'
+ '8204487072c23d70c1332c32b75850f1'
+ 'd653627ccc8f188d8f908ad60ee9c10d'
+ '146e7bb6829b44c9b971d271a9682f47'
+ 'eed45ddcec761bb76eec33ca26b8f869'
+ '0fb90f7c8de00ddcf7dc500264979cba'
+ '3454cfd4e79a7a2ef2a519133f57a5a7'
+ '880b81a89f71851f146e3e8bb45c0215'
+ 'e219a4a6a277edf7da1ecaf29203887f'
+ '9dff81762577df8b105912457a8ebdcd'
+ 'a7431be429fc93dc9876e3376441855b'
+ '19cb8a522fc38aeabdf375c2118efe7a'
+ '7d1e1f279bf3786917b11168251ced57'
+ '918022ba06904a99caffa5654a47f8b3'
+ '138d693f00d34ed8f943fca053e9e876')
diff --git a/libre/iceape-i18n/PKGBUILD.in b/libre/iceape-i18n/PKGBUILD.in
new file mode 100644
index 000000000..6891b2672
--- /dev/null
+++ b/libre/iceape-i18n/PKGBUILD.in
@@ -0,0 +1,64 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Figue <ffigue@gmail.com>
+# Contributor: André Silva <andre.paulista@adinet.com.uy>
+# Based on icecat-i18n package, which is in turn based on firefox-i18n
+
+# When updating to a newer upstream release:
+# - Edit variables in in Makefile.
+# - (optionally) edit PKGBUILD.in
+# - Run 'make'. It will take care of everything else for you.
+
+_debname=@DEBNAME@
+_debver=@DEBVER@
+_debrel=@DEBREL@
+_debrepo=@DEBREPO@
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_langpacks=@LANGPACKS@
+
+pkgbase=iceape-i18n
+pkgname=($(for lang in ${_langpacks[@]}
+ do echo $pkgbase-$lang | tr A-Z a-z
+ done))
+_pkgver=@PKGVER@
+pkgver=${_debver}.${_debrel}
+pkgrel=@PKGREL@
+
+pkgdesc="Language packs for Debian Iceape."
+arch=('any')
+url="http://packages.debian.org/source/sid/iceape"
+license=('MPL')
+depends=("iceape=$_pkgver")
+source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.gz"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.diff.gz"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc")
+noextract=($(for lang in ${_langpacks[@]}
+ do echo $lang.xpi
+ done))
+
+dpkg-source() {
+ # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
+ cd "${_debname}-${_debver}"
+ patch -p1 -i "${srcdir}/${_debname}_${_debver}-${_debrel}.diff"
+ cd ..
+}
+
+build() {
+ cd "${srcdir}"
+ dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
+}
+
+_path="/usr/lib/iceape-${_pkgver}/extensions"
+
+# CUT HERE <-- Separates package_*() functions from everything else.
+
+for lang in ${_langpacks[@]}
+do
+ eval "
+package_iceape-i18n-$(echo $lang | tr A-Z a-z) () {
+ install -Dm644 '$srcdir/'*'/upstream/$lang.xpi' \"\$pkgdir\"'$_path/langpack-$lang@firefox.mozilla.org.xpi'
+}
+"
+done
+
diff --git a/libre/iceape-libre/PKGBUILD b/libre/iceape-libre/PKGBUILD
new file mode 100644
index 000000000..9099fb270
--- /dev/null
+++ b/libre/iceape-libre/PKGBUILD
@@ -0,0 +1,117 @@
+# Maintainer : Márcio Silva <coadde@adinet.com.uy>
+# Maintainer : André Silva <andre.paulista@adinet.com.uy>
+
+# We're getting this from Debian Sid
+_debname=iceape
+_debver=2.7.4
+_debrel=2
+_debrepo=http://ftp.debian.org/debian/pool/main/
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_pkgname=${_debname}
+pkgname=${_debname}-libre
+pkgver=${_debver}.${_debrel}
+pkgrel=1
+pkgdesc="A libre version of Debian Iceape, the Internet Suite based on Mozilla Seamonkey."
+arch=('i586' 'i686' 'x86_64' 'mips64el')
+license=('GPL2' 'MPL' 'LGPL')
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss' 'sqlite' 'startup-notification')
+makedepends=('unzip-libre' 'zip' 'pkg-config' 'python2' 'python2-ply' 'librsvg' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt')
+replaces=('mozilla' 'seamonkey')
+conflicts=('seamonkey')
+provides=('seamonkey')
+install=$_pkgname.install
+url="http://packages.debian.org/source/sid/${_pkgname}"
+source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.debian.tar.gz"
+ mozconfig
+ ${_pkgname}.desktop
+ ${_pkgname}-2.0-lang.patch
+ clrf.patch
+ libre.patch)
+md5sums=('aedc7546db1fdc50cc9c5f21a7ad6138'
+ '4519446d9f23885dd748a59dfbbfa0a4'
+ '60ba9e8f2fafd20e41268af534a55ea7'
+ '7266333e31731af8bb50c2eca8d0bd26'
+ '25b6fe16ac24cd5c852213e5c1adb272'
+ 'c395d443a8c4c16880c7322bcf174743'
+ '79f99d8cda03dbcc1e88ef96776f591a')
+
+build() {
+ export QUILT_PATCHES=debian/patches
+ export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
+ export QUILT_DIFF_ARGS='--no-timestamps'
+ export LDFLAGS="${LDFLAGS} -Wl,--as-needed,-rpath,/usr/lib/${_pkgname}"
+ export PYTHON="/usr/bin/python2"
+ export DEBIAN_BUILD="comm-release"
+ export DEBIAN_BRANDING_DIR="debian/branding"
+ export ICEAPE_ICONS_BRANDING="suite/branding/nightly"
+ mv comm-esr10 "${DEBIAN_BUILD}"
+ mv debian "${srcdir}/${DEBIAN_BUILD}"
+ cd "${srcdir}/${DEBIAN_BUILD}"
+ quilt push -av
+
+ patch -Np1 -i "$srcdir/$_pkgname-2.0-lang.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
+ patch -Np1 -i "$srcdir/libre.patch"
+
+ # set up a simple non-animated throbber from the icon
+ install -m644 debian/extras/Throbber-small.gif suite/themes/classic/communicator/brand/throbber-anim.png
+ install -m644 debian/extras/Throbber-small.png suite/themes/classic/communicator/brand/throbber-single.png
+ install -m644 debian/extras/Throbber-small.gif suite/themes/classic/communicator/brand/throbber16-anim.png
+ install -m644 debian/extras/Throbber-small.png suite/themes/classic/communicator/brand/throbber16-single.png
+ install -m644 debian/extras/Throbber-small.gif suite/themes/modern/communicator/brand/throbber-anim.png
+ install -m644 debian/extras/Throbber-small.png suite/themes/modern/communicator/brand/throbber-single.png
+ install -m644 debian/extras/Throbber-small.gif suite/themes/modern/communicator/brand/throbber16-anim.png
+ install -m644 debian/extras/Throbber-small.png suite/themes/modern/communicator/brand/throbber16-single.png
+
+ install -m644 debian/extras/preview.png suite/themes/classic/preview.png
+
+ # Converting svg file to png and replacing seamonkey by iceape icons
+ rsvg-convert -w 300 -h 280 -o ${ICEAPE_ICONS_BRANDING}/content/about.png ${DEBIAN_BRANDING_DIR}/iceape_logo_plain.svg
+ rsvg-convert -w 64 -h 64 -o ${ICEAPE_ICONS_BRANDING}/content/icon64.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 128 -h 128 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/iceape.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 32 -h 32 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/default.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 32 -h 32 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/main-window.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 16 -h 16 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/default16.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 16 -h 16 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/main-window16.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 48 -h 48 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/default48.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 48 -h 48 -o ${ICEAPE_ICONS_BRANDING}/icons/gtk/main-window48.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+
+ # Creating app-icons Folder for iceape*.png icons
+
+ install -m755 -d "${DEBIAN_BRANDING_DIR}/app-icons"
+
+ # Icons for /usr/share/icons/hicolor
+ rsvg-convert -w 16 -h 16 -o ${DEBIAN_BRANDING_DIR}/app-icons/iceape16.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 32 -h 32 -o ${DEBIAN_BRANDING_DIR}/app-icons/iceape32.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 48 -h 48 -o ${DEBIAN_BRANDING_DIR}/app-icons/iceape48.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 64 -h 64 -o ${DEBIAN_BRANDING_DIR}/app-icons/iceape64.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+ rsvg-convert -w 128 -h 128 -o ${DEBIAN_BRANDING_DIR}/app-icons/iceape128.png ${DEBIAN_BRANDING_DIR}/iceape_icon_plain.svg
+
+ cp "${srcdir}/mozconfig" .mozconfig
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${DEBIAN_BUILD}"
+
+ make -j1 -f client.mk DESTDIR="${pkgdir}" install
+
+ rm -rf "$pkgdir"/usr/lib/$_pkgname/{dictionaries,hyphenation,searchplugins}
+ ln -sf /usr/share/hunspell "$pkgdir/usr/lib/$_pkgname/dictionaries"
+ ln -sf /usr/share/hyphen "$pkgdir/usr/lib/$_pkgname/hyphenation"
+ ln -sf /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$_pkgname/searchplugins"
+
+ install -m755 -d "$pkgdir/usr/share/applications"
+ install -m755 -d "$pkgdir/usr/share/pixmaps"
+ install -m644 ${ICEAPE_ICONS_BRANDING}/icons/gtk/iceape.png \
+ "$pkgdir/usr/share/pixmaps/"
+
+ for i in 16x16 32x32 48x48 64x64 128x128; do
+ install -Dm644 "${DEBIAN_BRANDING_DIR}/app-icons/${_pkgname}${i/x*/}.png" "${pkgdir}/usr/share/icons/hicolor/$i/apps/${_pkgname}.png"
+ done
+ install -Dm644 "${DEBIAN_BRANDING_DIR}/${_pkgname}_icon_plain.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/${_pkgname}.svg"
+
+ install -m644 "$srcdir/$_pkgname.desktop" "$pkgdir/usr/share/applications/"
+}
diff --git a/libre/iceape-libre/clrf.patch b/libre/iceape-libre/clrf.patch
new file mode 100644
index 000000000..375708ac4
--- /dev/null
+++ b/libre/iceape-libre/clrf.patch
@@ -0,0 +1,260 @@
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-03-12 23:37:12.000000000 -0300
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-05-07 12:33:58.517612453 -0300
+@@ -688,7 +688,7 @@
+ PL_strcat(encoding, "{");
+ lengthStr.AppendInt((PRInt32) strlen(value));
+ PL_strcat(encoding, lengthStr.get());
+- PL_strcat(encoding, "}"CRLF);
++ PL_strcat(encoding, "}" CRLF);
+ PL_strcat(encoding, value);
+ return NS_OK;
+ }
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-05-07 12:41:08.003264793 -0300
+@@ -753,7 +753,7 @@
+ }
+ }
+ }
+-#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
++#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
+
+ // if status offset isn't in the first block, this code won't work. There's no good reason
+ // for the status offset not to be at the beginning of the message anyway.
+@@ -1203,7 +1203,7 @@
+ // check if there's an envelope header; if not, write one.
+ if (strncmp(m_dataBuffer, "From ", 5))
+ {
+- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
++ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
+ m_offlineMsgSize += bytesWritten;
+ }
+ }
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-05-07 12:44:43.127347489 -0300
+@@ -1722,7 +1722,7 @@
+ {
+ m_sendDone = PR_TRUE;
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
++ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_DONE;
+ return(0);
+@@ -1969,7 +1969,7 @@
+ {
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+ // send a quit command to close the connection with the server.
+- if (SendData(url, "QUIT"CRLF) == NS_OK)
++ if (SendData(url, "QUIT" CRLF) == NS_OK)
+ {
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_ERROR_DONE;
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-05-07 12:48:29.417179064 -0300
+@@ -8298,7 +8298,7 @@
+ bool needMoreData = false;
+ char * newLine = nsnull;
+ PRUint32 numBytesInLine = 0;
+- const char *envelope = "From "CRLF;
++ const char *envelope = "From " CRLF;
+ offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
+ fileSize += bytesWritten;
+ do
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-05-07 15:45:58.551202719 -0300
+@@ -1410,7 +1410,7 @@
+ {
+ // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
+ nsCAutoString commandBuffer(GetServerCommandTag());
+- commandBuffer.Append(" IDLE"CRLF);
++ commandBuffer.Append(" IDLE" CRLF);
+
+ do
+ {
+@@ -3290,7 +3290,7 @@
+ commandString.Append(messageIds);
+ commandString.Append(" (");
+ commandString.Append(attribute);
+- commandString.Append(")"CRLF);
++ commandString.Append(")" CRLF);
+ nsresult rv = SendData(commandString.get());
+
+ if (NS_SUCCEEDED(rv))
+@@ -5283,7 +5283,7 @@
+
+ IncrementCommandTagNumber();
+ nsCAutoString command(GetServerCommandTag());
+- command.Append(" expunge"CRLF);
++ command.Append(" expunge" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5359,7 +5359,7 @@
+ command.Append(gAppName);
+ command.Append("\" \"version\" \"");
+ command.Append(gAppVersion);
+- command.Append("\")"CRLF);
++ command.Append("\")" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5816,7 +5816,7 @@
+ nsCAutoString correctedPassword;
+ EscapeUserNamePasswordString(password.get(), &correctedPassword);
+ command.Append(correctedPassword);
+- command.Append("\""CRLF);
++ command.Append("\"" CRLF);
+ rv = SendData(command.get(), PR_TRUE /* suppress logging */);
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+@@ -7446,7 +7446,7 @@
+ nsCString command(GetServerCommandTag());
+ command += " create \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if(NS_SUCCEEDED(rv))
+@@ -7549,7 +7549,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " lsub \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7578,7 +7578,7 @@
+ command += useXLIST ?
+ " xlist \"\" \"" : " list \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7599,7 +7599,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " subscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7617,7 +7617,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " unsubscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7631,7 +7631,7 @@
+ if (m_urlInProgress)
+ return;
+ nsCAutoString command (GetServerCommandTag());
+- command += " IDLE"CRLF;
++ command += " IDLE" CRLF;
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+ {
+@@ -7658,7 +7658,7 @@
+ nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
+ if (asyncInputStream)
+ asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
+- nsresult rv = SendData("DONE"CRLF);
++ nsresult rv = SendData("DONE" CRLF);
+ // set a short timeout if we don't want to wait for a response
+ if (m_transport && !waitForResponse)
+ m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
+@@ -7727,8 +7727,8 @@
+ PRUint32 msgsHandled = 0;
+ const char *formatString;
+ formatString = (idsAreUid)
+- ? "%s uid store %s %s"CRLF
+- : "%s store %s %s"CRLF;
++ ? "%s uid store %s %s" CRLF
++ : "%s store %s %s" CRLF;
+
+ do
+ {
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-05-07 12:57:22.050615120 -0300
+@@ -185,7 +185,7 @@
+
+ NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
+ *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
+- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
++ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
+ if (sendingIdleDone)
+ fWaitingForMoreClientInput = PR_FALSE;
+
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-05-07 12:59:45.857182813 -0300
+@@ -2483,7 +2483,7 @@
+ return(MK_OUT_OF_MEMORY);
+ m_pop3ConData->next_state_after_response = POP3_GET_LIST;
+ m_listpos = 0;
+- return SendData(m_url, "LIST"CRLF);
++ return SendData(m_url, "LIST" CRLF);
+ }
+
+
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-05-07 13:01:42.912022177 -0300
+@@ -1473,7 +1473,7 @@
+ *newbody = 0;
+ PL_strcatn(newbody, newbodylen, "<PRE>");
+ PL_strcatn(newbody, newbodylen, body);
+- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
++ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
+ PR_Free(body);
+ body = newbody;
+ }
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-05-07 13:04:41.511265477 -0300
+@@ -280,7 +280,7 @@
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
+ MimeWriteAString(obj, obj->options->state->detachedFilePath);
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+@@ -293,10 +293,10 @@
+ status = MimeWriteAString(obj, header);
+ if (status < 0)
+ return status;
+- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
++ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
+ }
+ nsCString result;
+ char timeBuffer[128];
+@@ -306,8 +306,8 @@
+ "%a %b %d %H:%M:%S %Y",
+ &now);
+ MimeWriteAString(obj, nsDependentCString(timeBuffer));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
+ MimeHeaders_write_raw_headers(mult->hdrs, obj->options, PR_FALSE);
+ }
+ PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/iceape-libre/gcc47.patch b/libre/iceape-libre/gcc47.patch
new file mode 100644
index 000000000..115d65131
--- /dev/null
+++ b/libre/iceape-libre/gcc47.patch
@@ -0,0 +1,63 @@
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc comm-release/mozilla/ipc/chromium/src/base/file_util.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:38:11.474783536 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -8,7 +8,7 @@
+ #include <io.h>
+ #endif
+ #include <stdio.h>
+-#if defined(ANDROID)
++#if defined(ANDROID) || defined(OS_POSIX)
+ #include <unistd.h>
+ #endif
+
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:38:11.381450924 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -5,6 +5,9 @@
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:38:11.438117153 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:38:11.418117308 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -14,6 +14,8 @@
+ #include <time.h>
+ #endif
+
++#include <unistd.h>
++
+ #include <limits>
+
+ #include "base/basictypes.h"
+diff -Nur comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in comm-release/mozilla/toolkit/crashreporter/client/Makefile.in
+--- comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:38:56.101105510 +0000
++++ comm-release/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:43:29.218995578 +0000
+@@ -69,6 +69,9 @@
+ $(STDCXX_COMPAT) \
+ $(NULL)
+
++# Needed for moz_free
++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
++
+ ifeq ($(OS_ARCH),WINNT)
+ CPPSRCS += crashreporter_win.cpp
+ LIBS += \
diff --git a/libre/iceape-libre/iceape-2.0-lang.patch b/libre/iceape-libre/iceape-2.0-lang.patch
new file mode 100644
index 000000000..b9f4a5cde
--- /dev/null
+++ b/libre/iceape-libre/iceape-2.0-lang.patch
@@ -0,0 +1,11 @@
+--- comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-10-11 02:12:44.000000000 +0200
++++ comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-09-16 02:56:45.000000000 +0200
+@@ -890,7 +890,7 @@
+ pref("intl.charset.detector", "chrome://global/locale/intl.properties");
+ pref("intl.charset.default", "chrome://global-platform/locale/intl.properties");
+ pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
+-pref("intl.locale.matchOS", false);
++pref("intl.locale.matchOS", true);
+ // fallback charset list for Unicode conversion (converting from Unicode)
+ // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
+ // for ISO-8859-1
diff --git a/libre/iceape-libre/iceape.desktop b/libre/iceape-libre/iceape.desktop
new file mode 100644
index 000000000..0868e5058
--- /dev/null
+++ b/libre/iceape-libre/iceape.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=iceape %u
+Icon=iceape
+Type=Application
+Terminal=false
+MultipleArgs=false
+Name=Iceape Internet Suite
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;message/rfc822;x-scheme-handler/mailto;
+StartupNotify=false
+Categories=Application;Network;
diff --git a/libre/iceape-libre/iceape.install b/libre/iceape-libre/iceape.install
new file mode 100644
index 000000000..709ad81f2
--- /dev/null
+++ b/libre/iceape-libre/iceape.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/libre/iceape-libre/libre.patch b/libre/iceape-libre/libre.patch
new file mode 100644
index 000000000..fef11cbad
--- /dev/null
+++ b/libre/iceape-libre/libre.patch
@@ -0,0 +1,288 @@
+--- comm-release.orig/mozilla/browser/locales/en-US/chrome/browser-region/region.properties 2012-02-16 12:08:39.000000000 -0200
++++ comm-release/mozilla/browser/locales/en-US/chrome/browser-region/region.properties 2012-05-12 05:03:27.306166002 -0300
+@@ -1,45 +1,23 @@
+ # Default search engine
+-browser.search.defaultenginename=Google
++browser.search.defaultenginename=DuckDuckGo
+
+ # Search engine order (order displayed in the search bar dropdown)s
+-browser.search.order.1=Google
+-browser.search.order.2=Yahoo
+-browser.search.order.3=Bing
++browser.search.order.1=DuckDuckGo
+
+ # 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=DuckDuckGo
++browser.contentHandlers.types.0.uri=https://duckduckgo.com/search_box.html
+
+ # URL for site-specific search engines
+ # TRANSLATION NOTE: {moz:domain} and {searchTerms} are placeholders for the site
+ # to be searched and the user's search query. Place them in the appropriate location
+ # for your locale's URL but do not translate them.
+-browser.search.siteSearchURL=http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&q=site%3A{moz:domain}+{searchTerms}
++browser.search.siteSearchURL=http://duckduckgo.com/?q=site%3A{moz:domain}+{searchTerms}
+
+ # 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
+ # profile database. Note that "new" is defined as "has a different URL"; this
+ # means that it's not possible to update the name of existing handler, so
+ # don't make any spelling errors here.
+-gecko.handlerService.defaultHandlersVersion=3
+-
+-# The default set of protocol handlers for webcal:
+-gecko.handlerService.schemes.webcal.0.name=30 Boxes
+-gecko.handlerService.schemes.webcal.0.uriTemplate=http://30boxes.com/external/widget?refer=ff&url=%s
+-
+-# The default set of protocol handlers for mailto:
+-gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail
+-gecko.handlerService.schemes.mailto.0.uriTemplate=http://compose.mail.yahoo.com/?To=%s
+-gecko.handlerService.schemes.mailto.1.name=Gmail
+-gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+-
+-# The default set of protocol handlers for irc:
+-gecko.handlerService.schemes.irc.0.name=Mibbit
+-gecko.handlerService.schemes.irc.0.uriTemplate=https://www.mibbit.com/?url=%s
+-
+-# The default set of protocol handlers for ircs:
+-gecko.handlerService.schemes.ircs.0.name=Mibbit
+-gecko.handlerService.schemes.ircs.0.uriTemplate=https://www.mibbit.com/?url=%s
++gecko.handlerService.defaultHandlersVersion=0
+--- comm-release.orig/mozilla/modules/libpref/src/init/all.js 2012-03-16 04:46:09.000000000 -0300
++++ comm-release/mozilla/modules/libpref/src/init/all.js 2012-05-12 04:03:52.163831535 -0300
+@@ -47,7 +47,7 @@
+ // SYNTAX HINTS: dashes are delimiters. Use underscores instead.
+ // The first character after a period must be alphabetic.
+
+-pref("keyword.URL", "http://www.google.com/search?ie=UTF-8&oe=utf-8&q=");
++pref("keyword.URL", "http://duckduckgo.com/?q=");
+ pref("keyword.enabled", false);
+ pref("general.useragent.locale", "chrome://global/locale/intl.properties");
+ pref("general.useragent.compatMode.firefox", false);
+--- comm-release.orig/mozilla/toolkit/content/plugins.html 2012-02-16 12:09:35.000000000 -0200
++++ comm-release/mozilla/toolkit/content/plugins.html 2012-05-12 03:56:16.599192244 -0300
+@@ -98,18 +98,6 @@
+ else
+ document.writeln("<h1 id=\"noplugs\">" + pluginsbundle.GetStringFromName("nopluginsareenabled_label") + "<\/h1>");
+
+- document.writeln("<div id=\"findmore\">" + pluginsbundle.GetStringFromName("findmore_label") + " ");
+- document.writeln("<a href=\"" + regionbundle.GetStringFromName("more_plugins_url") + "\">" + regionbundle.GetStringFromName("more_plugins_label") + "<\/a>.");
+- document.writeln("<\/div>");
+-
+- document.writeln("<div id=\"findpluginupdates\">" + pluginsbundle.GetStringFromName("findpluginupdates_label") + " ");
+- document.writeln("<a href=\"" + regionbundle.GetStringFromName("pluginupdates_url") + "\">" + regionbundle.GetStringFromName("pluginupdates_label") + "<\/a>.");
+- document.writeln("<\/div>");
+-
+- document.writeln("<div id=\"installhelp\">" + pluginsbundle.GetStringFromName("installhelp_label") + " ");
+- document.writeln("<a href=\"" + regionbundle.GetStringFromName("plugindoc_url") + "\">" + regionbundle.GetStringFromName("plugindoc_label") + "<\/a>.");
+- document.writeln("<\/div><hr>");
+-
+ for (var i = 0; i < numPlugins; i++)
+ {
+ var plugin = navigator.plugins[i];
+--- comm-release.orig/mozilla/toolkit/mozapps/plugins/content/pluginInstallerWizard.js 2012-02-16 12:09:38.000000000 -0200
++++ comm-release/mozilla/toolkit/mozapps/plugins/content/pluginInstallerWizard.js 2012-05-12 03:59:11.639451163 -0300
+@@ -107,6 +107,7 @@
+ this.mPluginInfoArrayLength++;
+ } else {
+ this.mPluginNotFoundArray[aPluginRequestItem.mimetype] = aPluginRequestItem;
++ this.mPluginNotFoundArray[aPluginRequestItem.mimetype].pluginsPage = null;
+ this.mPluginNotFoundArrayLength++;
+ }
+
+--- comm-release.orig/mozilla/toolkit/mozapps/plugins/content/pluginInstallerWizard.xul 2012-02-16 12:09:38.000000000 -0200
++++ comm-release/mozilla/toolkit/mozapps/plugins/content/pluginInstallerWizard.xul 2012-05-12 04:01:29.208462907 -0300
+@@ -138,10 +138,6 @@
+
+ <description id="pluginSummaryRestartNeeded" style="padding-top:10px;"
+ value="&pluginWizard.finalPage.restart.label;"/>
+- <spacer flex="1" />
+- <description id="moreInfoLink"
+- style="color:rgb(0, 0, 255); cursor:pointer; text-decoration:underline;"
+- value="&pluginWizard.finalPage.moreInfo.label;"/>
+ </wizardpage>
+
+ </wizard>
+--- comm-release.orig/suite/locales/en-US/chrome/browser/region.properties 2012-02-16 11:59:54.000000000 -0200
++++ comm-release/suite/locales/en-US/chrome/browser/region.properties 2012-05-12 04:10:18.982249044 -0300
+@@ -4,7 +4,7 @@
+ #
+ browser.startup.homepage=about:
+ browser.throbber.url=about:
+-browser.search.defaulturl=http://www.google.com/search?q=
++browser.search.defaulturl=http://duckduckgo.com/?q=
+
+ browser.translation.service=http://translate.google.com/translate?prev=/language_tools&u=
+ browser.translation.serviceDomain=translate.google.com
+@@ -15,7 +15,5 @@
+
+ # 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=DuckDuckGo
++browser.contentHandlers.types.0.uri=https://duckduckgo.com/search_box.html
+--- comm-release.orig/suite/locales/en-US/chrome/common/region.properties 2012-02-16 11:59:54.000000000 -0200
++++ comm-release/suite/locales/en-US/chrome/common/region.properties 2012-05-12 05:49:20.084819625 -0300
+@@ -1,10 +1,9 @@
+ # Default search engine
+-browser.search.defaultenginename=Google
++browser.search.defaultenginename=DuckDuckGo
+
+ # Search engine order (order displayed in the search bar dropdown)
+-browser.search.order.1=Google
+-browser.search.order.2=Yahoo
++browser.search.order.1=DuckDuckGo
+
+ # More information about this update link available in the update wizard.
+ # Only change this if you are providing localized release notes.
+-app.update.url.details=http://www.seamonkey-project.org/releases/
++app.update.url.details=http://packages.debian.org/source/sid/iceape
+--- comm-release.orig/suite/locales/en-US/chrome/mailnews/region.properties 2012-02-16 11:59:54.000000000 -0200
++++ comm-release/suite/locales/en-US/chrome/mailnews/region.properties 2012-05-12 04:28:05.202481512 -0300
+@@ -2,9 +2,9 @@
+ # messenger.properties
+ # mailnews.js
+ mailnews.start_page.url=chrome://messenger/content/start.xhtml
+-messenger.throbber.url=http://www.seamonkey-project.org/
+-compose.throbber.url=http://www.seamonkey-project.org/
+-addressbook.throbber.url=http://www.seamonkey-project.org/
++messenger.throbber.url=about:blank
++compose.throbber.url=about:blank
++addressbook.throbber.url=about:blank
+ # To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+ # mail.addr_book.mapit_url.format=
+ # The format for "mail.addr_book.mapit_url.format" is:
+--- comm-release.orig/suite/locales/en-US/profile/bookmarks.extra 2012-02-16 11:59:54.000000000 -0200
++++ comm-release/suite/locales/en-US/profile/bookmarks.extra 2012-05-12 04:34:50.172992393 -0300
+@@ -9,9 +9,7 @@
+
+ <DT><H3>Search the Web</H3>
+ <DL><p>
+- <DT><A HREF="http://www.google.com/">Google</A>
+- <DT><A HREF="http://groups.google.com/">Google Groups</A>
+- <DT><A HREF="http://news.google.com/">Google News</A>
++ <DT><A HREF="http://duckduckgo.com/">DuckDuckGo</A>
+ </DL><p>
+
+ #unfilter emptyLines
+--- comm-release.orig/suite/browser/browser-prefs.js 2012-02-16 11:59:53.000000000 -0200
++++ comm-release/suite/browser/browser-prefs.js 2012-05-12 04:19:25.031793983 -0300
+@@ -67,7 +67,7 @@
+
+ // 0 = blank, 1 = home (browser.startup.homepage), 2 = last
+ pref("browser.startup.page", 1);
+-pref("browser.startup.homepage", "chrome://navigator-region/locale/region.properties");
++pref("browser.startup.homepage", "about:blank");
+ pref("browser.startup.homepage.count", 1);
+
+ pref("browser.warnOnQuit", true);
+@@ -110,7 +110,7 @@
+ pref("browser.doorhanger.enabled", true);
+
+ // search engines URL
+-pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/seamonkey/search-engines/");
++pref("browser.search.searchEnginesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+ // pointer to the default engine name
+ pref("browser.search.defaultenginename", "chrome://communicator-region/locale/region.properties");
+@@ -587,10 +587,10 @@
+ // Preferences for AMO integration
+ pref("extensions.getAddons.cache.enabled", true); // also toggles personalized recommendations
+ pref("extensions.getAddons.maxResults", 15);
+-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/seamonkey/api/%API_VERSION%/search/guid:%IDS%?src=seamonkey&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
+-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/seamonkey/search?q=%TERMS%");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/seamonkey/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=seamonkey");
+-pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/seamonkey/discovery/pane/%VERSION%/%OS%");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+ // getMoreThemes is used by our UI under our switch theme menu
+ pref("extensions.getMoreThemesURL", "chrome://branding/locale/brand.properties");
+@@ -716,7 +715,7 @@
+ #endif
+
+ // plugin finder service url
+-pref("pfs.datasource.url", "https://pfs.mozilla.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%");
++pref("pfs.datasource.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+ pref("plugins.update.url", "http://www.mozilla.com/%LOCALE%/plugincheck/");
+ pref("plugins.update.notifyUser", false);
+ pref("plugins.hide_infobar_for_outdated_plugin", false);
+--- comm-release.orig/suite/locales/en-US/chrome/branding/brand.dtd 2012-05-12 05:14:55.000000000 -0300
++++ comm-release/suite/locales/en-US/chrome/branding/brand.dtd 2012-05-12 05:32:18.992033502 -0300
+@@ -1,4 +1,4 @@
+ <!ENTITY brandFullName "Iceape">
+ <!ENTITY brandShortName "Iceape">
+-<!ENTITY vendorShortName "Debian">
++<!ENTITY vendorShortName "Parabola">
+ <!ENTITY sidebarName "Sidebar">
+--- comm-release.orig/suite/locales/en-US/chrome/branding/brand.properties 2012-05-12 05:14:55.000000000 -0300
++++ comm-release/suite/locales/en-US/chrome/branding/brand.properties 2012-05-12 05:36:38.640803397 -0300
+@@ -1,9 +1,9 @@
+ brandFullName=Iceape
+ brandShortName=Iceape
+-vendorShortName=Debian
++vendorShortName=Parabola
+ sidebarName=Sidebar
+-extensions.getMoreThemesURL=https://addons.mozilla.org/%LOCALE%/%APP%/themes
++extensions.getMoreThemesURL=http://www.gnu.org/software/gnuzilla/addons.html#themes
+ extensions.getPersonasURL=https://addons.mozilla.org/%LOCALE%/%APP%/personas
+ spellchecker.dictionaries.download.url=https://addons.mozilla.org/%LOCALE%/%APP%/dictionaries
+-app.releaseNotesURL=http://www.seamonkey-project.org/releases/seamonkey%VERSION%/
+-app.vendorURL=http://www.seamonkey-project.org/
++app.releaseNotesURL=http://packages.debian.org/source/sid/iceape
++app.vendorURL=http://packages.debian.org/source/sid/iceape
+--- comm-release.orig/suite/locales/generic/profile/bookmarks.html.in 2012-02-16 11:59:54.000000000 -0200
++++ comm-release/suite/locales/generic/profile/bookmarks.html.in 2012-05-12 04:40:19.221095752 -0300
+@@ -11,37 +11,14 @@
+ <DL><p>
+ <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="NC:PersonalToolbarFolder">@personal_toolbarfolder@</H3>
+ <DL><p>
+- <DT><A HREF="http://www.seamonkey-project.org/">@seamonkey@</a>
+- @seamonkey_l10n@
+- <DT><A HREF="http://www.mozilla.org/">@mozilla_org@</A>
+- <DT><A HREF="http://www.mozillazine.org/">@mozillazine@</A>
+- <DT><A HREF="http://www.mozdev.org/">@mozdev@</A>
++ <DT><A HREF="https://parabolagnulinux.org/">Parabola GNU/Linux-libre</a>
++ <DT><A HREF="http://www.fsf.org/">Free Software Foundation</A>
++ <DT><A HREF="http://libreplanet.org/">LibrePlanet</A>
+ </DL><p>
+- <DT><H3>@seamonkey_and_mozilla@</H3>
++ <DT><H3>GNUzilla</H3>
+ <DL><p>
+- <DT><A HREF="http://www.seamonkey-project.org/">@seamonkey_long@</a>
+- @seamonkey_l10n_long@
+- <DT><H3>@mozilla_org@</H3>
+- <DL><p>
+- <DT><A HREF="http://www.mozilla.org/">@mozilla_org_long@</A>
+- <DT><A HREF="http://www.mozilla.org/projects/">@mozilla_projects@</A>
+- <DT><A HREF="http://www.mozilla.org/about/">@mozilla_about@</A>
+- </DL><p>
+- <DT><H3>@extend_seamonkey@</H3>
+- <DL><p>
+- <DT><A HREF="https://addons.mozilla.org/@AB_CD@/seamonkey/">@seamonkey_addons@</a>
+- <DT><A HREF="https://addons.mozilla.org/@AB_CD@/seamonkey/themes">@seamonkey_themes@</a>
+- <DT><A HREF="https://addons.mozilla.org/@AB_CD@/seamonkey/dictionaries">@seamonkey_dictionaries@</a>
+- <DT><A HREF="https://addons.mozilla.org/@AB_CD@/seamonkey/plugins">@seamonkey_plugins@</a>
+- <DT><A HREF="http://www.mozdev.org/">@mozdev@</A>
+- <DT><A HREF="http://www.mozdev.org/projects/applications/SeaMonkey.html">@mozdev_seamonkey@</A>
+- </DL><p>
+- <DT><H3>@community_support@</H3>
+- <DL><p>
+- <DT><A HREF="http://www.seamonkey-project.org/community">@seamonkey_community@</a>
+- <DT><A HREF="http://www.mozillazine.org/">@mozillazine@</A>
+- <DT><A HREF="http://forums.mozillazine.org/viewforum.php?f=40">@seamonkey_support@</A>
+- </DL><p>
++ <DT><A HREF="http://www.gnu.org/software/gnuzilla/">GNUzilla and IceCat</a>
++ <DT><a href="http://www.gnu.org/software/gnuzilla/addons.html">Free addons</a>
+ </DL><p>
+ #include bookmarks.extra
+ <HR>
diff --git a/libre-testing/icedove-libre/mozconfig b/libre/iceape-libre/mozconfig
index 4ad7c655c..5227d77a5 100644
--- a/libre-testing/icedove-libre/mozconfig
+++ b/libre/iceape-libre/mozconfig
@@ -1,3 +1,6 @@
+mk_add_options MOZ_CO_PROJECT=suite
+ac_add_options --enable-application=suite
+
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
@@ -14,11 +17,11 @@ ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
ac_add_options --enable-system-cairo
-ac_add_options --enable-system-pixman
ac_add_options --with-pthreads
# Features
ac_add_options --enable-startup-notification
+ac_add_options --disable-safe-browsing
ac_add_options --enable-gio
ac_add_options --disable-gnomevfs
@@ -33,15 +36,26 @@ ac_add_options --enable-optimize
export MOZILLA_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/moz-objdir
-
-# Icedove
-ac_add_options --disable-official-branding
-ac_add_options --with-branding=debian/icedove-branding
# Parabola
-ac_add_options --disable-safe-browsing
export BUILD_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
-# Build-generated
+# Debian
+ac_add_options --with-default-mozilla-five-home=/usr/lib/iceape
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --disable-official-branding
+ac_add_options --with-branding=debian/branding
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+ac_add_options --enable-mathml
+ac_add_options --disable-pedantic
+ac_add_options --disable-long-long-warning
+ac_add_options --disable-debug
+ac_add_options --enable-canvas
+ac_add_options --enable-extensions="default,-venkman,-inspector"
+ac_add_options --disable-elf-dynstr-gc
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --enable-crypto
+ac_add_options --disable-javaxpcom
diff --git a/libre/icedove-i18n/PKGBUILD b/libre/icedove-i18n/PKGBUILD
new file mode 100644
index 000000000..8213076af
--- /dev/null
+++ b/libre/icedove-i18n/PKGBUILD
@@ -0,0 +1,524 @@
+# $Id$
+# Maintainer: Márcio Silva <coadde@adinet.com.uy>
+# Maintainer: André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=icedove-i18n
+pkgver=11.0.1
+pkgname=('icedove-i18n-ar'
+ #'icedove-i18n-af'
+ 'icedove-i18n-be'
+ 'icedove-i18n-bn-bd'
+ 'icedove-i18n-bg'
+ 'icedove-i18n-br'
+ 'icedove-i18n-ca'
+ 'icedove-i18n-cs'
+ 'icedove-i18n-da'
+ 'icedove-i18n-de'
+ 'icedove-i18n-el'
+ 'icedove-i18n-en-gb'
+ 'icedove-i18n-es-ar'
+ 'icedove-i18n-es'
+ 'icedove-i18n-et'
+ 'icedove-i18n-eu'
+ 'icedove-i18n-fi'
+ 'icedove-i18n-fr'
+ 'icedove-i18n-fy-nl'
+ 'icedove-i18n-ga'
+ 'icedove-i18n-gd'
+ 'icedove-i18n-gl'
+ 'icedove-i18n-he'
+ 'icedove-i18n-hu'
+ 'icedove-i18n-id'
+ 'icedove-i18n-is'
+ 'icedove-i18n-it'
+ 'icedove-i18n-ja'
+ 'icedove-i18n-ko'
+ 'icedove-i18n-lt'
+ 'icedove-i18n-nb'
+ 'icedove-i18n-nl'
+ 'icedove-i18n-nn'
+ 'icedove-i18n-pa'
+ 'icedove-i18n-pl'
+ 'icedove-i18n-pt-br'
+ 'icedove-i18n-pt'
+ 'icedove-i18n-ro'
+ 'icedove-i18n-rm'
+ 'icedove-i18n-ru'
+ 'icedove-i18n-si'
+ 'icedove-i18n-sk'
+ 'icedove-i18n-sl'
+ 'icedove-i18n-sq'
+ 'icedove-i18n-sv'
+ 'icedove-i18n-ta-lk'
+ 'icedove-i18n-tr'
+ 'icedove-i18n-uk'
+ 'icedove-i18n-vi'
+ 'icedove-i18n-zh-cn'
+ 'icedove-i18n-zh-tw')
+
+pkgrel=1
+pkgdesc="Language pack for Debian Icedove"
+arch=('any')
+url="http://packages.debian.org/source/experimental/icedove"
+license=('MPL' 'GPL')
+depends=("icedove-libre>=$pkgver")
+_url=http://repo.parabolagnulinux.org/other/$pkgbase/releases/$pkgver
+source=(icedove-i18n-$pkgver-ar.xpi::$_url/ar.xpi
+# icedove-i18n-$pkgver-af.xpi::$_url/af.xpi
+ icedove-i18n-$pkgver-be.xpi::$_url/be.xpi
+ icedove-i18n-$pkgver-bn-BD.xpi::$_url/bn-BD.xpi
+ icedove-i18n-$pkgver-bg.xpi::$_url/bg.xpi
+ icedove-i18n-$pkgver-br.xpi::$_url/br.xpi
+ icedove-i18n-$pkgver-ca.xpi::$_url/ca.xpi
+ icedove-i18n-$pkgver-cs.xpi::$_url/cs.xpi
+ icedove-i18n-$pkgver-da.xpi::$_url/da.xpi
+ icedove-i18n-$pkgver-de.xpi::$_url/de.xpi
+ icedove-i18n-$pkgver-el.xpi::$_url/el.xpi
+ icedove-i18n-$pkgver-en-GB.xpi::$_url/en-GB.xpi
+ icedove-i18n-$pkgver-es-AR.xpi::$_url/es-AR.xpi
+ icedove-i18n-$pkgver-es-ES.xpi::$_url/es-ES.xpi
+ icedove-i18n-$pkgver-et.xpi::$_url/et.xpi
+ icedove-i18n-$pkgver-eu.xpi::$_url/eu.xpi
+ icedove-i18n-$pkgver-fi.xpi::$_url/fi.xpi
+ icedove-i18n-$pkgver-fr.xpi::$_url/fr.xpi
+ icedove-i18n-$pkgver-fy-NL.xpi::$_url/fy-NL.xpi
+ icedove-i18n-$pkgver-ga-IE.xpi::$_url/ga-IE.xpi
+ icedove-i18n-$pkgver-gd.xpi::$_url/gd.xpi
+ icedove-i18n-$pkgver-gl.xpi::$_url/gl.xpi
+ icedove-i18n-$pkgver-he.xpi::$_url/he.xpi
+ icedove-i18n-$pkgver-hu.xpi::$_url/hu.xpi
+ icedove-i18n-$pkgver-id.xpi::$_url/id.xpi
+ icedove-i18n-$pkgver-is.xpi::$_url/is.xpi
+ icedove-i18n-$pkgver-it.xpi::$_url/it.xpi
+ icedove-i18n-$pkgver-ja.xpi::$_url/ja.xpi
+ icedove-i18n-$pkgver-ko.xpi::$_url/ko.xpi
+ icedove-i18n-$pkgver-lt.xpi::$_url/lt.xpi
+ icedove-i18n-$pkgver-nb-NO.xpi::$_url/nb-NO.xpi
+ icedove-i18n-$pkgver-nl.xpi::$_url/nl.xpi
+ icedove-i18n-$pkgver-nn-NO.xpi::$_url/nn-NO.xpi
+ icedove-i18n-$pkgver-pa-IN.xpi::$_url/pa-IN.xpi
+ icedove-i18n-$pkgver-pl.xpi::$_url/pl.xpi
+ icedove-i18n-$pkgver-pt-BR.xpi::$_url/pt-BR.xpi
+ icedove-i18n-$pkgver-pt-PT.xpi::$_url/pt-PT.xpi
+ icedove-i18n-$pkgver-rm.xpi::$_url/rm.xpi
+ icedove-i18n-$pkgver-ro.xpi::$_url/ro.xpi
+ icedove-i18n-$pkgver-ru.xpi::$_url/ru.xpi
+ icedove-i18n-$pkgver-si.xpi::$_url/si.xpi
+ icedove-i18n-$pkgver-sk.xpi::$_url/sk.xpi
+ icedove-i18n-$pkgver-sl.xpi::$_url/sl.xpi
+ icedove-i18n-$pkgver-sq.xpi::$_url/sq.xpi
+ icedove-i18n-$pkgver-sv-SE.xpi::$_url/sv-SE.xpi
+ icedove-i18n-$pkgver-ta-LK.xpi::$_url/ta-LK.xpi
+ icedove-i18n-$pkgver-tr.xpi::$_url/tr.xpi
+ icedove-i18n-$pkgver-uk.xpi::$_url/uk.xpi
+ icedove-i18n-$pkgver-vi.xpi::$_url/vi.xpi
+ icedove-i18n-$pkgver-zh-CN.xpi::$_url/zh-CN.xpi
+ icedove-i18n-$pkgver-zh-TW.xpi::$_url/zh-TW.xpi)
+
+# Don't extract anything
+noextract=(${source[@]##*/})
+
+_path="/usr/lib/icedove/extensions/"
+
+package_icedove-i18n-ar() {
+ pkgdesc="Arabic language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ar.xpi "${pkgdir}/$_path/langpack-ar@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-af() {
+ pkgdesc="Afrikaans (South Africa) language pack for Debian Icedove"
+ replaces=icedove-af
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-af.xpi "${pkgdir}/$_path/langpack-af@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-be() {
+ pkgdesc="Belarusian language pack for Debian Icedove"
+ replaces=icedove-be
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-be.xpi "${pkgdir}/$_path/langpack-be@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-bn-bd() {
+ pkgdesc="Bangladesh language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-bn-BD.xpi "${pkgdir}/$_path/langpack-bn-BE@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-bg() {
+ pkgdesc="Bulgarian language pack for Debian Icedove"
+ replaces=icedove-bg
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-bg.xpi "${pkgdir}/$_path/langpack-bg@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-br() {
+ pkgdesc="Breton language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-br.xpi "${pkgdir}/$_path/langpack-br@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ca() {
+ pkgdesc="Catalan language pack for Debian Icedove"
+ replaces=icedove-ca
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ca.xpi "${pkgdir}/$_path/langpack-ca@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-cs() {
+ pkgdesc="Czech language pack for Debian Icedove"
+ replaces=icedove-cs
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-cs.xpi "${pkgdir}/$_path/langpack-cs@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-da() {
+ pkgdesc="Danish language pack for Debian Icedove"
+ replaces=icedove-da
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-da.xpi "${pkgdir}/$_path/langpack-da@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-de() {
+ pkgdesc="German language pack for Debian Icedove"
+ replaces=icedove-de
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-de.xpi "${pkgdir}/$_path/langpack-de@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-el() {
+ pkgdesc="Greek language pack for Debian Icedove"
+ replaces=icedove-el
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-el.xpi "${pkgdir}/$_path/langpack-el@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-en-gb() {
+ pkgdesc="English (GB) language pack for Debian Icedove"
+ replaces=icedove-en-gb
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-en-GB.xpi "${pkgdir}/$_path/langpack-en-GB@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-es-ar() {
+ pkgdesc="Spanish (AR) language pack for Debian Icedove"
+ replaces=icedove-es-ar
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-es-AR.xpi "${pkgdir}/$_path/langpack-es-AR@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-es() {
+ pkgdesc="Spanish language pack for Debian Icedove"
+ replaces=icedove-es
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-es-ES.xpi "${pkgdir}/$_path/langpack-es-ES@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-et() {
+ pkgdesc="Estonian language pack for Debian Icedove"
+ replaces=icedove-et
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-et.xpi "${pkgdir}/$_path/langpack-et@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-eu() {
+ pkgdesc="Basque language pack for Debian Icedove"
+ replaces=icedove-eu
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-eu.xpi "${pkgdir}/$_path/langpack-eu@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-fi() {
+ pkgdesc="Finnish language pack for Debian Icedove"
+ replaces=icedove-fi
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-fi.xpi "${pkgdir}/$_path/langpack-fi@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-fr() {
+ pkgdesc="French language pack for Debian Icedove"
+ replaces=icedove-fr
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-fr.xpi "${pkgdir}/$_path/langpack-fr@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-fy-nl(){
+ pkgdesc="Frysk (fy) language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-fy-NL.xpi "${pkgdir}/$_path/langpack-fy-NL@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ga() {
+ pkgdesc="Irish language pack for Debian Icedove"
+ replaces=icedove-ga
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ga-IE.xpi "${pkgdir}/$_path/langpack-ga-IE@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-gd() {
+ pkgdesc="Scottish Gaelic language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-gd.xpi "${pkgdir}/$_path/langpack-gd@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-gl() {
+ pkgdesc="Galician language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-gl.xpi "${pkgdir}/$_path/langpack-gl@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-he() {
+ pkgdesc="Hebrew language pack for Debian Icedove"
+ replaces=icedove-he
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-he.xpi "${pkgdir}/$_path/langpack-he@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-hu() {
+ pkgdesc="Hungarian language pack for Debian Icedove"
+ replaces=icedove-hu
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-hu.xpi "${pkgdir}/$_path/langpack-hu@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-id(){
+ pkgdesc="Indonesian language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-id.xpi "${pkgdir}/$_path/langpack-id@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-is() {
+ pkgdesc="Icelandic Gaelic language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-is.xpi "${pkgdir}/$_path/langpack-is@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-it() {
+ pkgdesc="Italian language pack for Debian Icedove"
+ replaces=icedove-it
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-it.xpi "${pkgdir}/$_path/langpack-it@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ja() {
+ pkgdesc="Japanese language pack for Debian Icedove"
+ replaces=icedove-ja
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ja.xpi "${pkgdir}/$_path/langpack-ja@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ko() {
+ pkgdesc="Korean language pack for Debian Icedove"
+ replaces=icedove-ko
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ko.xpi "${pkgdir}/$_path/langpack-ko@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-lt() {
+ pkgdesc="Lithuanian language pack for Debian Icedove"
+ replaces=icedove-lt
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-lt.xpi "${pkgdir}/$_path/langpack-lt@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-nb() {
+ pkgdesc="Norwegian (Bokmal) language pack for Debian Icedove"
+ replaces=icedove-nb
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-nb-NO.xpi "${pkgdir}/$_path/langpack-nb-NO@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-mk() {
+ pkgdesc="Macedonian language pack for Debian Icedove"
+ replaces=icedove-mk
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-mk.xpi "${pkgdir}/$_path/langpack-mk@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-nl() {
+ pkgdesc="Dutch language pack for Debian Icedove"
+ replaces=icedove-nl
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-nl.xpi "${pkgdir}/$_path/langpack-nl@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-nn() {
+ pkgdesc="Norwegian (Nynorsk) language pack for Debian Icedove"
+ replaces=icedove-nn
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-nn-NO.xpi "${pkgdir}/$_path/langpack-nn-NO@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-pa() {
+ pkgdesc="Punjabi language pack for Debian Icedove"
+ replaces=icedove-pa
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-pa-IN.xpi "${pkgdir}/$_path/langpack-pa-IN@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-pl() {
+ pkgdesc="Polish language pack for Debian Icedove"
+ replaces=icedove-pl
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-pl.xpi "${pkgdir}/$_path/langpack-pl@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-pt-br() {
+ pkgdesc="Brazilian Portuguese language pack for Debian Icedove"
+ replaces=icedove-pt-br
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-pt-BR.xpi "${pkgdir}/$_path/langpack-pt-BR@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-pt() {
+ pkgdesc="Portuguese language pack for Debian Icedove"
+ replaces=icedove-pt
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-pt-PT.xpi "${pkgdir}/$_path/langpack-pt-PT@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ro() {
+ pkgdesc="Romanian language pack for Debian Icedove"
+ replaces=icedove-ro
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ro.xpi "${pkgdir}/$_path/langpack-ro@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-rm() {
+ pkgdesc="Romansh language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-rm.xpi "${pkgdir}/$_path/langpack-rm@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ru() {
+ pkgdesc="Russian language pack for Debian Icedove"
+ replaces=icedove-ru
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ru.xpi "${pkgdir}/$_path/langpack-ru@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-si() {
+ pkgdesc="Sinhalese language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-si.xpi "${pkgdir}/$_path/langpack-si@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-sk() {
+ pkgdesc="Slovak language pack for Debian Icedove"
+ replaces=icedove-sk
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-sk.xpi "${pkgdir}/$_path/langpack-sk@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-sl() {
+ pkgdesc="Slovenian language pack for Debian Icedove"
+ replaces=icedove-sl
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-sl.xpi "${pkgdir}/$_path/langpack-sl@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-sq() {
+ pkgdesc="Albanian language pack for Debian Icedove"
+ replaces=icedove-sl
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-sq.xpi "${pkgdir}/$_path/langpack-sq@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-sv() {
+ pkgdesc="Swedish language pack for Debian Icedove"
+ replaces=icedove-sv
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-sv-SE.xpi "${pkgdir}/$_path/langpack-sv-SE@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-ta-lk() {
+ pkgdesc=" Tamil (Sri Lanka) language pack for Debian Icedove"
+ replaces=icedove-sv
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-ta-LK.xpi "${pkgdir}/$_path/langpack-ta-LK@icedove.mozilla.org.xpi"
+}
+
+
+package_icedove-i18n-tr() {
+ pkgdesc="Turkish language pack for Debian Icedove"
+ replaces=icedove-tr
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-tr.xpi "${pkgdir}/$_path/langpack-tr@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-uk() {
+ pkgdesc="Ukrainian language pack for Debian Icedove"
+ replaces=icedove-uk
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-uk.xpi "${pkgdir}/$_path/langpack-uk@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-vi() {
+ pkgdesc="Vietnamese language pack for Debian Icedove"
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-vi.xpi "${pkgdir}/$_path/langpack-vi@icedove.mozilla.org.xpi"
+}
+package_icedove-i18n-zh-cn() {
+ pkgdesc="Chinese (simplified) language pack for Debian Icedove"
+ replaces=icedove-zh-cn
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-zh-CN.xpi "${pkgdir}/$_path/langpack-zh-CN@icedove.mozilla.org.xpi"
+}
+
+package_icedove-i18n-zh-tw() {
+ pkgdesc="Chinese (traditional) language pack for Debian Icedove"
+ replaces=icedove-zh-tw
+ cd ${srcdir}
+ install -Dm644 icedove-i18n-$pkgver-zh-TW.xpi "${pkgdir}/$_path/langpack-zh-TW@icedove.mozilla.org.xpi"
+}
+md5sums=('43ea2aeec780c591af577215a8f928ae'
+ '0dc7a6ca6d308f4135ce135b87b19823'
+ '343f4b73820d9906205606833c48ddd1'
+ '56f7a9e47037c82fda2d97efcac6e2fa'
+ '7da75017f43c073b7f7e413d41794a37'
+ '07c7efe6d9400b17ef572c5769f25ccd'
+ '8dba7a9ff2c2b55908bb32b947fab75e'
+ 'e262a088217fceb213a8890124e85db6'
+ '9c2355ff0ca0b640e50f7a24ec5d9f6e'
+ '628c84299fc7b76a5f084905518b8f73'
+ 'a26276362394dedbbea98356d573f2f1'
+ '06c0ed88ff10c296f2066a7a84cc33d6'
+ '2a03c69e72bbe08e8938177908a3ab17'
+ 'e80febfd74cc81bc9e5cb9752c0b3b95'
+ '4ad12b69da9910e1c0122aa76c3513d5'
+ '5e9c7ab66141389b9300f8db28852a5a'
+ 'c3390ce9a18b979fe148652fc76ae311'
+ '85c17fe5018696d6999e7fed8c447edc'
+ 'a049d7cf3b9c9ef5ece4afced3b56f9d'
+ 'c483f4da184315444d1d094fd75b150a'
+ 'e57eba03836a14e8915a816a7655fb46'
+ 'c4d4caf6baf85ca22ed1ea19a3630d67'
+ 'e16465d4d1234fe7362b5ba2f73682f9'
+ '36fb64f2541e5a7ba0640931e8ee2be1'
+ 'd03b2ddcfc3cf28e1725df4972e2abfe'
+ 'f5fcf08545542a752b7355d1dd692c2d'
+ '842c4ce562c0beba6713424551d5d748'
+ '004c5c6a1a5bb575827fe626e0b804cc'
+ '0d810b4347b21d43d8b38fd077a63f9d'
+ 'e03ac78e858e0d345512bcc24f180838'
+ 'e17ab7b097085b9462d38a7d8aa4d027'
+ 'f58b78d51281acf36c9755abb6bbde14'
+ '086270a5669cb5db0a21bf5ca1c7620c'
+ 'c972a8eaf135cfeb9509603ae1d392d3'
+ 'c4eb654adce293e9ef6fe2cb2b1078bc'
+ 'd120891141f898644a93bb2317def809'
+ '78c32f4f1c814130f9cddce60b17a089'
+ '055d77477e07632dcb06a08d51609514'
+ '9b28657c99b9193cef3dbf959ed1849c'
+ '5c6ca9cd178df6a6fca1f638a0845b0a'
+ '277cf819683b9a9016b322a77a3236fa'
+ '7104f5238b221ea4dc502c14eae12ea1'
+ 'a29ed3f28bab6a970c15378505b352cc'
+ '5774b9adccafa40221e6eb3011de5db0'
+ '5419f4456c65703ebeb9d4befc0c2d2c'
+ '2423b38ceb1022a6064070a3f7f5600f'
+ '5de7fd60a6a74bf23066a6cfe9dee2d6'
+ '47a23af3184ee6999433a9f59da3a67a'
+ 'd3242d7e7c35df585e55918ed6556f16'
+ 'd0f7e27dfdc4aa14398e8422e3135a4a')
diff --git a/libre/icedove-libre/.directory b/libre/icedove-libre/.directory
new file mode 100644
index 000000000..ef6a156b3
--- /dev/null
+++ b/libre/icedove-libre/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,5,10,17,26,4
diff --git a/libre/icedove-libre/PKGBUILD b/libre/icedove-libre/PKGBUILD
new file mode 100644
index 000000000..6bd50cd47
--- /dev/null
+++ b/libre/icedove-libre/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer : Márcio Silva <coadde@adinet.com.uy>
+# Maintainer : André Silva <andre.paulista@adinet.com.uy>
+
+# We're getting this from Debian Experimental
+_debname=icedove
+_debver=11.0
+_debrel=1
+_debrepo=http://ftp.debian.org/debian/pool/main/
+debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
+
+_pkgname=${_debname}
+pkgname=${_debname}-libre
+pkgver=${_debver}.${_debrel}
+pkgrel=1
+pkgdesc="A libre version of Debian Icedove, the Standalone Mail/News reader based on Mozilla Thunderbird."
+arch=('i586' 'i686' 'x86_64' 'mips64el')
+license=('GPL2' 'MPL' 'LGPL')
+url="http://packages.debian.org/source/experimental/${_pkgname}"
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss' 'sqlite' 'startup-notification')
+makedepends=('unzip-libre' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13' 'quilt')
+optdepends=('libcanberra: for sound support')
+replaces=('thunderbird')
+conflicts=('thunderbird')
+provides=('thunderbird')
+install=$_pkgname.install
+source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
+ "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.debian.tar.gz"
+ mozconfig
+ channel-prefs.js
+ vendor.js
+ gcc47.patch
+ clrf.patch
+ makefile.patch
+ ${_pkgname}.desktop)
+md5sums=('0d4aaf892cd1cbf9bda38928947025fe'
+ 'd4401c080fe5190e8bb1326f10808231'
+ 'd6d58d3104a44624e0a3d227cdf1c211'
+ '476ec205162340fb0679f522c9d31c3b'
+ '4eecc4fc5aafaf0da651a09eadc90bee'
+ '94d5cd599ccc4438f192d8daabf98b6a'
+ 'c395d443a8c4c16880c7322bcf174743'
+ 'c4ed43e85945e180a89cce03e45ec62c'
+ 'e785e0c267f4435ae1a9aa0b03bcacfb')
+
+build() {
+ export QUILT_PATCHES=debian/patches
+ export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
+ export QUILT_DIFF_ARGS='--no-timestamps'
+ export LDFLAGS="${LDFLAGS} -Wl,--as-needed,-rpath,/usr/lib/${_pkgname}"
+ export PYTHON="/usr/bin/python2"
+ export DEBIAN_BUILD="comm-release"
+ mv debian "${srcdir}/${DEBIAN_BUILD}"
+ cd "${srcdir}/${DEBIAN_BUILD}"
+ mv debian/${_pkgname}-branding "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}"
+ cp -a debian/app-icons/${_pkgname}big.svg debian/app-icons/${_pkgname}_icon.svg
+ for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}/mailicon${i/x*/}.png"
+ done
+ for i in 48x48 64x64; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${srcdir}/${DEBIAN_BUILD}/mail/branding/${_pkgname}/content/icon${i/x*/}.png"
+ done
+ quilt push -av
+
+ patch -Np1 -i "$srcdir/gcc47.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
+ patch -Np1 -i "$srcdir/makefile.patch"
+
+ cp "${srcdir}/mozconfig" .mozconfig
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${DEBIAN_BUILD}"
+
+ make -j1 -f client.mk DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/vendor.js" "${pkgdir}/usr/lib/${_pkgname}/defaults/pref"
+ # Recommend free addons
+ install -m644 "${srcdir}/channel-prefs.js" "${pkgdir}/usr/lib/${_pkgname}/defaults/pref"
+
+ for i in 16x16 22x22 24x24 32x32 48x48 64x64 128x128 256x256; do
+ install -Dm644 "debian/app-icons/${_pkgname}${i/x*/}.png" "${pkgdir}/usr/share/icons/hicolor/$i/apps/${_pkgname}.png"
+ done
+ install -Dm644 "debian/app-icons/${_pkgname}_icon.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/${_pkgname}.svg"
+
+ install -Dm644 "$srcdir/${_pkgname}.desktop" \
+ "$pkgdir/usr/share/applications/${_pkgname}.desktop"
+
+ rm -rf "${pkgdir}"/usr/lib/${_pkgname}/{dictionaries,hyphenation,searchplugins}
+ ln -sf /usr/share/hunspell "${pkgdir}/usr/lib/${_pkgname}/dictionaries"
+ ln -sf /usr/share/hyphen "${pkgdir}/usr/lib/${_pkgname}/hyphenation"
+ ln -sf /usr/lib/mozilla/searchplugins "${pkgdir}/usr/lib/${_pkgname}/searchplugins"
+ # We don't want the development stuff
+ rm -r "${pkgdir}"/usr/{include,lib/$_pkgname-devel,share/idl}
+}
diff --git a/libre-testing/icedove-libre/channel-prefs.js b/libre/icedove-libre/channel-prefs.js
index 13b1ba388..13b1ba388 100644
--- a/libre-testing/icedove-libre/channel-prefs.js
+++ b/libre/icedove-libre/channel-prefs.js
diff --git a/libre/icedove-libre/clrf.patch b/libre/icedove-libre/clrf.patch
new file mode 100644
index 000000000..375708ac4
--- /dev/null
+++ b/libre/icedove-libre/clrf.patch
@@ -0,0 +1,260 @@
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-03-12 23:37:12.000000000 -0300
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-05-07 12:33:58.517612453 -0300
+@@ -688,7 +688,7 @@
+ PL_strcat(encoding, "{");
+ lengthStr.AppendInt((PRInt32) strlen(value));
+ PL_strcat(encoding, lengthStr.get());
+- PL_strcat(encoding, "}"CRLF);
++ PL_strcat(encoding, "}" CRLF);
+ PL_strcat(encoding, value);
+ return NS_OK;
+ }
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-05-07 12:41:08.003264793 -0300
+@@ -753,7 +753,7 @@
+ }
+ }
+ }
+-#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
++#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
+
+ // if status offset isn't in the first block, this code won't work. There's no good reason
+ // for the status offset not to be at the beginning of the message anyway.
+@@ -1203,7 +1203,7 @@
+ // check if there's an envelope header; if not, write one.
+ if (strncmp(m_dataBuffer, "From ", 5))
+ {
+- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
++ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
+ m_offlineMsgSize += bytesWritten;
+ }
+ }
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-05-07 12:44:43.127347489 -0300
+@@ -1722,7 +1722,7 @@
+ {
+ m_sendDone = PR_TRUE;
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
++ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_DONE;
+ return(0);
+@@ -1969,7 +1969,7 @@
+ {
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+ // send a quit command to close the connection with the server.
+- if (SendData(url, "QUIT"CRLF) == NS_OK)
++ if (SendData(url, "QUIT" CRLF) == NS_OK)
+ {
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_ERROR_DONE;
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-05-07 12:48:29.417179064 -0300
+@@ -8298,7 +8298,7 @@
+ bool needMoreData = false;
+ char * newLine = nsnull;
+ PRUint32 numBytesInLine = 0;
+- const char *envelope = "From "CRLF;
++ const char *envelope = "From " CRLF;
+ offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
+ fileSize += bytesWritten;
+ do
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-05-07 15:45:58.551202719 -0300
+@@ -1410,7 +1410,7 @@
+ {
+ // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
+ nsCAutoString commandBuffer(GetServerCommandTag());
+- commandBuffer.Append(" IDLE"CRLF);
++ commandBuffer.Append(" IDLE" CRLF);
+
+ do
+ {
+@@ -3290,7 +3290,7 @@
+ commandString.Append(messageIds);
+ commandString.Append(" (");
+ commandString.Append(attribute);
+- commandString.Append(")"CRLF);
++ commandString.Append(")" CRLF);
+ nsresult rv = SendData(commandString.get());
+
+ if (NS_SUCCEEDED(rv))
+@@ -5283,7 +5283,7 @@
+
+ IncrementCommandTagNumber();
+ nsCAutoString command(GetServerCommandTag());
+- command.Append(" expunge"CRLF);
++ command.Append(" expunge" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5359,7 +5359,7 @@
+ command.Append(gAppName);
+ command.Append("\" \"version\" \"");
+ command.Append(gAppVersion);
+- command.Append("\")"CRLF);
++ command.Append("\")" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5816,7 +5816,7 @@
+ nsCAutoString correctedPassword;
+ EscapeUserNamePasswordString(password.get(), &correctedPassword);
+ command.Append(correctedPassword);
+- command.Append("\""CRLF);
++ command.Append("\"" CRLF);
+ rv = SendData(command.get(), PR_TRUE /* suppress logging */);
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+@@ -7446,7 +7446,7 @@
+ nsCString command(GetServerCommandTag());
+ command += " create \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if(NS_SUCCEEDED(rv))
+@@ -7549,7 +7549,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " lsub \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7578,7 +7578,7 @@
+ command += useXLIST ?
+ " xlist \"\" \"" : " list \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7599,7 +7599,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " subscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7617,7 +7617,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " unsubscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7631,7 +7631,7 @@
+ if (m_urlInProgress)
+ return;
+ nsCAutoString command (GetServerCommandTag());
+- command += " IDLE"CRLF;
++ command += " IDLE" CRLF;
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+ {
+@@ -7658,7 +7658,7 @@
+ nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
+ if (asyncInputStream)
+ asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
+- nsresult rv = SendData("DONE"CRLF);
++ nsresult rv = SendData("DONE" CRLF);
+ // set a short timeout if we don't want to wait for a response
+ if (m_transport && !waitForResponse)
+ m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
+@@ -7727,8 +7727,8 @@
+ PRUint32 msgsHandled = 0;
+ const char *formatString;
+ formatString = (idsAreUid)
+- ? "%s uid store %s %s"CRLF
+- : "%s store %s %s"CRLF;
++ ? "%s uid store %s %s" CRLF
++ : "%s store %s %s" CRLF;
+
+ do
+ {
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-05-07 12:57:22.050615120 -0300
+@@ -185,7 +185,7 @@
+
+ NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
+ *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
+- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
++ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
+ if (sendingIdleDone)
+ fWaitingForMoreClientInput = PR_FALSE;
+
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-05-07 12:59:45.857182813 -0300
+@@ -2483,7 +2483,7 @@
+ return(MK_OUT_OF_MEMORY);
+ m_pop3ConData->next_state_after_response = POP3_GET_LIST;
+ m_listpos = 0;
+- return SendData(m_url, "LIST"CRLF);
++ return SendData(m_url, "LIST" CRLF);
+ }
+
+
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-05-07 13:01:42.912022177 -0300
+@@ -1473,7 +1473,7 @@
+ *newbody = 0;
+ PL_strcatn(newbody, newbodylen, "<PRE>");
+ PL_strcatn(newbody, newbodylen, body);
+- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
++ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
+ PR_Free(body);
+ body = newbody;
+ }
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-03-12 23:37:13.000000000 -0300
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-05-07 13:04:41.511265477 -0300
+@@ -280,7 +280,7 @@
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
+ MimeWriteAString(obj, obj->options->state->detachedFilePath);
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+@@ -293,10 +293,10 @@
+ status = MimeWriteAString(obj, header);
+ if (status < 0)
+ return status;
+- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
++ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
+ }
+ nsCString result;
+ char timeBuffer[128];
+@@ -306,8 +306,8 @@
+ "%a %b %d %H:%M:%S %Y",
+ &now);
+ MimeWriteAString(obj, nsDependentCString(timeBuffer));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
+ MimeHeaders_write_raw_headers(mult->hdrs, obj->options, PR_FALSE);
+ }
+ PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/icedove-libre/gcc47.patch b/libre/icedove-libre/gcc47.patch
new file mode 100644
index 000000000..115d65131
--- /dev/null
+++ b/libre/icedove-libre/gcc47.patch
@@ -0,0 +1,63 @@
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc comm-release/mozilla/ipc/chromium/src/base/file_util.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:38:11.474783536 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -8,7 +8,7 @@
+ #include <io.h>
+ #endif
+ #include <stdio.h>
+-#if defined(ANDROID)
++#if defined(ANDROID) || defined(OS_POSIX)
+ #include <unistd.h>
+ #endif
+
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:38:11.381450924 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -5,6 +5,9 @@
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:38:11.438117153 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:38:11.418117308 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-03 18:43:29.218995578 +0000
+@@ -14,6 +14,8 @@
+ #include <time.h>
+ #endif
+
++#include <unistd.h>
++
+ #include <limits>
+
+ #include "base/basictypes.h"
+diff -Nur comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in comm-release/mozilla/toolkit/crashreporter/client/Makefile.in
+--- comm-release.orig/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:38:56.101105510 +0000
++++ comm-release/mozilla/toolkit/crashreporter/client/Makefile.in 2012-04-03 18:43:29.218995578 +0000
+@@ -69,6 +69,9 @@
+ $(STDCXX_COMPAT) \
+ $(NULL)
+
++# Needed for moz_free
++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
++
+ ifeq ($(OS_ARCH),WINNT)
+ CPPSRCS += crashreporter_win.cpp
+ LIBS += \
diff --git a/libre/icedove-libre/icedove.desktop b/libre/icedove-libre/icedove.desktop
new file mode 100644
index 000000000..ef2cd76e9
--- /dev/null
+++ b/libre/icedove-libre/icedove.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=Icedove
+Comment=Mail & News Reader
+GenericName=Mail Client & News Reader
+Exec=icedove %u
+TryExec=icedove
+Icon=icedove
+Terminal=false
+Type=Application
+Categories=Network;Email;
+MimeType=message/rfc822;x-scheme-handler/mailto;
+StartupNotify=true
diff --git a/libre-testing/icedove-libre/icedove.install b/libre/icedove-libre/icedove.install
index 4d4a283db..4d4a283db 100644
--- a/libre-testing/icedove-libre/icedove.install
+++ b/libre/icedove-libre/icedove.install
diff --git a/libre/icedove-libre/makefile.patch b/libre/icedove-libre/makefile.patch
new file mode 100644
index 000000000..8f8137bec
--- /dev/null
+++ b/libre/icedove-libre/makefile.patch
@@ -0,0 +1,46 @@
+diff -Nur comm-release.orig/mail/branding/icedove/Makefile.in comm-release/mail/branding/icedove/Makefile.in
+--- comm-release.orig/mail/branding/icedove/Makefile.in 2012-04-18 15:42:15.000000000 -0300
++++ comm-release/mail/branding/icedove/Makefile.in 2012-05-08 04:03:25.680643202 -0300
+@@ -38,11 +38,11 @@
+ # Branding Makefile for Icedove branding
+
+ DEPTH = ../../..
+-topsrcdir = ../../../
++topsrcdir = @top_srcdir@
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+
+-include $(topsrcdir)/config/autoconf.mk
++include $(DEPTH)/config/autoconf.mk
+
+ DIRS = \
+ locales \
+@@ -50,7 +50,7 @@
+
+ PREF_JS_EXPORTS += $(srcdir)/thunderbird-branding.js
+
+-include $(DEPTH)/config/rules.mk
++include $(topsrcdir)/config/rules.mk
+
+ export::
+ $(NSINSTALL) -D $(DIST)/branding
+diff -Nur comm-release.orig/mail/branding/icedove/locales/Makefile.in comm-release/mail/branding/icedove/locales/Makefile.in
+--- comm-release.orig/mail/branding/icedove/locales/Makefile.in 2012-04-18 15:42:15.000000000 -0300
++++ comm-release/mail/branding/icedove/locales/Makefile.in 2012-05-08 05:32:57.481620942 -0300
+@@ -36,13 +36,13 @@
+ # ***** END LICENSE BLOCK *****
+
+ DEPTH = ../../../..
+-topsrcdir = ../../../..
++topsrcdir = @top_srcdir@
+ srcdir = @srcdir@
+ VPATH = @srcdir@
+ relativesrcdir = mail/branding/icedove/locales
+
+-include $(topsrcdir)/config/autoconf.mk
++include $(DEPTH)/config/autoconf.mk
+
+ DEFINES += -DAB_CD=$(AB_CD) -DMOZ_DISTRIBUTION_ID_UNQUOTED=$(MOZ_DISTRIBUTION_ID)
+
+-include $(DEPTH)/config/rules.mk
++include $(topsrcdir)/config/rules.mk
diff --git a/libre/icedove-libre/mozconfig b/libre/icedove-libre/mozconfig
new file mode 100644
index 000000000..58f8ce24f
--- /dev/null
+++ b/libre/icedove-libre/mozconfig
@@ -0,0 +1,64 @@
+mk_add_options MOZ_CO_PROJECT=mail
+ac_add_options --enable-application=mail
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-pixman
+ac_add_options --with-pthreads
+
+# Features
+ac_add_options --enable-startup-notification
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+
+# Optimization
+ac_add_options --enable-optimize
+
+export MOZILLA_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+
+# Parabola
+export BUILD_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+
+# Debian
+export MAIL_PKG_SHARED=1
+mk_add_options MAIL_PKG_SHARED=1
+ac_add_options --disable-official-branding
+ac_add_options --with-branding=mail/branding/icedove
+ac_add_options --enable-extensions=default
+ac_add_options --with-default-mozilla-five-home=/usr/lib/icedove
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-elf-dynstr-gc
+ac_add_options --disable-strip
+ac_add_options --disable-strip-libs
+ac_add_options --disable-install-strip
+ac_add_options --enable-pango
+ac_add_options --enable-xft
+ac_add_options --enable-xinerama
+ac_add_options --enable-svg
+ac_add_options --enable-svg-renderer=cairo
+ac_add_options --enable-canvas
+ac_add_options --enable-crypto
+ac_add_options --enable-shared-js
+ac_add_options --enable-readline
diff --git a/libre-testing/icedove-libre/vendor.js b/libre/icedove-libre/vendor.js
index 279bdc158..279bdc158 100644
--- a/libre-testing/icedove-libre/vendor.js
+++ b/libre/icedove-libre/vendor.js
diff --git a/libre/iceweasel-i18n/PKGBUILD b/libre/iceweasel-i18n/PKGBUILD
index 0743504ee..b03b8196b 100644
--- a/libre/iceweasel-i18n/PKGBUILD
+++ b/libre/iceweasel-i18n/PKGBUILD
@@ -9,8 +9,8 @@
# - Run 'make'. It will take care of everything else for you.
_debname=iceweasel
-_debver=11.0
-_debrel=2
+_debver=12.0
+_debrel=7
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -56,87 +56,87 @@ package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() {
"
done
-md5sums=('c11d65787c3f2848e0b582115e50c3ca'
- 'f579bb571a43c33d6a13fd71f7853331'
- '5ec94ba1055f11e8a33674a3ea623fca'
- '7598e4409463c98c6f358a49c0e0e864'
- 'f3a7156974b43a7829e68e82e6dd749a'
- '2cd6d08c82a59cee5454d3da763d9808'
- '3b5529e7d1a6c87e9a99b251bb008b9f'
- 'f1eb67cbc423a49dd4b4f85e1f50034c'
- '76c39cc1134b4074283fe080a1d0b29e'
- '1b282bba90202701fa63fc21b44e78d5'
- '77f818359b98fdd2a23b40989f9f56c6'
- 'cbd8fb3d20a5269ac728c717ebd1d98c'
- '83e2314c8b80d0fd551fa083d89cef70'
- 'e68bed0670b4a82dbd66512e8ca130c7'
- '48ea629311ec141de087474ad95fa122'
- '9c1849045f0004e49c240061358b244f'
- '72bce5d1aa3e6b21f6b7e7b6f2c8d4f2'
- '224a5bb2ee4fdde8cc20e79a70e30eab'
- 'e856bf522ad406c3b17e605a922a149f'
- 'e522dd90baf0fdc61fbd45a496993fed'
- 'adc195bb74d8d84f768ab0077c6c80b2'
- 'a8012c48c890655c1ef1826f900f7cd3'
- 'fad33e552bd6fb805a5c92325c649eff'
- 'cad39ebafc45aad5d32f115fa1839ac0'
- '238fa3a6a33cd30ad2712510cc578baa'
- '5dadee4c8eca35353e811b93a6602860'
- '67c7d7ab47d8cd636d6849f9fda68fe7'
- 'b7cf88fe4b118aea853978c7ff43eb57'
- 'c0aa19616cf37148a7f33789c9e88deb'
- '806a1b78d92c1e6504051f2c6bf2cdcf'
- '92ee27275709f2c81f229f40d032da23'
- '6f7369cff0c0680f52394d9caee7b136'
- '2adba18d2bd10051950f1b37325ddbce'
- 'a2e1834d4b28fa8dea5b8d01adcedb7e'
- '929bfa11831b267b419a1b09b4d614d4'
- 'fe5ea0a2cc3ee9b45618517a2a6cd162'
- '45cd4f3e44046bfdc78848d12a0983f9'
- '7f7681277e566052e6831377b1bcd479'
- 'f136cefdb1b7a8b9fc18cba540414fcc'
- 'e714caf6fc74f9978ca5911310f33f10'
- '7a745b384d1ee293decce327189d49e8'
- '5b22c59215b6ce6d3fd588305a6429f6'
- 'b6f1f722168a7e2dc70b02c199e96198'
- 'e490e5a65c40cd60ba64e4511f1dcef1'
- '640c52cb0b2e4f8ae0d7206fb3db3b33'
- 'a42b31f567dcc8032360caa684df1c08'
- 'd8da0314598179ac5c3479dd397d7827'
- '7e065b66f0673c3801ee7f37ff33344d'
- 'c8c5d1646483013fa249b3a839523e53'
- 'abf1db7ea2e8014e135f324cf3efc141'
- '8a352420c9580fe3c930a4b3c4d3530e'
- '465ca43f628d0567b3de36626b54bf40'
- '6cc860dae180ed5f80916759da290a9d'
- 'b0d97a60501760c78f520ba4151427a7'
- '829311af6d4d0d78378fdcfd2cfccc68'
- 'b54daae60d32b270a44b891fdb61e3b5'
- '39246a00ea31552326d0ea52f8eb1f05'
- 'e49074be0a43ebc9810d89c24de75268'
- '281f20486ae5b6caadfc5504e7f036ac'
- '740c3a38b45788378c6c5db795d31ee1'
- '296df42d755d93032b9a3dc619bc502d'
- '74b59fa4676d2779f8e1081ac253b122'
- 'a92960238a2c942c4b49b0f4187d0a71'
- '230fbd4b3e6a65545b4a37ec1549d0e6'
- 'e606f5a9db88334a6cb33086340f4ff7'
- '0b52b803abe1acb1e137a57fe0497746'
- '00ddf2c8c6adfcd51230dd469d01ec75'
- '254303860ecc7c25157f08a4d55a4f68'
- '70d037f9c5c8f25e2b335c7016f17b58'
- 'b3da484dade70c544d4f0e6a829ef806'
- '05347b208889b3e4aa86d9a6dccda71d'
- 'a2212a06adac1aa6b74bc2f7e9de2af2'
- '371d5e9b0a10feec5e05d3fdfd949bc6'
- '63611b468b7d41a0470385e19a849a8d'
- 'dc691a55cc7f95018e4178e6e794a1a4'
- '90723a80c36b85006fa7514641cd2f2a'
- '918683079f1d037d05a9a38b05d4ca51'
- '77dda2b5fd59bcdb66918b4d13b486ae'
- '33c2d8bff6cdf141614457c71fcf5d36'
- '08990457e150c081e0f505515c15df09'
- '379c5ede369994f016745e7dd83dfe54'
- '15062007856eb66b04c26694a7f35727'
- '569b1a54a9ca0b8149f151eb4cf57957'
- '970928f01c78b094a2c054e58cd85bff')
+md5sums=('5ff63ad5c05d6d1b6602ad5741a0ebbe'
+ 'ba39d79b5d311942e638668e2e4ed2c9'
+ '7f090255a9fe67dd690659ee174ee7a8'
+ '4c6bd176a604e52c72d9d879aa16ef92'
+ '2a5589be415e0fe395c16d59cdc7c91a'
+ '9e7908cee8a30ca2514bfb30ad8a73a1'
+ '19d7de55b66a939400384d5ff463b6e8'
+ 'd9270f14e3119d6395345a1e211ae6be'
+ '3becb7d177c66b261a21af21b7ec9cb5'
+ '68758f2d56daa04c456b53852b811ae6'
+ 'c128c138f022a1d81313fcbfa332dfe3'
+ 'af0f6166f137fcd886e39e6f09c6bdf1'
+ 'fea6cbd83d51a6c07b36ff33ffc0dd64'
+ 'cf2c157ee82b06ca7d10fed9f0c3e71a'
+ '85816cd36489cbee7e3ac8ebde0f6217'
+ 'a34727f3cb2e32133a280978dc354b01'
+ 'e31213480521b80600207fd67adda16a'
+ '53b15a8b5ef4659bf67dc66ba946e2d2'
+ '4fa7defd9b33e26231e3d236b0fd9d8c'
+ '6788e9cdd0cc01b82d9a49800ce809ed'
+ '26cbb5f5afe5fbaa26716a297b6b2a46'
+ 'df5c334e257805af2ebdf685a643e706'
+ '898a92607281f0263d670b4eb28ca224'
+ '8aa4093d5f55587dcf951201301c5246'
+ '1f4531c0c5f41a5095d811c107d276ac'
+ '907f8599e1e4a342b3b19072661cc72e'
+ '4db5b7af448becc5dd56e0a0cb9f908d'
+ '0fb24139ee7ea7b7c340d31e9e58ae04'
+ '7ff7ae7d1cd9a713dad7070c38dd4f42'
+ 'f8f6385a9f6c1ecaa8d299ac72aa046e'
+ '49c99a2a04144e6b33cafed7e33b47ea'
+ 'bc9a4b47fd087ceefce8745a2cedd615'
+ 'd7a4703936bfde284cc46d68dede421f'
+ '615df26846bf62714466a7e1dd2a7e5e'
+ '3c666f8153645a9d958753eb5e910ef2'
+ '5217d26e9f4465db7433e77b7bbc5233'
+ 'd3ffdf2ece6ca4d84fc0061371690b28'
+ 'ccf85e0bc3be22824e1aa5ad99873248'
+ 'e3bf49a5c040bf88583d5aa1b886eeea'
+ 'a3c545319134c7febf801bb45722ab6f'
+ '48c9d21d50e2b5ccb3c0d1a5f8b46bb5'
+ 'df6a5bedd8f5684f8b8b3f6fc11e7ceb'
+ 'f82373a67a80e8ab9c39678e3eb92353'
+ '72084f9a0960ca6d3ac4a3b16b27e6e5'
+ '66763631a58e597fbd0e69f73bf08c94'
+ 'af8c4e38439d6ad799eb071a9e59742f'
+ 'fba1d988df08fbd991b961a35ccfd56e'
+ 'b1792658b67d09c6cb1b28c73253668a'
+ 'd0398797d63b6ba71478cb6ea00bae35'
+ '8cb0fa6026c0303b603969563b2ef911'
+ 'f1d6d2f4a6a937f802040dc295e4e112'
+ '0f57699e98cc355de7c3bdaccbbfb832'
+ '7b86f62efab9124feda8793fda381a3a'
+ '84f27e886c65c91a2aeb3cfc9bfddff4'
+ 'b55de8bc0f7c5a24de8b53a2fea82478'
+ '954f672c975029c170e7a77156e23557'
+ 'f4758ff2db7be02c7498f635c17505a3'
+ 'f24a6033051be1d638790dc5b1fa9198'
+ '573df4582c8fd6941b044f40900d4c99'
+ 'a413353b6d7b50659b681d76cdd8f776'
+ '3a9147ba480b4aececbc70aa33fc9917'
+ '37319736f6e25d70add33217eff30818'
+ '2a4bc9f1c0b55f37e7fc92ef3ab8cf5d'
+ '1fff9acffe3326545beb09c740d44b6b'
+ '62d690efe261982864d3fa32e0239a96'
+ '082d3648630d6598a39f677da29cff36'
+ '228708e4516f88e68f829f1a9db61c57'
+ '9cc41239414fdc754c3b793f1d7e3687'
+ '760e3e973ba13d237eeec5242d2ac844'
+ '631e269b9b67af6a5051c66fe83817c0'
+ '0a87ae60bf970f9fa37b00d9682e2213'
+ 'dc02816eb0a9abe9ebd92aa80b7d494a'
+ '11d5de175fc96065d89d06474f6aaeeb'
+ '5e0d0cfe252ad6209ca1fb5dba69e0f7'
+ 'ddb128f54193c45b88640cf157420f3b'
+ '53d1ecb05a575de362868efcfdd6043f'
+ 'b7440790e099bc475f5e5fe18440dbe4'
+ '6affd9862729c6c6697f96464c7475bc'
+ 'd6ddadc8f0d32c2c3e601ae825881fac'
+ '4dfb121fdaab263e650fe741f6d353c3'
+ '45b4d8707e1bfd30e0b5393bb2e09533'
+ '51d955380bd47c8c6709a6a47b54f600'
+ '9f6818419d059157cb995a86892ad1f7'
+ 'b7a7679359068b22efc4ba5902a7db39')
diff --git a/libre/iceweasel-libre/PKGBUILD b/libre/iceweasel-libre/PKGBUILD
index 3ef4da470..85ede7409 100644
--- a/libre/iceweasel-libre/PKGBUILD
+++ b/libre/iceweasel-libre/PKGBUILD
@@ -12,8 +12,8 @@ _pgo=false
# We're getting this from Debian Sid
_debname=iceweasel
-_debver=11.0
-_debrel=2
+_debver=12.0
+_debrel=7
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -27,11 +27,12 @@ if $_pgo; then
pkgname+='-pgo'
fi
-pkgdesc="A libre version of Debian Iceweasel, the browser based on Mozilla Firefox."
+pkgdesc="A libre version of Debian Iceweasel, the Browser based on Mozilla Firefox."
arch=('i586' 'i686' 'x86_64' 'mips64el')
license=('GPL2' 'MPL' 'LGPL')
depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss>=3.13.1' 'sqlite3' 'startup-notification')
-makedepends=( 'autoconf2.13' 'diffutils' 'imagemagick' 'libidl2' 'librsvg' 'libxslt' 'mesa' 'pkg-config' 'python2' 'quilt' 'unzip' 'wireless_tools' 'yasm' 'zip')
+makedepends=( 'autoconf2.13' 'diffutils' 'imagemagick' 'libidl2' 'librsvg' 'libxslt' 'mesa' 'pkg-config' 'python2' 'quilt' 'unzip' 'wireless_tools' 'zip')
+[ "$CARCH" != "mips64el" ] && makedepends+=('yasm')
if $_pgo; then
makedepends+=('xorg-server-xvfb')
options=(!ccache)
@@ -49,13 +50,13 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
iceweasel-install-dir.patch
region.properties
vendor.js)
-md5sums=('01d9d18909ca9fff2483d8fd779a0f89'
- '59349da94b095fe0623d09ce75696766'
- 'f407208a750cdc9bea3a6a3a3e42dd89'
+md5sums=('b45f57bfe21b0e6db4f0683e794917cb'
+ '08aa0a949d9cbb26116490f7878a62fe'
+ 'd7ad1c025d2442427a06cc702906ef0d'
'eab149c1994ab14392e55af3abb08e80'
'ac29b01c189f20abae2f3eef1618ffc0'
'a485a2b5dc544a8a2bd40c985d2e5813'
- 'addd3a3420cebeda152b447705b086e9'
+ '64be2fab525189c285ee04495d628035'
'e529742c0a425648087bc3ce537fe4c5'
'f1c76e7e244257856a386ca2de69bdf0'
'0d053487907de4376d67d8f499c5502b')
@@ -110,6 +111,20 @@ fi
sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
browser/base/Makefile.in
+ # This is a bug, we should fix it.
+ if [ "$CARCH" = "mips64el" ]; then
+ # Fix MIPS N32 support.
+ sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \
+ js/src/assembler/wtf/Platform.h
+ # Disable JIT.
+ sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \
+ js/src/assembler/wtf/Platform.h
+ sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.in
+ echo 'ac_add_options --disable-methodjit' >> .mozconfig
+ echo 'ac_add_options --disable-tracejit' >> .mozconfig
+ echo 'ac_add_options --disable-jemalloc' >> .mozconfig
+ fi
+
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname"
export PYTHON="/usr/bin/python2"
diff --git a/libre/iceweasel-libre/gcc47.patch b/libre/iceweasel-libre/gcc47.patch
new file mode 100644
index 000000000..829d59510
--- /dev/null
+++ b/libre/iceweasel-libre/gcc47.patch
@@ -0,0 +1,75 @@
+
+# HG changeset patch
+# User Martin Stránský <stransky@redhat.com>
+# Date 1328886461 -3600
+# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
+# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
+Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
+
+diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
+--- a/ipc/chromium/src/base/file_util_linux.cc
++++ b/ipc/chromium/src/base/file_util_linux.cc
+@@ -1,15 +1,18 @@
+ // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+
+ #include "base/eintr_wrapper.h"
+ #include "base/file_path.h"
+ #include "base/string_util.h"
+
+diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
+--- a/ipc/chromium/src/base/message_pump_libevent.cc
++++ b/ipc/chromium/src/base/message_pump_libevent.cc
+@@ -1,16 +1,19 @@
+ // Copyright (c) 2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+ #include "base/scoped_nsautorelease_pool.h"
+ #include "base/scoped_ptr.h"
+ #include "base/time.h"
+ #include "third_party/libevent/event.h"
+
+diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
+--- a/ipc/chromium/src/base/time_posix.cc
++++ b/ipc/chromium/src/base/time_posix.cc
+@@ -8,16 +8,19 @@
+ #include <mach/mach_time.h>
+ #endif
+ #include <sys/time.h>
+ #ifdef ANDROID
+ #include <time64.h>
+ #else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+
+ namespace base {
diff --git a/libre/iceweasel-libre/libre.patch b/libre/iceweasel-libre/libre.patch
index c1bb0a8c7..ecebbb3ce 100644
--- a/libre/iceweasel-libre/libre.patch
+++ b/libre/iceweasel-libre/libre.patch
@@ -9,12 +9,12 @@ diff -urN iceweasel-9.0.1.orig/browser/app/profile/firefox.js iceweasel-9.0.1/br
-pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/guid:%IDS%?src=firefox&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%");
-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=firefox");
--pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%");
-++pref("extensions.getAddons.get.url", "");
-++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.webservice.discoverURL", "http://www.gnu.org/s/gnuzilla/addons.html");
+-pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%/%COMPATIBILITY_MODE%");
++pref("extensions.getAddons.get.url", "");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.webservice.discoverURL", "http://www.gnu.org/s/gnuzilla/addons.html");
// Blocklist preferences
pref("extensions.blocklist.enabled", true);
@@ -135,23 +135,23 @@ diff -urN iceweasel-9.0.1.orig/layout/ipc/test-ipcbrowser.xul iceweasel-9.0.1/la
diff -urN iceweasel-9.0.1.orig/mobile/xul/app/mobile.js iceweasel-9.0.1/mobile/xul/app/mobile.js
--- mozilla-build/mobile/xul/app/mobile.js.orig 2012-03-20 01:02:30.300551777 -0300
+++ mozilla-build/mobile/xul/app/mobile.js 2012-03-20 01:02:40.820551342 -0300
-@@ -218,13 +218,12 @@
+@@ -220,13 +220,12 @@
/* preferences for the Get Add-ons pane */
pref("extensions.getAddons.cache.enabled", true);
pref("extensions.getAddons.maxResults", 15);
-pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/mobile/recommended/");
-pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/list/featured/all/%MAX_RESULTS%/%OS%/%VERSION%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/mobile/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%");
-pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/mobile/");
-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%");
-pref("extensions.getAddons.getWithPerformance.url", "https://services.addons.mozilla.org/%LOCALE%/mobile/api/%API_VERSION%/search/guid:%IDS%?src=mobile&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/s/gnuzilla/addons.html");
-++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/s/gnuzilla/addons.html");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
/* preference for the locale picker */
pref("extensions.getLocales.get.url", "");
diff --git a/libre/initscripts/PKGBUILD b/libre/initscripts/PKGBUILD
index f8b70de29..e58947f8d 100644
--- a/libre/initscripts/PKGBUILD
+++ b/libre/initscripts/PKGBUILD
@@ -1,18 +1,19 @@
# $Id: PKGBUILD 144989 2011-12-13 15:25:38Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
-# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
pkgname=initscripts
-pkgver=2012.02.1
-pkgrel=1
+pkgver=2012.05.2
+pkgrel=2
pkgdesc="System initialization/bootup scripts (Parabola branding)"
arch=('any')
url="https://parabolagnulinux.org"
license=('GPL2')
groups=('base')
backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown etc/conf.d/wireless)
-depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=174' 'iproute2'
+depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=182' 'udev<=183' 'iproute2'
'ncurses' 'kbd' 'findutils' 'sysvinit')
optdepends=('bridge-utils: Network bridging support'
'dhcpcd: DHCP network configuration'
@@ -22,11 +23,11 @@ makedepends=(asciidoc)
install=initscripts.install
source=("https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.xz"
'wireless.conf.d')
+md5sums=('2b845c1c6660b32720aa12aa5f9649be'
+ '027576534885b8d5dded9be546057b12')
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
install -D -m644 ${srcdir}/wireless.conf.d ${pkgdir}/etc/conf.d/wireless
}
-md5sums=('db7506749d240cbe1e5988d3a81d72a9'
- '027576534885b8d5dded9be546057b12')
diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD
index 719cd3a4f..9c1223d07 100644
--- a/libre/kdebase-konqueror-libre/PKGBUILD
+++ b/libre/kdebase-konqueror-libre/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id$
+# $Id: PKGBUILD 158148 2012-05-03 13:20:53Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
-# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname='kdebase-konqueror'
pkgname='kdebase-konqueror-libre'
-pkgver=4.8.2
-pkgrel=1
+pkgver=4.8.3
+pkgrel=1.3
arch=('i686' 'x86_64' 'mips64el')
url="http://kde.org/applications/internet/konqueror/"
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdebase')
makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.xz"
- "konq-about-fsdg.diff")
-sha1sums=('13dc2e6c8639feadc9a5a334d0720a60b1e3ccb6'
+ "konq-about-fsdg.diff")
+sha1sums=('593053e7fdd50b32e6f9264edf2a69e499ddc0a6'
'f41541371414dcbe5e76687835e648112b3ff364')
pkgdesc='KDE File Manager & Web Browser'
depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
index aa2a51ddb..933527aa9 100644
--- a/libre/kdelibs-libre/PKGBUILD
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 155359 2012-04-02 12:16:32Z andrea $
+# $Id: PKGBUILD 158132 2012-05-03 13:20:07Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=kdelibs
pkgname=kdelibs-libre
-pkgver=4.8.2
+pkgver=4.8.3
pkgrel=1
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64' 'mips64el')
@@ -24,7 +24,7 @@ source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.
'kde-applications-menu.patch'
'use-pythondontwritebytecode.patch'
'khtml-fsdg.diff')
-sha1sums=('f844ae0877880563361144d9577706064c3483e7'
+sha1sums=('50633efa4ea2a133e51bf55286ff754c46f2eae2'
'86ee8c8660f19de8141ac99cd6943964d97a1ed7'
'a1e35760d5b4e29471ad357c963a343c67200f32'
'a1502a964081ad583a00cf90c56e74bf60121830')
diff --git a/libre/kdenetwork-kopete-libre/PKGBUILD b/libre/kdenetwork-kopete-libre/PKGBUILD
new file mode 100644
index 000000000..1c2292a45
--- /dev/null
+++ b/libre/kdenetwork-kopete-libre/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 158333 2012-05-03 17:21:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-kopete-libre')
+pkgver=4.8.3
+pkgrel=3.1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
+ 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+ 'libktorrent' 'libmms' 'mediastreamer')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz"
+ 'gcc47.patch')
+sha1sums=('9da87317c6a10243d6fff8c121c04146415f65cd'
+ '0e1325569e296d98e7b1be12305c1c018104685b')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -p4 -i "${srcdir}"/gcc47.patch
+
+ cd "${srcdir}"
+# 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"
+
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_LibMeanwhile=OFF \
+ -DWITH_qq=OFF
+ make
+}
+
+package_kdenetwork-kopete-libre() {
+ pkgdesc='Instant Messenger (without skype support)'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'libgadu' 'mediastreamer')
+ conflicts=('kdenetwork-kopete')
+ provides=("kdenetwork-kopete=${pkgver}")
+ replaces=('kdenetwork-kopete')
+ url="http://kde.org/applications/internet/kopete/"
+ install='kdenetwork-kopete.install'
+ cd $srcdir/build/kopete
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kopete
+ make DESTDIR=$pkgdir install
+}
diff --git a/libre/kdenetwork-kopete-libre/gcc47.patch b/libre/kdenetwork-kopete-libre/gcc47.patch
new file mode 100644
index 000000000..78af901dc
--- /dev/null
+++ b/libre/kdenetwork-kopete-libre/gcc47.patch
@@ -0,0 +1,59 @@
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/socketaddress.cc 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/socketaddress.cc 2012/05/03 16:11:00 1292762
+@@ -31,6 +31,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
++#include <unistd.h>
+ #endif
+
+ #include <cstring>
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/ssladapter.cc 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/ssladapter.cc 2012/05/03 16:11:00 1292762
+@@ -27,6 +27,12 @@
+
+ #include "talk/base/ssladapter.h"
+
++#ifdef POSIX
++extern "C" {
++#include <unistd.h>
++}
++#endif
++
+ #if !defined(SSL_USE_SCHANNEL) && !defined(SSL_USE_OPENSSL)
+ #ifdef WIN32
+ #define SSL_USE_SCHANNEL 1
+--- branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/stringutils.h 2012/05/03 16:03:23 1292761
++++ branches/KDE/4.8/kdenetwork/kopete/protocols/jabber/googletalk/libjingle/talk/base/stringutils.h 2012/05/03 16:11:00 1292762
+@@ -198,15 +198,6 @@
+ }
+
+ template<class CTYPE>
+-size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
+- va_list args;
+- va_start(args, format);
+- size_t len = vsprintfn(buffer, buflen, format, args);
+- va_end(args);
+- return len;
+-}
+-
+-template<class CTYPE>
+ size_t vsprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format,
+ va_list args) {
+ int len = vsnprintf(buffer, buflen, format, args);
+@@ -217,6 +208,15 @@
+ return len;
+ }
+
++template<class CTYPE>
++size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
++ va_list args;
++ va_start(args, format);
++ size_t len = vsprintfn(buffer, buflen, format, args);
++ va_end(args);
++ return len;
++}
++
+ ///////////////////////////////////////////////////////////////////////////////
+ // Allow safe comparing and copying ascii (not UTF-8) with both wide and
+ // non-wide character strings.
diff --git a/libre/kdenetwork-kopete-libre/kdenetwork-kopete.install b/libre/kdenetwork-kopete-libre/kdenetwork-kopete.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/libre/kdenetwork-kopete-libre/kdenetwork-kopete.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdenetwork-kopete-libre/kdenetwork.install b/libre/kdenetwork-kopete-libre/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/libre/kdenetwork-kopete-libre/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD
index 8f3ff312b..0bda68d17 100644
--- a/libre/kdeutils-ark-libre/PKGBUILD
+++ b/libre/kdeutils-ark-libre/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 154731 2012-03-30 16:15:36Z andrea $
+# $Id: PKGBUILD 158207 2012-05-03 13:23:51Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=kdeutils-ark
pkgname=kdeutils-ark-libre
-pkgver=4.8.2
+pkgver=4.8.3
pkgrel=1
pkgdesc='Archiving Tool'
url='http://kde.org/applications/utilities/ark/'
@@ -19,7 +19,7 @@ replaces=('kdeutils-ark')
conflicts=('kdeutils-ark')
install=${_pkgname}.install
source=("http://download.kde.org/stable/${pkgver}/src/ark-${pkgver}.tar.xz")
-sha1sums=('d39be864ed818dd49aeba84ca4c02c0e5813eadf')
+sha1sums=('9ff1fff082f53f31d0d31f2570005ae551fd2164')
build() {
cd "${srcdir}"
diff --git a/libre/kile-libre/PKGBUILD b/libre/kile-libre/PKGBUILD
index d41e129b3..be5acfd2f 100644
--- a/libre/kile-libre/PKGBUILD
+++ b/libre/kile-libre/PKGBUILD
@@ -1,27 +1,33 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 147972 2012-01-29 10:07:14Z ronald $
+# $Id: PKGBUILD 159260 2012-05-19 19:37:30Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
_pkgname=kile
pkgname=kile-libre
-pkgver=2.1.1
-pkgrel=1.1
+pkgver=2.1.2
+pkgrel=1
pkgdesc="A user friendly TeX/LaTeX frontend for KDE"
arch=("i686" "x86_64")
license=('GPL2')
url="http://kile.sourceforge.net/"
-depends=('kdebase-runtime' 'texlive-core' 'kdebase-kwrite')
+depends=('kdebase-runtime' 'texlive-core' 'kdebase-katepart')
makedepends=('cmake' 'automoc4')
conflicts=('kile')
replaces=('kile')
provides=('kile')
install=${_pkgname}.install
-source=("http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.bz2")
-sha1sums=('36987669dd9db05b063a0b4650ef3589dc79f711')
+source=("http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.bz2"
+ "no-acroread.patch")
+sha1sums=('238a8fde4fca00e06b314c13671ff53e2ac4845c'
+ '9bbe5d1b0e2a78b13667fcf4e5e21f801447f9d6')
build() {
- cd "${srcdir}"
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ # Don't recommend a nonfree PDF viewer.
+ patch -Np1 -i "${srcdir}/no-acroread.patch"
+ cd ..
mkdir build
cd build
cmake ../${_pkgname}-${pkgver} \
diff --git a/libre/lilo/.directory b/libre/lilo/.directory
new file mode 100644
index 000000000..ba03b0e05
--- /dev/null
+++ b/libre/lilo/.directory
@@ -0,0 +1,2 @@
+[Dolphin]
+Timestamp=2012,5,3,19,29,58
diff --git a/libre/lilo/PKGBUILD b/libre/lilo/PKGBUILD
index 169037bc2..8103a1ac1 100644
--- a/libre/lilo/PKGBUILD
+++ b/libre/lilo/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=lilo
pkgver=23.2
-pkgrel=3
+pkgrel=3.1
pkgdesc="A bootloader for Linux (Parabola rebranded)"
arch=('i686' 'x86_64')
url="https://alioth.debian.org/projects/lilo/"
@@ -19,9 +19,6 @@ backup=('etc/lilo.conf')
depends=('device-mapper' 'coreutils')
makedepends=('bin86' 'sharutils')
optdepends=('perl: to use keytab-lilo')
-replaces=('lilo')
-conflicts=('lilo')
-provides=("lilo=$pkgver")
install=lilo.install
options=('!makeflags')
source=("http://lilo.alioth.debian.org/ftp/sources/${pkgname}-${pkgver}.tar.gz"
diff --git a/libre/linux-libre-lts/CVE-2012-0056.patch b/libre/linux-libre-lts/CVE-2012-0056.patch
deleted file mode 100644
index 4098f3506..000000000
--- a/libre/linux-libre-lts/CVE-2012-0056.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream.
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open. That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler. If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve. So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd@ut.ee>
-Cc: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- fs/proc/base.c | 145 +++++++++++++++------------------------------------------
- 1 file changed, 39 insertions(+), 106 deletions(-)
-
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *
- return result;
- }
-
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
--
-- mm = get_task_mm(task);
-- if (!mm)
-- return ERR_PTR(-EINVAL);
--
-- /*
-- * A task can always look at itself, in case it chooses
-- * to use system calls instead of load instructions.
-- */
-- if (task == current)
-- return mm;
--
-- /*
-- * If current is actively ptrace'ing, and would also be
-- * permitted to freshly attach with ptrace now, permit it.
-- */
-- if (task_is_stopped_or_traced(task)) {
-- int match;
-- rcu_read_lock();
-- match = (tracehook_tracer_task(task) == current);
-- rcu_read_unlock();
-- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
-- return mm;
-- }
--
-- /*
-- * No one else is allowed.
-- */
-- mmput(mm);
-- return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
-- int err;
--
-- /*
-- * Avoid racing if task exec's as we might get a new mm but validate
-- * against old credentials.
-- */
-- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
-- if (err)
-- return ERR_PTR(err);
--
-- mm = __check_mem_permission(task);
-- mutex_unlock(&task->signal->cred_guard_mutex);
--
-- return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- struct mm_struct *mm;
- int err;
-@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct tas
-
- mm = get_task_mm(task);
- if (mm && mm != current->mm &&
-- !ptrace_may_access(task, PTRACE_MODE_READ)) {
-+ !ptrace_may_access(task, mode)) {
- mmput(mm);
- mm = ERR_PTR(-EACCES);
- }
-@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct tas
- return mm;
- }
-
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+ return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- int res = 0;
-@@ -816,38 +763,39 @@ static const struct file_operations proc
-
- static int mem_open(struct inode* inode, struct file* file)
- {
-- file->private_data = (void*)((long)current->self_exec_id);
-+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ struct mm_struct *mm;
-+
-+ if (!task)
-+ return -ESRCH;
-+
-+ mm = mm_access(task, PTRACE_MODE_ATTACH);
-+ put_task_struct(task);
-+
-+ if (IS_ERR(mm))
-+ return PTR_ERR(mm);
-+
- /* OK to pass negative loff_t, we can catch out-of-range */
- file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+ file->private_data = mm;
-+
- return 0;
- }
-
- static ssize_t mem_read(struct file * file, char __user * buf,
- size_t count, loff_t *ppos)
- {
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ int ret;
- char *page;
- unsigned long src = *ppos;
-- int ret = -ESRCH;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- ret = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out;
--
-- mm = check_mem_permission(task);
-- ret = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- ret = -EIO;
--
-- if (file->private_data != (void*)((long)current->self_exec_id))
-- goto out_put;
-+ return -ENOMEM;
-
- ret = 0;
-
-@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * fi
- }
- *ppos = src;
-
--out_put:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out:
-- put_task_struct(task);
--out_no_task:
- return ret;
- }
-
-@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * f
- {
- int copied;
- char *page;
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- unsigned long dst = *ppos;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- copied = -ESRCH;
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- copied = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out_task;
--
-- mm = check_mem_permission(task);
-- copied = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- copied = -EIO;
-- if (file->private_data != (void *)((long)current->self_exec_id))
-- goto out_mm;
-+ return -ENOMEM;
-
- copied = 0;
- while (count > 0) {
-@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * f
- }
- *ppos = dst;
-
--out_mm:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out_task:
-- put_task_struct(task);
--out_no_task:
- return copied;
- }
-
-@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff
- return file->f_pos;
- }
-
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+ struct mm_struct *mm = file->private_data;
-+
-+ mmput(mm);
-+ return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- .llseek = mem_lseek,
- .read = mem_read,
- .write = mem_write,
- .open = mem_open,
-+ .release = mem_release,
- };
-
- static ssize_t environ_read(struct file *file, char __user *buf,
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index 4c7de83e5..3593442f9 100644
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -9,9 +9,9 @@ pkgname=('linux-libre-lts' 'linux-libre-lts-headers') # Build stock -LIBRE kerne
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-LTS
_basekernel=3.0
-_sublevel=29
+_sublevel=32
pkgver=${_basekernel}.${_sublevel}
-_lxopkgver=${_basekernel}.27 # nearly always the same as pkgver
+_lxopkgver=${_basekernel}.31 # nearly always the same as pkgver
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
@@ -32,17 +32,17 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- '6c1dcf39863434add4043d0a3678001f'
+ '1fc88c19baf04fbb37385712ad9c4d57'
'df7e69a7b238c6492b589cc2beb894d2'
'2ef390e115d6ae1c074c30fec9258442'
- 'd2c0701480bce49fd4b40dc46b9863f1'
+ 'c072b17032e80debc6a8626299245d46'
'2967cecc3af9f954ccc822fd63dca6ff'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
'f36222e7ce20c8e4dc27376f9be60f6c'
- '6f0a19113e73495e24873c31feab8464')
+ 'bacdceaf5ce186cfe69dffc89cd246a0')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -141,7 +141,7 @@ build() {
package_linux-libre-lts() {
pkgdesc="The Linux-libre Kernel and modules - stable longtime supported kernel package suitable for servers"
- depends=('coreutils' 'module-init-tools>=3.16')
+ depends=('coreutils' 'kmod')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26-lts' "linux-lts=$pkgver")
conflicts=('kernel26-lts' 'kernel26-libre-lts' 'linux-lts')
@@ -199,10 +199,10 @@ package_linux-libre-lts() {
# gzip -9 all modules to save 100MB of space
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
# make room for external modules
- ln -s "../extramodules-${_basekernel}${_kernelname:--LIBRE}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ ln -s "../extramodules-${_basekernel}${_kernelname:--LIBRE-LTS}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from post_install/upgrade
- mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}"
- echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}/version"
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE-LTS}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE-LTS}/version"
}
package_linux-libre-lts-headers() {
@@ -348,7 +348,7 @@ package_linux-libre-lts-headers() {
done
# remove unneeded architectures
- rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,um,unicore32,v850,xtensa}
if [ "$CARCH" = "mips64el" ]; then
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
else
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
index 714f68a17..6cd9761a7 100644
--- a/libre/linux-libre-lts/linux-libre-lts.install
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts
-KERNEL_VERSION=3.0.29-1-LIBRE-LTS
+KERNEL_VERSION=3.0.32-1-LIBRE-LTS
post_install () {
# updating module dependencies
diff --git a/libre/linux-libre-lts/linux-libre-lts.preset b/libre/linux-libre-lts/linux-libre-lts.preset
index 4621af434..37cf35ed0 100644
--- a/libre/linux-libre-lts/linux-libre-lts.preset
+++ b/libre/linux-libre-lts/linux-libre-lts.preset
@@ -1,4 +1,4 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-libre-lts' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-libre-lts"
diff --git a/libre/linux-libre-tools/PKGBUILD b/libre/linux-libre-tools/PKGBUILD
index d30a61137..b7dc50f94 100644
--- a/libre/linux-libre-tools/PKGBUILD
+++ b/libre/linux-libre-tools/PKGBUILD
@@ -3,9 +3,12 @@
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgbase=linux-libre-tools
+_pkgname=('perf' 'cpupower')
pkgname=('perf-libre' 'cpupower-libre')
-pkgver=3.3
-kernver=${pkgver}
+_basekernel=3.4
+#_sublevel=1
+#pkgver=${_basekernel}.${_sublevel}
+pkgver=${_basekernel}
pkgrel=2
license=('GPL2')
arch=('i686' 'x86_64' 'mips64el')
@@ -13,39 +16,58 @@ url='http://linux-libre.fsfla.org/'
options=('!strip')
makedepends=('asciidoc' 'xmlto')
# split packages need all package dependencies set manually in makedepends
-makedepends+=('python2-libre' 'libnewt' 'elfutils' 'pciutils')
-source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/$kernver-gnu/linux-libre-$kernver-gnu.tar.xz"
+makedepends+=('python2' 'libnewt' 'elfutils' 'pciutils')
+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"
'cpupower.rc'
'cpupower.conf'
'cpupower.service')
-md5sums=('5487da14ca81715a469c7594d39722fa'
- '26af384ca282bc0dc38ff65acc7bb4b9'
+md5sums=('a5e128ca059cceb8b69148b41ff4ac6f'
+ '73dbc931e86b3b73d6e2338dcbee81a4'
'18d5aa9e4c6bb23bb02bf65e155e0f0e'
'20870541e88109d2f153be3c58a277f1')
build() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu"
+ fi
+
+ cd ${srcdir}
msg2 'Build perf'
- cd linux-$kernver/tools/perf
- make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
- PERF_VERSION=$pkgver-$pkgrel all man
+ pushd linux-$pkgver/tools/perf
+ make \
+ DESTDIR="$pkgdir/usr" \
+ perfexecdir="lib/$_pkgname" \
+ PYTHON=python2 \
+ NO_GTK2=1 \
+ PERF_VERSION=$pkgver-$pkgrel \
+ all man
+ popd
msg2 'Build cpupower'
+ cd linux-$pkgver/tools/power/cpupower
# we cannot use --as-needed
LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"}
- cd "$srcdir/linux-$kernver/tools/power/cpupower"
make VERSION=$pkgver-$pkgrel
}
package_perf-libre() {
pkgdesc='Linux-libre kernel performance auditing tool'
- depends=('python2-libre' 'libnewt' 'elfutils')
+ depends=('python2' 'libnewt' 'elfutils')
replaces=('perf')
conflicts=('perf')
provides=("perf=$pkgver")
- cd linux-${kernver}/tools/perf
- make PYTHON=python2 DESTDIR="${pkgdir}/usr" perfexecdir="lib/$pkgname" \
- PERF_VERSION=$pkgver install install-man
+ cd linux-$pkgver/tools/perf
+ make \
+ DESTDIR="$pkgdir/usr" \
+ perfexecdir="lib/$_pkgname" \
+ PYTHON=python2 \
+ NO_GTK2=1 \
+ PERF_VERSION=$pkgver-$pkgrel \
+ install install-man
}
package_cpupower-libre() {
@@ -56,18 +78,17 @@ package_cpupower-libre() {
conflicts=('cpupower' 'cpufrequtils')
provides=("cpupower=$pkgver")
- cd linux-$kernver/tools/power/cpupower
+ pushd linux-$pkgver/tools/power/cpupower
make \
DESTDIR="$pkgdir" \
mandir='/usr/share/man' \
docdir='/usr/share/doc/cpupower' \
install install-man
+ popd
# install rc.d script
- cd "$srcdir"
install -D -m 755 cpupower.rc "$pkgdir/etc/rc.d/cpupower"
install -D -m 644 cpupower.conf "$pkgdir/etc/conf.d/cpupower"
install -D -m 644 cpupower.service "$pkgdir/usr/lib/systemd/system/cpupower.service"
-
}
# vim:set ts=2 sw=2 ft=sh et:
diff --git a/libre/linux-libre-tools/cpupower.rc b/libre/linux-libre-tools/cpupower.rc
index 9b0bcddb7..27a491e95 100644
--- a/libre/linux-libre-tools/cpupower.rc
+++ b/libre/linux-libre-tools/cpupower.rc
@@ -33,7 +33,7 @@ case "$1" in
(($fail > 0)) && stat_fail && exit 1 || stat_done
;;
*)
- echo "usage: $0 {start|restart}"
+ echo "usage: ${0##*/} {start|restart}"
esac
true
diff --git a/libre/linux-libre/CVE-2012-0056.patch b/libre/linux-libre/CVE-2012-0056.patch
deleted file mode 100644
index 6a83fef1c..000000000
--- a/libre/linux-libre/CVE-2012-0056.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf8
-Content-Transfer-Encoding: 8bit
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open. That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler. If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve. So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd@ut.ee>
-Cc: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- fs/proc/base.c | 145 +++++++++++++++-----------------------------------------
- 1 files changed, 39 insertions(+), 106 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 5485a53..662ddf2 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path)
- return result;
- }
-
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
--
-- mm = get_task_mm(task);
-- if (!mm)
-- return ERR_PTR(-EINVAL);
--
-- /*
-- * A task can always look at itself, in case it chooses
-- * to use system calls instead of load instructions.
-- */
-- if (task == current)
-- return mm;
--
-- /*
-- * If current is actively ptrace'ing, and would also be
-- * permitted to freshly attach with ptrace now, permit it.
-- */
-- if (task_is_stopped_or_traced(task)) {
-- int match;
-- rcu_read_lock();
-- match = (ptrace_parent(task) == current);
-- rcu_read_unlock();
-- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
-- return mm;
-- }
--
-- /*
-- * No one else is allowed.
-- */
-- mmput(mm);
-- return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
-- struct mm_struct *mm;
-- int err;
--
-- /*
-- * Avoid racing if task exec's as we might get a new mm but validate
-- * against old credentials.
-- */
-- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
-- if (err)
-- return ERR_PTR(err);
--
-- mm = __check_mem_permission(task);
-- mutex_unlock(&task->signal->cred_guard_mutex);
--
-- return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- struct mm_struct *mm;
- int err;
-@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
-
- mm = get_task_mm(task);
- if (mm && mm != current->mm &&
-- !ptrace_may_access(task, PTRACE_MODE_READ)) {
-+ !ptrace_may_access(task, mode)) {
- mmput(mm);
- mm = ERR_PTR(-EACCES);
- }
-@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
- return mm;
- }
-
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+ return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- int res = 0;
-@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = {
-
- static int mem_open(struct inode* inode, struct file* file)
- {
-- file->private_data = (void*)((long)current->self_exec_id);
-+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ struct mm_struct *mm;
-+
-+ if (!task)
-+ return -ESRCH;
-+
-+ mm = mm_access(task, PTRACE_MODE_ATTACH);
-+ put_task_struct(task);
-+
-+ if (IS_ERR(mm))
-+ return PTR_ERR(mm);
-+
- /* OK to pass negative loff_t, we can catch out-of-range */
- file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+ file->private_data = mm;
-+
- return 0;
- }
-
- static ssize_t mem_read(struct file * file, char __user * buf,
- size_t count, loff_t *ppos)
- {
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+ int ret;
- char *page;
- unsigned long src = *ppos;
-- int ret = -ESRCH;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- ret = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out;
--
-- mm = check_mem_permission(task);
-- ret = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- ret = -EIO;
--
-- if (file->private_data != (void*)((long)current->self_exec_id))
-- goto out_put;
-+ return -ENOMEM;
-
- ret = 0;
-
-@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
- }
- *ppos = src;
-
--out_put:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out:
-- put_task_struct(task);
--out_no_task:
- return ret;
- }
-
-@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- {
- int copied;
- char *page;
-- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- unsigned long dst = *ppos;
-- struct mm_struct *mm;
-+ struct mm_struct *mm = file->private_data;
-
-- copied = -ESRCH;
-- if (!task)
-- goto out_no_task;
-+ if (!mm)
-+ return 0;
-
-- copied = -ENOMEM;
- page = (char *)__get_free_page(GFP_TEMPORARY);
- if (!page)
-- goto out_task;
--
-- mm = check_mem_permission(task);
-- copied = PTR_ERR(mm);
-- if (IS_ERR(mm))
-- goto out_free;
--
-- copied = -EIO;
-- if (file->private_data != (void *)((long)current->self_exec_id))
-- goto out_mm;
-+ return -ENOMEM;
-
- copied = 0;
- while (count > 0) {
-@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- }
- *ppos = dst;
-
--out_mm:
-- mmput(mm);
--out_free:
- free_page((unsigned long) page);
--out_task:
-- put_task_struct(task);
--out_no_task:
- return copied;
- }
-
-@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- return file->f_pos;
- }
-
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+ struct mm_struct *mm = file->private_data;
-+
-+ mmput(mm);
-+ return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- .llseek = mem_lseek,
- .read = mem_read,
- .write = mem_write,
- .open = mem_open,
-+ .release = mem_release,
- };
-
- static ssize_t environ_read(struct file *file, char __user *buf,
---
-1.7.6.5
-
diff --git a/libre/linux-libre/ChangeLog b/libre/linux-libre/ChangeLog
index bbf62fc7c..a6f62e2cd 100644
--- a/libre/linux-libre/ChangeLog
+++ b/libre/linux-libre/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-26 André Silva <andre.paulista@adinet.com.uy>
+
+ * linux-libre-3.4-1.2
+ * Disabled CONFIG_MICROCODE_INTEL and CONFIG_MICROCODE_AMD modules https://labs.parabola.nu/issues/116
+
2012-04-24 André Silva <andre.paulista@adinet.com.uy>
* linux-libre-3.3.3-1
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 17aecbeb2..8c1d72f35 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -11,18 +11,19 @@ pkgbase=linux-libre
pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE
-_basekernel=3.3
-_sublevel=3
-pkgver=${_basekernel}.${_sublevel}
-_lxopkgver=${_basekernel}.1 # nearly always the same as pkgver
-pkgrel=1
+_basekernel=3.4
+#_sublevel=6
+#pkgver=${_basekernel}.${_sublevel}
+pkgver=${_basekernel}
+_lxopkgver=${_basekernel}.5 # nearly always the same as pkgver
+pkgrel=1.2
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
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"
+ #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz"
# the main kernel config files
'config.i686' 'config.x86_64'
# standard config files for mkinitcpio ramdisk
@@ -32,24 +33,18 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'boot-logo.patch'
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
- 'fix-memblock-3.3.x.patch'
- 'fix-r8712u-3.3.2.patch'
- 'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
-md5sums=('5487da14ca81715a469c7594d39722fa'
- 'b3584346eba0031be9e08c0c6d64fa85'
- '8c97845fa581b5d8172694d85577d817'
- '60c740318d677350ac5251300f6cbe73'
- 'a8a3843046926eb7ab81312cd438c5c5'
+md5sums=('a5e128ca059cceb8b69148b41ff4ac6f'
+ #'6d9d139e4b53802615833372728cc0e4'
+ '631bee7d8e6e125f859fc51200699685'
+ '54f6db6c3b747fbee10cb02460ba66f0'
+ 'e49ac236dfeef709f91a3d993ea7b62c'
'2967cecc3af9f954ccc822fd63dca6ff'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
- 'bfbac6688a9031372638438adccd4595'
- '4be6f77e4c1533c4587dd48cfd50759e'
- 'bb7fd1aa23016c8057046b84fd4eb528'
- '107729418380124db470dda99425fdce')
+ 'de092ff42e61e88a67f50c351c2ad7c0')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
unset source[${#source[@]}-1]
@@ -76,23 +71,11 @@ build() {
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
# Patch submitted upstream, waiting for inclusion:
- # fix https://bugzilla.kernel.org/show_bug.cgi?id=43098
- # Arch Linux bug report #29351
- patch -Np1 -i "${srcdir}/fix-memblock-3.3.x.patch"
-
- # Patch submitted upstream, waiting for inclusion:
- # Arch Linux bug report #29339
- # probably 3.3.4 will include it
- patch -Np1 -i "${srcdir}/fix-r8712u-3.3.2.patch"
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- # fix ext4 module to mount ext3/2 correct
- # https://bugs.archlinux.org/task/28653
- patch -Np1 -i "${srcdir}/ext4-options.patch"
-
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \
@@ -158,7 +141,7 @@ build() {
package_linux-libre() {
pkgdesc="The Linux-libre Kernel and modules"
groups=('base')
- depends=('coreutils' 'module-init-tools>=3.16')
+ depends=('coreutils' 'kmod')
optdepends=('crda: to set the correct wireless channels of your country')
provides=('kernel26' "linux=$pkgver")
conflicts=('kernel26' 'kernel26-libre' 'linux')
@@ -365,7 +348,7 @@ package_linux-libre-headers() {
done
# remove unneeded architectures
- rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
if [ "$CARCH" = "mips64el" ]; then
rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
else
diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686
index c58fe0e40..0bea26739 100644
--- a/libre/linux-libre/config.i686
+++ b/libre/linux-libre/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.3.3-1 Kernel Configuration
+# Linux/i386 3.4.0-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -32,6 +32,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
@@ -93,10 +94,11 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
@@ -105,7 +107,6 @@ CONFIG_SPARSE_IRQ=y
#
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
@@ -282,7 +283,7 @@ CONFIG_PADATA=y
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-# CONFIG_INLINE_SPIN_UNLOCK is not set
+CONFIG_UNINLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
@@ -378,11 +379,9 @@ CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
@@ -410,9 +409,8 @@ CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
CONFIG_MICROCODE=m
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
+# CONFIG_MICROCODE_INTEL is not set
+# CONFIG_MICROCODE_AMD is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NOHIGHMEM is not set
@@ -530,6 +528,7 @@ CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_BGRT=m
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
@@ -613,10 +612,14 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEAER_INJECT is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=m
CONFIG_HT_IRQ=y
CONFIG_PCI_ATS=y
@@ -636,6 +639,8 @@ CONFIG_OLPC_XO1_RTC=y
CONFIG_OLPC_XO1_SCI=y
CONFIG_OLPC_XO15_SCI=y
# CONFIG_ALIX is not set
+# CONFIG_NET5501 is not set
+# CONFIG_GEOS is not set
CONFIG_AMD_NB=y
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
@@ -795,8 +800,9 @@ CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_CT_PROTO_GRE=m
@@ -814,6 +820,7 @@ CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
CONFIG_NETFILTER_TPROXY=m
CONFIG_NETFILTER_XTABLES=m
@@ -837,6 +844,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -952,6 +960,7 @@ CONFIG_IP_VS_PE_SIP=m
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
@@ -960,7 +969,6 @@ CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
@@ -1006,7 +1014,6 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
@@ -1120,6 +1127,7 @@ CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
#
# Classification
@@ -1360,7 +1368,7 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=m
-# CONFIG_DMA_SHARED_BUFFER is not set
+CONFIG_DMA_SHARED_BUFFER=y
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
@@ -1474,6 +1482,7 @@ CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
# CONFIG_MTD_NAND_CAFE is not set
CONFIG_MTD_NAND_CS553X=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -1508,6 +1517,7 @@ CONFIG_OF_NET=y
CONFIG_OF_MDIO=m
CONFIG_OF_PCI=y
CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_MTD=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
@@ -1710,10 +1720,12 @@ CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_FLASHPOINT is not set
CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
@@ -1769,6 +1781,7 @@ CONFIG_SCSI_PMCRAID=m
CONFIG_SCSI_PM8001=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
@@ -1914,6 +1927,7 @@ CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_DELAY=m
CONFIG_DM_UEVENT=y
CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@@ -1934,7 +1948,6 @@ CONFIG_FUSION_CTL=m
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
CONFIG_FIREWIRE_SBP2=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -2062,6 +2075,7 @@ CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
CONFIG_NET_VENDOR_CIRRUS=y
CONFIG_CS89x0=m
+# CONFIG_CS89x0_PLATFORM is not set
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=m
CONFIG_DNET=m
@@ -2156,6 +2170,7 @@ CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=m
CONFIG_NET_VENDOR_OKI=y
CONFIG_PCH_GBE=m
+CONFIG_PCH_PTP=y
CONFIG_ETHOC=m
CONFIG_NET_PACKET_ENGINE=y
CONFIG_HAMACHI=m
@@ -2186,6 +2201,8 @@ CONFIG_SIS900=m
CONFIG_SIS190=m
CONFIG_SFC=m
CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC9194=m
CONFIG_PCMCIA_SMC91C92=m
@@ -2222,6 +2239,7 @@ CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
+CONFIG_AMD_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
@@ -2287,6 +2305,7 @@ CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_NET_CX82310_ETH=m
CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_HSO=m
CONFIG_USB_NET_INT51X1=m
CONFIG_USB_CDC_PHONET=m
@@ -2322,12 +2341,12 @@ CONFIG_ATH5K=m
CONFIG_ATH5K_PCI=y
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
CONFIG_ATH9K_RATE_CONTROL=y
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
CONFIG_CARL9170=m
@@ -2335,6 +2354,8 @@ CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
# CONFIG_CARL9170_HWRNG is not set
CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
CONFIG_B43_BCMA=y
@@ -2367,6 +2388,7 @@ CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
CONFIG_BRCMFMAC=m
CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -2385,14 +2407,15 @@ CONFIG_IWLWIFI=m
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_TESTMODE=y
# CONFIG_IWLWIFI_P2P is not set
+# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
#
-# Debugging Options
+# iwl3945 / iwl4965 Debugging Options
#
# CONFIG_IWLEGACY_DEBUG is not set
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
CONFIG_IWM=m
# CONFIG_IWM_DEBUG is not set
CONFIG_IWM_TRACING=y
@@ -2444,6 +2467,7 @@ CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTL8192C_COMMON=m
CONFIG_WL1251=m
CONFIG_WL1251_SDIO=m
@@ -2614,7 +2638,6 @@ CONFIG_MISDN_NETJET=m
CONFIG_MISDN_IPAC=m
CONFIG_MISDN_ISAR=m
CONFIG_ISDN_HDLC=m
-# CONFIG_PHONE is not set
#
# Input device support
@@ -2658,6 +2681,7 @@ CONFIG_KEYBOARD_MPR121=m
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
@@ -2680,6 +2704,7 @@ CONFIG_MOUSE_PC110PAD=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOUSE_GPIO is not set
CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
@@ -2725,11 +2750,14 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
CONFIG_TOUCHSCREEN_EGALAX=m
CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
@@ -2766,6 +2794,7 @@ CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2007=m
@@ -2967,6 +2996,7 @@ CONFIG_I2C_SCMI=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_EG20T=m
# CONFIG_I2C_GPIO is not set
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2975,7 +3005,6 @@ CONFIG_I2C_PXA=m
CONFIG_I2C_PXA_PCI=y
CONFIG_I2C_SIMTEC=m
CONFIG_I2C_XILINX=m
-CONFIG_I2C_EG20T=m
#
# External I2C/SMBus adapter drivers
@@ -2996,6 +3025,7 @@ CONFIG_SCx200_ACB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
+# CONFIG_HSI is not set
#
# PPS support
@@ -3020,6 +3050,7 @@ CONFIG_PPS_CLIENT_GPIO=m
#
CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
+CONFIG_PTP_1588_CLOCK_PCH=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -3049,6 +3080,7 @@ CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_LANGWELL is not set
# CONFIG_GPIO_PCH is not set
# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_SODAVILLE is not set
# CONFIG_GPIO_RDC321X is not set
#
@@ -3070,6 +3102,7 @@ CONFIG_POWER_SUPPLY=y
CONFIG_PDA_POWER=m
CONFIG_TEST_POWER=m
# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
CONFIG_BATTERY_OLPC=m
# CONFIG_BATTERY_SBS is not set
@@ -3081,6 +3114,7 @@ CONFIG_BATTERY_OLPC=m
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_SMB347 is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3149,6 +3183,7 @@ CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
@@ -3311,6 +3346,7 @@ CONFIG_UCB1400_CORE=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65217=m
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_PCF50633=m
@@ -3368,6 +3404,7 @@ CONFIG_IR_REDRAT3=m
CONFIG_IR_STREAMZAP=m
CONFIG_IR_WINBOND_CIR=m
CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -3380,6 +3417,7 @@ CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
CONFIG_MEDIA_TUNER_MT2266=m
CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
@@ -3440,6 +3478,7 @@ CONFIG_VIDEO_SAA6588=m
# Video decoders
#
CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_BT866=m
@@ -3476,7 +3515,10 @@ CONFIG_VIDEO_AK881X=m
#
# Camera sensor devices
#
+CONFIG_VIDEO_APTINA_PLL=m
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_MT9M032=m
CONFIG_VIDEO_MT9P031=m
CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
@@ -3630,6 +3672,7 @@ CONFIG_USB_DSBR=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_I2C_SI4713=m
CONFIG_RADIO_SI4713=m
+CONFIG_USB_KEENE=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_TEF6862=m
@@ -3690,11 +3733,13 @@ CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_CE6230=m
CONFIG_DVB_USB_FRIIO=m
CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
CONFIG_DVB_USB_IT913X=m
CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3825,6 +3870,7 @@ CONFIG_DVB_AF9013=m
CONFIG_DVB_EC100=m
CONFIG_DVB_STV0367=m
CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_RTL2830=m
#
# DVB-C (cable) frontends
@@ -3875,6 +3921,7 @@ CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
CONFIG_DVB_IT913X_FE=m
+CONFIG_DVB_M88RS2000=m
#
# Tools to develop new frontends
@@ -3899,12 +3946,23 @@ CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=m
+CONFIG_DRM_USB=m
CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_MGA=m
@@ -3915,6 +3973,7 @@ CONFIG_DRM_VMWGFX=m
CONFIG_DRM_GMA500=m
CONFIG_DRM_GMA600=y
CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
# CONFIG_STUB_POULSBO is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3957,6 +4016,7 @@ CONFIG_FB_EFI=y
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
@@ -3987,6 +4047,7 @@ CONFIG_FB_VIRTUAL=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
+# CONFIG_EXYNOS_VIDEO is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_PLATFORM=m
@@ -3998,6 +4059,8 @@ CONFIG_BACKLIGHT_APPLE=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_PCF50633=m
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_OT200 is not set
#
# Console display driver support
@@ -4283,13 +4346,7 @@ CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PRIMAX=m
CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-CONFIG_HID_ROCCAT_ISKU=m
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -4299,6 +4356,7 @@ CONFIG_GREENASIA_FF=y
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
@@ -4309,12 +4367,12 @@ CONFIG_HID_WIIMOTE_EXT=y
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=m
-CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
+CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4342,13 +4400,14 @@ CONFIG_USB_XHCI_HCD=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_MV=y
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
CONFIG_USB_ISP1362_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4429,6 +4488,7 @@ CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IUU=m
@@ -4449,6 +4509,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
@@ -4531,6 +4592,7 @@ CONFIG_USB_GADGET_DUALSPEED=y
CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
+# CONFIG_GADGET_UAC1 is not set
CONFIG_USB_ETH=m
CONFIG_USB_ETH_RNDIS=y
# CONFIG_USB_ETH_EEM is not set
@@ -4563,7 +4625,6 @@ CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
CONFIG_NOP_USB_XCEIV=m
# CONFIG_AB8500_USB is not set
-# CONFIG_USB_MV_OTG is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4618,7 +4679,6 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_NET5501=m
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA9532_GPIO is not set
# CONFIG_LEDS_GPIO is not set
@@ -4627,6 +4687,7 @@ CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA9633=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -4950,27 +5011,17 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_NOUVEAU_DEBUG=y
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV_STORAGE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
-CONFIG_XVMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
-CONFIG_ZCACHE=m
+CONFIG_ZCACHE=y
+CONFIG_ZSMALLOC=y
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -5040,6 +5091,8 @@ CONFIG_LIRC_ZILOG=m
# Android
#
# CONFIG_ANDROID is not set
+# CONFIG_PHONE is not set
+CONFIG_USB_WPAN_HCD=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5075,7 +5128,6 @@ CONFIG_ASUS_NB_WMI=m
CONFIG_EEEPC_WMI=m
CONFIG_ACPI_WMI=m
CONFIG_MSI_WMI=m
-CONFIG_ACPI_ASUS=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_TOSHIBA_BT_RFKILL=m
@@ -5088,6 +5140,7 @@ CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
#
# Hardware Spinlock drivers
@@ -5102,6 +5155,14 @@ CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+
+#
+# Remoteproc drivers (EXPERIMENTAL)
+#
+
+#
+# Rpmsg drivers (EXPERIMENTAL)
+#
CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
@@ -5122,6 +5183,7 @@ CONFIG_DMI_SYSFS=m
#
# File systems
#
+CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
@@ -5271,6 +5333,7 @@ CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_PSTORE=y
# CONFIG_SYSV_FS is not set
@@ -5289,7 +5352,6 @@ CONFIG_NFS_V4=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
@@ -5303,6 +5365,7 @@ CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_SUNRPC_DEBUG is not set
CONFIG_CEPH_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
@@ -5440,6 +5503,8 @@ CONFIG_FRAME_POINTER=y
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -5448,7 +5513,6 @@ CONFIG_LKDTM=m
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -5553,6 +5617,7 @@ CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_SECURITY_YAMA is not set
# CONFIG_IMA is not set
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
@@ -5571,7 +5636,7 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
@@ -5670,7 +5735,7 @@ CONFIG_CRYPTO_TWOFISH_586=m
#
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=m
+CONFIG_CRYPTO_LZO=y
#
# Random Number Generation
@@ -5709,11 +5774,17 @@ CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64
index 279c94035..8a4734dac 100644
--- a/libre/linux-libre/config.x86_64
+++ b/libre/linux-libre/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.3.0-1 Kernel Configuration
+# Linux/x86_64 3.4.0-1 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -34,6 +34,7 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
@@ -95,7 +96,6 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
@@ -107,7 +107,6 @@ CONFIG_SPARSE_IRQ=y
#
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=64
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
@@ -219,6 +218,7 @@ CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
#
# GCOV-based kernel profiling
@@ -284,7 +284,7 @@ CONFIG_PADATA=y
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-# CONFIG_INLINE_SPIN_UNLOCK is not set
+CONFIG_UNINLINE_SPIN_UNLOCK=y
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
@@ -346,7 +346,7 @@ CONFIG_NO_BOOTMEM=y
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
CONFIG_GENERIC_CPU=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=7
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
@@ -387,9 +387,8 @@ CONFIG_X86_MCE_THRESHOLD=y
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_I8K=m
CONFIG_MICROCODE=m
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
+# CONFIG_MICROCODE_INTEL is not set
+# CONFIG_MICROCODE_AMD is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
@@ -519,6 +518,7 @@ CONFIG_ACPI_HOTPLUG_MEMORY=m
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_BGRT=m
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
@@ -584,10 +584,14 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEAER_INJECT is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_HT_IRQ=y
@@ -646,6 +650,7 @@ CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_BINFMT_MISC=y
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=m
+# CONFIG_X86_X32 is not set
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
@@ -757,8 +762,9 @@ CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_CT_PROTO_GRE=m
@@ -776,6 +782,7 @@ CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
CONFIG_NETFILTER_TPROXY=m
CONFIG_NETFILTER_XTABLES=m
@@ -799,6 +806,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -914,6 +922,7 @@ CONFIG_IP_VS_PE_SIP=m
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
@@ -922,7 +931,6 @@ CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
@@ -968,7 +976,6 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
@@ -1078,6 +1085,7 @@ CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
#
# Classification
@@ -1127,8 +1135,6 @@ CONFIG_BPF_JIT=y
CONFIG_NET_PKTGEN=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_HAMRADIO=y
-# CONFIG_CAN is not set
-CONFIG_IRDA=m
#
# Packet Radio protocols
@@ -1148,6 +1154,8 @@ CONFIG_BAYCOM_SER_FDX=m
CONFIG_BAYCOM_SER_HDX=m
CONFIG_BAYCOM_PAR=m
CONFIG_YAM=m
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
#
# IrDA protocols
@@ -1315,7 +1323,7 @@ CONFIG_SYS_HYPERVISOR=y
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=m
-# CONFIG_DMA_SHARED_BUFFER is not set
+CONFIG_DMA_SHARED_BUFFER=y
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
@@ -1427,6 +1435,7 @@ CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
# CONFIG_MTD_NAND_CAFE is not set
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -1640,9 +1649,11 @@ CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
@@ -1683,6 +1694,7 @@ CONFIG_SCSI_PMCRAID=m
CONFIG_SCSI_PM8001=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
@@ -1823,6 +1835,7 @@ CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_DELAY=m
CONFIG_DM_UEVENT=y
CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@@ -1843,7 +1856,6 @@ CONFIG_FUSION_CTL=m
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
CONFIG_FIREWIRE_SBP2=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -2040,6 +2052,7 @@ CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=m
CONFIG_NET_VENDOR_OKI=y
CONFIG_PCH_GBE=m
+CONFIG_PCH_PTP=y
CONFIG_ETHOC=m
CONFIG_NET_PACKET_ENGINE=y
CONFIG_HAMACHI=m
@@ -2069,6 +2082,8 @@ CONFIG_SIS900=m
CONFIG_SIS190=m
CONFIG_SFC=m
CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
@@ -2104,6 +2119,7 @@ CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
+CONFIG_AMD_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
@@ -2169,6 +2185,7 @@ CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_NET_CX82310_ETH=m
CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_HSO=m
CONFIG_USB_NET_INT51X1=m
CONFIG_USB_CDC_PHONET=m
@@ -2204,12 +2221,12 @@ CONFIG_ATH5K=m
CONFIG_ATH5K_PCI=y
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
# CONFIG_ATH9K_DEBUGFS is not set
CONFIG_ATH9K_RATE_CONTROL=y
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
CONFIG_CARL9170=m
@@ -2217,6 +2234,8 @@ CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
# CONFIG_CARL9170_HWRNG is not set
CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
CONFIG_B43_BCMA=y
@@ -2249,6 +2268,7 @@ CONFIG_BRCMUTIL=m
CONFIG_BRCMSMAC=m
CONFIG_BRCMFMAC=m
CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -2267,14 +2287,15 @@ CONFIG_IWLWIFI=m
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_TESTMODE=y
# CONFIG_IWLWIFI_P2P is not set
+# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
#
-# Debugging Options
+# iwl3945 / iwl4965 Debugging Options
#
# CONFIG_IWLEGACY_DEBUG is not set
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
CONFIG_IWM=m
# CONFIG_IWM_DEBUG is not set
CONFIG_IWM_TRACING=y
@@ -2326,6 +2347,7 @@ CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
+# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTL8192C_COMMON=m
CONFIG_WL1251=m
CONFIG_WL1251_SDIO=m
@@ -2482,7 +2504,6 @@ CONFIG_MISDN_NETJET=m
CONFIG_MISDN_IPAC=m
CONFIG_MISDN_ISAR=m
CONFIG_ISDN_HDLC=m
-# CONFIG_PHONE is not set
#
# Input device support
@@ -2526,6 +2547,7 @@ CONFIG_KEYBOARD_MPR121=m
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
@@ -2543,6 +2565,7 @@ CONFIG_MOUSE_BCM5974=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOUSE_GPIO is not set
CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
@@ -2588,11 +2611,14 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
CONFIG_TOUCHSCREEN_EGALAX=m
CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
@@ -2628,6 +2654,7 @@ CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2007=m
@@ -2744,6 +2771,7 @@ CONFIG_PPDEV=m
CONFIG_HVC_DRIVER=y
CONFIG_HVC_IRQ=y
CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
@@ -2824,6 +2852,7 @@ CONFIG_I2C_SCMI=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_EG20T=m
# CONFIG_I2C_GPIO is not set
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2831,7 +2860,6 @@ CONFIG_I2C_PCA_PLATFORM=m
# CONFIG_I2C_PXA_PCI is not set
CONFIG_I2C_SIMTEC=m
CONFIG_I2C_XILINX=m
-CONFIG_I2C_EG20T=m
#
# External I2C/SMBus adapter drivers
@@ -2850,6 +2878,7 @@ CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
+# CONFIG_HSI is not set
#
# PPS support
@@ -2874,6 +2903,7 @@ CONFIG_PPS_CLIENT_GPIO=m
#
CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
+CONFIG_PTP_1588_CLOCK_PCH=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
@@ -2924,6 +2954,7 @@ CONFIG_POWER_SUPPLY=y
CONFIG_PDA_POWER=m
CONFIG_TEST_POWER=m
# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_BATTERY_BQ27x00 is not set
@@ -2934,6 +2965,7 @@ CONFIG_TEST_POWER=m
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_SMB347 is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3002,6 +3034,7 @@ CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
@@ -3157,6 +3190,7 @@ CONFIG_UCB1400_CORE=m
# CONFIG_TPS6105X is not set
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65217=m
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_PCF50633=m
@@ -3214,6 +3248,7 @@ CONFIG_IR_REDRAT3=m
CONFIG_IR_STREAMZAP=m
CONFIG_IR_WINBOND_CIR=m
CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -3226,6 +3261,7 @@ CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2063=m
CONFIG_MEDIA_TUNER_MT2266=m
CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
@@ -3286,6 +3322,7 @@ CONFIG_VIDEO_SAA6588=m
# Video decoders
#
CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7183=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_BT866=m
@@ -3322,7 +3359,10 @@ CONFIG_VIDEO_AK881X=m
#
# Camera sensor devices
#
+CONFIG_VIDEO_APTINA_PLL=m
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_VS6624=m
+CONFIG_VIDEO_MT9M032=m
CONFIG_VIDEO_MT9P031=m
CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
@@ -3476,6 +3516,7 @@ CONFIG_USB_DSBR=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_I2C_SI4713=m
CONFIG_RADIO_SI4713=m
+CONFIG_USB_KEENE=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_TEF6862=m
@@ -3535,11 +3576,13 @@ CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_CE6230=m
CONFIG_DVB_USB_FRIIO=m
CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
CONFIG_DVB_USB_IT913X=m
CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3670,6 +3713,7 @@ CONFIG_DVB_AF9013=m
CONFIG_DVB_EC100=m
CONFIG_DVB_STV0367=m
CONFIG_DVB_CXD2820R=m
+CONFIG_DVB_RTL2830=m
#
# DVB-C (cable) frontends
@@ -3720,6 +3764,7 @@ CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
CONFIG_DVB_IT913X_FE=m
+CONFIG_DVB_M88RS2000=m
#
# Tools to develop new frontends
@@ -3738,12 +3783,23 @@ CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=m
+CONFIG_DRM_USB=m
CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_MGA=m
@@ -3754,6 +3810,7 @@ CONFIG_DRM_VMWGFX=m
CONFIG_DRM_GMA500=m
CONFIG_DRM_GMA600=y
CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
# CONFIG_STUB_POULSBO is not set
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3796,6 +3853,7 @@ CONFIG_FB_EFI=y
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
@@ -3824,6 +3882,7 @@ CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
+# CONFIG_EXYNOS_VIDEO is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_PLATFORM=m
@@ -3835,6 +3894,8 @@ CONFIG_BACKLIGHT_APPLE=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_PCF50633=m
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_OT200 is not set
#
# Console display driver support
@@ -4082,13 +4143,7 @@ CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PRIMAX=m
CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-CONFIG_HID_ROCCAT_ISKU=m
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -4098,6 +4153,7 @@ CONFIG_GREENASIA_FF=y
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
@@ -4108,12 +4164,12 @@ CONFIG_HID_WIIMOTE_EXT=y
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=m
-CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
+CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4141,13 +4197,14 @@ CONFIG_USB_XHCI_HCD=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_MV=y
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
CONFIG_USB_ISP1362_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4228,6 +4285,7 @@ CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IUU=m
@@ -4248,6 +4306,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
@@ -4328,6 +4387,7 @@ CONFIG_USB_GADGET_DUALSPEED=y
CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
+# CONFIG_GADGET_UAC1 is not set
CONFIG_USB_ETH=m
CONFIG_USB_ETH_RNDIS=y
# CONFIG_USB_ETH_EEM is not set
@@ -4360,7 +4420,6 @@ CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
CONFIG_NOP_USB_XCEIV=m
# CONFIG_AB8500_USB is not set
-# CONFIG_USB_MV_OTG is not set
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -4415,7 +4474,6 @@ CONFIG_LEDS_CLASS=y
# LED drivers
#
CONFIG_LEDS_LM3530=m
-CONFIG_LEDS_NET5501=m
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA9532_GPIO is not set
# CONFIG_LEDS_GPIO is not set
@@ -4424,6 +4482,7 @@ CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA9633=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -4595,13 +4654,14 @@ CONFIG_XEN_BACKEND=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=m
+CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_TMEM=y
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_ACPI_PROCESSOR=m
CONFIG_STAGING=y
CONFIG_ET131X=m
CONFIG_SLICOSS=m
@@ -4709,7 +4769,6 @@ CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
@@ -4723,27 +4782,17 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_NOUVEAU=m
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_NOUVEAU_DEBUG=y
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV_STORAGE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
-CONFIG_XVMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
-CONFIG_ZCACHE=m
+CONFIG_ZCACHE=y
+CONFIG_ZSMALLOC=y
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
@@ -4813,6 +4862,8 @@ CONFIG_LIRC_ZILOG=m
# Android
#
# CONFIG_ANDROID is not set
+# CONFIG_PHONE is not set
+CONFIG_USB_WPAN_HCD=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -4847,7 +4898,6 @@ CONFIG_ASUS_NB_WMI=m
CONFIG_EEEPC_WMI=m
CONFIG_ACPI_WMI=m
CONFIG_MSI_WMI=m
-CONFIG_ACPI_ASUS=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_TOSHIBA_BT_RFKILL=m
@@ -4859,6 +4909,7 @@ CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
#
# Hardware Spinlock drivers
@@ -4876,6 +4927,14 @@ CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y
+
+#
+# Remoteproc drivers (EXPERIMENTAL)
+#
+
+#
+# Rpmsg drivers (EXPERIMENTAL)
+#
CONFIG_VIRT_DRIVERS=y
# CONFIG_PM_DEVFREQ is not set
@@ -4896,6 +4955,7 @@ CONFIG_DMI_SYSFS=m
#
# File systems
#
+CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
@@ -5046,6 +5106,7 @@ CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_PSTORE=y
# CONFIG_SYSV_FS is not set
@@ -5064,7 +5125,6 @@ CONFIG_NFS_V4=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
@@ -5078,6 +5138,7 @@ CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_SUNRPC_DEBUG is not set
CONFIG_CEPH_FS=m
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
@@ -5214,6 +5275,8 @@ CONFIG_FRAME_POINTER=y
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -5222,7 +5285,6 @@ CONFIG_LKDTM=m
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
@@ -5327,6 +5389,7 @@ CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_SECURITY_YAMA is not set
# CONFIG_IMA is not set
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
@@ -5345,7 +5408,7 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
-CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
@@ -5427,6 +5490,7 @@ CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
@@ -5448,7 +5512,7 @@ CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
#
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=m
+CONFIG_CRYPTO_LZO=y
#
# Random Number Generation
@@ -5483,11 +5547,17 @@ CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
diff --git a/libre/linux-libre/dib0700-fix.patch b/libre/linux-libre/dib0700-fix.patch
deleted file mode 100644
index 48f07e6fd..000000000
--- a/libre/linux-libre/dib0700-fix.patch
+++ /dev/null
@@ -1,1487 +0,0 @@
-commit 198c545cd7306dc90aaae1d61e64175e70a70dc8
-Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-Date: Wed Aug 3 17:08:21 2011 +0200
-
- [media] DiBcom: protect the I2C bufer access
-
- This patch protect the I2C buffer access in order to manage concurrent
- access. This protection is done using mutex.
- Furthermore, for the dib9000, if a pid filtering command is
- received during the tuning, this pid filtering command is delayed to
- avoid any concurrent access issue.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c
-index 1d47d4d..dc1cb17 100644
---- a/drivers/media/dvb/frontends/dib0070.c
-+++ b/drivers/media/dvb/frontends/dib0070.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -78,10 +79,18 @@ struct dib0070_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
--static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0070 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
- state->i2c_write_buffer[0] = reg;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0070 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { \
-@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter
- state->cfg = cfg;
- state->i2c = i2c;
- state->fe = fe;
-+ mutex_init(&state->i2c_buffer_lock);
- fe->tuner_priv = state;
-
- if (dib0070_reset(fe) != 0)
-diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c
-index c9c935a..b174d1c 100644
---- a/drivers/media/dvb/frontends/dib0090.c
-+++ b/drivers/media/dvb/frontends/dib0090.c
-@@ -27,6 +27,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -196,6 +197,7 @@ struct dib0090_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[3];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- struct dib0090_fw_state {
-@@ -208,10 +210,18 @@ struct dib0090_fw_state {
- struct i2c_msg msg;
- u8 i2c_write_buffer[2];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(state->msg, 0, 2 * sizeof(struct i2c_msg));
-@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg)
-
- if (i2c_transfer(state->i2c, state->msg, 2) != 2) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = reg & 0xff;
- state->i2c_write_buffer[1] = val >> 8;
- state->i2c_write_buffer[2] = val & 0xff;
-@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val)
-
- if (i2c_transfer(state->i2c, state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg;
-
- memset(&state->msg, 0, sizeof(struct i2c_msg));
-@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C read failed\n");
-- return 0;
-- }
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = 0;
-+ } else
-+ ret = (state->i2c_read_buffer[0] << 8)
-+ | state->i2c_read_buffer[1];
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = val >> 8;
- state->i2c_write_buffer[1] = val & 0xff;
-
-@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val)
- state->msg.len = 2;
- if (i2c_transfer(state->i2c, &state->msg, 1) != 1) {
- printk(KERN_WARNING "DiB0090 I2C write failed\n");
-- return -EREMOTEIO;
-- }
-- return 0;
-+ ret = -EREMOTEIO;
-+ } else
-+ ret = 0;
-+
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0)
-@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (config->wbd == NULL)
-@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada
- st->config = config;
- st->i2c = i2c;
- st->fe = fe;
-+ mutex_init(&st->i2c_buffer_lock);
- fe->tuner_priv = st;
-
- if (dib0090_fw_reset_digital(fe, st->config) != 0)
-diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c
-index 79cb1c2..dbb76d7 100644
---- a/drivers/media/dvb/frontends/dib7000m.c
-+++ b/drivers/media/dvb/frontends/dib7000m.c
-@@ -11,6 +11,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_frontend.h"
-
-@@ -55,6 +56,7 @@ struct dib7000m_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000m_power_mode {
-@@ -69,6 +71,13 @@ enum dib7000m_power_mode {
-
- static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) | 0x80;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d",reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
- static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf)
- {
-@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- st->timf_default = cfg->bw->timf;
-
-diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c
-index 0c9f40c..292bc19 100644
---- a/drivers/media/dvb/frontends/dib7000p.c
-+++ b/drivers/media/dvb/frontends/dib7000p.c
-@@ -10,6 +10,7 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dvb_math.h"
- #include "dvb_frontend.h"
-@@ -68,6 +69,7 @@ struct dib7000p_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib7000p_power_mode {
-@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff);
-
- static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg)
- if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+ return ret;
- }
-
- static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf)
-@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau
- return -ENOMEM;
-
- dpst->i2c_adap = i2c;
-+ mutex_init(&dpst->i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- dpst->cfg = cfg[k];
-@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- demod = &st->demod;
- demod->demodulator_priv = st;
- memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops));
-+ mutex_init(&st->i2c_buffer_lock);
-
- dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */
-
-@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
- st->version = dib7000p_read_word(st, 897);
-
- /* FIXME: make sure the dev.parent field is initialized, or else
-- request_firmware() will hit an OOPS (this should be moved somewhere
-- more common) */
-+ request_firmware() will hit an OOPS (this should be moved somewhere
-+ more common) */
-+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent;
-
- dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr);
-
-diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c
-index 7d2ea11..fe284d5 100644
---- a/drivers/media/dvb/frontends/dib8000.c
-+++ b/drivers/media/dvb/frontends/dib8000.c
-@@ -10,6 +10,8 @@
- #include <linux/kernel.h>
- #include <linux/slab.h>
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-+
- #include "dvb_math.h"
-
- #include "dvb_frontend.h"
-@@ -37,6 +39,7 @@ struct i2c_device {
- u8 addr;
- u8 *i2c_write_buffer;
- u8 *i2c_read_buffer;
-+ struct mutex *i2c_buffer_lock;
- };
-
- struct dib8000_state {
-@@ -77,6 +80,7 @@ struct dib8000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[4];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- enum dib8000_power_mode {
-@@ -86,24 +90,39 @@ enum dib8000_power_mode {
-
- static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg)
- {
-+ u16 ret;
- struct i2c_msg msg[2] = {
-- {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 2},
-- {.addr = i2c->addr >> 1, .flags = I2C_M_RD,
-- .buf = i2c->i2c_read_buffer, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2},
-+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2},
- };
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
-+ msg[0].buf = i2c->i2c_write_buffer;
- msg[0].buf[0] = reg >> 8;
- msg[0].buf[1] = reg & 0xff;
-+ msg[1].buf = i2c->i2c_read_buffer;
-
- if (i2c_transfer(i2c->adap, msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1];
-+ mutex_unlock(i2c->i2c_buffer_lock);
-+ return ret;
- }
-
- static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- state->i2c_write_buffer[0] = reg >> 8;
- state->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg)
- if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1];
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg)
-
- static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val)
- {
-- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0,
-- .buf = i2c->i2c_write_buffer, .len = 4};
-+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4};
- int ret = 0;
-
-+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ msg.buf = i2c->i2c_write_buffer;
- msg.buf[0] = (reg >> 8) & 0xff;
- msg.buf[1] = reg & 0xff;
- msg.buf[2] = (val >> 8) & 0xff;
- msg.buf[3] = val & 0xff;
-
- ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(i2c->i2c_buffer_lock);
-
- return ret;
- }
-
- static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- state->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- state->i2c_write_buffer[1] = reg & 0xff;
- state->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val)
- state->msg[0].buf = state->i2c_write_buffer;
- state->msg[0].len = 4;
-
-- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ?
-+ -EREMOTEIO : 0);
-+ mutex_unlock(&state->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static const s16 coeff_2k_sb_1seg_dqpsk[8] = {
-@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- if (!client.i2c_read_buffer) {
- dprintk("%s: not enough memory", __func__);
- ret = -ENOMEM;
-- goto error_memory;
-+ goto error_memory_read;
-+ }
-+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL);
-+ if (!client.i2c_buffer_lock) {
-+ dprintk("%s: not enough memory", __func__);
-+ ret = -ENOMEM;
-+ goto error_memory_lock;
- }
-+ mutex_init(client.i2c_buffer_lock);
-
- for (k = no_of_demods - 1; k >= 0; k--) {
- /* designated i2c address */
-@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau
- }
-
- error:
-+ kfree(client.i2c_buffer_lock);
-+error_memory_lock:
- kfree(client.i2c_read_buffer);
--error_memory:
-+error_memory_read:
- kfree(client.i2c_write_buffer);
-
- return ret;
-@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s
- state->i2c.addr = i2c_addr;
- state->i2c.i2c_write_buffer = state->i2c_write_buffer;
- state->i2c.i2c_read_buffer = state->i2c_read_buffer;
-+ mutex_init(&state->i2c_buffer_lock);
-+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock;
- state->gpio_val = cfg->gpio_val;
- state->gpio_dir = cfg->gpio_dir;
-
-diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c
-index a085588..b931074 100644
---- a/drivers/media/dvb/frontends/dib9000.c
-+++ b/drivers/media/dvb/frontends/dib9000.c
-@@ -38,6 +38,15 @@ struct i2c_device {
- #define DibInitLock(lock) mutex_init(lock)
- #define DibFreeLock(lock)
-
-+struct dib9000_pid_ctrl {
-+#define DIB9000_PID_FILTER_CTRL 0
-+#define DIB9000_PID_FILTER 1
-+ u8 cmd;
-+ u8 id;
-+ u16 pid;
-+ u8 onoff;
-+};
-+
- struct dib9000_state {
- struct i2c_device i2c;
-
-@@ -99,6 +108,10 @@ struct dib9000_state {
- struct i2c_msg msg[2];
- u8 i2c_write_buffer[255];
- u8 i2c_read_buffer[255];
-+ DIB_LOCK demod_lock;
-+ u8 get_frontend_internal;
-+ struct dib9000_pid_ctrl pid_ctrl[10];
-+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */
- };
-
- static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio);
- int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef;
-+ u16 val;
-+ int ret;
-+
-+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter cmd postpone");
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
-+
-+ val = dib9000_read_word(state, 294 + 1) & 0xffef;
- val |= (onoff & 0x1) << 4;
-
- dprintk("PID filter enabled %d", onoff);
-- return dib9000_write_word(state, 294 + 1, val);
-+ ret = dib9000_write_word(state, 294 + 1, val);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
-+
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl);
-
- int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
- {
- struct dib9000_state *state = fe->demodulator_priv;
-+ int ret;
-+
-+ if (state->pid_ctrl_index != -2) {
-+ /* postpone the pid filtering cmd */
-+ dprintk("pid filter postpone");
-+ if (state->pid_ctrl_index < 9) {
-+ state->pid_ctrl_index++;
-+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER;
-+ state->pid_ctrl[state->pid_ctrl_index].id = id;
-+ state->pid_ctrl[state->pid_ctrl_index].pid = pid;
-+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff;
-+ } else
-+ dprintk("can not add any more pid ctrl cmd");
-+ return 0;
-+ }
-+
-+ DibAcquireLock(&state->demod_lock);
- dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff);
-- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0);
-+ ret = dib9000_write_word(state, 300 + 1 + id,
-+ onoff ? (1 << 13) | pid : 0);
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
- EXPORT_SYMBOL(dib9000_fw_pid_filter);
-
-@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod)
- DibFreeLock(&state->platform.risc.mbx_lock);
- DibFreeLock(&state->platform.risc.mem_lock);
- DibFreeLock(&state->platform.risc.mem_mbx_lock);
-+ DibFreeLock(&state->demod_lock);
- dibx000_exit_i2c_master(&st->i2c_master);
-
- i2c_del_adapter(&st->tuner_adap);
-@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend;
-- int ret;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]);
- if (ret < 0)
-- return ret;
-+ goto error;
- }
-- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0);
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune)
-@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- struct dib9000_state *state = fe->demodulator_priv;
- u8 index_frontend, sub_index_frontend;
- fe_status_t stat;
-- int ret;
-+ int ret = 0;
-+
-+ if (state->get_frontend_internal == 0)
-+ DibAcquireLock(&state->demod_lock);
-
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat);
-@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.rolloff;
- }
- }
-- return 0;
-+ ret = 0;
-+ goto return_value;
- }
- }
-
- /* get the channel from master chip */
- ret = dib9000_fw_get_channel(fe, fep);
- if (ret != 0)
-- return ret;
-+ goto return_value;
-
- /* synchronize the cache with the other frontends */
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
-@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP;
- state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff;
- }
-+ ret = 0;
-
-- return 0;
-+return_value:
-+ if (state->get_frontend_internal == 0)
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state)
-@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- dprintk("dib9000: must specify bandwidth ");
- return 0;
- }
-+
-+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */
-+ DibAcquireLock(&state->demod_lock);
-+
- fe->dtv_property_cache.delivery_system = SYS_DVBT;
-
- /* set the master status */
-@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* check the tune result */
- if (exit_condition == 1) { /* tune failed */
- dprintk("tune failed");
-+ DibReleaseLock(&state->demod_lock);
-+ /* tune failed; put all the pid filtering cmd to junk */
-+ state->pid_ctrl_index = -1;
- return 0;
- }
-
- dprintk("tune success on frontend%i", index_frontend_success);
-
- /* synchronize all the channel cache */
-+ state->get_frontend_internal = 1;
- dib9000_get_frontend(state->fe[0], fep);
-+ state->get_frontend_internal = 0;
-
- /* retune the other frontends with the found channel */
- channel_status.status = CHANNEL_STATUS_PARAMETERS_SET;
-@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par
- /* turn off the diversity for the last frontend */
- dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0);
-
-+ DibReleaseLock(&state->demod_lock);
-+ if (state->pid_ctrl_index >= 0) {
-+ u8 index_pid_filter_cmd;
-+ u8 pid_ctrl_index = state->pid_ctrl_index;
-+
-+ state->pid_ctrl_index = -2;
-+ for (index_pid_filter_cmd = 0;
-+ index_pid_filter_cmd <= pid_ctrl_index;
-+ index_pid_filter_cmd++) {
-+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL)
-+ dib9000_fw_pid_filter_ctrl(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER)
-+ dib9000_fw_pid_filter(state->fe[0],
-+ state->pid_ctrl[index_pid_filter_cmd].id,
-+ state->pid_ctrl[index_pid_filter_cmd].pid,
-+ state->pid_ctrl[index_pid_filter_cmd].onoff);
-+ }
-+ }
-+ /* do not postpone any more the pid filtering */
-+ state->pid_ctrl_index = -2;
-+
- return 0;
- }
-
-@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- u8 index_frontend;
- u16 lock = 0, lock_slave = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- lock_slave |= dib9000_read_lock(state->fe[index_frontend]);
-
-@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
- if ((lock & 0x0008) || (lock_slave & 0x0008))
- *stat |= FE_HAS_LOCK;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR,
- state->i2c_read_buffer, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber)
- c = (u16 *)state->i2c_read_buffer;
-
- *ber = c[10] << 16 | c[11];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
-@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- u8 index_frontend;
- u16 *c = (u16 *)state->i2c_read_buffer;
- u16 val;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- *strength = 0;
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) {
- state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val);
-@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- }
-
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
-@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
- *strength = 65535;
- else
- *strength += val;
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- static u32 dib9000_get_snr(struct dvb_frontend *fe)
-@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- u8 index_frontend;
- u32 snr_master;
-
-+ DibAcquireLock(&state->demod_lock);
- snr_master = dib9000_get_snr(fe);
- for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++)
- snr_master += dib9000_get_snr(state->fe[index_frontend]);
-@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr)
- } else
- *snr = 0;
-
-+ DibReleaseLock(&state->demod_lock);
-+
- return 0;
- }
-
-@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
- {
- struct dib9000_state *state = fe->demodulator_priv;
- u16 *c = (u16 *)state->i2c_read_buffer;
-+ int ret = 0;
-
-+ DibAcquireLock(&state->demod_lock);
- DibAcquireLock(&state->platform.risc.mem_mbx_lock);
-- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0)
-- return -EIO;
-+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) {
-+ ret = -EIO;
-+ goto error;
-+ }
- dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2);
- DibReleaseLock(&state->platform.risc.mem_mbx_lock);
-
- *unc = c[12];
-- return 0;
-+
-+error:
-+ DibReleaseLock(&state->demod_lock);
-+ return ret;
- }
-
- int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr)
-@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c
- DibInitLock(&st->platform.risc.mbx_lock);
- DibInitLock(&st->platform.risc.mem_lock);
- DibInitLock(&st->platform.risc.mem_mbx_lock);
-+ DibInitLock(&st->demod_lock);
-+ st->get_frontend_internal = 0;
-+
-+ st->pid_ctrl_index = -2;
-
- st->fe[0] = fe;
- fe->demodulator_priv = st;
-diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c
-index dc5d17a..774d507 100644
---- a/drivers/media/dvb/frontends/dibx000_common.c
-+++ b/drivers/media/dvb/frontends/dibx000_common.c
-@@ -1,4 +1,5 @@
- #include <linux/i2c.h>
-+#include <linux/mutex.h>
-
- #include "dibx000_common.h"
-
-@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)");
-
- static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- {
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
- mst->i2c_write_buffer[0] = (reg >> 8) & 0xff;
- mst->i2c_write_buffer[1] = reg & 0xff;
- mst->i2c_write_buffer[2] = (val >> 8) & 0xff;
-@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val)
- mst->msg[0].buf = mst->i2c_write_buffer;
- mst->msg[0].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0;
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- {
-+ u16 ret;
-+
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- mst->i2c_write_buffer[0] = reg >> 8;
- mst->i2c_write_buffer[1] = reg & 0xff;
-
-@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg)
- if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2)
- dprintk("i2c read error on %d", reg);
-
-- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1];
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+
-+ return ret;
- }
-
- static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst)
-@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = {
-@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- struct i2c_msg msg[], int num)
- {
- struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap);
-+ int ret;
-
- if (num > 32) {
- dprintk("%s: too much I2C message to be transmitted (%i).\
-@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- return -ENOMEM;
- }
-
-- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
--
- dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER);
-
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num));
-+
- /* open the gate */
- dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1);
- mst->msg[0].addr = mst->i2c_addr;
-@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap,
- mst->msg[num + 1].buf = &mst->i2c_write_buffer[4];
- mst->msg[num + 1].len = 4;
-
-- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO;
-+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ?
-+ num : -EIO);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-+ return ret;
- }
-
- static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = {
-@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap,
- int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- struct i2c_adapter *i2c_adap, u8 i2c_addr)
- {
-- u8 tx[4];
-- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 };
-+ int ret;
-+
-+ mutex_init(&mst->i2c_buffer_lock);
-+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) {
-+ dprintk("could not acquire lock");
-+ return -EINVAL;
-+ }
-+ memset(mst->msg, 0, sizeof(struct i2c_msg));
-+ mst->msg[0].addr = i2c_addr >> 1;
-+ mst->msg[0].flags = 0;
-+ mst->msg[0].buf = mst->i2c_write_buffer;
-+ mst->msg[0].len = 4;
-
- mst->device_rev = device_rev;
- mst->i2c_adap = i2c_adap;
-@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev,
- "DiBX000: could not initialize the master i2c_adapter\n");
-
- /* initialize the i2c-master by closing the gate */
-- dibx000_i2c_gate_ctrl(mst, tx, 0, 0);
-+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0);
-+
-+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1);
-+ mutex_unlock(&mst->i2c_buffer_lock);
-
-- return i2c_transfer(i2c_adap, &m, 1) == 1;
-+ return ret;
- }
-
- EXPORT_SYMBOL(dibx000_init_i2c_master);
-diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h
-index f031165..5e01147 100644
---- a/drivers/media/dvb/frontends/dibx000_common.h
-+++ b/drivers/media/dvb/frontends/dibx000_common.h
-@@ -33,6 +33,7 @@ struct dibx000_i2c_master {
- struct i2c_msg msg[34];
- u8 i2c_write_buffer[8];
- u8 i2c_read_buffer[2];
-+ struct mutex i2c_buffer_lock;
- };
-
- extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst,
-commit 45cbff13693d645fa5dcbba964e802e1746b2e57
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Mon Aug 1 17:45:58 2011 +0200
-
- [media] dib0700: protect the dib0700 buffer access
-
- This patch protects the common buffer access inside the dib0700 in order
- to manage concurrent access. This protection is done using mutex.
-
- Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
- Cc: Florian Mickler <florian@mickler.org>
- Cc: stable@kernel.org
-
- Signed-off-by: Javier Marcet <javier@marcet.info>
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
- Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 5eb91b4..291b645 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- struct dib0700_state *st = d->priv;
- int ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0),
- REQUEST_GET_VERSION,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
-@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- if (fwtype != NULL)
- *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) |
- (st->buf[14] << 8) | st->buf[15];
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen
- int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_GPIO;
- st->buf[1] = gpio;
-@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- int ret;
-
- if (st->fw_version >= 0x10201) {
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_USB_XFER_LEN;
- st->buf[1] = (nb_ts_packets >> 8) & 0xff;
- st->buf[2] = nb_ts_packets & 0xff;
-@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
- deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets);
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
-+ mutex_unlock(&d->usb_mutex);
- } else {
- deb_info("this firmware does not allow to change the USB xfer len\n");
- ret = -EIO;
-@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
-
- } else {
- /* Write request */
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
- st->buf[1] = msg[i].addr << 1;
- st->buf[2] = (en_start << 7) | (en_stop << 6) |
-@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- USB_TYPE_VENDOR | USB_DIR_OUT,
- 0, 0, st->buf, msg[i].len + 4,
- USB_CTRL_GET_TIMEOUT);
-+ mutex_unlock(&d->usb_mutex);
- if (result < 0) {
- deb_info("i2c write error (status = %d)\n", result);
- break;
-@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
-
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- for (i = 0; i < num; i++) {
- /* fill in the address */
-@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- break;
- }
- }
-+ mutex_unlock(&d->usb_mutex);
- mutex_unlock(&d->i2c_mutex);
-
- return i;
-@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- u16 pll_loopdiv, u16 free_div, u16 dsuScaler)
- {
- struct dib0700_state *st = d->priv;
-- s16 ret;
-+ int ret;
-+
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-
- st->buf[0] = REQUEST_SET_CLOCK;
- st->buf[1] = (en_pll << 7) | (pll_src << 6) |
-@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- st->buf[9] = dsuScaler & 0xff; /* LSB */
-
- ret = dib0700_ctrl_wr(d, st->buf, 10);
-+ mutex_unlock(&d->usb_mutex);
-
- return ret;
- }
-@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- {
- struct dib0700_state *st = d->priv;
- u16 divider;
-+ int ret;
-
- if (scl_kHz == 0)
- return -EINVAL;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_I2C_PARAM;
- divider = (u16) (30000 / scl_kHz);
- st->buf[1] = 0;
-@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- deb_info("setting I2C speed: %04x %04x %04x (%d kHz).",
- (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) |
- st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz);
-- return dib0700_ctrl_wr(d, st->buf, 8);
-+
-+ ret = dib0700_ctrl_wr(d, st->buf, 8);
-+ mutex_unlock(&d->usb_mutex);
-+
-+ return ret;
- }
-
-
-@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
- }
-
-+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_ENABLE_VIDEO;
- /* this bit gives a kind of command,
- * rather than enabling something or not */
-@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
-
- deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]);
-
-- return dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4);
-+ mutex_unlock(&adap->dev->usb_mutex);
-+
-+ return ret;
- }
-
- int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
-@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- struct dib0700_state *st = d->priv;
- int new_proto, ret;
-
-+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-+ dprintk("could not acquire lock");
-+ return 0;
-+ }
-+
- st->buf[0] = REQUEST_SET_RC;
- st->buf[1] = 0;
- st->buf[2] = 0;
-@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- else if (rc_type == RC_TYPE_NEC)
- new_proto = 0;
- else if (rc_type == RC_TYPE_RC6) {
-- if (st->fw_version < 0x10200)
-- return -EINVAL;
-+ if (st->fw_version < 0x10200) {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- new_proto = 2;
-- } else
-- return -EINVAL;
-+ } else {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- st->buf[1] = new_proto;
-
- ret = dib0700_ctrl_wr(d, st->buf, 3);
- if (ret < 0) {
- err("ir protocol setup failed");
-- return ret;
-+ goto out;
- }
-
- d->props.rc.core.protocol = rc_type;
-
-+out:
-+ mutex_unlock(&d->usb_mutex);
- return ret;
- }
-
-commit aeb2d456b746164a4bd19e53de0a6678ca63fcad
-Author: Olivier Grenie <olivier.grenie@dibcom.fr>
-Date: Thu Aug 4 18:10:03 2011 +0200
-
- [media] dib0700: correct error message
-
- The goal of this patch is to correct a previous patch. In case of error,
- the err() function should be used instead of dprintk() function.
-
- Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr>
-
-diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
-index 291b645..b693ed1 100644
---- a/drivers/media/dvb/dvb-usb/dib0700_core.c
-+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
-@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets)
-
- if (st->fw_version >= 0x10201) {
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
- } else {
- /* Write request */
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
- st->buf[0] = REQUEST_NEW_I2C_WRITE;
-@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
- if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- return -EAGAIN;
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll,
- int ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz)
- return -EINVAL;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- }
-
- if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
-@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
- int new_proto, ret;
-
- if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
-- dprintk("could not acquire lock");
-+ err("could not acquire lock");
- return 0;
- }
-
diff --git a/libre/linux-libre/ext4-options.patch b/libre/linux-libre/ext4-options.patch
deleted file mode 100644
index ea48c384b..000000000
--- a/libre/linux-libre/ext4-options.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Report: https://bbs.archlinux.org/profile.php?id=33804
-Signed-off-by: Tom Gundersen <teg@jklm.no>
-Cc: Thomas Baechler <thomas@archlinux.org>
-Cc: Tobias Powalowski <tobias.powalowski@googlemail.com>
-Cc: Dave Reisner <d@falconindy.com>
----
- fs/ext4/super.c | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index 502c61f..30de9cd 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -1333,6 +1333,7 @@ enum {
- Opt_inode_readahead_blks, Opt_journal_ioprio,
- Opt_dioread_nolock, Opt_dioread_lock,
- Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
-+ Opt_nocheck, Opt_reservation, Opt_noreservation, Opt_journal_inum,
- };
-
- static const match_table_t tokens = {
-@@ -1408,6 +1409,10 @@ static const match_table_t tokens = {
- {Opt_init_itable, "init_itable=%u"},
- {Opt_init_itable, "init_itable"},
- {Opt_noinit_itable, "noinit_itable"},
-+ {Opt_nocheck, "nocheck"},
-+ {Opt_reservation, "reservation"},
-+ {Opt_noreservation, "noreservation"},
-+ {Opt_journal_inum, "journal=%u"},
- {Opt_err, NULL},
- };
-
-@@ -1904,6 +1909,16 @@ set_qf_format:
- case Opt_noinit_itable:
- clear_opt(sb, INIT_INODE_TABLE);
- break;
-+#ifdef CONFIG_EXT4_USE_FOR_EXT23
-+ case Opt_nocheck:
-+ case Opt_reservation:
-+ case Opt_noreservation:
-+ case Opt_journal_inum:
-+ ext4_msg(sb, KERN_WARNING,
-+ "ext3 mount option \"%s\" ignored "
-+ "by ext4 module", p);
-+ break;
-+#endif
- default:
- ext4_msg(sb, KERN_ERR,
- "Unrecognized mount option \"%s\" "
-
diff --git a/libre/linux-libre/fix-i915.patch b/libre/linux-libre/fix-i915.patch
deleted file mode 100644
index 3b631361a..000000000
--- a/libre/linux-libre/fix-i915.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-Tested-by: Santi <santi@agolina.net>
----
- drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index dc83b7a..c8f67bf 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1267,6 +1267,15 @@
- DAC_B_0_7_V |
- DAC_C_0_7_V);
-
-+ /*
-+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
-+ * the TV is misdetected. This is hardware requirement.
-+ */
-+ if (IS_GM45(dev))
-+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
-+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
-+
-+
- I915_WRITE(TV_CTL, tv_ctl);
- I915_WRITE(TV_DAC, tv_dac);
- POSTING_READ(TV_DAC);
diff --git a/libre/linux-libre/fix-memblock-3.3.x.patch b/libre/linux-libre/fix-memblock-3.3.x.patch
deleted file mode 100644
index 3f6c984f4..000000000
--- a/libre/linux-libre/fix-memblock-3.3.x.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From: Tejun Heo <tj <at> kernel.org>
-Subject: [PATCH 3.4-rc3] memblock: memblock should be able to handle zero length operations
-Newsgroups: gmane.linux.kernel, gmane.linux.kernel.stable
-Date: 2012-04-20 15:31:34 GMT (2 days, 14 hours and 59 minutes ago)
-24aa07882b "memblock, x86: Replace memblock_x86_reserve/free_range()
-with generic ones" replaced x86 specific memblock operations with the
-generic ones; unfortunately, it lost zero length operation handling in
-the process making the kernel panic if somebody tries to reserve zero
-length area.
-
-There isn't much to be gained by being cranky to zero length
-operations and panicking is almost the worst response. Drop the
-BUG_ON() in memblock_reserve() and update
-memblock_add_region/isolate_range() so that all zero length operations
-are handled as noops.
-
-Signed-off-by: Tejun Heo <tj <at> kernel.org>
-Cc: stable <at> vger.kernel.org
-Reported-by: Valere Monseur <valere.monseur <at> ymail.com>
-Bisected-by: Joseph Freeman <jfree143dev <at> gmail.com>
-Tested-by: Joseph Freeman <jfree143dev <at> gmail.com>
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43098
----
-This is causing early panics if anyone tries to reserve zero len area,
-which unfortunately isn't too uncommon depending on BIOS. The fix is
-fairly safe. Unsure which tree it should go through. Cc'ing Linus
-and Ingo.
-
-Thanks.
-
- mm/memblock.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/mm/memblock.c b/mm/memblock.c
-index 99f2855..a44eab3 100644
---- a/mm/memblock.c
-+++ b/mm/memblock.c
-@@ -330,6 +330,9 @@ static int __init_memblock memblock_add_region(struct memblock_type *type,
- phys_addr_t end = base + memblock_cap_size(base, &size);
- int i, nr_new;
-
-+ if (!size)
-+ return 0;
-+
- /* special case for empty array */
- if (type->regions[0].size == 0) {
- WARN_ON(type->cnt != 1 || type->total_size);
-@@ -430,6 +433,9 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type,
-
- *start_rgn = *end_rgn = 0;
-
-+ if (!size)
-+ return 0;
-+
- /* we'll create at most two more regions */
- while (type->cnt + 2 > type->max)
- if (memblock_double_array(type) < 0)
-@@ -514,7 +520,6 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size)
- (unsigned long long)base,
- (unsigned long long)base + size,
- (void *)_RET_IP_);
-- BUG_ON(0 == size);
-
- return memblock_add_region(_rgn, base, size, MAX_NUMNODES);
- }
diff --git a/libre/linux-libre/fix-r8712u-3.3.2.patch b/libre/linux-libre/fix-r8712u-3.3.2.patch
deleted file mode 100644
index a83618dcd..000000000
--- a/libre/linux-libre/fix-r8712u-3.3.2.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-commit 2080913e017ab9f88379d93fd09546ad95faf87b
-Author: Larry Finger <Larry.Finger@lwfinger.net>
-Date: Sat Feb 25 18:10:21 2012 -0600
-
- staging: r8712u: Fix regression caused by commit 8c213fa
-
- In commit 8c213fa "staging: r8712u: Use asynchronous firmware loading",
- the command to release the firmware was placed in the wrong routine.
-
- In combination with the bug introduced in commit a5ee652 "staging: r8712u:
- Interface-state not fully tracked", the driver attempts to upload firmware
- that had already been released. This bug is the source of one of the
- problems in https://bugs.archlinux.org/task/27996#comment89833.
-
- Tested-by: Alberto Lago Ballesteros <saniukeokusainaya@gmail.com>
- Tested-by: Adrian <agib@gmx.de>
- Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
- Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
-diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
-index 4cf175f..7bbd53a 100644
---- a/drivers/staging/rtl8712/os_intfs.c
-+++ b/drivers/staging/rtl8712/os_intfs.c
-@@ -475,9 +475,6 @@ static int netdev_close(struct net_device *pnetdev)
- r8712_free_assoc_resources(padapter);
- /*s2-4.*/
- r8712_free_network_queue(padapter);
-- release_firmware(padapter->fw);
-- /* never exit with a firmware callback pending */
-- wait_for_completion(&padapter->rtl8712_fw_ready);
- return 0;
- }
-
-diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c
-index fe0e2ff..e01fe14 100644
---- a/drivers/staging/rtl8712/usb_intf.c
-+++ b/drivers/staging/rtl8712/usb_intf.c
-@@ -30,6 +30,7 @@
-
- #include <linux/usb.h>
- #include <linux/module.h>
-+#include <linux/firmware.h>
-
- #include "osdep_service.h"
- #include "drv_types.h"
-@@ -620,6 +621,10 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf)
- struct _adapter *padapter = netdev_priv(pnetdev);
- struct usb_device *udev = interface_to_usbdev(pusb_intf);
-
-+ if (padapter->fw_found)
-+ release_firmware(padapter->fw);
-+ /* never exit with a firmware callback pending */
-+ wait_for_completion(&padapter->rtl8712_fw_ready);
- usb_set_intfdata(pusb_intf, NULL);
- if (padapter) {
- if (drvpriv.drv_registered == true)
diff --git a/libre/linux-libre/i915-fix-incorrect-error-message.patch b/libre/linux-libre/i915-fix-incorrect-error-message.patch
deleted file mode 100644
index e1addbb05..000000000
--- a/libre/linux-libre/i915-fix-incorrect-error-message.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4
-Author: Thomas Bächler <thomas@archlinux.org>
-Date: Mon Oct 31 19:16:18 2011 +0100
-
- Change accidental error message to debug message.
-
- According to https://lkml.org/lkml/2011/9/19/80, this is not supposed
- to be an error message, but a debug message. This worries users.
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 04411ad..02d5794 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev)
- } else {
- /* Enable SSC on PCH eDP if needed */
- if (intel_panel_use_ssc(dev_priv)) {
-- DRM_ERROR("enabling SSC on PCH\n");
-+ DRM_DEBUG("enabling SSC on PCH\n");
- temp |= DREF_SUPERSPREAD_SOURCE_ENABLE;
- }
- }
diff --git a/libre/linux-libre/i915-gpu-finish.patch b/libre/linux-libre/i915-gpu-finish.patch
deleted file mode 100644
index 5840c9181..000000000
--- a/libre/linux-libre/i915-gpu-finish.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Tue Nov 29 15:12:16 2011 +0000
-
- drm/i915: Only clear the GPU domains upon a successful finish
-
- By clearing the GPU read domains before waiting upon the buffer, we run
- the risk of the wait being interrupted and the domains prematurely
- cleared. The next time we attempt to wait upon the buffer (after
- userspace handles the signal), we believe that the buffer is idle and so
- skip the wait.
-
- There are a number of bugs across all generations which show signs of an
- overly haste reuse of active buffers.
-
- Such as:
-
- https://bugs.freedesktop.org/show_bug.cgi?id=29046
- https://bugs.freedesktop.org/show_bug.cgi?id=35863
- https://bugs.freedesktop.org/show_bug.cgi?id=38952
- https://bugs.freedesktop.org/show_bug.cgi?id=40282
- https://bugs.freedesktop.org/show_bug.cgi?id=41098
- https://bugs.freedesktop.org/show_bug.cgi?id=41102
- https://bugs.freedesktop.org/show_bug.cgi?id=41284
- https://bugs.freedesktop.org/show_bug.cgi?id=42141
-
- A couple of those pre-date i915_gem_object_finish_gpu(), so may be
- unrelated (such as a wild write from a userspace command buffer), but
- this does look like a convincing cause for most of those bugs.
-
- Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
- Cc: stable@kernel.org
- Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
- Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
-
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index d560175..036bc58 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
- return ret;
- }
-
-+ ret = i915_gem_object_wait_rendering(obj);
-+ if (ret)
-+ return ret;
-+
- /* Ensure that we invalidate the GPU's caches and TLBs. */
- obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
--
-- return i915_gem_object_wait_rendering(obj);
-+ return 0;
- }
-
- /**
diff --git a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch b/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch
deleted file mode 100644
index a53a3a425..000000000
--- a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-This fix regression introduced by commit:
-
-commit 15b3f3b006b42a678523cad989bfd60b76bf4403
-Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-Date: Fri Jun 3 07:54:13 2011 -0700
-
- iwlagn: set smps mode after assoc for 1000 device
-
-Also remove unneeded brackets on the way.
-
-Address:
-https://bugzilla.redhat.com/show_bug.cgi?id=744155
-
-If fix will not get 3.1 release, it should be applied in 3.1 stable.
-
-Cc: stable@kernel.org # 3.1+
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
- drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-index ca632f9..5004342 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv,
- return ret;
- }
-
-- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) &&
-- priv->cfg->ht_params->smps_mode)
-+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION &&
-+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode)
- ieee80211_request_smps(ctx->vif,
- priv->cfg->ht_params->smps_mode);
-
---
-1.7.1
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index dd133c2b1..6a2a2795a 100644
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.3.3-1-LIBRE
+KERNEL_VERSION=3.4.0-1.2-LIBRE
post_install () {
# updating module dependencies
@@ -28,7 +28,7 @@ post_install () {
post_upgrade() {
pacman -Q grub &>/dev/null
hasgrub=$?
- pacman -Q grub2 &>/dev/null
+ pacman -Q grub2-common &>/dev/null
hasgrub2=$?
pacman -Q lilo &>/dev/null
haslilo=$?
diff --git a/libre/linux-libre/linux-libre.preset b/libre/linux-libre/linux-libre.preset
index 7af90ba7a..0ac59eb14 100644
--- a/libre/linux-libre/linux-libre.preset
+++ b/libre/linux-libre/linux-libre.preset
@@ -1,4 +1,4 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-libre' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-libre"
diff --git a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch
deleted file mode 100644
index 880849db5..000000000
--- a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Mon, 31 Oct 2011 12:59:44 +1100
-Subject: md/raid10: Fix bug when activating a hot-spare.
-
-From: NeilBrown <neilb@suse.de>
-
-commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream.
-
-This is a fairly serious bug in RAID10.
-
-When a RAID10 array is degraded and a hot-spare is activated, the
-spare does not take up the empty slot, but rather replaces the first
-working device.
-This is likely to make the array non-functional. It would normally
-be possible to recover the data, but that would need care and is not
-guaranteed.
-
-This bug was introduced in commit
- 2bb77736ae5dca0a189829fbb7379d43364a9dac
-which first appeared in 3.1.
-
-Signed-off-by: NeilBrown <neilb@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/md/raid10.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde
- mirror_info_t *p = &conf->mirrors[mirror];
- if (p->recovery_disabled == mddev->recovery_disabled)
- continue;
-- if (!p->rdev)
-+ if (p->rdev)
- continue;
-
- disk_stack_limits(mddev->gendisk, rdev->bdev,
diff --git a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch b/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch
deleted file mode 100644
index 9e570dd3f..000000000
--- a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-commit 2394d67e446bf616a0885167d5f0d397bdacfdfc
-Author: Oliver Neukum <oneukum@suse.de>
-Date: Tue Sep 13 08:42:21 2011 +0200
-
- USB: add RESET_RESUME for webcams shown to be quirky
-
- The new runtime PM code has shown that many webcams suffer
- from a race condition that may crash them upon resume.
- Runtime PM is especially prone to show the problem because
- it retains power to the cameras at all times. However
- system suspension may also crash the devices and retain
- power to the devices.
- The only way to solve this problem without races is in
- usbcore with the RESET_RESUME quirk.
-
- Signed-off-by: Oliver Neukum <oneukum@suse.de>
- Signed-off-by: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 81ce6a8..38f0510 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Creative SB Audigy 2 NX */
- { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C200 */
-+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C250 */
-+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam B/C500 */
-+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam Pro 9000 */
-+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C310 */
-+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME },
-+
-+ /* Logitech Webcam C270 */
-+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Harmony 700-series */
- { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT },
-
-@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- { USB_DEVICE(0x06a3, 0x0006), .driver_info =
- USB_QUIRK_CONFIG_INTF_STRINGS },
-
-+ /* Guillemot Webcam Hercules Dualpix Exchange*/
-+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* M-Systems Flash Disk Pioneers */
- { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
-
-commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc
-Author: Jon Levell <linuxusb@coralbark.net>
-Date: Thu Sep 29 20:42:52 2011 +0100
-
- USB: add quirk for Logitech C300 web cam
-
- My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound.
- The following trivial patch fixes it.
-
- Signed-off-by: Jon Levell <linuxusb@coralbark.net>
- Cc: stable <stable@kernel.org>
- Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 38f0510..d6a8d82 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam C250 */
- { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C300 */
-+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index d6a8d82..caa1991 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- /* Logitech Webcam B/C500 */
- { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME },
-
-+ /* Logitech Webcam C600 */
-+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- /* Logitech Webcam Pro 9000 */
- { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME },
-
diff --git a/libre/mplayer-vaapi-libre/PKGBUILD b/libre/mplayer-vaapi-libre/PKGBUILD
index 5c5ffef3a..7147a380d 100644
--- a/libre/mplayer-vaapi-libre/PKGBUILD
+++ b/libre/mplayer-vaapi-libre/PKGBUILD
@@ -1,20 +1,20 @@
# $Id$
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
-# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
_pkgname=mplayer-vaapi
pkgname=mplayer-vaapi-libre
pkgver=34578
-pkgrel=4
+pkgrel=5.1
pkgdesc="A movie player, compiled with vaapi support"
arch=('i686' 'x86_64' 'mips64el')
url="http://gitorious.org/vaapi/mplayer"
license=('GPL')
depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'libcdio' 'libxinerama' 'sdl-libre'
- 'lame-libre' 'fontconfig' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'mesa'
+ 'lame' 'fontconfig' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'mesa'
'smbclient' 'aalib' 'jack' 'libcaca' 'x264' 'speex' 'faad2'
'lirc-utils' 'ttf-dejavu' 'libxvmc' 'enca' 'opencore-amr' 'libdca'
'a52dec' 'schroedinger' 'mpg123' 'libvpx' 'libpulse' 'fribidi' 'faad2'
@@ -25,17 +25,22 @@ conflicts=('mplayer' "$_pkgname")
replaces=('mplayer-vaapi')
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
source=(http://pkgbuild.com/~foutrelis/mplayer-vaapi-$pkgver.tar.xz
- mplayer.desktop
- mplayer.png)
+ tweak-desktop-file.patch
+ mplayer.png
+ live-media.patch)
options=('!buildflags' '!emptydirs')
install=mplayer-vaapi.install
sha256sums=('cc35a057c8a64d2cdec2dc0a037811ef0f91dd03cd3d07465c7272a08665a37d'
- '9aa54571b37d15aec2c8e3ddf086753217efc3084ebf466335b2f28d819c74da'
- '061739a8cc267748ad58f168034cc39785d949a5262772535e1b347c7842af48')
+ '5b39f0a61969bf330c4434cb17975101be93c27334f65e154e4a93033033e795'
+ '061739a8cc267748ad58f168034cc39785d949a5262772535e1b347c7842af48'
+ '9c1400f27dd2ea54c125c66ed1af0eab19761b1b2ae808fa491cd3732fd8a685')
build() {
cd "$srcdir/mplayer-vaapi-$pkgver"
+ patch -d etc -Np0 -i "$srcdir/tweak-desktop-file.patch"
+ patch -Np0 -i "$srcdir/live-media.patch"
+
./configure --prefix=/usr \
--enable-runtime-cpudetection \
--disable-gui \
@@ -66,11 +71,10 @@ package() {
make -j1 DESTDIR="$pkgdir" install-mplayer install-mplayer-man
install -Dm644 etc/{codecs.conf,input.conf,example.conf} "$pkgdir/etc/mplayer/"
- install -dm755 "$pkgdir/usr/share/mplayer/"
+ install -Dm644 etc/mplayer.desktop "$pkgdir/usr/share/applications/mplayer.desktop"
+ install -d "$pkgdir/usr/share/mplayer/"
ln -s /usr/share/fonts/TTF/DejaVuSans.ttf "$pkgdir/usr/share/mplayer/subfont.ttf"
rm -rf "$pkgdir/usr/share/mplayer/font"
- # Desktop file (FS#14770)
- install -Dm644 "$srcdir/mplayer.desktop" "$pkgdir/usr/share/applications/mplayer.desktop"
install -Dm644 "$srcdir/mplayer.png" "$pkgdir/usr/share/pixmaps/mplayer.png"
}
diff --git a/libre/mplayer-vaapi-libre/live-media.patch b/libre/mplayer-vaapi-libre/live-media.patch
new file mode 100644
index 000000000..73a6451f5
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/live-media.patch
@@ -0,0 +1,13 @@
+Index: libmpdemux/demux_rtp.cpp
+===================================================================
+--- libmpdemux/demux_rtp.cpp (revision 34798)
++++ libmpdemux/demux_rtp.cpp (working copy)
+@@ -19,6 +19,8 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
++#define RTSPCLIENT_SYNCHRONOUS_INTERFACE 1
++
+ extern "C" {
+ // on MinGW, we must include windows.h before the things it conflicts
+ #ifdef __MINGW32__ // with. they are each protected from
diff --git a/libre/mplayer-vaapi-libre/mplayer-vaapi.install b/libre/mplayer-vaapi-libre/mplayer-vaapi.install
index 2f38769cb..af56cdbf4 100644
--- a/libre/mplayer-vaapi-libre/mplayer-vaapi.install
+++ b/libre/mplayer-vaapi-libre/mplayer-vaapi.install
@@ -2,8 +2,8 @@ post_install() {
update-desktop-database -q
}
post_upgrade() {
- post_install $1
+ post_install
}
post_remove() {
- post_install $1
+ post_install
}
diff --git a/libre/mplayer-vaapi-libre/tweak-desktop-file.patch b/libre/mplayer-vaapi-libre/tweak-desktop-file.patch
new file mode 100644
index 000000000..db0f377d2
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/tweak-desktop-file.patch
@@ -0,0 +1,28 @@
+--- mplayer.desktop.orig 2012-05-13 19:25:26.000000000 +0300
++++ mplayer.desktop 2012-05-13 19:32:19.000000000 +0300
+@@ -7,12 +7,6 @@ GenericName[de]=Medienwiedergabe
+ GenericName[fr]=Lecteur multimédia
+ GenericName[it]=Lettore multimediale
+ GenericName[ja]=メディアプレーヤー
+-X-GNOME-FullName=MPlayer Media Player
+-X-GNOME-FullName[ca]=MPlayer Reproductor multimèdia
+-X-GNOME-FullName[de]=MPlayer Medienwiedergabe
+-X-GNOME-FullName[fr]=MPlayer Lecteur multimédia
+-X-GNOME-FullName[it]=MPlayer Lettore multimediale
+-X-GNOME-FullName[ja]=MPlayer メディアプレーヤー
+ Comment=Play movies and songs
+ Comment[ca]=Reproduïu vídeos i cançons
+ Comment[de]=Filme und Musik wiedergeben
+@@ -20,8 +14,9 @@ Comment[fr]=Lit les films et musiques
+ Comment[it]=Riproduce filmati e musica
+ Comment[ja]=動画や音声のファイルを再生します
+ Icon=mplayer
+-TryExec=gmplayer
+-Exec=gmplayer %F
++TryExec=mplayer
++Exec=mplayer -really-quiet %F
+ Terminal=false
++NoDisplay=true
+ Categories=GTK;AudioVideo;Audio;Video;Player;TV;
+-MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-theora;video/x-matroska;video/3gpp;application/x-flash-video;
++MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;video/3gpp;application/x-flash-video;
diff --git a/libre/pacman-mirrorlist-libre/PKGBUILD b/libre/pacman-mirrorlist-libre/PKGBUILD
index 914c939d2..9117277a7 100644
--- a/libre/pacman-mirrorlist-libre/PKGBUILD
+++ b/libre/pacman-mirrorlist-libre/PKGBUILD
@@ -5,9 +5,9 @@
pkgname=pacman-mirrorlist-libre
pkgver=$(date +%Y%m%d)
pkgrel=1
-pkgdesc="Parabola GNU/Linux mirror list for use by pacman"
+pkgdesc="Parabola GNU/Linux-libre mirror list for use by pacman"
arch=('any')
-url="http://repo.parabolagnulinux.org/mirrorlist.txt"
+url="https://repo.parabolagnulinux.org/mirrorlist.txt"
license=('GPL')
groups=('base')
backup=(etc/pacman.d/mirrorlist)
@@ -15,7 +15,7 @@ source=(mirrorlist::${url})
conflicts=(pacman-mirrorlist)
replaces=(pacman-mirrorlist)
provides=(pacman-mirrorlist)
-md5sums=('3c7958c93c36a41ad18f8d09fd1803ff')
+md5sums=('83cc258f57e6e9501246270bf776849e')
# keep an upgrade path for older installations
PKGEXT='.pkg.tar.gz'
diff --git a/libre/parabola-archiso-git/PKGBUILD b/libre/parabola-archiso-git/PKGBUILD
new file mode 100644
index 000000000..0b07ddf8d
--- /dev/null
+++ b/libre/parabola-archiso-git/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+pkgname=parabola-archiso-git
+pkgver=20120506
+pkgrel=1
+pkgdesc="Parabola GNU/Linux-libre livecd/liveusb generation scripts"
+arch=('any')
+url="https://parabolagnulinux.org"
+license=('GPL')
+depends=('libisoburn' 'squashfs-tools' 'rsync')
+optdepends=('qemu: quickly test isos')
+makedepends=('git')
+provides=('archiso')
+conflicts=('archiso')
+source=()
+md5sums=()
+
+_gitroot=git://parabolagnulinux.org/archiso.git
+_gitname=archiso
+
+build() {
+ cd ${srcdir}
+ msg "Connecting to projects.parabolagnulinux.org GIT server..."
+
+ if [ -d ${srcdir}/$_gitname ]; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ if [ -d ${srcdir}/$_gitname-build ]; then
+ rm -rf ${srcdir}/$_gitname-build
+ fi
+
+ git clone ${srcdir}/$_gitname ${srcdir}/$_gitname-build || return 1
+ cd ${srcdir}/$_gitname-build/$_gitname || return 1
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/parabolaweb-git/Makefile b/libre/parabolaweb-git/Makefile
new file mode 100644
index 000000000..55115aba3
--- /dev/null
+++ b/libre/parabolaweb-git/Makefile
@@ -0,0 +1,26 @@
+all:
+ makepkg
+
+python_packages=south
+python2_packages=markdown|psycopg2|pyinotify|pytz
+requirements= https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt
+
+requirements_prod.txt: WEB
+ rm -f $@
+ wget --no-check-certificate $(requirements)
+
+deps-ver.txt: requirements_prod.txt
+ sed -r -e 's/.*/\L&/' -e 's/==/=/' \
+ -e 's/^(${python_packages})/python-&/' \
+ -e 's/^(${python2_packages})/python2-&/' $< >$@
+
+deps-nover.txt: deps-ver.txt
+ sed 's/[<>=].*//' $< >$@
+
+clean:
+ rm requirements_prod.txt deps-ver.txt deps-nover.txt
+
+WEB: FORCE
+FORCE: PHONY
+PHONY:
+.PHONY: PHONY
diff --git a/~lukeshu/parabolaweb-git/PKGBUILD b/libre/parabolaweb-git/PKGBUILD
index 962b1c977..4641ea8d3 100644
--- a/~lukeshu/parabolaweb-git/PKGBUILD
+++ b/libre/parabolaweb-git/PKGBUILD
@@ -1,20 +1,19 @@
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
-# This does not follow normal package guidelines; it is not a normal package.
pkgname=parabolaweb-git
-pkgver=20120228
-pkgrel=2
+pkgver=20120506
+pkgrel=3
pkgdesc="The Parabola website, fork of archweb"
arch=('any')
url="https://projects.parabolagnulinux.org/parabolaweb.git/"
license=('GPL2')
-_requirements=https://projects.parabolagnulinux.org/parabolaweb.git/plain/requirements_prod.txt
-depends=('python2' 'git'
- `curl -s "$_requirements" | sed -r -e 's/.*/\L&/' -e 's/==/=/' \
- -e 's/^(south)/python-&/' \
- -e 's/^(markdown|psycopg2|pyinotify|pytz)/python2-&/'`)
-install=parabolaweb.install
+_deps_file=deps-ver.txt
+#_deps_file=deps-nover.txt
+make "$_deps_file" 1>&2
+depends=('python2' 'git' 'libretools' `cat $_deps_file`)
+
+source=('parabolaweb.init.sh' 'parabolaweb.update.sh.in')
# These will make it install into /http/srv/web
_install_dir=/srv/http
@@ -24,14 +23,21 @@ _gitroot=https://projects.parabolagnulinux.org/parabolaweb.git
_gitbranch="master"
build() {
- sed -i \
+ cd "${srcdir}"
+ sed \
-e "s|^_install_dir=.*|_install_dir='$_install_dir'|" \
-e "s|^_gitname=.*|_gitname='$_gitname'|" \
-e "s|^_gitroot=.*|_gitroot='$_gitroot'|" \
-e "s|^_gitbranch=.*|_gitbranch='$_gitbranch'|" \
- ../parabolaweb.install
+ < parabolaweb.update.sh.in > parabolaweb.update.sh
}
package() {
+ cd "${srcdir}"
install -d "${pkgdir}/${_install_dir}"
+ install -Dm755 parabolaweb.init.sh "${pkgdir}/etc/rc.d/parabolaweb"
+ install -Dm755 parabolaweb.update.sh "${pkgdir}/usr/sbin/parabolaweb.update"
}
+
+md5sums=('72bc7092e4e50a2aaca8b871644520d9'
+ 'f495b2e4623691925308cb4a1ec7e5a9')
diff --git a/libre/parabolaweb-git/deps-ver.txt b/libre/parabolaweb-git/deps-ver.txt
new file mode 100644
index 000000000..67fe6848b
--- /dev/null
+++ b/libre/parabolaweb-git/deps-ver.txt
@@ -0,0 +1,7 @@
+django=1.3.1
+python2-markdown>=2.0.3
+python2-psycopg2
+python-south>=0.7.3
+python2-pyinotify>=0.9.2
+python-memcached>=1.47
+python2-pytz>=2011n
diff --git a/libre/parabolaweb-git/parabolaweb.init.sh b/libre/parabolaweb-git/parabolaweb.init.sh
new file mode 100644
index 000000000..cb9f2441e
--- /dev/null
+++ b/libre/parabolaweb-git/parabolaweb.init.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+HOST=127.0.0.1
+PORT=8090 # 80 is nginx
+PIDFILE=/var/run/web/fcgi.pid
+
+case $1 in
+start)
+ stat_busy "Starting ParabolaWeb"
+ if [[ -e /srv/http/web/manage.py ]]; then
+ sudo -u nobody \
+ python2 /srv/http/web/manage.py runfcgi \
+ host=${HOST} \
+ port=${PORT} \
+ pidfile=${PIDFILE} \
+ --settings=settings
+
+ add_daemon parabolaweb
+ stat_done
+ exit 0
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ stat_busy "Stopping ParabolaWeb"
+ if [[ -f ${PIDFILE} ]]; then
+ pid=$(cat ${PIDFILE})
+ kill ${pid}
+ rm_daemon parabolaweb
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac
diff --git a/libre/parabolaweb-git/parabolaweb.update.sh.in b/libre/parabolaweb-git/parabolaweb.update.sh.in
new file mode 100644
index 000000000..8c3aef0f0
--- /dev/null
+++ b/libre/parabolaweb-git/parabolaweb.update.sh.in
@@ -0,0 +1,59 @@
+#!/bin/sh
+set -e
+
+_install_dir=@INSTALL_DIR@
+_gitname=@GIT_NAME@
+
+_gitroot=@GITROOT@
+_gitbranch=@GITBRANCH@
+
+. /usr/bin/libremessages
+
+if [ ! -d "$_install_dir" ]; then
+ mkdir "$_install_dir"
+fi
+cd "$_install_dir"
+
+msg "Connecting to GIT server...."
+if [ -d ${_gitname} ] ; then
+ msg2 "Updating existing tree"
+ cd ${_gitname} && git pull ${_gitroot}
+else
+ msg2 "Cloning tree"
+ git clone ${_gitroot} ${_gitname}
+ cd ${_gitname}
+fi
+git checkout ${_gitbranch}
+msg "GIT checkout done or server timeout"
+
+msg "Purging old .pyc files...."
+find . -name '*.pyc' -delete
+
+msg "Checking configuration...."
+if [ ! -f local_settings.py ]; then
+ cp local_settings.py.example local_settings.tmp.$$.py
+ if ${EDITOR:-xdg-open} local_settings.tmp.$$.py; then
+ mv local_settings.tmp.$$.py local_settings.py
+ else
+ rm local_settings.tmp.$$.py
+ msg "Failed to configure, exiting"
+ exit 1
+ fi
+ msg "Creating database...."
+ ./manage.py syncdb
+fi
+
+msg "Purging old .pyc files...."
+find . -name '*.pyc' -delete
+
+msg "Updating database...."
+msg2 "Running migrations...."
+./manage.py migrate
+msg2 "Loading fixtures...."
+./manage.py loaddata */fixtures/*.json
+
+msg "Checking media/admin_media symlink...."
+if [ ! -e media/admin-media ]; then
+ rm media/admin_media
+ ln -s /usr/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media
+fi
diff --git a/libre/parabolaweb-git/requirements_prod.txt b/libre/parabolaweb-git/requirements_prod.txt
new file mode 100644
index 000000000..78eb51250
--- /dev/null
+++ b/libre/parabolaweb-git/requirements_prod.txt
@@ -0,0 +1,7 @@
+Django==1.3.1
+Markdown>=2.0.3
+psycopg2
+South>=0.7.3
+pyinotify>=0.9.2
+python-memcached>=1.47
+pytz>=2011n
diff --git a/libre/python2-ply/PKGBUILD b/libre/python2-ply/PKGBUILD
new file mode 100644
index 000000000..fec80926a
--- /dev/null
+++ b/libre/python2-ply/PKGBUILD
@@ -0,0 +1,16 @@
+# Contributor: Marcin "avalan" Falkiewicz <avalatron@gmail.com>
+# Maintainer: C Anthony Risinger <anthony@xtfx.me>
+
+pkgname='python2-ply'
+pkgver=3.4
+pkgrel=1
+pkgdesc='Implementation of lex and yacc parsing tools for Python.'
+arch=('any')
+url='http://www.dabeaz.com/ply/'
+license=('BSD')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("${url}ply-${pkgver}.tar.gz")
+md5sums=('ffdc95858819347bf92d7c2acc074894')
+
+build() { cd "ply-${pkgver}"; python2 setup.py install --root="${pkgdir}"; }
diff --git a/libre/seamonkey-libre/PKGBUILD b/libre/seamonkey-libre/PKGBUILD
index f34cf229a..e7d4cc389 100644
--- a/libre/seamonkey-libre/PKGBUILD
+++ b/libre/seamonkey-libre/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 153522 2012-03-15 14:43:42Z ibiru $
+# $Id: PKGBUILD 157354 2012-04-27 20:50:49Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
_pkgname=seamonkey
pkgname=seamonkey-libre
-pkgver=2.8
+pkgver=2.9
pkgrel=1
pkgdesc="SeaMonkey internet suite, with GNUZilla addons"
arch=('i686' 'x86_64' 'mips64el')
license=('MPL')
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite' 'startup-notification')
makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'yasm' 'wireless_tools' 'mesa' 'autoconf2.13')
replaces=('mozilla' 'seamonkey')
conflicts=('seamonkey')
@@ -18,19 +18,22 @@ source=(ftp://releases.mozilla.org/pub/mozilla.org/$_pkgname/releases/$pkgver/so
mozconfig
seamonkey.desktop
seamonkey-2.0-lang.patch
- libvpx.patch
+ gcc47.patch
+ clrf.patch
gnuzilla-addons.patch)
-md5sums=('a7128f6bcd16bebed4a7c3487b69c38f'
- 'd02b5f002a7cdf8d15dccd2548d09256'
+md5sums=('4af38acf517a8ab850e6aa7a6b085325'
+ 'b8887c39a190e3168a9c7e4355ae3dd4'
'6119a2254716752c9d08e366f8d4c048'
'25b6fe16ac24cd5c852213e5c1adb272'
- '5b2aaff7dfe7f1f94ad965905b20e782'
+ '1e3ad86899c61f0993c429d10913edb4'
+ 'abe8f73faa71ea2a1e4c6f5a33f56c27'
'f7beeb1f94390957259212dd1dbc171f')
build() {
cd "$srcdir/comm-release"
patch -Np1 -i "$srcdir/seamonkey-2.0-lang.patch"
- patch -Np1 -i "$srcdir/libvpx.patch"
+ patch -Np1 -i "$srcdir/gcc47.patch"
+ patch -Np1 -i "$srcdir/clrf.patch"
patch -Np1 -i "${srcdir}/gnuzilla-addons.patch"
cp "$srcdir/mozconfig" .mozconfig
@@ -55,4 +58,5 @@ package() {
install -m644 "$srcdir/seamonkey.desktop" "$pkgdir/usr/share/applications/"
rm -f "$pkgdir/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
+ rm -r "$pkgdir"/usr/{include,lib/seamonkey-devel-$pkgver,share/idl}
}
diff --git a/libre/seamonkey-libre/clrf.patch b/libre/seamonkey-libre/clrf.patch
new file mode 100644
index 000000000..5a77f2b01
--- /dev/null
+++ b/libre/seamonkey-libre/clrf.patch
@@ -0,0 +1,265 @@
+diff -Nur comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp
+--- comm-release.orig/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:10.468804374 +0000
++++ comm-release/mailnews/base/search/src/nsMsgSearchAdapter.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -688,7 +688,7 @@
+ PL_strcat(encoding, "{");
+ lengthStr.AppendInt((PRInt32) strlen(value));
+ PL_strcat(encoding, lengthStr.get());
+- PL_strcat(encoding, "}"CRLF);
++ PL_strcat(encoding, "}" CRLF);
+ PL_strcat(encoding, value);
+ return NS_OK;
+ }
+diff -Nur comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp
+--- comm-release.orig/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:10.475470988 +0000
++++ comm-release/mailnews/base/src/nsMsgFolderCompactor.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -758,7 +758,7 @@
+ }
+ }
+ }
+-#define EXTRA_KEYWORD_HDR " "MSG_LINEBREAK
++#define EXTRA_KEYWORD_HDR " " MSG_LINEBREAK
+
+ // if status offset isn't in the first block, this code won't work. There's no good reason
+ // for the status offset not to be at the beginning of the message anyway.
+@@ -1216,7 +1216,7 @@
+ // check if there's an envelope header; if not, write one.
+ if (strncmp(m_dataBuffer, "From ", 5))
+ {
+- m_fileStream->Write("From "CRLF, 7, &bytesWritten);
++ m_fileStream->Write("From " CRLF, 7, &bytesWritten);
+ m_offlineMsgSize += bytesWritten;
+ }
+ }
+diff -Nur comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp comm-release/mailnews/compose/src/nsSmtpProtocol.cpp
+--- comm-release.orig/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:10.542137136 +0000
++++ comm-release/mailnews/compose/src/nsSmtpProtocol.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -1722,7 +1722,7 @@
+ {
+ m_sendDone = true;
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+- SendData(url, "QUIT"CRLF); // send a quit command to close the connection with the server.
++ SendData(url, "QUIT" CRLF); // send a quit command to close the connection with the server.
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_DONE;
+ return(0);
+@@ -1969,7 +1969,7 @@
+ {
+ nsCOMPtr<nsIURI> url = do_QueryInterface(m_runningURL);
+ // send a quit command to close the connection with the server.
+- if (SendData(url, "QUIT"CRLF) == NS_OK)
++ if (SendData(url, "QUIT" CRLF) == NS_OK)
+ {
+ m_nextState = SMTP_RESPONSE;
+ m_nextStateAfterResponse = SMTP_ERROR_DONE;
+@@ -2118,4 +2118,3 @@
+ NS_ENSURE_SUCCESS(rv,rv);
+ return rv;
+ }
+-
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp comm-release/mailnews/imap/src/nsImapMailFolder.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapMailFolder.cpp 2012-04-25 01:09:45.928528202 +0000
+@@ -8309,7 +8309,7 @@
+ bool needMoreData = false;
+ char * newLine = nsnull;
+ PRUint32 numBytesInLine = 0;
+- const char *envelope = "From "CRLF;
++ const char *envelope = "From " CRLF;
+ offlineStore->Write(envelope, strlen(envelope), &bytesWritten);
+ fileSize += bytesWritten;
+ do
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp comm-release/mailnews/imap/src/nsImapProtocol.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapProtocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1409,7 +1409,7 @@
+ {
+ // PRInt32 oldRecent = GetServerStateParser().NumberOfRecentMessages();
+ nsCAutoString commandBuffer(GetServerCommandTag());
+- commandBuffer.Append(" IDLE"CRLF);
++ commandBuffer.Append(" IDLE" CRLF);
+
+ do
+ {
+@@ -3287,7 +3287,7 @@
+ commandString.Append(messageIds);
+ commandString.Append(" (");
+ commandString.Append(attribute);
+- commandString.Append(")"CRLF);
++ commandString.Append(")" CRLF);
+ nsresult rv = SendData(commandString.get());
+
+ if (NS_SUCCEEDED(rv))
+@@ -5283,7 +5283,7 @@
+
+ IncrementCommandTagNumber();
+ nsCAutoString command(GetServerCommandTag());
+- command.Append(" expunge"CRLF);
++ command.Append(" expunge" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5359,7 +5359,7 @@
+ command.Append(gAppName);
+ command.Append("\" \"version\" \"");
+ command.Append(gAppVersion);
+- command.Append("\")"CRLF);
++ command.Append("\")" CRLF);
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -5816,7 +5816,7 @@
+ nsCAutoString correctedPassword;
+ EscapeUserNamePasswordString(password.get(), &correctedPassword);
+ command.Append(correctedPassword);
+- command.Append("\""CRLF);
++ command.Append("\"" CRLF);
+ rv = SendData(command.get(), true /* suppress logging */);
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+@@ -7447,7 +7447,7 @@
+ nsCString command(GetServerCommandTag());
+ command += " create \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if(NS_SUCCEEDED(rv))
+@@ -7550,7 +7550,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " lsub \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7579,7 +7579,7 @@
+ command += useXLIST ?
+ " xlist \"\" \"" : " list \"\" \"";
+ command += escapedPattern;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ PR_Free(boxnameWithOnlineDirectory);
+
+@@ -7600,7 +7600,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " subscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7618,7 +7618,7 @@
+ nsCString command (GetServerCommandTag());
+ command += " unsubscribe \"";
+ command += escapedName;
+- command += "\""CRLF;
++ command += "\"" CRLF;
+
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+@@ -7632,7 +7632,7 @@
+ if (m_urlInProgress)
+ return;
+ nsCAutoString command (GetServerCommandTag());
+- command += " IDLE"CRLF;
++ command += " IDLE" CRLF;
+ nsresult rv = SendData(command.get());
+ if (NS_SUCCEEDED(rv))
+ {
+@@ -7659,7 +7659,7 @@
+ nsCOMPtr <nsIAsyncInputStream> asyncInputStream = do_QueryInterface(m_inputStream);
+ if (asyncInputStream)
+ asyncInputStream->AsyncWait(nsnull, 0, 0, nsnull);
+- nsresult rv = SendData("DONE"CRLF);
++ nsresult rv = SendData("DONE" CRLF);
+ // set a short timeout if we don't want to wait for a response
+ if (m_transport && !waitForResponse)
+ m_transport->SetTimeout(nsISocketTransport::TIMEOUT_READ_WRITE, 5);
+@@ -7728,8 +7728,8 @@
+ PRUint32 msgsHandled = 0;
+ const char *formatString;
+ formatString = (idsAreUid)
+- ? "%s uid store %s %s"CRLF
+- : "%s store %s %s"CRLF;
++ ? "%s uid store %s %s" CRLF
++ : "%s store %s %s" CRLF;
+
+ do
+ {
+diff -Nur comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp
+--- comm-release.orig/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:10.605469976 +0000
++++ comm-release/mailnews/imap/src/nsImapServerResponseParser.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -185,7 +185,7 @@
+
+ NS_ASSERTION(aCurrentCommand && *aCurrentCommand != '\r' &&
+ *aCurrentCommand != '\n' && *aCurrentCommand != ' ', "Invailid command string");
+- bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE"CRLF);
++ bool sendingIdleDone = !strcmp(aCurrentCommand, "DONE" CRLF);
+ if (sendingIdleDone)
+ fWaitingForMoreClientInput = false;
+
+diff -Nur comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp comm-release/mailnews/local/src/nsPop3Protocol.cpp
+--- comm-release.orig/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:10.492137526 +0000
++++ comm-release/mailnews/local/src/nsPop3Protocol.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -2483,7 +2483,7 @@
+ return(MK_OUT_OF_MEMORY);
+ m_pop3ConData->next_state_after_response = POP3_GET_LIST;
+ m_listpos = 0;
+- return SendData(m_url, "LIST"CRLF);
++ return SendData(m_url, "LIST" CRLF);
+ }
+
+
+diff -Nur comm-release.orig/mailnews/mime/src/mimedrft.cpp comm-release/mailnews/mime/src/mimedrft.cpp
+--- comm-release.orig/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimedrft.cpp 2012-04-25 01:09:45.931861509 +0000
+@@ -1473,7 +1473,7 @@
+ *newbody = 0;
+ PL_strcatn(newbody, newbodylen, "<PRE>");
+ PL_strcatn(newbody, newbodylen, body);
+- PL_strcatn(newbody, newbodylen, "</PRE>"CRLF);
++ PL_strcatn(newbody, newbodylen, "</PRE>" CRLF);
+ PR_Free(body);
+ body = newbody;
+ }
+diff -Nur comm-release.orig/mailnews/mime/src/mimemult.cpp comm-release/mailnews/mime/src/mimemult.cpp
+--- comm-release.orig/mailnews/mime/src/mimemult.cpp 2012-04-25 01:09:10.488804218 +0000
++++ comm-release/mailnews/mime/src/mimemult.cpp 2012-04-25 01:12:53.383735715 +0000
+@@ -280,7 +280,7 @@
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: attachment; filename=\""));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("X-Mozilla-External-Attachment-URL: "));
+ MimeWriteAString(obj, obj->options->state->detachedFilePath);
+ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK));
+@@ -293,10 +293,10 @@
+ status = MimeWriteAString(obj, header);
+ if (status < 0)
+ return status;
+- status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"Content-Transfer-Encoding: 8bit"MSG_LINEBREAK));
++ status = MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "Content-Transfer-Encoding: 8bit" MSG_LINEBREAK));
+ MimeWriteAString(obj, NS_LITERAL_CSTRING("Content-Disposition: inline; filename=\"Deleted: "));
+ MimeWriteAString(obj, fileName);
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK"X-Mozilla-Altered: AttachmentDeleted; date=\""));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK "X-Mozilla-Altered: AttachmentDeleted; date=\""));
+ }
+ nsCString result;
+ char timeBuffer[128];
+@@ -306,8 +306,8 @@
+ "%a %b %d %H:%M:%S %Y",
+ &now);
+ MimeWriteAString(obj, nsDependentCString(timeBuffer));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING("\""MSG_LINEBREAK));
+- MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK"You deleted an attachment from this message. The original MIME headers for the attachment were:"MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING("\"" MSG_LINEBREAK));
++ MimeWriteAString(obj, NS_LITERAL_CSTRING(MSG_LINEBREAK "You deleted an attachment from this message. The original MIME headers for the attachment were:" MSG_LINEBREAK));
+ MimeHeaders_write_raw_headers(mult->hdrs, obj->options, false);
+ }
+ PRInt32 old_nchildren = container->nchildren;
diff --git a/libre/seamonkey-libre/gcc47.patch b/libre/seamonkey-libre/gcc47.patch
new file mode 100644
index 000000000..080502c23
--- /dev/null
+++ b/libre/seamonkey-libre/gcc47.patch
@@ -0,0 +1,39 @@
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:15:57.347221336 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/file_util_linux.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -5,6 +5,9 @@
+ #include "base/file_util.h"
+
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <string>
+ #include <vector>
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:15:57.353887955 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -6,6 +6,9 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+diff -Nur comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc comm-release/mozilla/ipc/chromium/src/base/time_posix.cc
+--- comm-release.orig/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:15:57.350554645 +0000
++++ comm-release/mozilla/ipc/chromium/src/base/time_posix.cc 2012-04-24 23:18:34.116046872 +0000
+@@ -13,6 +13,9 @@
+ #else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
diff --git a/libre/seamonkey-libre/mozconfig b/libre/seamonkey-libre/mozconfig
index 8257f8e4f..4d04c96d5 100644
--- a/libre/seamonkey-libre/mozconfig
+++ b/libre/seamonkey-libre/mozconfig
@@ -13,7 +13,8 @@ ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
+ac_add_options --enable-system-ffi
+#ac_add_options --enable-system-cairo
ac_add_options --with-pthreads
# Features
diff --git a/libre/syslinux/PKGBUILD b/libre/syslinux/PKGBUILD
new file mode 100644
index 000000000..1a76a6825
--- /dev/null
+++ b/libre/syslinux/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id$
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=syslinux
+pkgver=4.05
+pkgrel=4.3
+arch=('i686' 'x86_64')
+pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE (Parabola rebranded)"
+url="http://syslinux.zytor.com/"
+license=('GPL2')
+depends=('perl' 'glibc')
+optdepends=('perl-passwd-md5: For md5pass'
+ 'perl-digest-sha1: For sha1pass'
+ 'mtools: For mkdiskimage and syslinux support'
+ )
+makedepends=('nasm')
+backup=('boot/syslinux/syslinux.cfg'
+ 'boot/syslinux/splash.png')
+install=syslinux.install
+source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.tar.bz2
+ syslinux-dont-build-dos-windows-targets.patch
+ syslinux.cfg
+ syslinux-install_update
+ splash.png
+ fix-undefined-type-umode_t.patch)
+md5sums=('82299242418385da1274c9479a778cb2'
+ '1528c376e43f0eaccaa80d8ad1bc13b4'
+ '8dc2afca3739667e892faf04eb97e7b1'
+ '680750f73dc2e587ac567d057d485813'
+ '0035b6cac6756a384b861eda8d33e4f7'
+ '8674f8a0f480f26b705570d699c78a2c')
+
+build() {
+ # Do not try to build syslinux with our default LDFLAGS, it will fail
+ unset LDFLAGS
+ cd "$srcdir"/$pkgname-${pkgver}
+ # Do not try to build the Windows or DOS installers
+ patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch
+ # Fix unknown type name 'umode_t' error
+ patch -p1 -i "$srcdir"/fix-undefined-type-umode_t.patch
+ # Fix FHS manpage path
+ sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-${pkgver}
+ make INSTALLROOT="$pkgdir" AUXDIR=/usr/lib/syslinux install
+
+ # Install the default configuration
+ install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
+ # Install Parabola splash
+ install -D -m644 "$srcdir"/splash.png "$pkgdir"/boot/syslinux/splash.png
+ # Install the installation and update script
+ # This script is maintained at git://gist.github.com/772138.git
+ install -D -m755 "$srcdir"/syslinux-install_update "$pkgdir"/usr/sbin/syslinux-install_update
+ # move extlinux binary to /usr/sbin
+ mv "$pkgdir"/sbin/extlinux "$pkgdir"/usr/sbin/extlinux
+}
diff --git a/libre/syslinux/fix-undefined-type-umode_t.patch b/libre/syslinux/fix-undefined-type-umode_t.patch
new file mode 100644
index 000000000..33ac6d323
--- /dev/null
+++ b/libre/syslinux/fix-undefined-type-umode_t.patch
@@ -0,0 +1,58 @@
+--- syslinux-4.05.orig/libinstaller/linuxioctl.h 2011-12-09 16:28:17.000000000 -0200
++++ syslinux-4.05/libinstaller/linuxioctl.h 2012-05-18 20:30:23.000000000 -0300
+@@ -9,22 +9,36 @@
+
+ #include <sys/ioctl.h>
+
++#ifdef __linux__
++
+ #define statfs _kernel_statfs /* HACK to deal with broken 2.4 distros */
+
+ #include <linux/fd.h> /* Floppy geometry */
+ #include <linux/hdreg.h> /* Hard disk geometry */
+
+-#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_FIEMAP */
+-#include <linux/msdos_fs.h> /* FAT_IOCTL_SET_ATTRIBUTES */
++#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_* */
+
+ #undef SECTOR_SIZE /* Defined in msdos_fs.h for no good reason */
+ #undef SECTOR_BITS
+-#include <linux/ext2_fs.h> /* EXT2_IOC_* */
++
++#ifndef FS_IOC_GETFLAGS
++/* Old kernel headers, these were once ext2-specific... */
++# include <linux/ext2_fs.h> /* EXT2_IOC_* */
++
++# define FS_IOC_GETFLAGS EXT2_IOC_GETFLAGS
++# define FS_IOC_SETFLAGS EXT2_IOC_SETFLAGS
++
++# define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL
++
++#else
++
++# include <ext2fs/ext2_fs.h>
++
++#endif
+
+ #ifndef FAT_IOCTL_GET_ATTRIBUTES
+ # define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32)
+ #endif
+-
+ #ifndef FAT_IOCTL_SET_ATTRIBUTES
+ # define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32)
+ #endif
+@@ -37,11 +51,13 @@
+
+ #undef statfs
+
+-#if defined(__linux__) && !defined(BLKGETSIZE64)
++#ifndef BLKGETSIZE64
+ /* This takes a u64, but the size field says size_t. Someone screwed big. */
+ # define BLKGETSIZE64 _IOR(0x12,114,size_t)
+ #endif
+
+ #include <linux/loop.h>
+
++#endif /* __linux__ */
++
+ #endif /* LIBINSTALLER_LINUXIOCTL_H */
diff --git a/libre/syslinux/rePKGBUILD b/libre/syslinux/rePKGBUILD
new file mode 100644
index 000000000..a8eb152d5
--- /dev/null
+++ b/libre/syslinux/rePKGBUILD
@@ -0,0 +1,45 @@
+# This is an example rePKGBUILD file. Use this as a start to creating your own,
+# and remove these comments. For more information, see 'man PKGBUILD'.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+source PKGBUILD
+unset build package md5sums source check
+_repo=core
+pkgname='syslinux'
+options=(!strip)
+source=(PKGBUILD
+# http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgname}-${pkgver}-4-${CARCH}${PKGEXT}
+ # files for pkg modifications
+ syslinux.cfg
+ splash.png)
+
+build() {
+ cd "${srcdir}/"
+# rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-$pkgrel-$CARCH$PKGEXT || true
+ rm -v .{INSTALL,PKGINFO} ${pkgname%}-$pkgver-4-$CARCH$PKGEXT || true
+ # put actions for package modifications below this line
+
+ rm -v boot/syslinux/syslinux.cfg
+}
+
+package_syslinux() {
+ pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE (Parabola rebranded)"
+ install=syslinux.install
+ backup=('boot/syslinux/syslinux.cfg'
+ 'boot/syslinux/splash.png')
+ optdepends=('perl-passwd-md5: For md5pass'
+ 'perl-digest-sha1: For sha1pass'
+ 'mtools: For mkdiskimage and syslinux support'
+ )
+ # Install the default configuration
+ install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
+ # Install Parabola splash
+ install -D -m644 "$srcdir"/splash.png "$pkgdir"/boot/syslinux/splash.png
+
+
+ find ${srcdir} -maxdepth 1 -type l -delete
+ cp -a ${srcdir}/* ${pkgdir}
+}
diff --git a/libre/syslinux/splash.png b/libre/syslinux/splash.png
new file mode 100644
index 000000000..43d4692ab
--- /dev/null
+++ b/libre/syslinux/splash.png
Binary files differ
diff --git a/libre/syslinux/syslinux-dont-build-dos-windows-targets.patch b/libre/syslinux/syslinux-dont-build-dos-windows-targets.patch
new file mode 100644
index 000000000..2b86ab828
--- /dev/null
+++ b/libre/syslinux/syslinux-dont-build-dos-windows-targets.patch
@@ -0,0 +1,12 @@
+diff -Nur syslinux-4.02.orig//Makefile syslinux-4.02//Makefile
+--- syslinux-4.02.orig//Makefile 2010-07-21 21:33:13.000000000 +0200
++++ syslinux-4.02//Makefile 2010-07-22 11:14:03.325522937 +0200
+@@ -54,7 +54,7 @@
+ # files that depend only on the B phase, but may have to be regenerated
+ # for "make installer".
+ BSUBDIRS = codepage com32 lzo core memdisk modules mbr memdump gpxe sample \
+- diag libinstaller dos win32 win64 dosutil
++ libinstaller
+ ITARGET =
+ IOBJECTS = $(ITARGET) \
+ utils/gethostip utils/isohybrid utils/mkdiskimage \
diff --git a/libre/syslinux/syslinux-install_update b/libre/syslinux/syslinux-install_update
new file mode 100644
index 000000000..cd1baa572
--- /dev/null
+++ b/libre/syslinux/syslinux-install_update
@@ -0,0 +1,463 @@
+#!/bin/bash
+#
+# Sylinux Installer / Updater Scripts
+# Copyright (C) 2011 Matthew Gyurgyik <pyther@pyther.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+#-----------------
+# Exit Codes:
+# 1 - get_boot_device or other function failed
+# 2 - install/update failed
+# 3 - set_active failed
+# 4 - install_mbr failed
+#
+shopt -s nullglob
+
+libpath="/usr/lib/syslinux"
+bootpath="/boot/syslinux"
+extlinux="/usr/sbin/extlinux"
+
+autoupdate_file=/boot/syslinux/SYSLINUX_AUTOUPDATE
+com32_files=(menu.c32 vesamenu.c32 chain.c32 hdt.c32 reboot.c32 poweroff.com)
+pciids_file=/usr/share/hwdata/pci.ids
+
+## Helper functions ##
+# Taken from libui-sh
+# $1 needle
+# $2 set (array) haystack
+check_is_in() {
+ local needle="$1" element
+ shift
+ for element; do
+ [[ $element = $needle ]] && return 0
+ done
+ return 1
+}
+
+# return true when blockdevice is an md raid, otherwise return a unset value
+# get all devices that are part of raid device $1
+device_is_raid() {
+ [[ $1 && -f /proc/mdstat ]] || return 1
+ local devmajor=$(stat -c %t "$1")
+ (( devmajor == 9 ))
+}
+
+mdraid_all_slaves() {
+ local slave slaves
+ for slave in /sys/class/block/${1##*/}/slaves/*; do
+ source "$slave/uevent"
+ slaves="$slaves/dev/$DEVNAME "
+ unset DEVNAME
+ done
+ echo $slaves
+}
+
+# Check /sys/block to see if device is partitioned
+# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist
+# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist
+dev_is_part() {
+ # $1 - blockdevice
+ local dev=$1
+
+ # If block device uevent file should be found
+ # If a partition is passed in path shouldn't exist
+ if [[ $dev = *cciss* ]]; then
+ [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1
+ elif [[ $dev = *ida* ]]; then
+ [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1
+ else
+ [[ -f /sys/block/${dev##*/}/dev ]] && return 1
+ fi
+
+ return 0
+}
+
+# If EFI PART is present in the first 8 bytes then it must be a GPT disk
+device_is_gpt() {
+ local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null)
+ [[ $partsig = "EFI PART" ]]
+}
+
+clear_gpt_attr2() {
+ # $1 - Block Device, no partitions
+ local disk=$1
+
+ # Special Exception for cciss controllers
+ if [[ $disk = *cciss* ]]; then
+ for part in /dev/cciss/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ # Smart 2 Controllers
+ elif [[ $disk = *ida* ]]; then
+ for part in /dev/ida/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ else
+ for part in /sys/block/${disk##*/}/${disk##*/}*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ fi
+ return 0
+}
+
+usage() {
+cat << EOF
+usage: $0 options
+
+This script will install or upgrade Syslinux
+
+OPTIONS:
+ -h Show this message
+ -i Install Syslinux
+ -u Update Syslinux
+ -a Set Boot flag on boot partiton
+ -m Install Syslinux MBR
+ -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+
+ Arguments Required:
+ -c Chroot install (ex: -c /mnt)
+
+Example Usage: syslinux-install_update.sh -i -a -m (install, set boot flag, install mbr)
+ syslinux-install_update.sh -u (update)
+EOF
+}
+
+# Trys to find the partition that /boot resides on
+# This will either be on /boot or / (root)
+getBoot() {
+ if [[ ! -d "$bootpath" ]]; then
+ echo "Could not find $bootpath"
+ echo "Is boot mounted? Is Syslinux installed?"
+ exit 1
+ fi
+
+ syslinux_fs=(ext2 ext3 ext4 btrfs vfat)
+
+ # Use DATA from findmnt see rc.sysint for more info
+ if [[ -f /proc/self/mountinfo ]]; then
+ read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/")
+ read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot")
+ else
+ echo "Could not find /proc/self/mountinfo"
+ echo "Are you running a kernel greater than 2.6.24?"
+ exit 1
+ fi
+
+ if [[ $bootfs ]]; then
+ if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then
+ echo "/boot file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="boot"
+ bootpart="$bootdev"
+ elif [[ $rootfs ]]; then
+ if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then
+ echo "/ (root) file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="root"
+ bootpart="$rootdev"
+ else
+ echo "Could not find filesystem on / (root) or /boot."
+ exit 1
+ fi
+}
+
+# We store the partition table type either gpt or mbr in var ptb
+# In rare cases a user could have one raid disk using mbr and another using gpt
+# In such cases we accept that the output may be incomplete
+
+# Calls get_ptb() for $bootpart or for all device in RAID
+declare -A bootdevs
+get_boot_devices() {
+ if device_is_raid "$bootpart"; then
+ slaves=$(mdraid_all_slaves "$bootpart")
+
+ for slave in ${slaves[@]}; do
+ local disk="${slave%%[[:digit:]]*}"
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$slave]="$ptb"
+ done
+ else
+ local disk="${bootpart%%[[:digit:]]*}"
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$bootpart]="$ptb"
+ fi
+}
+
+# Function Assumes the boot partition should be marked as active
+# All other partitions should not have the boot flag set
+set_active() {
+ # If any bootdev is a block device without partitions bail
+ # we want to set the boot flag on partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part $dev || { echo "$dev - is a block device. Aborting set_active!"; return 1; }
+ done
+
+ # Clear BIOS Bootable Legacy Attribute for GPT drives
+ # In rare cases where a RAID device has slaves on the same block device
+ # Attribute 2 will be cleared for each partition multiple times
+ for dev in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$dev]}"
+ if [[ "$ptb" = GPT ]]; then
+ local disk="${dev%%[[:digit:]]*}" #ex: /dev/sda
+ clear_gpt_attr2 "$disk"
+ fi
+ done
+
+ # Set the boot flag on bootdevs (generated from get_boot_devices)
+ for part in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$part]}"
+ local partnum="${part##*[[:alpha:]]}"
+ case "$part" in
+ *[[:digit:]]p[[:digit:]]*)
+ local disk="${part%%p$partnum}" # get everything before p1
+ ;;
+ *)
+ local disk="${part%%[[:digit:]]*}"
+ ;;
+ esac
+
+ if [[ "$ptb" = MBR ]]; then
+ if sfdisk "$disk" -A "$partnum" &>/dev/null; then
+ echo "Boot Flag Set - $part"
+ else
+ echo "FAILED to Set the boot flag on $part"
+ exit 3
+ fi
+ elif [[ "$ptb" = GPT ]]; then
+ if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then
+ echo "Attribute Legacy Bios Bootable Set - $part"
+ else
+ echo "FAILED to set attribute Legacy BIOS Bootable on $part"
+ exit 3
+ fi
+ fi
+ done
+ return 0
+}
+
+install_mbr() {
+ # If any bootdev is a block device without partitions bail
+ # we want to install the mbr to a partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part "$dev" || { echo "$dev - is a block device. Aborting MBR install"; return 1; }
+ done
+
+ for part in "${!bootdevs[@]}"; do
+ local partnum="${part##*[[:alpha:]]}"
+ case "$part" in
+ *[[:digit:]]p[[:digit:]]*)
+ local disk="${part%%p$partnum}" # get everything before p1
+ ;;
+ *)
+ local disk="${part%%[[:digit:]]*}"
+ ;;
+ esac
+ local ptb="${bootdevs[$part]}"
+
+ # We want to install to the root of the block device
+ # If the device is a partition - ABORT!
+ dev_is_part "$disk" && \
+ { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;}
+
+ if [[ "$ptb" = MBR ]]; then
+ mbrfile="$libpath/mbr.bin"
+ elif [[ "$ptb" = GPT ]]; then
+ mbrfile="$libpath/gptmbr.bin"
+ fi
+
+ if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then
+ echo "Installed MBR ($mbrfile) to $disk"
+ else
+ echo "Error Installing MBR ($mbrfile) to $disk"
+ exit 4
+ fi
+ done
+ return 0
+}
+
+_install() {
+ # Copy files to /boot
+ for file in "${com32_files[@]}"; do
+ # Symlink files even if links exist
+ if [[ "$boot" = root ]]; then
+ ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null
+ elif [[ "$boot" = boot ]]; then
+ cp "$libpath/$file" "$bootpath/$file"
+ fi
+ done
+
+ # Copy / Symlink pci.ids if we copy the com32 module and if pci.ids exists in the FS
+ if check_is_in "hdt.c32" "${com32_files[@]}" && [[ -f $pciids_file ]]; then
+ if [[ "$boot" = root ]]; then
+ ln -s "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ elif [[ "$boot" = boot ]]; then
+ cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ fi
+ fi
+
+ if device_is_raid "$bootpart"; then
+ echo "Detected RAID on /boot - installing Syslinux with --raid"
+ "$extlinux" --install "$bootpath" -r > /dev/null 2>&1
+ else
+ "$extlinux" --install "$bootpath" > /dev/null 2>&1
+ fi
+
+ if (( $? )); then
+ echo "Syslinux install failed"
+ exit 2
+ else
+ echo "Syslinux install successful"
+ fi
+
+ touch "$CHROOT/$autoupdate_file"
+}
+
+update() {
+ # Update any com and c32 files in /boot
+ if [[ "$boot" = boot ]]; then
+ for file in "$bootpath"/*.{c32,com}; do
+ file=$(basename "$file")
+ cp "$libpath/$file" "$bootpath/$file" &> /dev/null
+ done
+ if [[ -f "$bootpath/pci.ids" ]]; then
+ cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ fi
+ fi
+
+ if device_is_raid $bootpart; then
+ echo "Detected RAID on /boot - installing Syslinux with --raid"
+ "$extlinux" --update "$bootpath" -r &> /dev/null
+ else
+ "$extlinux" --update "$bootpath" &> /dev/null
+ fi
+
+ if (($?)); then
+ echo "Syslinux update failed"
+ exit 2
+ else
+ echo "Syslinux update successful"
+ fi
+}
+
+if (( $# == 0 )); then
+ usage
+ exit 1
+fi
+
+while getopts "c:uihmas" opt; do
+ case $opt in
+ c)
+ CHROOT=$(readlink -e "$OPTARG")
+ if [[ -z $CHROOT ]]; then
+ echo "error: chroot path ``$OPTARG does not exist";
+ exit 1
+ fi
+ ;;
+ h)
+ USAGE="True"
+ ;;
+ i)
+ INSTALL="True"
+ ;;
+ u)
+ UPDATE="True"
+ ;;
+ m)
+ MBR="True"
+ ;;
+ a)
+ SET_ACTIVE="True"
+ ;;
+ s)
+ # If AUTOUPDATE_FILE does not exist exit the script
+ if [[ -f $autoupdate_file ]]; then
+ UPDATE="True"
+ else
+ exit 0
+ fi
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+if [[ $USAGE ]]; then
+ usage
+ exit 0
+fi
+
+# Make sure only root can run our script
+if (( $(id -u) != 0 )); then
+ echo "This script must be run as root" 1>&2
+ exit 1
+fi
+
+# Display Usage Information if both Install and Update are passed
+if [[ $INSTALL && $UPDATE ]]; then
+ usage
+ exit 1
+fi
+
+# If a chroot dir is path set variables to reflect chroot
+if [[ "$CHROOT" ]]; then
+ libpath="$CHROOT$libpath"
+ bootpath="$CHROOT$bootpath"
+ extlinux="$CHROOT$extlinux"
+fi
+
+# Exit if no /boot path exists
+if ( f=("$bootpath"/*); (( ! ${#f[@]} )) ); then
+ echo "Error: $bootpath is empty!"
+ echo "Is /boot mounted?"
+ exit 1
+fi
+
+# Get the boot device if any of these options are passed
+if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then
+ getBoot
+fi
+
+# Install or Update
+if [[ $INSTALL ]]; then
+ _install || exit
+elif [[ $UPDATE ]]; then
+ update || exit
+fi
+
+
+# SET_ACTIVE and MBR
+if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then
+ get_boot_devices
+
+ if [[ $SET_ACTIVE ]]; then
+ set_active || exit
+ fi
+
+ if [[ $MBR ]]; then
+ install_mbr || exit
+ fi
+fi
+
+exit 0
+
+# vim: set et sw=4:
diff --git a/libre/syslinux/syslinux.cfg b/libre/syslinux/syslinux.cfg
new file mode 100644
index 000000000..5debfef9c
--- /dev/null
+++ b/libre/syslinux/syslinux.cfg
@@ -0,0 +1,79 @@
+# Config file for Syslinux -
+# /boot/syslinux/syslinux.cfg
+#
+# Comboot modules:
+# * menu.c32 - provides a text menu
+# * vesamenu.c32 - provides a graphical menu
+# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
+# * hdt.c32 - hardware detection tool
+# * reboot.c32 - reboots the system
+# * poweroff.com - shutdown the system
+#
+# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
+# If /usr and /boot are on the same file system, symlink the files instead
+# of copying them.
+#
+# If you do not use a menu, a 'boot:' prompt will be shown and the system
+# will boot automatically after 5 seconds.
+#
+# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
+# The wiki provides further configuration examples
+
+DEFAULT parabola
+PROMPT 0 # Set to 1 if you always want to display the boot: prompt
+TIMEOUT 50
+# You can create syslinux keymaps with the keytab-lilo tool
+#KBDMAP de.ktl
+
+# Menu Configuration
+# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
+#UI menu.c32
+UI vesamenu.c32
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+MENU TITLE Parabola GNU/Linux-libre
+MENU BACKGROUND splash.png
+MENU COLOR border 30;44 #40ffffff #a0000000 std
+MENU COLOR title 1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel 37;44 #50ffffff #a0000000 std
+MENU COLOR help 37;40 #c0ffffff #a0000000 std
+MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
+MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07 37;40 #90ffffff #a0000000 std
+MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
+
+# boot sections follow
+#
+# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
+#
+#-*
+
+LABEL parabola
+ MENU LABEL Parabola GNU/Linux-libre
+ LINUX ../vmlinuz-linux-libre
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux-libre.img
+
+LABEL parabolafallback
+ MENU LABEL Parabola GNU/Linux-libre Fallback
+ LINUX ../vmlinuz-linux-libre
+ APPEND root=/dev/sda3 ro
+ INITRD ../initramfs-linux-libre-fallback.img
+
+# If you want Memtest on syslinux, use this LABEL section to launch it (install the memtest86+ package)
+#LABEL memtest
+# MENU LABEL Memtest86+
+# LINUX ../memtest86+/memtest.bin
+
+LABEL hdt
+ MENU LABEL HDT (Hardware Detection Tool)
+ COM32 hdt.c32
+
+LABEL reboot
+ MENU LABEL Reboot
+ COM32 reboot.c32
+
+LABEL off
+ MENU LABEL Power Off
+ COMBOOT poweroff.com
diff --git a/libre/syslinux/syslinux.install b/libre/syslinux/syslinux.install
new file mode 100644
index 000000000..0dc0ece36
--- /dev/null
+++ b/libre/syslinux/syslinux.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo "==> If you want to use syslinux as your bootloader"
+ echo "==> edit /boot/syslinux/syslinux.cfg and run"
+ echo "==> # /usr/sbin/syslinux-install_update -i -a -m"
+ echo "==> to install it."
+}
+
+post_upgrade() {
+ # auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+ /usr/sbin/syslinux-install_update -s
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch b/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch
new file mode 100644
index 000000000..06fc30944
--- /dev/null
+++ b/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch
@@ -0,0 +1,27 @@
+From 7e5d190ccce8dc064d5756225e306e65fa534ae9 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Mon, 2 Apr 2012 08:20:34 -0400
+Subject: [PATCH] check for proper return from dirent_ensure_type
+
+Fixes 'systemctl list-unit-files', which previously returned only:
+
+ Failed to issue method call: No such file or directory
+---
+ src/install.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/install.c b/src/install.c
+index 174d79b..9256116 100644
+--- a/src/install.c
++++ b/src/install.c
+@@ -1853,7 +1853,7 @@ int unit_file_get_list(
+
+ r = dirent_ensure_type(d, de);
+ if (r < 0) {
+- if (errno == ENOENT)
++ if (r == -ENOENT)
+ continue;
+
+ goto finish;
+--
+1.7.9.5
diff --git a/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch b/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
new file mode 100644
index 000000000..692d93356
--- /dev/null
+++ b/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
@@ -0,0 +1,155 @@
+From 75c8e3cffd7da8eede614cf61384957af2c82a29 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart@poettering.net>
+Date: Thu, 22 Mar 2012 02:06:40 +0100
+Subject: [PATCH] logind: close FIFO before ending sessions cleanly
+
+For clean session endings ask logind explicitly to get rid of the FIFO
+before closing it so that the FIFO logic doesn't result in su/sudo to be
+terminated immediately.
+---
+ src/login/logind-dbus.c | 30 ++++++++++++++++++++
+ src/login/pam-module.c | 71 +++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 98 insertions(+), 3 deletions(-)
+
+diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
+index d8f4d89..ea6b89f 100644
+--- a/src/login/logind-dbus.c
++++ b/src/login/logind-dbus.c
+@@ -80,6 +80,9 @@
+ " <arg name=\"seat\" type=\"s\" direction=\"out\"/>\n" \
+ " <arg name=\"vtnr\" type=\"u\" direction=\"out\"/>\n" \
+ " </method>\n" \
++ " <method name=\"ReleaseSession\">\n" \
++ " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \
++ " </method>\n" \
+ " <method name=\"ActivateSession\">\n" \
+ " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \
+ " </method>\n" \
+@@ -1075,6 +1078,33 @@ static DBusHandlerResult manager_message_handler(
+ if (r < 0)
+ return bus_send_error_reply(connection, message, &error, r);
+
++ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ReleaseSession")) {
++ const char *name;
++ Session *session;
++
++ if (!dbus_message_get_args(
++ message,
++ &error,
++ DBUS_TYPE_STRING, &name,
++ DBUS_TYPE_INVALID))
++ return bus_send_error_reply(connection, message, &error, -EINVAL);
++
++ session = hashmap_get(m->sessions, name);
++ if (!session)
++ return bus_send_error_reply(connection, message, &error, -ENOENT);
++
++ /* We use the FIFO to detect stray sessions where the
++ process invoking PAM dies abnormally. We need to make
++ sure that that process is not killed if at the clean
++ end of the session it closes the FIFO. Hence, with
++ this call explicitly turn off the FIFO logic, so that
++ the PAM code can finish clean up on its own */
++ session_remove_fifo(session);
++
++ reply = dbus_message_new_method_return(message);
++ if (!reply)
++ goto oom;
++
+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ActivateSession")) {
+ const char *name;
+ Session *session;
+diff --git a/src/login/pam-module.c b/src/login/pam-module.c
+index 8544413..4106d2b 100644
+--- a/src/login/pam-module.c
++++ b/src/login/pam-module.c
+@@ -414,7 +414,6 @@ _public_ PAM_EXTERN int pam_sm_open_session(
+ "/org/freedesktop/login1",
+ "org.freedesktop.login1.Manager",
+ "CreateSession");
+-
+ if (!m) {
+ pam_syslog(handle, LOG_ERR, "Could not allocate create session message.");
+ r = PAM_BUF_ERR;
+@@ -620,11 +619,77 @@ _public_ PAM_EXTERN int pam_sm_close_session(
+ int argc, const char **argv) {
+
+ const void *p = NULL;
++ const char *id;
++ DBusConnection *bus = NULL;
++ DBusMessage *m = NULL, *reply = NULL;
++ DBusError error;
++ int r;
+
+- pam_get_data(handle, "systemd.session-fd", &p);
++ assert(handle);
++
++ dbus_error_init(&error);
++
++ id = pam_getenv(handle, "XDG_SESSION_ID");
++ if (id) {
++
++ /* Before we go and close the FIFO we need to tell
++ * logind that this is a clean session shutdown, so
++ * that it doesn't just go and slaughter us
++ * immediately after closing the fd */
++
++ bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error);
++ if (!bus) {
++ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error));
++ r = PAM_SESSION_ERR;
++ goto finish;
++ }
++
++ m = dbus_message_new_method_call(
++ "org.freedesktop.login1",
++ "/org/freedesktop/login1",
++ "org.freedesktop.login1.Manager",
++ "ReleaseSession");
++ if (!m) {
++ pam_syslog(handle, LOG_ERR, "Could not allocate release session message.");
++ r = PAM_BUF_ERR;
++ goto finish;
++ }
++
++ if (!dbus_message_append_args(m,
++ DBUS_TYPE_STRING, &id,
++ DBUS_TYPE_INVALID)) {
++ pam_syslog(handle, LOG_ERR, "Could not attach parameters to message.");
++ r = PAM_BUF_ERR;
++ goto finish;
++ }
+
++ reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error);
++ if (!reply) {
++ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error));
++ r = PAM_SESSION_ERR;
++ goto finish;
++ }
++ }
++
++ r = PAM_SUCCESS;
++
++finish:
++ pam_get_data(handle, "systemd.session-fd", &p);
+ if (p)
+ close_nointr(PTR_TO_INT(p) - 1);
+
+- return PAM_SUCCESS;
++ dbus_error_free(&error);
++
++ if (bus) {
++ dbus_connection_close(bus);
++ dbus_connection_unref(bus);
++ }
++
++ if (m)
++ dbus_message_unref(m);
++
++ if (reply)
++ dbus_message_unref(reply);
++
++ return r;
+ }
+--
+1.7.9.5
diff --git a/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch
new file mode 100644
index 000000000..9bf84dda6
--- /dev/null
+++ b/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch
@@ -0,0 +1,31 @@
+From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt@redhat.com>
+Date: Fri, 2 Mar 2012 10:39:10 +0100
+Subject: [PATCH] util: never follow symlinks in rm_rf_children()
+
+The function checks if the entry is a directory before recursing, but
+there is a window between the check and the open, during which the
+directory could be replaced with a symlink.
+
+CVE-2012-1174
+https://bugzilla.redhat.com/show_bug.cgi?id=803358
+---
+ src/util.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/util.c b/src/util.c
+index 20cbc2b..dfc1dc6 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) {
+ if (is_dir) {
+ int subdir_fd;
+
+- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) {
++ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
++ if (subdir_fd < 0) {
+ if (ret == 0 && errno != ENOENT)
+ ret = -errno;
+ continue;
+--
+1.7.9.4
diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD
new file mode 100644
index 000000000..d4f08f7d5
--- /dev/null
+++ b/libre/systemd/PKGBUILD
@@ -0,0 +1,123 @@
+# $Id$
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=systemd
+pkgname=('systemd')
+pkgver=44
+pkgrel=7
+arch=('i686' 'x86_64' 'mips64el')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2' 'LGPL2.1' 'MIT')
+makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gperf' 'intltool'
+ 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'udev' 'xz')
+options=('!libtool')
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
+ "os-release"
+ 0001-util-never-follow-symlinks-in-rm_rf_children.patch
+ 0001-logind-close-FIFO-before-ending-sessions-cleanly.patch
+ 0001-check-for-proper-return-from-dirent_ensure_type.patch)
+md5sums=('11f44ff74c87850064e4351518bcff17'
+ 'd0210754762d923d36c9452a1648d550'
+ 'b5863d6d4b47e2b5bda8eb57bde0d327'
+ 'd37833358ef6c23fad622ea4a0941d1f'
+ '11f930fd0a3966abc794bf9127a7dde0')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # https://bugzilla.redhat.com/show_bug.cgi?id=803358 (upstream 5ebff53375)
+ patch -Np1 <"$srcdir/0001-util-never-follow-symlinks-in-rm_rf_children.patch"
+
+ # https://bugs.archlinux.org/task/28386 (upstream 75c8e3cffd)
+ patch -Np1 <"$srcdir/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch"
+
+ # Fix broken 'systemctl list-unit-files' (upstream fb5ef067c49)
+ patch -Np1 <"$srcdir/0001-check-for-proper-return-from-dirent_ensure_type.patch"
+
+ ./configure --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --with-pamlibdir=/usr/lib/security \
+ --localstatedir=/var \
+ --with-distro=arch \
+ --enable-split-usr \
+ --disable-ima
+
+ make
+}
+
+package_systemd() {
+ pkgdesc="system and service manager"
+ depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz')
+ optdepends=('cryptsetup: required for encrypted block devices'
+ 'dbus-python: systemd-analyze'
+ 'initscripts: legacy support for hostname and vconsole setup'
+ 'initscripts-systemd: native boot and initialization scripts'
+ 'python2-cairo: systemd-analyze'
+ 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts'
+ 'systemd-sysvcompat: symlink package to provide sysvinit binaries')
+ backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
+ etc/dbus-1/system.d/org.freedesktop.hostname1.conf
+ etc/dbus-1/system.d/org.freedesktop.login1.conf
+ etc/dbus-1/system.d/org.freedesktop.locale1.conf
+ etc/dbus-1/system.d/org.freedesktop.timedate1.conf
+ etc/systemd/system.conf
+ etc/systemd/user.conf
+ etc/systemd/systemd-logind.conf
+ etc/systemd/systemd-journald.conf)
+ install="$pkgname.install"
+
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+
+ printf "d /run/console 755 root root\n" >"$pkgdir/usr/lib/tmpfiles.d/console.conf"
+ chmod 644 "$pkgdir/usr/lib/tmpfiles.d/console.conf"
+
+ # symlink to /bin/systemd for compat and sanity
+ install -dm755 "$pkgdir/bin"
+ ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd"
+
+ # use python2 for systemd-analyze
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # didn't build this...
+ rm -f "$pkgdir/usr/share/man/man1/systemadm.1"
+
+ # fix .so links in manpage stubs
+ find "$pkgdir/usr/share/man" -type f -name '*.[[:digit:]]' \
+ -exec sed -i '1s|^\.so \(.*\)\.\([[:digit:]]\+\)|.so man\2/\1.\2|' {} +
+
+ # rename man pages to avoid conflicts with sysvinit and initscripts
+ manpages=(man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8
+ man5/{hostname,{vconsole,locale}.conf}.5)
+ cd "$pkgdir/usr/share/man"
+ for manpage in "${manpages[@]}"; do
+ IFS='/' read section page <<< "$manpage"
+ mv "$manpage" "$section/systemd.$page"
+ done
+ sed -i '1s|/\([^/]\+\)|/systemd.\1|' "$pkgdir"/usr/share/man/man8/systemd.{poweroff,reboot}.8
+
+ # move bash-completion and symlink for loginctl
+ install -Dm644 "$pkgdir/etc/bash_completion.d/systemd-bash-completion.sh" \
+ "$pkgdir/usr/share/bash-completion/completions/systemctl"
+ ln -s systemctl "$pkgdir/usr/share/bash-completion/completions/loginctl"
+ rm -rf "$pkgdir/etc/bash_completion.d"
+
+ # fix systemctl where
+ find "$pkgdir" -type f -name '*.service' -exec \
+ sed -i 's@\([=-]\)/bin/systemctl@\1/usr/bin/systemctl@g' {} +
+
+ ### split off libsystemd (libs, includes, pkgconfig, man3)
+ install -dm755 "$srcdir"/libsystemd/usr/{include,lib/pkgconfig}
+
+ cd "$srcdir"/libsystemd
+ mv "$pkgdir/usr/lib"/libsystemd-*.so* usr/lib
+ mv "$pkgdir/usr/include/systemd" usr/include
+ mv "$pkgdir/usr/lib/pkgconfig"/libsystemd-*.pc usr/lib/pkgconfig
+}
+
+# vim: ft=sh syn=sh et
diff --git a/libre/systemd/os-release b/libre/systemd/os-release
new file mode 100644
index 000000000..65253e9c3
--- /dev/null
+++ b/libre/systemd/os-release
@@ -0,0 +1,7 @@
+NAME=Parabola
+ID=parabola
+ID_LIKE=arch
+PRETTY_NAME="Parabola GNU/Linux-libre"
+ANSI_COLOR="1;35"
+HOME_URL="https://parabolagnulinux.org/"
+BUG_REPORT_URL="https://labs.parabola.nu/"
diff --git a/libre/systemd/rePKGBUILD b/libre/systemd/rePKGBUILD
new file mode 100644
index 000000000..f825ee579
--- /dev/null
+++ b/libre/systemd/rePKGBUILD
@@ -0,0 +1,52 @@
+# This is an example rePKGBUILD file. Use this as a start to creating your own,
+# and remove these comments. For more information, see 'man PKGBUILD'.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
+# Maintainer: André Silva <andre.paulista@adinet.com.uy>
+source PKGBUILD
+unset build package md5sums source check
+_repo=extra
+pkgname='systemd'
+options=(!strip)
+source=(PKGBUILD
+ http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
+ # files for pkg modifications
+ os-release)
+
+build() {
+ cd "${srcdir}/"
+ rm -v .{INSTALL,PKGINFO} $pkgname-$pkgver-$pkgrel-$CARCH$PKGEXT || true
+ # put actions for package modifications below this line
+
+ rm -v etc/os-release
+}
+
+package_systemd() {
+ pkgdesc="system and service manager (Parabola rebranded)"
+ depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz')
+ optdepends=('cryptsetup: required for encrypted block devices'
+ 'dbus-python: systemd-analyze'
+ 'initscripts: legacy support for hostname and vconsole setup'
+ 'initscripts-systemd: native boot and initialization scripts'
+ 'python2-cairo: systemd-analyze'
+ 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts'
+ 'systemd-sysvcompat: symlink package to provide sysvinit binaries')
+ backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf
+ etc/dbus-1/system.d/org.freedesktop.hostname1.conf
+ etc/dbus-1/system.d/org.freedesktop.login1.conf
+ etc/dbus-1/system.d/org.freedesktop.locale1.conf
+ etc/dbus-1/system.d/org.freedesktop.timedate1.conf
+ etc/systemd/system.conf
+ etc/systemd/user.conf
+ etc/systemd/systemd-logind.conf
+ etc/systemd/systemd-journald.conf)
+ install="$pkgname.install"
+
+ # Install Parabola os-release
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+
+ find ${srcdir} -maxdepth 1 -type l -delete
+ cp -a ${srcdir}/* ${pkgdir}
+}
diff --git a/libre/systemd/systemd.install b/libre/systemd/systemd.install
new file mode 100644
index 000000000..0c3e9abee
--- /dev/null
+++ b/libre/systemd/systemd.install
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+checkgroups() {
+ if ! getent group lock >/dev/null; then
+ groupadd -g 54 lock
+ fi
+}
+
+sd_booted() {
+ [ -e sys/fs/cgroup/systemd ]
+}
+
+post_install() {
+ checkgroups
+
+ if [ ! -f etc/machine-id ]; then
+ systemd-machine-id-setup
+ fi
+
+ echo "systemd has been installed to /bin/systemd. Please ensure you append"
+ echo "init=/bin/systemd to your kernel command line in your bootloader."
+}
+
+post_upgrade() {
+ checkgroups
+
+ if [ ! -f etc/machine-id ]; then
+ systemd-machine-id-setup
+ fi
+
+ if sd_booted; then
+ # we moved the binary in 44-2 to /usr, so a reexec leads to a
+ # coredump. refuse this reexec and warn the user that they should
+ # reboot instead.
+ if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then
+ echo "warning: refusing to reexec systemd. the system should be rebooted."
+ else
+ systemctl daemon-reload
+ systemctl daemon-reexec
+ fi
+ fi
+}
+
+post_remove() {
+ if getent group lock >/dev/null; then
+ groupdel lock
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 56fc03df1..83db7cd5c 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -1,12 +1,13 @@
-# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 154937 2012-03-31 10:46:09Z ronald $
+# $Id: PKGBUILD 159191 2012-05-17 14:36:30Z remy $
# Maintainer: Rémy Oudompheng <remy@archlinux.org>
# Contributor: francois <francois.archlinux.org>
+# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=texlive-bin-libre
pkgver=2011.3
_luatex_ver=0.70.1
-pkgrel=5
+pkgrel=7
pkgdesc="TeX Live binaries"
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
@@ -22,6 +23,7 @@ install="texlive.install"
source=('texmf.cnf'
'fix-fontforge-encoding.patch'
'09-texlive-fonts.conf'
+ 'luatex-poppler-0.20.patch'
'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20111210.tar.xz'
'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20111210.tar.xz'
# "http://foundry.supelec.fr/gf/download/frsrelease/392/1730/luatex-beta-${_luatex_ver}.tar.bz2"
@@ -44,6 +46,7 @@ backup=(etc/texmf/web2c/texmf.cnf \
md5sums=('220a4f4cc0d915bf8fcbcb553dcee1ae'
'bfb9716aa00c86c08cd31e5b32edeb98'
'393a4bf67adc7ca5df2b386759d1a637'
+ '52ce57c02e30a25036b6a3175c566b78'
'c7bb38c0ab30c2b64cf4cf83a736b35c'
'5d8f06a3683ce88a3c33e15f5ba6a858'
'e7f0197559ef865d8c01683dab3b8526')
@@ -59,6 +62,7 @@ build() {
# cd luatex-beta-${_luatex_ver}
cd luatex
patch -p0 -i ../fix-fontforge-encoding.patch
+ patch -Np0 -i ../luatex-poppler-0.20.patch
(cd source && ./texk/web2c/luatexdir/getluatexsvnversion.sh)
mkdir build
cd build
diff --git a/libre/texlive-bin-libre/luatex-poppler-0.20.patch b/libre/texlive-bin-libre/luatex-poppler-0.20.patch
new file mode 100644
index 000000000..175824f3e
--- /dev/null
+++ b/libre/texlive-bin-libre/luatex-poppler-0.20.patch
@@ -0,0 +1,77 @@
+--- source/texk/web2c/luatexdir/lua/lepdflib.cc.orig 2011-10-06 06:14:20.000000000 +0000
++++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2012-05-17 11:30:26.327236883 +0000
+@@ -157,7 +157,7 @@
+ pdfdoc_changed_error(L);
+ uout = new_Annot_userdata(L);
+ uout->d =
+- new Annot((XRef *) uxref->d, (Dict *) udict->d, (Catalog *) ucatalog->d,
++ new Annot((PDFDoc *) uxref->pd, (Dict *) udict->d,
+ (Object *) uref->d);
+ uout->atype = ALLOC_LEPDF;
+ uout->pc = uxref->pc;
+@@ -179,7 +179,7 @@
+ pdfdoc_changed_error(L);
+ uout = new_Annots_userdata(L);
+ uout->d =
+- new Annots((XRef *) uxref->d, (Catalog *) ucatalog->d,
++ new Annots((PDFDoc *) uxref->pd,
+ (Object *) uannotsobj->d);
+ uout->atype = ALLOC_LEPDF;
+ uout->pc = uxref->pc;
+@@ -369,7 +369,7 @@
+ // Annot
+
+ m_poppler_get_BOOL(Annot, isOk);
+-m_poppler_get_OBJECT(Annot, getAppearance);
++m_poppler_get_OBJECT(Annot, getAppearanceResDict);
+ m_poppler_get_poppler(Annot, AnnotBorder, getBorder);
+
+ static int m_Annot_match(lua_State * L)
+@@ -408,7 +408,7 @@
+
+ static const struct luaL_Reg Annot_m[] = {
+ {"isOk", m_Annot_isOk},
+- {"getAppearance", m_Annot_getAppearance},
++ {"getAppearance", m_Annot_getAppearanceResDict},
+ {"getBorder", m_Annot_getBorder},
+ {"match", m_Annot_match},
+ {"__tostring", m_Annot__tostring},
+@@ -1433,7 +1433,7 @@
+
+ static int m_Object_getTypeName(lua_State * L)
+ {
+- char *s;
++ const char *s;
+ udstruct *uin;
+ uin = (udstruct *) luaL_checkudata(L, 1, M_Object);
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+@@ -2120,7 +2120,7 @@
+ if ((uin->pd != NULL && uin->pd->pc != uin->pc)
+ || (ucat->pd != NULL && ucat->pd->pc != ucat->pd->pc))
+ pdfdoc_changed_error(L);
+- links = ((Page *) uin->d)->getLinks((Catalog *) ucat->d);
++ links = ((Page *) uin->d)->getLinks();
+ if (links != NULL) {
+ uout = new_Links_userdata(L);
+ uout->d = links;
+@@ -2738,7 +2738,10 @@
+ return 1;
+ }
+
+-m_poppler_get_INT(XRef, getSize);
++static int m_XRef_getSize(lua_State * L)
++{
++ return m_XRef_getNumObjects(L);
++}
+
+ static int m_XRef_getEntry(lua_State * L)
+ {
+@@ -2748,7 +2751,7 @@
+ if (uin->pd != NULL && uin->pd->pc != uin->pc)
+ pdfdoc_changed_error(L);
+ i = luaL_checkint(L, 2);
+- size = ((XRef *) uin->d)->getSize();
++ size = ((XRef *) uin->d)->getNumObjects();
+ if (i > 0 && i <= size) {
+ uout = new_XRefEntry_userdata(L);
+ uout->d = ((XRef *) uin->d)->getEntry(i);
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
index fc516a3e9..c50063be5 100644
--- a/libre/thunderbird-libre/PKGBUILD
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 157168 2012-04-25 08:44:38Z ibiru $
+# $Id: PKGBUILD 157994 2012-04-30 20:56:00Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
@@ -6,7 +6,7 @@
# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=thunderbird-libre
-pkgver=12.0
+pkgver=12.0.1
pkgrel=1
pkgdesc="Standalone Mail/News reader"
arch=('i686' 'x86_64' 'mips64el')
@@ -28,7 +28,7 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/sourc
gcc47.patch
clrf.patch
searchplugins-libre.patch)
-md5sums=('7b30b72472a65bce74ba0ae60e4d4e6c'
+md5sums=('64cacde4cb2b1e8736f1c3a0ea6a02db'
'41511a6bcdd04cf56706218e4670e631'
'af3e5b344d2edf1c7d61bb0a5a96de9a'
'aea906acf72c43dd82ead2fabcc1c6db'
@@ -39,7 +39,7 @@ md5sums=('7b30b72472a65bce74ba0ae60e4d4e6c'
'6a1d132b0275876678cb0b08c527805a')
build() {
- cd "$srcdir/comm-release"
+ cd comm-release
patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
patch -Np1 -i "$srcdir/gcc47.patch"
patch -Np1 -i "$srcdir/clrf.patch"
@@ -56,7 +56,7 @@ build() {
}
package() {
- cd "$srcdir/comm-release"
+ cd comm-release
make -j1 -f client.mk DESTDIR="$pkgdir" install
install -m644 "$srcdir"/vendor.js "$pkgdir/usr/lib/thunderbird/defaults/pref/"
diff --git a/libre/thunderbird-libre/gcc46.patch b/libre/thunderbird-libre/gcc46.patch
deleted file mode 100644
index 71a3686ea..000000000
--- a/libre/thunderbird-libre/gcc46.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc comm-1.9.2/mozilla/gfx/ots/src/os2.cc
---- comm-1.9.2.orig//mozilla/gfx/ots/src/os2.cc 2011-04-14 11:37:21.000000000 -0700
-+++ comm-1.9.2/mozilla/gfx/ots/src/os2.cc 2011-04-29 09:10:23.635807433 -0700
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <cstddef>
-+
- #include "os2.h"
-
- #include "head.h"
diff --git a/libre/thunderbird-libre/gnuzilla-addons.patch b/libre/thunderbird-libre/gnuzilla-addons.patch
deleted file mode 100644
index 2c0e4a68f..000000000
--- a/libre/thunderbird-libre/gnuzilla-addons.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- usr/lib/thunderbird-3.1/defaults/pref/all-thunderbird.js 2011-03-04 17:28:11.000000000 -0300
-+++ all-thunderbird.js 2011-03-08 11:22:31.437207173 -0300
-@@ -144,9 +144,9 @@
- pref("extensions.update.interval", 86400); // Check for updates to Extensions and
- // Themes every day
- // Non-symmetric (not shared by extensions) extension-specific [update] preferences
--pref("extensions.getMoreExtensionsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/extensions/");
--pref("extensions.getMoreThemesURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/themes/");
--pref("extensions.getMorePluginsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/plugins/");
-+pref("extensions.getMoreExtensionsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getMorePluginsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("extensions.dss.enabled", false); // Dynamic Skin Switching
- pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next
-
-@@ -155,14 +155,14 @@
-
- // Preferences for the Get Add-ons pane
- pref("extensions.getAddons.showPane", true);
--pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%");
-+pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("extensions.getAddons.maxResults", 5);
--pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended");
--pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
--pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
-+pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
-
--pref("xpinstall.whitelist.add", "addons.mozilla.org");
-+pref("xpinstall.whitelist.add", "www.gnu.org");
- pref("xpinstall.whitelist.add.36", "getpersonas.com");
-
- pref("mail.shell.checkDefaultClient", true);
diff --git a/libre/thunderbird-libre/libvpx.patch b/libre/thunderbird-libre/libvpx.patch
deleted file mode 100644
index d0f9a0f4c..000000000
--- a/libre/thunderbird-libre/libvpx.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur comm-release.orig/mozilla/configure.in comm-release/mozilla/configure.in
---- comm-release.orig/mozilla/configure.in 2012-02-05 18:02:17.376830377 +0000
-+++ comm-release/mozilla/configure.in 2012-02-05 18:03:25.246274275 +0000
-@@ -5629,7 +5629,7 @@
- dnl v0.9.6 one to check for.
- AC_TRY_COMPILE([
- #include <vpx/vpx_decoder.h>
-- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
-+ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
- #error "test failed."
- #endif
- ],
diff --git a/libre/thunderbird-libre/mozilla-notify.patch b/libre/thunderbird-libre/mozilla-notify.patch
deleted file mode 100644
index 952567b0e..000000000
--- a/libre/thunderbird-libre/mozilla-notify.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp
---- comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp.libnotify 2010-10-27 09:05:36.000000000 +0200
-+++ comm-1.9.2/mozilla/toolkit/system/gnome/nsAlertsIconListener.cpp 2010-11-08 13:28:04.564002379 +0100
-@@ -204,7 +204,7 @@ nsAlertsIconListener::ShowAlert(GdkPixbu
- {
- NotifyNotification* notify = notify_notification_new(mAlertTitle.get(),
- mAlertText.get(),
-- NULL, NULL);
-+ NULL);
- if (!notify)
- return NS_ERROR_OUT_OF_MEMORY;
-
diff --git a/libre/thunderbird-libre/python2.7.patch b/libre/thunderbird-libre/python2.7.patch
deleted file mode 100644
index 2d159d479..000000000
--- a/libre/thunderbird-libre/python2.7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.in 2010-10-13 08:37:29.000000000 -0700
-+++ configure.in~ 2010-10-19 10:32:06.360019362 -0700
-@@ -878,7 +878,7 @@
- AC_MSG_RESULT([yes])
- fi
-
--MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python)
-+MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.6 python2.5 python2.4 python)
- if test -z "$PYTHON"; then
- AC_MSG_ERROR([python was not found in \$PATH])
- fi
diff --git a/libre/thunderbird-libre/thunderbird-appversion.patch b/libre/thunderbird-libre/thunderbird-appversion.patch
deleted file mode 100644
index 3f7a54686..000000000
--- a/libre/thunderbird-libre/thunderbird-appversion.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nru comm-1.9.2.orig/mail/installer/Makefile.in comm-1.9.2/mail/installer/Makefile.in
---- comm-1.9.2.orig/mail/installer/Makefile.in 2010-04-30 22:41:37.000000000 +0300
-+++ comm-1.9.2/mail/installer/Makefile.in 2010-05-05 20:20:29.551660469 +0300
-@@ -42,6 +42,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="3.1"
-+
- include $(topsrcdir)/config/rules.mk
-
- MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
diff --git a/libre/thunderbird-libre/thunderbird-preferences.patch b/libre/thunderbird-libre/thunderbird-preferences.patch
deleted file mode 100644
index 627f02434..000000000
--- a/libre/thunderbird-libre/thunderbird-preferences.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Nur comm-1.9.2.orig/mail/app/profile/all-thunderbird.js comm-1.9.2/mail/app/profile/all-thunderbird.js
---- comm-1.9.2.orig/mail/app/profile/all-thunderbird.js 2010-06-23 20:43:08.000000000 +0300
-+++ comm-1.9.2/mail/app/profile/all-thunderbird.js 2010-06-25 00:37:36.518929684 +0300
-@@ -125,7 +125,7 @@
- pref("app.update.showInstalledUI", false);
-
- // Release notes URL
--pref("app.releaseNotesURL", "http://live.mozillamessaging.com/%APP%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("app.releaseNotesURL", "http://www.mozillamessaging.com/%APP%/%VERSION%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // Base URL for web-based support pages.
- pref("app.support.baseURL", "http://support.live.mozillamessaging.com/%LOCALE%/%APP%/%APPBUILDID%/");
-diff -Nur comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js comm-1.9.2/mail/branding/nightly/thunderbird-branding.js
---- comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js 2010-06-23 20:43:08.000000000 +0300
-+++ comm-1.9.2/mail/branding/nightly/thunderbird-branding.js 2010-06-25 00:36:10.605569121 +0300
-@@ -1,11 +1,11 @@
- // Default start page
--pref("mailnews.start_page.url","https://live.mozillamessaging.com/%APP%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.url","https://www.mozillamessaging.com/%APP%/%VERSION%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // first launch welcome page
--pref("mailnews.start_page.welcome_url","https://live.mozillamessaging.com/%APP%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.welcome_url","https://www.mozillamessaging.com/%APP%/%VERSION%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // start page override to load after an update
--pref("mailnews.start_page.override_url","https://live.mozillamessaging.com/%APP%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-+pref("mailnews.start_page.override_url","https://www.mozillamessaging.com/%APP%/%VERSION%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
-
- // Interval: Time between checks for a new version (in seconds)
- // nightly=8 hours, official=24 hours
diff --git a/libre/thunderbird-libre/thunderbird-shared-error.patch b/libre/thunderbird-libre/thunderbird-shared-error.patch
deleted file mode 100644
index ae41bbc1e..000000000
--- a/libre/thunderbird-libre/thunderbird-shared-error.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up comm-central/mail/installer/Makefile.in.shared-error comm-central/mail/installer/Makefile.in
---- comm-central/mail/installer/Makefile.in.shared-error 2009-09-16 13:47:43.000000000 +0200
-+++ comm-central/mail/installer/Makefile.in 2009-09-16 13:48:25.000000000 +0200
-@@ -95,9 +95,11 @@ endif
- # mozconfig instead.
- ifndef MAIL_PKG_SHARED
- ifndef BUILD_STATIC_LIBS
-+ifeq (BUILD_STATIC_LIBS, 1)
- $(error you need an "--enable-static" build to package a build)
- endif
- endif
-+endif
-
- # On mozilla-central, packager.mk uses core_abspath to redefine DIST
- # As the comm-central config.mk doesn't set it, do it ourselves instead
diff --git a/libre/thunderbird-libre/xulrunner-png14.patch b/libre/thunderbird-libre/xulrunner-png14.patch
deleted file mode 100644
index 1dc0ecda5..000000000
--- a/libre/thunderbird-libre/xulrunner-png14.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100
-+++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100
-@@ -135,7 +135,7 @@
-
- // initialize
- mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING,
-- png_voidp_NULL,
-+ NULL,
- ErrorCallback,
- ErrorCallback);
- if (! mPNG)
diff --git a/libre/unarchiver/PKGBUILD b/libre/unarchiver/PKGBUILD
index 95154cc76..41b7cc5ce 100644
--- a/libre/unarchiver/PKGBUILD
+++ b/libre/unarchiver/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=unarchiver
pkgver=3.1
-pkgrel=1
+pkgrel=2
pkgdesc="An Objective-C application for uncompressing archive files"
arch=('x86_64' 'i686' 'mips64el')
url="http://unarchiver.c3.cx/"
diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD
index ab75659b0..402d1c7fd 100644
--- a/libre/virtualbox-libre/PKGBUILD
+++ b/libre/virtualbox-libre/PKGBUILD
@@ -11,7 +11,7 @@
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-libre
pkgname=('virtualbox-libre' 'virtualbox-parabola-additions' 'virtualbox-sdk' 'virtualbox-source')
-pkgver=4.1.14
+pkgver=4.1.16
pkgrel=1
arch=('i686' 'x86_64')
url='http://virtualbox.org'
@@ -25,7 +25,7 @@ source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}
change_default_driver_dir.patch vbox-service.conf vbox-service.rc
vboxweb.conf vboxweb.rc)
-_extramodules=extramodules-3.3-LIBRE
+_extramodules=extramodules-3.4-LIBRE
_kernver="$(cat /lib/modules/${_extramodules}/version)"
build() {
@@ -116,7 +116,7 @@ package_virtualbox-libre() {
install -D -m 0644 "$srcdir/VirtualBox-${pkgver}/COPYING" \
"$pkgdir/usr/share/licenses/virtualbox/LICENSE"
install -D -m 0644 "$srcdir/10-vboxdrv.rules" \
- "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules"
+ "$pkgdir/usr/lib/udev/rules.d/10-vboxdrv.rules"
# install rc.d script
install -D -m755 "$srcdir/vboxweb.rc" "$pkgdir/etc/rc.d/vboxweb"
@@ -186,7 +186,7 @@ package_virtualbox-parabola-additions(){
install -d "$pkgdir/usr/lib/xorg/modules/dri"
install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
- install -m755 -D pam_vbox.so "$pkgdir/lib/security/pam_vbox.so"
+ install -m755 -D pam_vbox.so "$pkgdir/usr/lib/security/pam_vbox.so"
# install rc.d script
install -D -m755 "$srcdir/vbox-service.rc" "$pkgdir/etc/rc.d/vbox-service"
@@ -194,7 +194,7 @@ package_virtualbox-parabola-additions(){
# install sample config
install -D -m644 "$srcdir/vbox-service.conf" "$pkgdir/etc/conf.d/vbox-service"
}
-md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
+md5sums=('eacfb802ecdd6d3435228eb3d3488719'
'5f85710e0b8606de967716ded7b2d351'
'755ab0dd9bcacf2c00d2275b1ca69547'
'a1ff1d1b4423556887e48a32978226a6'
diff --git a/libre/virtualbox-modules-lts/60-vboxguest.rules b/libre/virtualbox-modules-lts/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/libre/virtualbox-modules-lts/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/libre/virtualbox-modules-lts/LocalConfig.kmk b/libre/virtualbox-modules-lts/LocalConfig.kmk
new file mode 100644
index 000000000..af79f90cd
--- /dev/null
+++ b/libre/virtualbox-modules-lts/LocalConfig.kmk
@@ -0,0 +1,19 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS =
+VBOX_WITH_TESTCASES =
+VBOX_WITH_TESTSUITE =
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/virtualbox
+VBOX_WITH_REGISTRATION_REQUEST =
+VBOX_WITH_UPDATE_REQUEST =
+VBOX_WITH_VNC := 1
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk
+VBOX_GCC_WERR =
+VBOX_GCC_WARN =
diff --git a/libre/virtualbox-modules-lts/PKGBUILD b/libre/virtualbox-modules-lts/PKGBUILD
new file mode 100644
index 000000000..8ff59d712
--- /dev/null
+++ b/libre/virtualbox-modules-lts/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id$
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+# Maintainer (Parabola): Jorge López <jorginho@adinet.com.uy>
+
+pkgbase=virtualbox-modules-lts
+pkgname=('virtualbox-modules-lts' 'virtualbox-parabola-modules-lts')
+pkgver=4.1.14
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-lts' 'linux-libre-lts-headers')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ LocalConfig.kmk 60-vboxguest.rules)
+md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
+ '4c88bd122677a35f68abd76eb01b378b'
+ 'ed1341881437455d9735875ddf455fbe')
+
+_extramodules=extramodules-3.0-LIBRE-LTS
+_kernver=$(pacman -Ss linux-libre-lts | awk 'NR==1{print $2}')-LIBRE-LTS
+
+export KERN_DIR=/lib/modules/${_kernver}/build
+export KERN_INCL=/usr/src/linux-${_kernver}/include/
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure \
+ --with-linux=/usr/src/linux-${_kernver} \
+ --disable-java \
+ --disable-docs \
+ --disable-xpcom \
+ --disable-python \
+ --disable-sdl-ttf \
+ --disable-alsa \
+ --disable-pulse \
+ --disable-dbus \
+ --disable-opengl \
+ --build-headless \
+ --nofatal
+ source ./env.sh
+ kmk all
+
+ make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+ make -C "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+}
+
+package_virtualbox-parabola-modules-lts(){
+ pkgdesc="Additions only for Parabola guests (long-term supported kernel modules)"
+ license=('GPL')
+ install=virtualbox-parabola-modules-lts.install
+ depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
+ replaces=('virtualbox-archlinux-modules-lts')
+ conflicts=('virtualbox-archlinux-modules-lts')
+ provides=("virtualbox-parabola-modules=$pkgver" "virtualbox-archlinux-modules=$pkgver" "virtualbox-archlinux-modules-lts=$pkgver")
+
+ source "$srcdir/VirtualBox-${pkgver}/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do
+ install -D -m644 ${module} \
+ "$pkgdir/lib/modules/${_extramodules}/${module}"
+ done
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_virtualbox-modules-lts(){
+ pkgdesc="Long-term supported kernel modules for VirtualBox"
+ license=('GPL')
+ install=virtualbox-modules-lts.install
+ depends=('linux-libre-lts>=3.0' 'linux-libre-lts<3.1')
+ provides=("virtualbox-modules=$pkgver")
+
+ source "$srcdir/VirtualBox-${pkgver}/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src"
+
+ install -D -m644 vboxdrv.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxdrv.ko"
+
+ install -D -m644 vboxnetadp.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetadp.ko"
+
+ install -D -m644 vboxnetflt.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxnetflt.ko"
+
+ install -D -m644 vboxpci.ko \
+ "$pkgdir/lib/modules/${_extramodules}/vboxpci.ko"
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/libre/virtualbox-modules-lts/virtualbox-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
new file mode 100644
index 000000000..014fa0b88
--- /dev/null
+++ b/libre/virtualbox-modules-lts/virtualbox-modules-lts.install
@@ -0,0 +1,18 @@
+EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
+
+post_install() {
+/bin/cat << EOF
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+EOF
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+ echo 'In order to use the new version, reload all virtualbox modules manually.'
+}
+
+post_remove() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
diff --git a/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install b/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
new file mode 100644
index 000000000..80d966a9d
--- /dev/null
+++ b/libre/virtualbox-modules-lts/virtualbox-parabola-modules-lts.install
@@ -0,0 +1,16 @@
+EXTRAMODULES='extramodules-3.0-LIBRE-LTS'
+
+post_install() {
+cat << EOF
+===> You may want to load vboxguest, vboxsf and vboxvideo
+EOF
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
+
+post_remove() {
+ depmod $(cat /lib/modules/$EXTRAMODULES/version)
+}
diff --git a/libre/virtualbox-modules/PKGBUILD b/libre/virtualbox-modules/PKGBUILD
index f711418ca..e14bf347c 100644
--- a/libre/virtualbox-modules/PKGBUILD
+++ b/libre/virtualbox-modules/PKGBUILD
@@ -5,23 +5,20 @@
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-parabola-modules')
-pkgver=4.1.14
-pkgrel=1
+pkgver=4.1.16
+pkgrel=2
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-libre-headers')
-replaces=('virtualbox-modules')
-conflicts=('virtualbox-modules')
-provides=("virtualbox-modules=$pkgver")
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
- LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('f8baa04e6d589bc6b1fb4e7079fbe414'
+ LocalConfig.kmk 60-vboxguest.rules)
+md5sums=('eacfb802ecdd6d3435228eb3d3488719'
'4c88bd122677a35f68abd76eb01b378b'
'ed1341881437455d9735875ddf455fbe')
-_extramodules=extramodules-3.3-LIBRE
+_extramodules=extramodules-3.4-LIBRE
_kernver="$(cat /lib/modules/${_extramodules}/version || true)"
export KERN_DIR=/lib/modules/${_kernver}/build
@@ -56,9 +53,9 @@ package_virtualbox-parabola-modules(){
pkgdesc="Additions only for Parabola guests (kernel modules)"
license=('GPL')
install=virtualbox-parabola-modules.install
- depends=('linux-libre>=3.3' 'linux-libre<3.4')
- replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
- conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
+ depends=('linux-libre>=3.4' 'linux-libre<3.5')
+ replaces=('virtualbox-archlinux-modules')
+ conflicts=('virtualbox-archlinux-modules')
provides=("virtualbox-archlinux-modules=$pkgver")
source "$srcdir/VirtualBox-${pkgver}/env.sh"
@@ -71,7 +68,7 @@ package_virtualbox-parabola-modules(){
done
install -D -m 0644 "$srcdir/60-vboxguest.rules" \
- "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+ "$pkgdir/usr/lib/udev/rules.d/60-vboxguest.rules"
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
@@ -82,7 +79,7 @@ package_virtualbox-modules(){
pkgdesc="Kernel modules for VirtualBox"
license=('GPL')
install=virtualbox-modules.install
- depends=('linux-libre>=3.3' 'linux-libre<3.4')
+ depends=('linux-libre>=3.4' 'linux-libre<3.5')
source "$srcdir/VirtualBox-${pkgver}/env.sh"
diff --git a/libre/virtualbox-modules/linux34.patch b/libre/virtualbox-modules/linux34.patch
new file mode 100644
index 000000000..05ec78557
--- /dev/null
+++ b/libre/virtualbox-modules/linux34.patch
@@ -0,0 +1,12 @@
+diff -Nur VirtualBox-4.1.14.orig/Config.kmk VirtualBox-4.1.14/Config.kmk
+--- VirtualBox-4.1.14.orig/Config.kmk 2012-04-26 16:56:21.000000000 +0000
++++ VirtualBox-4.1.14/Config.kmk 2012-05-21 14:35:22.348398884 +0000
+@@ -2856,7 +2856,7 @@
+ TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
+ -fno-reorder-blocks -ffreestanding -fno-asynchronous-unwind-tables -funit-at-a-time \
+ -Wno-sign-compare -Wdeclaration-after-statement
+-TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti
++TEMPLATE_VBOXR0DRV_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wno-pointer-sign -ffreestanding -Wdeclaration-after-statement -Werror-implicit-function-declaration,$(TEMPLATE_VBOXR0DRV_CFLAGS) $(TEMPLATE_VBOXR0DRV_CFLAGS.$(KBUILD_TARGET_ARCH))) -fno-exceptions -fno-rtti -fpermissive
+ ifndef VBOX_LINUX_VERSION_2_4
+ # 2.6
+ TEMPLATE_VBOXR0DRV_SYSSUFF = .ko
diff --git a/libre/virtualbox-modules/virtualbox-modules.install b/libre/virtualbox-modules/virtualbox-modules.install
index 72be196c2..14242eaf4 100644
--- a/libre/virtualbox-modules/virtualbox-modules.install
+++ b/libre/virtualbox-modules/virtualbox-modules.install
@@ -3,17 +3,17 @@ post_install() {
===> You must load vboxdrv module before starting VirtualBox:
===> # modprobe vboxdrv
EOF
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
echo 'In order to use the new version, reload all virtualbox modules manually.'
}
post_remove() {
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/libre/virtualbox-modules/virtualbox-parabola-modules.install b/libre/virtualbox-modules/virtualbox-parabola-modules.install
index 0cc4b44fd..0e101aedf 100644
--- a/libre/virtualbox-modules/virtualbox-parabola-modules.install
+++ b/libre/virtualbox-modules/virtualbox-parabola-modules.install
@@ -2,16 +2,16 @@ post_install() {
cat << EOF
===> You may want to load vboxguest, vboxsf and vboxvideo
EOF
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- EXTRAMODULES='extramodules-3.3-LIBRE'
+ EXTRAMODULES='extramodules-3.4-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/libre/xulrunner-libre/PKGBUILD b/libre/xulrunner-libre/PKGBUILD
index 0b66880dc..af4b45aae 100644
--- a/libre/xulrunner-libre/PKGBUILD
+++ b/libre/xulrunner-libre/PKGBUILD
@@ -6,8 +6,8 @@
# We're getting this from Debian Sid
_debname=iceweasel
-_debver=11.0
-_debrel=2
+_debver=12.0
+_debrel=3
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
@@ -31,12 +31,12 @@ options=('!emptydirs')
conflicts=('xulrunner')
provides=("xulrunner=${_debver}")
replaces=('xulrunner-oss' 'xulrunner')
-md5sums=('01d9d18909ca9fff2483d8fd779a0f89'
- '59349da94b095fe0623d09ce75696766'
- 'f407208a750cdc9bea3a6a3a3e42dd89'
- '6277c508cf24a78c596decae2e568997'
+md5sums=('b45f57bfe21b0e6db4f0683e794917cb'
+ '2b66fb2e51631ef3b07de89ef9d17d0c'
+ '552adcf5da3b07757e7fe29c8bd2ec2d'
+ 'f2f4f4a573f549e8b494e33b3ad226bc'
'27271ce647a83906ef7a24605e840d61'
- 'aeaf587f7a962ebcc81515e1f1706cd1')
+ '5a8563f8fda7ad30405c86764267a19c')
dpkg-source() {
# This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
diff --git a/libre/xulrunner-libre/gcc47.patch b/libre/xulrunner-libre/gcc47.patch
index 5bdd36c6f..5cea6769d 100644
--- a/libre/xulrunner-libre/gcc47.patch
+++ b/libre/xulrunner-libre/gcc47.patch
@@ -1,44 +1,77 @@
---- mozilla-release.orig/ipc/chromium/src/base/file_util.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-release/ipc/chromium/src/base/file_util.cc 2012-04-04 18:50:02.094431651 -0300
-@@ -8,7 +8,7 @@
- #include <io.h>
- #endif
- #include <stdio.h>
--#if defined(ANDROID)
-+#if defined(ANDROID) || defined(OS_POSIX)
- #include <unistd.h>
- #endif
---- mozilla-release.orig/ipc/chromium/src/base/message_pump_libevent.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-release/ipc/chromium/src/base/message_pump_libevent.cc 2012-04-04 19:55:24.140455837 -0300
-@@ -6,6 +6,7 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#include <unistd.h>
-
- #include "eintr_wrapper.h"
- #include "base/logging.h"
+# HG changeset patch
+# User Martin Stránský <stransky@redhat.com>
+# Date 1328886461 -3600
+# Node ID 87a5ed480992788832387ba91a77c69fbe9fe349
+# Parent 67017dd3b7f6650e6bcd5b6f545e0309e8de7049
+Bug 725655 - gcc 4.7 build failures (missing headers). r=benjamin
---- mozilla-release.orig/ipc/chromium/src/base/file_util_linux.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-release/ipc/chromium/src/base/file_util_linux.cc 2012-04-04 20:49:49.756138306 -0300
-@@ -5,6 +5,7 @@
+diff --git a/ipc/chromium/src/base/file_util_linux.cc b/ipc/chromium/src/base/file_util_linux.cc
+--- a/ipc/chromium/src/base/file_util_linux.cc
++++ b/ipc/chromium/src/base/file_util_linux.cc
+@@ -1,15 +1,18 @@
+ // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
#include "base/file_util.h"
#include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
+#include <unistd.h>
++#endif
#include <string>
#include <vector>
-
---- mozilla-release.orig/ipc/chromium/src/base/time_posix.cc 2012-03-06 14:26:03.000000000 -0200
-+++ mozilla-release/ipc/chromium/src/base/time_posix.cc 2012-04-04 20:55:12.678037291 -0300
-@@ -8,6 +8,7 @@
+
+ #include "base/eintr_wrapper.h"
+ #include "base/file_path.h"
+ #include "base/string_util.h"
+
+diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
+--- a/ipc/chromium/src/base/message_pump_libevent.cc
++++ b/ipc/chromium/src/base/message_pump_libevent.cc
+@@ -1,16 +1,19 @@
+ // Copyright (c) 2008 The Chromium Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+
+ #include <errno.h>
+ #include <fcntl.h>
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include "eintr_wrapper.h"
+ #include "base/logging.h"
+ #include "base/scoped_nsautorelease_pool.h"
+ #include "base/scoped_ptr.h"
+ #include "base/time.h"
+ #include "third_party/libevent/event.h"
+
+diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
+--- a/ipc/chromium/src/base/time_posix.cc
++++ b/ipc/chromium/src/base/time_posix.cc
+@@ -8,16 +8,19 @@
#include <mach/mach_time.h>
#endif
#include <sys/time.h>
-+#include <unistd.h>
#ifdef ANDROID
#include <time64.h>
#else
+ #include <time.h>
+ #endif
++#if defined(ANDROID) || defined(OS_POSIX)
++#include <unistd.h>
++#endif
+
+ #include <limits>
+
+ #include "base/basictypes.h"
+ #include "base/logging.h"
+
+ namespace base {
+
diff --git a/libre/xulrunner-libre/mozconfig b/libre/xulrunner-libre/mozconfig
index d6cc06648..34c5a6137 100644
--- a/libre/xulrunner-libre/mozconfig
+++ b/libre/xulrunner-libre/mozconfig
@@ -15,11 +15,12 @@ ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
-ac_add_options --enable-system-cairo
+#ac_add_options --enable-system-cairo
ac_add_options --enable-system-pixman
ac_add_options --with-pthreads
# Features
+ac_add_options --disable-safe-browsing
ac_add_options --enable-startup-notification
ac_add_options --enable-gio
@@ -32,3 +33,6 @@ ac_add_options --disable-installer
# Optimization
ac_add_options --enable-optimize
+
+export MOZILLA_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD
index 9c60622fb..cbf5b9c60 100644
--- a/libre/your-freedom/PKGBUILD
+++ b/libre/your-freedom/PKGBUILD
@@ -23,4 +23,4 @@ package() {
sort -u
))
}
-md5sums=('1a964c90247c9c9db5b0e44bd33143d6')
+md5sums=('c4ecf01611d55df03b5e4412dca4e70d')
diff --git a/pcr/bsnes/PKGBUILD b/pcr/bsnes/PKGBUILD
new file mode 100644
index 000000000..34a8031e9
--- /dev/null
+++ b/pcr/bsnes/PKGBUILD
@@ -0,0 +1,63 @@
+# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
+pkgname='bsnes'
+pkgver=088
+pkgrel=1
+pkgdesc="Super Nintendo Entertainment System (SNES) emulator focused on accuracy."
+arch=('i686' 'x86_64')
+url="http://byuu.org/bsnes/"
+license=('GPL3')
+depends=('libao' 'libgl' 'libxv' 'openal' 'sdl' 'qt>=4.7.0')
+makedepends=('pkgconfig' 'mesa')
+install='bsnes.install'
+changelog='bsnes.changelog'
+source=('http://bsnes.googlecode.com/files/bsnes_v088-source.tar.xz' 'add-usr-share-fallback.patch')
+md5sums=('a3b2e9ba28b752768bb9f777049b1239' '8fde2bb14f8dafbd5276f9a6092b7ffb')
+
+
+# Build the accuracy profile (you can also choose 'performance' or 'compatibility')
+__profile='accuracy'
+
+build() {
+ cd "${srcdir}/${pkgname}_v${pkgver}-source/${pkgname}"
+
+ # Makefile hacks:
+ # Disable pulseaudio.
+ sed -e 's|audio.pulseaudio ||' \
+ -e 's|audio.pulseaudiosimple ||' \
+ -i 'target-ui/Makefile'
+ # Don't copy the cheat file.
+ sed -e '/mkdir -p ~\/.config\/$(name)/{N;d}' \
+ -e '/cp data\/cheats.xml/{N;d}' \
+ -i 'target-ui/Makefile'
+ # Don't use sudo
+ sed -e 's/sudo install/install/' \
+ -i 'target-ui/Makefile'
+
+ # Apply patch to make bsnes look in /usr/share/bsnes for filters/shaders.
+ patch -p0 < "${srcdir}/add-usr-share-fallback.patch"
+
+ # Fix building with QT >= 4.8.0.
+ moc -i -Iphoenix/qt/ -o phoenix/qt/platform.moc phoenix/qt/platform.moc.hpp
+
+ # Compile bsnes.
+ make flags="$CXXFLAGS -I. -DPROFILE_${__profile^^}" compiler=gcc platform=x profile=${__profile} phoenix=qt
+
+ # Compile the filters.
+ cd "${srcdir}/${pkgname}_v${pkgver}-source/snesfilter"
+ make compiler=gcc platform=x
+}
+
+package() {
+ cd "${srcdir}/${pkgname}_v${pkgver}-source/${pkgname}"
+ make install profile=${__profile} DESTDIR="${pkgdir}" prefix=/usr
+
+ # Install the filters/shaders
+ install --directory "${pkgdir}/usr/share/${pkgname}/filters"
+ install -D --mode=644 "${srcdir}/${pkgname}_v${pkgver}-source"/snesfilter/out/*.filter "${pkgdir}/usr/share/${pkgname}/filters"
+ install --directory "${pkgdir}/usr/share/${pkgname}/shaders"
+ install -D --mode=644 "${srcdir}/${pkgname}_v${pkgver}-source"/snesshader/*.shader "${pkgdir}/usr/share/${pkgname}/shaders"
+
+ # Install the user-profile into /usr/share/bsnes/profile.
+ install --directory "${pkgdir}/usr/share/${pkgname}/profile"
+ cp -R "${srcdir}/${pkgname}_v${pkgver}-source/${pkgname}"/profile/* "${pkgdir}/usr/share/${pkgname}/profile"
+}
diff --git a/pcr/bsnes/add-usr-share-fallback.patch b/pcr/bsnes/add-usr-share-fallback.patch
new file mode 100644
index 000000000..4d2b5cf3c
--- /dev/null
+++ b/pcr/bsnes/add-usr-share-fallback.patch
@@ -0,0 +1,24 @@
+--- target-ui/general/main-window.cpp 2012-02-03 23:33:00.000000000 +0100
++++ target-ui/general/main-window.cpp 2012-02-13 18:02:04.988109569 +0100
+@@ -331,6 +331,10 @@
+ path = { application->userpath, "filters/" };
+ files = directory::files(path, "*.filter");
+ }
++ if(files.size() == 0) {
++ path = { "/usr/share/bsnes/", "filters/" };
++ files = directory::files(path, "*.filter");
++ }
+ array<RadioItem&> group;
+
+ settingsVideoFilterList = new RadioItem[files.size()];
+@@ -362,6 +366,10 @@
+ path = { application->userpath, "shaders/" };
+ files = directory::files(path, { "*.", config->video.driver, ".shader" });
+ }
++ if(files.size() == 0) {
++ path = { "/usr/share/bsnes/", "shaders/" };
++ files = directory::files(path, { "*.", config->video.driver, ".shader" });
++ }
+ array<RadioItem&> group;
+
+ settingsVideoShaderList = new RadioItem[files.size()];
diff --git a/pcr/bsnes/bsnes.changelog b/pcr/bsnes/bsnes.changelog
new file mode 100644
index 000000000..589a929d2
--- /dev/null
+++ b/pcr/bsnes/bsnes.changelog
@@ -0,0 +1,474 @@
+2012-04-24 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 088-1 :
+ New upstream release.
+
+2012-03-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 087-1 :
+ New upstream release.
+
+ * add-usr-share-fallback.patch :
+ Update patch against the new source.
+
+2012-02-13 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 086-1 :
+ New upstream release.
+
+ * add-usr-share-fallback.patch :
+ Update patch against the new source.
+
+2012-01-02 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 085-1 :
+ New upstream release.
+
+2011-12-28 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 084-3 :
+ Enable custom CXXFLAGS by default.
+ Fix build with QT 4.8.0.
+
+2011-11-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 084-2 :
+ Update to reflect the silently updated source tarball.
+
+2011-11-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 084-1 :
+ New upstream release.
+ Fixed PKGBUILD changelog line to work with pacman 4.0 (thanks jpike).
+
+2011-10-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 083-1 :
+ New upstream release.
+ Dropped the leading '0.' from the version number.
+ Compile and package filters/shaders.
+ Added commented block for compiling bsnes with the makepkg specified
+ flags (thanks MaMuS).
+
+ * add-usr-share-fallback.patch :
+ Add fallback path to /usr/share/bsnes/ for finding filters/shaders
+ unless found in the bsnes basepath/userpath.
+
+2011-08-21 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.082-1 :
+ New upstream release.
+
+2011-08-12 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.081-1 :
+ New upstream release.
+
+2011-06-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.080-1 :
+ New upstream release.
+
+ * gcc_4.6.0_build_fix.patch :
+ Removed as it's no longer needed.
+
+2011-06-18 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.079-2 :
+ Update sed command for preventing installation of cheats.xml to user
+ home directory
+
+ * gcc_4.6.0_build_fix.patch :
+ Fix build errors with newest gcc 4.6.0 prerelease.
+
+2011-06-04 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.079-1 :
+ New upstream release.
+
+2011-04-30 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.078-1 :
+ New upstream release.
+
+2011-03-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.077-1 :
+ New upstream release.
+
+2011-02-27 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.076-2 :
+ Correct the sed expression that removes the lines that copies the
+ cheats.xml file.
+
+2011-02-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.076-1 :
+ New upstream release.
+
+2011-02-13 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.075-1 :
+ Build and package snespurify.
+
+2011-01-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.075-1 :
+ New upstream release.
+ As the launcher for selecting profile is removed the PKGBUILD will now
+ build just the accuracy profile. Edit the PKGBUILD if you want to build
+ another profile.
+
+2011-01-11 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.074-1 :
+ New upstream release.
+ Switched to the phoenix ui as the qt port is now dead.
+
+2010-12-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.073-1 :
+ New upstream release.
+ snesreader/snesfilter removed.
+
+2010-10-23 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.072-1 :
+ New upstream release.
+
+2010-10-22 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.071-1 :
+ New upstream release.
+
+2010-09-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.070-1 :
+ New upstream release.
+
+2010-09-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.069-1 :
+ New upstream release.
+
+2010-09-05 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.068-3 :
+ Added 'mesa' to makedepends to satisfy "GL/gl.h" dependency.
+
+2010-08-22 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.068-2 :
+ Forgot to build the launcher.
+
+2010-08-21 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.068-1 :
+ New upstream release.
+
+ * gcc45_build_fix.patch:
+ Removed as it's not needed anymore.
+
+2010-08-02 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.067-1 :
+ New upstream release.
+
+ * gcc45_build_fix.patch :
+ Workaround a bug in GCC 4.5.x.
+
+2010-06-27 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.065-1 :
+ New upstream release.
+
+2010-04-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.064-1 :
+ New upstream release.
+
+2010-03-29 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.063-2 :
+ New snesreader (snesreader_20100329.tar.bz2) that fixes libjma on 64-bit
+ systems.
+
+2010-03-28 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.063-1 :
+ New upstream release.
+
+2010-02-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.060-1 :
+ New upstream release.
+ Removed the optdepends list as they are now part of the same source
+ tarball and have been integrated into the PKGBUILD. You may remove those
+ plugins you don't want.
+
+2010-01-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.059-1 :
+ New upstream release.
+
+2009-12-09 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.058-1 :
+ New upstream release.
+
+2009-11-23 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.057-1 :
+ New upstream release.
+
+2009-11-22 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.056-1 :
+ New upstream release.
+
+2009-11-01 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.055-1 :
+ New upstream release.
+
+2009-10-19 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.054-1 :
+ New upstream release.
+
+2009-09-29 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.052-1 :
+ New upstream release.
+
+2009-09-27 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.051-1 :
+ New upstream release.
+
+2009-08-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.050-1 :
+ New upstream release.
+
+2009-08-22 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.049-1 :
+ New upstream release.
+
+ * fix_black_lines.patch :
+ Removed as it's not needed anymore.
+
+2009-07-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.048-2 :
+ Apply patch to fix "black lines" issue.
+
+ * fix_black_lines.patch :
+ Fixes "Linux X-video driver shows a lot of black lines" as per the
+ bsnes v0.048 errata.
+
+2009-07-12 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.048-1 :
+ New upstream release.
+
+2009-06-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.047-2 :
+ Added 'pkgconfig' to makedepends.
+
+2009-06-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.047-1 :
+ New upstream release.
+
+2009-05-10 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.046-1 :
+ New upstream release.
+ Moved 'libxtst' to optdepends.
+ Updated the name of the license to be correct.
+
+2009-04-19 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.045-1 :
+ New upstream release.
+ Added 'libxtst' to the dependency list.
+
+2009-03-31 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.042-1 :
+ New upstream release.
+
+2009-03-15 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.041-1 :
+ New upstream release.
+
+2009-03-09 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.040-1 :
+ New upstream release.
+ Replaced 'gtk2' dependency with 'qt' as the GUI has been rewritten.
+ Replaced 'freealut' dependency with 'openal' which is more correct.
+ Removed 'inputproto' from dependency list as namcap says it's not needed
+ anymore.
+
+ * bsnes.desktop:
+ Removed in favor of the one shipped with bsnes.
+
+2009-01-18 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.039-1 :
+ New upstream release.
+
+2008-12-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.038-1 :
+ New upstream release.
+ New audio driver for PulseAudio is disabled.
+
+2008-10-27 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.037a-1 :
+ New upstream release.
+
+2008-09-18 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.036-2 :
+ Adapted to the ChangeLog.proto provided by Pacman.
+ Added missing dependency 'inputproto' (thanks cr7).
+
+2008-09-16 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.036-1 :
+ New upstream release.
+
+2008-08-24 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.035-1 :
+ New upstream release.
+ Made PKGBUILD autodetect GCC version and if greater than 4.2.0 enable
+ the -mtune=native optimizations
+
+2008-08-13 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.034-1 :
+ New upstream release.
+
+2008-07-29 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.033-1 :
+ New upstream release.
+
+2008-06-01 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.032a-1 :
+ New upstream release.
+
+2008-04-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.031-1 :
+ New upstream release.
+
+2008-03-24 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.030-1 :
+ New upstream release.
+
+2008-03-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.029-1 :
+ New upstream release.
+
+ * bsnes-icon.patch :
+ Removed as it's not needed anymore.
+
+2008-02-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.028.01-1 :
+ New upstream release.
+
+2008-02-04 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.028-1 :
+ New upstream release.
+ Frmo now on JMA support will be compiled in.
+
+ * bsnes-icon.patch :
+ Added a patch to make bsnes window use the bsnes icon.
+
+2007-12-22 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.027-1 :
+ New upstream release.
+ From now on GZIP/ZIP support will be compiled in.
+ JMA support is broken with the latest GCC.
+
+ * bsnes-makefile.patch :
+ Removed patch since it has been merged upstream.
+
+2007-11-24 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.026-1 :
+ New upstream release.
+
+ * bsnes-makefile.patch :
+ Enables the use of custom install path instead of a fixed one, taken
+ from http://board.zsnes.com/phpBB2/viewtopic.php?p=155591#155591 (lots
+ of kudos to belegdol).
+
+ * bsnes_<SIZE>.png :
+ Removed the extracted icons introduced in 0.023-3 as bsnes now ships
+ with an icon.
+
+2007-10-15 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.025-1 :
+ New upstream release.
+ Correct the license array, the quotation marks shouldn't be where they
+ were.
+
+ * bsnes_<SIZE>.png :
+ Decreased filesizes using OptiPNG/advpng (~25% total reduction).
+
+2007-10-01 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.024-1 :
+ New upstream release.
+
+2007-09-29 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.023-3 :
+ New upstream release.
+ Added an optional possibly speed increase option to the Makefile, as it
+ requires GCC >= 4.2.0 it's not enabled by default.
+
+ * bsnes_<SIZE>.png :
+ Added icons for the .desktop-file (extracted from bsnes resources).
+
+2007-09-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.023-2 :
+ Added a .desktop file
+ Small (PKGBUILD inline) patch to prevent the emulator idle stage consume
+ 100% CPU usage.
+
+2007-09-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.023-1 :
+ New upstream release.
+
+2007-08-15 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.022-2 :
+ Added 'nasm' to makedepens for 'i686' and moved 'yasm' to makedepends
+ for 'x86_64' only.
+
+2007-08-04 [vEX] <niechift.dot.vex.at.gmail.dot.com>
+
+ * 0.022-1 :
+ New upstream release.
+ Added ChangeLog
diff --git a/pcr/bsnes/bsnes.install b/pcr/bsnes/bsnes.install
new file mode 100644
index 000000000..f18765649
--- /dev/null
+++ b/pcr/bsnes/bsnes.install
@@ -0,0 +1,12 @@
+## arg 1: the new package version
+post_install() {
+ post_upgrade
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ echo 'You should copy the /usr/share/bsnes/profile/ data into your'
+ echo '~/.config/bsnes/ folder unless you have already done so. It contains'
+ echo 'files that the emulator needs to function properly.'
+}
diff --git a/social/mednafen-wip/PKGBUILD b/social/mednafen-wip/PKGBUILD
index a405d2ceb..e7330795b 100755
--- a/social/mednafen-wip/PKGBUILD
+++ b/social/mednafen-wip/PKGBUILD
@@ -4,7 +4,7 @@
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=mednafen-wip
-pkgver=0.9.21
+pkgver=0.9.22
pkgrel=1
pkgdesc="A command-line multi-system gaming emulator, WIP version"
url="http://mednafen.sourceforge.net/"
@@ -14,8 +14,8 @@ depends=('libcdio>=0.82' 'libsamplerate' 'libogg' 'libvorbis' 'sdl' 'sdl_net' 'l
makedepends=('pkgconfig' 'mesa')
conflicts=('mednafen')
provides=('mednafen')
-source=('http://forum.fobby.net/index.php?t=getfile&id=358&')
-sha1sums=('983c349ca991190363b713ac8abf7ae78b081a21')
+source=('http://forum.fobby.net/index.php?t=getfile&id=362&')
+sha1sums=('609d3915f4b65f6a7e77441d26efd744f3149981')
build()
{
diff --git a/social/seeks/PKGBUILD b/social/seeks/PKGBUILD
index 53cc57471..cdc4a798d 100644
--- a/social/seeks/PKGBUILD
+++ b/social/seeks/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=seeks
pkgver=0.4.1
-pkgrel=2
+pkgrel=3
pkgdesc="A social decentralized internet overlay for collaborative searches"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.seeks-project.info/site/"
diff --git a/social/sipwitch/PKGBUILD b/social/sipwitch/PKGBUILD
index 98191c8d5..8cb84fad5 100644
--- a/social/sipwitch/PKGBUILD
+++ b/social/sipwitch/PKGBUILD
@@ -1,18 +1,19 @@
# Maintainer: Dan Serban
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: David Zaragoza <david@zaragoza.com.ve>
+# Contributors: David Zaragoza, Andrea Scarpino
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgname=sipwitch
-pkgver=1.1.2
+pkgver=1.2.4
pkgrel=1
pkgdesc="A call and registration server for the SIP protocol"
-arch=(i686 x86_64)
+arch=(i686 x86_64 mips64el)
url=http://www.gnutelephony.org/index.php/GNU_SIP_Witch
license=(GPL)
depends=(libexosip2 ucommon)
-makedepends=(pkg-config)
+makedepends=(lynx)
options=('!libtool')
-source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6119cecb062ba4d0af18b427b01c41e2')
build()
{
@@ -28,4 +29,4 @@ package()
mkdir -p "${pkgdir}"/etc/rc.d
touch "${pkgdir}"/etc/rc.d/"${pkgname}"
}
-md5sums=('08a235ddc0f75238c3670e857a30ae0b')
+
diff --git a/testing/bluez/PKGBUILD b/testing/bluez/PKGBUILD
index 9a4023150..5e5ffb7e5 100644
--- a/testing/bluez/PKGBUILD
+++ b/testing/bluez/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 159960 2012-05-27 13:10:36Z dreisner $
+# $Id: PKGBUILD 160191 2012-05-30 15:34:29Z tomegun $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
pkgname=bluez
pkgver=4.99
-pkgrel=5
+pkgrel=6
pkgdesc="Libraries and tools for the Bluetooth protocol stack"
url="http://www.bluez.org/"
arch=('i686' 'x86_64')
@@ -48,7 +48,8 @@ build() {
--enable-dund \
--enable-cups \
--enable-wiimote \
- --disable-test
+ --disable-test \
+ --with-systemdunitdir=/usr/lib/systemd/system
patch -p1 -i ../0001-udev-remove-deprecated-function.patch
diff --git a/testing/gpm/PKGBUILD b/testing/gpm/PKGBUILD
new file mode 100644
index 000000000..6f925253c
--- /dev/null
+++ b/testing/gpm/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 160095 2012-05-29 22:27:52Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gpm
+pkgver=1.20.6
+pkgrel=8
+pkgdesc="A mouse server for the console and xterm"
+arch=('i686' 'x86_64')
+url="http://www.nico.schottelius.org/software/gpm/"
+license=('GPL')
+depends=('ncurses' 'bash')
+backup=('etc/conf.d/gpm')
+options=('!makeflags')
+install=gpm.install
+source=(http://www.nico.schottelius.org/software/gpm/archives/${pkgname}-${pkgver}.tar.lzma \
+ gpm gpm.conf.d gpm.sh gpm.service)
+sha1sums=('4677da0eb2f1910a5a744bbefa08fea82e0dca0c'
+ '19e1feb1493373512a77801699df012d186336ea'
+ '4c31cb7dd51cee4d16d3f7a8956e6d87fac1ad86'
+ '88fe5ff10916c68a87abc8418a56eb0073f69fa9'
+ '2db35b5f587b8dd21f9943610e7dd70469f888c7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m755 ../gpm "${pkgdir}/etc/rc.d/gpm"
+ install -D -m644 ../gpm.conf.d "${pkgdir}/etc/conf.d/gpm"
+ install -D -m755 ../gpm.sh "${pkgdir}/etc/profile.d/gpm.sh"
+ install -D -m644 ../gpm.service "${pkgdir}/usr/lib/systemd/system/gpm.service"
+
+# library fixes
+ cd "${pkgdir}/usr/lib/"
+ ln -s libgpm.so.2.* libgpm.so
+ chmod 755 "${pkgdir}"/usr/lib/libgpm.so.*
+}
diff --git a/testing/gpm/gpm b/testing/gpm/gpm
new file mode 100755
index 000000000..7b5213dd7
--- /dev/null
+++ b/testing/gpm/gpm
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# source application-specific settings
+GPM_ARGS=
+[ -f /etc/conf.d/gpm ] && . /etc/conf.d/gpm
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/sbin/gpm)
+case "$1" in
+ start)
+ stat_busy "Starting GPM Daemon"
+ [ -z "$PID" ] && /usr/sbin/gpm ${GPM_ARGS}
+ PID=$(pidof -o %PPID /usr/sbin/gpm)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ add_daemon gpm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping GPM Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gpm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/gpm/gpm.conf.d b/testing/gpm/gpm.conf.d
new file mode 100644
index 000000000..ab43bb7eb
--- /dev/null
+++ b/testing/gpm/gpm.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to gpm
+#
+GPM_ARGS="-m /dev/input/mice -t imps2"
diff --git a/testing/gpm/gpm.install b/testing/gpm/gpm.install
new file mode 100644
index 000000000..2a1519a6c
--- /dev/null
+++ b/testing/gpm/gpm.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=gpm.info.gz
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+}
diff --git a/testing/gpm/gpm.service b/testing/gpm/gpm.service
new file mode 100644
index 000000000..3e52af729
--- /dev/null
+++ b/testing/gpm/gpm.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=GPM daemon
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/gpm
diff --git a/testing/gpm/gpm.sh b/testing/gpm/gpm.sh
new file mode 100755
index 000000000..af35a5f33
--- /dev/null
+++ b/testing/gpm/gpm.sh
@@ -0,0 +1,3 @@
+case $( /usr/bin/tty ) in
+ /dev/tty[0-9]*) [ -n "$(pgrep gpm)" ] && /usr/bin/disable-paste ;;
+esac
diff --git a/testing/libpipeline/PKGBUILD b/testing/libpipeline/PKGBUILD
new file mode 100644
index 000000000..b8d6ea75e
--- /dev/null
+++ b/testing/libpipeline/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 160037 2012-05-28 11:30:14Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libpipeline
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="a C library for manipulating pipelines of subprocesses in a flexible and convenient way"
+arch=('i686' 'x86_64')
+url="http://libpipeline.nongnu.org/"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://download.savannah.gnu.org/releases/libpipeline/$pkgname-$pkgver.tar.gz)
+md5sums=('20896c919eca4acb3d2f13012fb7ba02')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make -k check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/testing/lighttpd/PKGBUILD b/testing/lighttpd/PKGBUILD
index 90702eaa0..1d0748828 100644
--- a/testing/lighttpd/PKGBUILD
+++ b/testing/lighttpd/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 160014 2012-05-28 01:48:30Z pierre $
+# $Id: PKGBUILD 160045 2012-05-28 14:12:38Z pierre $
# Maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=lighttpd
pkgver=1.4.30
-pkgrel=4
+pkgrel=6
pkgdesc='A secure, fast, compliant and very flexible web-server'
license=('custom')
arch=('i686' 'x86_64')
@@ -24,14 +24,14 @@ sha256sums=('c237692366935b19ef8a6a600b2f3c9b259a9c3107271594c081a45902bd9c9b'
'dacfa1d748e5ac38c2d51d8310acad76d85ba5c1fe02a93534cf032400429257'
'6df18675691384c48b9137c8f18ca238055001f1077baf05cb8322247b475a77'
'ee56422fe48f2683ccb5ca2e3dc6bad79ea8e1cbd043b21d2ea73b87018e35aa'
- 'ce214a5fdf81085c35cce0faa2e2b5712a70ba15896ef5fa90e6d674d5bdcd89'
- 'd6c302d190b53c85f69b48ce7ca15cab5f6a097af5f3af495bd3dc3ef52a5776')
+ '758275bd8d17115394caabc46e1bbbad01934b20ea957c7984d0b6ba78c4fd40'
+ '708cefe97541edba73f572ed3836bd056462b1467e45e1912c9d960139929696')
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr \
- --libexecdir=/usr/lib/lighttpd/modules \
+ --libdir=/usr/lib/lighttpd/ \
--sysconfdir=/etc/lighttpd \
--with-mysql \
--with-ldap \
@@ -60,7 +60,7 @@ package() {
install -D -m644 $srcdir/lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd
install -D -m644 $srcdir/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
install -d -m755 -o http -g http $pkgdir/var/{log,cache}/lighttpd/
- install -D -m644 ${srcdir}/lighttpd.tmpfiles ${pkgdir}/etc/tmpfiles.d/lighttpd.tmpfiles
+ install -D -m644 ${srcdir}/lighttpd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/lighttpd.conf
install -D -m644 ${srcdir}/lighttpd.service ${pkgdir}/usr/lib/systemd/system/lighttpd.service
pushd doc/config >/dev/null
diff --git a/testing/lighttpd/lighttpd.service b/testing/lighttpd/lighttpd.service
index af427063e..b80db7695 100644
--- a/testing/lighttpd/lighttpd.service
+++ b/testing/lighttpd/lighttpd.service
@@ -3,6 +3,7 @@ Description=A secure, fast, compliant and very flexible web-server
After=syslog.target network.target
[Service]
+PrivateTmp=true
ExecStart=/usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
diff --git a/testing/lighttpd/lighttpd.tmpfiles b/testing/lighttpd/lighttpd.tmpfiles
index cb72b68c8..eb1a7699e 100644
--- a/testing/lighttpd/lighttpd.tmpfiles
+++ b/testing/lighttpd/lighttpd.tmpfiles
@@ -1 +1,2 @@
-d /var/run/lighttpd 755 http http
+d /var/run/lighttpd 755 http http -
+d /var/cache/lighttpd 755 http http 10d
diff --git a/testing/php/php-fpm.service b/testing/php/php-fpm.service
index 2fd30113c..3ef95a83a 100644
--- a/testing/php/php-fpm.service
+++ b/testing/php/php-fpm.service
@@ -5,6 +5,7 @@ After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/php-fpm/php-fpm.pid
+PrivateTmp=true
ExecStart=/usr/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
diff --git a/testing/pixman/PKGBUILD b/testing/pixman/PKGBUILD
new file mode 100644
index 000000000..6f90efbc8
--- /dev/null
+++ b/testing/pixman/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 160035 2012-05-28 11:24:39Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=pixman
+pkgver=0.26.0
+pkgrel=1
+pkgdesc="The pixel-manipulation library for X and cairo"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2
+ test_failures_on_x86-32.diff)
+sha1sums=('d772cf794ec5da0966eba3cb360919a0a5e0d23f'
+ '24a688271d5cf2c4137a147deaa2975122c01aa8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/test_failures_on_x86-32.diff
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/pixman/test_failures_on_x86-32.diff b/testing/pixman/test_failures_on_x86-32.diff
new file mode 100644
index 000000000..6e333c03a
--- /dev/null
+++ b/testing/pixman/test_failures_on_x86-32.diff
@@ -0,0 +1,46 @@
+From da6193b1fcc1dfab27f4c36917864f2f2c41cf3e Mon Sep 17 00:00:00 2001
+From: Matt Turner <mattst88@gmail.com>
+Date: Sun, 27 May 2012 17:01:57 +0000
+Subject: mmx: add missing _mm_empty calls
+
+Fixes spurious test failures on x86-32.
+---
+diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
+index bb125bf..6e292c6 100644
+--- a/pixman/pixman-mmx.c
++++ b/pixman/pixman-mmx.c
+@@ -2232,6 +2232,8 @@ mmx_composite_src_x888_0565 (pixman_implementation_t *imp,
+ w--;
+ }
+ }
++
++ _mm_empty ();
+ }
+
+ static void
+@@ -3542,6 +3544,7 @@ mmx_fetch_x8r8g8b8 (pixman_iter_t *iter, const uint32_t *mask)
+ w--;
+ }
+
++ _mm_empty ();
+ return iter->buffer;
+ }
+
+@@ -3585,6 +3588,7 @@ mmx_fetch_r5g6b5 (pixman_iter_t *iter, const uint32_t *mask)
+ w--;
+ }
+
++ _mm_empty ();
+ return iter->buffer;
+ }
+
+@@ -3630,6 +3634,7 @@ mmx_fetch_a8 (pixman_iter_t *iter, const uint32_t *mask)
+ w--;
+ }
+
++ _mm_empty ();
+ return iter->buffer;
+ }
+
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/testing/procps-ng/PKGBUILD b/testing/procps-ng/PKGBUILD
new file mode 100644
index 000000000..1266a40ff
--- /dev/null
+++ b/testing/procps-ng/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 160218 2012-05-31 00:53:30Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=procps-ng
+pkgver=3.3.3
+pkgrel=1
+pkgdesc="Utilities for monitoring your system and processes on your system"
+arch=('i686' 'x86_64')
+url="http://gitorious.org/procps"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('ncurses')
+conflicts=('procps')
+provides=('procps')
+replaces=('procps')
+backup=('etc/sysctl.conf')
+options=('!libtool')
+source=(procps-ng-${pkgver}.tar.gz::http://gitorious.org/procps/procps/archive-tarball/v${pkgver}
+ sysctl.conf)
+sha1sums=('e78a098f1a3c06722155800cc5cfa0c865af03c0'
+ 'ddf0dab2e3612d44903fc02f46316cabbec4651e')
+
+build() {
+ cd "${srcdir}/procps-procps"
+ echo ${pkgver} > .tarball-version
+ ./autogen.sh
+ ./configure --exec-prefix=/ --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/procps-procps"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 "${srcdir}/sysctl.conf" "${pkgdir}/etc/sysctl.conf"
+}
diff --git a/testing/procps-ng/sysctl.conf b/testing/procps-ng/sysctl.conf
new file mode 100644
index 000000000..44906a21a
--- /dev/null
+++ b/testing/procps-ng/sysctl.conf
@@ -0,0 +1,42 @@
+# /etc/sysctl.conf - Configuration file for setting system variables
+# See sysctl.conf (5) for information.
+
+# you can have the CD-ROM close when you use it, and open
+# when you are done.
+#dev.cdrom.autoeject = 1
+#dev.cdrom.autoclose = 1
+
+# protection from the SYN flood attack
+net.ipv4.tcp_syncookies = 1
+
+# see the evil packets in your log files
+#net.ipv4.conf.all.log_martians = 1
+
+# if not functioning as a router, there is no need to accept redirects or source routes
+#net.ipv4.conf.all.accept_redirects = 0
+#net.ipv4.conf.all.accept_source_route = 0
+#net.ipv6.conf.all.accept_redirects = 0
+#net.ipv6.conf.all.accept_source_route = 0
+
+# Disable packet forwarding
+net.ipv4.ip_forward = 0
+net.ipv6.conf.all.forwarding = 0
+
+# sets the port range used for outgoing connections
+#net.ipv4.ip_local_port_range = 32768 61000
+
+# Swapping too much or not enough? Disks spinning up when you'd
+# rather they didn't? Tweak these.
+#vm.vfs_cache_pressure = 100
+#vm.laptop_mode = 0
+#vm.swappiness = 60
+
+#kernel.printk_ratelimit_burst = 10
+#kernel.printk_ratelimit = 5
+#kernel.panic_on_oops = 0
+
+# Reboot 600 seconds after a panic
+#kernel.panic = 600
+
+# Disable SysRq key (note: console security issues)
+kernel.sysrq = 0
diff --git a/~coadde/mednafen-wip/PKGBUILD b/~coadde/mednafen-wip/PKGBUILD
new file mode 100755
index 000000000..e7330795b
--- /dev/null
+++ b/~coadde/mednafen-wip/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Hans-Kristian Arntzen <maister@archlinux.us>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: kagan <juanynie@mi.madritel.es>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=mednafen-wip
+pkgver=0.9.22
+pkgrel=1
+pkgdesc="A command-line multi-system gaming emulator, WIP version"
+url="http://mednafen.sourceforge.net/"
+license=(GPL)
+arch=('i686' 'x86_64')
+depends=('libcdio>=0.82' 'libsamplerate' 'libogg' 'libvorbis' 'sdl' 'sdl_net' 'libsndfile' 'zlib')
+makedepends=('pkgconfig' 'mesa')
+conflicts=('mednafen')
+provides=('mednafen')
+source=('http://forum.fobby.net/index.php?t=getfile&id=362&')
+sha1sums=('609d3915f4b65f6a7e77441d26efd744f3149981')
+
+build()
+{
+ cd $srcdir/mednafen
+ ./configure --prefix=/usr
+ make
+}
+
+package()
+{
+ cd $srcdir/mednafen
+ make DESTDIR=$pkgdir install
+}
diff --git a/~emulatorman/timekpr/Initializes_lastNotified_before_it_is_used.patch b/~emulatorman/timekpr/Initializes_lastNotified_before_it_is_used.patch
new file mode 100644
index 000000000..870a2670a
--- /dev/null
+++ b/~emulatorman/timekpr/Initializes_lastNotified_before_it_is_used.patch
@@ -0,0 +1,10 @@
+--- a/timekpr-client.py 2011-04-15 13:17:59.000000000 +0200
++++ b/timekpr-client.py 2011-04-15 13:19:06.000000000 +0200
+@@ -40,6 +40,7 @@
+ self.conffile = self.VAR['TIMEKPRDIR'] + '/' + self.username
+ self.limits, self.bfrom, self.bto = readusersettings(self.username, self.conffile)
+ self.timer = None
++ self.lastNotified = datetime.datetime.fromtimestamp(0);
+ self.checkLimits()
+ #Add a gobject loop to check limits:
+ self.timer = gobject.timeout_add(self.checkInterval * 1000, self.checkLimits)
diff --git a/~emulatorman/timekpr/PKGBUILD b/~emulatorman/timekpr/PKGBUILD
new file mode 100644
index 000000000..2196dd275
--- /dev/null
+++ b/~emulatorman/timekpr/PKGBUILD
@@ -0,0 +1,74 @@
+# Contributor: SanskritFritz (gmail)
+
+pkgname=timekpr
+pkgver=0.3.2
+pkgrel=8
+pkgdesc="Control the computer usage of your user accounts. You can limit their daily usage based on a timed access duration and configure periods of day when they can log in."
+arch=('i686' 'x86_64')
+url=https://launchpad.net/timekpr
+license=('GPL')
+depends=('python2')
+source=(http://launchpad.net/$pkgname/trunk/$pkgver/+download/${pkgname}_${pkgver}~ppa1~ubuntu2.tar.gz
+ timekprd.sh
+ Initializes_lastNotified_before_it_is_used.patch)
+install='timekpr.install'
+md5sums=('0626ee6b6b6d218dfdd6e79331f789a2'
+ 'ab37e469034200c19b46a31d586bfe3e'
+ '23848ef2578571d7dc4871fbd15f41ed')
+
+
+build() {
+ cd ${srcdir}/stable/gui/client
+ # https://bugs.launchpad.net/timekpr/+bug/761647
+ patch -p1 < ${srcdir}/Initializes_lastNotified_before_it_is_used.patch
+}
+
+package() {
+ install -dm755 $pkgdir/etc/{rc.d,timekpr,logrotate.d,xdg/autostart}
+ install -dm755 $pkgdir/usr/{bin,share/{doc/timekpr,timekpr,python-support/timekpr,pixmaps,applications,man/man8}}
+ install -dm755 $pkgdir/usr/share/locale/{da,de,fr,hu,nb,sv,fi}/LC_MESSAGES
+ install -dm755 $pkgdir/var/lib/timekpr
+
+ cd $srcdir/stable
+ install -m644 etc/timekpr.conf $pkgdir/etc/
+ install -m644 etc/logrotate.d/timekpr $pkgdir/etc/logrotate.d/
+ sed -i "s/python/python2/" timekpr
+ install -m755 timekpr $pkgdir/usr/bin/
+ sed -i "s/python/python2/" timekpr-gui
+ install -m755 timekpr-gui $pkgdir/usr/bin/
+ sed -i "s/python/python2/" timekpr-client
+ install -m755 timekpr-client $pkgdir/usr/bin/
+ install -m755 timekprpam.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekpr.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekpr-gui.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 gui/client/timekpr-client.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekprpam.py $pkgdir/usr/share/python-support/timekpr/
+ install -m755 timekprcommon.py $pkgdir/usr/share/python-support/timekpr/
+ install -m644 gui/padlock-green.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/padlock-red.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr.glade $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr100x100.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr32x32.png $pkgdir/usr/share/timekpr/
+ install -m644 gui/timekpr.xpm $pkgdir/usr/share/pixmaps/
+ install -m644 debian/timekpr.desktop $pkgdir/usr/share/applications/
+ install -m644 debian/timekpr-client.desktop $pkgdir/etc/xdg/autostart
+ install -m644 locale/da/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/da/LC_MESSAGES/
+ install -m644 locale/de/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/de/LC_MESSAGES/
+ install -m644 locale/fr/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/fr/LC_MESSAGES/
+ install -m644 locale/hu/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/hu/LC_MESSAGES/
+ install -m644 locale/nb/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/nb/LC_MESSAGES/
+ install -m644 locale/sv/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/sv/LC_MESSAGES/
+ install -m644 locale/fi/LC_MESSAGES/timekpr.mo $pkgdir/usr/share/locale/fi/LC_MESSAGES/
+ install -m644 TODO.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 README.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 COPYRIGHT.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 CONTRIBUTORS.txt $pkgdir/usr/share/doc/timekpr
+ install -m644 debian/changelog $pkgdir/usr/share/doc/timekpr
+ install -m644 doc/timekpr.8 $pkgdir/usr/share/man/man8
+
+ install -m755 debian/timekpr.postrm $pkgdir/usr/bin/
+ install -m755 debian/timekpr.postinst $pkgdir/usr/bin/
+
+ cd $srcdir
+ install -m755 timekprd.sh $pkgdir/etc/rc.d/timekprd
+}
diff --git a/~emulatorman/timekpr/timekpr.install b/~emulatorman/timekpr/timekpr.install
new file mode 100644
index 000000000..b01769c48
--- /dev/null
+++ b/~emulatorman/timekpr/timekpr.install
@@ -0,0 +1,24 @@
+
+post_install() {
+ /usr/bin/timekpr.postinst
+
+ echo "Your su command (gksu|gksudo|kdesu|kdesudo etc) for starting timekpr-gui as root: "
+ read su_command;
+ sed -i "s/gksu/${su_command}/" "/usr/share/applications/timekpr.desktop"
+
+ echo
+ echo "Start the timekpr daemon with '/etc/rc.d/timekprd start'"
+ echo "For permanent use put 'timekprd' into your DAEMONS array."
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ /usr/bin/timekpr.postrm purge
+}
+
+post_remove() {
+ echo "Remove the timekprd entry from your DAEMONS array."
+}
diff --git a/~emulatorman/timekpr/timekprd.sh b/~emulatorman/timekpr/timekprd.sh
new file mode 100755
index 000000000..19e4a3af4
--- /dev/null
+++ b/~emulatorman/timekpr/timekprd.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -x -o %PPID /etc/rc.d/timekprd`
+case "$1" in
+ start)
+ stat_busy "Starting timekpr"
+ [ -z "$PID" ] && /usr/bin/timekpr &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon timekprd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping timekpr"
+ [ ! -z "$PID" ] && killall --user root timekpr &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon timekprd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/~fauno/notmuch/PKGBUILD b/~fauno/notmuch/PKGBUILD
index 3283f3734..1e64e388c 100644
--- a/~fauno/notmuch/PKGBUILD
+++ b/~fauno/notmuch/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Richard Murri <admin@richardmurri.com>
pkgname=notmuch
-pkgver=0.13
+pkgver=0.13.1
pkgrel=1
pkgdesc="Notmuch is not much of an email program"
arch=(i686 x86_64 mips64el)
@@ -19,7 +19,6 @@ optdepends=('emacs: for using the emacs interface'
options=(!distcc !makeflags)
source=("http://notmuchmail.org/releases/${pkgname}-${pkgver}.tar.gz")
-md5sums=('d5a70ed3ba84a2670b4576cfe16bd4f6')
build() {
cd "$srcdir/${pkgname}-"*
@@ -62,4 +61,8 @@ package(){
cd $srcdir/${pkgname}-*/bindings/ruby
sed -i -e 's,/site_ruby,,g' Makefile
make prefix=${pkgdir}/usr install
+
+# Remove conflicting zsh completion
+ rm -r ${pkgdir}/usr/share/zsh
}
+md5sums=('1380d4b010e4321288a48ef09edf9de2')
diff --git a/~fauno/pandoc/PKGBUILD b/~fauno/pandoc/PKGBUILD
index 875e6bb0a..56b9567f8 100644
--- a/~fauno/pandoc/PKGBUILD
+++ b/~fauno/pandoc/PKGBUILD
@@ -1,16 +1,21 @@
# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
# Based on haskell-pandoc
+# Run `makepkg -srp SRCBUILD` if you want to update the source tarball
+
pkgname=pandoc
-pkgver=1.9.1.2
-pkgrel=2
+pkgver=1.9.3
+pkgrel=1
pkgdesc='Conversion between markup formats (no Haskell libs)'
url='http://johnmacfarlane.net/pandoc/'
license=('GPL')
arch=('i686' 'x86_64')
makedepends=('ghc' 'sh' 'cabal-install')
options=('strip')
-source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz{,.sig})
+source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz{,.sig} SRCBUILD)
+md5sums=('944f2b32803b0335345853cd2b1c1ad7'
+ '0ee3190fd7d43bcfebdb282ff12584f2'
+ 'ecc040d30c6e4fb77c32d598dd03729d')
conflicts=('haskell-pandoc')
# PKGBUILD functions
@@ -55,5 +60,3 @@ package() {
find ${pkgdir}/usr/share -type f -exec chmod 644 {} \;
find ${pkgdir}/usr/share -type d -exec chmod 755 {} \;
}
-md5sums=('f377f51be658821876e49e5485d47219'
- 'd08ee033440f16c30b2b8b6b80ae12c7')
diff --git a/~fauno/pandoc/SRCBUILD b/~fauno/pandoc/SRCBUILD
index 09b154d7a..5ef2b9dc1 100644
--- a/~fauno/pandoc/SRCBUILD
+++ b/~fauno/pandoc/SRCBUILD
@@ -2,8 +2,8 @@
# Based on haskell-pandoc
pkgname=pandoc
-pkgver=1.9.1.2
-pkgrel=2
+pkgver=1.9.3
+pkgrel=1
pkgdesc='Conversion between markup formats (no Haskell libs)'
url='http://johnmacfarlane.net/pandoc/'
license=('GPL')
diff --git a/~lukeshu/parabolaweb-git/parabolaweb.install b/~lukeshu/parabolaweb-git/parabolaweb.install
deleted file mode 100644
index 53374ccc3..000000000
--- a/~lukeshu/parabolaweb-git/parabolaweb.install
+++ /dev/null
@@ -1,65 +0,0 @@
-# These will make it install into /http/srv/web
-_install_dir='/srv/http'
-_gitname='web'
-
-_gitroot='https://projects.parabolagnulinux.org/parabolaweb.git'
-_gitbranch='master'
-
-msg() {
- echo $@
-}
-
-_main() {
- set -e
- if [ ! -d "$_install_dir" ]; then
- mkdir "$_install_dir"
- fi
- cd "$_install_dir"
-
- msg "Connecting to GIT server...."
- if [ -d ${_gitname} ] ; then
- cd ${_gitname}
- git pull ${_gitroot}
- msg "The local files are updated."
- else
- git clone ${_gitroot} ${_gitname}
- cd ${_gitname}
- fi
- git checkout ${_gitbranch}
- msg "GIT checkout done or server timeout"
-
- msg "Checking configuration...."
- if [ ! -f local_settings.py ]; then
- cp local_settings.py.example local_settings.py.tmp
- $EDITOR local_settings.py.tmp
- mv local_settings.py.tmp local_settings.py
- msg "Creating database...."
- ./manage.py syncdb
- fi
-
- msg "Purging old .pyc files...."
- find . -name '*.pyc' -delete
-
- msg "Updating database...."
- ./manage.py migrate
- ./manage.py loaddata */fixtures/*.json
-
- msg "Checking media/admin_media symlink...."
- if [ ! -e media/admin-media ]; then
- rm media/admin_media
- ln -s /usr/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media
- fi
-}
-
-# arg 1: the new package version
-post_install() {
- _main
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- _main
-}
-
-# vim:set ts=2 sw=2 et: