# Fedora reviews: # core - http://bugzilla.redhat.com/195485 # extras - http://bugzilla.redhat.com/196378 # NOTE: can only build *one* of the following at a time # core: kdegraphics # extras: kdegraphics-extras #define core 1 %define extras 1 %if "%{?core}" == "1" Summary: K Desktop Environment - Graphics Applications Name: kdegraphics Epoch: 7 %endif %%if "%{?extras}" == "1" Summary: Extras for KDE graphics applications Name: kdegraphics-extras %endif Version: 3.5.5 Release: 1%{?dist} License: GPL Group: Applications/Multimedia URL: http://www.kde.org/ Source0: ftp://ftp.kde.org/pub/kde/stable/%{version}/src/kdegraphics-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Patch1: kdegraphics-3.3.0-misc.patch Patch2: kdegraphics-3.3.1-xorg.patch Patch3: kdegraphics-3.5.1-warning.patch BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: kdelibs-devel >= 6:%{version} BuildRequires: libmng-devel BuildRequires: libtiff-devel BuildRequires: libungif-devel BuildRequires: libpng-devel Requires: kdelibs >= 6:%{version} %if "%{?core}" == "1" # kghostview Requires: ghostscript # kghostview, kpdf Requires: ghostscript-fonts %ifnarch s390 s390x %define kamera 1 BuildRequires: gphoto2-devel %define kooka 1 # fc5 breakage: "http://bugzilla.redhat.com/bugzilla/186511 (fixed) # "%{_libdir}/libsane.la contains reference(s) to missing /usr/lib/libgphoto2.la" BuildRequires: sane-backends-devel BuildRequires: libusb-devel # kpdf BuildRequires: freetype-devel %if "%{?fedora}" > "4" BuildRequires: poppler-devel # kgamma BuildRequires: libXxf86vm-devel %endif # ksvg BuildRequires: fontconfig-devel BuildRequires: fribidi-devel BuildRequires: lcms-devel BuildRequires: libart_lgpl-devel %endif Obsoletes: kolourpaint < 0:1.4.3 Provides: kolourpaint = 0:1.4.3 %description Graphics applications for the K Desktop Environment, including %{?kamera:* kamera (digital camera support)} * kcoloredit (palette editor and color chooser) * kdvi (displays TeX .dvi files) * kfax (displays faxfiles) * kghostview (displays postscript files) * kiconedit (icon editor) %{?kooka:* kooka (scanner application)} * kpdf (displays PDF files) * kruler (screen ruler and color measurement tool) * ksnapshot (screen capture utility) * kview (image viewer for GIF, JPEG, TIFF, etc.) %package devel Summary: Development files for %{name} Group: Development/Libraries Requires: kdelibs-devel Requires: %{name} = %{epoch}:%{version}-%{release} %description devel %{summary}. %endif %if "%{?extras}" == "1" # -extras split occured at 3.5.3-3 Conflicts: kdegraphics < 7:3.5.3-3 %define kpovmodeler 1 %if "%{?kpovmodeler:1}" == "1" BuildRequires: freeglut-devel %if "%{?fedora}" > "4" BuildRequires: libXmu-devel %endif %endif BuildRequires: imlib-devel #kfile-plugin BuildRequires: OpenEXR-devel %description Extra graphics applications for the K Desktop Environment, including: %{?kpovmodeler:* kpovmodler} * kuickshow (quick picture viewer) * OpenEXR kfile plugin %endif %prep %setup -q -n kdegraphics-%{version}%{?beta} %patch1 -p1 -b .misc %patch2 -p1 -b .xorg %patch3 -p1 -b .gcc-warning %build unset QTDIR || : ; source /etc/profile.d/qt.sh DO_NOT_COMPILE="" %if "%{!?kamera:1}" == "1" export DO_NOT_COMPILE="$DO_NOT_COMPILE kamera" %endif %if "%{!?kooka:1}" == "1" export DO_NOT_COMPILE="$DO_NOT_COMPILE kooka" %endif %if "%{!?kpovmodeler:1}" == "1" export DO_NOT_COMPILE="$DO_NOT_COMPILE kpovmodeler" %endif %if "%{!?extras:1}" == "1" export DO_NOT_COMPILE="$DO_NOT_COMPILE kuickshow" %endif %configure \ --includedir=%{_includedir}/kde \ --disable-rpath \ --disable-gcc-hidden-visibility \ --enable-new-ldflags \ --disable-debug --disable-warnings \ --disable-dependency-tracking --enable-final \ %{!?kamera:--without-kamera} %if "%{?core}" == "1" make %{?_smp_mflags} %endif %if "%{?extras}" == "1" make %{?_smp_mflags} -C kfile-plugins/exr make %{?_smp_mflags} -C kuickshow %{?kpovmodeler:make %{?_smp_mflags} -C kpovmodeler} %endif %install rm -rf $RPM_BUILD_ROOT %if "%{?core}" == "1" make install DESTDIR=$RPM_BUILD_ROOT # attempt to avoid possible file-conflicts make uninstall DESTDIR=$RPM_BUILD_ROOT -C kfile-plugins/exr ||: %endif %if "%{?extras}" == "1" make install DESTDIR=$RPM_BUILD_ROOT -C kfile-plugins/exr make install DESTDIR=$RPM_BUILD_ROOT -C kuickshow %{?kpovmodeler:make install DESTDIR=$RPM_BUILD_ROOT -C kpovmodeler} %endif # FIXME/TODO: get dfi to shut-the-hell-up about KDE's use of Keywords= and # use of invalid characters... bah. desktop-file-install \ --add-category="X-Fedora" --vendor="" \ --dir $RPM_BUILD_ROOT%{_datadir}/applications/kde \ $RPM_BUILD_ROOT%{_datadir}/applications/kde/*.desktop ||: ## File lists # locale's %find_lang %{name} || touch %{name}.lang # HTML (1.0) HTML_DIR=$(kde-config --expandvars --install html) if [ -d $RPM_BUILD_ROOT$HTML_DIR ]; then for lang_dir in $RPM_BUILD_ROOT$HTML_DIR/* ; do if [ -d $lang_dir ]; then lang=$(basename $lang_dir) echo "%lang($lang) $HTML_DIR/$lang/*" >> %{name}.lang # replace absolute symlinks with relative ones pushd $lang_dir for i in *; do [ -d $i -a -L $i/common ] && ln -nsf ../common $i/common done popd fi done fi # rpmdocs for dir in k* ; do for file in AUTHORS ChangeLog README TODO ; do test -s "$dir/$file" && install -p -m644 -D "$dir/$file" "rpmdocs/$dir/$file" done done #unpackaged file rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la %if "%{?core}" == "1" %post for icon_theme in crystalsvg hicolor ; do touch --no-create %{_datadir}/icons/${icon_theme} 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/${icon_theme} 2> /dev/null ||: done update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : %postun for icon_theme in crystalsvg hicolor ; do touch --no-create %{_datadir}/icons/${icon_theme} 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/${icon_theme} 2> /dev/null ||: done update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : %files -f %{name}.lang %defattr(-,root,root,-) %doc AUTHORS COPYING README %doc rpmdocs/* %{_bindir}/* %{_datadir}/applications/kde/*.desktop %dir %{_datadir}/applnk/Graphics # Not sure about this one, only contains Hidden=True. %{_datadir}/applnk/Graphics/*kruler.desktop %{_datadir}/apps/* %{_datadir}/icons/crystalsvg/*/*/* %{_datadir}/icons/hicolor/*/*/* %config %{_datadir}/config*/* %{_datadir}/service*/* %{_datadir}/mimelnk/*/* %{_libdir}/lib*.so.* %{_libdir}/libkfaximage.so %{_libdir}/libkdeinit_*.* %{_libdir}/kde3/*.[ls][ao] %files devel %defattr(-,root,root,-) %{_includedir}/kde/* %{_libdir}/lib*.so %exclude %{_libdir}/libkdeinit_*.* %exclude %{_libdir}/libkfaximage.so %endif %if "%{?extras}" == "1" %post touch --no-create %{_datadir}/icons/hicolor 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: %if "%{?kpovmodeler:1}" == "1" touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/crystalsvg 2> /dev/null ||: %endif update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : %postun touch --no-create %{_datadir}/icons/hicolor 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: %if "%{?kpovmodeler:1}" == "1" touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null ||: gtk-update-icon-cache -q %{_datadir}/icons/crystalsvg 2> /dev/null ||: %endif update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : %files %defattr(-,root,root,-) %doc COPYING %doc rpmdocs/kuickshow/ %{_bindir}/kuickshow %{_datadir}/applications/kde/*kuickshow.desktop %{_datadir}/apps/kuickshow/ %{_datadir}/icons/hicolor/*/*/* %{_datadir}/services/kfile_exr.desktop %{_libdir}/libkdeinit_*.* %{_libdir}/kde3/*.[ls][ao] %if "%{?kpovmodeler:1}" == "1" %{_bindir}/kpovmodeler %{_libdir}/libkpovmodeler.* %{_datadir}/applications/kde/*kpovmodeler.desktop %{_datadir}/apps/kpovmodeler %{_datadir}/icons/crystalsvg/*/*/* %endif %endif %clean rm -rf $RPM_BUILD_ROOT %changelog * Thu Oct 05 2006 Rex Dieter 7:3.5.5-1 - 3.5.5 * Sun Sep 10 2006 Rex Dieter 7:3.5.4-6 - -extras: fc6 respin for new(er) OpenEXR * Tue Sep 05 2006 Rex Dieter 7:3.5.4-3 - -extras: *really* (re)enable kpovmodeler * Mon Sep 04 2006 Rex Dieter 7:3.5.4-2 - -extras: (re)enable kpovmodeler * Tue Jul 25 2006 Rex Dieter 7:3.5.4-1 - kde-3.5.4 * Fri Jun 23 2006 Rex Dieter 7:3.5.3-4 - include libkfaximage.so in main pkg * Wed Jun 21 2006 Rex Dieter 7:3.5.3-3 - extras subpkg, includes kuickshow, OpenEXR kfile plugin * Mon Jun 12 2006 Rex Dieter 7:3.5.3-2 - %%doc: AUTHORS COPYING README, app docs (README, TODO, etc...) - follow icon spec - fc5+: BR: poppler-devel libXxf86vm-devel - BR: jasper-devel OpenEXR-devel (kuickshow) - BR: freeglut-devel (kpovmodeler) - Obsoletes/Provides: kolorpaint - Requires: ghostscript-fonts (kpdf) - drop unecessary kpdf-xft patch4 (kde bug #123417) * Sat Jun 03 2006 Than Ngo 7:3.5.3-1 - update to 3.5.3 * Wed Apr 05 2006 Than Ngo 7:3.5.2-1 - update to 3.5.2 * Tue Mar 14 2006 Than Ngo 7:3.5.1-4 - fix build problem with gphoto2 * Thu Feb 16 2006 Than Ngo 7:3.5.1-3 - apply patch to fix kpdf build with modular-X again #173836 * Fri Feb 10 2006 Jesse Keating - 7:3.5.1-2.1 - bump again for double-long bug on ppc(64) * Tue Feb 07 2006 Than Ngo 7:3.5.1-2 - apply patch to fix buffer overflow in kpdf, CVE-2006-0301 (#179425) - apply patch to fix gcc warning (#169189) * Sat Feb 04 2006 Than Ngo 7:3.5.1-1 - 3.5.1 * Mon Jan 16 2006 Than Ngo 7:3.5.0-3 - apply patch to fix CAN-2005-3193, #177908 * Mon Dec 12 2005 Than Ngo 7:3.5.0-2 - apply patch to fix modula-X problem * Fri Dec 09 2005 Jesse Keating - rebuilt * Wed Nov 30 2005 Than Ngo 7:3.5.0-1 - 3.5 * Tue Oct 25 2005 Than Ngo 7:3.4.92-1 - update to 3.5 Beta 2 * Thu Oct 13 2005 Matthias Clasen 7:3.4.91-2 - don't use freetype internals * Wed Oct 05 2005 Than Ngo 7:3.4.91-1 - update to 3.5 Beta1 * Wed Sep 21 2005 Than Ngo 7:3.4.2-5 - fix uic build problem * Thu Sep 15 2005 Than Ngo 7:3.4.2-4 - add BuldRequires: libieee1284 #168356 * Mon Sep 05 2005 Than Ngo 7:3.4.2-3 - backport CVS patch to fix kpdf crash when trying to expand sub-bookmarks in the bookmark tree #167390 * Wed Aug 31 2005 Than Ngo 7:3.4.2-2 - backport CVS patch to fix rendering problem in kpdf - backport CVS patch to fix bug #kde110171 - backport CVS patch to fix bug #kde110034, #kde110000 - backport CVS patch to fix crash in kpdf * Thu Aug 11 2005 Than Ngo 7:3.4.2-1 - update to 3.4.2 * Mon Jul 04 2005 Than Ngo 7:3.4.1-2 - apply gcc4 workaround to fix #162430 * Tue Jun 28 2005 Than Ngo 7:3.4.1-1 - 3.4.1 - fix gcc4 build problem * Wed Mar 30 2005 Florian La Roche - try rebuilding * Fri Mar 18 2005 Than Ngo 7:3.4.0-1 - 3.4.0 * Fri Mar 04 2005 Than Ngo 7:3.4.0-0.rc1.2 - rebuilt against gcc-4.0.0-0.31 * Tue Mar 01 2005 Than Ngo 7:3.4.0-0.rc1.1 - rebuilt with gcc-4 * Sat Feb 26 2005 Than Ngo 3.4.0-0.rc1.0 - KDE-3.4.0 rc1 * Tue Feb 22 2005 Than Ngo 7:3.3.92-0.1 - KDE-3.4 beta2 * Sat Feb 12 2005 Than Ngo 7:3.3.2-0.4 - backport from CVS for working with qt-immodule * Thu Feb 10 2005 Than Ngo 7:3.3.2-0.3 - Applied patch to fix CAN-2005-0064 - Applied Steve cleanup patch file * Thu Dec 23 2004 Than Ngo 7:3.3.2-0.2 - Applied patch to fix CAN-2004-112 * Fri Dec 03 2004 Than Ngo 7:3.3.2-0.1 - update to 3.3.2 - remove kdegraphics-3.3.1-tiff.patch, it's included in 3.3.2 * Fri Nov 19 2004 Than Ngo 7:3.3.1-4 - fix xf86gammacfg to work with xorg.conf * Mon Nov 01 2004 Than Ngo 7:3.3.1-3 - rebuilt * Thu Oct 28 2004 Than Ngo 7:3.3.1-2.1 - add patch from 3_3_BRANCH * Fri Oct 15 2004 Than Ngo 7:3.3.1-2 - fix kfax to use system libtiff * Wed Oct 13 2004 Than Ngo 7:3.3.1-1 - update to 3.3.1 * Fri Oct 08 2004 Than Ngo 7:3.3.0-3 - fix typo in buildrequires #135007 * Thu Sep 23 2004 Than Ngo 7:3.3.0-2 - only show kcmkmrml in KDE - set variables before use * Mon Aug 23 2004 Than Ngo 3.3.0-1 - update to 3.3.0 * Tue Aug 10 2004 Than Ngo 3.3.0-0.1.rc2 - update to 3.3.0 rc2 * Mon Jun 21 2004 Than Ngo 7:3.2.3-1 - update to 3.2.3 * Wed Apr 14 2004 Than Ngo 7:3.2.2-1 - update to 3.2.2 * Sun Mar 07 2004 Than Ngo 7:3.2.1-1 - 3.2.1 release * Tue Mar 02 2004 Elliot Lee - rebuilt * Tue Feb 17 2004 Than Ngo 7:3.2.0-1.4 - fix typo bug, _smp_mflags instead smp_mflags * Fri Feb 13 2004 Elliot Lee - rebuilt * Thu Feb 05 2004 Than Ngo 7:3.2.0-0.3 - 3.2.0 release - built against qt 3.3.0 - add prereq /sbin/ldconfig * Mon Jan 19 2004 Than Ngo 7:3.1.95-0.1 - KDE 3.2 RC1 * Mon Dec 01 2003 Than Ngo 7:3.1.94-0.1 - KDE 3.2 Beta2 * Thu Nov 27 2003 Than Ngo 7:3.1.93-0.2 - get rid of rpath * Wed Nov 12 2003 Than Ngo 7:3.1.93-0.1 - KDE 3.2 Beta1 - cleanup * Tue Sep 30 2003 Than Ngo 7:3.1.4-1 - 3.1.4 * Thu Sep 04 2003 Than Ngo 7:3.1.3-4 - disable kpovmodeler temporary. waiting for freeglut * Thu Aug 21 2003 Than Ngo 7:3.1.3-3 - fixed build problem with new gcc * Mon Aug 04 2003 Than Ngo 7:3.1.3-2 - rebuilt * Mon Aug 04 2003 Than Ngo 7:3.1.3-1 - 3.1.3 * Wed Jun 25 2003 Than Ngo 3.1.2-4 - disable kpovmodeler temporary. waiting for freeglut - built with gcc-3.3-12 - remove excludearch s390/s390x * Sun Jun 8 2003 Tim Powers 7:3.1.2-3.1 - added epoch for versioned requires where needed - built for RHEL * Wed Jun 04 2003 Elliot Lee - rebuilt * Tue May 20 2003 Than Ngo 3.1.2-2 - 3.1.2 * Tue Apr 22 2003 Than Ngo 3.1.1-2 - PS/PDF file handling vulnerability * Thu Mar 20 2003 Than Ngo 3.1.1-1 - 3.1.1 * Mon Feb 24 2003 Elliot Lee - debuginfo rebuild * Fri Feb 21 2003 Than Ngo 3.1-3 - get rid of gcc path from dependency_libs * Wed Feb 19 2003 Elliot Lee - BuildRequires: glut-devel if kpovmodeler * Tue Jan 28 2003 Than Ngo 3.1-1 - 3.1 release - remove excludearch ia64 - remove some unneeded macros * Wed Jan 22 2003 Tim Powers - rebuilt * Mon Jan 13 2003 Thomas Woerner 3.1-0.3 - rc6 - exclude ia64 * Thu Nov 28 2002 Than Ngo 3.1-0.2 - fix desktop file issues - get rid of su packages * Sun Nov 24 2002 Than Ngo 3.1-0.1 - update to 3.1 rc4 * Sun Nov 10 2002 Than Ngo 3.0.5-1 - update to 3.0.5 * Tue Oct 15 2002 Than Ngo 3.0.4-1 - 3.0.4 * Sun Aug 25 2002 Florian La Roche - compile on mainframe * Wed Aug 14 2002 Florian La Roche - change spec file to work for more archs * Mon Aug 12 2002 Than Ngo 3.0.3-1 - 3.0.3 - build using gcc-3.2-0.3 * Fri Aug 9 2002 Than Ngo 3.0.2-4 - desktop files issues (bug #71018) * Tue Jul 23 2002 Tim Powers 3.0.2-3 - build using gcc-3.2-0.1 * Sat Jul 20 2002 Than Ngo 3.0.2-2 - fix desktop files issue * Tue Jul 09 2002 Than Ngo 3.0.2-1 - 3.0.2 - use desktop-file-install * Fri Jun 21 2002 Tim Powers - automated rebuild * Sun May 26 2002 Tim Powers - automated rebuild * Tue May 14 2002 Bernhard Rosenkraenzer 3.0.1-1 - 3.0.1 * Tue Apr 16 2002 Bernhard Rosenkraenzer 3.0.0-5 - rename libraries * Mon Apr 8 2002 Bernhard Rosenkraenzer 3.0.0-4 - Fix libkviewpart.* duplication (kview and kviewshell, #62749) - Shut up rpmlint * Fri Mar 29 2002 Bernhard Rosenkraenzer 3.0.0-3 - Obsolete the old monolithic package - Fix build with gcc 3.1 * Thu Mar 28 2002 Than Ngo 3.0.0-2 - fix deps problem * Wed Mar 27 2002 Bernhard Rosenkraenzer 3.0.0-1 - 3.0.0 final * Thu Mar 21 2002 Bernhard Rosenkraenzer 3.0.0-0.cvs20020321.1 - Add docs for kooka and kuickshow and kfile PostScript plugin * Wed Mar 6 2002 Bernhard Rosenkraenzer 3.0.0-0.cvs20020306.1 - Update - Rename subpackages - Don't build kamera on alpha * Wed Dec 26 2001 Bernhard Rosenkraenzer 3.0.0-0.cvs20011226.1 - Update - Reorganize package * Thu Jul 26 2001 Bernhard Rosenkraenzer 2.2-0.cvs20010726.1 - The -devel package has kscan-related files -n only. Since kscan isn't built on s390/s390x, don't build the devel package there. * Tue Jul 24 2001 Bernhard Rosenkraenzer 2.2-0.cvs20010724.1 - Add more build dependencies (#48970) - Remove ia64 workarounds, no longer needed - Update * Mon Jul 23 2001 Bernhard Rosenkraenzer 2.2-0.cvs20010723.1 - Restore -devel package, got lost during the update - Fix build on s390/s390x - Update * Sun Jul 22 2001 Bernhard Rosenkraenzer 2.2-0.cvs20010722.2 - Make symlinks relative - Update * Wed Feb 21 2001 Bernhard Rosenkraenzer - 2.1-respin * Tue Feb 20 2001 Bernhard Rosenkraenzer - 2.1 * Fri Feb 16 2001 Than Ngo - fix to build against glibc * Tue Feb 6 2001 Bernhard Rosenkraenzer - Get rid of libkdefakes.so.0 dependency * Mon Jan 22 2001 Bernhard Rosenkraenzer - Update * Mon Jan 1 2001 Bernhard Rosenkraenzer - Update * Wed Dec 20 2000 Bernhard Rosenkraenzer - Update - Stop excluding ia64 * Wed Nov 15 2000 Bernhard Rosenkraenzer - Update to HEAD * Fri Nov 3 2000 Bernhard Rosenkraenzer - Update to KDE_2_0_BRANCH * Mon Oct 23 2000 Bernhard Rosenkraenzer - 2.0 final * Thu Aug 24 2000 Than Ngo - update to kdegraphics-1.93 * Sun Aug 20 2000 Than Ngo - add missing kdegraphic2 package * Mon Aug 7 2000 Bernhard Rosenkraenzer - new version * Tue Jul 25 2000 Bernhard Rosenkraenzer - new snapshot - work around compiler bug by disabling kcoloredit for now, FIXME * Fri Jul 21 2000 Bernhard Rosenkraenzer - new snapshot - SMPify build * Sun Jul 16 2000 Than Ngo - use gcc 2.96 - new snapshot - fix docdir * Fri Jun 23 2000 Bernhard Rosenkraenzer - Add Epoch - for some reason, rpm thinks 1.1.2 > 1.92.20000623. * Tue Jun 20 2000 Bernhard Rosenkraenzer - new snapshot - ExcludeArch ia64 for now * Sat Mar 18 2000 Bernhard Rosenkraenzer - new snapshot - move it to /usr, where it belongs * Sun Oct 24 1999 Bernhard Rosenkraenzer - Fix compilation * Fri Oct 22 1999 Bernhard Rosenkraenzer - 2.0 CVS * Fri Sep 24 1999 Preston Brown - mark doc files as such * Wed Sep 08 1999 Preston Brown - upgraded to 1.1.2 release * Fri Jun 11 1999 Preston Brown - snapshot, includes kde 1.1.1 + fixes * Mon Apr 19 1999 Preston Brown - last snapshot before release * Mon Apr 12 1999 Preston Brown - latest stable snapshot * Wed Feb 24 1999 Preston Brown - Injected new description and group. * Mon Feb 08 1999 Preston Brown - upgraded to KDE 1.1 final. * Sat Feb 06 1999 Preston Brown - updates to new libstdc++ and rpm standards. * Wed Jan 06 1999 Preston Brown - re-merged in updates from Duncan Haldane