--- fpc-2.2.0-dfsg1.orig/debian/control +++ fpc-2.2.0-dfsg1/debian/control @@ -0,0 +1,256 @@ +Source: fpc +Section: devel +Priority: optional +Maintainer: Carlos Laviola +Uploaders: Torsten Werner , Mazen Neifer +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 5), dpatch, fp-compiler (>= 2.0.4), fp-units-base, + fp-utils, mawk | awk, gs-common, libncurses5-dev, binutils, libreadline5-dev +Build-Depends-Indep: hevea +Vcs-Svn: https://bollin.googlecode.com/svn/fpc/trunk/ +Vcs-Browser: http://bollin.googlecode.com/svn/fpc/trunk/ +Homepage: http://www.freepascal.org/ + +Package: fpc +Architecture: all +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl, fp-compiler, fp-units-base, fp-ide, fp-units-fcl, fp-units-fv, fp-units-gtk, fp-units-gtk2, fp-units-gnome1, fp-units-db, fp-units-gfx, fp-units-net, fp-units-misc, fp-units-multimedia +Recommends: fp-utils +Suggests: lazarus, fp-docs (>= ${source:Upstream-Version}) +Description: Free Pascal Compiler -- Meta Package + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Some extensions are added to the language, like function overloading. Shared + libraries can be linked and created. Basic Delphi support is already + implemented (classes, exceptions, ansistrings, open arayes). This package + contains dependency on all FPC packages provided on your architecture. You need + at least the RTL package before you can start compiling anything, but if you + want to write any real-world program, you may need to install this meta + package. + +Package: fpc-source +Section: devel +Architecture: all +Pre-Depends: dpkg (>= 1.10.24) +Description: Free Pascal Compiler -- Source Code + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + . + This package contains Free Pascal's own source code. It is meant to be used by + the Lazarus IDE. + +Package: fp-compiler +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Suggests: fp-utils, fp-docs (>= ${source:Upstream-Version}) +Description: Free Pascal -- Compiler + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Some extensions are added to the language, like function overloading. Shared + libraries can be linked and created. Basic Delphi support is already + implemented (classes, exceptions, ansistrings). This package contains the + command line compiler. You need at least the RTL package before you can start + compiling anything. + +Package: fp-ide +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), ${shlibs:Depends} +Suggests: fp-utils, fp-docs (>= ${source:Upstream-Version}) +Description: Free Pascal -- IDE + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Some extensions are added to the language, like function overloading. Shared + libraries can be linked and created. Basic Delphi support is already + implemented (classes, exceptions, ansistrings). This package contains the + Integrated Development Environment (IDE). The IDE has an internal compiler. + You need at least the RTL package before you can start compiling anything. + +Package: fp-utils +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Recommends: fp-compiler (= ${binary:Version}) +Description: Free Pascal -- Utils + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains some handy utils for usage with the Free Pascal + Compiler: + - ppumove Place multiple units in a shared library + - ppufiles Show needed files for units + - ppudump Dump the information stored in a .ppu (unit) file + - fpcmake Create Makefile from Makefile.fpc + - h2pas Convert .h files to pascal units + - ppdep Create a dependency file which can be used with Makefiles + - ptop Source beautifier + - data2inc Convert binary/text data to include files + - plex/pyacc Pascal Lex/Yacc implementation + +Package: fp-docs +Section: doc +Architecture: all +Pre-Depends: dpkg (>= 1.10.24) +Description: Free Pascal -- Documentation + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains the documentation for the Free Pascal Compiler. + The documentation is available in HTML and in PDF. + +Package: fp-units-rtl +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Recommends: fp-compiler (= ${binary:Version}) +Provides: fpc-abi-2.2 +Description: Free Pascal -- Runtime Library + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains the Runtime Libraries for the Free Pascal Compiler. + +Package: fp-units-base +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- base units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units for common libraries. Some of these + units are also required by the Free Component Library: + - X11 (Xlib, Xutil) + - NCurses + - ZLib + +Package: fp-units-fcl +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), fp-units-base (= ${binary:Version}) +Description: Free Pascal -- Free Component Library + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains the Free Component Library for the Free Pascal Compiler. + +Package: fp-units-fv +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- Free Vision units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains the Free Vision units for the Free Pascal Compiler. + +Package: fp-units-gtk +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), fp-units-fcl (= ${binary:Version}), libgtk2.0-dev +Description: Free Pascal -- GTK+ 1.2 units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units and examples to create + programs with GTK+ 1.2. + +Package: fp-units-gtk2 +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), fp-units-fcl (= ${binary:Version}) +Description: Free Pascal -- GTK+ 2.x units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units and examples to create + programs with GTK+ 2.x. + +Package: fp-units-gnome1 +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), fp-units-gtk (= ${binary:Version}) +Description: Free Pascal -- GNOME 1 units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units and examples to create + programs for GNOME 1. + +Package: fp-units-db +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- database libraries units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units with bindings for: + - MySQL + - Interbase + - PostgreSQL + - Oracle + - ODBC + - GDBM + - SQLite + +Package: fp-units-gfx +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), fp-units-base (= ${binary:Version}) +Description: Free Pascal -- graphics libraries units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units with bindings for: + - opengl :OpenGL + - forms : Forms 0.88 + - svgalib : Svgalib + - ggi : General Graphical Interface + - libgd + - libpng + - graph + - openal + - cairo + +Package: fp-units-net +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- networking units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + This package contains Free Pascal units for creating network tools: + - netdb : NetDB unit for TCP/IP handling + - libasync : LibAsync unit for easy Asynchronous IO + - libcurl + - dbus: D-Bus + - httpd-1.3 + - httpd-2.0 + - httpd-2.2 + - ldap + - openssl : Open SSL + - pcap + +Package: fp-units-misc +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- miscellaneous units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Free Pascal miscellaneous units for: + - Utmp + - PasZLib (Pascal-only zlib implementation) + +Package: fp-units-multimedia +Architecture: i386 powerpc sparc amd64 arm +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}), libogg-dev, libvorbis-dev, a52dec-dev, libdts-dev, libmad0-dev, libmodplug-dev +Description: Free Pascal -- miscellaneous units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Free Pascal multimedia interfacing units for: + - oggvorbis + - a52 + - dts + - mad + - modplug + +Package: fp-units-i386 +Architecture: i386 +Pre-Depends: dpkg (>= 1.10.24) +Depends: fp-units-rtl (= ${binary:Version}) +Description: Free Pascal -- miscellaneous units + The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32/64-bit + Pascal Compiler. It comes with a fully compatible TP 7.0 runtime library. + Free Pascal specific units for the i386 architecture: + - libc: used for compatibility with kylix, deprecated. --- fpc-2.2.0-dfsg1.orig/debian/fixdeb +++ fpc-2.2.0-dfsg1/debian/fixdeb @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Create debian files from *.in files +# +# $1 = path to debian files +# $2 = fpc target (i386-linux) +# $3 = ppcXXX binary name (ppc386) +# +if [ $# != 3 ]; then + echo 'Usage : fixdeb path fpctarget ppcbin' + exit 1 +fi + +PACKAGEVERSION=`dpkg-parsechangelog | sed -ne's,^Version: \(.*\),\1,p'` +FPCVERSION=`echo $PACKAGEVERSION | awk -F '-' '{ print $1 }'` +DEBVERSION=`echo $PACKAGEVERSION | awk -F '-' '{ print $NF }'` +FPCSVNPATH=`echo $FPCVERSION | awk -F '.' '{ print "release_"$1"_"$2"_"$3 }'` +FPCTARGET="$2" +PPCBIN="$3" + +echo 'PackageVersion: ' $PACKAGEVERSION +echo 'FPCVersion : ' $FPCVERSION +echo 'FPCTarget : ' $FPCTARGET +echo 'DebVersion : ' $DEBVERSION +echo 'PPCBin : ' $PPCBIN +echo 'SVNPath : ' $FPCSVNPATH + +for i in $1/*.in +do + j=$1/$(basename $i .in) + sed -e 's/%{fpcversion}/'$FPCVERSION'/g;s/%{packageversion}/'$PACKAGEVERSION'/g;s/%{ppcbin}/'$PPCBIN'/g;s/%{fpctarget}/'$FPCTARGET'/g;s/%{fpcsvnpath}/'$FPCSVNPATH'/g' $i > $j +done --- fpc-2.2.0-dfsg1.orig/debian/fpc-source.install.in +++ fpc-2.2.0-dfsg1/debian/fpc-source.install.in @@ -0,0 +1,3 @@ +/usr/share/fpcsrc/%{fpcversion}/compiler +/usr/share/fpcsrc/%{fpcversion}/packages +/usr/share/fpcsrc/%{fpcversion}/rtl --- fpc-2.2.0-dfsg1.orig/debian/README.Debian.in +++ fpc-2.2.0-dfsg1/debian/README.Debian.in @@ -0,0 +1,47 @@ +The Free Pascal Compiler for Debian +----------------------------------- + +The source tree was checked out from the subversion repository at +svn.freepascal.org with + 'svn co http://svn.freepascal.org/svn/fpcbuild/tags/%{fpcsvnpath}' + +Only PDF docs are built as shipped. You may want to make the HTML files with +tex4ht by yourself and eventually adapt the doc-base file. + +To create a new config file for fpc (/etc/fpc.cfg) use the command: + /usr/lib/fpc/%{fpcversion}/samplecfg /usr/lib/fpc/%{fpcversion} +However, you should be aware that said file (/etc/fpc.cfg) is +declared as a conffile since version 1.0.2. + +And, yes - this is a i386/amd64/powerpc/sparc/arm only package currently. + + +Web site and download information: +---------------------------------- + +The Original site is + http://www.freepascal.org/ + ftp://ftp.freepascal.org/ + +HTTP Mirrored at + http://www.nl.freepascal.org/ + http://www.de.freepascal.org/ + http://www.freepascal.sk/ + http://gd.tuwien.ac.at/languages/pascal/fpc/www/ + http://www.atlasz.com/freepascal/ + +FTP Mirrored at + http://fpc.planetmirror.com/pub/fpc/ + ftp://gd.tuwien.ac.at/languages/pascal/fpc/ + ftp://ftp.hu.freepascal.org/pub/fpc/ + ftp://ftp.uni-erlangen.de/pub/mirrors/freepascal/ + http://mirror.mirimar.net/freepascal/ + http://cdn.mirror.garr.it/mirrors/freepascal/ + ftp://ftpsv1.u-aizu.ac.jp/pub/lang/pascal/freepascal/ + ftp://ftp.nl.freepascal.org/pub/fpc/ + ftp://freepascal.stack.nl/pub/fpc/ + ftp://ftp.no.freepascal.org/pub/fpc/ + ftp://ftp.chg.ru/pub/lang/pascal/fpc/ + ftp://ftp.us.freepascal.org/pub/fpc/ + + -- Varun Hiremath , Sat, 20 Jan 2007 01:28:28 +0530 --- fpc-2.2.0-dfsg1.orig/debian/fp-units-gtk2.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-gtk2.install.in @@ -0,0 +1,3 @@ +/usr/share/doc/fp-units-gtk2 + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gtk2 --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.install.in +++ fpc-2.2.0-dfsg1/debian/fp-compiler.install.in @@ -0,0 +1,16 @@ +/etc/fpc.cfg +/usr/bin/fpc +/usr/bin/fpcsubst +/usr/bin/fpcmkcfg +/usr/bin/grab_vcsa +/usr/lib/fpc/%{fpcversion}/ppc* +/usr/lib/fpc/%{fpcversion}/samplecfg +/usr/lib/fpc/%{fpcversion}/msg +/usr/share/doc/fp-compiler +/usr/share/man/man1/fpc.1 +/usr/share/man/man1/fpcsubst.1 +/usr/share/man/man1/fpcmkcfg.1 +/usr/share/man/man1/ppc*.1 +/usr/share/man/man1/grab_vcsa.1 +/usr/share/man/man5/fpc.cfg.5 +/usr/bin/fpc-depends --- fpc-2.2.0-dfsg1.orig/debian/fp-units-gnome1.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-gnome1.install.in @@ -0,0 +1,6 @@ +/usr/share/doc/fp-units-gnome1 + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/imlib +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gnome +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gconf +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/zvt --- fpc-2.2.0-dfsg1.orig/debian/fp-units-gfx.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-gfx.install.in @@ -0,0 +1,14 @@ +/usr/share/doc/fp-units-gfx + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/opengl +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/forms +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/svgalib +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/ggi +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/libgd +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/libpng +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/graph +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/openal +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/cairo + +/usr/bin/fd2pascal +/usr/share/man/man1/fd2pascal.1 --- fpc-2.2.0-dfsg1.orig/debian/fp-units-db.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-db.install.in @@ -0,0 +1,9 @@ +/usr/share/doc/fp-units-db + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/mysql +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/ibase +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/postgres +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/oracle +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/odbc +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gdbm +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/sqlite --- fpc-2.2.0-dfsg1.orig/debian/changelog +++ fpc-2.2.0-dfsg1/debian/changelog @@ -0,0 +1,466 @@ +fpc (2.2.0-dfsg1-9) unstable; urgency=low + + [ Torsten Werner ] + * Add Mazen Neifer to Uploaders field. + + [ Mazen Neifer ] + * Moved FPC sources into a version dependent directory from /usr/share/fpcsrc + to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC + release. + * Fixed far call issue in compiler preventing building huge binearies. + (closes: #477743) + * Updated building dependencies, recomennded and suggested packages. + * Moved fppkg to fp-utils as it is just a helper tool and is not required by + compiler. + + -- Mazen Neifer Sat, 17 May 2008 17:12:11 +0200 + +fpc (2.2.0-dfsg1-8) unstable; urgency=low + + [ Mazen Neifer ] + * Fixed build of fpc-source package cased by accidental remove of + fpc-source.install file during clean-patched target execution. + * Fixed Build-Depend clause (needs binutils instead of binutils-dev and no + need for libgpmg1-dev). + * Added man pages to the same packages including corresponding binaries. + * Removed from fpc-source code which isn't required by Lazarus code tool. + + -- Mazen Neifer Thu, 08 May 2008 17:45:19 +0200 + +fpc (2.2.0-dfsg1-7) unstable; urgency=low + + [ Mazen Neifer ] + * Added make files to source package. This required by fpcmake tool to succeed + cross platform compilation. + * Added man pages for fpcmkcfg, fpcsubst, fpcres, mkxmlrpc and rmcvsdir + binaries. + + -- Mazen Neifer Wed, 30 Apr 2008 16:01:50 +0200 + +fpc (2.2.0-dfsg1-6) unstable; urgency=medium + + * Remove the patch 09_powerpc again because the bug is in libgdb-dev and + will be fixed there. + * Disable Build-Depends: libexpat1-dev, libgdb-dev because fpc is + incompatible to gdb 6.8. (Closes: #473955) + * Set urgency to medium because we are fixing a FTBFS bug only. + + -- Torsten Werner Sat, 29 Mar 2008 23:31:44 +0100 + +fpc (2.2.0-dfsg1-5) unstable; urgency=low + + [ Mazen Neifer ] + * Applied fixes from upstream to packages/fcl-xml + + [ Torsten Werner ] + * Add a new patch 09_powerpc to make the package builds on powerpc + architecture. + + -- Torsten Werner Sat, 29 Mar 2008 10:39:26 +0100 + +fpc (2.2.0-dfsg1-4) unstable; urgency=low + + * Build fp-ide with debugger support. (Closes: #328701) + * Remove unneeded Build-Depends: findutils. + * Update Standards-Version: 3.7.3. + * Change Depends: mawk | awk. + * Clean up some lintian errors and warnings. + + -- Torsten Werner Sat, 15 Mar 2008 19:18:23 +0100 + +fpc (2.2.0-dfsg1-3) unstable; urgency=low + + * Add files matching *.inc to package fpc-source. + + -- Torsten Werner Sat, 29 Dec 2007 22:29:07 +0100 + +fpc (2.2.0-dfsg1-2) unstable; urgency=low + + [ Torsten Werner ] + * Set Architecture: all for fpc package. + * Fix bug in debian/rules: it's $(FPCVERSION) not $(FPC_VERSION). + (Closes: #457951) + + [ Mazen Neifer ] + * New patch from upstream fixes non-deterministic register allocation on + sparc + * Modified rules to apply patches before building compiler + + -- Torsten Werner Sat, 29 Dec 2007 15:49:57 +0100 + +fpc (2.2.0-dfsg1-1) unstable; urgency=low + + * Remove all files matching *.o from upstream's tarball. + * Change fpc-source package: + - Do not copy directories installer and tests because they are not needed + by lazarus. + - Install only files matching *.pas and *.pp. + * Clean up the XXXVERSION cruft in debian/rules and debian/fixdeb. + * Update FSF address in debian/copyright. + + -- Torsten Werner Thu, 20 Dec 2007 18:46:55 +0100 + +fpc (2.2.0-3) unstable; urgency=low + + * Create binary package fpc-source again after having some discussion on + debian-devel. (Closes: #413805) + * Use bzip2 when creating binary packages and add + Pre-Depends: dpkg (>= 1.10.24). + * Add the fpc-depends tool. + + -- Torsten Werner Sun, 09 Dec 2007 22:35:01 +0100 + +fpc (2.2.0-2) unstable; urgency=low + + [ Mazen Neifer ] + * Added dbase to fcl-db packaged units for arch other than i386. + * Fixed build issue for sparc and powerpc arch. + + -- Torsten Werner Fri, 07 Dec 2007 09:22:17 +0100 + +fpc (2.2.0-1) unstable; urgency=low + + [ Carlos Laviola ] + * New upstream release. (Closes: #442206) + * Added arm as a supported arch. (Closes: #408693) + * fp-units-gfx depends on libggi-dev. (Closes: #423659) + * fp-ide bugs fixed in the new version. (Closes: #423099, #423601, #423602) + * general cleanup on debian/{rules,control,...} + + [ Torsten Werner ] + * Complete debian/copyright. + * Add debian/watch and get-orig-source target in debian/rules. + * Remove *.dll, *.exe, and *.log from upstream tarball. + + -- Torsten Werner Fri, 23 Nov 2007 20:30:45 +0100 + +fpc (2.0.4-5) unstable; urgency=low + + * Fixed Build-Depends. + * Add myself to Uploaders in debian/control. + * Make sure that the sources are really patched before building them. + * Build unit 'libc' on powerpc too. + + -- Torsten Werner Sat, 27 Jan 2007 20:08:50 +0100 + +fpc (2.0.4-4) unstable; urgency=low + + * debian/rules: Separate out the documentation build into build-doc to + stop the documentations from building on binary-arch builds resulting + in FTBFS. + * Add Index value in debian/fp-docs.doc-base (Closes: #407715) + + -- Varun Hiremath Sun, 21 Jan 2007 20:49:43 +0530 + +fpc (2.0.4-3) unstable; urgency=medium + + * Added dpatch as a build dependency. (Closes: #407594) + + -- Carlos Laviola Sun, 21 Jan 2007 17:08:58 -0200 + +fpc (2.0.4-2) unstable; urgency=low + + * New release fixes Bug: "fp-compiler: miscompiles multilevel + if-statement" (Closes: #403586) + * Provide html docs (Closes: #150150) + + debian/rules: Set DOCTYPE=html and use CONVERTER=hevea + + debian/control: Add hevea to Build-Depends + + -- Varun Hiremath Tue, 16 Jan 2007 21:53:01 +0530 + +fpc (2.0.4-1) unstable; urgency=low + + [ Mazen Neifer ] + * New release (Closes: #383055) + + [ Torsten Werner ] + * Fix bugs in debian/fp-compiler.pre*.in. + * Updated debian/control to use variables provides by newer versions of + dpkg. + * Add XS-X-Vcs-Svn header to debian/control. + * Add german po files from Holger Wansing. (Closes: #348408, #346247) + * Remove unneeded debian/fp-compiler.conffiles. + * Fixed debian/changelog (lintian error). + * Changed Build-Depends: gawk | awk. + + [ Varun Hiremath ] + * Bump Standards version to 3.7.2 + * Add Homepage in debian/control file. + * Add fp-units-gtk2 missing dependencies (Closes: #337990) + + -- Torsten Werner Sun, 14 Jan 2007 11:40:59 +0100 + +fpc (2.0.4-rc3) unstable; urgency=low + + * New release candidate + + -- Mazen Neifer Sun, 06 Aug 2006 19:00:00 +0200 + +fpc (2.0.4-rc2) unstable; urgency=low + + * New release candidate + + -- Mazen Neifer Tue, 18 Jul 2006 21:23:26 +0200 + +fpc (2.0.4-rc1) unstable; urgency=low + + * New release + + -- Peter Vreman Thu, 07 Jul 2006 12:00:00 +0100 + +fpc (2.0.0-4) unstable; urgency=low + + * debian/control.in: add amd64 to the Architecture field. + + -- Carlos Laviola Fri, 9 Sep 2005 18:38:26 -0300 + +fpc (2.0.0-3) unstable; urgency=medium + + * Created a prerm and preinst for fp-compiler, as /usr/bin/fpc needs to + be removed from the list of 'pc' alternatives. (Closes: #311436) + * Added amd64 to the architecture list. (Closes: #315220) + + -- Carlos Laviola Fri, 2 Sep 2005 10:27:21 -0300 + +fpc (2.0.0-2) unstable; urgency=low + + * debian/fp-compiler.postinst.in: forgot to reapply the patch that + correctly creates the slave link to pc(1). (Closes: #310907) + + -- Carlos Laviola Mon, 30 May 2005 11:59:10 -0300 + +fpc (2.0.0-1) unstable; urgency=low + + * As I couldn't upload 1.9.8 on all supported architectures before 2.0.0 + was released, I'm rehashing its changelog now. + * New upstream release. + Bugs fixed on CVS before 1.9.8: + * man/man1/fpc.1: -OPn changed to -Opn in rev 1.8 (Closes: #255960) + * debian/fp-compiler.postinst.in: fixed in rev 1.5 (Closes: #269853) + Bugs fixed on CVS before 1.9.6: + * rtl/unix/crt.pp: fixed in rev 1.20 (Closes: #216060) + * rtl/i386/strings.inc: fixed in rev 1.16 (Closes: #288955) + * compiler/nadd.pas: fixed in rev 1.126 (Closes: #297881) + * debian/control: Added missing build dependencies on libgpmg1-dev and + libncurses5-dev and set save_size at build time, which finally makes + the package build without manual intervention. (Closes: #304633) + + -- Carlos Laviola Fri, 20 May 2005 19:07:00 -0300 + +fpc (1.9.6-2) unstable; urgency=low + + * debian/control: Oops -- fp-units-fv had the wrong description. + + -- Carlos Laviola Fri, 14 Jan 2005 13:15:50 -0200 + +fpc (1.9.6-1) unstable; urgency=low + + * New upstream release. + * debian/control: Added build dependency on libgpmg1-dev. + + -- Carlos Laviola Fri, 31 Dec 2004 21:16:25 -0200 + +fpc (1.9.4-5) unstable; urgency=low + + * fp-compiler: needs ld, adding dependency on binutils. (Closes: #265265) + + -- Carlos Laviola Thu, 12 Aug 2004 16:29:37 -0300 + +fpc (1.9.4-4) unstable; urgency=low + + * debian/control.in: Oops, forgot to update the Build-Deps for this file, + which generates debian/control per se. (Closes: #263942) + + -- Carlos Laviola Sun, 8 Aug 2004 22:12:41 -0300 + +fpc (1.9.4-3) unstable; urgency=low + + * Package needs fpcmake to build pretty much everything, so we need to + build-dep on fp-utils. Thanks to Daniel Schepler for finding the bug + and for Jurij Smakov's aid. (Closes: #263942) + * debian/README.Debian: removes mentions to old problems with tetex, fixes + spelling mistakes and other minor issues. + + -- Carlos Laviola Fri, 6 Aug 2004 19:46:51 -0300 + +fpc (1.9.4-2) unstable; urgency=low + + * The following fixes are the work of Marco van de Voort from CVS HEAD: + - man/man1/ppc386.1: typo fix. (Closes: #255960) + - rtl/unix/crt.pp: gotoxy/XY2Ansi fixes from. + (Closes: #216057, #216060) + - docs/linuxex, docs/dosex, docs/refex: various examples ported to + fpc 1.9.x's new API. + + -- Carlos Laviola Tue, 20 Jul 2004 15:12:05 -0300 + +fpc (1.9.4-1) unstable; urgency=low + + * This release is partly the work of Peter Vreman . + * Acknowledging NMU. (Closes: #221316) + * Made the description for the units packages more informative. + (Closes: #209518, #209581, #209613) + * Applied some patches from Marco van de Voort to CVS HEAD that fixed + compiling the documentation on powerpc with some adaptations of mine. + + -- Carlos Laviola Sat, 17 Jul 2004 21:53:03 -0300 + +fpc (1.0.10-1.2) unstable; urgency=low + + * NMU + * debian/control: Also had to remove build dependency on latex2html here + (Closes: #221316) + + -- Roland Stigge Thu, 12 Feb 2004 10:27:20 +0100 + +fpc (1.0.10-1.1) unstable; urgency=low + + * NMU + * debian/control.in: Removed Build-Depends: latex2html which moved to + non-free (Closes: #221316) + + -- Roland Stigge Sat, 20 Dec 2003 20:45:41 +0100 + +fpc (1.0.10-1) unstable; urgency=low + + * New upstream release. + * Acknowledging Amaya's NMU. Thanks for the hand. (Closes: #141439) + * Package dependency lists corrected. (Closes: #84863, #155158) + * Example compiles correctly now. (Closes: #174371) + * Fixed vanishing fpc(1) manpage if gpc is installed. (Closes: #136283) + * Fixed manpage error. (Closes: #191695) + * Spelling mistakes are gone. (Closes: #124637, #124638) + * Both bugs (doc-base-file-references-usr-doc and debian-changelog-file- + contains-obsolete-user-emacs-settings, in lintian tags) were corrected + long ago. (Closes: #127092) + * Upstream have added the AddDisk function. (Closes: #103163) + + -- Carlos Laviola Sat, 2 Aug 2003 04:35:51 -0300 + +fpc (1.0.6-2) unstable; urgency=low + + * NMU for Debcamp BSP. + * Apply a very silly patch (Closes: #141439), which was RC. The PDF file now + builds. + * Updated versioned-build-depends-on-debhelper. + + -- Amaya Rodrigo Sastre Sat, 12 Jul 2003 17:58:50 +0200 + +fpc (1.0.6-1) unstable; urgency=low + + * New upstream version. (Closes: #154199) + + -- Carlos Laviola Sat, 10 Aug 2002 04:26:15 -0300 + +fpc (1.0.4+1.0.6cvs20020228-1) unstable; urgency=low + + * New upstream version. + + -- Peter Vreman Tue, 1 Mar 2002 11:01:50 +0100 + +fpc (1.0.4-2) unstable; urgency=low + + * New maintainer. + * debian/README.Debian: Added a note on building 'pdflatex.fmt', which is + needed by pdflatex, in order to build the documentation in PDF format. + * debian/control: added latex2html, dvipdfm and tetex-extra to the + build-deps list. + + -- Carlos Laviola Wed, 29 Aug 2001 23:15:17 -0300 + +fpc (1.0.4-1) unstable; urgency=low + + * New upstream version. + + -- Ulf Jaenicke-Roessler Tue, 2 Jan 2001 11:01:50 +0100 + +fpc (1.0.3-0.20001206.1) unstable; urgency=low + + * Snapshot release from CVS 2000/12/06. + * Fixes internal compiler error on (buggy) appearance of + array of Date (Closes:#60720). + * ppc386 can be called more intuitively as fpc (Closes:#74810). + * Help option '-h' is (somewhat) more propagated than '-?' + (Closes:#74811). Furthermore, help is displayed when fpc + is called without any parameter. + * Package supports alternatives now, in order to be used as + "Pascal compiler" (pc) from Makefile(s) (Closes:#76615). + + -- Ulf Jaenicke-Roessler Wed, 6 Dec 2000 11:29:28 +0100 + +fpc (1.0.2-1) unstable; urgency=low + + * New upstream version. + * Maintainer field changed. + * Bug#60720 had already been fixed in the development tree some + time ago after the last upload (hence, this Closes: #60720). + + -- Ulf Jaenicke-Roessler Fri, 13 Oct 2000 13:11:34 +0200 + +fpc (1.0.1-0.20000811.1) unstable; urgency=low + + * Built for `official' upload. CVS as of 2000/08/11 - NMU. + * Update to latest version, thus Closes: #56873. + * Removes /usr/bin/ppc386 link upon package removal. Closes: #64403. + * This upload also Closes: #68801. + * Added Build-Depends. Hmmm, 'fp-compiler' is somehow like `the chicken + and the egg' story... + + -- Ulf Jaenicke-Roessler Fri, 11 Aug 2000 22:49:37 +0200 + +fpc (1.0.1-0) unstable; urgency=low + + * New Upstream Release + + -- Peter Vreman Sun, 09 Jun 2000 12:00:00 +0200 + +fpc (0.99.13-19991013-4) unstable; urgency=low + + * Fixed bashism in samplecfg (Closes: Bug#50636) + * Changed source-arch to 'i386' (Closes: Bug#50438) + + -- Mika Fischer Sat, 20 Nov 1999 22:18:11 +0100 + +fpc (0.99.13-19991013-3) unstable; urgency=low + + * Fixed bug which overwrote existing config files during an update + (Closes: Bug#50278) + + -- Mika Fischer Tue, 16 Nov 1999 23:57:36 +0100 + +fpc (0.99.13-19991013-2) unstable; urgency=low + + * Fixed bug in debian/rules (Fixes: #50096) + + -- Mika Fischer Sat, 13 Nov 1999 20:31:20 +0100 + +fpc (0.99.13-19991013-1) unstable; urgency=low + + * Removed fp-fv due to licensing issues. + + -- Mika Fischer Wed, 13 Oct 1999 19:33:30 +0200 + +fpc (0.99.13-19991005-1) unstable; urgency=low + + * New maintainer + + -- Mika Fischer Wed, 13 Oct 1999 19:33:13 +0200 + +fpc (0.99.13-19991001-1) unstable; urgency=low + + * New maintainer + * Updated to policy 3.0.1 + + -- Joseph Carter Tue, 27 Jul 1999 18:05:05 -0700 + +fpc (0.99.12b-1) unstable; urgency=low + + * New Upstream Release + + -- Peter Vreman Thu, 10 Jun 1999 12:00:00 +0200 + +fpc (0.99.12a-1) unstable; urgency=low + + * Initial Release + + -- Peter Vreman Thu, 10 Jun 1999 12:00:00 +0200 --- fpc-2.2.0-dfsg1.orig/debian/watch +++ fpc-2.2.0-dfsg1/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://sf.net/freepascal/ fpcbuild-(.*).tar.gz debian debian/orig-tar.sh --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.postinst.in +++ fpc-2.2.0-dfsg1/debian/fp-compiler.postinst.in @@ -0,0 +1,16 @@ +#! /bin/sh + +set -e + +FPCDIR=/usr/lib/fpc/%{fpcversion} + +# add alternative +update-alternatives \ + --install /usr/bin/pc pc /usr/bin/fpc 20 \ + --slave /usr/share/man/man1/pc.1.gz pc.1.gz /usr/share/man/man1/fpc.1.gz + +# create link +ln -sf $FPCDIR/%{ppcbin} /usr/bin/%{ppcbin} + +# Debhelper code +#DEBHELPER# --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.preinst.in +++ fpc-2.2.0-dfsg1/debian/fp-compiler.preinst.in @@ -0,0 +1,12 @@ +#! /bin/sh + +set -e + +# Remove fpc from pc alternative if buggy 2.0.0-{1,2} versions are upgraded + +if [ "$1" = "upgrade" ] && [ "$2" = "2.0.0-1" ] || [ "$2" = "2.0.0-2" ]; then + /usr/sbin/update-alternatives --remove pc /usr/bin/fpc +fi + +# Debhelper code +#DEBHELPER# --- fpc-2.2.0-dfsg1.orig/debian/moveexamples +++ fpc-2.2.0-dfsg1/debian/moveexamples @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +EXAMPLE_TEMP=$1 +DOC_DIR=$2 + +function move_examples() +{ + # Make examples dir + install -d -m 755 $DOC_DIR/fp-units-$1/examples/ + + for package in $2 + do + if [ -d $EXAMPLE_TEMP/$package/examples ]; then + echo "Moving examples of $package" + EXAMPLE_TEMP_DIR="$EXAMPLE_TEMP/$package/examples" + EXAMPLE_INSTALL_DIR="$DOC_DIR/fp-units-$1/examples/$package" + # Move dir renaming it + if [ -e "${EXAMPLE_INSTALL_DIR}" ] + then + echo "#### \"${EXAMPLE_INSTALL_DIR}\" is in the way, please remove it first ####" + exit 255 + else + mv -v -f "${EXAMPLE_TEMP_DIR}" "${EXAMPLE_INSTALL_DIR}" + rmdir $EXAMPLE_TEMP/$package + # Remove empty directories: + rmdir --ignore-fail-on-non-empty "${EXAMPLE_INSTALL_DIR}" + fi + fi + done + + # Remove empty directories: + rmdir --ignore-fail-on-non-empty $DOC_DIR/fp-units-$1/examples +} + +echo '**** Copying examples ****' +PACKAGE_LIST='debian/fp-units-'*'.install.in' + +for PACKAGE_FILE in ${PACKAGE_LIST} +do + PACKAGE_NAME=`basename "${PACKAGE_FILE}" '.install.in' | sed -e 's/fp-units-//'` + PACKAGE_CONTENT=`grep '/usr/lib/fpc' "${PACKAGE_FILE}" | sed -e 's@.*/\([^/]\)/\?@\1@'` + echo ' **** PACKAGE_NAME = "'${PACKAGE_NAME}'"' + echo ' **** PACKAGE_CONTENT = "'${PACKAGE_CONTENT}'"' + move_examples "${PACKAGE_NAME}" "${PACKAGE_CONTENT}" +done + +echo '**** Examples copyed ****' + +rmdir $EXAMPLE_TEMP + --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.postrm.in +++ fpc-2.2.0-dfsg1/debian/fp-compiler.postrm.in @@ -0,0 +1,9 @@ +#! /bin/sh + +FPCDIR=/usr/lib/fpc/%{fpcversion} + +# remove link +rm -f /usr/bin/%{ppcbin} + +# Debhelper code +#DEBHELPER# --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.prerm.in +++ fpc-2.2.0-dfsg1/debian/fp-compiler.prerm.in @@ -0,0 +1,9 @@ +#! /bin/sh + +set -e + +# remove alternative +update-alternatives --remove pc /usr/bin/fpc + +# Debhelper code +#DEBHELPER# --- fpc-2.2.0-dfsg1.orig/debian/compat +++ fpc-2.2.0-dfsg1/debian/compat @@ -0,0 +1 @@ +5 --- fpc-2.2.0-dfsg1.orig/debian/fp-docs.install.in +++ fpc-2.2.0-dfsg1/debian/fp-docs.install.in @@ -0,0 +1 @@ +/usr/share/doc/fp-docs --- fpc-2.2.0-dfsg1.orig/debian/fp-units-multimedia.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-multimedia.install.in @@ -0,0 +1,7 @@ +/usr/share/doc/fp-units-multimedia + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/oggvorbis +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/a52 +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/dts +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/mad +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/modplug --- fpc-2.2.0-dfsg1.orig/debian/fp-ide.install.in +++ fpc-2.2.0-dfsg1/debian/fp-ide.install.in @@ -0,0 +1,5 @@ +/usr/bin/fp +/usr/lib/fpc/%{fpcversion}/ide +/usr/share/doc/fp-ide +/usr/share/man/man1/fp.1 + --- fpc-2.2.0-dfsg1.orig/debian/fp-units-fcl.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-fcl.install.in @@ -0,0 +1,10 @@ +/usr/share/doc/fp-units-fcl +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-base +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-db +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-fpcunit +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-image +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-net +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-passrc +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-registry +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-web +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fcl-xml --- fpc-2.2.0-dfsg1.orig/debian/fpc-depends +++ fpc-2.2.0-dfsg1/debian/fpc-depends @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +# Copyright (c) 2005 Rafael Laboissiere +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +=head1 NAME + +fpc-depends - calculates free pascal dependencies + +=cut + +use strict; +use warnings; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] + +=head1 DESCRIPTION + +fpc-depends is a debhelper-like program that is responsible for +generating the ${fpc-abi:Depends} substitutions and adding them to +substvars files. + +If you use this program, your package must build-depend on fp-compiler +(>= 2.2.0-3). + + +=cut + +init (); + +# The current fpc version +my $version = '2.2'; + +foreach my $package (@{$dh{DOPACKAGES}}) { + delsubstvar($package, "fpc-abi:Depends"); + addsubstvar($package, "fpc-abi:Depends", "fpc-abi-$version"); +} + +=head1 SEE ALSO + +L + +This program is not part of debhelper. + +=head1 AUTHOR + +Torsten Werner + +Most ideas borrowed from octave-depends by Rafael Laboissiere +. + +=cut --- fpc-2.2.0-dfsg1.orig/debian/rules +++ fpc-2.2.0-dfsg1/debian/rules @@ -0,0 +1,287 @@ +#!/usr/bin/make -f +# debian/rules for Free Pascal + +DEB_DH_BUILDDEB_ARGS := -- -Z bzip2 + +# Documentation type to use pdf/html +ifeq (${DEBDOCTYPE},) +DOCTYPE=html +# HTML Converter l2h/4ht/hevea or html for (default) +CONVERTER=hevea +else +DOCTYPE=${DEBDOCTYPE} +CONVERTER=${DOCTYPE} +endif + +# Detect name of new compiler, take care that debian uses amd64 instead of x86_64 +CPU_SOURCE=$(subst amd64,x86_64,$(shell dpkg-architecture -qDEB_BUILD_ARCH)) +CPU_TARGET=$(subst amd64,x86_64,$(shell dpkg-architecture -qDEB_HOST_ARCH)) + +ifeq ($(CPU_TARGET),m68k) +PPSUF=68k +endif +ifeq ($(CPU_TARGET),i386) +PPSUF=386 +endif +ifeq ($(CPU_TARGET),x86_64) +PPSUF=x64 +endif +ifeq ($(CPU_TARGET),powerpc) +PPSUF=ppc +endif +ifeq ($(CPU_TARGET),alpha) +PPSUF=axp +endif +ifeq ($(CPU_TARGET),arm) +PPSUF=arm +endif +ifeq ($(CPU_TARGET),sparc) +PPSUF=sparc +endif + +ifneq ($(CPU_SOURCE),$(CPU_TARGET)) +PPPRE=ppcross +else +PPPRE=ppc +endif + +PPNEW=$(PPPRE)$(PPSUF) + +# Reset FPC and FPCDIR if it was set +FPC= +FPCDIR= +# Get Package version and FPC version out of changelog file +FPCVERSION:=$(shell dpkg-parsechangelog | sed -ne's,^Version: \([0-9.]*\).*,\1,p') +FPCTARGET=$(CPU_TARGET)-linux +# Get directories +CURDIR:=$(shell pwd) +BUILD_DIR=$(CURDIR)/debian/build +INSTALL_DIR=$(CURDIR)/debian/tmp +DOC_DIR=$(INSTALL_DIR)/usr/share/doc +EXAMPLE_TEMP=$(DOC_DIR)/fpc-$(FPCVERSION) +SRC_DIR=$(INSTALL_DIR)/usr/share/fpcsrc/${FPCVERSION} +# Get utils +NEWPP=$(CURDIR)/fpcsrc/compiler/$(PPNEW) +NEWFPDOC=$(CURDIR)/fpcsrc/utils/fpdoc/fpdoc +NEWFPCMAKE=$(CURDIR)/fpcsrc/utils/fpcm/fpcmake +# Create default options +BUILDOPTS=PP=$(NEWPP) +INSTALLOPTS=PP=$(NEWPP) FPCMAKE=$(NEWFPCMAKE) INSTALL_PREFIX=$(INSTALL_DIR)/usr + +export GDBLIBDIR := /usr/lib + +# export DH_VERBOSE=1 + +################### +# Clean +# + +CLEAN_ALL = (find -name '*.a' -or -name '*.o' -or -name '*.ppu' | xargs rm) +clean: clean-patched unpatch +clean-patched: + @echo "--- Cleaning" + dh_testdir + dh_testroot + rm -f build-arch-stamp install-arch-stamp arrange-arch-stamp configure-stamp + rm -f build-doc-stamp install-doc-stamp + rm -f build-indep-stamp install-indep-stamp + rm -f debian-files-stamp + rm -f debian/*.files debian/*.docs debian/*.examples debian/*.postinst debian/*.postrm + rm -f debian/fpc-depends.1 + $(MAKE) -C fpcsrc compiler_distclean + $(MAKE) -C fpcsrc rtl_distclean + $(MAKE) -C fpcsrc packages_distclean + $(MAKE) -C fpcsrc fv_distclean + $(MAKE) -C fpcsrc ide_distclean + $(MAKE) -C fpcsrc utils_distclean + $(MAKE) -C fpcdocs clean + -${CLEAN_ALL} + dh_clean + +patch: patch-stamp + +patch-stamp: + dpatch apply-all + touch patch-stamp + +unpatch: + dpatch deapply-all + rm -rf patch-stamp debian/patched + +################### +# Debian files +# + +debian-files: debian-files-stamp +debian-files-stamp: patch + @echo "--- Creating/fixing *.install files" + /bin/bash debian/fixdeb debian $(FPCTARGET) $(PPNEW) + touch debian-files-stamp + +################### +# Arch packages +# + +configure: configure-stamp +configure-stamp: + dh_testdir + # Remove auto-generated make files. + find -name Makefile.fpc -execdir 'sh' '-c' '${RM} $$(basename {} .fpc)' ';' + # Regenrate make files using fpcmake. + fpcmake -r -Tall */Makefile.fpc + touch configure-stamp + +build-arch: build-arch-stamp +build-arch-stamp: debian-files-stamp configure-stamp + @echo "--- Building" + dh_testdir +# First make a new Compiler and RTL using a make cycle + $(MAKE) -C fpcsrc compiler_cycle + $(MAKE) -C fpcsrc rtl_clean rtl_smart $(BUILDOPTS) + $(MAKE) -C fpcsrc packages_base_smart $(BUILDOPTS) + $(MAKE) -C fpcsrc packages_fcl_smart $(BUILDOPTS) + $(MAKE) -C fpcsrc fv_smart $(BUILDOPTS) + $(MAKE) -C fpcsrc packages_extra_smart $(BUILDOPTS) + $(MAKE) -C fpcsrc ide_all $(BUILDOPTS) + $(MAKE) -C fpcsrc utils_all $(BUILDOPTS) + touch build-arch-stamp + +install-arch: install-arch-stamp +install-arch-stamp: build-arch-stamp debian-files-stamp + @echo "--- Installing" + dh_testdir + dh_testroot + dh_clean -k +# Specify the compiler to use so installing will use the correct versioned dir + $(MAKE) -C fpcsrc compiler_distinstall $(INSTALLOPTS) + $(MAKE) -C fpcsrc rtl_distinstall $(INSTALLOPTS) + $(MAKE) -C fpcsrc fv_distinstall $(INSTALLOPTS) + $(MAKE) -C fpcsrc packages_distinstall $(INSTALLOPTS) + $(MAKE) -C fpcsrc ide_distinstall $(INSTALLOPTS) INSTALL_DOCDIR=$(DOC_DIR)/fp-ide + $(MAKE) -C fpcsrc utils_distinstall $(INSTALLOPTS) +# Copy examples to the correct doc dir + /bin/bash debian/moveexamples $(EXAMPLE_TEMP) $(DOC_DIR) +# Install man pages + $(MAKE) -C install/man installman $(INSTALLOPTS) INSTALL_PREFIX=$(INSTALL_DIR)/usr/share +# Install RTL demos + $(MAKE) -C demo sourceinstall $(INSTALLOPTS) INSTALL_SOURCEDIR=$(DOC_DIR)/fp-compiler +# Install whatsnew and readme + $(MAKE) -C install/doc installdoc $(INSTALLOPTS) INSTALL_DOCDIR=$(DOC_DIR)/fp-compiler +# Create fpc.cfg which is included as conffile + /bin/bash fpcsrc/compiler/utils/samplecfg \ + /usr/lib/fpc/$(FPCVERSION) $(INSTALL_DIR)/etc + install -D debian/fpc-depends debian/tmp/usr/bin/ + set -x; for PACKAGE in fp-compiler fp-units-gfx fp-units-net fp-utils; do \ + install -m644 -D debian/overrides/$$PACKAGE \ + debian/$$PACKAGE/usr/share/lintian/overrides/$$PACKAGE; \ + done + touch install-arch-stamp + +arrange-arch: arrange-arch-stamp +arrange-arch-stamp: install-arch-stamp debian-files-stamp + dh_testdir + dh_testroot + dh_install -s --sourcedir=debian/tmp --list-missing + + touch arrange-arch-stamp + +build-indep: patch +install-indep: + touch install-indep-stamp + +################### +# Documentation +# + +build-doc: patch build-doc-stamp +build-doc-stamp: debian-files-stamp + @echo "--- Building Documentation" + dh_testdir + $(MAKE) -C fpcdocs $(CONVERTER) $(BUILDOPTS) FPDOC=$(NEWFPDOC) + touch build-indep-stamp + +install-doc: install-doc-stamp +install-doc-stamp: build-doc-stamp debian-files-stamp + @echo "--- Installing Documentation" + dh_testdir + dh_testroot + dh_clean -k + $(MAKE) -C fpcdocs $(DOCTYPE)install $(INSTALLOPTS) INSTALL_DOCDIR=$(INSTALL_DIR)/usr/share/doc/fp-docs + touch install-doc-stamp + +################### +# Source +# + +install-source: install-source-stamp +install-source-stamp: + @echo "--- Cleaning the tree and copying the source code" + dh_testdir + dh_testroot + $(MAKE) -C fpcsrc compiler_distclean + $(MAKE) -C fpcsrc rtl_distclean + $(MAKE) -C fpcsrc packages_distclean + $(MAKE) -C fpcsrc ide_distclean + $(MAKE) -C fpcsrc utils_distclean + -${CLEAN_ALL} + mkdir -p ${SRC_DIR} + cp -Rfpl -t ${SRC_DIR} \ + $(CURDIR)/fpcsrc/compiler \ + $(CURDIR)/fpcsrc/packages \ + $(CURDIR)/fpcsrc/rtl + touch install-source-stamp + +################### +# Generic +# + +build: build-arch build-indep +install: install-arch install-indep +binary: binary-arch binary-indep + + +################### +# Deb building +# + +binary-indep: build-doc install-doc install-source debian-files + @echo "--- Building: arch-indep packages" + dh_testdir + dh_testroot + dh_installdocs -i + dh_installchangelogs -i + dh_install -i --sourcedir=debian/tmp --list-missing + dh_compress -i -X.pdf + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i $(DEB_DH_BUILDDEB_ARGS) + +binary-arch: build-arch arrange-arch debian-files + @echo "--- Building: arch packages" + dh_testdir + dh_testroot + dh_link + dh_installdocs -a + dh_installchangelogs -a + dh_installexamples -a + pod2man -c 'Free pascal for Debian GNU/Linux' \ + debian/fpc-depends > debian/fpc-depends.1 + dh_installman -s + dh_strip -s + dh_compress -a + dh_fixperms -a + dh_installdeb -s + dh_shlibdeps -s + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s $(DEB_DH_BUILDDEB_ARGS) + +.PHONY: build clean binary binary-arch \ + binary-indep debian-files build-arch \ + install install-indep install-arch \ + configure + +get-orig-source: + -uscan --upstream-version=0 --rename --- fpc-2.2.0-dfsg1.orig/debian/fp-units-base.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-base.install.in @@ -0,0 +1,11 @@ +/usr/share/doc/fp-units-base + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fpmkunit +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/paszlib +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/pasjpeg +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/ncurses +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/x11 +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/regexpr +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/hash +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/uuid +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fppkg --- fpc-2.2.0-dfsg1.orig/debian/orig-tar.sh +++ fpc-2.2.0-dfsg1/debian/orig-tar.sh @@ -0,0 +1,17 @@ +#!/bin/sh -e + +# called by uscan with '--upstream-version' +TAR=$3 +DIR=fpcbuild-$2 + +# clean up the upstream tarball +tar -x -z -f $TAR +tar -c -z -f $TAR --exclude '*.dll' --exclude '*.exe' --exclude '*.log' --exclude '*.o' $DIR +rm -rf $DIR + +# move to directory 'tarballs' +if [ -r .svn/deb-layout ]; then + . .svn/deb-layout + mv $TAR $origDir + echo "moved $TAR to $origDir" +fi --- fpc-2.2.0-dfsg1.orig/debian/fp-units-fv.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-fv.install.in @@ -0,0 +1,2 @@ +/usr/share/doc/fp-units-fv +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fv --- fpc-2.2.0-dfsg1.orig/debian/fp-units-gtk.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-gtk.install.in @@ -0,0 +1,4 @@ +/usr/share/doc/fp-units-gtk + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gtk +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fpgtk --- fpc-2.2.0-dfsg1.orig/debian/fp-units-net.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-net.install.in @@ -0,0 +1,12 @@ +/usr/share/doc/fp-units-net + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/netdb +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/libasync +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/libcurl +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/dbus +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/httpd-1.3 +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/httpd-2.0 +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/httpd-2.2 +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/ldap +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/openssl +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/pcap --- fpc-2.2.0-dfsg1.orig/debian/fp-units-i386.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-i386.install.in @@ -0,0 +1,3 @@ +/usr/share/doc/fp-units-i386 + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/libc --- fpc-2.2.0-dfsg1.orig/debian/fp-compiler.manpages +++ fpc-2.2.0-dfsg1/debian/fp-compiler.manpages @@ -0,0 +1 @@ +debian/fpc-depends.1 --- fpc-2.2.0-dfsg1.orig/debian/fp-docs.doc-base +++ fpc-2.2.0-dfsg1/debian/fp-docs.doc-base @@ -0,0 +1,10 @@ +Document: fpc-docs +Title: Free Pascal Documentation +Author: Michael van Canneyt +Abstract: Documentation for the Free Pascal Compiler. + . +Section: Development + +Format: html +Files: /usr/share/doc/fp-docs/* +Index: /usr/share/doc/fp-docs/fpctoc.html --- fpc-2.2.0-dfsg1.orig/debian/fp-units-misc.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-misc.install.in @@ -0,0 +1,14 @@ +/usr/share/doc/fp-units-misc + +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/utmp +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/pthreads +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/unixutil +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/zlib +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/tcl +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/cdrom +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/bfd +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/syslog +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/gdbint +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/unzip +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/newt +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/fftw --- fpc-2.2.0-dfsg1.orig/debian/copyright +++ fpc-2.2.0-dfsg1/debian/copyright @@ -0,0 +1,71 @@ +The packages were originally put together by: + Peter Vreman + +Debian maintainer: + Carlos Laviola + +With sources obtained from: +http://ufpr.dl.sourceforge.net/sourceforge/freepascal/fpcbuild-2.2.0.tar.gz + +The files and libraries are released under the terms of the GNU Library +General Public License, which can be found in the file +/usr/share/common-licenses/GPL-2 on a Debian system. + +- object files and libraries linked into an application may be + distributed without source code. + +---------- + +djgpp: + +Copyright (C) DJ Delorie + 24 Kirsten Ave + Rochester NH 03867-2954 + + Source code copyright DJ Delorie is distributed under the terms of the + GNU General Public Licence, with the following exceptions: + + * Any existing copyright or authorship information in any given source + file must remain intact. If you modify a source file, a notice to that + effect must be added to the authorship information in the source file. + + * binaries provided in djgpp may be distributed without sources ONLY if + the recipient is given sufficient information to obtain a copy of djgpp + themselves. This primarily applies to go32.exe, emu387, stub.exe, and + the graphics drivers. + + * modified versions of the binaries provided in djgpp must be + distributed under the terms of the GPL. + + * objects and libraries linked into an application may be distributed + without sources. + +---------- + +emx: + + emx 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, or (at your option) + any later version. + +---------- + +rsx: + +Copyright (C) 1993-1998 Rainer Schnither + email to rainer@mathematik.uni-bielefeld.de + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + 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. + --- fpc-2.2.0-dfsg1.orig/debian/fp-utils.install.in +++ fpc-2.2.0-dfsg1/debian/fp-utils.install.in @@ -0,0 +1,51 @@ +/usr/bin/fppkg +/usr/bin/ppufiles +/usr/bin/ppudump +/usr/bin/ppumove +/usr/bin/ppdep +/usr/bin/ptop +/usr/bin/rstconv +/usr/bin/data2inc +/usr/bin/bin2obj +/usr/bin/delp +/usr/bin/plex +/usr/bin/pyacc +/usr/bin/h2pas +/usr/bin/h2paspp +/usr/bin/postw32 +/usr/bin/fpcmake +/usr/bin/fpcres +/usr/bin/fprcp +/usr/bin/fpdoc +/usr/bin/makeskel +/usr/bin/unitdiff +/usr/bin/mkxmlrpc +/usr/bin/rmcvsdir +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/lexyacc +/usr/lib/fpc/lexyacc/yylex.cod +/usr/lib/fpc/lexyacc/yyparse.cod +/usr/share/man/man1/fppkg.1 +/usr/share/man/man1/bin2obj.1 +/usr/share/man/man1/data2inc.1 +/usr/share/man/man1/fprcp.1 +/usr/share/man/man1/h2paspp.1 +/usr/share/man/man1/makeskel.1 +/usr/share/man/man1/mkxmlrpc.1 +/usr/share/man/man1/postw32.1 +/usr/share/man/man1/rmcvsdir.1 +/usr/share/man/man1/unitdiff.1 +/usr/share/man/man1/delp.1 +/usr/share/man/man1/fpcmake.1 +/usr/share/man/man1/fpcres.1 +/usr/share/man/man1/h2pas.1 +/usr/share/man/man1/plex.1 +/usr/share/man/man1/ppdep.1 +/usr/share/man/man1/ppudump.1 +/usr/share/man/man1/ppufiles.1 +/usr/share/man/man1/ppumove.1 +/usr/share/man/man1/ptop.1 +/usr/share/man/man1/pyacc.1 +/usr/share/man/man1/rstconv.1 +/usr/share/man/man1/fpdoc.1 +/usr/share/man/man5/fpcmake.5 +/usr/share/man/man5/ptop.cfg.5 --- fpc-2.2.0-dfsg1.orig/debian/fp-units-rtl.install.in +++ fpc-2.2.0-dfsg1/debian/fp-units-rtl.install.in @@ -0,0 +1 @@ +/usr/lib/fpc/%{fpcversion}/units/%{fpctarget}/rtl --- fpc-2.2.0-dfsg1.orig/debian/patches/00list +++ fpc-2.2.0-dfsg1/debian/patches/00list @@ -0,0 +1,9 @@ +01_Makefile.hev +02_rtl.tex +03_Makefiles +04_preamble.hevea +05_compiler_sparc_cgcpu +06_dbase_units +07_gdb +08_xml_units +09_manpages --- fpc-2.2.0-dfsg1.orig/debian/patches/01_Makefile.hev.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/01_Makefile.hev.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_Makefile.hev.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad fpc-2.2.0~/fpcdocs/Makefile.hev fpc-2.2.0/fpcdocs/Makefile.hev +--- fpc-2.2.0~/fpcdocs/Makefile.hev 2005-05-16 15:39:26.000000000 -0300 ++++ fpc-2.2.0/fpcdocs/Makefile.hev 2007-10-02 01:19:14.000000000 -0300 +@@ -3,13 +3,16 @@ + # + + %.chk: %.tex fpc-hevea.tex +- cp -f preamble.hev preamble.inc ++ cp -f preamble.hevea preamble.inc + $(HEVEA) $(HEVEAOPTS) $< + touch $(basename $<).chk ++ mkdir $(basename $<) ++ mv -f $(basename $<).html $(basename $<)/$(basename $<).html + + user.chk: $(INCLUDES) user.tex messages.inc + prog.chk: $(INCLUDES) prog.tex + onechap.chk: $(INCLUDES) onechap.tex + ref.chk: $(INCLUDES) ref.tex ++rtl.chk: $(INCLUDES) rtl.tex + fpdoc.chk: $(INCLUDES) fpdoc.tex + --- fpc-2.2.0-dfsg1.orig/debian/patches/02_rtl.tex.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/02_rtl.tex.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_rtl.tex.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad fpc-2.2.0~/fpcdocs/rtl.tex fpc-2.2.0/fpcdocs/rtl.tex +--- fpc-2.2.0~/fpcdocs/rtl.tex 2007-06-25 16:46:19.000000000 -0300 ++++ fpc-2.2.0/fpcdocs/rtl.tex 2007-10-02 01:31:56.000000000 -0300 +@@ -21,13 +21,15 @@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Preamble. + \input{preamble.inc} +-\ifpdf ++\begin{latexonly} ++ \ifpdf + \pdfinfo{/Author(Michael Van Canneyt) + /Title(RTL reference guide) + /Subject(FPC Run-Time library: Reference guide) + /Keywords(Free Pascal) + } +-\fi ++ \fi ++\end{latexonly} + % + % Settings + % --- fpc-2.2.0-dfsg1.orig/debian/patches/04_preamble.hevea.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/04_preamble.hevea.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_preamble.hevea.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad fpc-2.2.0~/fpcdocs/preamble.hevea fpc-2.2.0/fpcdocs/preamble.hevea +--- fpc-2.2.0~/fpcdocs/preamble.hevea 2006-04-24 16:39:18.000000000 -0300 ++++ fpc-2.2.0/fpcdocs/preamble.hevea 2007-10-02 02:29:29.000000000 -0300 +@@ -2,5 +2,7 @@ + % Preamble for HTML output using Hevea + % + \documentclass[a4paper]{report} ++\usepackage{html} ++\usepackage{htmllist} + \input{fpc-hevea.tex} + \newcommand{\keywordlink}[1]{\typeout{Keyword link: #1}} --- fpc-2.2.0-dfsg1.orig/debian/patches/07_gdb.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/07_gdb.dpatch @@ -0,0 +1,109 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 07_gdb.a.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Merge some stuff from trunk to gdbint.pp to support gdb version +## DP: 6.7.x. + +@DPATCH@ +diff -urNad fpc-2.2.0-dfsg1~/fpcsrc/packages/base/gdbint/gdbint.pp fpc-2.2.0-dfsg1/fpcsrc/packages/base/gdbint/gdbint.pp +--- fpc-2.2.0-dfsg1~/fpcsrc/packages/base/gdbint/gdbint.pp 2007-02-02 00:09:46.000000000 +0100 ++++ fpc-2.2.0-dfsg1/fpcsrc/packages/base/gdbint/gdbint.pp 2008-03-15 18:40:31.000000000 +0100 +@@ -71,6 +71,17 @@ + {$define GDB_HAS_DB_COMMANDS} + {$define GDB_NEEDS_NO_ERROR_INIT} + {$define GDB_USES_EXPAT_LIB} ++ {$define GDB_HAS_DEBUG_FILE_DIRECTORY} ++{$endif def GDB_V605} ++ ++{ 6.7.x } ++{$ifdef GDB_V607} ++ {$info using gdb 6.7.x} ++ {$define GDB_V6} ++ {$define GDB_HAS_DB_COMMANDS} ++ {$define GDB_NEEDS_NO_ERROR_INIT} ++ {$define GDB_USES_EXPAT_LIB} ++ {$define GDB_HAS_DEBUG_FILE_DIRECTORY} + {$endif def GDB_V605} + + {$ifdef GDB_V6} +@@ -207,14 +218,24 @@ + {$LINKLIB libhistory.a} + {$LINKLIB libiberty.a} + {$LINKLIB libintl.a} +- {$LINKLIB libiconv.a} +- {$LINKLIB libncurses.a} +- {$ifdef GDB_USES_EXPAT_LIB} +- {$LINKLIB expat} +- {$endif GDB_USES_EXPAT_LIB} +- {$LINKLIB gcc} +- {$LINKLIB cygwin} { alias of libm.a and libc.a } ++ {$ifdef USE_MINGW_GDB} ++ {$LINKLIB libm.a} ++ {$LINKLIB libmoldname.a} ++ {$LINKLIB libgcc.a} ++ {$LINKLIB libws2_32.a} ++ {$LINKLIB libmingwex.a} ++ {$LINKLIB libmingw32.a} ++ {$LINKLIB libmsvcrt.a} ++ {$else not USE_MINGW_GDB} ++ {$LINKLIB libiconv.a} ++ {$LINKLIB libncurses.a} ++ {$ifdef GDB_USES_EXPAT_LIB} ++ {$LINKLIB expat} ++ {$endif GDB_USES_EXPAT_LIB} ++ {$LINKLIB gcc} ++ {$LINKLIB cygwin} { alias of libm.a and libc.a } + {$LINKLIB imagehlp} ++ {$endif not USE_MINGW_GDB} + {$LINKLIB kernel32} + {$LINKLIB user32} + {$endif win32} +@@ -2151,6 +2172,7 @@ + procedure tgdbinterface.gdb_command(const s:string); + var + command : array[0..256] of char; ++ prev_stop_breakpoint_number, + mask : longint; + s2 : string; + old_quit_return, +@@ -2166,6 +2188,11 @@ + old_error_return:=error_return; + gdb_error:=0; + got_error:=false; ++ if command_level=1 then ++ prev_stop_breakpoint_number:=0 ++ else ++ prev_stop_breakpoint_number:=stop_breakpoint_number; ++ + stop_breakpoint_number:=0; + { Trap quit commands } + s2:=s; +@@ -2213,6 +2240,7 @@ + quit_return:=old_quit_return; + error_return:=old_error_return; + dec(command_level); ++ stop_breakpoint_number:=prev_stop_breakpoint_number; + SetFPUState(control); + end; + +@@ -2538,12 +2566,19 @@ + return_child_result_value : longint;cvar;public; + batch_silent : longbool;cvar;public; + {$endif} ++{$ifdef GDB_HAS_DEBUG_FILE_DIRECTORY} ++var ++ debug_file_directory : pchar; cvar; external; ++{$endif GDB_HAS_DEBUG_FILE_DIRECTORY} + + begin + {$ifdef GDB_HAS_SYSROOT} + gdb_sysrootc := #0; + gdb_sysroot := @gdb_sysrootc; + {$endif} ++{$ifdef GDB_HAS_DEBUG_FILE_DIRECTORY} ++ debug_file_directory := '/usr/local/lib'; ++{$endif GDB_HAS_DEBUG_FILE_DIRECTORY} + gdb_stderr:=nil; + gdb_stdout:=nil; + InitLibGDB; --- fpc-2.2.0-dfsg1.orig/debian/patches/03_Makefiles.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/03_Makefiles.dpatch @@ -0,0 +1,199 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_Makefile.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fixes several issues in make files. + +@DPATCH@ +diff -urNad fpc-2.2.0~/fpcdocs/Makefile fpc-2.2.0/fpcdocs/Makefile +--- fpc-2.2.0~/fpcdocs/Makefile 2007-08-25 10:18:13.000000000 -0300 ++++ fpc-2.2.0/fpcdocs/Makefile 2007-10-01 23:53:06.000000000 -0300 +@@ -1852,7 +1852,7 @@ + @echo ' pdfdist : pdf, and archive result.' + clean: + -rm -f preamble.inc date.inc messages.inc rtl.inc +- -rm -f *.4tc *.4ct *.css *.lg *.tmp *.xref *.kwd *.xct ++ -rm -f *.4tc *.4ct *.css *.lg *.tmp *.xref *.kwd *.xct *.haux *.hind + -rm -rf $(DOCS) + -rm -f $(CHK) $(TOC) $(LOG) $(DVI) $(PDF) $(AUX) $(OUT) $(PS) $(HTML) *.i* $(LOT) $(TXT) + -rm -f $(notdir $(wildcard styles/*.sty)) +@@ -2152,10 +2152,8 @@ + htmlinstall: html + install -d -m 755 $(INSTALL_DOCDIR) + cp fpctoc.html $(INSTALL_DOCDIR) +- install -d -m 755 $(INSTALL_DOCDIR)/buttons +- cp buttons/*.* $(INSTALL_DOCDIR)/buttons +- install -d -m 755 $(INSTALL_DOCDIR)/pics +- cp pics/*.* $(INSTALL_DOCDIR)/pics ++ cp -R buttons $(INSTALL_DOCDIR) ++ cp -R pics $(INSTALL_DOCDIR) + cp -R $(HTML) $(INSTALL_DOCDIR) + find $(INSTALL_DOCDIR) -name 'CVS' -or -name '*.eps' | xargs -n1 rm -rf + install: +Index: demo/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/Makefile.fpc ++++ fpc-2.2.0/demo/Makefile.fpc +@@ -34,4 +34,4 @@ + demozip: zipsourceinstall + + [default] +-fpcdir=.. ++fpcdir=../fpcsrc +Index: demo/unix/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/unix/Makefile.fpc ++++ fpc-2.2.0/demo/unix/Makefile.fpc +@@ -6,4 +6,4 @@ + programs=cgibmp daemon + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/text/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/text/Makefile.fpc ++++ fpc-2.2.0/demo/text/Makefile.fpc +@@ -6,4 +6,4 @@ + programs=eratos qsort hello blackbox magic lines + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/linux/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/linux/Makefile.fpc ++++ fpc-2.2.0/demo/linux/Makefile.fpc +@@ -6,4 +6,4 @@ + programs_linux=epoll-pipe + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/graph/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/graph/Makefile.fpc ++++ fpc-2.2.0/demo/graph/Makefile.fpc +@@ -7,7 +7,7 @@ + programs=fpctris mandel samegame quad maze gravwars + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + + [prerules] + ifdef GRAPHICS +Index: demo/lister/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/lister/Makefile.fpc ++++ fpc-2.2.0/demo/lister/Makefile.fpc +@@ -7,5 +7,5 @@ + programs=lister + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + +Index: demo/modex/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/modex/Makefile.fpc ++++ fpc-2.2.0/demo/modex/Makefile.fpc +@@ -6,4 +6,4 @@ + programs_go32v2=voxel + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/morphos/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/morphos/Makefile.fpc ++++ fpc-2.2.0/demo/morphos/Makefile.fpc +@@ -6,4 +6,4 @@ + programs_morphos=ahitest asltest window getvolumes openlib process + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/win32/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/win32/Makefile.fpc ++++ fpc-2.2.0/demo/win32/Makefile.fpc +@@ -6,4 +6,4 @@ + programs_win32=winhello menu dlltest testdll edit + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc +Index: demo/os2/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/os2/Makefile.fpc ++++ fpc-2.2.0/demo/os2/Makefile.fpc +@@ -6,7 +6,7 @@ + programs_os2=basicpm pmdemo1 getctry + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + + [rules] + basicpm.exe: basicpm.pas +Index: demo/netware/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/netware/Makefile.fpc ++++ fpc-2.2.0/demo/netware/Makefile.fpc +@@ -6,7 +6,7 @@ + programs_netware=nutmon check nuttest + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + + [rules] + nutmon.nlm: nutmon.pp nutconnection.pp +Index: demo/netwlibc/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/netwlibc/Makefile.fpc ++++ fpc-2.2.0/demo/netwlibc/Makefile.fpc +@@ -6,7 +6,7 @@ + programs_netwlibc=nuttest + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + + [prerules] + # binutils are the same for targets netware and netwlibc +Index: demo/freebsd/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/demo/freebsd/Makefile.fpc ++++ fpc-2.2.0/demo/freebsd/Makefile.fpc +@@ -7,5 +7,5 @@ + programs=fontdemo sysmousetest demo_kqueue demo_sendfile + + [default] +-fpcdir=../.. ++fpcdir=../../fpcsrc + +Index: fpcsrc/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/fpcsrc/Makefile.fpc ++++ fpc-2.2.0/fpcsrc/Makefile.fpc +@@ -7,7 +7,8 @@ + version=2.2.0 + + [target] +-dirs=compiler rtl utils fv packages ide installer ++#dirs=compiler rtl utils fv packages ide installer ++dirs=compiler rtl utils fv packages ide + + [require] + nortl=y +@@ -280,7 +281,7 @@ + $(MAKE) utils_all $(BUILDOPTS) + ifdef IDE + $(MAKE) ide_all $(BUILDOPTS) +- $(MAKE) installer_all $(BUILDOPTS) ++# $(MAKE) installer_all $(BUILDOPTS) + endif + $(ECHOREDIR) Build > $(BUILDSTAMP) + --- fpc-2.2.0-dfsg1.orig/debian/patches/09_manpages.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/09_manpages.dpatch @@ -0,0 +1,193 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_manpages.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: This patch adds man pages to the FPC binaries. + +@DPATCH@ +Index: install/man/man1/fppkg.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/fppkg.1 ++++ fpc-2.2.0/install/man/man1/fppkg.1 +@@ -0,0 +1,25 @@ ++.TH fppkg 1 "18 Nov 2005" "Free Pascal" "Free Pascal Packages Downloader" ++.SH NAME ++fppkg \- The Free Pascal Packages Download program. ++ ++.SH SYNOPSIS ++ ++.B fppkg [options] ++ ++.SH DESCRIPTION ++ ++.B fppkg ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B fppkg ++ ++.SH OPTIONS ++fppkg has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) +Index: install/man/man1/fpcmkcfg.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/fpcmkcfg.1 +--- fpc-2.2.0/install/man/man1/fpcmkcfg.1 +@@ -0,0 +1,26 @@ ++.TH fpcmkcfg 1 "30 April 2008" "Free Pascal" "Free Pascal configuration maker" ++.SH NAME ++fpcmkcfg \- The Free Pascal configuration program. ++ ++.SH SYNOPSIS ++ ++.B fpcmkcfg [options] ++ ++.SH DESCRIPTION ++makes a configuration file for the compiler. ++ ++.B fpcmkcfg ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B fpcmkcfg ++ ++.SH OPTIONS ++fpcmkcfg has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) +Index: install/man/man1/fpcres.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/fpcres.1 +--- fpc-2.2.0/install/man/man1/fpcres.1 +@@ -0,0 +1,26 @@ ++.TH fpcres 1 "30 April 2008" "Free Pascal" "Free Pascal resource compiler" ++.SH NAME ++fpcres \- The Free Pascal resource compiler program. ++ ++.SH SYNOPSIS ++ ++.B fpcres [options] ++ ++.SH DESCRIPTION ++Compiles a .res file into .o file. ++ ++.B fpcres ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B fpcres ++ ++.SH OPTIONS ++fpcres has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) +Index: install/man/man1/rmcvsdir.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/rmcvsdir.1 +--- fpc-2.2.0/install/man/man1/rmcvsdir.1 +@@ -0,0 +1,26 @@ ++.TH rmcvsdir 1 "30 April 2008" "Free Pascal" "Free Pascal CVS tree cleaner" ++.SH NAME ++rmcvsdir \- The Free Pascal CVS tree cleaner program. ++ ++.SH SYNOPSIS ++ ++.B rmcvsdir [options] ++ ++.SH DESCRIPTION ++Removes the CVS directories from a directory tree. ++ ++.B rmcvsdir ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B rmcvsdir ++ ++.SH OPTIONS ++rmcvsdir has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) +Index: install/man/man1/fpcsubst.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/fpcsubst.1 +--- fpc-2.2.0/install/man/man1/fpcsubst.1 +@@ -0,0 +1,27 @@ ++.TH fpcsubst 1 "30 April 2008" "Free Pascal" "Free Pascal macro processor" ++.SH NAME ++fpcsubst \- The Free Pascal macro processing program. ++ ++.SH SYNOPSIS ++ ++.B fpcsubst [options] ++ ++.SH DESCRIPTION ++Replaces some standard %XYZ% identifiers with a text, it's a macro ++preprocessor. ++ ++.B fpcsubst ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B fpcsubst ++ ++.SH OPTIONS ++fpcsubst has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) +Index: install/man/man1/mkxmlrpc.1 +=================================================================== +--- fpc-2.2.0~/install/man/man1/mkxmlrpc.1 +--- fpc-2.2.0/install/man/man1/mkxmlrpc.1 +@@ -0,0 +1,26 @@ ++.TH mkxmlrpc 1 "30 April 2008" "Free Pascal" "Free Pascal XML-RPC creator" ++.SH NAME ++mkxmlrpc \- The Free Pascal XML-RPC program. ++ ++.SH SYNOPSIS ++ ++.B mkxmlrpc [options] ++ ++.SH DESCRIPTION ++Creates an XML-RPC wrapper for a pascal interface. ++ ++.B mkxmlrpc ++TO BE FILLED. ++ ++.SH USAGE ++ ++.B mkxmlrpc ++ ++.SH OPTIONS ++mkxmlrpc has a small number of options to control it's behaviour: ++ ++.SH SEE ALSO ++.IP ++.BR fpcmake (1) ++.BR ppc386 (1) ++.BR make (1) --- fpc-2.2.0-dfsg1.orig/debian/patches/06_dbase_units.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/06_dbase_units.dpatch @@ -0,0 +1,544 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06_unit_dbase.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: This patch enables building dabse FCL units for architectures +## DP: other than i386. + +@DPATCH@ +Index: fpcsrc/packages/fcl-db/src/dbase/Makefile.fpc +=================================================================== +--- fpc-2.2.0~/fpcsrc/packages/fcl-db/src/dbase/Makefile.fpc (revision 9266) ++++ fpc-2.2.0/fpcsrc/packages/fcl-db/src/dbase/Makefile.fpc (working copy) +@@ -6,11 +6,12 @@ + main=fcl-db + + [target] +-units_i386=dbf +-examples_i386=testdbf ++units=dbf \ ++ dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields \ ++ dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile \ ++ dbf_prscore dbf_prsdef dbf_prssupp dbf_str + +-units_x86_64=dbf +-examples_x86_64=testdbf ++examples=testdbf + + [compiler] + options=-S2 -Sh +@@ -20,37 +21,17 @@ + + [install] + fpcpackage=y +-units_i386=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields \ +- dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile \ +- dbf_prscore dbf_prsdef dbf_prssupp dbf_str + +- +-units_x86_64=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields \ +- dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile \ +- dbf_prscore dbf_prsdef dbf_prssupp dbf_str +- +-[clean] +-units=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields \ +- dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile \ +- dbf_prscore dbf_prsdef dbf_prssupp dbf_str +- + [prerules] + # dbf_Wtil is needed on all targets except windows + ifneq ($(OS_TARGET),win32) + ifneq ($(OS_TARGET),win64) + +-ifeq ($(CPU_TARGET),i386) + INSTALL_UNITS+=dbf_wtil + CLEAN_UNITS+=dbf_wtil +-endif + +-ifeq ($(CPU_TARGET),x86_64) +-INSTALL_UNITS+=dbf_wtil +-CLEAN_UNITS+=dbf_wtil + endif +- + endif +-endif + + [rules] + .NOTPARALLEL: +Index: fpcsrc/packages/fcl-db/src/dbase/Makefile +=================================================================== +--- fpc-2.2.0~/fpcsrc/packages/fcl-db/src/dbase/Makefile (revision 9266) ++++ fpc-2.2.0/fpcsrc/packages/fcl-db/src/dbase/Makefile (working copy) +@@ -1,5 +1,5 @@ + # +-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/08/29] ++# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/30] + # + default: all + MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-embedded +@@ -234,85 +234,163 @@ + PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR)))))) + ifneq ($(OS_TARGET),win32) + ifneq ($(OS_TARGET),win64) +-ifeq ($(CPU_TARGET),i386) + INSTALL_UNITS+=dbf_wtil + CLEAN_UNITS+=dbf_wtil + endif +-ifeq ($(CPU_TARGET),x86_64) +-INSTALL_UNITS+=dbf_wtil +-CLEAN_UNITS+=dbf_wtil + endif +-endif +-endif + ifeq ($(FULL_TARGET),i386-linux) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-go32v2) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-win32) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-os2) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-freebsd) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-beos) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-netbsd) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-solaris) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-qnx) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-netware) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-openbsd) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-wdosx) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-darwin) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-emx) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-watcom) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-netwlibc) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-wince) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-embedded) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),i386-symbian) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif ++ifeq ($(FULL_TARGET),m68k-linux) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-freebsd) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-netbsd) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-amiga) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-atari) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-openbsd) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-palmos) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),m68k-embedded) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-linux) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-netbsd) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-amiga) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-macos) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-darwin) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-morphos) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc-embedded) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),sparc-linux) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),sparc-netbsd) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),sparc-solaris) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),sparc-embedded) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif + ifeq ($(FULL_TARGET),x86_64-linux) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),x86_64-freebsd) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),x86_64-win64) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif + ifeq ($(FULL_TARGET),x86_64-embedded) +-override TARGET_UNITS+=dbf ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str + endif ++ifeq ($(FULL_TARGET),arm-linux) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-palmos) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-wince) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-gba) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-nds) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-embedded) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),arm-symbian) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc64-linux) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif ++ifeq ($(FULL_TARGET),powerpc64-embedded) ++override TARGET_UNITS+=dbf dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++endif + ifeq ($(FULL_TARGET),i386-linux) + override TARGET_EXAMPLES+=testdbf + endif +@@ -370,240 +448,102 @@ + ifeq ($(FULL_TARGET),i386-symbian) + override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),x86_64-linux) ++ifeq ($(FULL_TARGET),m68k-linux) + override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),x86_64-freebsd) ++ifeq ($(FULL_TARGET),m68k-freebsd) + override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),x86_64-win64) ++ifeq ($(FULL_TARGET),m68k-netbsd) + override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),x86_64-embedded) ++ifeq ($(FULL_TARGET),m68k-amiga) + override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),i386-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-go32v2) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-win32) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-os2) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-freebsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-beos) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-solaris) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-qnx) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netware) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-openbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-wdosx) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-darwin) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-emx) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-watcom) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netwlibc) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-wince) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-symbian) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),m68k-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),m68k-freebsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),m68k-netbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),m68k-amiga) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif + ifeq ($(FULL_TARGET),m68k-atari) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),m68k-openbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),m68k-palmos) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),m68k-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-netbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-amiga) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-macos) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-darwin) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-morphos) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),sparc-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),sparc-netbsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),sparc-solaris) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),sparc-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),x86_64-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),x86_64-freebsd) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),x86_64-win64) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),x86_64-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-palmos) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-wince) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-gba) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-nds) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),arm-symbian) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc64-linux) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif + ifeq ($(FULL_TARGET),powerpc64-embedded) +-override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str ++override TARGET_EXAMPLES+=testdbf + endif +-ifeq ($(FULL_TARGET),i386-linux) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-go32v2) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-win32) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-os2) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-freebsd) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-beos) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netbsd) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-solaris) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-qnx) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netware) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-openbsd) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-wdosx) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-darwin) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-emx) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-watcom) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-netwlibc) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-wince) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-embedded) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),i386-symbian) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),x86_64-linux) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),x86_64-freebsd) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),x86_64-win64) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif +-ifeq ($(FULL_TARGET),x86_64-embedded) +-override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str +-endif + override INSTALL_FPCPACKAGE=y + ifeq ($(FULL_TARGET),i386-linux) + override COMPILER_OPTIONS+=-S2 -Sh --- fpc-2.2.0-dfsg1.orig/debian/patches/05_compiler_sparc_cgcpu.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/05_compiler_sparc_cgcpu.dpatch @@ -0,0 +1,54 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06_unit_dbase.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: This patch fixes a non deterministic register allocation for +## DP: sprac architecture and permits long jumps for huge programs. + +@DPATCH@ +Index: fpcsrc/compiler/sparc/cgcpu.pas +=================================================================== +--- fpc-2.2.0~/fpcsrc/compiler/sparc/cgcpu.pas ++++ fpc-2.2.0/fpcsrc/compiler/sparc/cgcpu.pas +@@ -489,7 +489,7 @@ + end + else + begin +- case fromsize of ++ case tosize of + { signed integer registers } + OS_8, + OS_S8: +@@ -540,6 +540,9 @@ + InternalError(2002122101); + end; + handle_load_store(list,false,op,reg,ref); ++ if (fromsize=OS_S8) and ++ (tosize=OS_16) then ++ a_load_reg_reg(list,fromsize,tosize,reg,reg); + end; + end; + +@@ -1342,12 +1345,19 @@ + reference_reset_base(href,NR_O0,0); + cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_L0); + { jmp *vmtoffs(%eax) ; method offs } +- reference_reset_base(href,NR_L0,procdef._class.vmtmethodoffset(procdef.extnumber)); ++ reference_reset_base(href,NR_G1,procdef._class.vmtmethodoffset(procdef.extnumber)); + list.concat(taicpu.op_ref_reg(A_LD,href,NR_L1)); +- list.concat(taicpu.op_reg(A_JMP,NR_L1)); ++ list.concat(taicpu.op_reg(A_JMP,NR_G1)); + end + else +- list.concat(taicpu.op_sym(A_BA,current_asmdata.RefAsmSymbol(procdef.mangledname))); ++ begin ++ reference_reset_symbol(href,current_asmdata.RefAsmSymbol(procdef.mangledname),0); ++ href.refaddr := addr_hi; ++ list.concat(taicpu.op_ref_reg(A_SETHI,href,NR_G1)); ++ href.refaddr := addr_lo; ++ list.concat(taicpu.op_reg_ref_reg(A_OR,NR_G1,href,NR_G1)); ++ list.concat(taicpu.op_reg(A_JMP,NR_G1)); ++ end; + { Delay slot } + list.Concat(TAiCpu.Op_none(A_NOP)); + --- fpc-2.2.0-dfsg1.orig/debian/patches/08_xml_units.dpatch +++ fpc-2.2.0-dfsg1/debian/patches/08_xml_units.dpatch @@ -0,0 +1,1435 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 07_gdb.a.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Merge some stuff from trunk to gdbint.pp to support gdb version +## DP: 6.7.x. + +@DPATCH@ +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/htmlwriter.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/htmlwriter.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/htmlwriter.pp (copie de travail) +@@ -37,10 +37,10 @@ + function CreateElement (tag : THTMLElementClass; sub : THTMLCustomElement) : THTMLCustomElement; + function CreateElement (tag : THTMLElementClass; subs : Array of THTMLCustomElement) : THTMLCustomElement; + function CreateElement (tag : THTMLElementClass; subs : TDOMNodelist) : THTMLCustomElement; ++ function AddElement (tag : THTMLElementClass) : THTMLCustomElement; ++ public + function StartElement (tag : THTMLElementClass) : THTMLCustomElement; + function EndElement (tag : THTMLElementClass) : THTMLCustomElement; +- function AddElement (tag : THTMLElementClass) : THTMLCustomElement; +- public + constructor create (aDocument : THTMLDocument); + procedure AddElement (el : THTMLCustomElement); + procedure AddElements (subs : TDOMNodelist); +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/dom_html.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/dom_html.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/dom_html.pp (copie de travail) +@@ -17,6 +17,8 @@ + { Please note that this is a very early version, most properties and methods + are not implemented yet. } + ++{$mode objfpc} ++{$H+} + + unit DOM_HTML; + +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xmlstreaming.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xmlstreaming.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xmlstreaming.pp (copie de travail) +@@ -52,19 +52,20 @@ + procedure EndList; override; + procedure BeginProperty(const PropName: String); override; + procedure EndProperty; override; +- ++ procedure Write(const Buffer; Count: LongInt); override; + procedure WriteBinary(const Buffer; Count: Longint); override; + procedure WriteBoolean(Value: Boolean); override; + // procedure WriteChar(Value: Char); + procedure WriteFloat(const Value: Extended); override; + procedure WriteSingle(const Value: Single); override; +- {!!!: procedure WriteCurrency(const Value: Currency); override;} ++ procedure WriteCurrency(const Value: Currency); override; + procedure WriteDate(const Value: TDateTime); override; + procedure WriteIdent(const Ident: string); override; + procedure WriteInteger(Value: Int64); override; + procedure WriteMethodName(const Name: String); override; + procedure WriteSet(Value: LongInt; SetType: Pointer); override; + procedure WriteString(const Value: String); override; ++ procedure WriteWideString(const Value: WideString); override; + end; + + +@@ -188,6 +189,10 @@ + begin + WriteLn('WriteBinary (', Count, ' Bytes)'); + end; ++procedure TXMLObjectWriter.Write(const Buffer; Count: Longint); ++begin ++ WriteLn('WriteBinary (', Count, ' Bytes)'); ++end; + + procedure TXMLObjectWriter.WriteBoolean(Value: Boolean); + begin +@@ -214,6 +219,11 @@ + GetPropertyElement('ident')['value'] := Ident; + end; + ++procedure TXMLObjectWriter.WriteCurrency(const Value : Currency); ++begin ++ Writeln('WriteCurrency',Value); ++end; ++ + procedure TXMLObjectWriter.WriteInteger(Value: Int64); + begin + GetPropertyElement('integer')['value'] := IntToStr(Value); +@@ -234,5 +244,10 @@ + GetPropertyElement('string')['value'] := Value; + end; + ++procedure TXMLObjectWriter.WriteWideString(const Value: WideString); ++begin ++ GetPropertyElement('widestring')['value'] := Value; ++end; + ++ + end. +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/sax_xml.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/sax_xml.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/sax_xml.pp (copie de travail) +@@ -1,5 +1,3 @@ +-{$mode objfpc} +-{$h+} + { + This file is part of the Free Component Library + Copyright (c) 2006 by Michael Van Canneyt. +@@ -16,6 +14,9 @@ + + **********************************************************************} + ++{$mode objfpc} ++{$h+} ++ + unit SAX_XML; + + interface +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xmlwrite.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xmlwrite.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xmlwrite.pp (copie de travail) +@@ -17,12 +17,8 @@ + + unit XMLWrite; + +-{$ifdef fpc} + {$MODE objfpc} + {$H+} +-{/$DEFINE HAS_INLINE} +-{$INLINE OFF} +-{$endif} + + interface + +@@ -305,7 +301,7 @@ + EndPos := 1; + while EndPos <= Length(s) do + begin +- if (s[EndPos] < #255) and (Char(s[EndPos]) in SpecialChars) then ++ if (s[EndPos] < #255) and (Char(ord(s[EndPos])) in SpecialChars) then + begin + wrtChars(@s[StartPos], EndPos - StartPos); + SpecialCharCallback(s[EndPos]); +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/sax_html.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/sax_html.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/sax_html.pp (copie de travail) +@@ -24,6 +24,8 @@ + * Entity references in attribute values don't get parsed. + } + ++{$mode objfpc} ++{$H+} + + unit SAX_HTML; + +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/dom.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/dom.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/dom.pp (copie de travail) +@@ -231,7 +231,8 @@ + + function InsertBefore(NewChild, RefChild: TDOMNode): TDOMNode; virtual; + function ReplaceChild(NewChild, OldChild: TDOMNode): TDOMNode; virtual; +- function RemoveChild(OldChild: TDOMNode): TDOMNode; virtual; ++ function DetachChild(OldChild: TDOMNode): TDOMNode; virtual; ++ function RemoveChild(OldChild: TDOMNode): TDOMNode; + function AppendChild(NewChild: TDOMNode): TDOMNode; virtual; + function HasChildNodes: Boolean; virtual; + function CloneNode(deep: Boolean): TDOMNode; overload; +@@ -276,12 +277,11 @@ + procedure FreeChildren; + function GetTextContent: DOMString; override; + procedure SetTextContent(const AValue: DOMString); override; +- function DoRemoveChild(OldChild: TDOMNode): TDOMNode; + public + destructor Destroy; override; + function InsertBefore(NewChild, RefChild: TDOMNode): TDOMNode; override; + function ReplaceChild(NewChild, OldChild: TDOMNode): TDOMNode; override; +- function RemoveChild(OldChild: TDOMNode): TDOMNode; override; ++ function DetachChild(OldChild: TDOMNode): TDOMNode; override; + function AppendChild(NewChild: TDOMNode): TDOMNode; override; + function HasChildNodes: Boolean; override; + function FindNode(const ANodeName: DOMString): TDOMNode; override; +@@ -419,6 +419,7 @@ + function IndexOfNS(const nsURI: DOMString): Integer; + function FindID(const aID: DOMString; out Index: LongWord): Boolean; + procedure ClearIDList; ++ procedure RemoveID(Elem: TDOMElement); + public + property DocType: TDOMDocumentType read GetDocType; + property Impl: TDOMImplementation read FImplementation; +@@ -453,7 +454,6 @@ + constructor Create; + destructor Destroy; override; + function AddID(Attr: TDOMAttr): Boolean; +- procedure RemoveID(Attr: TDOMAttr); + end; + + TXMLDocument = class(TDOMDocument) +@@ -815,8 +815,8 @@ + + destructor TDOMNode.Destroy; + begin +- if Assigned(FParentNode) and FParentNode.InheritsFrom(TDOMNode_WithChildren) then +- TDOMNode_WithChildren(FParentNode).DoRemoveChild(Self); ++ if Assigned(FParentNode) then ++ FParentNode.DetachChild(Self); + inherited Destroy; + end; + +@@ -867,13 +867,20 @@ + Result:=nil; + end; + +-function TDOMNode.RemoveChild(OldChild: TDOMNode): TDOMNode; ++function TDOMNode.DetachChild(OldChild: TDOMNode): TDOMNode; + begin + // OldChild isn't in our child list + raise EDOMNotFound.Create('Node.RemoveChild'); + Result:=nil; + end; + ++function TDOMNode.RemoveChild(OldChild: TDOMNode): TDOMNode; ++begin ++ DetachChild(OldChild); ++ OldChild.Free; ++ Result:=nil; ++end; ++ + function TDOMNode.AppendChild(NewChild: TDOMNode): TDOMNode; + begin + raise EDOMHierarchyRequest.Create('Node.AppendChild'); +@@ -1040,10 +1047,8 @@ + + Inc(FOwnerDocument.FRevision); // invalidate nodelists + +- // ugly workaround for RemoveChild issue... + if Assigned(NewChild.FParentNode) then +- if NewChild.FParentNode.InheritsFrom(TDOMNode_WithChildren) then +- TDOMNode_WithChildren(NewChild.FParentNode).DoRemoveChild(NewChild); ++ NewChild.FParentNode.DetachChild(NewChild); + + // DONE: Implemented InsertBefore for DocumentFragments (except ChildNodeTree) + if NewChild.NodeType = DOCUMENT_FRAGMENT_NODE then +@@ -1109,7 +1114,7 @@ + Result := NewChild; + end; + +-function TDOMNode_WithChildren.DoRemoveChild(OldChild: TDOMNode): TDOMNode; ++function TDOMNode_WithChildren.DetachChild(OldChild: TDOMNode): TDOMNode; + begin + if OldChild.ParentNode <> Self then + raise EDOMNotFound.Create('NodeWC.RemoveChild'); +@@ -1134,15 +1139,6 @@ + Result := OldChild; + end; + +-function TDOMNode_WithChildren.RemoveChild(OldChild: TDOMNode): +- TDOMNode; +-begin +- DoRemoveChild(OldChild); +- // DOM level 2: Must return removed node +- OldChild.Free; +- Result:=nil; +-end; +- + function TDOMNode_WithChildren.AppendChild(NewChild: TDOMNode): TDOMNode; + var + Tmp: TDOMNode; +@@ -1160,11 +1156,8 @@ + + Inc(FOwnerDocument.FRevision); // invalidate nodelists + +- // TODO: RemoveChild destroys removed node -> CRASH +- // this is a very ugly workaround... + if Assigned(NewChild.FParentNode) then +- if NewChild.FParentNode.InheritsFrom(TDOMNode_WithChildren) then +- TDOMNode_WithChildren(NewChild.FParentNode).DoRemoveChild(NewChild); ++ NewChild.FParentNode.DetachChild(NewChild); + + // DONE: supported AppendChild for DocumentFragments (except ChildNodeTree) + if NewChild.NodeType = DOCUMENT_FRAGMENT_NODE then +@@ -1671,13 +1664,12 @@ + inherited Create(nil); + // TODO: DOM lvl 2 states that Document should be unowned. Any dependencies? + FOwnerDocument := Self; +- FIDList := TList.Create; + end; + + destructor TDOMDocument.Destroy; + begin + ClearIDList; +- FIDList.Free; ++ FreeAndNil(FIDList); // set to nil before starting destroying chidlren + inherited Destroy; + end; + +@@ -1686,6 +1678,8 @@ + I: Cardinal; + Item: PIDItem; + begin ++ if FIDList = nil then ++ FIDList := TList.Create; + New(Item); + Item^.ID := Attr.Value; + Item^.Element := Attr.OwnerElement; +@@ -1701,9 +1695,21 @@ + end; + end; + +-procedure TDOMDocument.RemoveID(Attr: TDOMAttr); ++// This shouldn't be called if document has no IDs, ++// or when it is being destroyed ++procedure TDOMDocument.RemoveID(Elem: TDOMElement); ++var ++ I: Integer; + begin +- // TODO: Implement this ++ for I := 0 to FIDList.Count-1 do ++ begin ++ if PIDItem(FIDList.List^[I])^.Element = Elem then ++ begin ++ Dispose(PIDItem(FIDList.List^[I])); ++ FIDList.Delete(I); ++ Exit; ++ end; ++ end; + end; + + function TDOMDocument.FindID(const aID: DOMString; out Index: LongWord): Boolean; +@@ -1886,8 +1892,7 @@ + var + I: Cardinal; + begin +- // TODO: Implement TDOMDocument.GetElementById +- if FindID(ElementID, I) then ++ if Assigned(FIDList) and FindID(ElementID, I) then + Result := PIDItem(FIDList.List^[I])^.Element + else + Result := nil; +@@ -1998,6 +2003,8 @@ + + destructor TDOMElement.Destroy; + begin ++ if Assigned(FOwnerDocument.FIDList) then ++ FOwnerDocument.RemoveID(Self); + // FIX: Attribute nodes are now freed by TDOMNamedNodeMap.Destroy + FreeAndNil(FAttributes); + inherited Destroy; +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xmlcfg.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xmlcfg.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xmlcfg.pp (copie de travail) +@@ -118,7 +118,7 @@ + + procedure TXMLConfig.Flush; + begin +- if Modified then ++ if (Filename<>EmptyStr) and Modified then + begin + WriteXMLFile(Doc, Filename); + FModified := False; +@@ -375,14 +375,14 @@ + {$IFDEF MEM_CHECK}CheckHeapWrtMemCnt('TXMLConfig.SetFilename A '+AFilename);{$ENDIF} + if (not ForceReload) and (FFilename = AFilename) then + exit; ++ Flush; ++ FreeAndNil(Doc); ++ + FFilename := AFilename; + + if csLoading in ComponentState then + exit; + +- Flush; +- FreeAndNil(Doc); +- + if FileExists(AFilename) and (not FStartEmpty) then + ReadXMLFile(Doc, AFilename); + +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xmlutils.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xmlutils.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xmlutils.pp (copie de travail) +@@ -14,6 +14,9 @@ + **********************************************************************} + unit xmlutils; + ++{$mode objfpc} ++{$H+} ++ + interface + + uses +@@ -184,10 +187,10 @@ + I: Integer; + begin + Result := False; +- if (Value = '') or (Value[1] > #255) or not (char(Value[1]) in ['A'..'Z', 'a'..'z']) then ++ if (Value = '') or (Value[1] > #255) or not (char(ord(Value[1])) in ['A'..'Z', 'a'..'z']) then + Exit; + for I := 2 to Length(Value) do +- if (Value[I] > #255) or not (char(Value[I]) in ['A'..'Z', 'a'..'z', '0'..'9', '.', '_', '-']) then ++ if (Value[I] > #255) or not (char(ord(Value[I])) in ['A'..'Z', 'a'..'z', '0'..'9', '.', '_', '-']) then + Exit; + Result := True; + end; +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xpath.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xpath.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xpath.pp (copie de travail) +@@ -239,6 +239,7 @@ + FIsAbsolutePath: Boolean; + public + constructor Create(AIsAbsolutePath: Boolean); ++ destructor destroy;override; + function Evaluate(AContext: TXPathContext; + AEnvironment: TXPathEnvironment): TXPathVariable; override; + end; +@@ -439,6 +440,7 @@ + { CompleteExpresion specifies wether the parser should check for gargabe + after the recognised part. True => Throw exception if there is garbage } + constructor Create(AScanner: TXPathScanner; CompleteExpression: Boolean); ++ destructor destroy;override; + function Evaluate(AContextNode: TDOMNode): TXPathVariable; + function Evaluate(AContextNode: TDOMNode; + AEnvironment: TXPathEnvironment): TXPathVariable; +@@ -893,7 +895,7 @@ + for i := 0 to Predicates.Count - 1 do + TXPathExprNode(Predicates[i]).Free; + Predicates.Free; +- inherited Free; ++ inherited destroy; + end; + + constructor TXPathLocationPathNode.Create(AIsAbsolutePath: Boolean); +@@ -1163,6 +1165,15 @@ + Result := TXPathNodeSetVariable.Create(ResultNodeSet); + end; + ++destructor TXPathLocationPathNode.destroy; ++var tmp:TStep; ++begin ++ while FFirstStep<>nil do begin ++ tmp:=FFirstStep.NextStep; ++ FFirstStep.free; ++ FFirstStep:=tmp; ++ end; ++end; + + { Exceptions } + +@@ -2483,6 +2494,11 @@ + end; + end; + ++destructor TXPathExpression.destroy; ++begin ++ FRootNode.free; ++end; ++ + function TXPathExpression.Evaluate(AContextNode: TDOMNode; + AEnvironment: TXPathEnvironment): TXPathVariable; + var +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/sax.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/sax.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/sax.pp (copie de travail) +@@ -17,13 +17,7 @@ + + unit SAX; + +-{ $DEFINE UseDynArrays} +- +-{ $IFDEF UseDynArrays} +- {$MODE objfpc} +-{ $ELSE} +- { $MODE Delphi} +-{ $ENDIF} ++{$MODE objfpc} + {$H+} + + +Index: fpcbuild/fpcsrc/packages/fcl-xml/src/xmlread.pp +=================================================================== +--- fpcbuild~/fpcsrc/packages/fcl-xml/src/xmlread.pp (révision 10497) ++++ fpcbuild/fpcsrc/packages/fcl-xml/src/xmlread.pp (copie de travail) +@@ -260,41 +260,32 @@ + private + FParent: TContentParticle; + FChildren: TList; +- function InternalMatch(List: TList; var Index: Integer): Boolean; ++ FIndex: Integer; + function GetChildCount: Integer; + function GetChild(Index: Integer): TContentParticle; + public + CPType: TCPType; + CPQuant: TCPQuant; + Name: WideString; +- constructor Create; + destructor Destroy; override; + function Add: TContentParticle; +- function MatchNodeList(List: TList; var Index: Integer): Boolean; ++ function IsRequired: Boolean; ++ function FindFirst(const aName: DOMString): TContentParticle; ++ function FindNext(const aName: DOMString; ChildIdx: Integer): TContentParticle; ++ function MoreRequired(ChildIdx: Integer): Boolean; + property ChildCount: Integer read GetChildCount; + property Children[Index: Integer]: TContentParticle read GetChild; + end; + +- // This class is intended to store context information during parsing +- // However, right now it's written to validate completely parsed elements + TElementValidator = class(TObject) + private + FParent: TElementValidator; +- // to be deleted +- FList: TList; + FElementDef: TDOMElementDef; +- FIndex: Integer; +- FChildElementCount: Integer; + FCurCP: TContentParticle; +- FAmbiguous: Boolean; ++ FFailed: Boolean; + public +- constructor Create(aElDef: TDOMElementDef); +- destructor Destroy; override; +- // to be deleted +- procedure AddElement(aNode: TDOMElement); +- // to be deleted +- function Match: Boolean; + function IsElementAllowed(const aName: DOMString): Boolean; ++ function Incomplete: Boolean; + property Parent: TElementValidator read FParent write FParent; + end; + +@@ -352,9 +343,9 @@ + procedure CallErrorHandler(E: EXMLReadError); + protected + FCursor: TDOMNode; +- // TODO: probably TObjectList +- FValStack: TList; // validation: keep track of models ++ FValidator: TElementValidator; + ++ procedure DoError(Severity: TErrorSeverity; const descr: string; AtTokenStart: Boolean=False); + procedure FatalError(const descr: String; AtTokenStart: Boolean=False); overload; + procedure FatalError(const descr: string; const args: array of const; AtTokenStart: Boolean=False); overload; + procedure FatalError(Expected: WideChar); overload; +@@ -371,7 +362,6 @@ + function CheckName: Boolean; + function CheckNmToken: Boolean; + function ExpectName: WideString; // [5] +- procedure SkipName; + function SkipQuotedLiteral: Boolean; + procedure ExpectAttValue; // [10] + procedure SkipPubidLiteral; // [12] +@@ -409,10 +399,10 @@ + procedure PushVC(aElDef: TDOMElementDef); + procedure PopVC; + function CurrentElementDef: TDOMElementDef; +- procedure ValidateElement(Element: TDOMElement); + procedure ValidateDTD; + procedure ValidationError(const Msg: string; const args: array of const); + procedure CheckNotation(const Name: WideString); ++ procedure DoAttrText(ch: PWideChar; Count: Integer); + // Some SAX-alike stuff (at a very early stage) + procedure DoText(ch: PWideChar; Count: Integer; Whitespace: Boolean=False); + procedure DoComment(ch: PWideChar; Count: Integer); +@@ -678,7 +668,7 @@ + if TXMLReader(FReader).FXML11 then + Result := #10; + end; +- if (Result < #256) and (char(Result) in TXMLReader(FReader).FForbiddenAscii) or ++ if (Result < #256) and (char(ord(Result)) in TXMLReader(FReader).FForbiddenAscii) or + (Result >= #$FFFE) then + DecodingError('Invalid character'); + end; +@@ -812,7 +802,7 @@ + begin + with FSource do + begin +- Result := WideChar(FBuf[0]); ++ Result := WideChar(ord(FBuf[0])); + Inc(FBuf); + end; + end; +@@ -862,7 +852,7 @@ + begin + with FSource do + begin +- Result := WideChar(FBuf[0]); ++ Result := WideChar(byte(FBuf[0])); + Inc(FBuf); + if Result < #$80 then + Exit; +@@ -1038,6 +1028,24 @@ + end; + + procedure TXMLReader.FatalError(const descr: String; AtTokenStart: Boolean); ++begin ++ DoError(esFatal, descr, AtTokenStart); ++end; ++ ++procedure TXMLReader.FatalError(const descr: string; const args: array of const; AtTokenStart: Boolean); ++begin ++ DoError(esFatal, Format(descr, args), AtTokenStart); ++end; ++ ++procedure TXMLReader.ValidationError(const Msg: string; const Args: array of const); ++begin ++ FDocNotValid := True; ++ if FValidate then ++ // Seems that validation errors always appear on token boundary (re-check!) ++ DoError(esError, Format(Msg, Args), True); ++end; ++ ++procedure TXMLReader.DoError(Severity: TErrorSeverity; const descr: string; AtTokenStart: Boolean=False); + var + RealLocation: ^TLocation; + E: EXMLReadError; +@@ -1047,18 +1055,15 @@ + else + RealLocation := @FLocation; + E := EXMLReadError.CreateFmt('In ''%s'' (line %d pos %d): %s', [FSource.SystemID, RealLocation^.Line, RealLocation^.LinePos, descr]); +- E.FSeverity := esFatal; ++ E.FSeverity := Severity; + E.FErrorMessage := descr; + E.FLine := RealLocation^.Line; + E.FLinePos := RealLocation^.LinePos; + CallErrorHandler(E); ++ // No 'finally'! If user handler raises exception, control should not get here ++ E.Free; + end; + +-procedure TXMLReader.FatalError(const descr: string; const args: array of const; AtTokenStart: Boolean); +-begin +- FatalError(Format(descr, args), AtTokenStart); +-end; +- + function TXMLReader.SkipWhitespace: Boolean; + begin + Result := False; +@@ -1099,7 +1104,7 @@ + begin + for I := 1 to Length(s) do + begin +- if FCurChar <> WideChar(s[i]) then ++ if FCurChar <> WideChar(ord(s[i])) then + FatalError('Expected "%s"', [s]); + GetChar; + end; +@@ -1115,7 +1120,7 @@ + procedure TXMLReader.SkipString(const ValidChars: TSetOfChar); + begin + FValue.Length := 0; +- while (ord(FCurChar) < 256) and (char(FCurChar) in ValidChars) do ++ while (ord(FCurChar) < 256) and (char(ord(FCurChar)) in ValidChars) do + begin + BufAppend(FValue, FCurChar); + GetChar; +@@ -1134,7 +1139,6 @@ + BufAllocate(FName, 128); + BufAllocate(FValue, 512); + FIDRefs := TList.Create; +- FValStack := TList.Create; + + // Set char rules to XML 1.0 + FNamePages := @NamePages; +@@ -1153,17 +1157,14 @@ + end; + + destructor TXMLReader.Destroy; +-var +- I: Integer; + begin + FreeMem(FName.Buffer); + FreeMem(FValue.Buffer); + while ContextPop do; // clean input stack + FSource.Free; + FPEMap.Free; +- for I := FValStack.Count-1 downto 0 do +- TObject(FValStack[I]).Free; +- FValStack.Free; ++ while Assigned(FValidator) do ++ PopVC; + ClearIDRefs; + FIDRefs.Free; + inherited Destroy; +@@ -1268,12 +1269,6 @@ + SetString(Result, FName.Buffer, FName.Length); + end; + +-procedure TXMLReader.SkipName; +-begin +- if not CheckName then +- RaiseNameNotFound; +-end; +- + function TXMLReader.ResolvePredefined(const RefName: WideString): WideChar; + begin + if RefName = 'amp' then +@@ -1368,7 +1363,7 @@ + begin + if FValue.Length > 0 then + begin +- DoText(FValue.Buffer, FValue.Length); ++ DoAttrText(FValue.Buffer, FValue.Length); + FValue.Length := 0; + end; + +@@ -1381,7 +1376,7 @@ + end; // while + if FValue.Length > 0 then + begin +- DoText(FValue.Buffer, FValue.Length); ++ DoAttrText(FValue.Buffer, FValue.Length); + FValue.Length := 0; + end; + end; +@@ -1549,6 +1544,7 @@ + var + nonWs: Boolean; + RefNode: TDOMEntityEx; ++ ElDef: TDOMElementDef; + begin + FValue.Length := 0; + nonWs := False; +@@ -1573,6 +1569,12 @@ + begin + if not FInsideRoot then + FatalError('Illegal at document level'); ++ if FValidate then ++ begin ++ ElDef := CurrentElementDef; ++ if Assigned(ElDef) and (ElDef.ContentType = ctEmpty) then ++ ValidationError('References are illegal in EMPTY elements', []); ++ end; + if ParseCharRef then + begin + nonWs := True; // CharRef to whitespace is not considered whitespace +@@ -1647,7 +1649,7 @@ + for I := 0 to FValue.Length-1 do + begin + wc := FValue.Buffer[I]; +- if (wc > #255) or not (Char(wc) in PubidChars) then ++ if (wc > #255) or not (Char(ord(wc)) in PubidChars) then + FatalError('Illegal Public ID literal', True); + if (wc = #10) or (wc = #13) then + FValue.Buffer[I] := #32; +@@ -1689,6 +1691,8 @@ + procedure TXMLReader.ParsePI; // [16] + var + Name, Value: WideString; ++ PINode: TDOMProcessingInstruction; ++ ElDef: TDOMElementDef; + begin + GetCharRaw; // skip '?' + MarkTokenStart; +@@ -1727,8 +1731,19 @@ + Dec(Length, 2); + SetString(Value, Buffer, Length); + // SAX: ContentHandler.ProcessingInstruction(Name, Value); ++ ++ if FValidate then ++ begin ++ ElDef := CurrentElementDef; ++ if Assigned(ElDef) and (ElDef.ContentType = ctEmpty) then ++ ValidationError('Processing instructions are not allowed within EMPTY elements', []); ++ end; ++ ++ PINode := Doc.CreateProcessingInstruction(Name, Value); + if Assigned(FCursor) then +- FCursor.AppendChild(Doc.CreateProcessingInstruction(Name, Value)); ++ FCursor.AppendChild(PINode) ++ else // to comply with certain tests, insert PI from DTD before DTD ++ Doc.InsertBefore(PINode, FDocType); + Exit; + end; + until FCurChar = #0; +@@ -1820,56 +1835,51 @@ + + FDocType := TDOMDocumentTypeEx(TDOMDocumentType.Create(doc)); + FDtdParsed := True; +-{ To comply with certain output tests, we must insert PIs coming from internal +- subset before DocType node. This looks very synthetic, but let it be... +- Moreover, this code actually duplicates such PIs } +- try +- FDocType.FName := ExpectName; +- ExpectWhitespace; +- ParseExternalID(FDocType.FSystemID, FDocType.FPublicID, False); +- SkipWhitespaceRaw; ++ Doc.AppendChild(FDocType); ++ FCursor := nil; + +- if FCurChar = '[' then +- begin +- BufAllocate(IntSubset, 256); +- FCopyBuf := @IntSubset; +- GetChar; // cause very first char after '[' to be appended +- try +- FIntSubset := True; +- ParseMarkupDecl; +- if IntSubset.Length > 0 then // sanity check - must at least contain ']' +- SetString(FDocType.FInternalSubset, IntSubset.Buffer, IntSubset.Length-1); +- ExpectChar(']'); +- finally +- FIntSubset := False; +- FCopyBuf := nil; +- FreeMem(IntSubset.Buffer); +- end; +- SkipWhitespaceRaw; ++ FDocType.FName := ExpectName; ++ ExpectWhitespace; ++ ParseExternalID(FDocType.FSystemID, FDocType.FPublicID, False); ++ SkipWhitespaceRaw; ++ ++ if FCurChar = '[' then ++ begin ++ BufAllocate(IntSubset, 256); ++ FCopyBuf := @IntSubset; ++ GetChar; // cause very first char after '[' to be appended ++ try ++ FIntSubset := True; ++ ParseMarkupDecl; ++ if IntSubset.Length > 0 then // sanity check - must at least contain ']' ++ SetString(FDocType.FInternalSubset, IntSubset.Buffer, IntSubset.Length-1); ++ ExpectChar(']'); ++ finally ++ FIntSubset := False; ++ FCopyBuf := nil; ++ FreeMem(IntSubset.Buffer); + end; +- ExpectChar('>'); ++ SkipWhitespaceRaw; ++ end; ++ ExpectChar('>'); + +- if (FDocType.SystemID <> '') and ResolveEntity(FDocType.SystemID, FDocType.PublicID, Src) then +- begin +- // DTD parsing code assumes that FSource is RootSource, +- // therefore we cannot use ContextPush here... +- OldSrc := FSource; +- UngetCurChar; +- FCursor := nil; +- try +- DoParseExtSubset(Src); +- finally +- while ContextPop do; // Cleanup after possible exceptions +- FSource.Free; +- FSource := OldSrc; +- GetChar; +- FCursor := Doc; +- end; ++ if (FDocType.SystemID <> '') and ResolveEntity(FDocType.SystemID, FDocType.PublicID, Src) then ++ begin ++ // DTD parsing code assumes that FSource is RootSource, ++ // therefore we cannot use ContextPush here... ++ OldSrc := FSource; ++ UngetCurChar; ++ try ++ DoParseExtSubset(Src); ++ finally ++ while ContextPop do; // Cleanup after possible exceptions ++ FSource.Free; ++ FSource := OldSrc; ++ GetChar; + end; +- finally +- doc.AppendChild(FDocType); + end; +- ValidateDTD; ++ FCursor := Doc; ++ ValidateDTD; + end; + + function TXMLReader.ParseEq: Boolean; // [25] +@@ -1972,6 +1982,7 @@ + CurrentEntity: TObject; + I: Integer; + begin ++ MarkTokenStart; + ElName := ExpectName; + ExpectWhitespace; + ElDef := TDOMElementDef(FDocType.ElementDefs.GetNamedItem(ElName)); +@@ -2272,7 +2283,9 @@ + begin + ExpectString('NDATA'); + ExpectWhitespace; +- SkipName; ++ if not CheckName then ++ RaiseNameNotFound; ++ + SetString(Entity.FNotationName, FName.Buffer, FName.Length); + // SAX: DTDHandler.UnparsedEntityDecl(...); + end; +@@ -2414,7 +2427,7 @@ + doc := TXMLDocument.Create; + FDocType := TDOMDocumentTypeEx.Create(doc); + // TODO: DTD labeled version 1.1 will be rejected - must set FXML11 flag +- // TODO: what shall be FCursor? FDocType cannot - it does not accept child nodes ++ // DONE: It's ok to have FCursor=nil now + doc.AppendChild(FDocType); + DoParseExtSubset(ASource); + end; +@@ -2474,7 +2487,6 @@ + var + NewElem: TDOMElement; + ElDef: TDOMElementDef; +- ElVal: TElementValidator; + IsEmpty: Boolean; + attr, OldAttr: TDOMNode; + begin +@@ -2485,11 +2497,7 @@ + + NewElem := doc.CreateElementBuf(FName.Buffer, FName.Length); + // First check if NewElem is allowed in this context +- if FValStack.Count > 0 then +- ElVal := TElementValidator(FValStack.Last) +- else +- ElVal := nil; +- if FValidate and Assigned(ElVal) and not ElVal.IsElementAllowed(NewElem.TagName) then ++ if FValidate and Assigned(FValidator) and not FValidator.IsElementAllowed(NewElem.TagName) then + ValidationError('Element ''%s'' is not allowed in this context',[NewElem.TagName]); + + FCursor.AppendChild(NewElem); +@@ -2497,7 +2505,11 @@ + // Then update ElementDef - it is needed to process attributes + ElDef := nil; + if Assigned(FDocType) then ++ begin + ElDef := TDOMElementDef(FDocType.ElementDefs.GetNamedItem(NewElem.TagName)); ++ if (ElDef = nil) or (not ElDef.HasElementDecl) then ++ ValidationError('Using undeclared element ''%s''',[NewElem.TagName]); ++ end; + + IsEmpty := False; + if SkipWhitespaceRaw then +@@ -2559,8 +2571,10 @@ + if FCursor = doc then + FInsideRoot := False; + ProcessDefaultAttributes(NewElem); +- if FValidate then +- ValidateElement(NewElem); ++ ++ if FValidate and Assigned(FValidator) and FValidator.Incomplete then ++ ValidationError('Element ''%s'' is missing required sub-elements', [NewElem.TagName]); ++ + PopVC; + end; + +@@ -2700,7 +2714,8 @@ + if Result then + begin + MarkTokenStart; +- SkipName; ++ if not CheckName then ++ RaiseNameNotFound; + ExpectChar(';'); + end; + end; +@@ -2738,22 +2753,6 @@ + Result := False; + end; + +-procedure TXMLReader.ValidationError(const Msg: string; const Args: array of const); +-var +- E: EXMLReadError; +-begin +- if not FValidate then +- Exit; +- FDocNotValid := True; +- E := EXMLReadError.CreateFmt(Msg, Args); +- // TODO -cErrorReporting: No location for validity errors is reported yet +- E.FErrorMessage := E.Message; +- E.FSeverity := esError; +- CallErrorHandler(E); +- // if user handler raises exception, control won't get here +- E.Free; +-end; +- + procedure TXMLReader.CallErrorHandler(E: EXMLReadError); + begin + try +@@ -2782,63 +2781,7 @@ + end; + end; + +-procedure TXMLReader.ValidateElement(Element: TDOMElement); +-var +- ElDef: TDOMElementDef; +- elv: TElementValidator; +- +- procedure Traverse(node: TDOMNode); +- var +- cur: TDOMNode; +- begin +- cur := node.FirstChild; +- while Assigned(cur) do +- begin +- case cur.NodeType of +- ELEMENT_NODE: +- elv.AddElement(TDOMElement(cur)); +- ENTITY_REFERENCE_NODE: +- Traverse(cur); +- TEXT_NODE: +- begin +- if not TDOMText(cur).MayBeIgnorable then +- ValidationError('Character data is not allowed in element-only content',[]) +- else +- if FStandalone and ElDef.FExternallyDeclared then +- StandaloneError; +- end; +- end; +- cur := cur.NextSibling; +- end; +- end; +- +-begin +- ElDef := CurrentElementDef; +- if Assigned(ElDef) and ElDef.HasElementDecl then +- begin +- case ElDef.ContentType of +- ctEmpty: begin +- if Element.HasChildNodes then +- ValidationError('Element ''%s'' was declared empty but has content', [Element.TagName]); +- end; +- ctChildren: begin +- elv := TElementValidator(FValStack.Last); +- try +- Traverse(Element); +- if not elv.Match then +- ValidationError('Content of element ''%s'' does not match its declaration',[Element.TagName]); +- finally +- elv.FList.Clear; +- end; +- end; +- end; +- end +- else // if no DocType, a corresponding error will be reported. +- if Assigned(FDocType) then +- ValidationError('Using undeclared element ''%s''',[Element.TagName]); +-end; +- +-// TODO: this should be method of TDOMDocumentTypeEx, but we must pass ErrorHandler in... ++// TODO: this should be method of TDOMDocumentTypeEx, but we must pass ErrorHandler in... + procedure TXMLReader.ValidateDTD; + var + I, J, K: Integer; +@@ -2903,36 +2846,43 @@ + procedure TXMLReader.DoText(ch: PWideChar; Count: Integer; Whitespace: Boolean); + var + TextNode: TDOMText; ++ ElDef: TDOMElementDef; + begin +- // Validating filter part (disabled for the following two reasons): +- // TODO: per SAX, attribute text should not go here. +- // ElDefStack is invalid in this case, and we fail... ++ // Validating filter part + // TODO: for testing whitespace CharRefs, they are contained in internal entities. + // Parsing first reports them to Entity, and then they are cloned to real parent + // so this method isn't called :( +-{ +- if FCursor.NodeType in [ELEMENT_NODE, ENTITY_REFERENCE_NODE] then ++ ++ ElDef := CurrentElementDef; ++ if Assigned(ElDef) then + begin +- ElDef := CurrentElementDef; +- if Assigned(ElDef) and (ElDef.ContentType = ctChildren) then +- begin +- if not Whitespace then +- ValidationError('Character data is not allowed in element-only content',[]) +- else +- if FStandalone and ElDef.FExternallyDeclared then +- StandaloneError; ++ case ElDef.ContentType of ++ ctChildren: ++ if not Whitespace then ++ ValidationError('Character data is not allowed in element-only content',[]) ++ else ++ if FStandalone and ElDef.FExternallyDeclared then ++ StandaloneError; ++ ctEmpty: ++ ValidationError('Character data is not allowed in EMPTY elements', []); + end; + end; +-} ++ + // Document builder part + TextNode := Doc.CreateTextNodeBuf(ch, Count); + TextNode.MayBeIgnorable := Whitespace; + FCursor.AppendChild(TextNode); + end; + ++procedure TXMLReader.DoAttrText(ch: PWideChar; Count: Integer); ++begin ++ FCursor.AppendChild(Doc.CreateTextNodeBuf(ch, Count)); ++end; ++ + procedure TXMLReader.DoComment(ch: PWideChar; Count: Integer); + var + ElDef: TDOMElementDef; ++ Node: TDOMComment; + begin + // validation filter part + if FValidate then +@@ -2940,11 +2890,17 @@ + ElDef := CurrentElementDef; + if Assigned(ElDef) and (ElDef.ContentType = ctEmpty) then + ValidationError('Comments are not allowed within EMPTY elements', []); +- end; ++ end; + + // DOM builder part +- if (not FIgnoreComments) and Assigned(FCursor) then +- FCursor.AppendChild(Doc.CreateCommentBuf(ch, Count)); ++ if (not FIgnoreComments) then ++ begin ++ Node := Doc.CreateCommentBuf(ch, Count); ++ if Assigned(FCursor) then ++ FCursor.AppendChild(Node) ++ else ++ Doc.InsertBefore(Node, FDocType); ++ end; + end; + + procedure TXMLReader.DoCDSect(ch: PWideChar; Count: Integer); +@@ -2987,26 +2943,31 @@ + end; + + procedure TXMLReader.PushVC(aElDef: TDOMElementDef); ++var ++ v: TElementValidator; + begin +- FValStack.Add(TElementValidator.Create(aElDef)); ++ v := TElementValidator.Create; ++ v.FElementDef := aElDef; ++ v.Parent := FValidator; ++ FValidator := v; + end; + + procedure TXMLReader.PopVC; + var +- Validator: TObject; ++ v: TElementValidator; + begin +- with FValStack do ++ if Assigned(FValidator) then + begin +- Validator := TObject(Last); +- Delete(Count-1); +- Validator.Free; ++ v := FValidator.Parent; ++ FValidator.Free; ++ FValidator := v; + end; + end; + + function TXMLReader.CurrentElementDef: TDOMElementDef; + begin +- if FValStack.Count > 0 then +- Result := TElementValidator(FValStack.Last).FElementDef ++ if Assigned(FValidator) then ++ Result := FValidator.FElementDef + else + Result := nil; + end; +@@ -3047,83 +3008,74 @@ + + { TElementValidator } + +-procedure TElementValidator.AddElement(aNode: TDOMElement); +-begin +- FList.Add(aNode); +-end; +- +-constructor TElementValidator.Create(aElDef: TDOMElementDef); +-begin +- inherited Create; +- FElementDef := aElDef; +- if Assigned(FElementDef) then +- FCurCP := FElementDef.RootCP; +- FList := TList.Create; +-end; +- +-destructor TElementValidator.Destroy; +-begin +- FList.Free; +- inherited Destroy; +-end; +- + function TElementValidator.IsElementAllowed(const aName: DOMString): Boolean; + var + I: Integer; ++ Next: TContentParticle; + begin +- Inc(FChildElementCount); + Result := True; + // if element is not declared, non-validity has been already reported, no need to report again... +- if FElementDef = nil then +- Exit; +- { for mixed content type it is easy } +- if FElementDef.ContentType = ctMixed then ++ if Assigned(FElementDef) then + begin +- for I := 0 to FElementDef.RootCP.ChildCount-1 do +- begin +- if aName = FElementDef.RootCP.Children[I].Name then +- Exit; +- end; +- Result := False; +- Exit; +- end; +- { for empty, even more easier } +- if FElementDef.ContentType = ctEmpty then +- begin +- Result := False; +- Exit; +- end; ++ case FElementDef.ContentType of ++ ctMixed: begin ++ for I := 0 to FElementDef.RootCP.ChildCount-1 do ++ begin ++ if aName = FElementDef.RootCP.Children[I].Name then ++ Exit; ++ end; ++ Result := False; ++ end; + ++ ctEmpty: Result := False; + ++ ctChildren: begin ++ if FCurCP = nil then ++ Next := FElementDef.RootCP.FindFirst(aName) ++ else ++ Next := FCurCP.FindNext(aName, 0); { second arg ignored here } ++ Result := Assigned(Next); ++ if Result then ++ FCurCP := Next ++ else ++ FFailed := True; // used to prevent extra error at the end of element ++ end; ++ // ctAny: returns True by default ++ end; ++ end; + end; + +-function TElementValidator.Match: Boolean; ++function TElementValidator.Incomplete: Boolean; + begin +- FIndex := 0; +- Result := (FElementDef.RootCP.MatchNodeList(FList, FIndex)) and (FIndex = FList.Count); ++ if Assigned(FElementDef) and (FElementDef.ContentType = ctChildren) and (not FFailed) then ++ begin ++ if FCurCP <> nil then ++ Result := FCurCP.MoreRequired(0) { arg ignored here } ++ else ++ Result := FElementDef.RootCP.IsRequired; ++ end ++ else ++ Result := False; + end; + + { TContentParticle } + + function TContentParticle.Add: TContentParticle; + begin ++ if FChildren = nil then ++ FChildren := TList.Create; + Result := TContentParticle.Create; + Result.FParent := Self; +- FChildren.Add(Result); ++ Result.FIndex := FChildren.Add(Result); + end; + +-constructor TContentParticle.Create; +-begin +- inherited Create; +- FChildren := TList.Create; +-end; +- + destructor TContentParticle.Destroy; + var + I: Integer; + begin +- for I := FChildren.Count-1 downto 0 do +- TObject(FChildren[I]).Free; ++ if Assigned(FChildren) then ++ for I := FChildren.Count-1 downto 0 do ++ TObject(FChildren[I]).Free; + FChildren.Free; + inherited Destroy; + end; +@@ -3135,77 +3087,90 @@ + + function TContentParticle.GetChildCount: Integer; + begin +- Result := FChildren.Count; ++ if Assigned(FChildren) then ++ Result := FChildren.Count ++ else ++ Result := 0; + end; + +-function TContentParticle.InternalMatch(List: TList; var Index: Integer): Boolean; ++function TContentParticle.IsRequired: Boolean; + var + I: Integer; +- TempIndex, RestIndex, MatchNumber: Integer; + begin +- if CPType = ctName then ++ Result := (CPQuant = cqOnce) or (CPQuant = cqOnceOrMore); ++ // do not return True if all children are optional ++ if (CPType <> ctName) and Result then + begin +- Result := (Index < List.Count) and (TDOMElement(List[Index]).TagName = Name); +- if Result then +- Inc(Index); +- end +- else if CPType = ctChoice then +- begin +- RestIndex := Index; +- Result := False; +- MatchNumber := 0; + for I := 0 to ChildCount-1 do + begin +- TempIndex := Index; +- if Children[I].MatchNodeList(List, TempIndex) then +- begin +- Result := True; +- if Index <> TempIndex then // Do not count matching empty expressions +- begin +- Inc(MatchNumber); +- if MatchNumber > 1 then +- Break; +- RestIndex := TempIndex; +- end; +- end else if MatchNumber > 1 then Break; ++ Result := Children[I].IsRequired; ++ if Result then Exit; + end; ++ end; ++end; + +- if Result then +- Index := RestIndex; +- end +- else // ctSeq ++function TContentParticle.MoreRequired(ChildIdx: Integer): Boolean; ++var ++ I: Integer; ++begin ++ Result := False; ++ if CPType = ctSeq then + begin +- MatchNumber := 0; +- TempIndex := Index; +- Result := False; +- for I := 0 to ChildCount-1 do ++ for I := ChildIdx + 1 to ChildCount-1 do + begin +- Result := Children[I].MatchNodeList(List, TempIndex); +- if not Result then Break; ++ Result := Children[I].IsRequired; ++ if Result then Exit; + end; ++ end; ++ if Assigned(FParent) then ++ Result := FParent.MoreRequired(FIndex); ++end; + +- if Result then +- Index := TempIndex; +- if MatchNumber > 1 then +- Result := False; ++function TContentParticle.FindFirst(const aName: DOMString): TContentParticle; ++var ++ I: Integer; ++begin ++ Result := nil; ++ case CPType of ++ ctSeq: ++ for I := 0 to ChildCount-1 do with Children[I] do ++ begin ++ Result := FindFirst(aName); ++ if Assigned(Result) or IsRequired then ++ Exit; ++ end; ++ ctChoice: ++ for I := 0 to ChildCount-1 do with Children[I] do ++ begin ++ Result := FindFirst(aName); ++ if Assigned(Result) then ++ Exit; ++ end; ++ else // ctName ++ if aName = Self.Name then ++ Result := Self + end; + end; + +-function TContentParticle.MatchNodeList(List: TList; var Index: Integer): Boolean; ++function TContentParticle.FindNext(const aName: DOMString; ++ ChildIdx: Integer): TContentParticle; + var +- Saved: Integer; ++ I: Integer; + begin +- Result := InternalMatch(List, Index) or not (CPQuant in [cqOnce, cqOnceOrMore]); +- if Result and (CPQuant in [cqZeroOrMore, cqOnceOrMore]) then ++ Result := nil; ++ if CPType = ctSeq then // search sequence to its end + begin +- Saved := Index; +- while Index < List.Count do ++ for I := ChildIdx + 1 to ChildCount-1 do with Children[I] do + begin +- if not InternalMatch(List, Saved) or (Index = Saved) then +- Break; +- Index := Saved; ++ Result := FindFirst(aName); ++ if (Result <> nil) or IsRequired then ++ Exit; + end; + end; ++ if (CPQuant = cqZeroOrMore) or (CPQuant = cqOnceOrMore) then ++ Result := FindFirst(aName); ++ if (Result = nil) and Assigned(FParent) then ++ Result := FParent.FindNext(aName, FIndex); + end; + + { TDOMElementDef } --- fpc-2.2.0-dfsg1.orig/debian/overrides/fp-units-gfx +++ fpc-2.2.0-dfsg1/debian/overrides/fp-units-gfx @@ -0,0 +1,2 @@ +# Free pascal binaries are often statically linked. +fp-units-gfx binary: statically-linked-binary --- fpc-2.2.0-dfsg1.orig/debian/overrides/fp-utils +++ fpc-2.2.0-dfsg1/debian/overrides/fp-utils @@ -0,0 +1,2 @@ +# Free pascal binaries are often statically linked. +fp-utils binary: statically-linked-binary --- fpc-2.2.0-dfsg1.orig/debian/overrides/fp-units-net +++ fpc-2.2.0-dfsg1/debian/overrides/fp-units-net @@ -0,0 +1,2 @@ +# The name of the unit is dbus not D-Bus. +fp-units-net binary: spelling-error-in-description dbus D-Bus --- fpc-2.2.0-dfsg1.orig/debian/overrides/fp-compiler +++ fpc-2.2.0-dfsg1/debian/overrides/fp-compiler @@ -0,0 +1,2 @@ +# Free pascal binaries are often statically linked. +fp-compiler binary: statically-linked-binary