Xorg a écrit :Moi je voulais simplement utiliser la version stable (0.9.9.0), mais pour l'instant je laisse tomber, ça m'a l'air de demander trop de connaissances que je n'ai pas.
Comme je disais (ou pas ou mal
), en plus du compiz-core-bzr, j'ai cette version à disposition.
Mais je crains que tu ne déchantes pareillement (mais ça devrait être mieux que la 0.9.8 qui lague chez moi).
Je te mets les fichiers quand même.
PKGBUILD (juste le patch en plus par rapport à ce qui existe, donc pas fait le tri là-dedans):
Code : Tout sélectionner
pkgname=compiz
pkgver=0.9.9.0
pkgrel=1
pkgdesc="Composite manager for Aiglx and Xgl, with plugins and CCSM"
arch=('i686' 'x86_64')
url="https://launchpad.net/compiz"
license=('GPL' 'LGPL' 'MIT')
depends=('boost' 'xorg-server' 'libxcomposite' 'startup-notification' 'librsvg' 'dbus' 'mesa' 'libxslt' 'fuse' 'glibmm' 'libxrender' 'libwnck' 'pygtk' 'desktop-file-utils' 'pyrex' 'protobuf' 'metacity' 'gconf')
makedepends=('cmake' 'intltool')
optdepends=(
'dconf: for GSettings backend support (need to rebuild this package)'
'gnome-control-center: GNOME keybindings support (need to rebuild this package)'
'kdebase-lib: KDE window decoration support (need to rebuild this package)'
'automoc: KDE window decoration support (need to rebuild this package)'
'xorg-xprop: grab various window properties for use in window matching rules'
)
provides=()
conflicts=('compiz-core' 'compiz-fusion-plugins-main' 'compiz-fusion-plugins-extra' 'compiz-decorator-gtk', 'compiz-decorator-kde' 'libcompizconfig' 'compizconfig-python' 'compizconfig-backend-gconf' 'compiz-bcop' 'ccsm')
replaces=('compiz-core' 'compiz-fusion-plugins-main' 'compiz-fusion-plugins-extra' 'compiz-decorator-gtk', 'compiz-decorator-kde' 'libcompizconfig' 'compizconfig-python' 'compizconfig-backend-gconf' 'compiz-bcop' 'ccsm')
source=("https://launchpad.net/compiz/0.9.9/0.9.9.0/+download/compiz-0.9.9.0.tar.bz2"
"boost.patch")
md5sums=('cb666f20f1f54009d724258631d890cc'
'a8e6e18afe5086851c18c2db6bfa1c3d')
install='compiz.install'
# GTK window decorator support
GTKWINDOWDECORATOR="On"
# Metaciy theme support for GTK window decorator
METACITY="On"
# KDE window decorator support
KDEWINDOWDECORATOR="Off"
# GConf backend support
GCONF="On"
# GSettings backend support
GSETTINGS="On"
# Do some basic option validation in order to handle build failures a bit more elegantly.
if [ "${GTKWINDOWDECORATOR}" == "on" ]; then
CHECKGCONF=`pacman -Q gconf 2>/dev/null`
if [ ! "${CHECKGCONF}" ]; then
msg "Currently, gconf must be installed in order to build gtk-window-decorator."
exit 1
fi
if [ "${GCONF}" != "on" ]; then
msg "Currently, GCONF must be 'on' in order to build gtk-window-decorator."
exit 1
fi
fi
if [ "${GSETTINGS}" == "on" ]; then
if [ "${GCONF}" != "on" ]; then
msg "Currently, GCONF must be 'on' in order to enable gsettings support."
exit 1
fi
fi
prepare() {
cd "$srcdir"/$pkgname-$pkgver
#update around boost 1.53
#https://bugs.launchpad.net/compiz/+bug/1131864
patch -p1 -i $srcdir/boost.patch
export PYTHON="/usr/bin/python2"
find -type f \( -name 'CMakeLists.txt' -or -name '*.cmake' \) -exec sed -e 's/COMMAND python/COMMAND python2/g' -i {} \;
find compizconfig/ccsm -type f -exec sed -e 's|^#!.*python|#!/usr/bin/env python2|g' -i {} \;
mkdir build; cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
-DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
-DQT_QMAKE_EXECUTABLE=qmake-qt4 \
-DCOMPIZ_DISABLE_SCHEMAS_INSTALL=On \
-DCOMPIZ_BUILD_WITH_RPATH=Off \
-DCOMPIZ_PACKAGING_ENABLED=On \
-DBUILD_GTK="${GTKWINDOWDECORATOR}" \
-DBUILD_METACITY="${METACITY}" \
-DBUILD_KDE4="${KDEWINDOWDECORATOR}" \
-DUSE_GCONF="${GCONF}" \
-DUSE_GSETTINGS="${GSETTINGS}" \
-DCOMPIZ_BUILD_TESTING=Off \
-DCOMPIZ_WERROR=Off \
-DCOMPIZ_DEFAULT_PLUGINS="composite,opengl,decor,resize,place,move"
}
build() {
cd "$srcdir"/$pkgname-$pkgver/build
make
}
package() {
cd "$srcdir"/$pkgname-$pkgver/build
make DESTDIR="${pkgdir}" install
# Stupid findcompiz_install needs COMPIZ_DESTDIR and install needs DESTDIR
# make findcompiz_install
CMAKE_DIR=$(cmake --system-information | grep '^CMAKE_ROOT' | awk -F\" '{print $2}')
install -dm755 "${pkgdir}${CMAKE_DIR}/Modules/"
install -m644 ../cmake/FindCompiz.cmake "${pkgdir}${CMAKE_DIR}/Modules/"
# Add documentation
install -dm755 "${pkgdir}/usr/share/doc/compiz/"
install ../{AUTHORS,NEWS,README} "${pkgdir}/usr/share/doc/compiz/"
# Amend XDG .desktop file to load the compizconfig plugin with compiz
sed -i 's/Exec\=compiz/Exec\=compiz ccp/' "${pkgdir}/usr/share/applications/compiz.desktop"
# Merge the gconf schema files
if [ -d "${pkgdir}/usr/share/gconf/schemas" ]; then
gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/compiz.schemas.in" "{$pkgdir}"/usr/share/gconf/schemas/*.schemas
sed -i '/<schemalist\/>/d' "${pkgdir}/usr/share/gconf/schemas/compiz.schemas.in"
rm -f "${pkgdir}"/usr/share/gconf/schemas/*.schemas
mv "${pkgdir}/usr/share/gconf/schemas/compiz.schemas.in" "${pkgdir}/usr/share/gconf/schemas/compiz.schemas"
fi
# Add the pesky gsettings schema files manually
if ls generated | grep -qm1 .gschema.xml; then
install -dm755 "${pkgdir}/usr/share/glib-2.0/schemas/"
install -m644 generated/*.gschema.xml "${pkgdir}/usr/share/glib-2.0/schemas/"
fi
}
boost.patch:
Code : Tout sélectionner
diff -aur compiz-0.9.9.0-orig/src/window.cpp compiz-0.9.9.0/src/window.cpp
--- compiz-0.9.9.0-orig/src/window.cpp 2013-06-27 20:06:59.827372066 +0200
+++ compiz-0.9.9.0/src/window.cpp 2013-06-27 20:09:34.297376837 +0200
@@ -2950,14 +2950,14 @@
static bool isPendingRestack (compiz::X11::PendingEvent::Ptr p)
{
- compiz::X11::PendingConfigureEvent::Ptr pc = boost::shared_static_cast <compiz::X11::PendingConfigureEvent> (p);
+ compiz::X11::PendingConfigureEvent::Ptr pc = boost::static_pointer_cast <compiz::X11::PendingConfigureEvent> (p);
return pc->matchVM (CWStackMode | CWSibling);
}
static bool isExistingRequest (compiz::X11::PendingEvent::Ptr p, XWindowChanges &xwc, unsigned int valueMask)
{
- compiz::X11::PendingConfigureEvent::Ptr pc = boost::shared_static_cast <compiz::X11::PendingConfigureEvent> (p);
+ compiz::X11::PendingConfigureEvent::Ptr pc = boost::static_pointer_cast <compiz::X11::PendingConfigureEvent> (p);
return pc->matchRequest (xwc, valueMask);
}
@@ -3183,7 +3183,7 @@
wc.height = serverFrameGeometry.height ();
compiz::X11::PendingEvent::Ptr pc =
- boost::shared_static_cast<compiz::X11::PendingEvent> (compiz::X11::PendingConfigureEvent::Ptr (
+ boost::static_pointer_cast<compiz::X11::PendingEvent> (compiz::X11::PendingConfigureEvent::Ptr (
new compiz::X11::PendingConfigureEvent (
screen->dpy (), priv->serverFrame, frameValueMask, &wc)));
@@ -3974,7 +3974,7 @@
if (serverFrame)
{
compiz::X11::PendingEvent::Ptr pc =
- boost::shared_static_cast<compiz::X11::PendingEvent> (compiz::X11::PendingConfigureEvent::Ptr (
+ boost::static_pointer_cast<compiz::X11::PendingEvent> (compiz::X11::PendingConfigureEvent::Ptr (
new compiz::X11::PendingConfigureEvent (
screen->dpy (), serverFrame, valueMask, &lxwc)));
--- compiz-0.9.9.0-orig/plugins/decor/src/decor.cpp 2013-06-27 20:43:51.760773707 +0200
+++ compiz-0.9.9.0/plugins/decor/src/decor.cpp 2013-06-27 20:46:37.394112156 +0200
@@ -394,7 +394,7 @@
X11PixmapDeletor::Ptr dl = boost::make_shared <X11PixmapDeletor> (screen->dpy ());
DecorPixmap::Ptr pm = boost::make_shared <DecorPixmap> (pixmap, dl);
- DecorTexture *texture = new DecorTexture (boost::shared_static_cast <DecorPixmapInterface> (pm));
+ DecorTexture *texture = new DecorTexture (boost::static_pointer_cast <DecorPixmapInterface> (pm));
if (!texture->status)
{
@@ -1292,7 +1292,7 @@
if (d->frameType == frameType &&
d->frameState == frameState &&
d->frameActions == frameActions)
- return boost::shared_static_cast <DecorationInterface> (d);
+ return boost::static_pointer_cast <DecorationInterface> (d);
}
return DecorationInterface::Ptr ();
@@ -2998,7 +2998,7 @@
0,
0,
None,
- boost::shared_array <decor_quad_t> (NULL),
+ boost::shared_array <decor_quad_t> (static_cast <decor_quad_t *> (NULL)),
0,
screen->root (),
NULL)),
compiz.install:
Code : Tout sélectionner
pkgname=compiz
post_install() {
echo " -> Updating icon cache..."
gtk-update-icon-cache -q -f -t /usr/share/ccsm/icons/hicolor
echo " -> Updating XDG menu database..."
update-desktop-database -q
if [ -f usr/share/gconf/schemas/$pkgname.schemas ]; then
echo " -> Installing GConf schemas... "
gconfpkg --install $pkgname
fi
ls usr/share/glib-2.0/schemas 2>/dev/null | grep -qm1 org.freedesktop.compiz
if [ $? -eq 0 ]; then
echo " -> Recompiling the GSettings database... "
glib-compile-schemas usr/share/glib-2.0/schemas
fi
}
pre_upgrade() {
if [ -f /usr/share/gconf/schemas/$pkgname.schemas ]; then
echo " -> Uninstalling GConf schemas... "
gconfpkg --uninstall $pkgname
fi
}
post_upgrade() {
post_install $1
}
pre_remove() {
rm /usr/share/ccsm/icons/hicolor/icon-theme.cache
pre_upgrade $1
}
post_remove() {
echo " -> Updating XDG menu database..."
update-desktop-database -q
if [ -d /usr/share/glib-2.0/schemas ]; then
echo " -> Recompiling the GSettings database... "
glib-compile-schemas usr/share/glib-2.0/schemas
fi
}
banditblue a écrit :enfin c'est juste une idée un compiz special arch
À moins d'un fork, c'est pas trop la politique.
Comme je disais le hic est que les versions stables proposées, 0.9.8 ou 0.9.9, ne le sont pas (ou plus). Du coup, version de développement dont le but n'est justement pas d'être utilisé quotidiennement (il faut mettre à jour à la moindre révision mais ça ne suffira pas). En ce qui me concerne, mis à part la question de compiz en remplacement d'un gestionnaire existant (sous xfce4 par exemple) ou du décorateur KDE qui ne fonctionne plus depuis un bail, ça me paraissait fonctionner à peu près (avec l'astuce du sm-disable parfois). Mais je ne suis pas un utilisateur régulier de Compiz, il est vrai.