Re: Github repository
On 17/11/2013 13:44, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 11:45:23 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 9:37, Carlos R. Mafra wrote: On Sat, 16 Nov 2013 at 23:39:18 +0100, Rodolfo García Peñas wrote: On Thu, 14 Nov 2013, Carlos R. Mafra escribió: I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. Thanks, I am testing it. I sent some patches. Please send the patches to the mailing list. But, If I sent the patches to the mail list, nothing changes. What do you mean by nothing changes? Nothing. My english is too bad, but you cannot understand the difference between you and we. Your project, our project. When you send the patch to the mailing list many more people see it and are able to comment on it just by replying a plain text email (that's why the patches must be in the body of the email). That's the purpose of a development mailing list! I thought the idea with github was to have a bug tracking system, not that one could make the visibility of patches lower. If github is only a BTS, we don't use the code review Code review is easy to do over email, that's how things have always worked with many open source projects. I think having the repo in github is a good idea only because John never set up a BTS in www.windowmaker.org. ironic mode onkill John!!ironic mode off nor have our repos for other ideas. Why not? Everybody here in the mailing list have their own repos already in their own machines, that's the nature of distributed development. They develop their own ideas and then send patches, and most of this happens in the privacy of their own machines. Because my local repo is mine and nobody can see it?! _If_ they want to have their ideas in the open, they can have their own repos in github or anywhere else. But that is independent of whether the main wmaker repo is in github or not. Yes, I understand the idea. My code therefore is there. https://github.com/thekix/wmaker I will upload my work there. If you think my code is ok for *your* project, include it. So this argument does not make sense to me. Furthermore, I noticed in your patches that I'd like to fix some typos in the commit logs and to include the WPrefs: prefix in the patch that touches only WPrefs. That will make your repository no longer be in sync with mine after I do that. Yes, my main problem is typos in the commit logs. Other people send patches without commit. It's my fault. For that reason I would think that developing in your own temporary branches (that are later discarded) is more efficient, but everybody has their own workflows and it's ultimately their decision. But again, that is independent of whether the main wmaker is in github or not. Patches belong to the mailing list for everybody to see. I will work in the Debian wmaker package. I will report new bugs here, in the mail list, because That's the purpose of a development mailing list! Thanks and bye. Rodolfo (kix). -- ||// //\\// Rodolfo kix Garcia ||\\// //\\ http://www.kix.es/ -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: Github repository
On Sun, 17 Nov 2013 at 14:34:06 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 13:44, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 11:45:23 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 9:37, Carlos R. Mafra wrote: On Sat, 16 Nov 2013 at 23:39:18 +0100, Rodolfo García Peñas wrote: On Thu, 14 Nov 2013, Carlos R. Mafra escribió: I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. Thanks, I am testing it. I sent some patches. Please send the patches to the mailing list. But, If I sent the patches to the mail list, nothing changes. What do you mean by nothing changes? Nothing. My english is too bad, but you cannot understand the difference between you and we. Your project, our project. Again, wmaker is not my project. I guess my agreed-upon status is the maintainer of wmaker, just like you are the maintainer of the wmaker package in the Debian repository. Is the wmaker debian package _your_ project? Or do you consider yourself doing a service to others by being the maintainer of that code in the best possible way as to please the majority of Debian users? The maintainer status is not for life though. If people feel that I'm not capable for maintaining wmaker (for whatever reason) then we can start to discuss who the next maintainer should be and I get out. https://github.com/thekix/wmaker I will upload my work there. If you think my code is ok for *your* project, include it. But couldn't you in addition to the github request also send the patch to the mailing list too? This is what everybody (including you) is doing for the last 5 years and it's working fine. With this move I think you are actively trying to create problems in the established process of patch submission. I understand that you do want you want with your time, but if you don't send the patches to the wmaker-dev mailing list unfortunately they won't be included in the official repository. I hope you change your mind, you've made a lot of contributions already. -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: Is WindowMaker buildable for Mac OS X? (tried once b4 but failed)
I think macports have it; haven't tried myself, though. On Nov 17, 2013 2:14 AM, Upi Weston m...@internode.on.net wrote: Hi WindowMaker fans, I have been using an old version of WindowMaker 0.80.1 for ages. I'd really like to get a newer version with all the improvements I see listed on this forum. Does anyone know how I could build WM for my OS X 10.8.5? Regards, Upi -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: Github repository
Hey guys, please calm down. :) Having code in github is a great idea. You can branch, make changes and submit your code via 'merge requests'. Anybody who is interested to see code changes should then add 'wmaker' to his watch list. Or try to get merge requests automatically mailed to the dev-mailing list and everybody would be happy. I personally think it is an overhead to submit twice. Once as a merge request to wmaker and second mailing it here too. Or just post the link to the merge request here and discuss it. What do you think ? Cheers Chris Am 17.11.2013 15:53, schrieb Carlos R. Mafra: On Sun, 17 Nov 2013 at 14:34:06 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 13:44, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 11:45:23 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 9:37, Carlos R. Mafra wrote: On Sat, 16 Nov 2013 at 23:39:18 +0100, Rodolfo García Peñas wrote: On Thu, 14 Nov 2013, Carlos R. Mafra escribió: I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. Thanks, I am testing it. I sent some patches. Please send the patches to the mailing list. But, If I sent the patches to the mail list, nothing changes. What do you mean by nothing changes? Nothing. My english is too bad, but you cannot understand the difference between you and we. Your project, our project. Again, wmaker is not my project. I guess my agreed-upon status is the maintainer of wmaker, just like you are the maintainer of the wmaker package in the Debian repository. Is the wmaker debian package _your_ project? Or do you consider yourself doing a service to others by being the maintainer of that code in the best possible way as to please the majority of Debian users? The maintainer status is not for life though. If people feel that I'm not capable for maintaining wmaker (for whatever reason) then we can start to discuss who the next maintainer should be and I get out. https://github.com/thekix/wmaker I will upload my work there. If you think my code is ok for *your* project, include it. But couldn't you in addition to the github request also send the patch to the mailing list too? This is what everybody (including you) is doing for the last 5 years and it's working fine. With this move I think you are actively trying to create problems in the established process of patch submission. I understand that you do want you want with your time, but if you don't send the patches to the wmaker-dev mailing list unfortunately they won't be included in the official repository. I hope you change your mind, you've made a lot of contributions already. -- Christian - Please do not 'CC' me on list mails. Just reply to the list :) Der ultimative shop für Sportbekleidung und Zubehör http://www.sc24.de -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH 02/12] configure: made the functions to try lib link+compile more generic
From: Christophe CURIS christophe.cu...@free.fr The function can have a wider use, so moved then to a more neutral place and gave them more generic names. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- m4/windowmaker.m4 | 43 m4/wm_imgfmt_check.m4 | 78 --- 2 files changed, 61 insertions(+), 60 deletions(-) diff --git a/m4/windowmaker.m4 b/m4/windowmaker.m4 index 3171cfc..1eca694 100644 --- a/m4/windowmaker.m4 +++ b/m4/windowmaker.m4 @@ -59,3 +59,46 @@ else fi CPPFLAGS=$CPPFLAGS_old ]) + + +dnl _WM_LIB_CHECK_FUNCTS +dnl --- +dnl (internal shell functions) +dnl +dnl Create 2 shell functions: +dnl wm_fn_imgfmt_try_link: try to link against library +dnl wm_fn_imgfmt_try_compile: try to compile against header +dnl +AC_DEFUN_ONCE([_WM_LIB_CHECK_FUNCTS], +[@%:@ wm_fn_lib_try_link FUNCTION LFLAGS +@%:@ -- +@%:@ Try linking against library in $LFLAGS using function named $FUNCTION +@%:@ Assumes that LIBS have been saved in 'wm_save_LIBS' by caller +wm_fn_lib_try_link () +{ + LIBS=$wm_save_LIBS $[]2 + AC_TRY_LINK_FUNC([$[]1], +[wm_retval=0], +[wm_retval=1]) + AS_SET_STATUS([$wm_retval]) +} + +@%:@ wm_fn_lib_try_compile HEADER GVARDEF FUNC_CALL CFLAGS +@%:@ - +@%:@ Try to compile using header $HEADER and trying to call a function +@%:@ using the $FUNC_CALL expression and using extra $CFLAGS in the +@%:@ compiler's command line; GVARDEF can be used to include one line +@%:@ in the global context of the source. +@%:@ Assumes that CFLAGS have been saved in 'wm_save_CFLAGS' by caller +wm_fn_lib_try_compile () +{ + CFLAGS=$wm_save_CFLAGS $[]4 + AC_COMPILE_IFELSE( +[AC_LANG_PROGRAM([@%:@include $[]1 + +$[]2], [ $[]3;])], +[wm_retval=0], +[wm_retval=1]) + AS_SET_STATUS([$wm_retval]) +} +]) diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4 index cd276b0..2104203 100644 --- a/m4/wm_imgfmt_check.m4 +++ b/m4/wm_imgfmt_check.m4 @@ -29,7 +29,7 @@ # the variable 'supported_gfx' # When not found, append info to variable 'unsupported' AC_DEFUN_ONCE([WM_IMGFMT_CHECK_GIF], -[AC_REQUIRE([_WM_IMGFMT_CHECK_FUNCTS]) +[AC_REQUIRE([_WM_LIB_CHECK_FUNCTS]) AS_IF([test x$enable_gif = xno], [unsupported=$unsupported GIF], [AC_CACHE_CHECK([for GIF support library], [wm_cv_imgfmt_gif], @@ -38,7 +38,7 @@ AS_IF([test x$enable_gif = xno], dnl dnl We check first if one of the known libraries is available for wm_arg in -lgif -lungif ; do - AS_IF([wm_fn_imgfmt_try_link DGifOpenFileName $XLFLAGS $XLIBS $wm_arg], + AS_IF([wm_fn_lib_try_link DGifOpenFileName $XLFLAGS $XLIBS $wm_arg], [wm_cv_imgfmt_gif=$wm_arg ; break]) done LIBS=$wm_save_LIBS @@ -48,10 +48,10 @@ AS_IF([test x$enable_gif = xno], [dnl dnl A library was found, now check for the appropriate header wm_save_CFLAGS=$CFLAGS -AS_IF([wm_fn_imgfmt_try_compile gif_lib.h return 0 ], +AS_IF([wm_fn_lib_try_compile gif_lib.h return 0 ], [], [AC_MSG_ERROR([found $wm_cv_imgfmt_gif but could not find appropriate header - are you missing libgif-dev package?])]) -AS_IF([wm_fn_imgfmt_try_compile gif_lib.h DGifOpenFileName(filename) ], +AS_IF([wm_fn_lib_try_compile gif_lib.h 'const char *filename = dummy;' DGifOpenFileName(filename) ], [wm_cv_imgfmt_gif=$wm_cv_imgfmt_gif version:4], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( @@ -92,7 +92,7 @@ const char *filename = dummy;], # the variable 'supported_gfx' # When not found, append info to variable 'unsupported' AC_DEFUN_ONCE([WM_IMGFMT_CHECK_JPEG], -[AC_REQUIRE([_WM_IMGFMT_CHECK_FUNCTS]) +[AC_REQUIRE([_WM_LIB_CHECK_FUNCTS]) AS_IF([test x$enable_jpeg = xno], [unsupported=$unsupported JPEG], [AC_CACHE_CHECK([for JPEG support library], [wm_cv_imgfmt_jpeg], @@ -100,7 +100,7 @@ AS_IF([test x$enable_jpeg = xno], wm_save_LIBS=$LIBS dnl dnl We check first if one of the known libraries is available - AS_IF([wm_fn_imgfmt_try_link jpeg_destroy_compress $XLFLAGS $XLIBS -ljpeg], + AS_IF([wm_fn_lib_try_link jpeg_destroy_compress $XLFLAGS $XLIBS -ljpeg], [wm_cv_imgfmt_jpeg=-ljpeg]) LIBS=$wm_save_LIBS AS_IF([test x$enable_jpeg$wm_cv_imgfmt_jpeg = xyesno], @@ -149,7 +149,7 @@ AM_CONDITIONAL([USE_JPEG], [test x$enable_jpeg != xno])dnl # the variable 'supported_gfx' # When not found, append info to variable 'unsupported' AC_DEFUN_ONCE([WM_IMGFMT_CHECK_PNG], -[AC_REQUIRE([_WM_IMGFMT_CHECK_FUNCTS]) +[AC_REQUIRE([_WM_LIB_CHECK_FUNCTS]) AS_IF([test x$enable_png = xno], [unsupported=$unsupported PNG], [AC_CACHE_CHECK([for PNG support library], [wm_cv_imgfmt_png], @@ -158,7 +158,7
[PATCH 03/12] configure: Created new macro to append only once a flag to a variable
From: Christophe CURIS christophe.cu...@free.fr Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- m4/windowmaker.m4 | 19 +++ m4/wm_imgfmt_check.m4 | 12 ++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/m4/windowmaker.m4 b/m4/windowmaker.m4 index 1eca694..08e74b5 100644 --- a/m4/windowmaker.m4 +++ b/m4/windowmaker.m4 @@ -102,3 +102,22 @@ $[]2], [ $[]3;])], AS_SET_STATUS([$wm_retval]) } ]) + + +# WM_APPEND_ONCE +# -- +# +# Append flags to a variable, but only if not already present +# +# Usage: MW_LIB_APPEND_ONCE([libflags], [variable]) +# $1 libflags: the list of flag to append +# $2 variable: the variable, if unset use LIBS +AC_DEFUN([WM_APPEND_ONCE], +[AS_VAR_PUSHDEF([VAR], [m4_ifnblank([$2], [$2], [LIBS])])dnl +for wm_arg in $1 ; do + AS_IF([echo $VAR | grep $wm_arg 21 /dev/null], +[@%:@ Flag already present in VAR], +[VAR=$VAR $wm_arg]) +done +AS_VAR_POPDEF([VAR])dnl +]) diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4 index 2104203..df7b59e 100644 --- a/m4/wm_imgfmt_check.m4 +++ b/m4/wm_imgfmt_check.m4 @@ -70,12 +70,12 @@ const char *filename = dummy;], [unsupported=$unsupported GIF enable_gif=no], [supported_gfx=$supported_gfx GIF - GFXLIBS=$GFXLIBS `echo $wm_cv_imgfmt_gif | sed -e 's, *version:.*,,' ` + WM_APPEND_ONCE([`echo $wm_cv_imgfmt_gif | sed -e 's, *version:.*,,' `], [GFXLIBS]) AC_DEFINE_UNQUOTED([USE_GIF], [`echo $wm_cv_imgfmt_gif | sed -e 's,.*version:,,' `], [defined when valid GIF library with header was found])]) ]) -AM_CONDITIONAL([USE_GIF], [test x$enable_gif != xno])dnl +AM_CONDITIONAL([USE_GIF], [test x$enable_gif != xno])dnl ]) dnl AC_DEFUN @@ -128,7 +128,7 @@ AS_IF([test x$enable_jpeg = xno], [unsupported=$unsupported JPEG enable_jpeg=no], [supported_gfx=$supported_gfx JPEG - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_jpeg + WM_APPEND_ONCE([$wm_cv_imgfmt_jpeg], [GFXLIBS]) AC_DEFINE([USE_JPEG], [1], [defined when valid JPEG library with header was found])]) ]) @@ -180,7 +180,7 @@ AS_IF([test x$enable_png = xno], [unsupported=$unsupported PNG enable_png=no], [supported_gfx=$supported_gfx PNG - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_png + WM_APPEND_ONCE([$wm_cv_imgfmt_png], [GFXLIBS]) AC_DEFINE([USE_PNG], [1], [defined when valid PNG library with header was found])]) ]) @@ -240,7 +240,7 @@ AS_IF([test x$enable_tiff = xno], [unsupported=$unsupported TIFF enable_tiff=no], [supported_gfx=$supported_gfx TIFF - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_tiff + WM_APPEND_ONCE([$wm_cv_imgfmt_tiff], [GFXLIBS]) AC_DEFINE([USE_TIFF], [1], [defined when valid TIFF library with header was found])]) ]) @@ -289,7 +289,7 @@ AS_IF([test x$enable_xpm = xno], [supported_gfx=$supported_gfx builtin-XPM enable_xpm=no], [supported_gfx=$supported_gfx XPM - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_xpm + WM_APPEND_ONCE([$wm_cv_imgfmt_xpm], [GFXLIBS]) AC_DEFINE([USE_XPM], [1], [defined when valid XPM library with header was found])]) ]) -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH 05/12] configure: Moved configure's detection of XShape to a dedicated macro
From: Christophe CURIS christophe.cu...@free.fr The original check was not compliant with autoconf's syntax, did not have a very good behaviour for user and was not easy to make evolve. The new macro: - uses as much as possible autoconf macros for portability and code consistency; - checks also for header usability with the compiler; - provides a consistent behaviour on yes/no/auto (if user explicitly enables support, do not silently disable if not found; if library is found but not the header, complain to let user install it or explicitly disable support) Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac| 20 +--- m4/wm_xext_check.m4 | 39 +++ 2 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 m4/wm_xext_check.m4 diff --git a/configure.ac b/configure.ac index 6130b67..efa0535 100644 --- a/configure.ac +++ b/configure.ac @@ -158,6 +158,7 @@ AS_IF([test x$debug = xyes], dnl Tracking on what is detected for final status dnl = unsupported= +supported_xext= supported_gfx= @@ -490,17 +491,13 @@ AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard langua dnl XShape support dnl == -shape=yes -AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]), - shape=$enableval, shape=yes) -added_xext=no - -if test $shape = yes; then - AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS=-lXext $XLIBS - added_xext=yes - AC_DEFINE(USE_XSHAPE, 1, [define if you want support for shaped windows (set by configure)])], - shape=no, $XLFLAGS $XLIBS) -fi +AC_ARG_ENABLE([shape], +[AS_HELP_STRING([--disable-shape], [disable shaped window extension support])], +[AS_CASE([$enableval], +[yes|no], [], +[AC_MSG_ERROR([bad value $enableval for --enable-shape]) ]) ], +[enable_shape=auto]) +WM_XEXT_CHECK_XSHAPE dnl XRandR support dnl == @@ -854,6 +851,7 @@ echo Installation path prefix: $prefix echo Installation path for binaries : $_bindir echo Installation path for libraries : $libdir echo Installation path for WPrefs.app: $wprefs_base_dir | sed -e 's|\${prefix}|'$prefix| +echo Supported X extensions: :$supported_xext echo Supported graphic format libraries :$supported_gfx echo Unsupported features:$unsupported echo Antialiased text support in WINGs : $xft diff --git a/m4/wm_xext_check.m4 b/m4/wm_xext_check.m4 new file mode 100644 index 000..e535574 --- /dev/null +++ b/m4/wm_xext_check.m4 @@ -0,0 +1,39 @@ +# wm_xext_check.m4 - Macros to check for X extensions support libraries +# +# Copyright (c) 2013 Christophe CURIS +# +# 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., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +# WM_XEXT_CHECK_XSHAPE +# +# +# Check for the X Shaped Window extension +# The check depends on variable 'enable_xshape' being either: +# yes - detect, fail if not found +# no - do not detect, disable support +# auto - detect, disable if not found +# +# When found, append appropriate stuff in XLIBS, and append info to +# the variable 'supported_xext' +# When not found, append info to variable 'unsupported' +AC_DEFUN_ONCE([WM_XEXT_CHECK_XSHAPE], +[WM_LIB_CHECK([XShape], [-lXext], [XShapeSelectInput], [$XLIBS], +[wm_save_CFLAGS=$CFLAGS + AS_IF([wm_fn_lib_try_compile X11/extensions/shape.h Window win; XShapeSelectInput(NULL, win, 0) ], +[], +[AC_MSG_ERROR([found $CACHEVAR but cannot compile using XShape header])]) + CFLAGS=$wm_save_CFLAGS], +[supported_xext], [XLIBS], [enable_shape], [-])dnl +]) dnl AC_DEFUN -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH 04/12] configure: Created new macro to perform the repetitive part of Library check
From: Christophe CURIS christophe.cu...@free.fr There are a number of steps in the library check procedure that are a bit repetitive, and have been placed into the macro WM_LIB_CHECK to make the code simpler to write. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- m4/windowmaker.m4 | 61 + m4/wm_imgfmt_check.m4 | 144 -- 2 files changed, 96 insertions(+), 109 deletions(-) diff --git a/m4/windowmaker.m4 b/m4/windowmaker.m4 index 08e74b5..d1902d1 100644 --- a/m4/windowmaker.m4 +++ b/m4/windowmaker.m4 @@ -121,3 +121,64 @@ for wm_arg in $1 ; do done AS_VAR_POPDEF([VAR])dnl ]) + + +# WM_LIB_CHECK +# +# +# Check if a library exists (can be linked to) and check if its header can +# compile (using code in parameter to the macro), then update the appropriate +# stuff accordingly +# +# Usage: WM_LIB_CHECK([name], [lflaglist], [lfunc], [extralibs], [headercheck], [supvar], [libvar], [enable_var], [cond_name]) +# $1 name: name of the feature used in messages and in supvar +# $2 lflaglist: the list of linker '-l' options to try, stopping on first success +# $3 lfunc: the name of the function to look for when linking +# $4 extralibs: optional, additional libraries included in the link check +# $5 headercheck: the code that checks for the header +# $6 supvar: if the library was found, append $name to this variable, +# otherwise append $name to 'unsupported' +# $7 libvar: if the library was found, append the working $lflag to this variable +# $8 enable_var: variable to check for user's feature request, if empty we use lowercase(enable_$1) +# $9 cond_name: name of the AC_DEFINE and the AM_CONDITIONAL +# if empty, use uppercase(USE_$1), if equals - same but do not create AM_CONDITIONAL +AC_DEFUN([WM_LIB_CHECK], +[AC_REQUIRE([_WM_LIB_CHECK_FUNCTS]) +m4_pushdef([ENABLEVAR], [m4_ifnblank([$8], [$8], enable_[]m4_tolower($1))])dnl +m4_pushdef([CACHEVAR], [wm_cv_libchk_[]m4_tolower($1)])dnl +m4_pushdef([USEVAR], [m4_bmatch([$9], [^-?$], [USE_[]m4_toupper($1)], [$9])])dnl +AS_IF([test x$ENABLEVAR = xno], +[unsupported=$unsupported $1], +[AC_CACHE_CHECK([for $1 support library], CACHEVAR, +[CACHEVAR=no + wm_save_LIBS=$LIBS + dnl + dnl We check that the library is available + m4_bmatch([$2], [ ], dnl Any space in 'lflaglist' means we have a list of flags +[for wm_arg in $2 ; do + AS_IF([wm_fn_lib_try_link $3 $4 $wm_arg], + [CACHEVAR=$wm_arg ; break]) + done], +[AS_IF([wm_fn_lib_try_link $3 $4 $2], +[CACHEVAR=$2]) ]) + LIBS=$wm_save_LIBS + AS_IF([test x$ENABLEVAR$CACHEVAR = xyesno], +[AC_MSG_ERROR([explicit $1 support requested but no library found])]) + dnl + dnl A library was found, check if header is available and compile + AS_IF([test x$CACHEVAR != xno], [$5]) +]) +AS_IF([test x$CACHEVAR = xno], +[unsupported=$unsupported $1 + ENABLEVAR=no], +[$6=$$6 $1 + WM_APPEND_ONCE([$CACHEVAR], [$7]) + AC_DEFINE(USEVAR, [1], +[defined when valid $1 library with header was found])]) +]) +m4_bmatch([$9], [^-$], [], +[AM_CONDITIONAL(USEVAR, [test x$ENABLEVAR != xno])])dnl +m4_popdef([ENABLEVAR])dnl +m4_popdef([CACHEVAR])dnl +m4_popdef([USEVAR])dnl +]) diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4 index df7b59e..02245d2 100644 --- a/m4/wm_imgfmt_check.m4 +++ b/m4/wm_imgfmt_check.m4 @@ -92,23 +92,8 @@ AM_CONDITIONAL([USE_GIF], [test x$enable_gif != xno])dnl # the variable 'supported_gfx' # When not found, append info to variable 'unsupported' AC_DEFUN_ONCE([WM_IMGFMT_CHECK_JPEG], -[AC_REQUIRE([_WM_LIB_CHECK_FUNCTS]) -AS_IF([test x$enable_jpeg = xno], -[unsupported=$unsupported JPEG], -[AC_CACHE_CHECK([for JPEG support library], [wm_cv_imgfmt_jpeg], -[wm_cv_imgfmt_jpeg=no - wm_save_LIBS=$LIBS - dnl - dnl We check first if one of the known libraries is available - AS_IF([wm_fn_lib_try_link jpeg_destroy_compress $XLFLAGS $XLIBS -ljpeg], - [wm_cv_imgfmt_jpeg=-ljpeg]) - LIBS=$wm_save_LIBS - AS_IF([test x$enable_jpeg$wm_cv_imgfmt_jpeg = xyesno], - [AC_MSG_ERROR([explicit JPEG support requested but no library found])]) - AS_IF([test x$wm_cv_imgfmt_jpeg != xno], - [dnl -dnl A library was found, now check for the appropriate header -AC_COMPILE_IFELSE( +[WM_LIB_CHECK([JPEG], [-ljpeg], [jpeg_destroy_compress], [$XLFLAGS $XLIBS], +[AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [@%:@include stdlib.h @%:@include stdio.h @@ -118,21 +103,12 @@ AS_IF([test x$enable_jpeg = xno], jpeg_destroy_decompress(cinfo);])], [], [AS_ECHO([failed]) -
[PATCH 10/12] Code refactoring: replaced macro 'XSHM' by 'USE_XSHM' for consistency
From: Christophe CURIS christophe.cu...@free.fr The usual way to define a macro in is to name macro with 'USE_xxx' when they are used to enable a feature 'xxx'. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac| 2 +- wrlib/context.c | 2 +- wrlib/convert.c | 10 +- wrlib/wraster.h | 4 ++-- wrlib/xutil.c | 30 +++--- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/configure.ac b/configure.ac index e463ece..7259774 100644 --- a/configure.ac +++ b/configure.ac @@ -604,7 +604,7 @@ if test $shm = yes; then if test $added_xext = no; then XLIBS=-lXext $XLIBS fi -AC_DEFINE(XSHM, 1, [define if X's shared memory extension is available (set by configure)]) +AC_DEFINE(USE_XSHM, 1, [define if X's shared memory extension is available (set by configure)]) fi fi diff --git a/wrlib/context.c b/wrlib/context.c index 3fdaafe..da9dbe6 100644 --- a/wrlib/context.c +++ b/wrlib/context.c @@ -664,7 +664,7 @@ RContext *RCreateContext(Display * dpy, int screen_number, const RContextAttribu } /* check avaiability of MIT-SHM */ -#ifdef XSHM +#ifdef USE_XSHM if (!(context-attribs-flags RC_UseSharedMemory)) { context-attribs-flags |= RC_UseSharedMemory; context-attribs-use_shared_memory = True; diff --git a/wrlib/convert.c b/wrlib/convert.c index f690e1f..f3c9a49 100644 --- a/wrlib/convert.c +++ b/wrlib/convert.c @@ -35,7 +35,7 @@ #include wraster.h -#ifdef XSHM +#ifdef USE_XSHM extern Pixmap R_CreateXImageMappedPixmap(RContext * context, RXImage * ximage); #endif @@ -819,7 +819,7 @@ static RXImage *image2Bitmap(RContext * ctx, RImage * image, int threshold) int RConvertImage(RContext * context, RImage * image, Pixmap * pixmap) { RXImage *ximg = NULL; -#ifdef XSHM +#ifdef USE_XSHM Pixmap tmp; #endif @@ -852,7 +852,7 @@ int RConvertImage(RContext * context, RImage * image, Pixmap * pixmap) *pixmap = XCreatePixmap(context-dpy, context-drawable, image-width, image-height, context-depth); -#ifdef XSHM +#ifdef USE_XSHM if (context-flags.use_shared_pixmap ximg-is_shared) tmp = R_CreateXImageMappedPixmap(context, ximg); else @@ -873,9 +873,9 @@ int RConvertImage(RContext * context, RImage * image, Pixmap * pixmap) } else { RPutXImage(context, *pixmap, context-copy_gc, ximg, 0, 0, 0, 0, image-width, image-height); } -#else /* !XSHM */ +#else /* !USE_XSHM */ RPutXImage(context, *pixmap, context-copy_gc, ximg, 0, 0, 0, 0, image-width, image-height); -#endif /* !XSHM */ +#endif /* !USE_XSHM */ RDestroyXImage(context, ximg); diff --git a/wrlib/wraster.h b/wrlib/wraster.h index ff2b2c3..25e39e7 100644 --- a/wrlib/wraster.h +++ b/wrlib/wraster.h @@ -47,7 +47,7 @@ #include X11/Xlib.h #include X11/Xutil.h -#ifdef XSHM +#ifdef USE_XSHM #include X11/extensions/XShm.h #endif @@ -204,7 +204,7 @@ typedef struct RXImage { XImage *image; /* Private data. Do not access */ -#ifdef XSHM +#ifdef USE_XSHM XShmSegmentInfo info; char is_shared; #endif diff --git a/wrlib/xutil.c b/wrlib/xutil.c index 6d0b242..82122d4 100644 --- a/wrlib/xutil.c +++ b/wrlib/xutil.c @@ -30,14 +30,14 @@ #include assert.h -#ifdef XSHM +#ifdef USE_XSHM #include sys/ipc.h #include sys/shm.h -#endif /* XSHM */ +#endif /* USE_XSHM */ #include wraster.h -#ifdef XSHM +#ifdef USE_XSHM static int shmError; @@ -64,7 +64,7 @@ RXImage *RCreateXImage(RContext * context, int depth, unsigned width, unsigned h RErrorCode = RERR_NOMEMORY; return NULL; } -#ifndef XSHM +#ifndef USE_XSHM rximg-image = XCreateImage(context-dpy, visual, depth, ZPixmap, 0, NULL, width, height, 8, 0); if (!rximg-image) { free(rximg); @@ -78,7 +78,7 @@ RXImage *RCreateXImage(RContext * context, int depth, unsigned width, unsigned h RErrorCode = RERR_NOMEMORY; return NULL; } -#else /* XSHM */ +#else /* USE_XSHM */ if (!context-attribs-use_shared_memory) { retry_without_shm: @@ -145,16 +145,16 @@ RXImage *RCreateXImage(RContext * context, int depth, unsigned width, unsigned h goto retry_without_shm; } } -#endif /* XSHM */ +#endif /* USE_XSHM */ return rximg; } void RDestroyXImage(RContext * context, RXImage * rximage) { -#ifndef XSHM +#ifndef USE_XSHM XDestroyImage(rximage-image); -#else /* XSHM */ +#else /* USE_XSHM */
[PATCH 09/12] configure: Moved configure's detection of XRandR to a dedicated macro
From: Christophe CURIS christophe.cu...@free.fr The original check was not compliant with autoconf's syntax, did not have a very good behaviour for user and was not easy to make evolve. The new macro: - uses as much as possible autoconf macros for portability and code consistency; - checks also for header usability with the compiler; - provides a consistent behaviour on yes/no/auto (if user explicitly enables support, do not silently disable if not found; if library is found but not the header, complain to let user install it or explicitly disable support) Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac| 21 +++-- m4/wm_xext_check.m4 | 24 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index 4f9cf6a..e463ece 100644 --- a/configure.ac +++ b/configure.ac @@ -511,19 +511,13 @@ WM_XEXT_CHECK_XINERAMA dnl XRandR support dnl == -xrandr=no -AC_ARG_ENABLE(xrandr, AS_HELP_STRING([--enable-xrandr], [enable XRandR window extension support (NOT recommended, buggy)]), - xrandr=$enableval, xrandr=no) -added_xext=no - -LIBXRANDR= -if test $xrandr = yes; then - AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr - added_xext=yes - AC_DEFINE(USE_XRANDR, 1, [define if you want support for XRandR (set by configure)])], - xrandr=no, $XLFLAGS $XLIBS) -fi -AC_SUBST(LIBXRANDR) +AC_ARG_ENABLE([xrandr], +[AS_HELP_STRING([--enable-xrandr], [enable XRandR extension support (NOT recommended, buggy)])], +[AS_CASE([$enableval], +[yes|no], [], +[AC_MSG_ERROR([bad value $enableval for --enable-xrandr]) ]) ], +[enable_xrandr=no]) +WM_XEXT_CHECK_XRANDR dnl dnl libWINGS uses math functions, check whether usage requires linking @@ -830,7 +824,6 @@ echo Supported X extensions: :$supported_xext echo Supported graphic format libraries :$supported_gfx echo Unsupported features:$unsupported echo Antialiased text support in WINGs : $xft -echo XRandR extension support: $xrandr echo Translated message files to install : $mof dnl echo Supported languages beside English : $languages if test x$MOFILES != x; then diff --git a/m4/wm_xext_check.m4 b/m4/wm_xext_check.m4 index 8ba1f79..a8c45f4 100644 --- a/m4/wm_xext_check.m4 +++ b/m4/wm_xext_check.m4 @@ -98,3 +98,27 @@ sed -e 's,^[[^%]]*% *,,' | sed -e 's, *%.*$,,' ` dnl ]) AC_SUBST(LIBXINERAMA)dnl ]) + + +# WM_XEXT_CHECK_XRANDR +# +# +# Check for the X RandR (Resize-and-Rotate) extension +# The check depends on variable 'enable_xrandr' being either: +# yes - detect, fail if not found +# no - do not detect, disable support +# auto - detect, disable if not found +# +# When found, append appropriate stuff in LIBXRANDR, and append info to +# the variable 'supported_xext' +# When not found, append info to variable 'unsupported' +AC_DEFUN_ONCE([WM_XEXT_CHECK_XRANDR], +[WM_LIB_CHECK([XRandR], [-lXrandr], [XRRQueryExtension], [$XLIBS], +[wm_save_CFLAGS=$CFLAGS + AS_IF([wm_fn_lib_try_compile X11/extensions/Xrandr.h Display *dpy; XRRQueryExtension(dpy, NULL, NULL) ], +[], +[AC_MSG_ERROR([found $CACHEVAR but cannot compile using XRandR header])]) + CFLAGS=$wm_save_CFLAGS], +[supported_xext], [LIBXRANDR], [], [-])dnl +AC_SUBST([LIBXRANDR])dnl +]) dnl AC_DEFUN -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH 07/12] configure: Moved configure's detection of Xinerama to a dedicated macro
From: Christophe CURIS christophe.cu...@free.fr The original check was not compliant with autoconf's syntax, did not have a very good behaviour for user and was not easy to make evolve. The new macro: - uses as much as possible autoconf macros for portability and code consistency; - checks also for header usability with the compiler; - provides a consistent behaviour on yes/no/auto (if user explicitly enables support, do not silently disable if not found; if library is found but not the header, complain to let user install it or explicitly disable support) The feature is also no more disabled by default, as it is something user would expect from a modern window manager. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac| 46 +--- m4/wm_xext_check.m4 | 61 + 2 files changed, 71 insertions(+), 36 deletions(-) diff --git a/configure.ac b/configure.ac index 99df9c6..e5fad66 100644 --- a/configure.ac +++ b/configure.ac @@ -499,6 +499,16 @@ AC_ARG_ENABLE([shape], [enable_shape=auto]) WM_XEXT_CHECK_XSHAPE +dnl XINERAMA support +dnl +AC_ARG_ENABLE([xinerama], +[AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support])], +[AS_CASE([$enableval], +[yes|no], [], +[AC_MSG_ERROR([bad value $enableval for --enable-xinerama]) ]) ], +[enable_xinerama=auto]) +WM_XEXT_CHECK_XINERAMA + dnl XRandR support dnl == xrandr=no @@ -583,41 +593,6 @@ AC_SUBST(XFTFLAGS) AC_SUBST(XFTLIBS) -dnl XINERAMA support -dnl -xinerama=no -AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama extension support]), - xinerama=$enableval, xinerama=no) - -LIBXINERAMA= -if test $xinerama = yes; then - AC_CHECK_LIB(Xinerama, XineramaQueryScreens, -[LIBXINERAMA=-lXinerama -xfxine=yes], - xfxine=no, $XLFLAGS $XLIBS) - - AC_CHECK_LIB(Xext, XineramaGetInfo, -[sunxine=yes -], sunxine=no, $XLFLAGS $XLIBS) - - if test $xfxine = yes; then - xine=1 - fi - - if test $sunxine = yes; then - xine=1 - AC_DEFINE(SOLARIS_XINERAMA, 1, - [define if you want support for the XINERAMA extension and are in Solaris (set by configure)]) - fi - - if test $xine = 1; then - AC_DEFINE(USE_XINERAMA, 1, - [define if you want support for the XINERAMA extension (set by configure)]) - fi -fi -AC_SUBST(LIBXINERAMA) - - dnl MIT-SHM support dnl === shm=yes @@ -855,7 +830,6 @@ echo Supported X extensions: :$supported_xext echo Supported graphic format libraries :$supported_gfx echo Unsupported features:$unsupported echo Antialiased text support in WINGs : $xft -echo Xinerama extension support : $xinerama echo XRandR extension support: $xrandr echo Translated message files to install : $mof dnl echo Supported languages beside English : $languages diff --git a/m4/wm_xext_check.m4 b/m4/wm_xext_check.m4 index e535574..8ba1f79 100644 --- a/m4/wm_xext_check.m4 +++ b/m4/wm_xext_check.m4 @@ -37,3 +37,64 @@ AC_DEFUN_ONCE([WM_XEXT_CHECK_XSHAPE], CFLAGS=$wm_save_CFLAGS], [supported_xext], [XLIBS], [enable_shape], [-])dnl ]) dnl AC_DEFUN + + +# WM_XEXT_CHECK_XINERAMA +# -- +# +# Check for the Xinerama extension for multiscreen-as-one support +# The check depends on variable 'enable_xinerama' being either: +# yes - detect, fail if not found +# no - do not detect, disable support +# auto - detect, disable if not found +# +# When found, append appropriate stuff in LIBXINERAMA, and append info to +# the variable 'supported_xext' +# When not found, append info to variable 'unsupported' +AC_DEFUN_ONCE([WM_XEXT_CHECK_XINERAMA], +[LIBXINERAMA= +AS_IF([test x$enable_xinerama = xno], +[unsupported=$unsupported Xinerama], +[AC_CACHE_CHECK([for Xinerama support library], [wm_cv_xext_xinerama], +[wm_cv_xext_xinerama=no + dnl + dnl We check that the library is available + wm_save_LIBS=$LIBS + for wm_arg in dnl +dnl Lib flag % Function name% info + -lXinerama % XineramaQueryScreens dnl + -lXext % XineramaGetInfo % solaris ; do + AS_IF([wm_fn_lib_try_link `echo $wm_arg | dnl +sed -e 's,^[[^%]]*% *,,' | sed -e 's, *%.*$,,' ` dnl +$XLFLAGS $XLIBS `echo $wm_arg | sed -e 's, *%.*$,,' `], + [wm_cv_xext_xinerama=`echo $wm_arg | sed -e 's, *%[[^%]]*, ,' ` + break]) + done + LIBS=$wm_save_LIBS + AS_IF([test x$enable_xinerama$wm_cv_xext_xinerama = xyesno], +[AC_MSG_ERROR([explicit Xinerama support requested but no library found])]) + dnl + dnl A library was
[PATCH 08/12] Code refactoring: replaced macro 'HAVE_XRANDR' by 'USE_XRANDR' for consistency
From: Christophe CURIS christophe.cu...@free.fr The usual way to define a macro in is to name macro with 'USE_xxx' when they are used to enable a feature 'xxx'. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac | 2 +- src/WindowMaker.h | 2 +- src/dialog.c | 2 +- src/event.c | 6 +++--- src/screen.c | 4 ++-- src/startup.c | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index e5fad66..4f9cf6a 100644 --- a/configure.ac +++ b/configure.ac @@ -520,7 +520,7 @@ LIBXRANDR= if test $xrandr = yes; then AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr added_xext=yes - AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for XRandR (set by configure)])], + AC_DEFINE(USE_XRANDR, 1, [define if you want support for XRandR (set by configure)])], xrandr=no, $XLFLAGS $XLIBS) fi AC_SUBST(LIBXRANDR) diff --git a/src/WindowMaker.h b/src/WindowMaker.h index 0fb67e3..f11dab6 100644 --- a/src/WindowMaker.h +++ b/src/WindowMaker.h @@ -600,7 +600,7 @@ extern struct wmaker_global_variables { } xkb; #endif -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR struct { Bool supported; int event_base; diff --git a/src/dialog.c b/src/dialog.c index 63b8c50..43f12fc 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -1292,7 +1292,7 @@ void wShowInfoPanel(WScreen *scr) strbuf = wstrappend(strbuf, _(\nAdditional support for: )); strbuf = wstrappend(strbuf, WMSPEC); -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR strbuf = wstrappend(strbuf, , XRandR ); if (w_global.xext.randr.supported) strbuf = wstrappend(strbuf, _((Supported))); diff --git a/src/event.c b/src/event.c index da75cf3..acb7e1f 100644 --- a/src/event.c +++ b/src/event.c @@ -42,7 +42,7 @@ #include xdnd.h #endif -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR #include X11/extensions/Xrandr.h #endif @@ -265,7 +265,7 @@ void DispatchEvent(XEvent * event) break; case ConfigureNotify: -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR if (event-xconfigure.window == DefaultRootWindow(dpy)) XRRUpdateConfiguration(event); #endif @@ -557,7 +557,7 @@ static void handleExtensions(XEvent * event) handleXkbIndicatorStateNotify(event); } #endif /*KEEP_XKB_LOCK_STATUS */ -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR if (w_global.xext.randr.supported event-type == (w_global.xext.randr.event_base + RRScreenChangeNotify)) { /* From xrandr man page: Clients must call back into Xlib using * XRRUpdateConfiguration when screen configuration change notify diff --git a/src/screen.c b/src/screen.c index 52c164a..3735fc0 100644 --- a/src/screen.c +++ b/src/screen.c @@ -31,7 +31,7 @@ #ifdef KEEP_XKB_LOCK_STATUS #include X11/XKBlib.h #endif /* KEEP_XKB_LOCK_STATUS */ -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR #include X11/extensions/Xrandr.h #endif @@ -540,7 +540,7 @@ WScreen *wScreenInit(int screen_number) } #endif /* KEEP_XKB_LOCK_STATUS */ -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR if (w_global.xext.randr.supported) XRRSelectInput(dpy, scr-root_win, RRScreenChangeNotifyMask); #endif diff --git a/src/startup.c b/src/startup.c index 581b644..6ede6f5 100644 --- a/src/startup.c +++ b/src/startup.c @@ -44,7 +44,7 @@ #ifdef KEEP_XKB_LOCK_STATUS #include X11/XKBlib.h #endif -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR #include X11/extensions/Xrandr.h #endif @@ -592,7 +592,7 @@ void StartUp(Bool defaultScreenOnly) w_global.xext.shape.supported = XShapeQueryExtension(dpy, w_global.xext.shape.event_base, j); #endif -#ifdef HAVE_XRANDR +#ifdef USE_XRANDR w_global.xext.randr.supported = XRRQueryExtension(dpy, w_global.xext.randr.event_base, j); #endif -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH 12/12] Configure: Added proper check for Xmu library for WRaster
From: Christophe CURIS christophe.cu...@free.fr The original code supposed that the library was available and ready to use. As it may not be the case (modern distro generally don't include dev files by defaults), add a the appropriate checks to make sure WRaster compilation will not fail later. Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- configure.ac| 7 +-- m4/wm_xext_check.m4 | 38 ++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 2f1fc71..3224f6a 100644 --- a/configure.ac +++ b/configure.ac @@ -451,8 +451,6 @@ X_LIBRARY_PATH=$x_libraries XCFLAGS=$X_CFLAGS XLFLAGS=$X_LIBS XLIBS=-lX11 $X_EXTRA_LIBS -LIBXMU=-lXmu -AC_SUBST(LIBXMU) lib_search_path=$lib_search_path $XLFLAGS inc_search_path=$inc_search_path $XCFLAGS @@ -509,6 +507,11 @@ AC_ARG_ENABLE([shm], [enable_shm=auto]) WM_XEXT_CHECK_XSHM +dnl X Misceleanous Utility +dnl == +# the libXmu is used in WRaster +WM_EXT_CHECK_XMU + dnl XINERAMA support dnl AC_ARG_ENABLE([xinerama], diff --git a/m4/wm_xext_check.m4 b/m4/wm_xext_check.m4 index f5b44f3..51da16f 100644 --- a/m4/wm_xext_check.m4 +++ b/m4/wm_xext_check.m4 @@ -75,6 +75,44 @@ AC_DEFUN_ONCE([WM_XEXT_CHECK_XSHM], ]) dnl AC_DEFUN +# WM_XEXT_CHECK_XMU +# - +# +# Check for the libXmu (X Misceleanous Utilities) +# When found, append it to LIBXMU +# When not found, generate an error because we have no work-around for it +AC_DEFUN_ONCE([WM_EXT_CHECK_XMU], +[AC_CACHE_CHECK([for Xmu library], [wm_cv_xext_xmu], +[wm_cv_xext_xmu=no + dnl + dnl We check that the library is available + wm_save_LIBS=$LIBS + AS_IF([wm_fn_lib_try_link XmuLookupStandardColormap -lXmu], + [wm_cv_xext_xmu=-lXmu]) + LIBS=$wm_save_LIBS + AS_IF([test x$wm_cv_xext_xmu = xno], + [AC_MSG_ERROR([library Xmu not found])]) + dnl + dnl A library was found, check if header is available and compile + wm_save_CFLAGS=$CFLAGS + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([dnl +@%:@include X11/Xlib.h +@%:@include X11/Xutil.h +@%:@include X11/Xmu/StdCmap.h + +Display *dpy; +Atom prop; +], [dnl + XmuLookupStandardColormap(dpy, 0, 0, 0, prop, False, True);]) ], + [], + [AC_MSG_ERROR([found $wm_cv_xext_xmu but cannot compile with the header])]) + CFLAGS=$wm_save_CFLAGS]) +dnl The cached check already reported problems when not found +LIBXMU=$wm_cv_xext_xmu +AC_SUBST(LIBXMU)dnl +]) + + # WM_XEXT_CHECK_XINERAMA # -- # -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: action of alt-tab + left/right arrow crippled
Hi! It would be nice (at least for me) that Windowmaker act a bit more as it did in pre 0.90.0 versions. I'll try to explain what is going on. I have disabled switchpanel and I am using ALT+TAB for window cycling and ALT+Left/ALT+Right for workspace cycling. Everything works fine until I try to cycle windows using ALT+TAB and imediatelly after that, without releasing the ALT key I try to switch workspace using ALT+Left or ALT+Right (still holding the ALT key). In that moment instead of workspace I am getting windows switched. Is there any chance to change that behavior so that ALT+Left/ALT+Right doesn't switch windows when the switchpanel is disabled or at least to make that configurable through a separate option? -- Josip Deanovic -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: [PATCH 03/12] configure: Created new macro to append only once a flag to a variable
On Sun, 17 Nov 2013, Christophe wrote: From: Christophe CURIS christophe.cu...@free.fr Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- m4/windowmaker.m4 | 19 +++ m4/wm_imgfmt_check.m4 | 12 ++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/m4/windowmaker.m4 b/m4/windowmaker.m4 index 1eca694..08e74b5 100644 --- a/m4/windowmaker.m4 +++ b/m4/windowmaker.m4 @@ -102,3 +102,22 @@ $[]2], [ $[]3;])], AS_SET_STATUS([$wm_retval]) } ]) + + +# WM_APPEND_ONCE +# -- +# +# Append flags to a variable, but only if not already present +# +# Usage: MW_LIB_APPEND_ONCE([libflags], [variable]) There's a typo here: MW - WM Regards, BALATON Zoltan -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: [PATCH 03/12] configure: Created new macro to append only once a flag to a variable
From: Christophe CURIS christophe.cu...@free.fr - BALATON Zoltan bala...@eik.bme.hu a �crit : On Sun, 17 Nov 2013, Christophe wrote: [...] +# +# Append flags to a variable, but only if not already present +# +# Usage: MW_LIB_APPEND_ONCE([libflags], [variable]) There's a typo here: MW - WM Looks like I missed it, here a new version of the patch to get it right Regards, Christophe. -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH] configure: Created new macro to append only once a flag to a variable
From: Christophe CURIS christophe.cu...@free.fr Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- m4/windowmaker.m4 | 19 +++ m4/wm_imgfmt_check.m4 | 12 ++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/m4/windowmaker.m4 b/m4/windowmaker.m4 index 1eca694..fbab215 100644 --- a/m4/windowmaker.m4 +++ b/m4/windowmaker.m4 @@ -102,3 +102,22 @@ $[]2], [ $[]3;])], AS_SET_STATUS([$wm_retval]) } ]) + + +# WM_APPEND_ONCE +# -- +# +# Append flags to a variable, but only if not already present +# +# Usage: WM_APPEND_ONCE([libflags], [variable]) +# $1 libflags: the list of flag to append +# $2 variable: the variable, if unset use LIBS +AC_DEFUN([WM_APPEND_ONCE], +[AS_VAR_PUSHDEF([VAR], [m4_ifnblank([$2], [$2], [LIBS])])dnl +for wm_arg in $1 ; do + AS_IF([echo $VAR | grep $wm_arg 21 /dev/null], +[@%:@ Flag already present in VAR], +[VAR=$VAR $wm_arg]) +done +AS_VAR_POPDEF([VAR])dnl +]) diff --git a/m4/wm_imgfmt_check.m4 b/m4/wm_imgfmt_check.m4 index 2104203..df7b59e 100644 --- a/m4/wm_imgfmt_check.m4 +++ b/m4/wm_imgfmt_check.m4 @@ -70,12 +70,12 @@ const char *filename = dummy;], [unsupported=$unsupported GIF enable_gif=no], [supported_gfx=$supported_gfx GIF - GFXLIBS=$GFXLIBS `echo $wm_cv_imgfmt_gif | sed -e 's, *version:.*,,' ` + WM_APPEND_ONCE([`echo $wm_cv_imgfmt_gif | sed -e 's, *version:.*,,' `], [GFXLIBS]) AC_DEFINE_UNQUOTED([USE_GIF], [`echo $wm_cv_imgfmt_gif | sed -e 's,.*version:,,' `], [defined when valid GIF library with header was found])]) ]) -AM_CONDITIONAL([USE_GIF], [test x$enable_gif != xno])dnl +AM_CONDITIONAL([USE_GIF], [test x$enable_gif != xno])dnl ]) dnl AC_DEFUN @@ -128,7 +128,7 @@ AS_IF([test x$enable_jpeg = xno], [unsupported=$unsupported JPEG enable_jpeg=no], [supported_gfx=$supported_gfx JPEG - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_jpeg + WM_APPEND_ONCE([$wm_cv_imgfmt_jpeg], [GFXLIBS]) AC_DEFINE([USE_JPEG], [1], [defined when valid JPEG library with header was found])]) ]) @@ -180,7 +180,7 @@ AS_IF([test x$enable_png = xno], [unsupported=$unsupported PNG enable_png=no], [supported_gfx=$supported_gfx PNG - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_png + WM_APPEND_ONCE([$wm_cv_imgfmt_png], [GFXLIBS]) AC_DEFINE([USE_PNG], [1], [defined when valid PNG library with header was found])]) ]) @@ -240,7 +240,7 @@ AS_IF([test x$enable_tiff = xno], [unsupported=$unsupported TIFF enable_tiff=no], [supported_gfx=$supported_gfx TIFF - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_tiff + WM_APPEND_ONCE([$wm_cv_imgfmt_tiff], [GFXLIBS]) AC_DEFINE([USE_TIFF], [1], [defined when valid TIFF library with header was found])]) ]) @@ -289,7 +289,7 @@ AS_IF([test x$enable_xpm = xno], [supported_gfx=$supported_gfx builtin-XPM enable_xpm=no], [supported_gfx=$supported_gfx XPM - GFXLIBS=$GFXLIBS $wm_cv_imgfmt_xpm + WM_APPEND_ONCE([$wm_cv_imgfmt_xpm], [GFXLIBS]) AC_DEFINE([USE_XPM], [1], [defined when valid XPM library with header was found])]) ]) -- 1.8.4.rc3 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: [PATCH 01/12] Code refactoring: replaced macro 'SHAPE' by 'USE_XSHAPE' for consistency
From: Christophe CURIS christophe.cu...@free.fr Hello, Just noticed I missed a replace in wconfig.h.in, here a new version of the patch including the fix. Regards, Christophe. -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
[PATCH] Code refactoring: replaced macro 'SHAPE' by 'USE_XSHAPE' for consistency
From: Christophe CURIS christophe.cu...@free.fr The usual way to define a macro in is to name macro with 'USE_xxx' when they are used to enable a feature 'xxx' Signed-off-by: Christophe CURIS christophe.cu...@free.fr --- WINGs/dragsource.c | 4 ++-- WINGs/wballoon.c| 4 ++-- WINGs/wcolorpanel.c | 12 ++-- configure.ac| 6 +++--- src/WindowMaker.h | 2 +- src/client.c| 4 ++-- src/event.c | 10 +- src/startup.c | 4 ++-- src/switchpanel.c | 4 ++-- src/wconfig.h.in| 2 +- src/window.c| 12 ++-- src/window.h| 4 ++-- src/workspace.c | 4 ++-- 13 files changed, 36 insertions(+), 36 deletions(-) diff --git a/WINGs/dragsource.c b/WINGs/dragsource.c index 599b80e..6093915 100644 --- a/WINGs/dragsource.c +++ b/WINGs/dragsource.c @@ -4,7 +4,7 @@ #include X11/Xatom.h #include X11/cursorfont.h -#ifdef SHAPE +#ifdef USE_XSHAPE #include X11/extensions/shape.h #endif @@ -202,7 +202,7 @@ static Window makeDragIcon(WMScreen * scr, WMPixmap * pixmap) window = XCreateWindow(scr-display, scr-rootWin, 0, 0, size.width, size.height, 0, scr-depth, InputOutput, scr-visual, flags, attribs); -#ifdef SHAPE +#ifdef USE_XSHAPE if (pixmap-mask) { XShapeCombineMask(scr-display, window, ShapeBounding, 0, 0, pixmap-mask, ShapeSet); } diff --git a/WINGs/wballoon.c b/WINGs/wballoon.c index c68f380..78fac11 100644 --- a/WINGs/wballoon.c +++ b/WINGs/wballoon.c @@ -2,7 +2,7 @@ #include wconfig.h #include WINGsP.h -#ifdef SHAPE +#ifdef USE_XSHAPE #include X11/extensions/shape.h #endif @@ -438,7 +438,7 @@ static void showText(Balloon * bPtr, int x, int y, int w, int h, const char *tex XFreePixmap(dpy, pixmap); -#ifdef SHAPE +#ifdef USE_XSHAPE XShapeCombineMask(dpy, bPtr-view-window, ShapeBounding, 0, 0, mask, ShapeSet); #endif XFreePixmap(dpy, mask); diff --git a/WINGs/wcolorpanel.c b/WINGs/wcolorpanel.c index 3b2faaf..30bf895 100644 --- a/WINGs/wcolorpanel.c +++ b/WINGs/wcolorpanel.c @@ -43,7 +43,7 @@ /* BUG There's something fishy with shaped windows */ /* Whithout shape extension the magnified image is completely broken -Dan */ -#ifdef SHAPE +#ifdef USE_XSHAPE # include X11/extensions/shape.h #endif @@ -1510,7 +1510,7 @@ static Pixmap magnifyCreatePixmap(WMColorPanel * panel) { W_Screen *scr = WMWidgetScreen(panel-win); int u, v; -#ifndef SHAPE +#ifndef USE_XSHAPE Pixmap pixmap; #endif unsigned long color; @@ -1547,7 +1547,7 @@ static Pixmap magnifyCreatePixmap(WMColorPanel * panel) } } -#ifdef SHAPE +#ifdef USE_XSHAPE return panel-magnifyGlass-magPix; #else pixmap = XCreatePixmap(scr-display, W_DRAWABLE(scr), Cursor_mask_width, Cursor_mask_height, scr-depth); @@ -1639,7 +1639,7 @@ static WMPoint magnifyInitialize(W_ColorPanel * panel) panel-magnifyGlass-image = NULL; /* Clipmask to make magnified view-contents circular */ -#ifdef SHAPE +#ifdef USE_XSHAPE XShapeCombineMask(scr-display, WMViewXID(panel-magnifyGlass-view), ShapeBounding, 0, 0, clip_mask, ShapeSet); #else @@ -1658,7 +1658,7 @@ static WMPoint magnifyInitialize(W_ColorPanel * panel) XClearWindow(scr-display, WMViewXID(panel-magnifyGlass-view)); XFlush(scr-display); -#ifndef SHAPE +#ifndef USE_XSHAPE XFreePixmap(scr-display, pixmap); #endif @@ -1778,7 +1778,7 @@ static void magnifyPutCursor(WMWidget * w, void *data) XClearWindow(scr-display, WMViewXID(panel-magnifyGlass-view)); /* Synchronize the event queue, so the Expose is handled NOW */ XFlush(scr-display); -#ifndef SHAPE +#ifndef USE_XSHAPE XFreePixmap(scr-display, pixmap); #endif } diff --git a/configure.ac b/configure.ac index 2ddec30..6130b67 100644 --- a/configure.ac +++ b/configure.ac @@ -488,8 +488,8 @@ dnl AC_ARG_ENABLE(modelock, AS_HELP_STRING([--enable-modelock], [XKB keyboard language status support]), AC_DEFINE(XKB_MODELOCK, 1, [whether XKB language MODELOCK should be enabled])) -dnl Shape support -dnl = +dnl XShape support +dnl == shape=yes AC_ARG_ENABLE(shape, AS_HELP_STRING([--disable-shape], [disable shaped window extension support]), shape=$enableval, shape=yes) @@ -498,7 +498,7 @@ added_xext=no if test $shape = yes; then AC_CHECK_LIB(Xext, XShapeSelectInput, [XLIBS=-lXext $XLIBS added_xext=yes - AC_DEFINE(SHAPE, 1, [define if you want support for shaped windows (set by configure)])], + AC_DEFINE(USE_XSHAPE, 1, [define if you want support for shaped windows (set by configure)])], shape=no, $XLFLAGS $XLIBS) fi
Re: Github repository
On 17/11/2013 17:24, Christian wrote: Hey guys, please calm down. :) My reply. Having code in github is a great idea. +1 You can branch, make changes and submit your code via 'merge requests'. +1 Anybody who is interested to see code changes should then add 'wmaker' to his watch list. Or try to get merge requests automatically mailed to the dev-mailing list and everybody would be happy. +1 I personally think it is an overhead to submit twice. Once as a merge request to wmaker and second mailing it here too. Or just post the link to the merge request here and discuss it. +1 What do you think ? work twice don't make sense. Cheers Chris Am 17.11.2013 15:53, schrieb Carlos R. Mafra: On Sun, 17 Nov 2013 at 14:34:06 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 13:44, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 11:45:23 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 9:37, Carlos R. Mafra wrote: On Sat, 16 Nov 2013 at 23:39:18 +0100, Rodolfo García Peñas wrote: On Thu, 14 Nov 2013, Carlos R. Mafra escribió: I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. Thanks, I am testing it. I sent some patches. Please send the patches to the mailing list. But, If I sent the patches to the mail list, nothing changes. What do you mean by nothing changes? Nothing. My english is too bad, but you cannot understand the difference between you and we. Your project, our project. Again, wmaker is not my project. I guess my agreed-upon status is the maintainer of wmaker, just like you are the maintainer of the wmaker package in the Debian repository. Is the wmaker debian package _your_ project? Or do you consider yourself doing a service to others by being the maintainer of that code in the best possible way as to please the majority of Debian users? The maintainer status is not for life though. If people feel that I'm not capable for maintaining wmaker (for whatever reason) then we can start to discuss who the next maintainer should be and I get out. https://github.com/thekix/wmaker I will upload my work there. If you think my code is ok for *your* project, include it. But couldn't you in addition to the github request also send the patch to the mailing list too? This is what everybody (including you) is doing for the last 5 years and it's working fine. With this move I think you are actively trying to create problems in the established process of patch submission. I understand that you do want you want with your time, but if you don't send the patches to the wmaker-dev mailing list unfortunately they won't be included in the official repository. I hope you change your mind, you've made a lot of contributions already. -- ||// //\\// Rodolfo kix Garcia ||\\// //\\ http://www.kix.es/ -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.
Re: Github repository
On 17/11/2013 15:53, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 14:34:06 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 13:44, Carlos R. Mafra wrote: On Sun, 17 Nov 2013 at 11:45:23 +0100, Rodolfo García Peñas (kix) wrote: On 17/11/2013 9:37, Carlos R. Mafra wrote: On Sat, 16 Nov 2013 at 23:39:18 +0100, Rodolfo García Peñas wrote: On Thu, 14 Nov 2013, Carlos R. Mafra escribió: I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. Thanks, I am testing it. I sent some patches. Please send the patches to the mailing list. But, If I sent the patches to the mail list, nothing changes. What do you mean by nothing changes? Nothing. My english is too bad, but you cannot understand the difference between you and we. Your project, our project. Again, wmaker is not my project. I guess my agreed-upon status is the maintainer of wmaker, just like you are the maintainer of the wmaker package in the Debian repository. Is the wmaker debian package _your_ project? Or do you consider yourself doing a service to others by being the maintainer of that code in the best possible way as to please the majority of Debian users? The maintainer status is not for life though. If people feel that I'm not capable for maintaining wmaker (for whatever reason) then we can start to discuss who the next maintainer should be and I get out. https://github.com/thekix/wmaker I will upload my work there. If you think my code is ok for *your* project, include it. But couldn't you in addition to the github request also send the patch to the mailing list too? This is what everybody (including you) is doing for the last 5 years and it's working fine. With this move I think you are actively trying to create problems in the established process of patch submission. No. Sorry, but no. If you create a github repo and send a mail to the list pointing it (http://lists.windowmaker.org/dev/msg05993.html): -- 8 -- I created a wmaker repository in github, https://github.com/crmafra/wmaker I will keep both the old repo.or.cz and the new github updated. -- 8 -- I thought that I can send the patches in the github repo. I don't want disturb you. I understand that you do want you want with your time, but if you don't send the patches to the wmaker-dev mailing list unfortunately they won't be included in the official repository. If more people are interested in github, probably they request this method. I hope you change your mind, you've made a lot of contributions already. I hope you change your mind too. -- ||// //\\// Rodolfo kix Garcia ||\\// //\\ http://www.kix.es/ -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.