From 9598f5141ea75ffa72a3c7c85639c6f296020ef1 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 20 Oct 2012 01:22:20 -0700 Subject: Sat Oct 20 01:22:19 PDT 2012 --- staging/kdelibs3/PKGBUILD | 97 +++ staging/kdelibs3/acinclude.patch | 66 ++ staging/kdelibs3/kconf_updaterc | 2 + staging/kdelibs3/kde3.profile | 6 + staging/kdelibs3/kde4-compatibility.patch | 1012 +++++++++++++++++++++++ staging/kdelibs3/kdelibs3-cups16.patch | 724 ++++++++++++++++ staging/kdelibs3/kdelibs3-missing-include.patch | 10 + staging/kdelibs3/kdelibs3.install | 12 + staging/kdelibs3/openssl.patch | 180 ++++ 9 files changed, 2109 insertions(+) create mode 100644 staging/kdelibs3/PKGBUILD create mode 100644 staging/kdelibs3/acinclude.patch create mode 100644 staging/kdelibs3/kconf_updaterc create mode 100755 staging/kdelibs3/kde3.profile create mode 100644 staging/kdelibs3/kde4-compatibility.patch create mode 100644 staging/kdelibs3/kdelibs3-cups16.patch create mode 100644 staging/kdelibs3/kdelibs3-missing-include.patch create mode 100644 staging/kdelibs3/kdelibs3.install create mode 100644 staging/kdelibs3/openssl.patch (limited to 'staging/kdelibs3') diff --git a/staging/kdelibs3/PKGBUILD b/staging/kdelibs3/PKGBUILD new file mode 100644 index 000000000..107727721 --- /dev/null +++ b/staging/kdelibs3/PKGBUILD @@ -0,0 +1,97 @@ +# $Id: PKGBUILD 169353 2012-10-20 02:30:14Z eric $ +# Maintainer: Eric BĂ©langer +# Contributor: Pierre Schmitz +# Contributor: Tobias Powalowski + +pkgname=kdelibs3 +pkgver=3.5.10 +pkgrel=15 +pkgdesc='KDE3 Core Libraries' +arch=('i686' 'x86_64') +url='http://www.kde.org' +license=('GPL' 'LGPL') +depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups' 'jasper' + 'libidn' 'openexr' 'aspell' 'qt3' 'ca-certificates') +makedepends=('cups' 'hspell') +optdepends=('hspell: for Hebrew spell-checking support') +options=('libtool' '!makeflags') +install=kdelibs3.install +source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2" + 'ftp://ftp.archlinux.org/other/kde/kde-3.5-1074156.patch.gz' + 'acinclude.patch' + 'kde3.profile' + 'kde4-compatibility.patch' + 'kconf_updaterc' + 'openssl.patch' + 'kdelibs3-missing-include.patch' + 'kdelibs3-cups16.patch') +sha1sums=('c930a25f4419134def55b8466c3a6f737227fb82' + 'c8ca21e4848a627760746d0a8a64bf4f90684c3e' + '50c9de71b102507fb78b192ecc22a5fc3e031bc3' + 'fbd6e773edf3e8bb8e1272629984025e041da2ca' + '5fbbf7a5e2032878815fa055bfb5020f478d2b25' + '35e56fe4c5f71685e64b13f448dcacc620166e06' + '50e92950498463defb9149ffcf8cbc2e8cd1063b' + 'e5f5b8c060a2db9cedb82bf18caadfa869921779' + '6a6c544b3336bfe89bb17ef737d783a7ec006c6c') + +build() { + cd "$srcdir"/kdelibs-${pkgver} + + . /etc/profile.d/qt3.sh + . "$srcdir"/kde3.profile + + patch -p0 -i "$srcdir"/kde-3.5-1074156.patch + patch -p1 -i "$srcdir"/acinclude.patch + patch -p1 -i "$srcdir"/kde4-compatibility.patch + patch -p1 -i "${srcdir}"/openssl.patch + patch -p0 -i "$srcdir"/kdelibs3-missing-include.patch + patch -p1 -i "${srcdir}"/kdelibs3-cups16.patch + + sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh + make -f admin/Makefile.common cvs + + ./configure --prefix=/opt/kde \ + --with-distribution='Arch Linux' \ + --with-alsa \ + --disable-debug \ + --disable-dnssd \ + --disable-dnotify \ + --enable-inotify \ + --enable-sendfile \ + --without-lua \ + --with-hspell \ + --enable-gcc-hidden-visibility \ + --enable-final \ + --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \ + --without-arts \ + --disable-libfam + make +} + +package() { + cd "$srcdir"/kdelibs-${pkgver} + + make DESTDIR="$pkgdir" install + + # disable broken kconf_update by default + install -D -m644 "$srcdir"/kconf_updaterc \ + "$pkgdir"/opt/kde/share/config/kconf_updaterc + + # install KDE3 profile + install -D -m755 "$srcdir"/kde3.profile "$pkgdir"/etc/profile.d/kde3.sh + # make KDE3 styles available to Qt3 + install -d -m755 "$pkgdir"/opt/qt/plugins + ln -sf /opt/kde/lib/kde3/plugins/styles "$pkgdir"/opt/qt/plugins/styles + + # cert bundle seems to be hardcoded + # link it to the one from ca-certificates + rm -f "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "$pkgdir"/opt/kde/share/apps/kssl/ca-bundle.crt + + # we don't have khelpcenter anyway + rm -rf "$pkgdir"/opt/kde/share/doc + + install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/ + echo '/opt/kde/lib' > "${pkgdir}"/etc/ld.so.conf.d/kdelibs3.conf +} diff --git a/staging/kdelibs3/acinclude.patch b/staging/kdelibs3/acinclude.patch new file mode 100644 index 000000000..0610d6df5 --- /dev/null +++ b/staging/kdelibs3/acinclude.patch @@ -0,0 +1,66 @@ +2009-12-10 Stepan Kasal + +The change of implementation of AC_REQUIRE in 2.64 caused a regression +in the arts project. +This can be fixed by shuffling some macro calls. + +I suppose that most of this patch will not be needed with a future +release of Autoconf. +But the last chunk of this patch is a real bug in this source and +should go upstream. + +--- arts-1.5.10/admin/acinclude.m4.in 2008-08-20 18:07:05.000000000 +0200 ++++ arts-1.5.10/admin/acinclude.m4.in 2009-12-09 17:30:57.000000000 +0100 +@@ -3081,8 +3081,18 @@ + fi + ]) + ++AC_DEFUN([AC_CHECK_COMPILERS_CC], ++[ ++ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS ++ CFLAGS=" $CFLAGS" ++ AC_PROG_CC ++ CXXFLAGS=" $CXXFLAGS" ++ AC_PROG_CXX ++]) ++ + AC_DEFUN([AC_CHECK_COMPILERS], + [ ++ AC_REQUIRE([AC_CHECK_COMPILERS_CC]) + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ +@@ -3141,11 +3151,6 @@ + [kde_use_profiling="no"] + ) + +- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS +- CFLAGS=" $CFLAGS" +- +- AC_PROG_CC +- + AC_PROG_CPP + + if test "$GCC" = "yes"; then +@@ -3174,10 +3179,6 @@ + LDFLAGS="" + fi + +- CXXFLAGS=" $CXXFLAGS" +- +- AC_PROG_CXX +- + KDE_CHECK_FOR_BAD_COMPILER + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then +@@ -3503,8 +3504,8 @@ + AC_REQUIRE([AC_LIBTOOL_DLOPEN]) + AC_REQUIRE([KDE_CHECK_LIB64]) + +-AC_OBJEXT +-AC_EXEEXT ++AC_REQUIRE([AC_OBJEXT]) ++AC_REQUIRE([AC_EXEEXT]) + + AM_PROG_LIBTOOL + AC_LIBTOOL_CXX diff --git a/staging/kdelibs3/kconf_updaterc b/staging/kdelibs3/kconf_updaterc new file mode 100644 index 000000000..24c2623fb --- /dev/null +++ b/staging/kdelibs3/kconf_updaterc @@ -0,0 +1,2 @@ +updateInfoAdded=false +autoUpdateDisabled=true diff --git a/staging/kdelibs3/kde3.profile b/staging/kdelibs3/kde3.profile new file mode 100755 index 000000000..ef09631ff --- /dev/null +++ b/staging/kdelibs3/kde3.profile @@ -0,0 +1,6 @@ +export PATH=$PATH:/opt/kde/bin +if [ ! -z $XDG_DATA_DIRS ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/kde/share +else + export XDG_DATA_DIRS=/opt/kde/share +fi diff --git a/staging/kdelibs3/kde4-compatibility.patch b/staging/kdelibs3/kde4-compatibility.patch new file mode 100644 index 000000000..129c314ae --- /dev/null +++ b/staging/kdelibs3/kde4-compatibility.patch @@ -0,0 +1,1012 @@ +diff -Nura kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10.new/kdecore/kcrash.cpp +--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100 ++++ kdelibs-3.5.10.new/kdecore/kcrash.cpp 2009-08-06 06:18:06.000000000 +0200 +@@ -158,7 +158,7 @@ + int i = 0; + + // argument 0 has to be drkonqi +- argv[i++] = "drkonqi"; ++ argv[i++] = "/usr/lib/kde4/libexec/drkonqi"; + + #if defined Q_WS_X11 + // start up on the correct display +@@ -325,7 +325,7 @@ + _exit(253); + if(!geteuid() && setuid(getuid()) < 0) + _exit(253); +- execvp("drkonqi", const_cast< char** >( argv )); ++ execvp("/usr/lib/kde4/libexec/drkonqi", const_cast< char** >( argv )); + _exit(errno); + } + else +diff -Nura kdelibs-3.5.10/kded/Makefile.am kdelibs-3.5.10.new/kded/Makefile.am +--- kdelibs-3.5.10/kded/Makefile.am 2005-10-10 17:06:29.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.am 2009-08-06 06:21:37.000000000 +0200 +@@ -58,7 +58,7 @@ + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) + +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update +diff -Nura kdelibs-3.5.10/kded/Makefile.in kdelibs-3.5.10.new/kded/Makefile.in +--- kdelibs-3.5.10/kded/Makefile.in 2008-08-20 18:05:57.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/Makefile.in 2009-08-06 06:22:19.000000000 +0200 +@@ -535,7 +535,7 @@ + + servicetype_DATA = kdedmodule.desktop + servicetypedir = $(kde_servicetypesdir) +-xdg_menu_DATA = applications.menu ++xdg_menu_DATA = kde-applications.menu + update_DATA = kded.upd + updatedir = $(kde_datadir)/kconf_update + #>- all: all-am +@@ -1173,7 +1173,7 @@ + -rm -f kded.moc vfolder_menu.moc kdedmodule.moc kbuildsycoca.moc + + #>+ 2 +-KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am ++KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h kde-applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am + + #>+ 2 + docs-am: +diff -Nura kdelibs-3.5.10/kded/applications.menu kdelibs-3.5.10.new/kded/applications.menu +--- kdelibs-3.5.10/kded/applications.menu 2005-09-10 10:27:40.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/applications.menu 1970-01-01 01:00:00.000000000 +0100 +@@ -1,469 +0,0 @@ +- +- +- +- Applications +- kde-main.directory +- +- +- +- +- +- +- +- +- More +- +- +- +- Applications +- +- +- +- +- Applications +- kde-unknown.directory +- +- +- +- +- +- Core +- KDE +- +- +- X-SuSE-YaST +- +- +- +- +- Development +- kde-development.directory +- +- X-KDE-KDevelopIDE +- kde-development-kdevelop.directory +- +- +- Development +- X-KDE-KDevelopIDE +- +- +- +- +- Translation +- kde-development-translation.directory +- +- +- Development +- Translation +- +- +- +- +- Web Development +- kde-development-webdevelopment.directory +- +- +- Development +- WebDevelopment +- +- +- +- +- +- Development +- X-KDE-KDevelopIDE +- Translation +- WebDevelopment +- +- +- +- +- Science +- kde-science.directory +- +- +- +- Astronomy +- Biology +- Chemistry +- Geology +- MedicalSoftware +- Physics +- Math +- Science +- +- Education +- +- +- +- +- Edutainment +- kde-edutainment.directory +- +- Languages +- kde-edu-languages.directory +- +- +- Education +- +- Languages +- X-KDE-Edu-Language +- +- +- +- +- +- Mathematics +- kde-edu-mathematics.directory +- +- +- Education +- Math +- +- +- +- +- Miscellaneous +- kde-edu-miscellaneous.directory +- +- +- Education +- +- Languages +- X-KDE-Edu-Language +- Math +- Science +- Teaching +- X-KDE-Edu-Teaching +- +- +- +- +- +- Science +- kde-edu-science.directory +- +- +- Education +- Science +- +- +- +- +- Tools +- kde-edu-tools.directory +- +- +- Education +- +- Teaching +- X-KDE-Edu-Teaching +- +- +- +- +- +- +- Games +- kde-games.directory +- +- Arcade +- kde-games-arcade.directory +- +- +- Game +- ArcadeGame +- +- +- +- +- Board +- kde-games-board.directory +- +- +- Game +- BoardGame +- +- +- +- +- Card +- kde-games-card.directory +- +- +- Game +- CardGame +- +- +- +- +- Kidsgames +- kde-games-kids.directory +- +- +- Game +- +- X-KDE-KidsGame +- KidsGame +- +- +- +- +- +- TacticStrategy +- kde-games-strategy.directory +- +- +- Game +- StrategyGame +- +- +- +- +- +- Game +- +- ArcadeGame +- BoardGame +- CardGame +- X-KDE-KidsGame +- KidsGame +- StrategyGame +- +- +- +- +- Toys +- kde-toys.directory +- +- Amusement +- +- +- +- +- Graphics +- kde-graphics.directory +- +- +- Graphics +- X-KDE-More +- +- +- +- More +- kde-more.directory +- +- +- Graphics +- X-KDE-More +- +- +- +- +- +- Internet +- kde-internet.directory +- +- +- Network +- X-KDE-More +- +- +- +- Terminal +- kde-internet-terminal.directory +- +- +- More +- kde-more.directory +- +- +- Network +- X-KDE-More +- +- +- +- +- +- Multimedia +- kde-multimedia.directory +- +- +- AudioVideo +- X-KDE-More +- +- +- +- More +- kde-more.directory +- +- +- AudioVideo +- X-KDE-More +- +- +- +- +- +- Office +- kde-office.directory +- +- +- kde-koshell.desktop +- kde-Kontact.desktop +- +- kde-kword.desktop +- kde-kspread.desktop +- kde-kpresenter.desktop +- +- +- More +- +- +- +- Office +- X-KDE-More +- +- +- +- More +- kde-more.directory +- +- +- Office +- X-KDE-More +- +- +- +- +- +- Settingsmenu +- kde-settingsmenu.directory +- +- Settings +- +- +- +- System +- kde-system.directory +- +- +- System +- X-KDE-More +- +- +- +- More +- kde-more.directory +- +- +- System +- X-KDE-More +- +- +- +- +- ScreenSavers +- kde-system-screensavers.directory +- +- +- Terminal +- kde-system-terminal.directory +- +- +- +- Utilities +- kde-utilities.directory +- +- +- Utility +- Accessibility +- X-KDE-Utilities-Desktop +- X-KDE-Utilities-File +- X-KDE-Utilities-Peripherals +- X-KDE-Utilities-PIM +- X-KDE-More +- +- +- +- Accessibility +- kde-utilities-accessibility.directory +- +- +- Utility +- Accessibility +- +- +- +- +- Desktop +- kde-utilities-desktop.directory +- +- +- Utility +- X-KDE-Utilities-Desktop +- +- +- +- +- Editors +- kde-editors.directory +- +- TextEditor +- +- +- +- File +- kde-utilities-file.directory +- +- +- Utility +- X-KDE-Utilities-File +- +- +- +- +- Peripherals +- kde-utilities-peripherals.directory +- +- +- Utility +- X-KDE-Utilities-Peripherals +- +- +- +- +- PIM +- kde-utilities-pim.directory +- +- +- Utility +- X-KDE-Utilities-PIM +- +- +- +- +- XUtilities +- kde-utilities-xutils.directory +- +- +- More +- kde-more.directory +- +- +- Utility +- X-KDE-More +- +- +- +- +- +- +- KDE +- Core +- +- +- +- applications-kmenuedit.menu +- +diff -Nura kdelibs-3.5.10/kded/kbuildsycoca.cpp kdelibs-3.5.10.new/kded/kbuildsycoca.cpp +--- kdelibs-3.5.10/kded/kbuildsycoca.cpp 2007-05-14 09:52:43.000000000 +0200 ++++ kdelibs-3.5.10.new/kded/kbuildsycoca.cpp 2009-08-06 06:23:48.000000000 +0200 +@@ -379,7 +379,7 @@ + connect(g_vfolder, SIGNAL(newService(const QString &, KService **)), + this, SLOT(slotCreateEntry(const QString &, KService **))); + +- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true); ++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true); + + KServiceGroup *entry = g_bsgf->addNew("/", kdeMenu->directoryFile, 0, false); + entry->setLayoutInfo(kdeMenu->layoutList); +diff -Nura kdelibs-3.5.10/kded/kde-applications.menu kdelibs-3.5.10.new/kded/kde-applications.menu +--- kdelibs-3.5.10/kded/kde-applications.menu 1970-01-01 01:00:00.000000000 +0100 ++++ kdelibs-3.5.10.new/kded/kde-applications.menu 2005-09-10 10:27:40.000000000 +0200 +@@ -0,0 +1,469 @@ ++ ++ ++ ++ Applications ++ kde-main.directory ++ ++ ++ ++ ++ ++ ++ ++ ++ More ++ ++ ++ ++ Applications ++ ++ ++ ++ ++ Applications ++ kde-unknown.directory ++ ++ ++ ++ ++ ++ Core ++ KDE ++ ++ ++ X-SuSE-YaST ++ ++ ++ ++ ++ Development ++ kde-development.directory ++ ++ X-KDE-KDevelopIDE ++ kde-development-kdevelop.directory ++ ++ ++ Development ++ X-KDE-KDevelopIDE ++ ++ ++ ++ ++ Translation ++ kde-development-translation.directory ++ ++ ++ Development ++ Translation ++ ++ ++ ++ ++ Web Development ++ kde-development-webdevelopment.directory ++ ++ ++ Development ++ WebDevelopment ++ ++ ++ ++ ++ ++ Development ++ X-KDE-KDevelopIDE ++ Translation ++ WebDevelopment ++ ++ ++ ++ ++ Science ++ kde-science.directory ++ ++ ++ ++ Astronomy ++ Biology ++ Chemistry ++ Geology ++ MedicalSoftware ++ Physics ++ Math ++ Science ++ ++ Education ++ ++ ++ ++ ++ Edutainment ++ kde-edutainment.directory ++ ++ Languages ++ kde-edu-languages.directory ++ ++ ++ Education ++ ++ Languages ++ X-KDE-Edu-Language ++ ++ ++ ++ ++ ++ Mathematics ++ kde-edu-mathematics.directory ++ ++ ++ Education ++ Math ++ ++ ++ ++ ++ Miscellaneous ++ kde-edu-miscellaneous.directory ++ ++ ++ Education ++ ++ Languages ++ X-KDE-Edu-Language ++ Math ++ Science ++ Teaching ++ X-KDE-Edu-Teaching ++ ++ ++ ++ ++ ++ Science ++ kde-edu-science.directory ++ ++ ++ Education ++ Science ++ ++ ++ ++ ++ Tools ++ kde-edu-tools.directory ++ ++ ++ Education ++ ++ Teaching ++ X-KDE-Edu-Teaching ++ ++ ++ ++ ++ ++ ++ Games ++ kde-games.directory ++ ++ Arcade ++ kde-games-arcade.directory ++ ++ ++ Game ++ ArcadeGame ++ ++ ++ ++ ++ Board ++ kde-games-board.directory ++ ++ ++ Game ++ BoardGame ++ ++ ++ ++ ++ Card ++ kde-games-card.directory ++ ++ ++ Game ++ CardGame ++ ++ ++ ++ ++ Kidsgames ++ kde-games-kids.directory ++ ++ ++ Game ++ ++ X-KDE-KidsGame ++ KidsGame ++ ++ ++ ++ ++ ++ TacticStrategy ++ kde-games-strategy.directory ++ ++ ++ Game ++ StrategyGame ++ ++ ++ ++ ++ ++ Game ++ ++ ArcadeGame ++ BoardGame ++ CardGame ++ X-KDE-KidsGame ++ KidsGame ++ StrategyGame ++ ++ ++ ++ ++ Toys ++ kde-toys.directory ++ ++ Amusement ++ ++ ++ ++ ++ Graphics ++ kde-graphics.directory ++ ++ ++ Graphics ++ X-KDE-More ++ ++ ++ ++ More ++ kde-more.directory ++ ++ ++ Graphics ++ X-KDE-More ++ ++ ++ ++ ++ ++ Internet ++ kde-internet.directory ++ ++ ++ Network ++ X-KDE-More ++ ++ ++ ++ Terminal ++ kde-internet-terminal.directory ++ ++ ++ More ++ kde-more.directory ++ ++ ++ Network ++ X-KDE-More ++ ++ ++ ++ ++ ++ Multimedia ++ kde-multimedia.directory ++ ++ ++ AudioVideo ++ X-KDE-More ++ ++ ++ ++ More ++ kde-more.directory ++ ++ ++ AudioVideo ++ X-KDE-More ++ ++ ++ ++ ++ ++ Office ++ kde-office.directory ++ ++ ++ kde-koshell.desktop ++ kde-Kontact.desktop ++ ++ kde-kword.desktop ++ kde-kspread.desktop ++ kde-kpresenter.desktop ++ ++ ++ More ++ ++ ++ ++ Office ++ X-KDE-More ++ ++ ++ ++ More ++ kde-more.directory ++ ++ ++ Office ++ X-KDE-More ++ ++ ++ ++ ++ ++ Settingsmenu ++ kde-settingsmenu.directory ++ ++ Settings ++ ++ ++ ++ System ++ kde-system.directory ++ ++ ++ System ++ X-KDE-More ++ ++ ++ ++ More ++ kde-more.directory ++ ++ ++ System ++ X-KDE-More ++ ++ ++ ++ ++ ScreenSavers ++ kde-system-screensavers.directory ++ ++ ++ Terminal ++ kde-system-terminal.directory ++ ++ ++ ++ Utilities ++ kde-utilities.directory ++ ++ ++ Utility ++ Accessibility ++ X-KDE-Utilities-Desktop ++ X-KDE-Utilities-File ++ X-KDE-Utilities-Peripherals ++ X-KDE-Utilities-PIM ++ X-KDE-More ++ ++ ++ ++ Accessibility ++ kde-utilities-accessibility.directory ++ ++ ++ Utility ++ Accessibility ++ ++ ++ ++ ++ Desktop ++ kde-utilities-desktop.directory ++ ++ ++ Utility ++ X-KDE-Utilities-Desktop ++ ++ ++ ++ ++ Editors ++ kde-editors.directory ++ ++ TextEditor ++ ++ ++ ++ File ++ kde-utilities-file.directory ++ ++ ++ Utility ++ X-KDE-Utilities-File ++ ++ ++ ++ ++ Peripherals ++ kde-utilities-peripherals.directory ++ ++ ++ Utility ++ X-KDE-Utilities-Peripherals ++ ++ ++ ++ ++ PIM ++ kde-utilities-pim.directory ++ ++ ++ Utility ++ X-KDE-Utilities-PIM ++ ++ ++ ++ ++ XUtilities ++ kde-utilities-xutils.directory ++ ++ ++ More ++ kde-more.directory ++ ++ ++ Utility ++ X-KDE-More ++ ++ ++ ++ ++ ++ ++ KDE ++ Core ++ ++ ++ ++ applications-kmenuedit.menu ++ diff --git a/staging/kdelibs3/kdelibs3-cups16.patch b/staging/kdelibs3/kdelibs3-cups16.patch new file mode 100644 index 000000000..6736d49d3 --- /dev/null +++ b/staging/kdelibs3/kdelibs3-cups16.patch @@ -0,0 +1,724 @@ +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/cupsdconf2/cupsdconf.cpp 2012-10-06 15:08:17.460612585 -0400 +@@ -629,26 +629,26 @@ + cups_lang_t* lang = cupsLangDefault(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_PRINTERS; ++ ippSetOperation(request_, CUPS_GET_PRINTERS); + request_ = cupsDoRequest(http_, request_, "/printers/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new printer (keep only local non-implicit printers) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !(type & CUPS_PRINTER_IMPLICIT) && !name.isEmpty()) + resources_.append(new CupsResource("/printers/"+name)); +@@ -658,26 +658,26 @@ + request_ = ippNew(); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, cupsLangEncoding(lang)); + ippAddString(request_, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, lang->language); +- request_->request.op.operation_id = CUPS_GET_CLASSES; ++ ippSetOperation(request_, CUPS_GET_CLASSES); + request_ = cupsDoRequest(http_, request_, "/classes/"); + if (request_) + { + QString name; + int type(0); +- ipp_attribute_t *attr = request_->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); + while (attr) + { + // check new class (keep only local classes) +- if (!attr->name) ++ if (!ippGetName(attr)) + { + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); + name = ""; + type = 0; + } +- else if (strcmp(attr->name, "printer-name") == 0) name = attr->values[0].string.text; +- else if (strcmp(attr->name, "printer-type") == 0) type = attr->values[0].integer; +- attr = attr->next; ++ else if (strcmp(ippGetName(attr), "printer-name") == 0) name = ippGetString(attr, 0, NULL); ++ else if (strcmp(ippGetName(attr), "printer-type") == 0) type = ippGetInteger(attr, 0); ++ attr = ippNextAttribute(request_); + } + if (!(type & CUPS_PRINTER_REMOTE) && !name.isEmpty()) + resources_.append(new CupsResource("/classes/"+name)); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.cpp 2012-10-06 15:12:00.919127451 -0400 +@@ -51,32 +51,34 @@ + kdDebug(500) << "Null request" << endl; + return; + } +- kdDebug(500) << "State = 0x" << QString::number(req->state, 16) << endl; +- kdDebug(500) << "ID = 0x" << QString::number(req->request.status.request_id, 16) << endl; ++ kdDebug(500) << "State = 0x" << QString::number(ippGetState(req), 16) << endl; ++ kdDebug(500) << "ID = 0x" << QString::number(ippGetRequestId(req), 16) << endl; + if (answer) + { +- kdDebug(500) << "Status = 0x" << QString::number(req->request.status.status_code, 16) << endl; +- kdDebug(500) << "Status message = " << ippErrorString(req->request.status.status_code) << endl; ++ kdDebug(500) << "Status = 0x" << QString::number(ippGetStatusCode(req), 16) << endl; ++ kdDebug(500) << "Status message = " << ippErrorString(ippGetStatusCode(req)) << endl; + } + else +- kdDebug(500) << "Operation = 0x" << QString::number(req->request.op.operation_id, 16) << endl; +- kdDebug(500) << "Version = " << (int)(req->request.status.version[0]) << "." << (int)(req->request.status.version[1]) << endl; ++ kdDebug(500) << "Operation = 0x" << QString::number(ippGetOperation(req), 16) << endl; ++ int minorVersion; ++ int majorVersion = ippGetVersion(req, &minorVersion); ++ kdDebug(500) << "Version = " << (int)(majorVersion) << "." << (int)(minorVersion) << endl; + kdDebug(500) << endl; + +- ipp_attribute_t *attr = req->attrs; ++ ipp_attribute_t *attr = ippFirstAttribute(req); + while (attr) + { +- QString s = QString::fromLatin1("%1 (0x%2) = ").arg(attr->name).arg(attr->value_tag, 0, 16); +- for (int i=0;inum_values;i++) ++ QString s = QString::fromLatin1("%1 (0x%2) = ").arg(ippGetName(attr)).arg(ippGetValueTag(attr), 0, 16); ++ for (int i=0;ivalue_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- s += ("0x"+QString::number(attr->values[i].integer, 16)); ++ s += ("0x"+QString::number(ippGetInteger(attr, i), 16)); + break; + case IPP_TAG_BOOLEAN: +- s += (attr->values[i].boolean ? "true" : "false"); ++ s += (ippGetBoolean(attr, i) ? "true" : "false"); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXT: +@@ -88,16 +90,16 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- s += attr->values[i].string.text; ++ s += ippGetString(attr, i, NULL); + break; + default: + break; + } +- if (i != (attr->num_values-1)) ++ if (i != (ippGetCount(attr)-1)) + s += ", "; + } + kdDebug(500) << s << endl; +- attr = attr->next; ++ attr = ippNextAttribute(req); + } + } + +@@ -177,7 +179,7 @@ + ipp_attribute_t *attr = ippAddStrings(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL,NULL); + int i(0); + for (QStringList::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].string.text = strdup((*it).local8Bit()); ++ ippSetString(request_, &attr, i, strdup((*it).local8Bit())); + } + } + +@@ -193,7 +195,7 @@ + ipp_attribute_t *attr = ippAddIntegers(request_,(ipp_tag_t)group,(ipp_tag_t)type,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].integer = *it; ++ ippSetInteger(request_, &attr, i, *it); + } + } + +@@ -209,19 +211,19 @@ + ipp_attribute_t *attr = ippAddBooleans(request_,(ipp_tag_t)group,name.latin1(),(int)(values.count()),NULL); + int i(0); + for (QValueList::ConstIterator it=values.begin(); it != values.end(); ++it, i++) +- attr->values[i].boolean = (char)(*it); ++ ippSetBoolean(request_, &attr, i, (char)(*it)); + } + } + + void IppRequest::setOperation(int op) + { +- request_->request.op.operation_id = (ipp_op_t)op; +- request_->request.op.request_id = 1; // 0 is not RFC-compliant, should be at least 1 ++ ippSetOperation(request_, (ipp_op_t)op); ++ ippSetRequestId(request_, 1); // 0 is not RFC-compliant, should be at least 1 + } + + int IppRequest::status() + { +- return (request_ ? request_->request.status.status_code : (connect_ ? cupsLastError() : -2)); ++ return (request_ ? ippGetStatusCode(request_) : (connect_ ? cupsLastError() : -2)); + } + + QString IppRequest::statusMessage() +@@ -248,7 +250,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = attr->values[0].integer; ++ value = ippGetInteger(attr, 0); + return true; + } + else return false; +@@ -260,7 +262,7 @@ + ipp_attribute_t *attr = ippFindAttribute(request_, name.latin1(), (ipp_tag_t)type); + if (attr) + { +- value = QString::fromLocal8Bit(attr->values[0].string.text); ++ value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + return true; + } + else return false; +@@ -273,8 +275,8 @@ + values.clear(); + if (attr) + { +- for (int i=0;inum_values;i++) +- values.append(QString::fromLocal8Bit(attr->values[i].string.text)); ++ for (int i=0;ivalues[0].boolean; ++ value = (bool)ippGetBoolean(attr, 0); + return true; + } + else return false; +@@ -338,10 +340,10 @@ + } + + /* No printers found */ +- if ( request_ && request_->request.status.status_code == 0x406 ) ++ if ( request_ && ippGetStatusCode(request_) == 0x406 ) + return true; + +- if (!request_ || request_->state == IPP_ERROR || (request_->request.status.status_code & 0x0F00)) ++ if (!request_ || ippGetState(request_) == IPP_ERROR || (ippGetStatusCode(request_) & 0x0F00)) + return false; + + +@@ -356,36 +358,36 @@ + output << "" << i18n("Attribute") << "" << endl; + output << "" << i18n("Values") << "" << endl; + // go to the first attribute of the specified group +- ipp_attribute_t *attr = request_->attrs; +- while (attr && attr->group_tag != group) +- attr = attr->next; ++ ipp_attribute_t *attr = ippFirstAttribute(request_); ++ while (attr && ippGetGroupTag(attr) != group) ++ attr = ippNextAttribute(request_); + // print each attribute +- ipp_uchar_t *d; +- QCString dateStr; +- QDateTime dt; +- bool bg(false); +- while (attr && attr->group_tag == group) ++ const ipp_uchar_t *d; ++ QCString dateStr; ++ QDateTime dt; ++ bool bg(false); ++ while (attr && ippGetGroupTag(attr) == group) + { +- output << " \n " << attr->name << "\n " << endl; ++ output << " \n " << ippGetName(attr) << "\n " << endl; + bg = !bg; +- for (int i=0; inum_values; i++) ++ for (int i=0; ivalue_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: +- if (attr->name && strstr(attr->name, "time")) ++ if (ippGetName(attr) && strstr(ippGetName(attr), "time")) + { +- dt.setTime_t((unsigned int)(attr->values[i].integer)); ++ dt.setTime_t((unsigned int)(ippGetInteger(attr, i))); + output << dt.toString(); + } + else +- output << attr->values[i].integer; ++ output << ippGetInteger(attr, i); + break; + case IPP_TAG_ENUM: +- output << "0x" << hex << attr->values[i].integer << dec; ++ output << "0x" << hex << ippGetInteger(attr, i) << dec; + break; + case IPP_TAG_BOOLEAN: +- output << (attr->values[i].boolean ? i18n("True") : i18n("False")); ++ output << (ippGetBoolean(attr, i) ? i18n("True") : i18n("False")); + break; + case IPP_TAG_STRING: + case IPP_TAG_TEXTLANG: +@@ -397,18 +399,25 @@ + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: + case IPP_TAG_MIMETYPE: +- output << attr->values[i].string.text; ++ output << ippGetString(attr, i, NULL); + break; + case IPP_TAG_RESOLUTION: +- output << "( " << attr->values[i].resolution.xres +- << ", " << attr->values[i].resolution.yres << " )"; ++ int xres; ++ int yres; ++ ipp_res_t units; ++ xres = ippGetResolution(attr, i, &yres, &units); ++ output << "( " << xres ++ << ", " << yres << " )"; + break; + case IPP_TAG_RANGE: +- output << "[ " << (attr->values[i].range.lower > 0 ? attr->values[i].range.lower : 1) +- << ", " << (attr->values[i].range.upper > 0 ? attr->values[i].range.upper : 65535) << " ]"; ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ output << "[ " << (lowervalue > 0 ? lowervalue : 1) ++ << ", " << (uppervalue > 0 ? uppervalue : 65535) << " ]"; + break; + case IPP_TAG_DATE: +- d = attr->values[i].date; ++ d = ippGetDate(attr, i); + dateStr.sprintf("%.4d-%.2d-%.2d, %.2d:%.2d:%.2d %c%.2d%.2d", + d[0]*256+d[1], d[2], d[3], + d[4], d[5], d[6], +@@ -418,11 +427,11 @@ + default: + continue; + } +- if (i < attr->num_values-1) ++ if (i < ippGetCount(attr)-1) + output << "
"; + } + output << "\n " << endl; +- attr = attr->next; ++ attr = ippNextAttribute(request_); + } + // end table + output << "" << endl; +@@ -438,31 +447,34 @@ + ipp_attribute_t *attr = first(); + while (attr) + { +- if (group != -1 && attr->group_tag != group) ++ if (group != -1 && ippGetGroupTag(attr) != group) + { +- attr = attr->next; ++ attr = ippNextAttribute(request_); + continue; + } + QString value; +- for (int i=0; inum_values; i++) ++ for (int i=0; ivalue_tag) ++ switch (ippGetValueTag(attr)) + { + case IPP_TAG_INTEGER: + case IPP_TAG_ENUM: +- value.append(QString::number(attr->values[i].integer)).append(","); ++ value.append(QString::number(ippGetInteger(attr, i))).append(","); + break; + case IPP_TAG_BOOLEAN: +- value.append((attr->values[i].boolean ? "true" : "false")).append(","); ++ value.append((ippGetBoolean(attr, i) ? "true" : "false")).append(","); + break; + case IPP_TAG_RANGE: +- if (attr->values[i].range.lower > 0) +- value.append(QString::number(attr->values[i].range.lower)); +- if (attr->values[i].range.lower != attr->values[i].range.upper) ++ int lowervalue; ++ int uppervalue; ++ lowervalue = ippGetRange(attr, i, &uppervalue); ++ if (lowervalue > 0) ++ value.append(QString::number(lowervalue)); ++ if (lowervalue != uppervalue) + { + value.append("-"); +- if (attr->values[i].range.upper > 0) +- value.append(QString::number(attr->values[i].range.upper)); ++ if (uppervalue > 0) ++ value.append(QString::number(uppervalue)); + } + value.append(","); + break; +@@ -476,7 +488,7 @@ + case IPP_TAG_TEXTLANG: + case IPP_TAG_CHARSET: + case IPP_TAG_LANGUAGE: +- value.append(QString::fromLocal8Bit(attr->values[i].string.text)).append(","); ++ value.append(QString::fromLocal8Bit(ippGetString(attr, i, NULL))).append(","); + break; + default: + break; +@@ -484,8 +496,8 @@ + } + if (!value.isEmpty()) + value.truncate(value.length()-1); +- opts[QString::fromLocal8Bit(attr->name)] = value; +- attr = attr->next; ++ opts[QString::fromLocal8Bit(ippGetName(attr))] = value; ++ attr = ippNextAttribute(request_); + } + } + return opts; +@@ -542,3 +554,7 @@ + } + #endif + } ++ ++ ++ipp_attribute_t* IppRequest::first() ++{ return (request_ ? ippFirstAttribute(request_) : NULL); } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h kdelibs-3.5.10/kdeprint/cups/ipprequest.h +--- kdelibs-3.5.10-orig/kdeprint/cups/ipprequest.h 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/ipprequest.h 2012-10-06 15:06:05.581489574 -0400 +@@ -72,7 +72,7 @@ + bool keyword(const QString& name, QStringList& value); + bool mime(const QString& name, QString& value); + ipp_attribute_t* first(); +- ipp_attribute_t* last(); ++ ipp_t* request(); + QMap toMap(int group = -1); + void setMap(const QMap& opts); + +@@ -178,12 +178,6 @@ + inline bool IppRequest::doRequest(const QString& res) + { return doFileRequest(res); } + +-inline ipp_attribute_t* IppRequest::first() +-{ return (request_ ? request_->attrs : NULL); } +- +-inline ipp_attribute_t* IppRequest::last() +-{ return (request_ ? request_->last : NULL); } +- + inline void IppRequest::setHost(const QString& host) + { host_ = host; } + +@@ -193,4 +187,7 @@ + inline void IppRequest::dump(int state) + { dump_ = state; } + ++inline ipp_t* IppRequest::request() ++{ return request_; } ++ + #endif +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsjobmanager.cpp 2012-10-06 15:13:31.451859386 -0400 +@@ -36,6 +36,8 @@ + #include + #include + ++#include "config.h" ++ + KMCupsJobManager::KMCupsJobManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMJobManager(parent,name) + { +@@ -166,17 +168,18 @@ + void KMCupsJobManager::parseListAnswer(IppRequest& req, KMPrinter *pr) + { + ipp_attribute_t *attr = req.first(); ++ ipp_attribute_t *nextAttr; + KMJob *job = new KMJob(); + QString uri; + while (attr) + { +- QString name(attr->name); +- if (name == "job-id") job->setId(attr->values[0].integer); +- else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-name") job->setName(QString::fromLocal8Bit(attr->values[0].string.text)); ++ QString name(ippGetName(attr)); ++ if (name == "job-id") job->setId(ippGetInteger(attr, 0)); ++ else if (name == "job-uri") job->setUri(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-name") job->setName(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + else if (name == "job-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_JOB_PENDING: + job->setState(KMJob::Queued); +@@ -204,29 +207,30 @@ + break; + } + } +- else if (name == "job-k-octets") job->setSize(attr->values[0].integer); +- else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(attr->values[0].string.text)); +- else if (name == "job-k-octets-completed") job->setProcessedSize(attr->values[0].integer); +- else if (name == "job-media-sheets") job->setPages(attr->values[0].integer); +- else if (name == "job-media-sheets-completed") job->setProcessedPages(attr->values[0].integer); ++ else if (name == "job-k-octets") job->setSize(ippGetInteger(attr, 0)); ++ else if (name == "job-originating-user-name") job->setOwner(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); ++ else if (name == "job-k-octets-completed") job->setProcessedSize(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets") job->setPages(ippGetInteger(attr, 0)); ++ else if (name == "job-media-sheets-completed") job->setProcessedPages(ippGetInteger(attr, 0)); + else if (name == "job-printer-uri" && !pr->isRemote()) + { +- QString str(attr->values[0].string.text); ++ QString str(ippGetString(attr, 0, NULL)); + int p = str.findRev('/'); + if (p != -1) + job->setPrinter(str.mid(p+1)); + } + else if (name == "job-priority") + { +- job->setAttribute(0, QString::fromLatin1("%1").arg(attr->values[0].integer, 3)); ++ job->setAttribute(0, QString::fromLatin1("%1").arg(ippGetInteger(attr, 0), 3)); + } + else if (name == "job-billing") + { + job->setAttributeCount(2); +- job->setAttribute(1, QString::fromLocal8Bit(attr->values[0].string.text)); ++ job->setAttribute(1, QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + +- if (name.isEmpty() || attr == req.last()) ++ nextAttr = ippNextAttribute(req.request()); ++ if (name.isEmpty() || (!nextAttr)) + { + if (job->printer().isEmpty()) + job->setPrinter(pr->printerName()); +@@ -234,8 +238,7 @@ + addJob(job); // don't use job after this call !!! + job = new KMJob(); + } +- +- attr = attr->next; ++ attr = nextAttr; + } + delete job; + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsmanager.cpp 2012-10-06 15:14:22.311521604 -0400 +@@ -476,19 +476,20 @@ + void KMCupsManager::processRequest(IppRequest* req) + { + ipp_attribute_t *attr = req->first(); ++ ipp_attribute_t *nextAttr; + KMPrinter *printer = new KMPrinter(); + while (attr) + { +- QString attrname(attr->name); ++ QString attrname(ippGetName(attr)); + if (attrname == "printer-name") + { +- QString value = QString::fromLocal8Bit(attr->values[0].string.text); ++ QString value = QString::fromLocal8Bit(ippGetString(attr, 0, NULL)); + printer->setName(value); + printer->setPrinterName(value); + } + else if (attrname == "printer-type") + { +- int value = attr->values[0].integer; ++ int value = ippGetInteger(attr, 0); + printer->setType(0); + printer->addType(((value & CUPS_PRINTER_CLASS) || (value & CUPS_PRINTER_IMPLICIT) ? KMPrinter::Class : KMPrinter::Printer)); + if ((value & CUPS_PRINTER_REMOTE)) printer->addType(KMPrinter::Remote); +@@ -499,7 +500,7 @@ + } + else if (attrname == "printer-state") + { +- switch (attr->values[0].integer) ++ switch (ippGetInteger(attr, 0)) + { + case IPP_PRINTER_IDLE: printer->setState(KMPrinter::Idle); break; + case IPP_PRINTER_PROCESSING: printer->setState(KMPrinter::Processing); break; +@@ -508,22 +509,24 @@ + } + else if (attrname == "printer-uri-supported") + { +- printer->setUri(KURL(attr->values[0].string.text)); ++ printer->setUri(KURL(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-location") + { +- printer->setLocation(QString::fromLocal8Bit(attr->values[0].string.text)); ++ printer->setLocation(QString::fromLocal8Bit(ippGetString(attr, 0, NULL))); + } + else if (attrname == "printer-is-accepting-jobs") + { +- printer->setAcceptJobs(attr->values[0].boolean); ++ printer->setAcceptJobs(ippGetBoolean(attr, 0)); + } +- if (attrname.isEmpty() || attr == req->last()) ++ ++ nextAttr = ippNextAttribute(req->request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + addPrinter(printer); + printer = new KMPrinter(); + } +- attr = attr->next; ++ attr = nextAttr; + } + delete printer; + } +@@ -817,6 +820,7 @@ + { + QStringList list; + IppRequest req; ++ ipp_attribute_t *nextAttr; + req.setOperation(CUPS_GET_DEVICES); + if (req.doRequest("/")) + { +@@ -824,12 +828,13 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- QString attrname(attr->name); +- if (attrname == "device-info") desc = attr->values[0].string.text; +- else if (attrname == "device-make-and-model") printer = attr->values[0].string.text; +- else if (attrname == "device-uri") uri = attr->values[0].string.text; +- else if ( attrname == "device-class" ) cl = attr->values[ 0 ].string.text; +- if (attrname.isEmpty() || attr == req.last()) ++ QString attrname(ippGetName(attr)); ++ if (attrname == "device-info") desc = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-make-and-model") printer = ippGetString(attr, 0, NULL); ++ else if (attrname == "device-uri") uri = ippGetString(attr, 0, NULL); ++ else if ( attrname == "device-class" ) cl = ippGetString(attr, 0, NULL); ++ nextAttr = ippNextAttribute(req.request()); ++ if (attrname.isEmpty() || (!nextAttr)) + { + if (!uri.isEmpty()) + { +@@ -838,7 +843,7 @@ + } + uri = desc = printer = cl = QString::null; + } +- attr = attr->next; ++ attr = nextAttr; + } + } + return list; +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmcupsuimanager.cpp 2012-10-06 15:14:55.177970017 -0400 +@@ -60,6 +60,8 @@ + #include + #include + ++#include "config.h" ++ + KMCupsUiManager::KMCupsUiManager(QObject *parent, const char *name, const QStringList & /*args*/) + : KMUiManager(parent,name) + { +@@ -143,22 +145,22 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0) + { +- if (strncmp(attr->values[0].string.text,"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); +- else if (strncmp(attr->values[0].string.text,"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); +- else if (strncmp(attr->values[0].string.text,"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); +- else if (strncmp(attr->values[0].string.text,"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); +- else if (strncmp(attr->values[0].string.text,"http",4) == 0 || strncmp(attr->values[0].string.text,"ipp",3) == 0) ++ if (strncmp(ippGetString(attr, 0, NULL),"socket",6) == 0) backend->enableBackend(KMWizard::TCP,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"parallel",8) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"serial",6) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"smb",3) == 0) backend->enableBackend(KMWizard::SMB,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"lpd",3) == 0) backend->enableBackend(KMWizard::LPD,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"usb",3) == 0) backend->enableBackend(KMWizard::Local,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"http",4) == 0 || strncmp(ippGetString(attr, 0, NULL),"ipp",3) == 0) + { + backend->enableBackend(KMWizard::IPP,true); + backend->enableBackend(KMWizard::Custom+1,true); + } +- else if (strncmp(attr->values[0].string.text,"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); ++ else if (strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) backend->enableBackend(KMWizard::Custom+2,true); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + backend->enableBackend(KMWizard::Class, true); + backend->enableBackend(KMWizard::Custom+5, true); +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwfax.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwfax.cpp 2012-10-06 15:15:28.044418449 -0400 +@@ -30,6 +30,8 @@ + #include + #include + ++#include "config.h" ++ + KMWFax::KMWFax(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -55,11 +57,11 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"device-uri") == 0 && strncmp(attr->values[0].string.text,"fax",3) == 0) ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"device-uri") == 0 && strncmp(ippGetString(attr, 0, NULL),"fax",3) == 0) + { +- m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(attr->values[0].string.text)); ++ m_list->insertItem(SmallIcon("blockdevice"),QString::fromLatin1(ippGetString(attr, 0, NULL))); + } +- attr = attr->next; ++ attr = ippNextAttribute(req.request()); + } + } + } +diff -Naur kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp +--- kdelibs-3.5.10-orig/kdeprint/cups/kmwippselect.cpp 2012-10-06 14:49:37.521406729 -0400 ++++ kdelibs-3.5.10/kdeprint/cups/kmwippselect.cpp 2012-10-06 15:15:56.867560417 -0400 +@@ -29,6 +29,8 @@ + #include + #include + ++#include "config.h" ++ + KMWIppSelect::KMWIppSelect(QWidget *parent, const char *name) + : KMWizardPage(parent,name) + { +@@ -83,9 +85,9 @@ + ipp_attribute_t *attr = req.first(); + while (attr) + { +- if (attr->name && strcmp(attr->name,"printer-name") == 0) +- m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(attr->values[0].string.text)); +- attr = attr->next; ++ if (ippGetName(attr) && strcmp(ippGetName(attr),"printer-name") == 0) ++ m_list->insertItem(SmallIcon("kdeprint_printer"),QString::fromLatin1(ippGetString(attr, 0, NULL))); ++ attr = ippNextAttribute(req.request()); + } + m_list->sort(); + } diff --git a/staging/kdelibs3/kdelibs3-missing-include.patch b/staging/kdelibs3/kdelibs3-missing-include.patch new file mode 100644 index 000000000..5b84ef746 --- /dev/null +++ b/staging/kdelibs3/kdelibs3-missing-include.patch @@ -0,0 +1,10 @@ +--- kdeprint/cups/cupsdconf2/cups-util.c.old 2012-01-19 01:30:26.000000000 -0500 ++++ kdeprint/cups/cupsdconf2/cups-util.c 2012-01-19 01:31:33.000000000 -0500 +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/staging/kdelibs3/kdelibs3.install b/staging/kdelibs3/kdelibs3.install new file mode 100644 index 000000000..7291ac0a2 --- /dev/null +++ b/staging/kdelibs3/kdelibs3.install @@ -0,0 +1,12 @@ +post_install() { + post_remove +} + +post_upgrade() { + post_remove +} + +post_remove() { + # this can be removed in future versions + sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf +} diff --git a/staging/kdelibs3/openssl.patch b/staging/kdelibs3/openssl.patch new file mode 100644 index 000000000..a948b884a --- /dev/null +++ b/staging/kdelibs3/openssl.patch @@ -0,0 +1,180 @@ +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.cc +--- kdelibs-3.5.10/kio/kssl/kopenssl.cc.ossl-1.x 2009-09-04 23:10:53.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -96,9 +96,14 @@ static int (*K_BIO_write) (BIO *b, cons + static int (*K_PEM_ASN1_write_bio) (int (*)(),const char *,BIO *,char *, + const EVP_CIPHER *,unsigned char *,int , + pem_password_cb *, void *) = 0L; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++static int (*K_ASN1_item_i2d_fp)(ASN1_ITEM *,FILE *,unsigned char *) = 0L; ++static ASN1_ITEM *K_NETSCAPE_X509_it = 0L; ++#else + static ASN1_METHOD* (*K_X509_asn1_meth) (void) = 0L; + static int (*K_ASN1_i2d_fp)(int (*)(),FILE *,unsigned char *) = 0L; + static int (*K_i2d_ASN1_HEADER)(ASN1_HEADER *, unsigned char **) = 0L; ++#endif + static int (*K_X509_print_fp) (FILE *, X509*) = 0L; + static int (*K_i2d_PKCS12) (PKCS12*, unsigned char**) = 0L; + static int (*K_i2d_PKCS12_fp) (FILE *, PKCS12*) = 0L; +@@ -430,9 +435,14 @@ KConfig *cfg; + K_BIO_ctrl = (long (*) (BIO *,int,long,void *)) _cryptoLib->symbol("BIO_ctrl"); + K_BIO_write = (int (*) (BIO *b, const void *data, int len)) _cryptoLib->symbol("BIO_write"); + K_PEM_ASN1_write_bio = (int (*)(int (*)(), const char *,BIO*, char*, const EVP_CIPHER *, unsigned char *, int, pem_password_cb *, void *)) _cryptoLib->symbol("PEM_ASN1_write_bio"); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ K_ASN1_item_i2d_fp = (int (*)(ASN1_ITEM *, FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_item_i2d_fp"); ++ K_NETSCAPE_X509_it = (ASN1_ITEM *) _cryptoLib->symbol("NETSCAPE_X509_it"); ++#else + K_X509_asn1_meth = (ASN1_METHOD* (*)(void)) _cryptoLib->symbol("X509_asn1_meth"); + K_ASN1_i2d_fp = (int (*)(int (*)(), FILE*, unsigned char *)) _cryptoLib->symbol("ASN1_i2d_fp"); + K_i2d_ASN1_HEADER = (int (*)(ASN1_HEADER *, unsigned char **)) _cryptoLib->symbol("i2d_ASN1_HEADER"); ++#endif + K_X509_print_fp = (int (*)(FILE*, X509*)) _cryptoLib->symbol("X509_print_fp"); + K_i2d_PKCS12 = (int (*)(PKCS12*, unsigned char**)) _cryptoLib->symbol("i2d_PKCS12"); + K_i2d_PKCS12_fp = (int (*)(FILE *, PKCS12*)) _cryptoLib->symbol("i2d_PKCS12_fp"); +@@ -594,7 +604,7 @@ KConfig *cfg; + K_SSL_set_session = (int (*)(SSL*,SSL_SESSION*)) _sslLib->symbol("SSL_set_session"); + K_d2i_SSL_SESSION = (SSL_SESSION* (*)(SSL_SESSION**,unsigned char**, long)) _sslLib->symbol("d2i_SSL_SESSION"); + K_i2d_SSL_SESSION = (int (*)(SSL_SESSION*,unsigned char**)) _sslLib->symbol("i2d_SSL_SESSION"); +- K_SSL_get_ciphers = (STACK *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); ++ K_SSL_get_ciphers = (STACK_OF(SSL_CIPHER) *(*)(const SSL*)) _sslLib->symbol("SSL_get_ciphers"); + #endif + + +@@ -982,7 +992,13 @@ int KOpenSSLProxy::PEM_write_bio_X509(BI + else return -1; + } + +- ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++int KOpenSSLProxy::ASN1_i2d_fp(FILE *out,unsigned char *x) { ++ if (K_ASN1_item_i2d_fp && K_NETSCAPE_X509_it) ++ return (K_ASN1_item_i2d_fp)(K_NETSCAPE_X509_it, out, x); ++ else return -1; ++} ++#else + ASN1_METHOD *KOpenSSLProxy::X509_asn1_meth(void) { + if (K_X509_asn1_meth) return (K_X509_asn1_meth)(); + else return 0L; +@@ -994,7 +1010,7 @@ int KOpenSSLProxy::ASN1_i2d_fp(FILE *out + return (K_ASN1_i2d_fp)((int (*)())K_i2d_ASN1_HEADER, out, x); + else return -1; + } +- ++#endif + + int KOpenSSLProxy::X509_print(FILE *fp, X509 *x) { + if (K_X509_print_fp) return (K_X509_print_fp)(fp, x); +diff -up kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x kdelibs-3.5.10/kio/kssl/kopenssl.h +--- kdelibs-3.5.10/kio/kssl/kopenssl.h.ossl-1.x 2006-07-22 10:16:39.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/kopenssl.h 2009-09-04 23:10:53.000000000 +0200 +@@ -48,6 +48,9 @@ class KOpenSSLProxyPrivate; + #include + #include + #undef crypt ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++#define STACK _STACK ++#endif + #endif + + #include +@@ -446,12 +449,12 @@ public: + */ + int PEM_write_bio_X509(BIO *bp, X509 *x); + +- ++#if OPENSSL_VERSION_NUMBER < 0x10000000L + /* + * X509_asn1_meth - used for netscape output + */ + ASN1_METHOD *X509_asn1_meth(); +- ++#endif + + /* + * ASN1_i2d_fp - used for netscape output +@@ -531,6 +534,9 @@ public: + */ + void sk_free(STACK *s); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ void sk_free(void *s) { return sk_free(reinterpret_cast(s)); } ++#endif + + /* + * Number of elements in the stack +@@ -543,6 +549,9 @@ public: + */ + char *sk_value(STACK *s, int n); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ char *sk_value(void *s, int n) { return sk_value(reinterpret_cast(s), n); } ++#endif + + /* + * Create a new stack +@@ -555,6 +564,9 @@ public: + */ + int sk_push(STACK *s, char *d); + ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ int sk_push(void *s, void *d) { return sk_push(reinterpret_cast(s), reinterpret_cast(d)); } ++#endif + + /* + * Duplicate the stack +diff -up kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc +--- kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc.ossl-1.x 2005-10-10 17:05:44.000000000 +0200 ++++ kdelibs-3.5.10/kio/kssl/ksmimecrypto.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -87,7 +87,7 @@ KSMIMECryptoPrivate::KSMIMECryptoPrivate + + + STACK_OF(X509) *KSMIMECryptoPrivate::certsToX509(QPtrList &certs) { +- STACK_OF(X509) *x509 = sk_new(NULL); ++ STACK_OF(X509) *x509 = reinterpret_cast(sk_new(NULL)); + KSSLCertificate *cert = certs.first(); + while(cert) { + sk_X509_push(x509, cert->getCert()); +diff -up kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x kdelibs-3.5.10/kio/kssl/ksslcertificate.cc +--- kdelibs-3.5.10/kio/kssl/ksslcertificate.cc.ossl-1.x 2006-01-19 18:06:12.000000000 +0100 ++++ kdelibs-3.5.10/kio/kssl/ksslcertificate.cc 2009-09-04 23:10:53.000000000 +0200 +@@ -1003,17 +1003,31 @@ return qba; + QByteArray KSSLCertificate::toNetscape() { + QByteArray qba; + #ifdef KSSL_HAVE_SSL +-ASN1_HEADER ah; +-ASN1_OCTET_STRING os; +-KTempFile ktf; ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ NETSCAPE_X509 nx; ++ ASN1_OCTET_STRING hdr; ++#else ++ ASN1_HEADER ah; ++ ASN1_OCTET_STRING os; ++#endif ++ KTempFile ktf; + +- os.data = (unsigned char *)NETSCAPE_CERT_HDR; +- os.length = strlen(NETSCAPE_CERT_HDR); +- ah.header = &os; +- ah.data = (char *)getCert(); +- ah.meth = d->kossl->X509_asn1_meth(); ++#if OPENSSL_VERSION_NUMBER >= 0x10000000L ++ hdr.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ hdr.length = strlen(NETSCAPE_CERT_HDR); ++ nx.header = &hdr; ++ nx.cert = getCert(); ++ ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&nx); ++#else ++ os.data = (unsigned char *)NETSCAPE_CERT_HDR; ++ os.length = strlen(NETSCAPE_CERT_HDR); ++ ah.header = &os; ++ ah.data = (char *)getCert(); ++ ah.meth = d->kossl->X509_asn1_meth(); + +- d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++ d->kossl->ASN1_i2d_fp(ktf.fstream(),(unsigned char *)&ah); ++#endif + + ktf.close(); + -- cgit v1.2.3-54-g00ecf