[palabos] 01/03: Initial packaging.

Anton Gladky gladk at moszumanska.debian.org
Sun Mar 29 11:42:57 UTC 2015


This is an automated email from the git hooks/post-receive script.

gladk pushed a commit to branch master
in repository palabos.

commit e4af2ca1686216f26f08aa4c9fce6fd8f9e8bf85
Author: Anton Gladky <gladk at debian.org>
Date:   Sun Mar 29 13:37:04 2015 +0200

    Initial packaging.
---
 debian/changelog                   |   5 +
 debian/compat                      |   1 +
 debian/control                     |  88 +++++
 debian/copyright                   | 674 +++++++++++++++++++++++++++++++++++++
 debian/libplb-dev.install          |   3 +
 debian/libplb-doc.examples         |   1 +
 debian/libplb1.install             |   1 +
 debian/patches/10_add_cmake.patch  | 182 ++++++++++
 debian/patches/20_tinyfix.patch    |  55 +++
 debian/patches/30_fix_eigen3.patch | 116 +++++++
 debian/patches/series              |   3 +
 debian/rules                       |   7 +
 debian/source/format               |   1 +
 debian/tests/buildTest1            | 299 ++++++++++++++++
 debian/tests/buildTest2            | 197 +++++++++++
 debian/tests/buildTest3            | 157 +++++++++
 debian/tests/control               |   2 +
 debian/watch                       |   3 +
 18 files changed, 1795 insertions(+)

diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..22c86dc
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+palabos (1.5~r1+repack1-1) unstable; urgency=low
+
+  * Initial packaging. (Closes: #781421).
+
+ -- Anton Gladky <gladk at debian.org>  Sun, 29 Mar 2015 13:36:27 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..04cd736
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,88 @@
+Source: palabos
+Section: libs
+Priority: optional
+Maintainer: Debian Science Maintainers <debian-science-maintainers at lists.alioth.debian.org>
+Uploaders:
+ Anton Gladky <gladk at debian.org>
+Homepage: http://glaros.dtc.umn.edu/gkhome/palabos/palabos/overview
+Standards-Version: 3.9.6
+Build-Depends:
+ cmake,
+ libeigen3-dev,
+ libtinyxml-dev,
+ mpi-default-dev,
+ debhelper (>= 9)
+Vcs-Git: git://git.debian.org/git/debian-science/packages/palabos.git
+Vcs-Browser: http://git.debian.org/?p=debian-science/packages/palabos.git
+Testsuite: autopkgtest
+
+Package: libplb-dev
+Section: libdevel
+Architecture: any
+Depends:
+ libplb1 (= ${binary:Version}),
+ libeigen3-dev,
+ libtinyxml-dev,
+ ${misc:Depends}
+Description: CFD solver based on the lattice Boltzmann method. Development files
+ A software tool for classical CFD, particle-based models and complex physical
+ interaction, Palabos offers a powerful environment for your fluid flow
+ simulations.
+ .
+ Through the innovative matrix-based interface, setting up a massively parallel
+ simulation or developing a new physical model has become simpler than ever.
+ The package contains development files.
+
+Package: libplb1
+Architecture: any
+Multi-Arch: same
+Pre-Depends:
+ ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: CFD solver based on the lattice Boltzmann method. Shared library
+ A software tool for classical CFD, particle-based models and complex physical
+ interaction, Palabos offers a powerful environment for your fluid flow
+ simulations.
+ .
+ Through the innovative matrix-based interface, setting up a massively parallel
+ simulation or developing a new physical model has become simpler than ever.
+ The package contains shared library.
+
+Package: libplb-dbg
+Architecture: any
+Section: debug
+Priority: extra
+Multi-Arch: same
+Pre-Depends:
+ ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libplb1 (= ${binary:Version})
+Description: CFD solver based on the lattice Boltzmann method. Debug-symbols
+ A software tool for classical CFD, particle-based models and complex physical
+ interaction, Palabos offers a powerful environment for your fluid flow
+ simulations.
+ .
+ Through the innovative matrix-based interface, setting up a massively parallel
+ simulation or developing a new physical model has become simpler than ever.
+ The package contains debugging symbols.
+
+Package: libplb-doc
+Architecture: all
+Section: doc
+Recommends:
+ libplb-dev
+Depends:
+ ${misc:Depends}
+Description: CFD solver based on the lattice Boltzmann method. Documentation
+ A software tool for classical CFD, particle-based models and complex physical
+ interaction, Palabos offers a powerful environment for your fluid flow
+ simulations.
+ .
+ Through the innovative matrix-based interface, setting up a massively parallel
+ simulation or developing a new physical model has become simpler than ever.
+ The package contains documentation and examples
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..d94d7fb
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,674 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Palabos
+Upstream-Contact: contact at flowkit.com 
+Source: http://www.palabos.org/download-ql
+Files-Excluded:
+ codeblocks
+ externalLibraries
+ jlabos/src/extlib
+ scons
+
+Files: *
+Copyright: 2011-2015 FlowKit Sarl
+License: AGPL-3.0
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+ .
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ .
+                            Preamble
+ .
+  The GNU Affero General Public License is a free, copyleft license for
+ software and other kinds of works, specifically designed to ensure
+ cooperation with the community in the case of network server software.
+ .
+  The licenses for most software and other practical works are designed
+ to take away your freedom to share and change the works.  By contrast,
+ our General Public Licenses are intended to guarantee your freedom to
+ share and change all versions of a program--to make sure it remains free
+ software for all its users.
+ .
+  When we speak of free software, we are referring to freedom, not
+ price.  Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ them if you wish), that you receive source code or can get it if you
+ want it, that you can change the software or use pieces of it in new
+ free programs, and that you know you can do these things.
+ .
+  Developers that use our General Public Licenses protect your rights
+ with two steps: (1) assert copyright on the software, and (2) offer
+ you this License which gives you legal permission to copy, distribute
+ and/or modify the software.
+ .
+  A secondary benefit of defending all users' freedom is that
+ improvements made in alternate versions of the program, if they
+ receive widespread use, become available for other developers to
+ incorporate.  Many developers of free software are heartened and
+ encouraged by the resulting cooperation.  However, in the case of
+ software used on network servers, this result may fail to come about.
+ The GNU General Public License permits making a modified version and
+ letting the public access it on a server without ever releasing its
+ source code to the public.
+ .
+  The GNU Affero General Public License is designed specifically to
+ ensure that, in such cases, the modified source code becomes available
+ to the community.  It requires the operator of a network server to
+ provide the source code of the modified version running there to the
+ users of that server.  Therefore, public use of a modified version, on
+ a publicly accessible server, gives the public access to the source
+ code of the modified version.
+ .
+  An older license, called the Affero General Public License and
+ published by Affero, was designed to accomplish similar goals.  This is
+ a different license, not a version of the Affero GPL, but Affero has
+ released a new version of the Affero GPL which permits relicensing under
+ this license.
+ .
+  The precise terms and conditions for copying, distribution and
+ modification follow.
+ .
+                       TERMS AND CONDITIONS
+ .
+  0. Definitions.
+ .
+  "This License" refers to version 3 of the GNU Affero General Public License.
+ .
+  "Copyright" also means copyright-like laws that apply to other kinds of
+ works, such as semiconductor masks.
+ .
+  "The Program" refers to any copyrightable work licensed under this
+ License.  Each licensee is addressed as "you".  "Licensees" and
+ "recipients" may be individuals or organizations.
+ .
+  To "modify" a work means to copy from or adapt all or part of the work
+ in a fashion requiring copyright permission, other than the making of an
+ exact copy.  The resulting work is called a "modified version" of the
+ earlier work or a work "based on" the earlier work.
+ .
+  A "covered work" means either the unmodified Program or a work based
+ on the Program.
+ .
+  To "propagate" a work means to do anything with it that, without
+ permission, would make you directly or secondarily liable for
+ infringement under applicable copyright law, except executing it on a
+ computer or modifying a private copy.  Propagation includes copying,
+ distribution (with or without modification), making available to the
+ public, and in some countries other activities as well.
+ .
+  To "convey" a work means any kind of propagation that enables other
+ parties to make or receive copies.  Mere interaction with a user through
+ a computer network, with no transfer of a copy, is not conveying.
+ .
+  An interactive user interface displays "Appropriate Legal Notices"
+ to the extent that it includes a convenient and prominently visible
+ feature that (1) displays an appropriate copyright notice, and (2)
+ tells the user that there is no warranty for the work (except to the
+ extent that warranties are provided), that licensees may convey the
+ work under this License, and how to view a copy of this License.  If
+ the interface presents a list of user commands or options, such as a
+ menu, a prominent item in the list meets this criterion.
+ .
+  1. Source Code.
+ .
+  The "source code" for a work means the preferred form of the work
+ for making modifications to it.  "Object code" means any non-source
+ form of a work.
+ .
+  A "Standard Interface" means an interface that either is an official
+ standard defined by a recognized standards body, or, in the case of
+ interfaces specified for a particular programming language, one that
+ is widely used among developers working in that language.
+ .
+  The "System Libraries" of an executable work include anything, other
+ than the work as a whole, that (a) is included in the normal form of
+ packaging a Major Component, but which is not part of that Major
+ Component, and (b) serves only to enable use of the work with that
+ Major Component, or to implement a Standard Interface for which an
+ implementation is available to the public in source code form.  A
+ "Major Component", in this context, means a major essential component
+ (kernel, window system, and so on) of the specific operating system
+ (if any) on which the executable work runs, or a compiler used to
+ produce the work, or an object code interpreter used to run it.
+ .
+  The "Corresponding Source" for a work in object code form means all
+ the source code needed to generate, install, and (for an executable
+ work) run the object code and to modify the work, including scripts to
+ control those activities.  However, it does not include the work's
+ System Libraries, or general-purpose tools or generally available free
+ programs which are used unmodified in performing those activities but
+ which are not part of the work.  For example, Corresponding Source
+ includes interface definition files associated with source files for
+ the work, and the source code for shared libraries and dynamically
+ linked subprograms that the work is specifically designed to require,
+ such as by intimate data communication or control flow between those
+ subprograms and other parts of the work.
+ .
+  The Corresponding Source need not include anything that users
+ can regenerate automatically from other parts of the Corresponding
+ Source.
+ .
+  The Corresponding Source for a work in source code form is that
+ same work.
+ .
+  2. Basic Permissions.
+ .
+  All rights granted under this License are granted for the term of
+ copyright on the Program, and are irrevocable provided the stated
+ conditions are met.  This License explicitly affirms your unlimited
+ permission to run the unmodified Program.  The output from running a
+ covered work is covered by this License only if the output, given its
+ content, constitutes a covered work.  This License acknowledges your
+ rights of fair use or other equivalent, as provided by copyright law.
+ .
+  You may make, run and propagate covered works that you do not
+ convey, without conditions so long as your license otherwise remains
+ in force.  You may convey covered works to others for the sole purpose
+ of having them make modifications exclusively for you, or provide you
+ with facilities for running those works, provided that you comply with
+ the terms of this License in conveying all material for which you do
+ not control copyright.  Those thus making or running the covered works
+ for you must do so exclusively on your behalf, under your direction
+ and control, on terms that prohibit them from making any copies of
+ your copyrighted material outside their relationship with you.
+ .
+  Conveying under any other circumstances is permitted solely under
+ the conditions stated below.  Sublicensing is not allowed; section 10
+ makes it unnecessary.
+ .
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+ .
+  No covered work shall be deemed part of an effective technological
+ measure under any applicable law fulfilling obligations under article
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
+ similar laws prohibiting or restricting circumvention of such
+ measures.
+ .
+  When you convey a covered work, you waive any legal power to forbid
+ circumvention of technological measures to the extent such circumvention
+ is effected by exercising rights under this License with respect to
+ the covered work, and you disclaim any intention to limit operation or
+ modification of the work as a means of enforcing, against the work's
+ users, your or third parties' legal rights to forbid circumvention of
+ technological measures.
+ .
+  4. Conveying Verbatim Copies.
+ .
+ You may convey verbatim copies of the Program's source code as you
+ receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice;
+ keep intact all notices stating that this License and any
+ non-permissive terms added in accord with section 7 apply to the code;
+ keep intact all notices of the absence of any warranty; and give all
+ recipients a copy of this License along with the Program.
+ .
+  You may charge any price or no price for each copy that you convey,
+ and you may offer support or warranty protection for a fee.
+ .
+  5. Conveying Modified Source Versions.
+ .
+  You may convey a work based on the Program, or the modifications to
+ produce it from the Program, in the form of source code under the
+ terms of section 4, provided that you also meet all of these conditions:
+ .
+     a) The work must carry prominent notices stating that you modified
+   it, and giving a relevant date.
+ .
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+  .
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+ .
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+ .
+  A compilation of a covered work with other separate and independent
+ works, which are not by their nature extensions of the covered work,
+ and which are not combined with it such as to form a larger program,
+ in or on a volume of a storage or distribution medium, is called an
+ "aggregate" if the compilation and its resulting copyright are not
+ used to limit the access or legal rights of the compilation's users
+ beyond what the individual works permit.  Inclusion of a covered work
+ in an aggregate does not cause this License to apply to the other
+ parts of the aggregate.
+ .
+  6. Conveying Non-Source Forms.
+ .
+  You may convey a covered work in object code form under the terms
+ of sections 4 and 5, provided that you also convey the
+ machine-readable Corresponding Source under the terms of this License,
+ in one of these ways:
+ .
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+ .
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+ .
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+ .
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+ .
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+ .
+  A separable portion of the object code, whose source code is excluded
+ from the Corresponding Source as a System Library, need not be
+ included in conveying the object code work.
+ .
+  A "User Product" is either (1) a "consumer product", which means any
+ tangible personal property which is normally used for personal, family,
+ or household purposes, or (2) anything designed or sold for incorporation
+ into a dwelling.  In determining whether a product is a consumer product,
+ doubtful cases shall be resolved in favor of coverage.  For a particular
+ product received by a particular user, "normally used" refers to a
+ typical or common use of that class of product, regardless of the status
+ of the particular user or of the way in which the particular user
+ actually uses, or expects or is expected to use, the product.  A product
+ is a consumer product regardless of whether the product has substantial
+ commercial, industrial or non-consumer uses, unless such uses represent
+ the only significant mode of use of the product.
+ .
+  "Installation Information" for a User Product means any methods,
+ procedures, authorization keys, or other information required to install
+ and execute modified versions of a covered work in that User Product from
+ a modified version of its Corresponding Source.  The information must
+ suffice to ensure that the continued functioning of the modified object
+ code is in no case prevented or interfered with solely because
+ modification has been made.
+ .
+  If you convey an object code work under this section in, or with, or
+ specifically for use in, a User Product, and the conveying occurs as
+ part of a transaction in which the right of possession and use of the
+ User Product is transferred to the recipient in perpetuity or for a
+ fixed term (regardless of how the transaction is characterized), the
+ Corresponding Source conveyed under this section must be accompanied
+ by the Installation Information.  But this requirement does not apply
+ if neither you nor any third party retains the ability to install
+ modified object code on the User Product (for example, the work has
+ been installed in ROM).
+ .
+  The requirement to provide Installation Information does not include a
+ requirement to continue to provide support service, warranty, or updates
+ for a work that has been modified or installed by the recipient, or for
+ the User Product in which it has been modified or installed.  Access to a
+ network may be denied when the modification itself materially and
+ adversely affects the operation of the network or violates the rules and
+ protocols for communication across the network.
+ .
+  Corresponding Source conveyed, and Installation Information provided,
+ in accord with this section must be in a format that is publicly
+ documented (and with an implementation available to the public in
+ source code form), and must require no special password or key for
+ unpacking, reading or copying.
+ .
+  7. Additional Terms.
+ .
+  "Additional permissions" are terms that supplement the terms of this
+ License by making exceptions from one or more of its conditions.
+ Additional permissions that are applicable to the entire Program shall
+ be treated as though they were included in this License, to the extent
+ that they are valid under applicable law.  If additional permissions
+ apply only to part of the Program, that part may be used separately
+ under those permissions, but the entire Program remains governed by
+ this License without regard to the additional permissions.
+ .
+  When you convey a copy of a covered work, you may at your option
+ remove any additional permissions from that copy, or from any part of
+ it.  (Additional permissions may be written to require their own
+ removal in certain cases when you modify the work.)  You may place
+ additional permissions on material, added by you to a covered work,
+ for which you have or can give appropriate copyright permission.
+ .
+  Notwithstanding any other provision of this License, for material you
+ add to a covered work, you may (if authorized by the copyright holders of
+ that material) supplement the terms of this License with terms:
+ .
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+ .
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+ .
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+ .
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+ .
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+ .
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+ .
+  All other non-permissive additional terms are considered "further
+ restrictions" within the meaning of section 10.  If the Program as you
+ received it, or any part of it, contains a notice stating that it is
+ governed by this License along with a term that is a further
+ restriction, you may remove that term.  If a license document contains
+ a further restriction but permits relicensing or conveying under this
+ License, you may add to a covered work material governed by the terms
+ of that license document, provided that the further restriction does
+ not survive such relicensing or conveying.
+ .
+  If you add terms to a covered work in accord with this section, you
+ must place, in the relevant source files, a statement of the
+ additional terms that apply to those files, or a notice indicating
+ where to find the applicable terms.
+ .
+  Additional terms, permissive or non-permissive, may be stated in the
+ form of a separately written license, or stated as exceptions;
+ the above requirements apply either way.
+ .
+  8. Termination.
+ .
+  You may not propagate or modify a covered work except as expressly
+ provided under this License.  Any attempt otherwise to propagate or
+ modify it is void, and will automatically terminate your rights under
+ this License (including any patent licenses granted under the third
+ paragraph of section 11).
+ .
+  However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the copyright
+ holder fails to notify you of the violation by some reasonable means
+ prior to 60 days after the cessation.
+ .
+  Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from that
+ copyright holder, and you cure the violation prior to 30 days after
+ your receipt of the notice.
+ .
+  Termination of your rights under this section does not terminate the
+ licenses of parties who have received copies or rights from you under
+ this License.  If your rights have been terminated and not permanently
+ reinstated, you do not qualify to receive new licenses for the same
+ material under section 10.
+ .
+  9. Acceptance Not Required for Having Copies.
+ .
+  You are not required to accept this License in order to receive or
+ run a copy of the Program.  Ancillary propagation of a covered work
+ occurring solely as a consequence of using peer-to-peer transmission
+ to receive a copy likewise does not require acceptance.  However,
+ nothing other than this License grants you permission to propagate or
+ modify any covered work.  These actions infringe copyright if you do
+ not accept this License.  Therefore, by modifying or propagating a
+ covered work, you indicate your acceptance of this License to do so.
+ .
+  10. Automatic Licensing of Downstream Recipients.
+ .
+  Each time you convey a covered work, the recipient automatically
+ receives a license from the original licensors, to run, modify and
+ propagate that work, subject to this License.  You are not responsible
+ for enforcing compliance by third parties with this License.
+ .
+  An "entity transaction" is a transaction transferring control of an
+ organization, or substantially all assets of one, or subdividing an
+ organization, or merging organizations.  If propagation of a covered
+ work results from an entity transaction, each party to that
+ transaction who receives a copy of the work also receives whatever
+ licenses to the work the party's predecessor in interest had or could
+ give under the previous paragraph, plus a right to possession of the
+ Corresponding Source of the work from the predecessor in interest, if
+ the predecessor has it or can get it with reasonable efforts.
+ .
+  You may not impose any further restrictions on the exercise of the
+ rights granted or affirmed under this License.  For example, you may
+ not impose a license fee, royalty, or other charge for exercise of
+ rights granted under this License, and you may not initiate litigation
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
+ any patent claim is infringed by making, using, selling, offering for
+ sale, or importing the Program or any portion of it.
+ .
+  11. Patents.
+ .
+  A "contributor" is a copyright holder who authorizes use under this
+ License of the Program or a work on which the Program is based.  The
+ work thus licensed is called the contributor's "contributor version".
+ .
+  A contributor's "essential patent claims" are all patent claims
+ owned or controlled by the contributor, whether already acquired or
+ hereafter acquired, that would be infringed by some manner, permitted
+ by this License, of making, using, or selling its contributor version,
+ but do not include claims that would be infringed only as a
+ consequence of further modification of the contributor version.  For
+ purposes of this definition, "control" includes the right to grant
+ patent sublicenses in a manner consistent with the requirements of
+ this License.
+ .
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+ patent license under the contributor's essential patent claims, to
+ make, use, sell, offer for sale, import and otherwise run, modify and
+ propagate the contents of its contributor version.
+ .
+  In the following three paragraphs, a "patent license" is any express
+ agreement or commitment, however denominated, not to enforce a patent
+ (such as an express permission to practice a patent or covenant not to
+ sue for patent infringement).  To "grant" such a patent license to a
+ party means to make such an agreement or commitment not to enforce a
+ patent against the party.
+ .
+ If you convey a covered work, knowingly relying on a patent license,
+ and the Corresponding Source of the work is not available for anyone
+ to copy, free of charge and under the terms of this License, through a
+ publicly available network server or other readily accessible means,
+ then you must either (1) cause the Corresponding Source to be so
+ available, or (2) arrange to deprive yourself of the benefit of the
+ patent license for this particular work, or (3) arrange, in a manner
+ consistent with the requirements of this License, to extend the patent
+ license to downstream recipients.  "Knowingly relying" means you have
+ actual knowledge that, but for the patent license, your conveying the
+ covered work in a country, or your recipient's use of the covered work
+ in a country, would infringe one or more identifiable patents in that
+ country that you have reason to believe are valid.
+ .
+  If, pursuant to or in connection with a single transaction or
+ arrangement, you convey, or propagate by procuring conveyance of, a
+ covered work, and grant a patent license to some of the parties
+ receiving the covered work authorizing them to use, propagate, modify
+ or convey a specific copy of the covered work, then the patent license
+ you grant is automatically extended to all recipients of the covered
+ work and works based on it.
+ .
+  A patent license is "discriminatory" if it does not include within
+ the scope of its coverage, prohibits the exercise of, or is
+ conditioned on the non-exercise of one or more of the rights that are
+ specifically granted under this License.  You may not convey a covered
+ work if you are a party to an arrangement with a third party that is
+ in the business of distributing software, under which you make payment
+ to the third party based on the extent of your activity of conveying
+ the work, and under which the third party grants, to any of the
+ parties who would receive the covered work from you, a discriminatory
+ patent license (a) in connection with copies of the covered work
+ conveyed by you (or copies made from those copies), or (b) primarily
+ for and in connection with specific products or compilations that
+ contain the covered work, unless you entered into that arrangement,
+ or that patent license was granted, prior to 28 March 2007.
+ .
+  Nothing in this License shall be construed as excluding or limiting
+ any implied license or other defenses to infringement that may
+ otherwise be available to you under applicable patent law.
+ .
+  12. No Surrender of Others' Freedom.
+ .
+  If conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License.  If you cannot convey a
+ covered work so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you may
+ not convey it at all.  For example, if you agree to terms that obligate you
+ to collect a royalty for further conveying from those to whom you convey
+ the Program, the only way you could satisfy both those terms and this
+ License would be to refrain entirely from conveying the Program.
+ .
+  13. Remote Network Interaction; Use with the GNU General Public License.
+ .
+  Notwithstanding any other provision of this License, if you modify the
+ Program, your modified version must prominently offer all users
+ interacting with it remotely through a computer network (if your version
+ supports such interaction) an opportunity to receive the Corresponding
+ Source of your version by providing access to the Corresponding Source
+ from a network server at no charge, through some standard or customary
+ means of facilitating copying of software.  This Corresponding Source
+ shall include the Corresponding Source for any work covered by version 3
+ of the GNU General Public License that is incorporated pursuant to the
+ following paragraph.
+ .
+  Notwithstanding any other provision of this License, you have
+ permission to link or combine any covered work with a work licensed
+ under version 3 of the GNU General Public License into a single
+ combined work, and to convey the resulting work.  The terms of this
+ License will continue to apply to the part which is the covered work,
+ but the work with which it is combined will remain governed by version
+ 3 of the GNU General Public License.
+ .
+  14. Revised Versions of this License.
+ .
+  The Free Software Foundation may publish revised and/or new versions of
+ the GNU Affero General Public License from time to time.  Such new versions
+ will be similar in spirit to the present version, but may differ in detail to
+ address new problems or concerns.
+ .
+  Each version is given a distinguishing version number.  If the
+ Program specifies that a certain numbered version of the GNU Affero General
+ Public License "or any later version" applies to it, you have the
+ option of following the terms and conditions either of that numbered
+ version or of any later version published by the Free Software
+ Foundation.  If the Program does not specify a version number of the
+ GNU Affero General Public License, you may choose any version ever published
+ by the Free Software Foundation.
+ .
+  If the Program specifies that a proxy can decide which future
+ versions of the GNU Affero General Public License can be used, that proxy's
+ public statement of acceptance of a version permanently authorizes you
+ to choose that version for the Program.
+ .
+  Later license versions may give you additional or different
+ permissions.  However, no additional obligations are imposed on any
+ author or copyright holder as a result of your choosing to follow a
+ later version.
+ .
+  15. Disclaimer of Warranty.
+ .
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+ APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+ IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+ .
+  16. Limitation of Liability.
+ .
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGES.
+ .
+  17. Interpretation of Sections 15 and 16.
+ .
+  If the disclaimer of warranty and limitation of liability provided
+ above cannot be given local legal effect according to their terms,
+ reviewing courts shall apply local law that most closely approximates
+ an absolute waiver of all civil liability in connection with the
+ Program, unless a warranty or assumption of liability accompanies a
+ copy of the Program in return for a fee.
+ .
+                     END OF TERMS AND CONDITIONS
+ .
+            How to Apply These Terms to Your New Programs
+ .
+  If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+ free software which everyone can redistribute and change under these terms.
+ . 
+  To do so, attach the following notices to the program.  It is safest
+ to attach them to the start of each source file to most effectively
+ state the exclusion of warranty; and each file should have at least
+ the "copyright" line and a pointer to where the full notice is found.
+ .
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+ .
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published by
+    the Free Software Foundation, either version 3 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 Affero General Public License for more details.
+ .
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ Also add information on how to contact you by electronic and paper mail.
+ .
+  If your software can interact with users remotely through a computer
+ network, you should also make sure that it provides a way for users to
+ get its source.  For example, if your program is a web application, its
+ interface could display a "Source" link that leads users to an archive
+ of the code.  There are many ways you could offer source, and different
+ solutions will be better for different programs; see section 13 for the
+ specific requirements.
+ .
+  You should also get your employer (if you work as a programmer) or school,
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
+ For more information on this, and how to apply and follow the GNU AGPL, see
+ <http://www.gnu.org/licenses/>.
diff --git a/debian/libplb-dev.install b/debian/libplb-dev.install
new file mode 100644
index 0000000..dd7944b
--- /dev/null
+++ b/debian/libplb-dev.install
@@ -0,0 +1,3 @@
+usr/include
+usr/lib/*/libplb.so
+usr/share
diff --git a/debian/libplb-doc.examples b/debian/libplb-doc.examples
new file mode 100644
index 0000000..e39721e
--- /dev/null
+++ b/debian/libplb-doc.examples
@@ -0,0 +1 @@
+examples/*
diff --git a/debian/libplb1.install b/debian/libplb1.install
new file mode 100644
index 0000000..839ca0f
--- /dev/null
+++ b/debian/libplb1.install
@@ -0,0 +1 @@
+usr/lib/*/libplb.so.*
diff --git a/debian/patches/10_add_cmake.patch b/debian/patches/10_add_cmake.patch
new file mode 100644
index 0000000..99f0115
--- /dev/null
+++ b/debian/patches/10_add_cmake.patch
@@ -0,0 +1,182 @@
+Description: Add cmake files
+Author: Anton Gladky <gladk at debian.org>
+Last-Update: 2015-03-28
+
+Index: palabos-1.5.1/CMakeLists.txt
+===================================================================
+--- /dev/null
++++ palabos-1.5.1/CMakeLists.txt
+@@ -0,0 +1,80 @@
++# ENABLE_MPI: enable MPI-modules (ON by default)
++# ENABLE_POSIX: use POSIX (ON by default)
++# ENABLE_SMP_PARALLEL: use SMP_PARALLEL (ON by default)
++# VERSION: version number (1.4.1 by default)
++
++PROJECT(PALABOS CXX)
++CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
++
++SET(CMAKE_VERBOSE_MAKEFILE 1)
++INCLUDE(GNUInstallDirs)
++set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cMake")
++
++#=======================================
++
++SET(PALABOS_MAJOR_VERSION 1)
++SET(PALABOS_MINOR_VERSION 5)
++SET(PALABOS_PATCH_VERSION 1)
++
++#=======================================
++
++FIND_PACKAGE(TinyXML REQUIRED)
++FIND_PACKAGE(Eigen3 REQUIRED)
++
++#=======================================
++
++IF (NOT CMAKE_CXX_FLAGS)
++  #If flags are not set, add default flags
++  SET(CMAKE_BUILD_TYPE Release)
++  SET(CMAKE_CXX_FLAGS  " -Wall -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security")
++ENDIF (NOT CMAKE_CXX_FLAGS)
++
++#=======================================
++
++SET(DEFAULT ON CACHE INTERNAL "Default value for enabled by default options")
++OPTION(ENABLE_MPI "Enable MPI" ${DEFAULT})
++
++IF(ENABLE_MPI)
++  INCLUDE(FindMPI)
++  IF(MPI_C_FOUND AND MPI_CXX_FOUND)
++    SET(CMAKE_C_COMPILER ${MPI_C_COMPILER})
++    SET(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER})
++    ADD_DEFINITIONS("-DPLB_MPI_PARALLEL")
++  ELSE(MPI_C_FOUND AND MPI_CXX_FOUND)
++    #Check old FindMPI version
++    IF(MPI_COMPILER)
++      SET(CMAKE_C_COMPILER ${MPI_COMPILER})
++      SET(CMAKE_CXX_COMPILER ${MPI_COMPILER})
++      ADD_DEFINITIONS("-DPLB_MPI_PARALLEL")
++    ELSE(MPI_COMPILER)
++      MESSAGE(FATAL_ERROR "MPI-COMPILER NOT found!")
++    ENDIF(MPI_COMPILER)
++  ENDIF(MPI_C_FOUND AND MPI_CXX_FOUND)
++ENDIF(ENABLE_MPI)
++
++#=======================================
++
++OPTION(ENABLE_POSIX "Enable POSIX" ${DEFAULT})
++
++IF(ENABLE_POSIX)
++  ADD_DEFINITIONS("-DPLB_USE_POSIX")
++ENDIF(ENABLE_POSIX)
++
++#=======================================
++
++OPTION(ENABLE_SMP_PARALLEL "Enable SMP_PARALLEL" ${DEFAULT})
++
++IF(ENABLE_SMP_PARALLEL)
++  ADD_DEFINITIONS("-DPLB_SMP_PARALLEL")
++ENDIF(ENABLE_SMP_PARALLEL)
++
++#=======================================
++
++INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
++INCLUDE_DIRECTORIES(${TINYXML_INCLUDE_DIR})
++
++ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/src")
++
++INSTALL(FILES cMake/FindPalabos.cmake cMake/FindTinyXML.cmake
++  DESTINATION ${CMAKE_INSTALL_PREFIX}/share/cmake-3.0/Modules
++  )
+Index: palabos-1.5.1/cMake/FindPalabos.cmake
+===================================================================
+--- /dev/null
++++ palabos-1.5.1/cMake/FindPalabos.cmake
+@@ -0,0 +1,26 @@
++# Try to find the Palabos librairies
++#  PALABOS_FOUND - system has GMP lib
++#  PALABOS_INCLUDE_DIR - the GMP include directory
++#  PALABOS_LIBRARIES - Libraries needed to use GMP
++
++# Copyright (c) 2014, Anton Gladky <gladk at debian.org> 
++#
++# Redistribution and use is allowed according to the terms of the GPL license.
++
++IF (PALABOS_INCLUDE_DIR AND PALABOS_LIBRARIES)
++  SET(PALABOS_FIND_QUIETLY TRUE)
++ENDIF (PALABOS_INCLUDE_DIR AND PALABOS_LIBRARIES)
++
++FIND_PATH(PALABOS_INCLUDE_DIR NAMES palabos2D.h palabos3D.h
++          PATH_SUFFIXES palabos)
++FIND_LIBRARY(PALABOS_LIBRARIES NAMES plb )
++
++FIND_PACKAGE(Eigen3 REQUIRED)
++INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})
++
++FIND_PACKAGE(TinyXML REQUIRED)
++INCLUDE_DIRECTORIES(${TINYXML_INCLUDE_DIR})
++
++INCLUDE(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(Palabos DEFAULT_MSG PALABOS_INCLUDE_DIR PALABOS_LIBRARIES)
++MARK_AS_ADVANCED( PALABOS_INCLUDE_DIR PALABOS_LIBRARIES )
+Index: palabos-1.5.1/cMake/FindTinyXML.cmake
+===================================================================
+--- /dev/null
++++ palabos-1.5.1/cMake/FindTinyXML.cmake
+@@ -0,0 +1,26 @@
++# - Find TinyXML
++# Find the native TinyXML includes and library
++#
++#   TINYXML_FOUND       - True if TinyXML found.
++#   TINYXML_INCLUDE_DIR - where to find tinyxml.h, etc.
++#   TINYXML_LIBRARIES   - List of libraries when using TinyXML.
++#
++
++IF( TINYXML_INCLUDE_DIR )
++    # Already in cache, be silent
++    SET( TinyXML_FIND_QUIETLY TRUE )
++ENDIF( TINYXML_INCLUDE_DIR )
++
++FIND_PATH( TINYXML_INCLUDE_DIR "tinyxml.h"
++           PATH_SUFFIXES "tinyxml" )
++
++FIND_LIBRARY( TINYXML_LIBRARIES
++              NAMES "tinyxml"
++              PATH_SUFFIXES "tinyxml" )
++
++# handle the QUIETLY and REQUIRED arguments and set TINYXML_FOUND to TRUE if
++# all listed variables are TRUE
++INCLUDE( "FindPackageHandleStandardArgs" )
++FIND_PACKAGE_HANDLE_STANDARD_ARGS( "TinyXML" DEFAULT_MSG TINYXML_INCLUDE_DIR TINYXML_LIBRARIES )
++
++MARK_AS_ADVANCED( TINYXML_INCLUDE_DIR TINYXML_LIBRARIES )
+Index: palabos-1.5.1/src/CMakeLists.txt
+===================================================================
+--- /dev/null
++++ palabos-1.5.1/src/CMakeLists.txt
+@@ -0,0 +1,26 @@
++FILE(GLOB_RECURSE SRC_FILES_SRC "*.cpp")
++
++ADD_LIBRARY(plb SHARED ${SRC_FILES_SRC})
++SET_TARGET_PROPERTIES(plb PROPERTIES 
++  VERSION ${PALABOS_MAJOR_VERSION}.${PALABOS_MINOR_VERSION}.${PALABOS_PATCH_VERSION}
++  SOVERSION ${PALABOS_MAJOR_VERSION})
++TARGET_LINK_LIBRARIES(plb ${TINYXML_LIBRARIES})
++INSTALL(TARGETS plb DESTINATION "${CMAKE_INSTALL_LIBDIR}/")
++
++#=======================================
++
++FILE(GLOB SRC_FILES_HEAD "*.h")
++FILE(GLOB SRC_FILES_HHEAD "*.hh")
++INSTALL(FILES ${SRC_FILES_HEAD} ${SRC_FILES_HHEAD} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/palabos/")
++
++SET(SUBDIRS  algorithm atomicBlock basicDynamics boundaryCondition complexDynamics 
++  coProcessors core dataProcessors finiteDifference io latticeBoltzmann libraryInterfaces
++  multiBlock multiGrid multiPhysics offLattice parallelism particles)
++
++FOREACH(subdir ${SUBDIRS})
++  FILE(GLOB SRC_FILES_HEAD_${subdir} "${subdir}/*.h")
++  FILE(GLOB SRC_FILES_HHEAD_${subdir} "${subdir}/*.hh")
++  INSTALL(FILES ${SRC_FILES_HEAD_${subdir}} ${SRC_FILES_HHEAD_${subdir}} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/palabos/${subdir}/")
++ENDFOREACH()
++#=======================================
++
diff --git a/debian/patches/20_tinyfix.patch b/debian/patches/20_tinyfix.patch
new file mode 100644
index 0000000..47120da
--- /dev/null
+++ b/debian/patches/20_tinyfix.patch
@@ -0,0 +1,55 @@
+Description: Add cmake files
+Author: Anton Gladky <gladk at debian.org>
+Last-Update: 2015-03-28
+
+Index: palabos-1.5.1/src/libraryInterfaces/TINYXML_xmlIO.h
+===================================================================
+--- palabos-1.5.1.orig/src/libraryInterfaces/TINYXML_xmlIO.h
++++ palabos-1.5.1/src/libraryInterfaces/TINYXML_xmlIO.h
+@@ -32,7 +32,7 @@
+ #include <string>
+ #include <vector>
+ #include <map>
+-#include "tinyxml/tinyxml.h"
++#include <tinyxml.h>
+ #include "core/array.h"
+ 
+ namespace plb {
+Index: palabos-1.5.1/src/libraryInterfaces/TINYXML_xmlIO.cpp
+===================================================================
+--- palabos-1.5.1.orig/src/libraryInterfaces/TINYXML_xmlIO.cpp
++++ palabos-1.5.1/src/libraryInterfaces/TINYXML_xmlIO.cpp
+@@ -82,7 +82,7 @@ void XMLreader::mainProcessorIni( std::v
+     std::map<plint, TiXmlNode*> parents;
+     for (pluint iParent=0; iParent<pParentVect.size(); ++iParent) {
+         PLB_PRECONDITION( pParentVect[iParent]->Type()==TiXmlNode::DOCUMENT ||
+-                          pParentVect[iParent]->Type()==TiXmlNode::ELEMENT );
++                          pParentVect[iParent]->Type()==TiXmlNode::TINYXML_ELEMENT );
+ 
+         TiXmlElement* pParentElement = pParentVect[iParent]->ToElement();
+         plint id=0;
+@@ -117,11 +117,11 @@ void XMLreader::mainProcessorIni( std::v
+         for ( pChild = pParent->FirstChild(); pChild != 0; pChild = pChild->NextSibling()) 
+         {
+             int type = pChild->Type();
+-            if ( type==TiXmlNode::ELEMENT ) {
++            if ( type==TiXmlNode::TINYXML_ELEMENT ) {
+                 std::string name(pChild->Value());
+                 childMap[name].push_back(pChild);
+             }
+-            else if ( type==TiXmlNode::TEXT ) {
++            else if ( type==TiXmlNode::TINYXML_TEXT ) {
+                 data.text = pChild->ToText()->ValueStr();
+             }
+         }
+Index: palabos-1.5.1/src/palabos2D.h
+===================================================================
+--- palabos-1.5.1.orig/src/palabos2D.h
++++ palabos-1.5.1/src/palabos2D.h
+@@ -40,5 +40,5 @@
+ #include <offLattice/headers2D.h>
+ #include <particles/headers2D.h>
+ #include <libraryInterfaces/headers2D.h>
+-#include <tinyxml/tinyxml.h>
++#include <tinyxml.h>
+ 
diff --git a/debian/patches/30_fix_eigen3.patch b/debian/patches/30_fix_eigen3.patch
new file mode 100644
index 0000000..f4dd235
--- /dev/null
+++ b/debian/patches/30_fix_eigen3.patch
@@ -0,0 +1,116 @@
+Description: <short summary of the patch>
+ TODO: Put a short summary on the line above and replace this paragraph
+ with a longer explanation of this change. Complete the meta-information
+ with other relevant fields (see below for details). To make it easier, the
+ information below has been extracted from the changelog. Adjust it or drop
+ it.
+ .
+ palabos (1.5~r1+repack1-1) unstable; urgency=low
+ .
+   * Initial packaging. (Closes: #708045).
+Author: Anton Gladky <gladk at debian.org>
+Bug-Debian: https://bugs.debian.org/708045
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+--- palabos-1.5~r1+repack1.orig/src/boundaryCondition/generalizedBoundaryDynamics.hh
++++ palabos-1.5~r1+repack1/src/boundaryCondition/generalizedBoundaryDynamics.hh
+@@ -37,9 +37,9 @@
+ #include "core/cell.h"
+ #include "core/dynamicsIdentifiers.h"
+ #include "latticeBoltzmann/indexTemplates.h"
+-#include <Eigen3/Core>
+-#include <Eigen3/LU>
+-#include <Eigen3/Cholesky>
++#include <Eigen/Core>
++#include <Eigen/LU>
++#include <Eigen/Cholesky>
+ 
+ namespace plb {
+ 
+--- palabos-1.5~r1+repack1.orig/src/boundaryCondition/generalizedBoundaryDynamicsSolvers.h
++++ palabos-1.5~r1+repack1/src/boundaryCondition/generalizedBoundaryDynamicsSolvers.h
+@@ -31,7 +31,7 @@
+ 
+ #include "core/globalDefs.h"
+ #include "core/cell.h"
+-#include <Eigen3/Core>
++#include <Eigen/Core>
+ 
+ namespace plb {
+ 
+--- palabos-1.5~r1+repack1.orig/src/boundaryCondition/generalizedBoundaryDynamicsSolvers.hh
++++ palabos-1.5~r1+repack1/src/boundaryCondition/generalizedBoundaryDynamicsSolvers.hh
+@@ -33,8 +33,8 @@
+ #include "generalizedIncompressibleBoundaryTemplates.h"
+ #include "core/cell.h"
+ #include "latticeBoltzmann/indexTemplates.h"
+-#include <Eigen3/LU>
+-#include <Eigen3/Cholesky>
++#include <Eigen/LU>
++#include <Eigen/Cholesky>
+ 
+ namespace plb {
+ 
+--- palabos-1.5~r1+repack1.orig/src/boundaryCondition/generalizedCompressibleBoundaryTemplates.h
++++ palabos-1.5~r1+repack1/src/boundaryCondition/generalizedCompressibleBoundaryTemplates.h
+@@ -34,11 +34,11 @@
+ #include "core/dynamicsIdentifiers.h"
+ #include "latticeBoltzmann/indexTemplates.h"
+ #include "latticeBoltzmann/hermitePolynomialsTemplates.h"
+-#include <Eigen3/Core>
+-#include <Eigen3/LU>
+-#include <Eigen3/QR>
+-#include <Eigen3/Cholesky>
+-#include <Eigen3/SVD>
++#include <Eigen/Core>
++#include <Eigen/LU>
++#include <Eigen/QR>
++#include <Eigen/Cholesky>
++#include <Eigen/SVD>
+ 
+ namespace plb {
+ 
+--- palabos-1.5~r1+repack1.orig/src/boundaryCondition/generalizedIncompressibleBoundaryTemplates.h
++++ palabos-1.5~r1+repack1/src/boundaryCondition/generalizedIncompressibleBoundaryTemplates.h
+@@ -34,12 +34,12 @@
+ #include "core/dynamicsIdentifiers.h"
+ #include "latticeBoltzmann/indexTemplates.h"
+ #include "latticeBoltzmann/hermitePolynomialsTemplates.h"
+-#include <Eigen3/Core>
+-#include <Eigen3/LU>
+-#include <Eigen3/QR>
+-#include <Eigen3/Cholesky>
+-#include <Eigen3/SVD>
+-#include <Eigen3/Dense>
++#include <Eigen/Core>
++#include <Eigen/LU>
++#include <Eigen/QR>
++#include <Eigen/Cholesky>
++#include <Eigen/SVD>
++#include <Eigen/Dense>
+ 
+ 
+ namespace plb {
+--- palabos-1.5~r1+repack1.orig/src/dataProcessors/dataAnalysisFunctional3D.hh
++++ palabos-1.5~r1+repack1/src/dataProcessors/dataAnalysisFunctional3D.hh
+@@ -43,7 +43,7 @@
+ #include "algorithm/linearAlgebra.h"
+ #include <cmath>
+ #include <limits>
+-#include <Eigen3/Eigenvalues>
++#include <Eigen/Eigenvalues>
+ 
+ namespace plb {
+ 
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..0733939
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+10_add_cmake.patch
+20_tinyfix.patch
+30_fix_eigen3.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..cfd7349
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,7 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@ --buildsystem=cmake --parallel
+
+override_dh_strip:
+	dh_strip --dbg-package=libplb-dbg
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/tests/buildTest1 b/debian/tests/buildTest1
new file mode 100755
index 0000000..3aa5d8a
--- /dev/null
+++ b/debian/tests/buildTest1
@@ -0,0 +1,299 @@
+#!/bin/sh
+# autopkgtest check
+# (C) 2015 Anton Gladky <gladk at debian.org>
+
+set -e
+
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+mkdir src
+cd src
+
+cat <<EOF > CMakeLists.txt
+cmake_minimum_required(VERSION 2.6)
+project(Test)
+find_package(Palabos REQUIRED)
+include_directories(\${PALABOS_INCLUDE_DIR})
+
+add_executable(demo demo.cpp)
+target_link_libraries(demo \${PALABOS_LIBRARIES})
+install(TARGETS demo DESTINATION bin)
+
+EOF
+
+cat <<EOF > demo.cpp
+/* This file is part of the Palabos library.
+ *
+ * Copyright (C) 2011-2015 FlowKit Sarl
+ * Route d'Oron 2
+ * 1010 Lausanne, Switzerland
+ * E-mail contact: contact at flowkit.com
+ *
+ * The most recent release of Palabos can be downloaded at 
+ * <http://www.palabos.org/>
+ *
+ * The library Palabos is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * The library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/** \file
+  * Flow in a lid-driven 3D cavity. The cavity is square and has no-slip walls,
+  * except for the top wall which is diagonally driven with a constant
+  * velocity. The benchmark is challenging because of the velocity
+  * discontinuities on corner nodes.
+  **/
+
+#include "palabos3D.h"
+#include "palabos3D.hh"
+#include <vector>
+#include <cmath>
+#include <iostream>
+#include <fstream>
+
+using namespace plb;
+using namespace std;
+
+typedef double T;
+#define DESCRIPTOR descriptors::D3Q19Descriptor
+
+void cavitySetup( MultiBlockLattice3D<T,DESCRIPTOR>& lattice,
+                  IncomprFlowParam<T> const& parameters,
+                  OnLatticeBoundaryCondition3D<T,DESCRIPTOR>& boundaryCondition )
+{
+    const plint nx = parameters.getNx();
+    const plint ny = parameters.getNy();
+    const plint nz = parameters.getNz();
+    Box3D topLid = Box3D(0, nx-1, ny-1, ny-1, 0, nz-1);
+    Box3D everythingButTopLid = Box3D(0, nx-1, 0, ny-2, 0, nz-1);
+
+    // All walls implement a Dirichlet velocity condition.
+    boundaryCondition.setVelocityConditionOnBlockBoundaries(lattice);
+
+    T u = std::sqrt((T)2)/(T)2 * parameters.getLatticeU();
+    initializeAtEquilibrium(lattice, everythingButTopLid, (T)1., Array<T,3>((T)0.,(T)0.,(T)0.) );
+    initializeAtEquilibrium(lattice, topLid, (T)1., Array<T,3>(u,(T)0.,u) );
+    setBoundaryVelocity(lattice, topLid, Array<T,3>(u,(T)0.,u) );
+
+    lattice.initialize();
+}
+
+template<class BlockLatticeT>
+void writeGifs(BlockLatticeT& lattice,
+               IncomprFlowParam<T> const& parameters, plint iter)
+{
+    const plint imSize = 600;
+    const plint nx = parameters.getNx();
+    const plint ny = parameters.getNy();
+    const plint nz = parameters.getNz();
+    const plint zComponent = 2;
+
+    Box3D slice(0, nx-1, 0, ny-1, nz/2, nz/2);
+    ImageWriter<T> imageWriter("leeloo");
+
+    imageWriter.writeScaledGif( createFileName("uz", iter, 6),
+                                *computeVelocityComponent (lattice, slice, zComponent),
+                                imSize, imSize );
+
+    imageWriter.writeScaledGif( createFileName("uNorm", iter, 6),
+                                *computeVelocityNorm (lattice, slice),
+                                imSize, imSize );
+    imageWriter.writeScaledGif( createFileName("omega", iter, 6),
+                                *computeNorm(*computeVorticity (
+                                        *computeVelocity(lattice) ), slice ),
+                                imSize, imSize );
+}
+
+template<class BlockLatticeT>
+void writeVTK(BlockLatticeT& lattice,
+              IncomprFlowParam<T> const& parameters, plint iter)
+{
+    T dx = parameters.getDeltaX();
+    T dt = parameters.getDeltaT();
+    VtkImageOutput3D<T> vtkOut(createFileName("vtk", iter, 6), dx);
+    vtkOut.writeData<float>(*computeVelocityNorm(lattice), "velocityNorm", dx/dt);
+    vtkOut.writeData<3,float>(*computeVelocity(lattice), "velocity", dx/dt);
+    vtkOut.writeData<3,float>(*computeVorticity(*computeVelocity(lattice)), "vorticity", 1./dt);
+}
+
+
+SparseBlockStructure3D createRegularDistribution3D (
+        std::vector<plint> const& xVal, std::vector<plint> const& yVal, std::vector<plint> const& zVal )
+{
+    PLB_ASSERT(xVal.size()>=2);
+    PLB_ASSERT(yVal.size()>=2);
+    PLB_ASSERT(zVal.size()>=2);
+    SparseBlockStructure3D dataGeometry (
+            Box3D(xVal[0], xVal.back()-1, yVal[0], yVal.back()-1, zVal[0], zVal.back()-1) );
+    for (plint iX=0; iX<(plint)xVal.size()-1; ++iX) {
+        for (plint iY=0; iY<(plint)yVal.size()-1; ++iY) {
+            for (plint iZ=0; iZ<(plint)zVal.size()-1; ++iZ) {
+                dataGeometry.addBlock (
+                        Box3D( xVal[iX], xVal[iX+1]-1, yVal[iY],
+                               yVal[iY+1]-1, zVal[iZ], zVal[iZ+1]-1 ),
+                        dataGeometry.nextIncrementalId() );
+            }
+        }
+    }
+    return dataGeometry;
+}
+
+SparseBlockStructure3D createCavityDistribution3D(plint nx, plint ny, plint nz)
+{
+    static const plint numval=4;
+    plint x[numval] = {0, nx/4, 3*nx/4, nx};
+    plint y[numval] = {0, ny/4, 3*ny/4, ny};
+    plint z[numval] = {0, nz/4, 3*nz/4, nz};
+    std::vector<plint> xVal(x, x+numval);
+    std::vector<plint> yVal(y, y+numval);
+    std::vector<plint> zVal(z, z+numval);
+    return createRegularDistribution3D(xVal, yVal, zVal);
+}
+
+
+int main(int argc, char* argv[]) {
+
+    plbInit(&argc, &argv);
+    global::directories().setOutputDir("./tmp/");
+
+    IncomprFlowParam<T> parameters(
+            (T) 1e-4,  // uMax
+            (T) 10.,   // Re
+            30,        // N
+            1.,        // lx
+            1.,        // ly
+            1.         // lz
+    );
+    const T logT     = (T)1/(T)1000;
+    const T imSave   = (T)1/(T)40;
+    const T vtkSave  = (T)1;
+    const T maxT     = (T)10.1;
+
+    pcout << "omega= " << parameters.getOmega() << std::endl;
+    writeLogFile(parameters, "3D diagonal cavity");
+
+    // @Tomasz: STEP 1
+    // Instead of simply creating a MultiBlockLattice3D as usual, the internal
+    // structure and parallelization of the block are created manually. The block
+    // is covered by 5x5x5 sub-domains. Each of these 125 sub-domains, if it
+    // contains no boundary area (i.e. only pure BGK), will then be off-loaded to
+    // the co-processor.
+    
+    // Here the 5x5x5 cover-up is instantiated.
+    plint numBlocksX = 3;
+    plint numBlocksY = 3;
+    plint numBlocksZ = 3;
+    plint numBlocks = numBlocksX*numBlocksY*numBlocksZ;
+    plint envelopeWidth = 1;
+    SparseBlockStructure3D blockStructure (
+            createCavityDistribution3D (
+                parameters.getNx(), parameters.getNy(), parameters.getNz() ) );
+
+    // In case of MPI parallelism, the blocks are explicitly assigned to processors,
+    // with equal load.
+    ExplicitThreadAttribution* threadAttribution = new ExplicitThreadAttribution;
+    std::vector<std::pair<plint,plint> > ranges;
+    plint numRanges = std::min(numBlocks, (plint)global::mpi().getSize());
+    util::linearRepartition(0, numBlocks-1, numRanges, ranges);
+    for (pluint iProc=0; iProc<ranges.size(); ++iProc) {
+        for (plint blockId=ranges[iProc].first; blockId<=ranges[iProc].second; ++blockId) {
+            threadAttribution -> addBlock(blockId, iProc);
+        }
+    }
+
+
+    // Create a lattice with the above specified internal structure.
+    MultiBlockLattice3D<T, DESCRIPTOR> lattice (
+        MultiBlockManagement3D (
+                        blockStructure, threadAttribution, envelopeWidth ),
+        defaultMultiBlockPolicy3D().getBlockCommunicator(),
+                    defaultMultiBlockPolicy3D().getCombinedStatistics(),
+                    defaultMultiBlockPolicy3D().getMultiCellAccess<T,DESCRIPTOR>(),
+                    new BGKdynamics<T,DESCRIPTOR>(parameters.getOmega()) );
+
+
+    OnLatticeBoundaryCondition3D<T,DESCRIPTOR>* boundaryCondition
+        = createInterpBoundaryCondition3D<T,DESCRIPTOR>();
+    cavitySetup(lattice, parameters, *boundaryCondition);
+
+    // @Tomasz: STEP 2
+    // Here the co-processor is informed about the domains for which it will need to do computations.
+    bool printInfo=true;
+    initiateCoProcessors(lattice, BGKdynamics<T,DESCRIPTOR>(parameters.getOmega()).getId(), printInfo);
+
+    T previousIterationTime = T();
+    // Loop over main time iteration.
+    for (plint iT=0; iT<parameters.nStep(maxT)/1000; ++iT) {
+        global::timer("mainLoop").restart();
+
+        if (iT%parameters.nStep(imSave)==0) {
+            pcout << "Writing Gif ..." << endl;
+            writeGifs(lattice, parameters, iT);
+        }
+
+        if (iT%parameters.nStep(vtkSave)==0 && iT>0) {
+            pcout << "Saving VTK file ..." << endl;
+            writeVTK(lattice, parameters, iT);
+        }
+
+        if (iT%parameters.nStep(logT)==0) {
+            pcout << "step " << iT
+                  << "; t=" << iT*parameters.getDeltaT();
+        }
+
+        // @Tomasz: STEP 3
+        // For now, all the data assigned to co-processors is transferred from CPU memory
+        // to co-processor memory before the collision-streaming step, and back to CPU
+        // memory after the collision-streaming step. This is not efficient at all: we
+        // will replace this by communicating outer boundary layers only. It is however
+        // simpler for now, for our first proof of concept.
+
+        // Execute a time iteration.
+        transferToCoProcessors(lattice);
+        lattice.collideAndStream();
+        transferFromCoProcessors(lattice);
+        // After transferring back from co-processor to CPU memory, data in the envelopes
+        // of the CPU blocks must be synchronized.
+        lattice.duplicateOverlaps(modif::staticVariables);
+
+
+        // Access averages from internal statistics ( their value is defined
+        //   only after the call to lattice.collideAndStream() )
+        if (iT%parameters.nStep(logT)==0) {
+            pcout << "; av energy="
+                  << setprecision(10) << computeAverageEnergy<T>(lattice)
+                  << "; av rho="
+                  << setprecision(10) << computeAverageDensity<T>(lattice) << endl;
+            pcout << "Time spent during previous iteration: "
+                  << previousIterationTime << endl;
+        }
+
+        previousIterationTime = global::timer("mainLoop").stop();
+    }
+
+    delete boundaryCondition;
+}
+
+EOF
+
+cd ..
+mkdir build
+cd build
+cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=./../inst ./../src
+make
+make install
+echo "build: OK"
+[ -x demo ]
+./demo
+echo "run: OK"
diff --git a/debian/tests/buildTest2 b/debian/tests/buildTest2
new file mode 100755
index 0000000..facfd54
--- /dev/null
+++ b/debian/tests/buildTest2
@@ -0,0 +1,197 @@
+#!/bin/sh
+# autopkgtest check
+# (C) 2015 Anton Gladky <gladk at debian.org>
+
+set -e
+
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+mkdir src
+cd src
+
+cat <<EOF > CMakeLists.txt
+cmake_minimum_required(VERSION 2.6)
+project(Test)
+find_package(Palabos REQUIRED)
+include_directories(\${PALABOS_INCLUDE_DIR})
+
+add_executable(demo demo.cpp)
+target_link_libraries(demo \${PALABOS_LIBRARIES})
+install(TARGETS demo DESTINATION bin)
+
+EOF
+
+cat <<EOF > demo.cpp
+/* This file is part of the Palabos library.
+ *
+ * Copyright (C) 2011-2015 FlowKit Sarl
+ * Route d'Oron 2
+ * 1010 Lausanne, Switzerland
+ * E-mail contact: contact at flowkit.com
+ *
+ * The most recent release of Palabos can be downloaded at 
+ * <http://www.palabos.org/>
+ *
+ * The library Palabos is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * The library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "palabos3D.h"
+#include "palabos3D.hh"
+#include "palabos2D.h"
+#include "palabos2D.hh"
+#include <iostream>
+#include <fstream>
+#include <iomanip>
+
+using namespace plb;
+using namespace plb::descriptors;
+using namespace std;
+
+plint nx = 40;
+plint ny = 40;
+plint nz = 40;
+double omega = 1.;
+
+Box3D domain1_3d(5,15,5,15,5,15);
+Box3D domain2_3d(20,30,20,30,20,30);
+
+Box2D domain1_2d(5,15,5,15);
+Box2D domain2_2d(20,30,20,30);
+
+
+void copyBlockLattice3D() {
+    MultiBlockLattice3D<double, D3Q19Descriptor> lattice3d_1 (
+            nx,ny,nz, new BGKdynamics<double,D3Q19Descriptor>(omega) );
+    MultiBlockLattice3D<double, D3Q19Descriptor> lattice3d_2 (
+            nx,ny,nz, new BGKdynamics<double,D3Q19Descriptor>(omega) );
+
+    lattice3d_1.collideAndStream();
+
+    // 1. SAME-POSITION COPIES.
+    // Copy all populations and external scalars.
+    copyPopulations(lattice3d_1, lattice3d_2, domain1_3d);
+    // Copy all populations, external scalars, and content of dynamics objects.
+    copyAll(lattice3d_1, lattice3d_2, domain1_3d);
+    defineDynamics(lattice3d_1, domain1_3d,
+                   new BounceBack<double,D3Q19Descriptor>(1.));
+    // Copy everything, and recreate a dynamics object at the destination.
+    copyRegenerate(lattice3d_1, lattice3d_2, domain1_3d);
+
+    // 2. CROSS-POSITION COPIES.
+    // Copy all populations and external scalars.
+    copyPopulations(lattice3d_1, domain1_3d, lattice3d_2, domain2_3d);
+    // Copy all populations, external scalars, and content of dynamics objects.
+    copyAll(lattice3d_1, domain1_3d, lattice3d_2, domain2_3d);
+    // Copy everything, and recreate a dynamics object at the destination.
+    copyRegenerate(lattice3d_1, domain1_3d, lattice3d_2, domain2_3d);
+
+    // 3. CREATING CLONES.
+    // Create a reduced-size clone, correponding to a sub-domain of the original lattice.
+    std::auto_ptr<MultiBlockLattice3D<double,D3Q19Descriptor> >
+        lattice3d_3 = clone(lattice3d_1,domain1_3d);
+}
+
+void copyBlockLattice2D() {
+    MultiBlockLattice2D<double, D2Q9Descriptor> lattice2d_1 (
+            nx,ny, new BGKdynamics<double,D2Q9Descriptor>(omega) );
+    MultiBlockLattice2D<double, D2Q9Descriptor> lattice2d_2 (
+            nx,ny, new BGKdynamics<double,D2Q9Descriptor>(omega) );
+
+    lattice2d_1.collideAndStream();
+
+    // 1. SAME-POSITION COPIES.
+    // Copy all populations and external scalars.
+    copyPopulations(lattice2d_1, lattice2d_2, domain1_2d);
+    // Copy all populations, external scalars, and content of dynamics objects.
+    copyAll(lattice2d_1, lattice2d_2, domain1_2d);
+    defineDynamics(lattice2d_1, domain1_2d,
+                   new BounceBack<double,D2Q9Descriptor>(1.));
+    // Copy everything, and recreate a dynamics object at the destination.
+    copyRegenerate(lattice2d_1, lattice2d_2, domain1_2d);
+
+    // 2. CROSS-POSITION COPIES.
+    // Copy all populations and external scalars.
+    copyPopulations(lattice2d_1, domain1_2d, lattice2d_2, domain2_2d);
+    // Copy all populations, external scalars, and content of dynamics objects.
+    copyAll(lattice2d_1, domain1_2d, lattice2d_2, domain2_2d);
+    // Copy everything, and recreate a dynamics object at the destination.
+    copyRegenerate(lattice2d_1, domain1_2d, lattice2d_2, domain2_2d);
+
+    // 3. CREATING CLONES.
+    // Create a reduced-size clone, correponding to a sub-domain of the original lattice.
+    std::auto_ptr<MultiBlockLattice2D<double,D2Q9Descriptor> >
+        lattice2d_3 = clone(lattice2d_1,domain1_2d);
+}
+
+void copyScalarField3D() {
+    MultiScalarField3D<double> scalar3d_1(nx,ny,nz);
+    MultiScalarField3D<double> scalar3d_2(nx,ny,nz);
+    MultiScalarField3D<int> scalar3d_3(nx,ny,nz);
+    setToConstant(scalar3d_1, scalar3d_1.getBoundingBox(), 1.);
+    setToConstant(scalar3d_2, scalar3d_2.getBoundingBox(), 2.);
+    setToConstant(scalar3d_3, scalar3d_3.getBoundingBox(), 3);
+
+    // 1. SAME-POSITION COPIES.
+    plb::copy(scalar3d_1, scalar3d_2, scalar3d_1.getBoundingBox() );
+    // Copy with type conversion.
+    plb::copy(scalar3d_2, scalar3d_3, scalar3d_2.getBoundingBox() );
+    // 2. CROSS-POSITION COPIES.
+    plb::copy(scalar3d_1, domain1_3d, scalar3d_2, domain2_3d);
+    // 3. CREATING CLONES.
+    std::auto_ptr<MultiScalarField3D<double> >
+        scalar3d_4 = clone(scalar3d_2,domain1_3d);
+}
+
+void copyScalarField2D() {
+    MultiScalarField2D<double> scalar2d_1(nx,ny);
+    MultiScalarField2D<double> scalar2d_2(nx,ny);
+    MultiScalarField2D<int> scalar2d_3(nx,ny);
+    setToConstant(scalar2d_1, scalar2d_1.getBoundingBox(), 1.);
+    setToConstant(scalar2d_2, scalar2d_2.getBoundingBox(), 2.);
+    setToConstant(scalar2d_3, scalar2d_3.getBoundingBox(), 2);
+
+    // 1. SAME-POSITION COPIES.
+    plb::copy(scalar2d_1, scalar2d_2, scalar2d_1.getBoundingBox() );
+    // Copy with type conversion.
+    plb::copy(scalar2d_2, scalar2d_3, scalar2d_2.getBoundingBox() );
+    // 2. CROSS-POSITION COPIES.
+    plb::copy(scalar2d_1, domain1_2d, scalar2d_2, domain2_2d);
+    // 3. CREATING CLONES.
+    std::auto_ptr<MultiScalarField2D<int> >
+        scalar2d_4 = clone(scalar2d_3,domain1_2d);
+}
+
+
+int main(int argc, char* argv[]) {
+    plbInit(&argc, &argv);
+
+    copyBlockLattice3D();
+    copyScalarField3D();
+}
+
+
+EOF
+
+cd ..
+mkdir build
+cd build
+cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=./../inst ./../src
+make
+make install
+echo "build: OK"
+[ -x demo ]
+./demo
+echo "run: OK"
diff --git a/debian/tests/buildTest3 b/debian/tests/buildTest3
new file mode 100755
index 0000000..36f071a
--- /dev/null
+++ b/debian/tests/buildTest3
@@ -0,0 +1,157 @@
+#!/bin/sh
+# autopkgtest check
+# (C) 2015 Anton Gladky <gladk at debian.org>
+
+set -e
+
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+mkdir src
+cd src
+
+cat <<EOF > CMakeLists.txt
+cmake_minimum_required(VERSION 2.6)
+project(Test)
+find_package(Palabos REQUIRED)
+include_directories(\${PALABOS_INCLUDE_DIR})
+
+add_executable(demo demo.cpp)
+target_link_libraries(demo \${PALABOS_LIBRARIES})
+install(TARGETS demo DESTINATION bin)
+
+EOF
+
+cat <<EOF > demo.cpp
+/* This file is part of the Palabos library.
+ *
+ * Copyright (C) 2011-2015 FlowKit Sarl
+ * Route d'Oron 2
+ * 1010 Lausanne, Switzerland
+ * E-mail contact: contact at flowkit.com
+ *
+ * The most recent release of Palabos can be downloaded at 
+ * <http://www.palabos.org/>
+ *
+ * The library Palabos is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * The library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/** \file
+  * This program demonstrates how to cut surfaces represented as
+  * sets of triangles by using cutting planes and cuboids.
+  **/
+
+#include "palabos3D.h"
+#include "palabos3D.hh"
+
+using namespace plb;
+
+typedef double T;
+
+
+int main(int argc, char* argv[])
+{
+    plbInit(&argc, &argv);
+    global::directories().setOutputDir("./");
+
+    plint n = 80; // Resolution (cylinder diameter).
+    T radius = (T) n / 2.; // Cylinder radius.
+    Array<T,3> center(0.0, 0.0, 0.0); // Cylinder center.
+    T length = (T) (4 * n); // Cylinder length.
+    plint nAxial = n / 2; // Two parameters needed for the creation of the triangularized cylinder surface.
+    plint nCirc  = 3 * n / 2;
+
+    // Create a cylinder surface as a set of triangles.
+    TriangleSet<T> cylinder;
+    cylinder = constructCylinder<T>(center, radius, radius, length, nAxial, nCirc);
+    cylinder.writeAsciiSTL("cylinder.stl");
+
+    // Define the cut plane by a point and a normal vector.
+    Array<T,3> cutPlanePoint(length / 3.3, 0.0, 0.0);
+    Array<T,3> cutPlaneNormal(-1.0, -0.1, -0.5);
+
+    Plane<T> cutPlane;
+    cutPlane.point = cutPlanePoint;
+    cutPlane.normal = cutPlaneNormal;
+
+    // Cut the cylinder in two parts.
+    TriangleSet<T> rightCylinderPart;
+    int rv = 0;
+    rv = cylinder.cutWithPlane(cutPlane, rightCylinderPart);
+    if (rv != 1) {
+        pcout << "Problem with the surface cutting." << std::endl;
+        exit(1);
+    }
+    rightCylinderPart.writeAsciiSTL("rightCylinderPart.stl");
+
+    TriangleSet<T> leftCylinderPart;
+    cutPlane.normal = -cutPlane.normal;
+    rv = 0;
+    rv = cylinder.cutWithPlane(cutPlane, leftCylinderPart);
+    if (rv != 1) {
+        pcout << "Problem with the surface cutting." << std::endl;
+        exit(1);
+    }
+    leftCylinderPart.writeAsciiSTL("leftCylinderPart.stl");
+
+    // Use a cuboid to cut the cylinder (correct usage).
+    Array<T,3> lowerLeftCorner = cutPlanePoint - Array<T,3>(length, 5.0 * radius / 4.0, 5.0 * radius / 4.0);
+    Array<T,3> upperRightCorner = cutPlanePoint + Array<T,3>(length / 4.0, 5.0 * radius / 4.0, 5.0 * radius / 4.0);
+
+    Cuboid<T> cutCuboid;
+    cutCuboid.lowerLeftCorner = lowerLeftCorner;
+    cutCuboid.upperRightCorner = upperRightCorner;
+
+    TriangleSet<T> newRightCylinderPart;
+    cutPlane.normal = -cutPlane.normal;
+    rv = 0;
+    rv = cylinder.cutWithPlane(cutPlane, cutCuboid, newRightCylinderPart);
+    if (rv != 1) {
+        pcout << "Problem with the surface cutting." << std::endl;
+        exit(1);
+    }
+    newRightCylinderPart.writeAsciiSTL("newRightCylinderPart.stl");
+
+    // Use a cuboid to cut the cylinder (wrong usage).
+    upperRightCorner = cutPlanePoint + Array<T,3>(0.0, radius, radius);
+
+    cutCuboid.upperRightCorner = upperRightCorner;
+
+    TriangleSet<T> newBrokenRightCylinderPart;
+    rv = 0;
+    rv = cylinder.cutWithPlane(cutPlane, cutCuboid, newBrokenRightCylinderPart);
+    if (rv != 1) {
+        pcout << "Problem with the surface cutting." << std::endl;
+        exit(1);
+    }
+    newBrokenRightCylinderPart.writeAsciiSTL("newBrokenRightCylinderPart.stl");
+
+    return 0;
+}
+
+
+
+EOF
+
+cd ..
+mkdir build
+cd build
+cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=./../inst ./../src
+make
+make install
+echo "build: OK"
+[ -x demo ]
+./demo
+echo "run: OK"
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..810ada7
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,2 @@
+Tests: buildTest1 buildTest2 buildTest3
+Depends: libplb-dev, build-essential, cmake
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..50e62e3
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,3 @@
+version=3
+opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a|r)\d*)$/$1~$2/,dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$// \
+http://www.palabos.org/download-ql .*palabos-v(\d.*).(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/palabos.git



More information about the debian-science-commits mailing list