1 2 3 4 5 6 Window Maker Compilation and Installation 7 8 9 ~ A guide to configure, compile and install ~ 10 ~ Window Maker from sources. ~ 11 12 -- The Window Maker Team -- 13 14 15~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16 17This manual is for Window Maker window manager, version 0.95.9. 18 19Copyright (c) 2015 The Window Maker Team. 20 21 This program is free software; you can redistribute it and/or modify 22 it under the terms of the GNU General Public License as published by 23 the Free Software Foundation; either version 2 of the License, or 24 (at your option) any later version. 25 26 This program is distributed in the hope that it will be useful, but 27 WITHOUT ANY WARRANTY; without even the implied warranty of 28 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 29 General Public License for more details. 30 31 You should have received a copy of the GNU General Public License 32 along with this program, see file COPYING for details. 33 34 35 Published by The Window Maker team on 15 February 2019. 36 37 38~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 40 41 1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . 73 42 1.1 Supported Platforms . . . . . . . . . . . . . . . . . . . 77 43 1.2 Software Dependencies . . . . . . . . . . . . . . . . . . 88 44 1.3 Special Dependencies . . . . . . . . . . . . . . . . . . 122 45 1.4 Optional Dependencies . . . . . . . . . . . . . . . . . . 134 46 47 2 Building Window Maker . . . . . . . . . . . . . . . . . . . . 223 48 2.1 Getting the Sources . . . . . . . . . . . . . . . . . . . 227 49 2.2 Build and Install . . . . . . . . . . . . . . . . . . . . 248 50 2.3 User specific configuration . . . . . . . . . . . . . . . 298 51 2.4 Locales/Internationalisation . . . . . . . . . . . . . . 324 52 2.5 Configure Options . . . . . . . . . . . . . . . . . . . . 332 53 2.5.1 Installation Directory . . . . . . . . . . . . . . . 346 54 2.5.2 External Libraries . . . . . . . . . . . . . . . . . 397 55 2.5.3 X11 and Extensions . . . . . . . . . . . . . . . . . 458 56 2.5.4 Feature Selection . . . . . . . . . . . . . . . . . . 506 57 2.5.5 Developer Stuff . . . . . . . . . . . . . . . . . . . 555 58 59 3 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . 583 60 3.1 Platform Specific Notes . . . . . . . . . . . . . . . . . 587 61 3.2 I don't have the root password :( . . . . . . . . . . . . 632 62 3.3 Upgrading . . . . . . . . . . . . . . . . . . . . . . . . 651 63 64 4 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . 661 65 4.1 Error with loading fonts, even if they exist . . . . . . 669 66 4.2 configure doesn't detect libtiff, or other graphic librari 679 67 4.3 configure doesn't detect libXpm . . . . . . . . . . . . . 693 68 4.4 Segmentation fault on startup . . . . . . . . . . . . . . 699 69 4.5 "...: your machine is misconfigured. gethostname() returne 711 70 4.6 The root menu contains only 2 entries. ("XTerm" and "Exit. 718 71 72 731 Prerequisites 74*************** 75 76 771.1 Supported Platforms 78======================= 79 80 - Intel GNU/Linux Systems in general, ix86 and x86_64 but other 81 architectures should work 82 - BSD systems 83 - Solaris, at least on release 10 and 11 84 85 Patches to make it work on other platforms are welcome. 86 87 881.2 Software Dependencies 89========================= 90 91The following software is required to use Window Maker: 92 93 - X11R6.x 94 95 Window Maker can be compiled in older versions of X, like X11R5 96 (Solaris) or X11R4 (OpenWindows) but it will not work 100% correctly. 97 In such servers there will not be application icons and you'll have 98 trouble using the dock. Upgrading the client libraries (Xlib, Xt, etc.) 99 will help if you can't upgrade the server. 100 101The following is required to build Window Maker: 102 103 - Basic obvious stuff 104 105 * gcc (or some other ANSI C compiler, supporting some C99 extensions) 106 * glibc development files (usually "glibc-devel" in Linux 107 distributions) 108 * X development files ("XFree86-devel" or something similar) 109 110 - Xft2 and its dependencies 111 112 Dependencies include freetype2 and fontconfig. You will also need the 113 development files for them ("xft2-devel"). Sources are available at: 114 http://www.freedesktop.org/wiki/Software/Xft/ 115 116*Note*: Window Maker is known to compile with gcc and clang; the code source 117is mostly ANSI C (also known as C89 and C90) but is uses very few of the C99 118novelties; it also uses a few attributes introduced in the C11 standard but 119those are detected automatically, so most compilers should work. 120 121 1221.3 Special Dependencies 123======================== 124 125If you want to compile using the sources from the git repository instead of 126the distribution package, you will also need: 127 128 * git 129 * autoconf 2.69 130 * automake 1.12 131 * libtool 1.4.2 132 133 1341.4 Optional Dependencies 135========================= 136 137These libraries are not required to make Window Maker work, but they are 138supported in case you want to use them. Version numbers are indicative, but 139other versions might work too. 140 141 - libXPM 4.7 or newer 142 143 Older versions may not work! 144 145 Available from http://xlibs.freedesktop.org/release/ 146 147 There is built-in support for XPM files, but it will not load images in 148 some uncommon encodings. 149 150 - libpng 0.96 or newer and zlib 151 152 For PNG image support, http://www.libpng.org/pub/png/libpng.html 153 154 - libtiff 3.4 or newer 155 156 For TIFF image support, http://www.libtiff.org/ 157 158 - libjpeg 6.0.1 or newer 159 160 For JPEG image support, http://www.ijg.org/ 161 162 Note that if you don't have it, 'configure' will issue a big warning in 163 the end, this is because JPEG images are often used in themes and for 164 background images so you probably want this format supported. 165 166 - libgif 2.2 or libungif 167 168 For GIF image support, http://giflib.sourceforge.net/ 169 170 - WebP 0.4.1 or newer 171 172 The reference library from Google for their image format, 173 https://developers.google.com/speed/webp/download 174 175 - GNU xgettext 176 177 If you want to use translated messages, you will need GNU gettext. 178 Other versions of gettext are not compatible and will not work. Get the 179 GNU version from http://www.gnu.org/software/gettext/ 180 181 - Pango 1.36.8 or newer 182 183 This library can be used by the WINGs toolkit to improve support for 184 UTF-8 and for languages written in right-to-left direction, in some 185 widgets. You have to explicitly ask for its support through (see 186 section [Configure Options], at line 332). You can get it from 187 http://www.pango.org/Download 188 189 - libbsd 190 191 This library can be used by the WINGs utility library to make use of 192 'strlcat' and 'strlcpy' instead of using built-in functions if your 193 system does not provide them in its core libc. You should let Window 194 Maker's 'configure' detect this for you. You can get it from 195 http://libbsd.freedesktop.org/wiki/ 196 197 - Inotify 198 199 If you have Linux's inotify support, Window Maker will use it to check 200 for configuration updates instead of polling regularly the file. The 201 needed header comes with the kernel, typical packages names include: 202 203 * "kernel-headers" for Slackware and Fedora 204 * "linux-userspace-headers" for Mageia 205 * "linux-libc-dev" for Debian and Ubuntu 206 * "linux-glibc-devel" for OpenSuSE 207 208 - MagickWand 6.8.9-9 or newer 209 210 If found, then the library WRaster can use the ImageMagick library to 211 let Window Maker support more image formats, like SVG, BMP, TGA, ... 212 You can get it from http://www.imagemagick.org/ 213 214 - Boehm GC 215 216 This library can be used by the WINGs utility toolkit to use a 217 Boehm-Demers-Weiser Garbage Collector instead of the traditional 218 'malloc'/'free' functions from the libc. You have to explicitly ask for 219 its support though (see section [Configure Options], at line 332). 220 You can get it from http://www.hboehm.info/gc/ 221 222 2232 Building Window Maker 224*********************** 225 226 2272.1 Getting the Sources 228======================= 229 230The latest version of Window Maker (-crm) can be downloaded from 231http://www.windowmaker.org/ 232 233 Alternatively, the development branch, called #next is in the git 234repository at http://repo.or.cz/w/wmaker-crm.git 235 236 If you want to use the git versions, you can get it with: 237 238 git clone -b next git://repo.or.cz/wmaker-crm.git 239 240then, assuming you have the dependencies listed in section [Special 241Dependencies], at line 122, you have to type: 242 243 ./autogen.sh 244 245to generate the configuration script. 246 247 2482.2 Build and Install 249===================== 250 251For a quick start, type the following in your shell prompt: 252 253 ./configure 254 make 255 256then, login as root and type: 257 258 make install 259 ldconfig 260 261or if you want to strip the debugging symbols from the binaries to make them 262smaller, you can type instead: 263 264 make install-strip 265 ldconfig 266 267This will build and install Window Maker with default parameters. 268 269 If you want to customise some compile-time options, you can do the 270following: 271 272 1. (optional) Look at the section [Configure Options], at line 332, for 273 the options available. Also run: 274 275 ./configure --help 276 277 to get a complete list of options that are available. 278 279 2. Run configure with the options you want. For example, if you want to 280 use the '--enable-modelock' option, type: 281 282 ./configure --enable-modelock 283 284 3. (optional) Edit "src/wconfig.h" with your favourite text editor and 285 browse through it for some options you might want to change. 286 287 4. Compile. Just type: 288 289 make 290 291 5. Login as root (if you can't do that, read the section [I don't have the 292 root password], at line 632) and install Window Maker in your system: 293 294 su root 295 make install 296 297 2982.3 User specific configuration 299=============================== 300 301These instructions do not need to be followed when upgrading Window Maker 302from an older version, unless stated differently in the NEWS file. 303 304 Every user on your system that wishes to run Window Maker must do the 305following: 306 307 1. Install Window Maker configuration files in your home directory. Type: 308 309 wmaker.inst 310 311 'wmaker.inst' will install Window Maker configuration files and will 312 setup X to automatically launch Window Maker at startup. 313 314 That's it! 315 316 You can type 'man wmaker' to get some general help for configuration and 317other stuff. 318 319 Read the User Guide for a more in-depth explanation of Window Maker. 320 321 You might want to take a look at the FAQ too. 322 323 3242.4 Locales/Internationalisation 325================================ 326 327Window Maker has national language support. The procedure to enable national 328language support is described in the dedicated section [Enabling Languages 329support] in "README.i18n". 330 331 3322.5 Configure Options 333===================== 334 335These options can be passed to the configure script to enable/disable some 336Window Maker features. Example: 337 338 ./configure --enable-modelock --disable-gif 339 340 will configure Window Maker with modelock supported and disable gif 341support. Normally, you won't need any of them. 342 343 To get the list of all options, run './configure --help' 344 345 3462.5.1 Installation Directory 347---------------------------- 348 349The default installation path will be in the "/usr/local" hierarchy; a 350number of option can customise this: 351 352'--prefix=_PREFIX_' 353'--exec-prefix=_EPREFIX_' 354'--bindir=_DIR_' 355'--sysconfdir=_DIR_' 356'--libdir=_DIR_' 357'--includedir=_DIR_' 358'--datarootdir=_DIR_' 359'--datadir=_DIR_' 360'--localedir=_DIR_' 361'--mandir=_DIR_' 362 Standard options from autoconf to define target paths, you probably 363 want to read section [Installation Names] in "INSTALL". 364 365'--sbindir=_DIR_' 366'--libexecdir=_DIR_' 367'--sharedstatedir=_DIR_' 368'--localstatedir=_DIR_' 369'--oldincludedir=_DIR_' 370'--infodir=_DIR_' 371'--docdir=_DIR_' 372'--htmldir=_DIR_' 373'--dvidir=_DIR_' 374'--pdfdir=_DIR_' 375'--psdir=_DIR_' 376 More standard options from autoconf, today these are not used by Window 377 Maker; they are provided automatically by autoconf for consistency. 378 379'--with-gnustepdir=_PATH_' 380 Specific to Window Maker, defines the directory where "WPrefs.app" will 381 be installed, if you want to install it like a GNUstep applications. If 382 not specified, it will be installed like usual programs. 383 384'--with-pixmapdir=_DIR_' 385 Specific to Window Maker, this option defines an additional path where 386 pixmaps will be searched. Nothing will be installed there; the default 387 path taken is "DATADIR/pixmaps", where 'DATADIR' is the path defined 388 from '--datadir'. 389 390'--with-defsdatadir=_DIR_' 391 Specific to Window Maker, defines the directory where system 392 configuration files, e.g., "WindowMaker", "WMRootMenu", etc., are 393 installed. The default value is "SYSCONFDIR/WindowMaker", where 394 'SYSCONFDIR' is the path defined from '--sysconfdir'. 395 396 3972.5.2 External Libraries 398------------------------ 399 400Unless specifically written, 'configure' will try to detect automatically 401for the libraries; if you explicitly provide '--enable-FEATURE' then it will 402break with an error message if the library cannot be linked; if you specify 403'--disable-FEATURE' then it will not try to search for the library. You can 404find more information about the libraries in the section [Optional 405Dependencies], at line 134. 406 407'--enable-boehm-gc' 408 Never enabled by default, use Boehm GC instead of the default libc 409 'malloc()' 410 411'--disable-gif' 412 Disable GIF support in WRaster library; when enabled use "libgif" or 413 "libungif". 414 415'--disable-jpeg' 416 Disable JPEG support in WRaster library; when enabled use "libjpeg". 417 418'--without-libbsd' 419 Refuse use of the "libbsd" compatibility library in WINGs utility 420 library, even if your system provides it. 421 422'--disable-magick' 423 Disable ImageMagick's MagickWand support in WRaster, used to support 424 for image formats. 425 426'--enable-pango' 427 Disabled by default, enable Pango text layout support in WINGs. 428 429'--disable-png' 430 Disable PNG support in WRaster; when enabled use "libpng". 431 432'--disable-tiff' 433 Disable TIFF support in WRaster. when enabled use "libtiff". 434 435'--disable-webp' 436 Disable WEBP support in WRaster. when enabled use "libwebp". 437 438'--disable-xpm' 439 Disable use of "libXpm" for XPM support in WRaster, use internal code 440 instead. 441 442 The following options can be used to tell 'configure' about extra paths 443that needs to be used when compiling against libraries: 444 445'--with-libs-from' 446 specify additional paths for libraries to be searched. The '-L' flag 447 must precede each path, like: 448 449 --with-libs-from="-L/opt/libs -L/usr/local/lib" 450 451'--with-incs-from' 452 specify additional paths for header files to be searched. The '-I' flag 453 must precede each paths, like: 454 455 --with-incs-from="-I/opt/headers -I/usr/local/include" 456 457 4582.5.3 X11 and Extensions 459------------------------ 460 461'configure' will try to detect automatically the compilation paths for X11 462headers and libraries, and which X Extensions support can be enabled. if you 463explicitly provide '--enable-FEATURE' then it will break with an error 464message if the extension cannot be used; if you specify '--disable-FEATURE' 465then it will not check for the extension. 466 467'--x-includes=_DIR_' 468'--x-libraries=_DIR_' 469 Autoconf's option to specify search paths for X11, for the case were it 470 would not have been able to detect it automatically. 471 472'--disable-xlocale' 473 If you activated support for Native Languages, then X11 may use a hack 474 to also configure its locale support when the program configure the 475 locale for itself. The 'configure' script detects if the Xlib supports 476 this or not; this options explicitly disable this initialisation 477 mechanism. 478 479'--enable-modelock' 480 XKB language status lock support. If you don't know what it is you 481 probably don't need it. The default is to not enable it. 482 483'--disable-shm' 484 Disable use of the MIT shared memory extension. This will slow down 485 texture generation a little bit, but in some cases it seems to be 486 necessary due to a bug that manifests as messed icons and textures. 487 488'--disable-shape' 489 Disables support for shaped windows (for 'oclock', 'xeyes', etc.). 490 491'--enable-xinerama' 492 The Xinerama extension provides information about the different screens 493 connected when running a multi-head setting (if you plug more than one 494 monitor). 495 496'--enable-randr' 497 The RandR extension provides feedback when changing the 498 multiple-monitor configuration in X11 and allows to re-configure how 499 screens are organised. 500 501 At current time, it is not enabled by default because it is NOT 502 recommended (buggy); Window Maker only restart itself when the 503 configuration change, to take into account the new screen size. 504 505 5062.5.4 Feature Selection 507----------------------- 508 509'--disable-animations' 510 Disable animations permanently, by not compiling the corresponding code 511 into Window Maker. When enabled (the default), you still have a 512 run-time configuration option in WPrefs. 513 514'--disable-mwm-hints' 515 Disable support for Motif's MWM Window Manager hints. These attributes 516 were introduced by the Motif toolkit to ask for special window 517 appearance requests. Nowadays this is covered by the NetWM/EWMH 518 specification, but there are still applications that rely on MWM Hints. 519 520'--enable-wmreplace' 521 Add support for the ICCCM protocol for cooperative window manager 522 replacement. This feature is disabled by default because you probably 523 don't need to switch seamlessly the window manager; if you are making a 524 package for a distribution you'd probably want to enable this because 525 it allows users to give a try to different window managers without 526 restarting everything for an extra cost that is not really big. 527 528'--disable-xdnd' 529 Disable support for dragging and dropping files on the dock, which 530 launches a user-specified command with that file. Starting from version 531 0.65.6 this feature is enabled by default. 532 533'--enable-ld-version-script' 534 This feature is auto-detected, and you should not use this option. When 535 compiling a library ("wrlib", ...), gcc has the possibility to filter 536 the list of functions that will be visible, to keep only the public 537 API, because it helps running programs faster. 538 539 The 'configure' script checks if this feature is available; if you 540 specify this option it will not check anymore and blindly trust you 541 that it is supposed to work, which is not a good idea as you may 542 encounter problems later when compiling. 543 544'--enable-usermenu' 545 This feature, disabled by default, allows to add a user-defined custom 546 menu to applications; when choosing an entry of the menu it will send 547 the key combination defined by the user to that application. See 548 section [Application User Menu] in "NEWS" for more information. 549 550'--with-menu-textdomain=_DOMAIN_' 551 Selection of the domain used for translation of the menus; see section 552 [Translations for Menus] in "README.i18n". 553 554 5552.5.5 Developer Stuff 556--------------------- 557 558These options are disabled by default: 559 560'--config-cache' 561 If you intend to re-run the 'configure' script often, you probably want 562 to include this option, so it will save and re-use the status of what 563 have been detected in the file "config.cache". 564 565'--enable-debug' 566 Enable debugging features (debug symbol, some extra verbosity and 567 checks) and add a number of check flags (warnings) for the compiler (in 568 gcc fashion). 569 570'--enable-lcov=_DIRECTORY_' 571 Enable generation of code coverage and profiling data; if the 572 "_DIRECTORY_" is not specified, use "coverage-report". 573 574 This option was meant to be use with gcc; it was not used recently so 575 it is probable that is does not work anymore; the 'configure' script 576 will not even check that your compiling environment has the appropriate 577 requirements and works with this. Despite all this, if you think 578 there's a use for it and feel in the mood to help, do not hesitate to 579 discuss on the mailing list <wmaker-dev@googlegroups.com> to get it 580 working. 581 582 5833 Miscellaneous 584*************** 585 586 5873.1 Platform Specific Notes 588=========================== 589 590 - GNU/Linux in general 591 592 Make sure you have "/usr/local/lib" in "/etc/ld.so.conf" and that you 593 run 'ldconfig' after installing. Uninstall any packaged version of 594 Window Maker before installing a new version. 595 596 - RedHat GNU/Linux 597 598 RedHat systems have several annoying problems. If you use it, be sure 599 to follow the steps below or Window Maker will not work: 600 601 * if you installed the Window Maker that comes with RedHat, uninstall 602 it before upgrading; 603 604 * make sure you have "/usr/local/bin" in your 'PATH' environment 605 variable; 606 607 * make sure you have "/usr/local/lib" in "/etc/ld.so.conf" before 608 running 'ldconfig'; 609 610 - PowerPC MkLinux 611 612 You will need to have the latest version of Xpmac. Older versions seem 613 to have bugs that cause the system to hang. 614 615 - Debian GNU/Linux 616 617 If you want JPEG and TIFF support, make sure you have "libtiff-dev" and 618 "libjpeg-dev" installed. 619 620 - SuSE GNU/Linux 621 622 If you installed the Window Maker package from SuSE, uninstall it 623 before trying to compile Window Maker or you might have problems. 624 625 - MetroX (unknown version) 626 627 MetroX has a bug that corrupts pixmaps that are set as window 628 backgrounds. If you use MetroX and have weird problems with textures, 629 do not use textures in title bars. Or use a different X server. 630 631 6323.2 I don't have the root password :( 633===================================== 634 635If you can't get superuser privileges (can't be _root_) you can install 636Window Maker in your own home directory. For that, supply the '--prefix' 637option when running configure in step 2 of building Window Maker. You will 638also need to supply the '--with-gnustepdir' option, to specify the path for 639'WPrefs.app'. Example: 640 641 ./configure --prefix=/home/jshmoe --with-gnustepdir=/home/jshmoe/GNUstep/Applications 642 643 Then make "/home/jshmoe/bin" be included in your search 'PATH', add 644"/home/jshmoe/lib" to your 'LD_LIBRARY_PATH' environment variable and run 645'bin/wmaker.inst' 646 647 Of course, "/home/jshmoe" is supposed to be replaced by your actual home 648directory path. 649 650 6513.3 Upgrading 652============= 653 654If you are upgrading from an older version of Window Maker: 655 656 1. Configure and build Window Maker as always 657 2. Install Window Maker (but do not run 'wmaker.inst') 658 3. Read the NEWS file and update your configuration files if necessary. 659 660 6614 Troubleshooting 662***************** 663 664When you have some trouble during configuration (while running configure), 665like not being able to use a graphic format library you think you have 666installed, look at the "config.log" file for clues of the problem. 667 668 6694.1 Error with loading fonts, even if they exist 670================================================ 671 672This is probably a problem with NLS (Native Language Support), you probably 673want to look at the section [Troubleshooting] in "README.i18n" or try 674rebuilding without NLS support, which is done with: 675 676 ./configure LINGUAS="" 677 678 6794.2 configure doesn't detect libtiff, or other graphic libraries 680================================================================ 681 682Delete "config.cache", then rerun configure adding the following options to 683'configure' (among the other options you use): 684 685 --with-libs-from="-L/usr/local/lib" 686 --with-incs-from="-I/usr/local/include -I/usr/local/include/tiff" 687 688 Put the paths where your graphic libs and their corresponding header 689files are located. You can put multiple paths in any of these options, as 690the example of '--with-incs-from' shows. Just put a space between them. 691 692 6934.3 configure doesn't detect libXpm 694=================================== 695 696Check if you have a symbolic link from "libXpm.so.4.9" to "libXpm.so" 697 698 6994.4 Segmentation fault on startup 700================================= 701 702 * Check if the version of libXPM you have is at least 4.7 703 704 * Check if you have an updated version of 705 "~/GNUstep/Defaults/WindowMaker" 706 707 If you're not sure, try renaming "~/GNUstep" to "~/GNUtmp" and then run 708'wmaker.inst' 709 710 7114.5 "...: your machine is misconfigured. gethostname() returned (none)" 712======================================================================= 713 714the host name of your machine is set to something invalid, that starts with 715a parenthesis. Do a 'man hostname' for info about how to set it. 716 717 7184.6 The root menu contains only 2 entries. ("XTerm" and "Exit...") 719================================================================== 720 721Window Maker could not read your menu definition file. You should check the 722output of 'wmaker' for an error, it may be visible in the console or in the 723".xsession-errors" file. 724