Generated from Compilation.texi and Translations.texi under the doc/build directory of the Window Maker source tree using makeinfo. --- docs.php | 3 +- wmaker_i18n.php | 525 +++++++++++++++++++++++++++++++++ wmaker_install.php | 840 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1367 insertions(+), 1 deletion(-) create mode 100644 wmaker_i18n.php create mode 100644 wmaker_install.php
diff --git a/docs.php b/docs.php index 9cc6255..e3b9df2 100644 --- a/docs.php +++ b/docs.php @@ -34,7 +34,8 @@ <ul> <li><a href="installation.php">Installation Basics</a></li> - + <li><a href="wmaker_install.php">Window Maker Compilation and Installation</a></li> + <li><a href="wmaker_i18n.php">Window Maker Internationalisation</a></li> <li><a href="guidedtour/index.html">Guided Tour</a></li> <li><a href="guide_toc.php">User Guide</a></li> <!-- <li><a href="desktop.php">Desktop/X Integration</a></li> --> diff --git a/wmaker_i18n.php b/wmaker_i18n.php new file mode 100644 index 0000000..361543c --- /dev/null +++ b/wmaker_i18n.php @@ -0,0 +1,525 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This manual is for WINDOW MAKER window manager, version git#next. + +Copyright (C) 2015 The Window Maker Team. + +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, see file COPYING for details. --> +<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Window Maker Internationalisation 1.0</title> + +<meta name="description" content="Window Maker Internationalisation 1.0"> +<meta name="keywords" content="Window Maker Internationalisation 1.0"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<link href="title.css" rel="stylesheet" type="text/css" /> +</head> + +<body lang="en"> + +<?php include("dock.php"); ?> +<?php include("header.php"); ?> + +<a name="Top"></a> +<a name="Window-Maker-Internationalisation"></a> +<h1 class="top">Window Maker Internationalisation</h1> + +<p>A guide to enable support for language translations +in <small>WINDOW MAKER</small> and to the contributors +who want to help translating. +</p> +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Enabling-Languages-support-1" href="#Enabling-Languages-support">1 Enabling Languages support</a> + <ul class="no-bullet"> + <li><a name="toc-Getting-the-list-of-supported-languages" href="#Getting-the-list-of-supported-languages">1.1 Getting the list of supported languages</a></li> + <li><a name="toc-Translations-for-Menus" href="#Translations-for-Menus">1.2 Translations for Menus</a></li> + <li><a name="toc-Setting-LINGUAS-at-system-level" href="#Setting-LINGUAS-at-system-level">1.3 Setting <code>LINGUAS</code> at system level</a></li> + </ul></li> + <li><a name="toc-Choosing-the-Language-1" href="#Choosing-the-Language">2 Choosing the Language</a></li> + <li><a name="toc-Troubleshooting-1" href="#Troubleshooting">3 Troubleshooting</a></li> + <li><a name="toc-Contribute-to-Translations-1" href="#Contribute-to-Translations">4 Contribute to Translations</a> + <ul class="no-bullet"> + <li><a name="toc-Install-the-latest-sources" href="#Install-the-latest-sources">4.1 Install the latest sources</a></li> + <li><a name="toc-Updating-the-Translations" href="#Updating-the-Translations">4.2 Updating the Translations</a></li> + <li><a name="toc-Translate-the-Man-Pages" href="#Translate-the-Man-Pages">4.3 Translate the Man Pages</a></li> + <li><a name="toc-Checking-the-Result" href="#Checking-the-Result">4.4 Checking the Result</a></li> + <li><a name="toc-Submitting-your-Contribution" href="#Submitting-your-Contribution">4.5 Submitting your Contribution</a></li> + </ul></li> +</ul> +</div> + + +<br> +<p>This manual is for Window Maker, version git#next. +</p> + + + +<hr> +<a name="Enabling-Languages-support"></a> +<a name="Enabling-Languages-support-1"></a> +<h2 class="chapter">1 Enabling Languages support</h2> + +<p><small>WINDOW MAKER</small> has the possibility to be translated in many languages, but by default none of +them will be installed, and the support for translation will not be compiled. +</p> +<p>To enable the translation capabilities, you have to specify which language(s) you want to be +installed: this is done with the variable <code>LINGUAS</code> when running the <code>configure</code> script. +This variable should contain the space-separated list of languages you want to install. +</p> +<p>You could for instance enable both French (<code>fr</code>) and Dutch (<code>nl</code>) with this: +</p> +<div class="example"> +<pre class="example">./configure LINGUAS="fr nl" +</pre></div> + +<p>You can of course add any other option that you want to the <code>configure</code> command. +From the moment you specify the variable, the <code>configure</code> script will check that you have +the appropriate dependencies for this (basically the <code>gettext</code> function and the <code>libintl</code> +library); when you run <code>make</code> to compile the project, it will also compile the translation +(<code>mo</code> files) for the language(s) you asked (if available, of course), and during +<code>make install</code> it will install them in the usual directory. +</p> +<p>The installation directory can be changed with the standard option <samp>--localedir</samp> to the +<code>configure</code> script, the default path being +<samp><em><prefix></em>/share/locale/<em><lang></em>/LC_MESSAGES</samp>). +</p> + +<a name="Getting-the-list-of-supported-languages"></a> +<h3 class="section">1.1 Getting the list of supported languages</h3> + +<p>The naming convention for the languages follows the <cite>ISO 639-1</cite> standard, +for which you can find a summary list in the +<a href="https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html">GNU gettext manual</a>. +</p> +<p>But as <small>WINDOW MAKER</small> does not support all of them, the <code>configure</code> script will print a +warning for each language you specify that it does not know, and sum up at the end the list of +enabled languages that will be installed. +</p> +<p>There is a non-standard possibility to set <code>LINGUAS</code> to <code>list</code>, in which case the +<code>configure</code> script will provide you the list of languages it supports, and stop: +</p> +<div class="example"> +<pre class="example">./configure LINGUAS="list" +</pre></div> + +<p>There is also another non-standard possibility to enable all the languages that <small>WINDOW MAKER</small> +supports by setting <code>LINGUAS</code> to <code>*</code>. +This is an internal trick implemented so the development team can have the command +<code>make distcheck</code> include some checks on translations: +</p> +<div class="example"> +<pre class="example">./configure LINGUAS='*' +</pre></div> + + +<a name="Translations-for-Menus"></a> +<h3 class="section">1.2 Translations for Menus</h3> + +<p>In order to propose an <em>Application Menu</em> (also called <em>Root Menu</em>) that is also +translated in the language of the interface, <small>WINDOW MAKER</small> implements two complementary +mechanisms: +</p> +<p>The first, always enabled when i18n support is enabled, is to look for the menu file containing the +name of the locale. +For example, if the file is called <samp>menu</samp> and the language is set as <code>LANG=fr_FR.utf-8</code>, +then <small>WINDOW MAKER</small> will search for, and use the first match found: +</p> +<ul> +<li> <code>menu.fr_FR.utf-8</code> +</li><li> <code>menu.fr_FR</code> +</li><li> <code>menu.fr</code> +</li><li> <code>menu</code> +</li></ul> + +<p>The second possibility, which is not enabled by default, is to be able to use a custom <samp>po</samp> +file which contains the translations for the text of the menu. +This feature is enabled at compile time, using the option <samp>--with-menu-textdomain</samp> to the +<code>configure</code> script. For example, if you specify: +</p> +<div class="example"> +<pre class="example">./configure --with-menu-textdomain=WMMenu +</pre></div> + +<p>then the translations for the menu will be searched in the file <samp>WMMenu.mo</samp> located +at the standard location, the default path being +<samp><em><prefix></em>/share/locale/<em><lang></em>/LC_MESSAGES/<em>WMMenu</em>.mo</samp>. +</p> +<p>If you do not enable the feature (the default behaviour, or with an explicit +<samp>--without-menu-textdomain</samp>), then <small>WINDOW MAKER</small> will <b>not</b> try to translate the +strings, even using its own domain file (<samp>WindowMaker.mo</samp>). +</p> + +<a name="Setting-LINGUAS-at-system-level"></a> +<h3 class="section">1.3 Setting <code>LINGUAS</code> at system level</h3> + +<p>As the variable <code>LINGUAS</code> is quite standard, you also have the possibility to set its value in +the <samp>config.site</samp> file for <small>AUTOCONF</small>. +This file can be placed in one of these paths: +</p> +<ul> +<li> <samp><em><prefix></em>/share/config.site</samp> +</li><li> <samp><em><prefix></em>/etc/config.site</samp> +</li></ul> + +<p>This way, the same language list will be used for all the programs that use <small>AUTOCONF</small> that you +would compile. +Please note that if you also specify a value on the command line, it will have precedence over the +value in that file. +</p> + +<hr> +<a name="Choosing-the-Language"></a> +<a name="Choosing-the-Language-1"></a> +<h2 class="chapter">2 Choosing the Language</h2> + +<p>If you have compiled and installed <small>WINDOW MAKER</small> with support for your language, +the effective translation is done is the very same way as any other application on an <small>UNIX</small> +system, you just have to set the shell variable <code>LANG</code> to your language before <code>wmaker</code> +is started. +In <code>sh</code> type of shell (<small>SH</small>, <small>KSH</small>, <small>BASH</small>, ...), this is done for example with +(<code>fr</code> is for French): +</p> +<div class="example"> +<pre class="example">export LANG=fr +</pre></div> + + +<p>There is also a command line option <samp>--locale</samp> for <small>WINDOW MAKER</small> which may be used to set +the language: +</p> +<div class="example"> +<pre class="example">wmaker --locale fr +</pre></div> + +<p>When using this option, <small>WINDOW MAKER</small> will use the locale you specified, redefining the +<code>LANG</code> environment variable to this value so all program started from <small>WINDOW MAKER</small> will +inherit its value. +</p> + +<p>If your system is using <small>SYSTEMD</small>, you can also configure the locale at system level using the +command: +</p> +<div class="example"> +<pre class="example">localectl set-locale LANG=fr +</pre></div> + + +<p>You can check if the current value is properly supported with the command: +</p> +<div class="example"> +<pre class="example">locale +</pre></div> + +<p>If this does not work, you may need first to activate the support for your locale in the system; +you can get the list of currently enabled locales with the command: +</p> +<div class="example"> +<pre class="example">locale -a +</pre></div> + +<p>You should be able to enable a new language support by editing the file <samp>/etc/locale.gen</samp> to +uncomment the locale(s) you need (by removing the <code>#</code> character and space(s) in front of it, +and by running the command <code>locale-gen</code> as root. +</p> +<p>For further information, you may wish to read dedicated documentation, for example from +<a href="http://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html">the Linux Documentation Project</a> +or through pages like +<a href="http://www.shellhacks.com/en/HowTo-Change-Locale-Language-and-Character-Set-in-Linux">Shell Hacks’ note on Changing Locale</a>. +</p> + +<hr> +<a name="Troubleshooting"></a> +<a name="Troubleshooting-1"></a> +<h2 class="chapter">3 Troubleshooting</h2> + +<p>If I18N support does not work for you, check these: +</p> +<ul class="no-bullet"> +<li>- the <code>LANG</code> environment variable is set to your locale, and +the locale is supported by your OS’s locale or X’s locale +emulation. you can display all supported locales by +executing "<code>locale -a</code>" command if it is available; you +can check if your locale is supported by X’s locale emulation, +see <samp>/usr/share/X11/locale/locale.alias</samp> + +</li><li>- check if you are using an appropriate fonts for the locale you +chose. If you’re using a font set that has a different +encoding than the one used by <small>XLIB</small> or <small>LIBC</small>, bad things can +happen. Try specifically putting the encoding in the <code>LANG</code> +variable, like <code>ru_RU.KOI8-R</code>. Again, see +<samp>/usr/share/X11/locale/locale.alias</samp> + +</li><li>- the fonts you’re using support your locale. if your font +setting on <samp>$HOME/GNUstep/Defaults/WindowMaker</samp> is like... + +<div class="example"> +<pre class="example"> WindowTitleFont = "Trebuchet MS:bold:pixelsize=12"; + MenuTitleFont = "Trebuchet MS:bold:pixelsize=12"; +</pre></div> + +<p>then you can’t display Asian languages (<code>ja</code>, <code>ko</code>, <code>ch</code>, ...) characters using +<code>Trebuchet MS</code>. A font that is guaranteed to work for any language is +<code>sans</code> (or <code>sans-serif</code>). <code>sans</code> is not a font itself, but an alias which +points to multiple fonts and will load the first in that list that +has the ability to show glyphs in your language. If you don’t know +a font that is suited for your language you can always set all your +fonts to something like: +</p> +<div class="example"> +<pre class="example"> "sans:pixelsize=12" +</pre></div> + +<p>However, please note that if your font is something like: +</p> +<div class="example"> +<pre class="example"> "Trebuchet MS,sans serif:pixelsize=12" +</pre></div> + +<p>this will not be able to display Asian languages if any of the +previous fonts before sans are installed. This is because unlike +the proper font pickup that <code>sans</code> guarantees for your language, +this construct only allows a font fallback mechanism, which tries +all the fonts in the list in order, until it finds one that is +available, even if it doesn’t support your language. +</p> +<p>Also you need to change font settings in style files in +the <samp>$HOME/Library/WindowMaker/Style</samp> directory. +</p> +</li><li>- the <code>LC_CTYPE</code> environment variable is unset or it has the correct +value. If you don’t know what is the correct value, unset it. + +</li></ul> + + +<hr> +<a name="Contribute-to-Translations"></a> +<a name="Contribute-to-Translations-1"></a> +<h2 class="chapter">4 Contribute to Translations</h2> + +<p>You may have noticed that many translations are not up to date, because the code has evolved but the +persons who initially contributed may not have had the time to continue, so any help is welcome. +</p> +<p>Since <small>WINDOW MAKER</small> 0.95.7 there are some targets to <code>make</code> that can help you in that +task. +</p> + +<a name="Install-the-latest-sources"></a> +<h3 class="section">4.1 Install the latest sources</h3> + +<p>If you want to contribute, the first step is get the development branch of the code; +this is done using <code>git</code>. +If you do not feel confident at all with using <code>git</code>, you may also try to ask for a +<em>snapshot</em> on the developer’s mailing list <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>. +With <code>git</code> the procedure is: +</p> +<div class="example"> +<pre class="example"># Get your working copy of the sources +git clone git://repo.or.cz/wmaker-crm.git + +# Go into that newly created directory +cd wmaker-crm + +# Switch to the branch where everything happens +git checkout next + +# Generate the configuration script +./autogen.sh +</pre></div> + +<p>Now you should have an up-to-date working copy ready to be compiled; +you will not need to go the full way but you should run the <code>configure</code> script, so it will +create the <samp>Makefile</samp>s, and you may want to compile the code once so it will not do it again +automatically later while you are doing something else: +</p> +<div class="example"> +<pre class="example"># Setup the build, enabling at least the language you want to work on +./configure LINGUAS="<list of iso 639 country code>" + +# Compile the code once +make +</pre></div> + + +<a name="Updating-the-Translations"></a> +<h3 class="section">4.2 Updating the Translations</h3> + +<p>The typical process for translating one program is: +</p> +<ul> +<li> generate a POT file (PO Template): +this is done with <code>xgettext</code> which searches for all the strings from the sources that can be +translated; + +</li><li> update the PO file for your language: +this is done with <code>msgmerge</code> which compares the PO file and aligns it to the latest +template; + +</li><li> edit the new PO file: +this is done by you with your favourite editor, to add the missing <code>msgstr</code>, review the +possible <em>fuzzy matches</em>, ... + +</li><li> check the PO file: +unfortunately there is no definitive method for this; + +</li><li> submit your contribution to the project: +this is done with <code>git</code>. +</li></ul> + +<p>In <small>WINDOW MAKER</small>, you have actually 4 <code>po</code> files to take care of: +</p> +<ul class="no-bullet"> +<li>- <samp>po/<em><lang></em>.po</samp>: for <small>WINDOW MAKER</small> itself +</li><li>- <samp>WPrefs.app/po/<em><lang></em>.po</samp>: for the Preference Editor program +</li><li>- <samp>WINGs/po/<em><lang></em>.po</samp>: for the graphic toolkit library +</li><li>- <samp>util/po/<em><lang></em>.po</samp>: for the command-line tools of <small>WINDOW MAKER</small> +</li></ul> + +<p>As stated previously, there is a <code>make</code> target that can help you to automatically generate +the POT and update the PO for these 4 cases: +</p> +<div class="example"> +<pre class="example">make update-lang PO=<lang> +</pre></div> + +<p>Once run, it will have updated as needed the 4 <code>po</code> files against the latest source code. +You may wish to use the command <code>git gui</code> to view the changes; +you can now edit the files to complete the translation, correct them, remove deprecated stuff, ... +Please note that the encoding should be set to <em>UTF-8</em> as this is now the standard. +</p> +<p>If you think an error message is too obscure, just ask on the developer mailing list +<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>: in addition to clarifications there’s even a chance for the original message +to be improved! +</p> +<p>You may find some information on working with <code>po</code> file in the +<a href="https://www.gnu.org/software/gettext/manual/html_node/Editing.html">GNU gettext documentation</a>. +</p> + +<a name="Translate-the-Man-Pages"></a> +<h3 class="section">4.3 Translate the Man Pages</h3> + +<p>You may want to extend the translation to the documentation that is provided to users in the form +of Unix <i>man pages</i>. +The sources of the man pages are located in the <samp>doc/</samp> directory; +the translation should be placed in the directory <samp>doc/<i>lang</i>/</samp> with the same file name. +</p> +<p>The directory will also need a file <samp>Makefile.am</samp> which provides the list of man pages to be +included in the distribution package and to be installed. +You can probably get inspiration from an existing one from another language; +if you do not feel confident about it do not hesitate to ask on the project’s mailing list +(<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>), either for help or to ask someone to make it for you. +</p> +<p>Please note that although most man pages sources are directly in man page format +(<em>nroff</em>, the file extension being a number), a few of them are processed by a script +(those with the <samp>.in</samp> extension, like <samp>wmaker.in</samp>). +This is done because in some case we want the man page to reflect the actual compilation options. +</p> +<p>You may not want to bother with this hassle, in which case you can simply name your translation +file with the <samp>.1</samp> and remove the special <code>@keyword@</code> marks. +If you are sure you want to keep that processing but do not feel confident about hacking the +<samp>Makefile.am</samp> do not hesitate to ask on the project’s mailing list (<a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>). +</p> + +<a name="Checking-the-Result"></a> +<h3 class="section">4.4 Checking the Result</h3> + +<p>In the <small>WINDOW MAKER</small> build tree you also have another target that can help you, it is +<code>make check</code>. +</p> +<p>At current time, it does not check much, but if during the <code>make update-lang</code> new <code>po</code> +file have been created you may get some errors, because you have to add these new files to the +variable <var>EXTRA_DIST</var> in the corresponding <samp>Makefile</samp>. +</p> +<p>If you do not feel confident about doing it, do not worry, just tell about it when you submit your +work, and some developer on the mailing list will just be happy to do it for you when integrating +your valuable contribution (we always like when someone helps making <small>WINDOW MAKER</small> better). +</p> + +<a name="Submitting-your-Contribution"></a> +<h3 class="section">4.5 Submitting your Contribution</h3> + +<p><em>Preliminary Remark</em>: if the update process made changes in a <code>po</code> file but you did not +change any <code>msgstr</code> content, it is probably a good idea to not submit the changes to that +<code>po</code> file because it would just add noise. +</p> +<p>When you feel ready to send your changes, the first step is to prepare them. +This is done with <code>git</code>: if you have not run the <code>git gui</code> previously then it is a +good time to do it now. +This window offers you the possibility to show your changes and to decide what you want to send. +</p> +<p>The window is divided in 4 panes: +</p><ul> +<li> top-right show the current changes you have selected, for review +(and also for cherry-picking stuff if you want to select precisely) + +</li><li> top-left ("Unstaged Changes") the list of files with changes to be send, + you can click on the name of the file to see the changes, + you can click on the icon of the file if you want to send all the changes in this file; +an icon in blue shows a file that have been changed and an icon in black shows a file that is new + +</li><li> bottom-left ("Staged Changes") the list of files with changes that you have chosen to send so far, + you can click on the file name to view these changes, + you can click on the icon if you want to remove the changes from this file from the list to send + +</li><li> bottom-right ("Commit Message") the message you want to attach to your changes when you submit them +to the development team +</li></ul> + +<p>The idea here is to pick your changes to the <code>po</code> files; +for the <em>commit message</em> you may wish to stuck to a simple, single line: +</p> +<blockquote> +<p>"Updated translations for <em><lang></em>" +</p></blockquote> + +<p>The penultimate step is to click on the button <tt class="key">Sign Off</tt> (it will add a line in the commit +message), and then click on the button <tt class="key">Commit</tt>. +From this time, the commit message will clear itself and the "Staged Changes" also, showing that +your action was done. +</p> +<p>You may now quit the <code>git gui</code>, the final step begins by running this command: +</p> +<div class="example"> +<pre class="example">git format-patch HEAD^ +</pre></div> + +<p>This will generate a file named like <samp>0001-<em>updated-translations-for-XX</em>.patch</samp> +which contains your changes, ready for sending. +The goal will now be to email this file to <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a>. +If you feel confident in having <code>git</code> send it for you, you may want to read the file +<samp>The-perfect-Window-Maker-patch.txt</samp> to see how to configure <code>git</code> for mailing, so you +can run: +</p> +<div class="example"> +<pre class="example">git send-email 0001-<em>updated-translations-for-XX</em>.patch +</pre></div> + + +<hr> + + + +</body> +</html> diff --git a/wmaker_install.php b/wmaker_install.php new file mode 100644 index 0000000..093adff --- /dev/null +++ b/wmaker_install.php @@ -0,0 +1,840 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This manual is for WINDOW MAKER window manager, version git#next. + +Copyright (C) 2015 The Window Maker Team. + +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, see file COPYING for details. --> +<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Window Maker Compilation and Installation 1.0</title> + +<meta name="description" content="Window Maker Compilation and Installation 1.0"> +<meta name="keywords" content="Window Maker Compilation and Installation 1.0"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<link href="title.css" rel="stylesheet" type="text/css" /> +</head> + +<body lang="en"> + + <?php include("dock.php"); ?> + <?php include("header.php"); ?> + +<a name="Top"></a> +<a name="Window-Maker-Compilation-and-Installation"></a> +<h1 class="top">Window Maker Compilation and Installation</h1> + +<p>A guide to configure, compile and install +<small>WINDOW MAKER</small> from sources. +</p> +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Prerequisites-1" href="#Prerequisites">1 Prerequisites</a> + <ul class="no-bullet"> + <li><a name="toc-Supported-Platforms" href="#Supported-Platforms">1.1 Supported Platforms</a></li> + <li><a name="toc-Software-Dependencies-1" href="#Software-Dependencies-1">1.2 Software Dependencies</a></li> + <li><a name="toc-Special-Dependencies-1" href="#Special-Dependencies-1">1.3 Special Dependencies</a></li> + <li><a name="toc-Optional-Dependencies-1" href="#Optional-Dependencies-1">1.4 Optional Dependencies</a></li> + </ul></li> + <li><a name="toc-Building-WINDOW-MAKER" href="#Building-Window-Maker">2 Building <small>WINDOW MAKER</small></a> + <ul class="no-bullet"> + <li><a name="toc-Getting-the-Sources" href="#Getting-the-Sources">2.1 Getting the Sources</a></li> + <li><a name="toc-Build-and-Install" href="#Build-and-Install">2.2 Build and Install</a></li> + <li><a name="toc-User-specific-configuration" href="#User-specific-configuration">2.3 User specific configuration</a></li> + <li><a name="toc-Locales_002fInternationalisation" href="#Locales_002fInternationalisation">2.4 Locales/Internationalisation</a></li> + <li><a name="toc-Configure-Options-1" href="#Configure-Options-1">2.5 Configure Options</a> + <ul class="no-bullet"> + <li><a name="toc-Installation-Directory" href="#Installation-Directory">2.5.1 Installation Directory</a></li> + <li><a name="toc-External-Libraries" href="#External-Libraries">2.5.2 External Libraries</a></li> + <li><a name="toc-X11-and-Extensions" href="#X11-and-Extensions">2.5.3 X11 and Extensions</a></li> + <li><a name="toc-Feature-Selection" href="#Feature-Selection">2.5.4 Feature Selection</a></li> + <li><a name="toc-Developer-Stuff" href="#Developer-Stuff">2.5.5 Developer Stuff</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Miscellaneous-1" href="#Miscellaneous">3 Miscellaneous</a> + <ul class="no-bullet"> + <li><a name="toc-Platform-Specific-Notes" href="#Platform-Specific-Notes">3.1 Platform Specific Notes</a></li> + <li><a name="toc-I-don_0027t-have-the-root-password-_003a_0028" href="#I-don_0027t-have-the-root-password-_003a_0028">3.2 I don’t have the <em>root</em> password :(</a></li> + <li><a name="toc-Upgrading" href="#Upgrading">3.3 Upgrading</a></li> + </ul></li> + <li><a name="toc-Troubleshooting-1" href="#Troubleshooting">4 Troubleshooting</a> + <ul class="no-bullet"> + <li><a name="toc-Error-with-loading-fonts_002c-even-if-they-exist" href="#Error-with-loading-fonts_002c-even-if-they-exist">4.1 Error with loading fonts, even if they exist</a></li> + <li><a name="toc-configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries" href="#configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries">4.2 configure doesn’t detect <em>libtiff</em>, or other graphic libraries</a></li> + <li><a name="toc-configure-doesn_0027t-detect-libXpm" href="#configure-doesn_0027t-detect-libXpm">4.3 configure doesn’t detect <em>libXpm</em></a></li> + <li><a name="toc-Segmentation-fault-on-startup" href="#Segmentation-fault-on-startup">4.4 Segmentation fault on startup</a></li> + <li><a name="toc-_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022" href="#g_t_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022">4.5 "...: your machine is misconfigured. gethostname() returned (none)"</a></li> + <li><a name="toc-The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029" href="#The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029">4.6 The root menu contains only 2 entries. ("XTerm" and "Exit...")</a></li> + </ul></li> +</ul> +</div> + + +<br> +<p>This manual is for Window Maker, version git#next. +</p> + + +<hr> +<a name="Prerequisites"></a> +<a name="Prerequisites-1"></a> +<h2 class="chapter">1 Prerequisites</h2> + +<a name="Supported-Platforms"></a> +<h3 class="section">1.1 Supported Platforms</h3> + +<ul class="no-bullet"> +<li>- Intel GNU/Linux Systems in general, <tt>ix86</tt> and <tt>x86_64</tt> but other architectures should work +</li><li>- BSD systems +</li><li>- Solaris, at least on release 10 and 11 +</li></ul> + +<p>Patches to make it work on other platforms are welcome. +</p> + +<a name="Software-Dependencies-1"></a> +<h3 class="section">1.2 Software Dependencies</h3> +<a name="Software-Dependencies"></a> +<p>The following software is required to use <small>WINDOW MAKER</small>: +</p><ul class="no-bullet"> +<li>- X11R6.x + +<p>Window Maker can be compiled in older versions of <em>X</em>, like <em>X11R5</em> (<em>Solaris</em>) +or <em>X11R4</em> (<em>OpenWindows</em>) but it will not work 100% correctly. +In such servers there will not be application icons and you’ll have trouble using the dock. +Upgrading the client libraries (<em>Xlib</em>, <em>Xt</em>, etc.) will help if you can’t upgrade +the server. +</p></li></ul> + +<p>The following is required to build <small>WINDOW MAKER</small>: +</p><ul class="no-bullet"> +<li>- Basic obvious stuff + +<ul> +<li> <em>gcc</em> (or some other ANSI C compiler, supporting some C99 extensions) +</li><li> <em>glibc</em> development files (usually <samp>glibc-devel</samp> in Linux distributions) +</li><li> <em>X</em> development files (<samp>XFree86-devel</samp> or something similar) +</li></ul> + +</li><li>- <em>Xft2</em> and its dependencies + +<p>Dependencies include <em>freetype2</em> and <em>fontconfig</em>. +You will also need the development files for them (<samp>xft2-devel</samp>). +Sources are available at: <a href="http://www.freedesktop.org/wiki/Software/Xft/">http://www.freedesktop.org/wiki/Software/Xft/</a> +</p> +</li></ul> + +<p><b>Note</b>: +<small>WINDOW MAKER</small> is known to compile with <em>gcc</em> and <em>clang</em>; +the code source is mostly ANSI C (also known as C89 and C90) but is uses very few of the C99 +novelties; +it also uses a few attributes introduced in the C11 standard but those are detected automatically, +so most compilers should work. +</p> + +<a name="Special-Dependencies-1"></a> +<h3 class="section">1.3 Special Dependencies</h3> +<a name="Special-Dependencies"></a> + +<p>If you want to compile using the sources from the git repository instead of the distribution +package, you will also need: +</p><ul> +<li> <em>git</em> +</li><li> <em>autoconf</em> 2.69 +</li><li> <em>automake</em> 1.12 +</li><li> <em>libtool</em> 1.4.2 +</li></ul> + + +<a name="Optional-Dependencies-1"></a> +<h3 class="section">1.4 Optional Dependencies</h3> +<a name="Optional-Dependencies"></a> +<p>These libraries are not required to make <small>WINDOW MAKER</small> work, but they are supported in case you +want to use them. Version numbers are indicative, but other versions might work too. +</p> +<ul class="no-bullet"> +<li>- <em>libXPM</em> 4.7 or newer + +<p>Older versions may not work! +</p> +<p>Available from <a href="http://xlibs.freedesktop.org/release/">http://xlibs.freedesktop.org/release/</a> +</p> +<p>There is built-in support for <em>XPM</em> files, but it will not +load images in some uncommon encodings. +</p> +</li><li>- <em>libpng</em> 0.96 or newer and <em>zlib</em> + +<p>For <em>PNG</em> image support, +<a href="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a> +</p> +</li><li>- <em>libtiff</em> 3.4 or newer + +<p>For <em>TIFF</em> image support, +<a href="http://www.libtiff.org/">http://www.libtiff.org/</a> +</p> +</li><li>- <em>libjpeg</em> 6.0.1 or newer + +<p>For <em>JPEG</em> image support, +<a href="http://www.ijg.org/">http://www.ijg.org/</a> +</p> +<p>Note that if you don’t have it, <code>configure</code> will issue a big warning in the end, +this is because JPEG images are often used in themes and for background images +so you probably want this format supported. +</p> +</li><li>- <em>libgif</em> 2.2 or <em>libungif</em> + +<p>For <em>GIF</em> image support, +<a href="http://giflib.sourceforge.net/">http://giflib.sourceforge.net/</a> +</p> +</li><li>- <em>WebP</em> 0.4.1 or newer + +<p>The reference library from <em>Google</em> for their image format, +<a href="https://developers.google.com/speed/webp/download">https://developers.google.com/speed/webp/download</a> +</p> +</li><li>- <em>GNU xgettext</em> + +<p>If you want to use translated messages, you will need <em>GNU gettext</em>. +Other versions of <em>gettext</em> are not compatible and will not work. +Get the <em>GNU</em> version from <a href="http://www.gnu.org/software/gettext/">http://www.gnu.org/software/gettext/</a> +</p> +</li><li>- <em>Pango</em> 1.36.8 or newer + +<p>This library can be used by the <em>WINGs</em> toolkit to improve support for <em>UTF-8</em> and for +languages written in right-to-left direction, in some widgets. +You have to explicitly ask for its support through (see <a href="#Configure-Options">Configure Options</a>). +You can get it from <a href="http://www.pango.org/Download">http://www.pango.org/Download</a> +</p> +</li><li>- <em>libbsd</em> + +<p>This library can be used by the <em>WINGs</em> utility library to make use of <code>strlcat</code> and +<code>strlcpy</code> instead of using built-in functions if your system does not provide them in its +core <em>libc</em>. +You should let <small>WINDOW MAKER</small>’s <code>configure</code> detect this for you. +You can get it from <a href="http://libbsd.freedesktop.org/wiki/">http://libbsd.freedesktop.org/wiki/</a> +</p> +</li><li>- <em>Inotify</em> + +<p>If you have Linux’s <em>inotify</em> support, <small>WINDOW MAKER</small> will use it to check for configuration +updates instead of polling regularly the file. +The needed header comes with the kernel, typical packages names include: +</p><ul> +<li> <samp>kernel-headers</samp> for <em>Slackware</em> and <em>Fedora</em> +</li><li> <samp>linux-userspace-headers</samp> for <em>Mageia</em> +</li><li> <samp>linux-libc-dev</samp> for <em>Debian</em> and <em>Ubuntu</em> +</li><li> <samp>linux-glibc-devel</samp> for <em>OpenSuSE</em> +</li></ul> + +</li><li>- <em>MagickWand</em> 6.8.9-9 or newer + +<p>If found, then the library <em>WRaster</em> can use the <em>ImageMagick</em> library to let +<small>WINDOW MAKER</small> support more image formats, like <em>SVG</em>, <em>BMP</em>, <em>TGA</em>, ... +You can get it from <a href="http://www.imagemagick.org/">http://www.imagemagick.org/</a> +</p> +</li><li>- <em>Boehm GC</em> + +<p>This library can be used by the <em>WINGs</em> utility toolkit to use a +<cite>Boehm-Demers-Weiser Garbage Collector</cite> instead of the traditional +<code>malloc</code>/<code>free</code> functions from the <em>libc</em>. +You have to explicitly ask for its support though (see <a href="#Configure-Options">Configure Options</a>). +You can get it from <a href="http://www.hboehm.info/gc/">http://www.hboehm.info/gc/</a> +</p> +</li></ul> + + +<hr> +<a name="Building-Window-Maker"></a> +<a name="Building-WINDOW-MAKER"></a> +<h2 class="chapter">2 Building <small>WINDOW MAKER</small></h2> + +<a name="Getting-the-Sources"></a> +<h3 class="section">2.1 Getting the Sources</h3> + +<p>The latest version of <small>WINDOW MAKER</small> (<tt>-crm</tt>) can be downloaded from +<a href="http://www.windowmaker.org/">http://www.windowmaker.org/</a> +</p> +<p>Alternatively, the development branch, called <tt>#next</tt> is in the <em>git</em> repository at +<a href="http://repo.or.cz/w/wmaker-crm.git">http://repo.or.cz/w/wmaker-crm.git</a> +</p> +<p>If you want to use the <em>git</em> versions, you can get it with: +</p><div class="example"> +<pre class="example">git clone -b next git://repo.or.cz/wmaker-crm.git +</pre></div> +<p>then, assuming you have the dependencies listed in <a href="#Special-Dependencies">Special Dependencies</a>, you have to +type: +</p><div class="example"> +<pre class="example">./autogen.sh +</pre></div> +<p>to generate the configuration script. +</p> + +<a name="Build-and-Install"></a> +<h3 class="section">2.2 Build and Install</h3> + +<p>For a quick start, type the following in your shell prompt: +</p> +<div class="example"> +<pre class="example">./configure +make +</pre></div> + +<p>then, login as <em>root</em> and type: +</p> +<div class="example"> +<pre class="example">make install +ldconfig +</pre></div> + +<p>or if you want to strip the debugging symbols from the binaries to make them smaller, +you can type instead: +</p> +<div class="example"> +<pre class="example">make install-strip +ldconfig +</pre></div> + +<p>This will build and install <small>WINDOW MAKER</small> with default parameters. +</p> +<p>If you want to customise some compile-time options, you can do the following: +</p> +<ol> +<li> (optional) Look at the <a href="#Configure-Options">Configure Options</a>, for the options available. +Also run: +<div class="example"> +<pre class="example">./configure --help +</pre></div> + +<p>to get a complete list of options that are available. +</p> +</li><li> Run configure with the options you want. +For example, if you want to use the <samp>--enable-modelock</samp> option, type: +<div class="example"> +<pre class="example">./configure --enable-modelock +</pre></div> + +</li><li> (optional) Edit <samp>src/wconfig.h</samp> with your favourite text editor and browse through it for some +options you might want to change. + +</li><li> Compile. Just type: +<div class="example"> +<pre class="example">make +</pre></div> + +</li><li> Login as root (if you can’t do that, read the <a href="#No-Root-Password">I don’t have the <em>root</em> password</a>) +and install <small>WINDOW MAKER</small> in your system: +<div class="example"> +<pre class="example">su root +make install +</pre></div> + +</li></ol> + + +<a name="User-specific-configuration"></a> +<h3 class="section">2.3 User specific configuration</h3> + +<p>These instructions do not need to be followed when upgrading <small>WINDOW MAKER</small> +from an older version, unless stated differently in the <cite>NEWS</cite> file. +</p> +<p>Every user on your system that wishes to run <small>WINDOW MAKER</small> must do the +following: +</p> +<ol> +<li> Install Window Maker configuration files in your home directory. +Type: +<div class="example"> +<pre class="example">wmaker.inst +</pre></div> + +<p><code>wmaker.inst</code> will install <small>WINDOW MAKER</small> configuration files and will +setup X to automatically launch <small>WINDOW MAKER</small> at startup. +</p> +</li></ol> + +<p>That’s it! +</p> +<p>You can type <code>man wmaker</code> to get some general help for configuration +and other stuff. +</p> +<p>Read the <cite>User Guide</cite> for a more in-depth explanation of <small>WINDOW MAKER</small>. +</p> +<p>You might want to take a look at the <cite>FAQ</cite> too. +</p> + +<a name="Locales_002fInternationalisation"></a> +<h3 class="section">2.4 Locales/Internationalisation</h3> + +<p><small>WINDOW MAKER</small> has national language support. The procedure to enable national +language support is described in the dedicated +<a href="wmaker_i18n.html#Enabling-Languages-support">Enabling Languages support</a> in <cite><samp>README.i18n</samp></cite>. +</p> + +<a name="Configure-Options-1"></a> +<h3 class="section">2.5 Configure Options</h3> +<a name="Configure-Options"></a> +<p>These options can be passed to the configure script to enable/disable +some <small>WINDOW MAKER</small> features. Example: +</p><div class="example"> +<pre class="example">./configure --enable-modelock --disable-gif +</pre></div> +<p>will configure <small>WINDOW MAKER</small> with <em>modelock</em> supported and disable <em>gif</em> support. +Normally, you won’t need any of them. +</p> +<p>To get the list of all options, run <code>./configure --help</code> +</p> + +<a name="Installation-Directory"></a> +<h4 class="subsection">2.5.1 Installation Directory</h4> + +<p>The default installation path will be in the <samp>/usr/local</samp> hierarchy; +a number of option can customise this: +</p> +<dl compact="compact"> +<dt><samp>--prefix=<i>PREFIX</i></samp></dt> +<dt><samp>--exec-prefix=<i>EPREFIX</i></samp></dt> +<dt><samp>--bindir=<i>DIR</i></samp></dt> +<dt><samp>--sysconfdir=<i>DIR</i></samp></dt> +<dt><samp>--libdir=<i>DIR</i></samp></dt> +<dt><samp>--includedir=<i>DIR</i></samp></dt> +<dt><samp>--datarootdir=<i>DIR</i></samp></dt> +<dt><samp>--datadir=<i>DIR</i></samp></dt> +<dt><samp>--localedir=<i>DIR</i></samp></dt> +<dt><samp>--mandir=<i>DIR</i></samp></dt> +<dd><p>Standard options from <em>autoconf</em> to define target paths, +you probably want to read <a href="INSTALL.html#Installation-Names">Installation Names</a> in <cite><samp>INSTALL</samp></cite>. +</p> +</dd> +<dt><samp>--sbindir=<i>DIR</i></samp></dt> +<dt><samp>--libexecdir=<i>DIR</i></samp></dt> +<dt><samp>--sharedstatedir=<i>DIR</i></samp></dt> +<dt><samp>--localstatedir=<i>DIR</i></samp></dt> +<dt><samp>--oldincludedir=<i>DIR</i></samp></dt> +<dt><samp>--infodir=<i>DIR</i></samp></dt> +<dt><samp>--docdir=<i>DIR</i></samp></dt> +<dt><samp>--htmldir=<i>DIR</i></samp></dt> +<dt><samp>--dvidir=<i>DIR</i></samp></dt> +<dt><samp>--pdfdir=<i>DIR</i></samp></dt> +<dt><samp>--psdir=<i>DIR</i></samp></dt> +<dd><p>More standard options from <em>autoconf</em>, today these are not used by <small>WINDOW MAKER</small>; +they are provided automatically by <em>autoconf</em> for consistency. +</p> +</dd> +<dt><samp>--with-gnustepdir=<i>PATH</i></samp></dt> +<dd><p>Specific to <small>WINDOW MAKER</small>, defines the directory where <samp>WPrefs.app</samp> will be installed, +if you want to install it like a <em>GNUstep</em> applications. +If not specified, it will be installed like usual programs. +</p> +</dd> +<dt><samp>--with-pixmapdir=<i>DIR</i></samp></dt> +<dd><p>Specific to <small>WINDOW MAKER</small>, this option defines an additional path where <em>pixmaps</em> will be +searched. Nothing will be installed there; the default path taken is <samp><em>DATADIR</em>/pixmaps</samp>, +where <var>DATADIR</var> is the path defined from <samp>--datadir</samp>. +</p> +</dd> +<dt><samp>--with-defsdatadir=<i>DIR</i></samp></dt> +<dd><p>Specific to <small>WINDOW MAKER</small>, defines the directory where system configuration +files, e.g., <samp>WindowMaker</samp>, <samp>WMRootMenu</samp>, etc., are installed. The +default value is <samp><em>SYSCONFDIR</em>/WindowMaker</samp>, where <var>SYSCONFDIR</var> is +the path defined from <samp>--sysconfdir</samp>. +</p> +</dd> +</dl> + + +<a name="External-Libraries"></a> +<h4 class="subsection">2.5.2 External Libraries</h4> + +<p>Unless specifically written, <code>configure</code> will try to detect automatically for the libraries; +if you explicitly provide <samp>--enable-<em>FEATURE</em></samp> then it will break with an error message +if the library cannot be linked; +if you specify <samp>--disable-<em>FEATURE</em></samp> then it will not try to search for the library. +You can find more information about the libraries in the +<a href="#Optional-Dependencies">Optional Dependencies</a>. +</p> +<dl compact="compact"> +<dt><samp>--enable-boehm-gc</samp></dt> +<dd><p>Never enabled by default, use Boehm GC instead of the default <em>libc</em> <code>malloc()</code> +</p> +</dd> +<dt><samp>--disable-gif</samp></dt> +<dd><p>Disable GIF support in <em>WRaster</em> library; when enabled use <samp>libgif</samp> or <samp>libungif</samp>. +</p> +</dd> +<dt><samp>--disable-jpeg</samp></dt> +<dd><p>Disable JPEG support in <em>WRaster</em> library; when enabled use <samp>libjpeg</samp>. +</p> +</dd> +<dt><samp>--without-libbsd</samp></dt> +<dd><p>Refuse use of the <samp>libbsd</samp> compatibility library in <em>WINGs</em> utility library, +even if your system provides it. +</p> +</dd> +<dt><samp>--disable-magick</samp></dt> +<dd><p>Disable <em>ImageMagick’s MagickWand</em> support in <em>WRaster</em>, used to support for image formats. +</p> +</dd> +<dt><samp>--enable-pango</samp></dt> +<dd><p>Disabled by default, enable <em>Pango</em> text layout support in <em>WINGs</em>. +</p> +</dd> +<dt><samp>--disable-png</samp></dt> +<dd><p>Disable PNG support in <em>WRaster</em>; when enabled use <samp>libpng</samp>. +</p> +</dd> +<dt><samp>--disable-tiff</samp></dt> +<dd><p>Disable TIFF support in <em>WRaster</em>. when enabled use <samp>libtiff</samp>. +</p> +</dd> +<dt><samp>--disable-webp</samp></dt> +<dd><p>Disable WEBP support in <em>WRaster</em>. when enabled use <samp>libwebp</samp>. +</p> +</dd> +<dt><samp>--disable-xpm</samp></dt> +<dd><p>Disable use of <samp>libXpm</samp> for XPM support in <em>WRaster</em>, use internal code instead. +</p> +</dd> +</dl> + +<p>The following options can be used to tell <code>configure</code> about extra paths that needs to be +used when compiling against libraries: +</p> +<dl compact="compact"> +<dt><samp>--with-libs-from</samp></dt> +<dd><p>specify additional paths for libraries to be searched. +The <samp>-L</samp> flag must precede each path, like: +</p><div class="example"> +<pre class="example">--with-libs-from="-L/opt/libs -L/usr/local/lib" +</pre></div> + +</dd> +<dt><samp>--with-incs-from</samp></dt> +<dd><p>specify additional paths for header files to be searched. +The <samp>-I</samp> flag must precede each paths, like: +</p><div class="example"> +<pre class="example">--with-incs-from="-I/opt/headers -I/usr/local/include" +</pre></div> + +</dd> +</dl> + + +<a name="X11-and-Extensions"></a> +<h4 class="subsection">2.5.3 X11 and Extensions</h4> + +<p><code>configure</code> will try to detect automatically the compilation paths for X11 headers and +libraries, and which X Extensions support can be enabled. +if you explicitly provide <samp>--enable-<em>FEATURE</em></samp> then it will break with an error message +if the extension cannot be used; +if you specify <samp>--disable-<em>FEATURE</em></samp> then it will not check for the extension. +</p> +<dl compact="compact"> +<dt><samp>--x-includes=<i>DIR</i></samp></dt> +<dt><samp>--x-libraries=<i>DIR</i></samp></dt> +<dd><p><em>Autoconf</em>’s option to specify search paths for <em>X11</em>, +for the case were it would not have been able to detect it automatically. +</p> +</dd> +<dt><samp>--disable-xlocale</samp></dt> +<dd><p>If you activated support for Native Languages, then <em>X11</em> may use a hack to also configure its +locale support when the program configure the locale for itself. +The <code>configure</code> script detects if the <em>Xlib</em> supports this or not; +this options explicitly disable this initialisation mechanism. +</p> +</dd> +<dt><samp>--enable-modelock</samp></dt> +<dd><p>XKB language status lock support. If you don’t know what it is you probably don’t need it. +The default is to not enable it. +</p> +</dd> +<dt><samp>--disable-shm</samp></dt> +<dd><p>Disable use of the <em>MIT shared memory</em> extension. +This will slow down texture generation a little bit, but in some cases it seems to be necessary due +to a bug that manifests as messed icons and textures. +</p> +</dd> +<dt><samp>--disable-shape</samp></dt> +<dd><p>Disables support for <em>shaped</em> windows (for <code>oclock</code>, <code>xeyes</code>, etc.). +</p> +</dd> +<dt><samp>--enable-xinerama</samp></dt> +<dd><p>The <em>Xinerama</em> extension provides information about the different screens connected when +running a multi-head setting (if you plug more than one monitor). +</p> +</dd> +<dt><samp>--enable-randr</samp></dt> +<dd><p>The <em>RandR</em> extension provides feedback when changing the multiple-monitor configuration in X11 +and allows to re-configure how screens are organised. +</p> +<p>At current time, it is not enabled by default because it is NOT recommended (buggy); +<small>WINDOW MAKER</small> only restart itself when the configuration change, to take into account the new +screen size. +</p> +</dd> +</dl> + + +<a name="Feature-Selection"></a> +<h4 class="subsection">2.5.4 Feature Selection</h4> + +<dl compact="compact"> +<dt><samp>--disable-animations</samp></dt> +<dd><p>Disable animations permanently, by not compiling the corresponding code into <small>WINDOW MAKER</small>. +When enabled (the default), you still have a run-time configuration option in <em>WPrefs</em>. +</p> +</dd> +<dt><samp>--disable-mwm-hints</samp></dt> +<dd><p>Disable support for Motif’s MWM Window Manager hints. +These attributes were introduced by the Motif toolkit to ask for special window appearance requests. +Nowadays this is covered by the NetWM/EWMH specification, but there are still applications that rely on MWM Hints. +</p> +</dd> +<dt><samp>--enable-wmreplace</samp></dt> +<dd><p>Add support for the <em>ICCCM</em> protocol for cooperative window manager replacement. +This feature is disabled by default because you probably don’t need to switch seamlessly the window manager; +if you are making a package for a distribution you’d probably want to enable this because it allows users to give +a try to different window managers without restarting everything for an extra cost that is not really big. +</p> +</dd> +<dt><samp>--disable-xdnd</samp></dt> +<dd><p>Disable support for dragging and dropping files on the dock, which launches a user-specified command +with that file. +Starting from version 0.65.6 this feature is enabled by default. +</p> +</dd> +<dt><samp>--enable-ld-version-script</samp></dt> +<dd><p>This feature is auto-detected, and you should not use this option. +When compiling a library (<samp>wrlib</samp>, ...), <em>gcc</em> has the possibility to filter the list of +functions that will be visible, to keep only the public API, because it helps running programs +faster. +</p> +<p>The <code>configure</code> script checks if this feature is available; +if you specify this option it will not check anymore and blindly trust you that it is supposed to +work, which is not a good idea as you may encounter problems later when compiling. +</p> +</dd> +<dt><samp>--enable-usermenu</samp></dt> +<dd><p>This feature, disabled by default, allows to add a user-defined custom menu to applications; +when choosing an entry of the menu it will send the key combination defined by the user to that +application. See <a href="NEWS.html#Application-User-Menu">Application User Menu</a> in <cite><samp>NEWS</samp></cite> for more information. +</p> +</dd> +<dt><samp>--with-menu-textdomain=<i>DOMAIN</i></samp></dt> +<dd><p>Selection of the domain used for translation of the menus; +see <a href="wmaker_i18n.html#Translations-for-Menus">Translations for Menus</a> in <cite><samp>README.i18n</samp></cite>. +</p> +</dd> +</dl> + + +<a name="Developer-Stuff"></a> +<h4 class="subsection">2.5.5 Developer Stuff</h4> + +<p>These options are disabled by default: +</p> +<dl compact="compact"> +<dt><samp>--config-cache</samp></dt> +<dd><p>If you intend to re-run the <code>configure</code> script often, you probably want to include this +option, so it will save and re-use the status of what have been detected in the file +<samp>config.cache</samp>. +</p> +</dd> +<dt><samp>--enable-debug</samp></dt> +<dd><p>Enable debugging features (debug symbol, some extra verbosity and checks) and add a number of +check flags (warnings) for the compiler (in <em>gcc</em> fashion). +</p> +</dd> +<dt><samp>--enable-lcov=<i>DIRECTORY</i></samp></dt> +<dd><p>Enable generation of code coverage and profiling data; +if the <samp><i>DIRECTORY</i></samp> is not specified, use <samp>coverage-report</samp>. +</p> +<p>This option was meant to be use with <em>gcc</em>; +it was not used recently so it is probable that is does not work anymore; +the <code>configure</code> script will not even check that your compiling environment has the +appropriate requirements and works with this. +Despite all this, if you think there’s a use for it and feel in the mood to help, do not hesitate to +discuss on the mailing list <a href="mailto:wmaker-dev@lists.windowmaker.org">wmaker-dev@lists.windowmaker.org</a> to get it working. +</p> +</dd> +</dl> + + +<hr> +<a name="Miscellaneous"></a> +<a name="Miscellaneous-1"></a> +<h2 class="chapter">3 Miscellaneous</h2> + +<a name="Platform-Specific-Notes"></a> +<h3 class="section">3.1 Platform Specific Notes</h3> + +<ul class="no-bullet"> +<li>- <em>GNU/Linux</em> in general + +<p>Make sure you have <samp>/usr/local/lib</samp> in <samp>/etc/ld.so.conf</samp> and that you +run <code>ldconfig</code> after installing. +Uninstall any packaged version of <small>WINDOW MAKER</small> before installing a new version. +</p> +</li><li>- <em>RedHat GNU/Linux</em> + +<p><em>RedHat</em> systems have several annoying problems. +If you use it, be sure to follow the steps below or <small>WINDOW MAKER</small> will not work: +</p> +<ul> +<li> if you installed the <small>WINDOW MAKER</small> that comes with <em>RedHat</em>, uninstall it before upgrading; + +</li><li> make sure you have <samp>/usr/local/bin</samp> in your <code>PATH</code> environment variable; + +</li><li> make sure you have <samp>/usr/local/lib</samp> in <samp>/etc/ld.so.conf</samp> before running <code>ldconfig</code>; +</li></ul> + +</li><li>- <em>PowerPC MkLinux</em> + +<p>You will need to have the latest version of <em>Xpmac</em>. +Older versions seem to have bugs that cause the system to hang. +</p> +</li><li>- <em>Debian GNU/Linux</em> + +<p>If you want <em>JPEG</em> and <em>TIFF</em> support, make sure you have <samp>libtiff-dev</samp> +and <samp>libjpeg-dev</samp> installed. +</p> +</li><li>- <em>SuSE GNU/Linux</em> + +<p>If you installed the <small>WINDOW MAKER</small> package from <em>SuSE</em>, uninstall it before trying to +compile <em>Window Maker</em> or you might have problems. +</p> +</li><li>- <em>MetroX</em> (unknown version) + +<p><em>MetroX</em> has a bug that corrupts pixmaps that are set as window backgrounds. +If you use <em>MetroX</em> and have weird problems with textures, do not use textures in title bars. +Or use a different X server. +</p> +</li></ul> + + +<a name="I-don_0027t-have-the-root-password-_003a_0028"></a> +<h3 class="section">3.2 I don’t have the <em>root</em> password :(</h3> +<a name="No-Root-Password"></a> +<p>If you can’t get superuser privileges (can’t be <i>root</i>) you can install <em>Window Maker</em> in your own +home directory. +For that, supply the <samp>--prefix</samp> option when running configure in step 2 of building +<small>WINDOW MAKER</small>. +You will also need to supply the <samp>--with-gnustepdir</samp> option, to specify the path for +<code>WPrefs.app</code>. +Example: +</p> +<div class="example"> +<pre class="example">./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications +</pre></div> + +<p>Then make <samp>/home/jshmoe/bin</samp> be included in your search <code>PATH</code>, add <samp>/home/jshmoe/lib</samp> +to your <code>LD_LIBRARY_PATH</code> environment variable and run <code>bin/wmaker.inst</code> +</p> +<p>Of course, <samp>/home/jshmoe</samp> is supposed to be replaced by your actual home directory path. +</p> + +<a name="Upgrading"></a> +<h3 class="section">3.3 Upgrading</h3> + +<p>If you are upgrading from an older version of <small>WINDOW MAKER</small>: +</p> +<ol> +<li> Configure and build <small>WINDOW MAKER</small> as always +</li><li> Install <small>WINDOW MAKER</small> (but do not run <code>wmaker.inst</code>) +</li><li> Read the <cite>NEWS</cite> file and update your configuration files if necessary. +</li></ol> + + +<hr> +<a name="Troubleshooting"></a> +<a name="Troubleshooting-1"></a> +<h2 class="chapter">4 Troubleshooting</h2> + +<p>When you have some trouble during configuration (while running configure), like not being able to +use a graphic format library you think you have installed, look at the <samp>config.log</samp> file for +clues of the problem. +</p> + +<a name="Error-with-loading-fonts_002c-even-if-they-exist"></a> +<h3 class="section">4.1 Error with loading fonts, even if they exist</h3> + +<p>This is probably a problem with NLS (Native Language Support), you probably want to look at the +<a href="wmaker_i18n.html#Troubleshooting">Troubleshooting</a> in <cite><samp>README.i18n</samp></cite> +or try rebuilding without NLS support, which is done with: +</p><div class="example"> +<pre class="example">./configure LINGUAS="" +</pre></div> + + +<a name="configure-doesn_0027t-detect-libtiff_002c-or-other-graphic-libraries"></a> +<h3 class="section">4.2 configure doesn’t detect <em>libtiff</em>, or other graphic libraries</h3> + +<p>Delete <samp>config.cache</samp>, then rerun configure adding the following options to <code>configure</code> +(among the other options you use): +</p><div class="example"> +<pre class="example">--with-libs-from="-L/usr/local/lib" +--with-incs-from="-I/usr/local/include -I/usr/local/include/tiff" +</pre></div> +<p>Put the paths where your graphic libs and their corresponding header files are located. +You can put multiple paths in any of these options, as the example of <samp>--with-incs-from</samp> shows. +Just put a space between them. +</p> + +<a name="configure-doesn_0027t-detect-libXpm"></a> +<h3 class="section">4.3 configure doesn’t detect <em>libXpm</em></h3> + +<p>Check if you have a symbolic link from <samp>libXpm.so.4.9</samp> to <samp>libXpm.so</samp> +</p> + +<a name="Segmentation-fault-on-startup"></a> +<h3 class="section">4.4 Segmentation fault on startup</h3> + +<ul> +<li> Check if the version of <em>libXPM</em> you have is at least 4.7 + +</li><li> Check if you have an updated version of <samp>~/GNUstep/Defaults/WindowMaker</samp> +</li></ul> + +<p>If you’re not sure, try renaming <samp>~/GNUstep</samp> to <samp>~/GNUtmp</samp> +and then run <code>wmaker.inst</code> +</p> + +<a name="g_t_0022_002e_002e_002e_003a-your-machine-is-misconfigured_002e-gethostname_0028_0029-returned-_0028none_0029_0022"></a> +<h3 class="section">4.5 "...: your machine is misconfigured. gethostname() returned (none)"</h3> + +<p>the host name of your machine is set to something invalid, that starts with a parenthesis. +Do a <code>man hostname</code> for info about how to set it. +</p> + +<a name="The-root-menu-contains-only-2-entries_002e-_0028_0022XTerm_0022-and-_0022Exit_002e_002e_002e_0022_0029"></a> +<h3 class="section">4.6 The root menu contains only 2 entries. ("XTerm" and "Exit...")</h3> + +<p><small>WINDOW MAKER</small> could not read your menu definition file. +You should check the output of <code>wmaker</code> for an error, it may be visible in the console or in the +<samp>.xsession-errors</samp> file. +</p> + +<hr> + + + +</body> +</html> -- 2.7.4 -- To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.