summaryrefslogtreecommitdiffstats
path: root/debian/compizconfig-python-trinity
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2020-09-11 14:38:47 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2020-09-11 14:38:47 +0900
commit884c8093d63402a1ad0b502244b791e3c6782be3 (patch)
treea600d4ab0d431a2bdfe4c15b70df43c14fbd8dd0 /debian/compizconfig-python-trinity
parent14e1aa2006796f147f3f4811fb908a6b01e79253 (diff)
downloadextra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.tar.gz
extra-dependencies-884c8093d63402a1ad0b502244b791e3c6782be3.zip
Added debian extra dependency packages.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'debian/compizconfig-python-trinity')
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/AUTHORS0
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/COPYING340
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/ChangeLog0
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/Makefile.am8
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/NEWS0
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/README0
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/TODO0
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/VERSION1
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/acinclude.m4141
-rwxr-xr-xdebian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/autogen.sh16
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/compizconfig-python.pc.in13
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/configure.ac46
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/changelog175
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/compat1
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/control17
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/copyright30
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/02_fix_new_method.diff56
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/kubuntu_01_configure.diff15
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/series2
-rwxr-xr-xdebian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/rules39
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/format1
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/options6
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/Makefile.am17
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/compizconfig.pyx1307
-rw-r--r--debian/compizconfig-python-trinity/compizconfig-python-trinity_0.8.4.orig.tar.xzbin0 -> 16400 bytes
25 files changed, 2231 insertions, 0 deletions
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/AUTHORS b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/AUTHORS
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/AUTHORS
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/COPYING b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/COPYING
new file mode 100644
index 00000000..d60c31a9
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ 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
+this service 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.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+ 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
+convey 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 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
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/ChangeLog b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/ChangeLog
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/ChangeLog
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/Makefile.am b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/Makefile.am
new file mode 100644
index 00000000..b5275f75
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/Makefile.am
@@ -0,0 +1,8 @@
+SUBDIRS = src
+
+EXTRA_DIST = \
+ compizconfig-python.pc.in \
+ VERSION
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = compizconfig-python.pc
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/NEWS b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/NEWS
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/NEWS
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/README b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/README
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/README
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/TODO b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/TODO
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/TODO
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/VERSION b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/VERSION
new file mode 100644
index 00000000..e4184f46
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/VERSION
@@ -0,0 +1 @@
+VERSION=0.8.4
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/acinclude.m4 b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/acinclude.m4
new file mode 100644
index 00000000..7afdd152
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/acinclude.m4
@@ -0,0 +1,141 @@
+# Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+# 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, 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.
+
+# AM_PATH_PYTHON_VERSION(ABI-VERSION1, [MINIMUM-VERSION1 [, ABI-VERSION2, [MINIMUM-VERSION2 ...]]])
+#
+# An alternative to AM_PATH_PYTHON that checks for specific python ABI/version pairs.
+# Example:
+# AM_PATH_PYTHON_VERSION(2.3, 2.3.5, 2.4, 2.4.0)
+# checks for a python2.3 binary returning python version >= 2.3.5, and
+# if that fails it looks for python2.4 containing version >= 2.4.0
+# It aborts configure with an error if no statisfying version is found.
+# Env. var. PYTHON can be used to point a specific/laternate version to configure.
+
+AC_DEFUN([AM_PATH_PYTHON_VERSION],
+ [
+ m4_pattern_allow([m4_shift])
+ _python_save="$PYTHON"
+ dnl Find a Python interpreter with corresponding ABI version.
+
+ m4_define(PYTHON_var, PYTHON[]m4_translit($1,[.],[_]))
+
+ if test -z "$PYTHON"; then
+ AC_PATH_PROG(PYTHON_var, python$1, [])
+ else
+ PYTHON_var="$PYTHON"
+ fi
+
+ PYTHON="$PYTHON_var"
+ AC_SUBST(PYTHON)
+
+ if test -n "$PYTHON"; then
+
+ m4_if([$2],[],[
+ ], [
+ dnl A version check is needed.
+ AC_MSG_CHECKING([whether $PYTHON version is >= $2])
+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$2],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT([no]); PYTHON=""])
+ ])
+
+ fi
+
+ if test -z "$PYTHON"; then
+ dnl if more arguments, shift/recurse, else fail
+ m4_if([$3],[],[
+ AC_MSG_ERROR([no suitable Python interpreter found])
+ ], [
+ PYTHON="$_python_save"
+ AM_PATH_PYTHON_VERSION(m4_shift(m4_shift($@)))
+ ])
+
+ else
+
+ dnl Query Python for its version number. Getting [:3] seems to be
+ dnl the best way to do this; it's what "site.py" does in the standard
+ dnl library.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+ [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`])
+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+ dnl Use the values of $prefix and $exec_prefix for the corresponding
+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
+ dnl distinct variables so they can be overridden if need be. However,
+ dnl general consensus is that you shouldn't need this ability.
+
+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS platform Python thinks this is.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+ [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`])
+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+ dnl Set up 4 directories:
+
+ dnl pythondir -- where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+ [am_cv_python_pythondir],
+ [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+
+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+ dnl pyexecdir -- directory for installing python extension modules
+ dnl (shared libraries)
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+ [am_cv_python_pyexecdir],
+ [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
+ echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+ fi
+
+dnl deduce PYTHON_INCLUDES
+py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
+py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
+PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
+if test "$py_prefix" != "$py_exec_prefix"; then
+ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+fi
+AC_SUBST(PYTHON_INCLUDES)
+
+])
+
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/autogen.sh b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/autogen.sh
new file mode 100755
index 00000000..8e9f14bd
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/autogen.sh
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+#glib-gettextize --copy --force || exit 1
+#intltoolize --automake --copy --force || exit 1
+
+cd $ORIGDIR || exit $?
+
+$srcdir/configure --enable-maintainer-mode "$@"
+
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/compizconfig-python.pc.in b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/compizconfig-python.pc.in
new file mode 100644
index 00000000..00d26420
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/compizconfig-python.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+pyexecdir=@pyexecdir@
+
+Name: compizconfig-python
+Description: Compiz configuration system bindings
+Version: @VERSION@
+
+Requires: @CCS_REQUIRES@
+Libs: @CCS_LIBS@ -L@libdir@ -lcompizconfig
+Cflags: @CCS_CFLAGS@ -I@includedir@/compizconfig
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/configure.ac b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/configure.ac
new file mode 100644
index 00000000..27fd9823
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/configure.ac
@@ -0,0 +1,46 @@
+AC_PREREQ(2.57)
+AC_INIT([compizconfig-python],esyscmd(. ./VERSION;echo -n $VERSION), [livinglatexkali@gmail.com])
+
+AM_INIT_AUTOMAKE([1.9 dist-bzip2])
+AC_CONFIG_HEADER([config.h])
+AM_MAINTAINER_MODE
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_LIBTOOL
+AC_HEADER_STDC
+
+CCS_REQUIRES="\
+libcompizconfig >= 0.6.99 \
+glib-2.0 >= 2.6 "
+
+PKG_CHECK_MODULES(CCS,$CCS_REQUIRES)
+
+AC_SUBST(CCS_REQUIRES)
+
+dnl PYTHON SPECIFIC
+
+m4_define(required_python_abi,2.4)
+
+AM_PATH_PYTHON
+if test "$PYTHON_VERSION" = "2.4"
+then
+ AM_PATH_PYTHON_VERSION(2.4,2.4.0)
+else
+ AM_PATH_PYTHON_VERSION(2.5,2.5.0)
+fi
+
+AC_CHECK_PROGS(PYREX, pyrexc)
+if test -z "$PYREX"
+then
+ AC_MSG_ERROR([Couldn't find Pyrex])
+fi
+
+AC_CONFIG_FILES([
+ compizconfig-python.pc
+ Makefile
+ src/Makefile
+])
+
+AC_OUTPUT
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/changelog b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/changelog
new file mode 100644
index 00000000..9a53ba55
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/changelog
@@ -0,0 +1,175 @@
+compizconfig-python-trinity (0.8.4-3debian11.0.0+5~a) bullseye; urgency=low
+
+ * Change debhelper compatibility level to 9
+ * Replace python-dev dependency with python-all-dev or dh-python
+
+ -- Slávek Banko <slavek.banko@axis.cz> Wed, 08 Apr 2020 01:30:38 +0200
+
+compizconfig-python-trinity (0.8.4-3ubuntu20.04.0+4~a) focal; urgency=medium
+
+ * Fixed FTBFS caused by __new__ method in Pyrex.
+
+ -- Michele Calgaro <michele.calgaro@yahoo.it> Sun, 03 Sep 2017 23:54:11 +0900
+
+compizconfig-python-trinity (0.8.4-3ubuntu17.04.0+3~a) zesty; urgency=low
+
+ * Change debhelper compatibility level to 7
+
+ -- Slávek Banko <slavek.banko@axis.cz> Sat, 13 Aug 2016 18:53:28 +0200
+
+compizconfig-python-trinity (0.8.4-3ubuntu16.10.0+2~a) yakkety; urgency=low
+
+ * Rebuild without dependency on tdelibs / kdelibs
+ * Switch from dh_pycentral to dh_python2
+
+ -- Slávek Banko <slavek.banko@axis.cz> Mon, 05 Aug 2013 21:48:46 +0200
+
+compizconfig-python-trinity (0.8.4-2debian8.0.0+0) jessie; urgency=low
+
+ * Fix build with current Python
+ * Switch to format 3.0 (quilt)
+ * Switch to xz compression
+
+ -- Slávek Banko <slavek.banko@axis.cz> Fri, 28 Jun 2013 04:25:30 +0200
+
+compizconfig-python-trinity (0.8.4-0ubuntu2) maverick; urgency=low
+
+ * Initial Lucid build
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net> Tue, 02 Mar 2010 20:33:00 -0600
+
+compizconfig-python-trinity (0.8.4-0ubuntu0) karmic; urgency=low
+
+ * Karmic rebuild
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net> Thu, 02 July 2009 16:08:00 -0600
+
+compizconfig-python-trinity (0.7.4-0ubuntu11) jaunty; urgency=low
+
+ * Jaunty rebuild against Python 2.6
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net> Sun, 26 Apr 2009 13:35:00 -0600
+
+compizconfig-python-trinity (0.7.4-0ubuntu9) intrepid; urgency=low
+
+ * Moved KDE3 to /opt/trinity
+ * Integrated properly with KDE4.2+
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net> Fri, 06 March 2009 01:35:00 -0600
+
+compizconfig-python-trinity (0.7.4-0ubuntu5) intrepid; urgency=low
+
+ * Added -trinity prefix
+
+ -- Timothy Pearson <kb9vqf@pearsoncomputing.net> Mon, 01 Dec 2008 09:59:00 -0600
+
+compizconfig-python (0.7.4-0ubuntu1) hardy; urgency=low
+
+ * new upstream release
+ * build against latest libcompizconfig
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Sat, 05 Apr 2008 13:06:16 +0200
+
+compizconfig-python (0.7.2-0ubuntu1) hardy; urgency=low
+
+ * new upstream release
+ * updated standards version
+ * updated section
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 07 Mar 2008 15:10:24 +0100
+
+compizconfig-python (0.6.99+git20080214-0ubuntu1) hardy; urgency=low
+
+ * new git snpashot to keep track of libcompizconfig changes
+ with regard to autosave
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 14 Feb 2008 17:08:45 +0100
+
+compizconfig-python (0.6.99+git20071127-0ubuntu1) hardy; urgency=low
+
+ * new git HEAD snapshot
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 05 Dec 2007 22:03:03 +0100
+
+compizconfig-python (0.5.2+git20070912-0ubuntu1) gutsy; urgency=low
+
+ * new 0.6 snapshot
+ * fixes profile reset
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 12 Sep 2007 19:41:17 +0200
+
+compizconfig-python (0.5.2+git20070829-0ubuntu1) gutsy; urgency=low
+
+ * updated to latest git 0.6.0 branch
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 29 Aug 2007 10:42:08 +0200
+
+compizconfig-python (0.5.2-0ubuntu1) gutsy; urgency=low
+
+ * update to the 0.5.2 releae
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 17 Aug 2007 10:41:18 +0200
+
+compizconfig-python (0.0.0+git20070810-0ubuntu2) gutsy; urgency=low
+
+ * Small fixes to packaging (LP #131035)
+ * debian/rules
+ - Fix packaging to actually call dh_pycentral
+ + Generates correct python dependencies
+ - Remove .a and .la files from package
+ * debian/control
+ - We only build a python2.5 package. Make this explicit.
+
+ -- Christopher James Halse Rogers (RAOF) <chalserogers@gmail.com> Wed, 10 Aug 2007 17:56:56 +1000
+
+compizconfig-python (0.0.0+git20070810-0ubuntu1) gutsy; urgency=low
+
+ * new git snapshot
+ * b-d on latest libcompizconfig0-dev
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 10 Aug 2007 16:53:51 +0200
+
+compizconfig-python (0.0.0+git20070712-0ubuntu1) gutsy; urgency=low
+
+ * new git snapshot (for new compizconfig-settings-manager)
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 12 Jul 2007 09:55:34 +0100
+
+compizconfig-python (0.0.0+git20070703-0ubuntu1) gutsy; urgency=low
+
+ * new git snapshot
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 03 Jul 2007 16:47:16 +0200
+
+compizconfig-python (0.0.0+git20070622-0ubuntu1) gutsy; urgency=low
+
+ * new git snapshot
+ * renamed source package to compizconfig-python to match upstream
+ name
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 22 Jun 2007 09:01:16 +0200
+
+compizconfig-bindings (0.0.0+git20070615-0ubuntu2) gutsy; urgency=low
+
+ * fix FTBFS
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 19 Jun 2007 17:12:14 +0200
+
+compizconfig-bindings (0.0.0+git20070615-0ubuntu1) gutsy; urgency=low
+
+ * new git snapshot
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 15 Jun 2007 15:15:58 +0200
+
+compizconfig-bindings (0.0.0+git20070613-0ubuntu2) gutsy; urgency=low
+
+ * fix FTBFS by adding missing build-dependencies
+
+ -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 14 Jun 2007 08:57:57 +0200
+
+compizconfig-bindings (0.0.0+git20070613-0ubuntu1) gutsy; urgency=low
+
+ * Initial upload of the package to Ubuntu
+
+ -- Sebastien Bacher <seb128@canonical.com> Wed, 13 Jun 2007 15:59:31 +0200
+
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/compat b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/compat
new file mode 100644
index 00000000..ec635144
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/control b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/control
new file mode 100644
index 00000000..9ef2931f
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/control
@@ -0,0 +1,17 @@
+Source: compizconfig-python-trinity
+Section: deps-r14/python
+Priority: extra
+Maintainer: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+X-Python-Version: current
+Build-Depends: cdbs, debhelper (>= 9~), quilt, autotools-dev, automake, libtool, libglib2.0-dev (>= 2.6), python-pyrex, libcompizconfig0-trinity-dev, python-all-dev (>= 2.3.5-11), python-support | dh-python, libxml2-dev, libxslt1-dev
+Standards-Version: 3.7.3
+
+Package: python-compizconfig-trinity
+Architecture: any
+X-Python-Version: ${python:Versions}
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}
+Description: Compiz configuration system bindings [Trinity]
+ The OpenCompositing Project brings 3D desktop visual effects that improve
+ usability of the X Window System and provide increased productivity.
+ .
+ This package contains bindings for the compiz configuration system
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/copyright b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/copyright
new file mode 100644
index 00000000..fb18e429
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/copyright
@@ -0,0 +1,30 @@
+This package was debianized by Sebastien Bacher <seb128@canonical.com> on
+Wed, 13 Jun 2007 15:59:31 +0200.
+
+It was downloaded from git://anongit.opencompositing.org/compcomm/compiz-configuration-system/bindings/ccs-python
+
+Upstream Author: Quinn Storm (quinn@beryl-project.org)
+
+Copyright: Copyright (C) 2007 Quinn Storm
+
+License:
+
+ This package 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 package 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 package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+The Debian packaging is (C) 2007, Sebastien Bacher <seb128@canonical.com> and
+is licensed under the GPL, see above.
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/02_fix_new_method.diff b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/02_fix_new_method.diff
new file mode 100644
index 00000000..2d1c795f
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/02_fix_new_method.diff
@@ -0,0 +1,56 @@
+--- a/src/compizconfig.pyx
++++ b/src/compizconfig.pyx
+@@ -583,7 +583,7 @@ cdef class Setting:
+ cdef object extendedStrRestrictions
+ cdef object baseStrRestrictions
+
+- def __new__ (self, Plugin plugin, name, isScreen, screenNum = 0):
++ def __cinit__ (self, Plugin plugin, name, isScreen, screenNum = 0):
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+
+@@ -689,7 +689,7 @@ cdef class SSGroup:
+ cdef object display
+ cdef object screens
+
+- def __new__ (self, disp, screen):
++ def __cinit__ (self, disp, screen):
+ self.display = disp
+ self.screens = screen
+
+@@ -715,7 +715,7 @@ cdef class Plugin:
+ cdef object ranking
+ cdef object hasExtendedString
+
+- def __new__ (self, Context context, name):
++ def __cinit__ (self, Context context, name):
+ self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
+ self.context = context
+ self.screens = []
+@@ -1056,7 +1056,7 @@ cdef class Profile:
+ cdef Context context
+ cdef char * name
+
+- def __new__ (self, Context context, name):
++ def __cinit__ (self, Context context, name):
+ self.context = context
+ self.name = strdup (name)
+
+@@ -1078,7 +1078,7 @@ cdef class Backend:
+ cdef Bool profileSupport
+ cdef Bool integrationSupport
+
+- def __new__ (self, Context context, info):
++ def __cinit__ (self, Context context, info):
+ self.context = context
+ self.name = strdup (info[0])
+ self.shortDesc = strdup (info[1])
+@@ -1122,7 +1122,7 @@ cdef class Context:
+ cdef int nScreens
+ cdef Bool integration
+
+- def __new__ (self, screens = [0], plugins = [], basic_metadata = False):
++ def __cinit__ (self, screens = [0], plugins = [], basic_metadata = False):
+ cdef CCSPlugin * pl
+ cdef CCSList * pll
+ if basic_metadata:
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/kubuntu_01_configure.diff b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/kubuntu_01_configure.diff
new file mode 100644
index 00000000..6a27f10a
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/kubuntu_01_configure.diff
@@ -0,0 +1,15 @@
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac 2013-06-26 22:29:54.410840066 +0200
++++ b/configure.ac 2013-06-26 22:30:48.763362173 +0200
+@@ -11,6 +11,10 @@
+ AC_PROG_LIBTOOL
+ AC_HEADER_STDC
+
++# Alter PKG_CONFIG_PATH to contain compiz pkgconfig directory
++export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/trinity/lib:/opt/trinity/lib/kde3
++export PKG_CONFIG_PATH=/opt/trinity/lib/pkgconfig
++
+ CCS_REQUIRES="\
+ libcompizconfig >= 0.6.99 \
+ glib-2.0 >= 2.6 "
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/series b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/series
new file mode 100644
index 00000000..a832d111
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/patches/series
@@ -0,0 +1,2 @@
+kubuntu_01_configure.diff
+02_fix_new_method.diff
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/rules b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/rules
new file mode 100755
index 00000000..36774c7a
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/rules
@@ -0,0 +1,39 @@
+#!/usr/bin/make -f
+
+DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
+ && echo xz || echo bzip2)
+
+O_LD_PATH := $(LD_LIBRARY_PATH)
+export LD_LIBRARY_PATH = $(O_LD_PATH):/opt/trinity/lib
+
+DEB_PYTHON_SYSTEM = $(if $(wildcard /usr/bin/dh_python2),,pysupport)
+DH_PYTHON2 = $(if $(wildcard /usr/bin/dh_python2),dh_python2,dh_pysupport)
+
+DEB_CONFIGURE_EXTRA_FLAGS := --prefix=/opt/trinity --with-extra-libs=/opt/trinity/lib --with-extra-includes=/opt/trinity/include
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+DEB_CONFIGURE_INCLUDEDIR := /opt/trinity/include
+DEB_CONFIGURE_MANDIR := /opt/trinity/share/man
+DEB_CONFIGURE_PREFIX := /opt/trinity
+DEB_CONFIGURE_INFODIR := /opt/trinity/share/info
+
+cdbs_configure_flags := --with-qt-dir=/usr/share/qt3 --disable-rpath --with-xinerama $(cdbs_kde_enable_final) $(cdbs_kde_enable_debug)
+
+makebuilddir:: debian/stamp-autoreconf
+debian/stamp-autoreconf:
+ dh_testdir
+ autoreconf -vi
+ touch debian/stamp-autoreconf
+
+install/python-compizconfig-trinity::
+# mkdir -p debian/python-compizconfig-trinity/opt/trinity/lib/
+# cp -Rp debian/python-compizconfig-trinity/usr/lib/* debian/python-compizconfig-trinity/opt/trinity/lib/
+# rm -rf debian/python-compizconfig-trinity/usr/lib/
+ # Why are static and libtool libraries even built?
+ rm debian/python-compizconfig-trinity/opt/trinity/lib/python*/site-packages/*.a
+ rm debian/python-compizconfig-trinity/opt/trinity/lib/python*/site-packages/*.la
+
+binary-install/python-compizconfig-trinity::
+ ${DH_PYTHON2}
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/format b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/format
new file mode 100644
index 00000000..163aaf8d
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/options b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/options
new file mode 100644
index 00000000..72f1f545
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/debian/source/options
@@ -0,0 +1,6 @@
+# Use xz instead of gzip
+compression = "xz"
+compression-level = 9
+
+# Don't run differences
+diff-ignore = .*
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/Makefile.am b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/Makefile.am
new file mode 100644
index 00000000..2f792a95
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/Makefile.am
@@ -0,0 +1,17 @@
+INCLUDES=\
+ $(PYTHON_INCLUDES)\
+ @CCS_CFLAGS@
+
+compizconfig.c: compizconfig.pyx
+ -pyrexc compizconfig.pyx
+
+compizconfig_la_LDFLAGS = -module -avoid-version -fPIC -export-symbols-regex initcompizconfig -lX11
+compizconfig_la_LIBADD = @CCS_LIBS@
+compizconfig_la_SOURCES = compizconfig.c
+compizconfigdir=$(pyexecdir)
+compizconfig_LTLIBRARIES=compizconfig.la
+
+EXTRA_DIST=compizconfig.pyx
+
+clean-local:
+ rm -f compizconfig.c
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/compizconfig.pyx b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/compizconfig.pyx
new file mode 100644
index 00000000..f8ab652c
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity-0.8.4/src/compizconfig.pyx
@@ -0,0 +1,1307 @@
+'''
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser 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 Lesser 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.
+
+Authors:
+ Quinn Storm (quinn@beryl-project.org)
+ Patrick Niklaus (marex@opencompositing.org)
+ Guillaume Seguin (guillaume@segu.in)
+Copyright (C) 2007 Quinn Storm
+'''
+
+import operator
+StringSettingKeyFunc = operator.itemgetter (1)
+
+ctypedef unsigned int Bool
+
+cdef enum CCSSettingType:
+ TypeBool
+ TypeInt
+ TypeFloat
+ TypeString
+ TypeColor
+ TypeAction
+ TypeKey
+ TypeButton
+ TypeEdge
+ TypeBell
+ TypeMatch
+ TypeList
+ TypeNum
+
+cdef enum CCSPluginConflictType:
+ # produced on plugin activation
+ ConflictRequiresPlugin,
+ ConflictRequiresFeature,
+ ConflictFeature,
+ ConflictPlugin,
+ # produced on plugin deactivation
+ ConflictFeatureNeeded,
+ ConflictPluginNeeded,
+ ConflictPluginError
+
+SettingTypeString = [
+ "Bool",
+ "Int",
+ "Float",
+ "String",
+ "Color",
+ "Action",
+ "Key",
+ "Button",
+ "Edge",
+ "Bell",
+ "Match",
+ "List",
+ "Invalid"
+]
+
+ConflictTypeString = [
+ "RequiresPlugin", #A
+ "RequiresFeature", #A
+ "ConflictFeature", #A
+ "ConflictPlugin", #A
+ "FeatureNeeded", #D
+ "PluginNeeded", #D
+ "PluginError"
+]
+
+cdef struct CCSList:
+ void * data
+ CCSList * next
+
+ctypedef CCSList CCSSettingList
+ctypedef CCSList CCSPluginList
+ctypedef CCSList CCSStringList
+ctypedef CCSList CCSGroupList
+ctypedef CCSList CCSSubGroupList
+ctypedef CCSList CCSPluginConflictList
+ctypedef CCSList CCSSettingValueList
+ctypedef CCSList CCSBackendInfoList
+ctypedef CCSList CCSIntDescList
+ctypedef CCSList CCSStrRestrictionList
+ctypedef CCSList CCSStrExtensionList
+
+cdef struct CCSBackendInfo:
+ char * name
+ char * shortDesc
+ char * longDesc
+ Bool integrationSupport
+ Bool profileSupport
+
+cdef struct CCSSettingKeyValue:
+ int keysym
+ unsigned int keyModMask
+
+cdef struct CCSSettingButtonValue:
+ int button
+ unsigned int buttonModMask
+ int edgeMask
+
+cdef struct CCSSettingColorValueColor:
+ unsigned short red
+ unsigned short green
+ unsigned short blue
+ unsigned short alpha
+
+cdef union CCSSettingColorValue:
+ CCSSettingColorValueColor color
+ unsigned short array[4]
+
+cdef union CCSSettingValueUnion:
+ Bool asBool
+ int asInt
+ float asFloat
+ char * asString
+ char * asMatch
+ CCSSettingColorValue asColor
+ CCSSettingValueList * asList
+ CCSSettingKeyValue asKey
+ CCSSettingButtonValue asButton
+ unsigned int asEdge
+ Bool asBell
+
+cdef struct CCSIntDesc:
+ int value
+ char * name
+
+cdef struct CCSStrRestriction:
+ char * value
+ char * name
+
+cdef struct CCSSettingIntInfo:
+ int min
+ int max
+ CCSIntDescList * desc
+
+cdef struct CCSSettingFloatInfo:
+ float min
+ float max
+ float precision
+
+cdef struct CCSSettingStringInfo:
+ CCSStrRestrictionList * restriction
+ int sortStartsAt
+ Bool extensible
+
+cdef struct CCSSettingListInfo:
+ CCSSettingType listType
+ void * listInfo # actually CCSSettingInfo *, works around pyrex
+
+cdef struct CCSSettingActionInfo:
+ Bool internal
+
+cdef union CCSSettingInfo:
+ CCSSettingIntInfo forInt
+ CCSSettingFloatInfo forFloat
+ CCSSettingStringInfo forString
+ CCSSettingListInfo forList
+ CCSSettingActionInfo forAction
+
+cdef struct CCSSettingValue:
+ CCSSettingValueUnion value
+ void * parent
+ Bool isListChild
+
+cdef struct CCSGroup:
+ char * name
+ CCSSubGroupList * subGroups
+
+cdef struct CCSSubGroup:
+ char * name
+ CCSSettingList * settings
+
+cdef struct CCSPluginCategory:
+ char * name
+ char * shortDesc
+ char * longDesc
+ CCSStringList * plugins
+
+cdef struct CCSContext:
+ CCSPluginList * plugins
+ CCSPluginCategory * categories
+
+ void * priv
+ void * ccsPrivate
+
+ CCSSettingList * changedSettings
+
+ unsigned int * screens
+ unsigned int numScreens
+
+cdef struct CCSPlugin
+
+cdef struct CCSSetting:
+ char * name
+ char * shortDesc
+ char * longDesc
+
+ CCSSettingType type
+
+ Bool isScreen
+ unsigned int screenNum
+
+ CCSSettingInfo info
+ char * group
+ char * subGroup
+ char * hints
+
+ CCSSettingValue defaultValue
+ CCSSettingValue * value
+ Bool isDefault
+
+ CCSPlugin * parent
+ void * priv
+
+cdef struct CCSStrExtension:
+ char * basePlugin
+ CCSSettingList * baseSettings
+ CCSStrRestrictionList * restriction
+ Bool isScreen
+
+cdef struct CCSPlugin:
+ char * name
+ char * shortDesc
+ char * longDesc
+ char * hints
+ char * category
+
+ CCSStringList * loadAfter
+ CCSStringList * loadBefore
+ CCSStringList * requiresPlugin
+ CCSStringList * conflictPlugin
+ CCSStringList * conflictFeature
+ CCSStringList * providesFeature
+ CCSStringList * requiresFeature
+
+ void * priv
+ CCSContext * context
+ void * ccsPrivate
+
+cdef struct CCSPluginConflict:
+ char * value
+ CCSPluginConflictType type
+ CCSPluginList * plugins
+
+'''Context functions'''
+cdef extern void ccsSetBasicMetadata (Bool value)
+cdef extern CCSContext * ccsContextNew (unsigned int * screens,
+ unsigned int numScreens)
+cdef extern CCSContext * ccsEmptyContextNew (unsigned int * screens,
+ unsigned int numScreens)
+cdef extern void ccsContextDestroy (CCSContext * context)
+
+'''Plugin functions'''
+cdef extern Bool ccsLoadPlugin (CCSContext * context, char * name)
+cdef extern CCSPlugin * ccsFindPlugin (CCSContext * context, char * name)
+cdef extern CCSSetting * ccsFindSetting (CCSPlugin * plugin,
+ char * name,
+ Bool isScreen,
+ int screenNum)
+cdef extern CCSSettingList * ccsGetPluginSettings (CCSPlugin * plugin)
+cdef extern CCSGroupList * ccsGetPluginGroups (CCSPlugin * plugin)
+
+'''Action => String'''
+cdef extern char * ccsModifiersToString (unsigned int modMask)
+cdef extern char * ccsEdgesToString (unsigned int edge)
+cdef extern char * ccsEdgesToModString (unsigned int edge)
+cdef extern char * ccsKeyBindingToString (CCSSettingKeyValue *key)
+cdef extern char * ccsButtonBindingToString (CCSSettingButtonValue *button)
+
+'''String utils'''
+cdef extern from 'string.h':
+ ctypedef int size_t
+ cdef extern char * strdup (char * s)
+ cdef extern void memset (void * s, int c, size_t n)
+ cdef extern void free (void * f)
+ cdef extern void * malloc (size_t s)
+
+'''String => Action'''
+cdef extern unsigned int ccsStringToModifiers (char *binding)
+cdef extern unsigned int ccsStringToEdges (char *edge)
+cdef extern unsigned int ccsModStringToEdges (char *edge)
+cdef extern Bool ccsStringToKeyBinding (char * binding,
+ CCSSettingKeyValue * key)
+cdef extern Bool ccsStringToButtonBinding (char * binding,
+ CCSSettingButtonValue * button)
+
+'''General settings handling'''
+cdef extern Bool ccsSetValue (CCSSetting * setting,
+ CCSSettingValue * value)
+cdef extern void ccsFreeSettingValue (CCSSettingValue * value)
+cdef extern CCSSettingValueList * ccsSettingValueListAppend (
+ CCSSettingValueList * l,
+ CCSSettingValue * v)
+cdef extern CCSSettingList *ccsSettingListFree (CCSSettingList * list,
+ Bool freeObj)
+
+'''Profiles'''
+cdef extern CCSStringList * ccsGetExistingProfiles (CCSContext * context)
+cdef extern void ccsDeleteProfile (CCSContext * context, char * name)
+cdef extern void ccsSetProfile (CCSContext * context, char * name)
+cdef extern char* ccsGetProfile (CCSContext * context)
+
+'''Backends'''
+cdef extern CCSBackendInfoList * ccsGetExistingBackends ()
+cdef extern Bool ccsSetBackend (CCSContext * context, char * name)
+cdef extern char* ccsGetBackend (CCSContext * context)
+
+'''Sorting'''
+cdef extern void ccsSetPluginListAutoSort (CCSContext *context, Bool value)
+cdef extern Bool ccsGetPluginListAutoSort (CCSContext *context)
+
+'''Integration'''
+cdef extern void ccsSetIntegrationEnabled (CCSContext * context, Bool value)
+cdef extern Bool ccsGetIntegrationEnabled (CCSContext * context)
+
+'''IO handling'''
+cdef extern void ccsReadSettings (CCSContext * c)
+cdef extern void ccsWriteSettings (CCSContext * c)
+cdef extern void ccsWriteChangedSettings (CCSContext * c)
+cdef extern void ccsResetToDefault (CCSSetting * s)
+
+'''Event loop'''
+ProcessEventsNoGlibMainLoopMask = (1 << 0)
+cdef extern void ccsProcessEvents (CCSContext * context, unsigned int flags)
+
+'''Import/export'''
+cdef extern Bool ccsExportToFile (CCSContext * context, char * fileName, Bool skipDefaults)
+cdef extern Bool ccsImportFromFile (CCSContext * context,
+ char * fileName,
+ Bool overwrite)
+
+'''Misc. Plugin/Setting utils'''
+cdef extern Bool ccsSettingIsReadOnly (CCSSetting * setting)
+cdef extern Bool ccsSettingIsIntegrated (CCSSetting * setting)
+
+cdef extern void ccsPluginConflictListFree (CCSPluginConflictList * l,
+ Bool freeObj)
+cdef extern CCSPluginConflictList * ccsCanEnablePlugin (CCSContext * c,
+ CCSPlugin * p)
+cdef extern CCSPluginConflictList * ccsCanDisablePlugin (CCSContext * c,
+ CCSPlugin * p)
+
+cdef extern Bool ccsPluginSetActive (CCSPlugin * p, Bool v)
+cdef extern Bool ccsPluginIsActive (CCSContext * c, char * n)
+
+cdef extern CCSStrExtensionList * ccsGetPluginStrExtensions (CCSPlugin * plugin)
+
+cdef class Context
+cdef class Plugin
+cdef class Setting
+
+cdef CCSSettingType GetType (CCSSettingValue * value):
+ if value.isListChild:
+ return (<CCSSetting *> value.parent).info.forList.listType
+ else:
+ return (<CCSSetting *> value.parent).type
+
+cdef CCSStringList * ListToStringList (object list):
+ if len (list) <= 0:
+ return NULL
+
+ cdef CCSStringList * listStart
+ cdef CCSStringList * stringList
+ cdef CCSStringList * prev
+ listStart = <CCSStringList *> malloc (sizeof (CCSStringList))
+ listStart.data = <char *> strdup (list[0])
+ listStart.next = NULL
+ prev = listStart
+
+ for l in list[1:]:
+ stringList = <CCSStringList *> malloc (sizeof (CCSStringList))
+ stringList.data = <char *> strdup (l)
+ stringList.next = NULL
+ prev.next = stringList
+ prev = stringList
+
+ return listStart
+
+cdef object StringListToList (CCSList * stringList):
+ list = []
+ while stringList:
+ item = <char *> stringList.data
+ list.append (item)
+ stringList = stringList.next
+ return list
+
+cdef CCSSettingList * ListToSettingList (object list):
+ if len (list) <= 0:
+ return NULL
+
+ cdef CCSSettingList * listStart
+ cdef CCSSettingList * settingList
+ cdef CCSSettingList * prev
+ cdef Setting setting
+
+ listStart = <CCSSettingList *> malloc (sizeof (CCSSettingList))
+ setting = <Setting> list[0]
+ listStart.data = <CCSSetting *> setting.ccsSetting
+ listStart.next = NULL
+ prev = listStart
+
+ for l in list[1:]:
+ settingList = <CCSSettingList *> malloc (sizeof (CCSSettingList))
+ setting = <Setting> l
+ settingList.data = <CCSSetting *> setting.ccsSetting
+ settingList.next = NULL
+ prev.next = settingList
+ prev = settingList
+
+ return listStart
+
+cdef object SettingListToList (Context context, CCSList * settingList):
+ cdef CCSSetting * ccsSetting
+ list = []
+
+ while settingList:
+ ccsSetting = <CCSSetting *> settingList.data
+ setting = None
+ plugin = context.Plugins[ccsSetting.parent.name]
+ if ccsSetting.isScreen:
+ setting = plugin.Screens[ccsSetting.screenNum][ccsSetting.name]
+ else:
+ setting = plugin.Display[ccsSetting.name]
+ list.append (setting)
+ settingList = settingList.next
+
+ return list
+
+cdef object IntDescListToDict (CCSIntDescList * intDescList):
+ cdef CCSIntDesc * desc
+ dict = {}
+ while intDescList:
+ desc = <CCSIntDesc *> intDescList.data
+ dict[desc.name] = desc.value
+ intDescList = intDescList.next
+ return dict
+
+cdef object StrRestrictionListToDict (CCSStrRestrictionList * restrictionList,
+ object initialDict):
+ cdef CCSStrRestriction * restriction
+ dict = initialDict
+ listOfAddedItems = []
+ while restrictionList:
+ restriction = <CCSStrRestriction *> restrictionList.data
+ dict[restriction.name] = restriction.value
+ listOfAddedItems.append ((restriction.name, restriction.value))
+ restrictionList = restrictionList.next
+ return (dict, listOfAddedItems)
+
+cdef CCSSettingValue * EncodeValue (object data,
+ CCSSetting * setting,
+ Bool isListChild):
+ cdef CCSSettingValue * bv
+ cdef CCSSettingType t
+ cdef CCSList * l
+ bv = <CCSSettingValue *> malloc (sizeof (CCSSettingValue))
+ memset (bv, 0, sizeof (CCSSettingValue))
+ bv.isListChild = isListChild
+ bv.parent = setting
+ if isListChild:
+ t = setting.info.forList.listType
+ else:
+ t = setting.type
+ if t == TypeString:
+ bv.value.asString = strdup (data)
+ elif t == TypeMatch:
+ bv.value.asMatch = strdup (data)
+ elif t == TypeInt:
+ bv.value.asInt = data
+ elif t == TypeFloat:
+ bv.value.asFloat = data
+ elif t == TypeBool:
+ if data:
+ bv.value.asBool = 1
+ else:
+ bv.value.asBool = 0
+ elif t == TypeColor:
+ bv.value.asColor.color.red = data[0]
+ bv.value.asColor.color.green = data[1]
+ bv.value.asColor.color.blue = data[2]
+ bv.value.asColor.color.alpha = data[3]
+ elif t == TypeKey:
+ ccsStringToKeyBinding (data, &bv.value.asKey)
+ elif t == TypeButton:
+ ccsStringToButtonBinding (data, &bv.value.asButton)
+ elif t == TypeEdge:
+ bv.value.asEdge = ccsStringToEdges (data)
+ elif t == TypeBell:
+ if (data):
+ bv.value.asBell = 1
+ else:
+ bv.value.asBell = 0
+ elif t == TypeList:
+ l = NULL
+ for item in data:
+ l = ccsSettingValueListAppend (l, EncodeValue (item, setting, 1))
+ bv.value.asList = l
+ return bv
+
+cdef object DecodeValue (CCSSettingValue * value):
+ cdef CCSSettingType t
+ cdef char * s
+ cdef CCSList * l
+ cdef object cs
+ cdef object ks
+ cdef object bs
+ cdef object es
+ cdef object eb
+ t = GetType (value)
+ if t == TypeString:
+ return value.value.asString
+ elif t == TypeMatch:
+ return value.value.asMatch
+ elif t == TypeBool:
+ if value.value.asBool:
+ return True
+ return False
+ elif t == TypeInt:
+ return value.value.asInt
+ elif t == TypeFloat:
+ return value.value.asFloat
+ elif t == TypeColor:
+ return [value.value.asColor.color.red,
+ value.value.asColor.color.green,
+ value.value.asColor.color.blue,
+ value.value.asColor.color.alpha]
+ elif t == TypeKey:
+ s = ccsKeyBindingToString (&value.value.asKey)
+ if s != NULL:
+ ks = s
+ free (s)
+ else:
+ ks = "None"
+ return ks
+ elif t == TypeButton:
+ s = ccsButtonBindingToString (&value.value.asButton)
+ if s != NULL:
+ bs = s
+ free (s)
+ else:
+ bs = "None"
+ if bs == "Button0":
+ bs = "None"
+ return bs
+ elif t == TypeEdge:
+ s = ccsEdgesToString (value.value.asEdge)
+ if s != NULL:
+ es = s
+ free (s)
+ else:
+ es = "None"
+ return es
+ elif t == TypeBell:
+ bb = False
+ if value.value.asBell:
+ bb = True
+ return bb
+ elif t == TypeList:
+ lret = []
+ l = value.value.asList
+ while l != NULL:
+ lret.append (DecodeValue (<CCSSettingValue *> l.data))
+ l = l.next
+ return lret
+ return "Unhandled"
+
+cdef class Setting:
+ cdef CCSSetting * ccsSetting
+ cdef object info
+ cdef Plugin plugin
+ cdef object extendedStrRestrictions
+ cdef object baseStrRestrictions
+
+ def __new__ (self, Plugin plugin, name, isScreen, screenNum = 0):
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+
+ self.ccsSetting = ccsFindSetting (plugin.ccsPlugin,
+ name, isScreen, screenNum)
+ self.plugin = plugin
+
+ self.extendedStrRestrictions = None
+ self.baseStrRestrictions = None
+ info = ()
+ t = self.ccsSetting.type
+ i = &self.ccsSetting.info
+ if t == TypeList:
+ t = self.ccsSetting.info.forList.listType
+ i = <CCSSettingInfo *> self.ccsSetting.info.forList.listInfo
+ if t == TypeInt:
+ desc = IntDescListToDict (i.forInt.desc)
+ info = (i.forInt.min, i.forInt.max, desc)
+ elif t == TypeFloat:
+ info = (i.forFloat.min, i.forFloat.max,
+ i.forFloat.precision)
+ elif t == TypeString:
+ # info is filled later in Plugin.SortSingleStringSetting
+ info = ({}, {}, [])
+ self.baseStrRestrictions = []
+ self.extendedStrRestrictions = {}
+ elif t in (TypeKey, TypeButton, TypeEdge, TypeBell):
+ info = (bool (i.forAction.internal),)
+ if self.ccsSetting.type == TypeList:
+ info = (SettingTypeString[t], info)
+ self.info = info
+
+ def Reset (self):
+ ccsResetToDefault (self.ccsSetting)
+
+ property Plugin:
+ def __get__ (self):
+ return self.plugin
+
+ property Name:
+ def __get__ (self):
+ return self.ccsSetting.name
+
+ property ShortDesc:
+ def __get__ (self):
+ return self.ccsSetting.shortDesc
+
+ property LongDesc:
+ def __get__ (self):
+ return self.ccsSetting.longDesc
+
+ property Group:
+ def __get__ (self):
+ return self.ccsSetting.group
+
+ property SubGroup:
+ def __get__ (self):
+ return self.ccsSetting.subGroup
+
+ property Type:
+ def __get__ (self):
+ return SettingTypeString[self.ccsSetting.type]
+
+ property Info:
+ def __get__ (self):
+ return self.info
+
+ property Hints:
+ def __get__ (self):
+ if self.ccsSetting.hints == '':
+ return []
+ else:
+ return str (self.ccsSetting.hints).split (";")[:-1]
+
+ property IsDefault:
+ def __get__ (self):
+ if self.ccsSetting.isDefault:
+ return True
+ return False
+
+ property DefaultValue:
+ def __get__ (self):
+ return DecodeValue (&self.ccsSetting.defaultValue)
+
+ property Value:
+ def __get__ (self):
+ return DecodeValue (self.ccsSetting.value)
+ def __set__ (self, value):
+ cdef CCSSettingValue * sv
+ sv = EncodeValue (value, self.ccsSetting, 0)
+ ccsSetValue (self.ccsSetting, sv)
+ ccsFreeSettingValue (sv)
+
+ property Integrated:
+ def __get__ (self):
+ return bool (ccsSettingIsIntegrated (self.ccsSetting))
+
+ property ReadOnly:
+ def __get__ (self):
+ return bool (ccsSettingIsReadOnly (self.ccsSetting))
+
+cdef class SSGroup:
+ cdef object display
+ cdef object screens
+
+ def __new__ (self, disp, screen):
+ self.display = disp
+ self.screens = screen
+
+ property Display:
+ def __get__ (self):
+ return self.display
+ def __set__ (self, value):
+ self.display = value
+
+ property Screens:
+ def __get__ (self):
+ return self.screens
+ def __set__ (self, value):
+ self.screens = value
+
+cdef class Plugin:
+ cdef CCSPlugin * ccsPlugin
+ cdef Context context
+ cdef object screens
+ cdef object display
+ cdef object groups
+ cdef object loaded
+ cdef object ranking
+ cdef object hasExtendedString
+
+ def __new__ (self, Context context, name):
+ self.ccsPlugin = ccsFindPlugin (context.ccsContext, name)
+ self.context = context
+ self.screens = []
+ self.display = {}
+ self.groups = {}
+ self.loaded = False
+ self.ranking = {}
+ self.hasExtendedString = False
+
+ for n in range (0, context.NScreens):
+ self.screens.append ({})
+
+ def Update (self):
+ cdef CCSList * setlist
+ cdef CCSList * glist
+ cdef CCSList * sglist
+ cdef CCSSetting * sett
+ cdef CCSGroup * gr
+ cdef CCSSubGroup * sgr
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+
+ groupIndex = 0
+ glist = ccsGetPluginGroups (self.ccsPlugin)
+ while glist != NULL:
+ gr = <CCSGroup *> glist.data
+ self.groups[gr.name] = (groupIndex, {})
+ subGroupIndex = 0
+ sglist = gr.subGroups
+ while sglist != NULL:
+ sgr = <CCSSubGroup *> sglist.data
+ scr = []
+ for n in range (0, self.context.NScreens):
+ scr.append ({})
+ self.groups[gr.name][1][sgr.name] = (subGroupIndex,
+ SSGroup ({}, scr))
+ subGroupIndex = subGroupIndex + 1
+ sglist = sglist.next
+ groupIndex = groupIndex + 1
+ glist = glist.next
+ setlist = ccsGetPluginSettings (self.ccsPlugin)
+
+ self.hasExtendedString = False
+ rank = 0
+ while setlist != NULL:
+ sett = <CCSSetting *> setlist.data
+
+ subgroup = self.groups[sett.group][1][sett.subGroup][1]
+
+ if sett.isScreen:
+ setting = Setting (self, sett.name, True, sett.screenNum)
+ self.screens[sett.screenNum][sett.name] = setting
+ subgroup.Screens[sett.screenNum][sett.name] = setting
+ else:
+ setting = Setting (self, sett.name, False)
+ self.display[sett.name] = setting
+ subgroup.Display[sett.name] = setting
+
+ t = sett.type
+ i = &sett.info
+ if t == TypeList:
+ t = i.forList.listType
+ i = <CCSSettingInfo *> i.forList.listInfo
+ if t == TypeString and i.forString.extensible:
+ self.hasExtendedString = True
+
+ if not self.ranking.has_key (sett.name):
+ self.ranking[sett.name] = rank
+ rank = rank + 1
+
+ setlist = setlist.next
+
+ self.loaded = True
+
+ self.ApplyStringExtensions (True, self.Enabled)
+ self.SortStringSettings ()
+
+ def SortStringSettings (self):
+ for i in xrange (self.context.nScreens):
+ for name, setting in self.Screens[i].items ():
+ self.SortSingleStringSetting (setting)
+ for name, setting in self.Display.items ():
+ self.SortSingleStringSetting (setting)
+
+ def SortSingleStringSetting (self, Setting setting):
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+
+ t = setting.ccsSetting.type
+ i = &setting.ccsSetting.info
+ if t == TypeList:
+ t = i.forList.listType
+ i = <CCSSettingInfo *> i.forList.listInfo
+ if t != TypeString:
+ return
+
+ (itemsByName, listOfAddedItems) = \
+ StrRestrictionListToDict (i.forString.restriction,
+ setting.extendedStrRestrictions)
+
+ # Let base string restrictions be the ones given in the option metadata
+ # in the base plugin plus the ones found in the extensions in the same
+ # plugin.
+ setting.baseStrRestrictions = \
+ listOfAddedItems + setting.baseStrRestrictions
+
+ if i.forString.sortStartsAt < 0:
+ # don't sort
+ sortedItems = itemsByName.items ()
+ elif i.forString.sortStartsAt == 0:
+ # Sort all items by value
+ sortedItems = sorted (itemsByName.items (),
+ key=StringSettingKeyFunc)
+ else:
+ # Sort first sortStartsAt many items by value and
+ # the remaining ones by name
+ itemsNotSorted = \
+ setting.baseStrRestrictions[:i.forString.sortStartsAt]
+ itemsNotSortedSet = set (itemsNotSorted)
+ allItemsSet = set (itemsByName.items ())
+ itemsSortedByName = sorted (list (allItemsSet - itemsNotSortedSet),
+ key=operator.itemgetter (0))
+ sortedItems = itemsNotSorted + itemsSortedByName
+
+ itemsByValue = {}
+ for (index, (name, value)) in enumerate (sortedItems):
+ itemsByValue[value] = (name, index)
+
+ # Insert itemsByName and sortedItems into setting.info
+ if setting.ccsSetting.type == TypeList:
+ setting.info = (setting.info[0], (itemsByName,
+ itemsByValue,
+ sortedItems))
+ else:
+ setting.info = (itemsByName, itemsByValue, sortedItems)
+
+ def ApplyStringExtensions (self, sortBaseSetting, extendOthersToo):
+ cdef CCSStrExtensionList * extList
+ cdef CCSStrExtension * ext
+ cdef char * baseSettingName
+ cdef CCSStringList * baseSettingList
+ cdef CCSSettingType t
+ cdef CCSSettingInfo * i
+ cdef CCSStrRestrictionList * restrictionList
+ cdef CCSStrRestriction * restriction
+ cdef Plugin basePlugin
+ cdef Setting setting
+
+ extList = ccsGetPluginStrExtensions (self.ccsPlugin)
+ while extList:
+ ext = <CCSStrExtension *> extList.data
+
+ # If not extending others and extension base is not self, skip
+ if (not (extendOthersToo or ext.basePlugin == self.Name)) or \
+ ext.basePlugin not in self.context.Plugins:
+ extList = extList.next
+ continue
+
+ basePlugin = self.context.Plugins[ext.basePlugin]
+
+ baseSettingList = ext.baseSettings
+ while baseSettingList:
+ baseSettingName = <char *> baseSettingList.data
+
+ if ext.isScreen:
+ settings = []
+ for x in xrange (self.context.nScreens):
+ settings.append (basePlugin.Screens[x][baseSettingName])
+ else:
+ settings = [basePlugin.Display[baseSettingName]]
+
+ for settingItem in settings:
+ setting = settingItem
+ t = setting.ccsSetting.type
+ i = &setting.ccsSetting.info
+ if t == TypeList:
+ t = i.forList.listType
+ i = <CCSSettingInfo *> i.forList.listInfo
+ if not (t == TypeString and i.forString.extensible):
+ return
+
+ restrictionList = ext.restriction
+
+ # Add each item in restriction list to the setting
+ while restrictionList != NULL:
+ restriction = <CCSStrRestriction *> restrictionList.data
+ setting.extendedStrRestrictions[restriction.name] = \
+ restriction.value
+ if ext.basePlugin == self.Name:
+ setting.baseStrRestrictions.append ((restriction.name,
+ restriction.value))
+ restrictionList = restrictionList.next
+
+ if sortBaseSetting:
+ basePlugin.SortSingleStringSetting (setting)
+
+ baseSettingList = baseSettingList.next
+
+ extList = extList.next
+
+ def GetExtensionBasePlugins (self):
+ cdef CCSStrExtensionList * extList
+ cdef CCSStrExtension * ext
+
+ basePlugins = set ([])
+ extList = ccsGetPluginStrExtensions (self.ccsPlugin)
+ while extList:
+ ext = <CCSStrExtension *> extList.data
+ basePlugins.add (self.context.Plugins[ext.basePlugin])
+ extList = extList.next
+
+ return list (basePlugins)
+
+ property Context:
+ def __get__ (self):
+ return self.context
+
+ property Groups:
+ def __get__ (self):
+ if not self.loaded:
+ self.Update ()
+ return self.groups
+
+ property Display:
+ def __get__ (self):
+ if not self.loaded:
+ self.Update ()
+ return self.display
+
+ property Screens:
+ def __get__ (self):
+ if not self.loaded:
+ self.Update ()
+ return self.screens
+
+ property Ranking:
+ def __get__ (self):
+ if not self.loaded:
+ self.Update ()
+ return self.ranking
+
+ property Name:
+ def __get__ (self):
+ return self.ccsPlugin.name
+
+ property ShortDesc:
+ def __get__ (self):
+ return self.ccsPlugin.shortDesc
+
+ property LongDesc:
+ def __get__ (self):
+ return self.ccsPlugin.longDesc
+
+ property Category:
+ def __get__ (self):
+ return self.ccsPlugin.category
+
+ property Features:
+ def __get__ (self):
+ features = StringListToList (self.ccsPlugin.providesFeature)
+ return features
+
+ property Initialized:
+ def __get__ (self):
+ return bool (self.loaded)
+
+ property Enabled:
+ def __get__ (self):
+ return bool (ccsPluginIsActive (self.context.ccsContext,
+ self.ccsPlugin.name))
+ def __set__ (self, val):
+ if val:
+ if len (self.EnableConflicts):
+ return
+ ccsPluginSetActive (self.ccsPlugin, True)
+ else:
+ if len (self.DisableConflicts):
+ return
+ ccsPluginSetActive (self.ccsPlugin, False)
+
+ property EnableConflicts:
+ def __get__ (self):
+ cdef CCSPluginConflictList * pl, * pls
+ cdef CCSPluginConflict * pc
+ cdef CCSPluginList * ppl
+ cdef CCSPlugin * plg
+
+ if self.Enabled:
+ return []
+
+ ret = []
+ pl = ccsCanEnablePlugin (self.context.ccsContext,
+ self.ccsPlugin)
+ pls = pl
+ while pls != NULL:
+ pc = <CCSPluginConflict *> pls.data
+ rpl = []
+ ppl = pc.plugins
+ while ppl != NULL:
+ plg = <CCSPlugin *> ppl.data
+ rpl.append (self.context.Plugins[plg.name])
+ ppl = ppl.next
+ ret.append ((ConflictTypeString[pc.type], pc.value, rpl))
+ pls = pls.next
+ if pl != NULL:
+ ccsPluginConflictListFree (pl, True)
+ return ret
+
+ property DisableConflicts:
+ def __get__ (self):
+ cdef CCSPluginConflictList * pl, * pls
+ cdef CCSPluginConflict * pc
+ cdef CCSPluginList * ppl
+ cdef CCSPlugin * plg
+
+ if not self.Enabled:
+ return []
+
+ ret = []
+ pl = ccsCanDisablePlugin (self.context.ccsContext,
+ self.ccsPlugin)
+ pls = pl
+ while pls != NULL:
+ pc = <CCSPluginConflict *> pls.data
+ rpl = []
+ ppl = pc.plugins
+ while ppl != NULL:
+ plg = <CCSPlugin *> ppl.data
+ rpl.append (self.context.Plugins[plg.name])
+ ppl = ppl.next
+ ret.append ((ConflictTypeString[pc.type], pc.value, rpl))
+ pls = pls.next
+ if pl != NULL:
+ ccsPluginConflictListFree (pl, True)
+ return ret
+
+cdef class Profile:
+ cdef Context context
+ cdef char * name
+
+ def __new__ (self, Context context, name):
+ self.context = context
+ self.name = strdup (name)
+
+ def __dealloc (self):
+ free (self.name)
+
+ def Delete (self):
+ ccsDeleteProfile (self.context.ccsContext, self.name)
+
+ property Name:
+ def __get__ (self):
+ return self.name
+
+cdef class Backend:
+ cdef Context context
+ cdef char * name
+ cdef char * shortDesc
+ cdef char * longDesc
+ cdef Bool profileSupport
+ cdef Bool integrationSupport
+
+ def __new__ (self, Context context, info):
+ self.context = context
+ self.name = strdup (info[0])
+ self.shortDesc = strdup (info[1])
+ self.longDesc = strdup (info[2])
+ self.profileSupport = bool (info[3])
+ self.integrationSupport = bool (info[4])
+
+ def __dealloc__ (self):
+ free (self.name)
+ free (self.shortDesc)
+ free (self.longDesc)
+
+ property Name:
+ def __get__ (self):
+ return self.name
+
+ property ShortDesc:
+ def __get__ (self):
+ return self.shortDesc
+
+ property LongDesc:
+ def __get__ (self):
+ return self.longDesc
+
+ property IntegrationSupport:
+ def __get__ (self):
+ return self.integrationSupport
+
+ property ProfileSupport:
+ def __get__ (self):
+ return self.profileSupport
+
+cdef class Context:
+ cdef CCSContext * ccsContext
+ cdef object plugins
+ cdef object categories
+ cdef object profiles
+ cdef object currentProfile
+ cdef object backends
+ cdef object currentBackend
+ cdef int nScreens
+ cdef Bool integration
+
+ def __new__ (self, screens = [0], plugins = [], basic_metadata = False):
+ cdef CCSPlugin * pl
+ cdef CCSList * pll
+ if basic_metadata:
+ ccsSetBasicMetadata (True)
+ self.nScreens = nScreens = len (screens)
+ self.plugins = {}
+ cdef unsigned int * screensBuf
+ screensBuf = <unsigned int *> malloc (sizeof (unsigned int) * nScreens)
+ for i in range (nScreens):
+ screensBuf[i] = screens[i]
+ if not len (plugins):
+ self.ccsContext = ccsContextNew (screensBuf, nScreens)
+ else:
+ self.ccsContext = ccsEmptyContextNew (screensBuf, nScreens)
+ free (screensBuf)
+
+ for plugin in plugins:
+ self.LoadPlugin (plugin)
+
+ ccsReadSettings (self.ccsContext)
+ pll = self.ccsContext.plugins
+ self.categories = {}
+ while pll != NULL:
+ pl = <CCSPlugin *> pll.data
+ self.plugins[pl.name] = Plugin (self, pl.name)
+ if pl.category == NULL:
+ cat = ''
+ else:
+ cat = pl.category
+ if not self.categories.has_key (cat):
+ self.categories[cat] = []
+ self.categories[cat].append (self.plugins[pl.name])
+ pll = pll.next
+
+ self.integration = ccsGetIntegrationEnabled (self.ccsContext)
+
+ self.UpdateProfiles ()
+
+ def UpdateExtensiblePlugins (self):
+ cdef Plugin plugin
+
+ # Reset all extensible plugins
+ for name, pluginItem in self.plugins.items ():
+ plugin = pluginItem
+ if plugin.hasExtendedString:
+ plugin.Update ()
+
+ # Apply restricted string extensions
+ for name, pluginItem in self.plugins.items ():
+ plugin = pluginItem
+ if plugin.Enabled:
+ plugin.ApplyStringExtensions (False, True)
+
+ # Sort restricted string settings
+ for name, pluginItem in self.plugins.items ():
+ plugin = pluginItem
+ if plugin.Enabled and plugin.hasExtendedString:
+ plugin.SortStringSettings ()
+
+ def __dealloc__ (self):
+ ccsContextDestroy (self.ccsContext)
+
+ def LoadPlugin (self, plugin):
+ return ccsLoadPlugin (self.ccsContext, plugin)
+
+ # Returns the settings that should be updated
+ def ProcessEvents (self, flags = 0):
+ ccsProcessEvents (self.ccsContext, flags)
+ if len (self.ChangedSettings):
+ self.Read ()
+ return True
+ return False
+
+ def Write (self, onlyChanged = True):
+ if onlyChanged:
+ ccsWriteChangedSettings (self.ccsContext)
+ else:
+ ccsWriteSettings (self.ccsContext)
+
+ def Read (self):
+ ccsReadSettings (self.ccsContext)
+
+ def UpdateProfiles (self):
+ self.profiles = {}
+ self.currentProfile = Profile (self, ccsGetProfile (self.ccsContext))
+ cdef CCSStringList * profileList
+ cdef char * profileName
+ profileList = ccsGetExistingProfiles (self.ccsContext)
+ while profileList != NULL:
+ profileName = <char *> profileList.data
+ self.profiles[profileName] = Profile (self, profileName)
+ profileList = profileList.next
+
+ self.backends = {}
+ cdef CCSBackendInfoList * backendList
+ cdef CCSBackendInfo * backendInfo
+ backendList = ccsGetExistingBackends ()
+ while backendList != NULL:
+ backendInfo = <CCSBackendInfo *> backendList.data
+ info = (backendInfo.name, backendInfo.shortDesc,
+ backendInfo.longDesc, backendInfo.profileSupport,
+ backendInfo.integrationSupport)
+ self.backends[backendInfo.name] = Backend (self, info)
+ backendList = backendList.next
+ self.currentBackend = self.backends[ccsGetBackend (self.ccsContext)]
+
+ def ResetProfile (self):
+ self.currentProfile = Profile (self, "")
+ ccsSetProfile (self.ccsContext, "")
+ ccsReadSettings (self.ccsContext)
+
+ def Import (self, path, autoSave = True):
+ ret = bool (ccsImportFromFile (self.ccsContext, path, True))
+ if autoSave:
+ ccsWriteSettings (self.ccsContext)
+ return ret
+
+ def Export (self, path, skipDefaults = False):
+ return bool (ccsExportToFile (self.ccsContext, path, skipDefaults))
+
+ property Plugins:
+ def __get__ (self):
+ return self.plugins
+
+ property Categories:
+ def __get__ (self):
+ return self.categories
+
+ property CurrentProfile:
+ def __get__ (self):
+ return self.currentProfile
+ def __set__ (self, profile):
+ self.currentProfile = profile
+ ccsSetProfile (self.ccsContext, profile.Name)
+ ccsReadSettings (self.ccsContext)
+
+ property Profiles:
+ def __get__ (self):
+ return self.profiles
+
+ property CurrentBackend:
+ def __get__ (self):
+ return self.currentBackend
+ def __set__ (self, backend):
+ self.currentBackend = backend
+ ccsSetBackend (self.ccsContext, backend.Name)
+ ccsReadSettings (self.ccsContext)
+
+ property Backends:
+ def __get__ (self):
+ return self.backends
+
+ property ChangedSettings:
+ def __get__ (self):
+ return SettingListToList (self, self.ccsContext.changedSettings)
+ def __set__ (self, value):
+ cdef CCSSettingList * settingList
+ if self.ccsContext.changedSettings != NULL:
+ self.ccsContext.changedSettings = \
+ ccsSettingListFree (self.ccsContext.changedSettings, False)
+ if value != None and len (value) != 0:
+ settingList = ListToSettingList (value)
+ self.ccsContext.changedSettings = settingList
+
+ property AutoSort:
+ def __get__ (self):
+ return bool (ccsGetPluginListAutoSort (self.ccsContext))
+ def __set__ (self, value):
+ ccsSetPluginListAutoSort (self.ccsContext, bool (value))
+
+ property NScreens:
+ def __get__ (self):
+ return self.nScreens
+
+ property Integration:
+ def __get__ (self):
+ return bool (self.integration)
+ def __set__ (self, value):
+ self.integration = value
+ ccsSetIntegrationEnabled (self.ccsContext, value)
+ ccsReadSettings (self.ccsContext)
+
diff --git a/debian/compizconfig-python-trinity/compizconfig-python-trinity_0.8.4.orig.tar.xz b/debian/compizconfig-python-trinity/compizconfig-python-trinity_0.8.4.orig.tar.xz
new file mode 100644
index 00000000..2c178e16
--- /dev/null
+++ b/debian/compizconfig-python-trinity/compizconfig-python-trinity_0.8.4.orig.tar.xz
Binary files differ