diff options
| author | Eli Zaretskii | 2013-12-23 20:32:58 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2013-12-23 20:32:58 +0200 |
| commit | 631357625658a08121b441d45da697f18780c85e (patch) | |
| tree | 91dcf78ac7886f2da230668536291b035ab3780f | |
| parent | 0db7548bea067f74998d8219d524220d8ff1269b (diff) | |
| download | emacs-631357625658a08121b441d45da697f18780c85e.tar.gz emacs-631357625658a08121b441d45da697f18780c85e.zip | |
Update MS-Windows installation instructions for librsvg.
| -rw-r--r-- | nt/ChangeLog | 6 | ||||
| -rw-r--r-- | nt/INSTALL | 103 | ||||
| -rw-r--r-- | nt/README.W32 | 53 |
3 files changed, 140 insertions, 22 deletions
diff --git a/nt/ChangeLog b/nt/ChangeLog index 8c1e928036c..feaf2cd7833 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2013-12-23 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * README.W32: | ||
| 4 | * INSTALL: Update instructions for downloading and using image | ||
| 5 | libraries in general, and librsvg in particular. | ||
| 6 | |||
| 1 | 2013-12-16 Eli Zaretskii <eliz@gnu.org> | 7 | 2013-12-16 Eli Zaretskii <eliz@gnu.org> |
| 2 | 8 | ||
| 3 | * emacs-x64.manifest: | 9 | * emacs-x64.manifest: |
diff --git a/nt/INSTALL b/nt/INSTALL index 434327b66cc..0aca9b8980f 100644 --- a/nt/INSTALL +++ b/nt/INSTALL | |||
| @@ -534,7 +534,11 @@ Windows 9X as well). | |||
| 534 | For PNG images, we recommend to use versions 1.4.x and later of | 534 | For PNG images, we recommend to use versions 1.4.x and later of |
| 535 | libpng, because previous versions had security issues. You can find | 535 | libpng, because previous versions had security issues. You can find |
| 536 | precompiled libraries and headers on the GTK download page for | 536 | precompiled libraries and headers on the GTK download page for |
| 537 | Windows (http://www.gtk.org/download/win32.php). | 537 | Windows (http://www.gtk.org/download/win32.php for 32-bit builds and |
| 538 | http://www.gtk.org/download/win64.php for 64-bit builds). The | ||
| 539 | ezwinports site, http://sourceforge.net/projects/ezwinports/files/ | ||
| 540 | also offers PNG (as well as other image libraries), which are | ||
| 541 | usually newer. | ||
| 538 | 542 | ||
| 539 | Versions 1.4.0 and later of libpng are binary incompatible with | 543 | Versions 1.4.0 and later of libpng are binary incompatible with |
| 540 | earlier versions, so Emacs will only look for libpng libraries which | 544 | earlier versions, so Emacs will only look for libpng libraries which |
| @@ -563,11 +567,98 @@ Windows 9X as well). | |||
| 563 | libraries that are known to be compatible with the version given by | 567 | libraries that are known to be compatible with the version given by |
| 564 | `libgif-version'. | 568 | `libgif-version'. |
| 565 | 569 | ||
| 566 | Binaries for the other image libraries can be found at the GnuWin32 | 570 | Pre-built versions of librsvg and its dependencies can be found in |
| 567 | project. Note specifically that, due to some packaging snafus in | 571 | one of these places: |
| 568 | the GnuWin32-supplied image libraries, you will need to download | 572 | |
| 569 | _source_ packages for some of the libraries in order to get the | 573 | 1. http://sourceforge.net/projects/ezwinports/files/ |
| 570 | header files necessary for building Emacs with image support. | 574 | |
| 575 | This site includes a minimal (as much as possible for librsvg) | ||
| 576 | build of the library and its dependencies; it is also more | ||
| 577 | up-to-date with the latest upstream versions. However, it | ||
| 578 | currently only offers 32-bit builds. For building Emacs, you | ||
| 579 | need to download from this site all of the following *-bin.zip | ||
| 580 | archives: | ||
| 581 | |||
| 582 | librsvg, gdk-pixbuf, cairo, glib | ||
| 583 | |||
| 584 | The 'bin' archives on this site include both header files and the | ||
| 585 | libraries needed for building with librsvg and for running Emacs. | ||
| 586 | The librsvg archive includes all the shared libraries needed to | ||
| 587 | run Emacs with SVG support; the other 3 packages are required | ||
| 588 | because the compiler needs to see their header files when | ||
| 589 | building Emacs. | ||
| 590 | |||
| 591 | 2. GTK project download site for Windows (see above for 2 URLs, | ||
| 592 | either for 32-bit builds or 64-bit builds) | ||
| 593 | |||
| 594 | This is the official Windows download site of the GTK project. | ||
| 595 | Its builds of librsvg are fatter, but are currently the only | ||
| 596 | alternative for 64-bit builds. The easiest way to obtain the | ||
| 597 | dependencies required for building from this site is to download | ||
| 598 | a pre-bundled GTK+ development environment for Windows. If you | ||
| 599 | would nevertheless like to download only the packages that are | ||
| 600 | strictly required, then, as of the time of this writing, here's | ||
| 601 | the list of GTK+ packages you will need: | ||
| 602 | |||
| 603 | librsvg, pango, freetype-2.4.11, freetype-2.4.2, croco, cairo, | ||
| 604 | glib, gdk-pixbuf, fontconfig, libpng-1.4.x, libpng-1.5.x, | ||
| 605 | libffi, libxml2, zlib | ||
| 606 | |||
| 607 | The GTK download page provides 2 separate archives for each | ||
| 608 | package: a 'bin' (binary) archive with programs and DLLs, and a | ||
| 609 | 'dev' (development) archive with header files, import libraries, | ||
| 610 | and pkg-config files; download and install both archives for each | ||
| 611 | package you need. (Sources of each package are available in a | ||
| 612 | separate, 3rd archive.) | ||
| 613 | |||
| 614 | As you see, some libraries for using this site's librsvg are | ||
| 615 | needed in more than one version -- this is because librsvg and | ||
| 616 | some of its dependencies were linked against different versions | ||
| 617 | of those libraries, and will look only for those DLLs when you | ||
| 618 | invoke SVG function. So there's a bit of "DLL hell" involved | ||
| 619 | here, but at least in theory this should work, as each library | ||
| 620 | will dynamically link only against its dependencies, even if | ||
| 621 | another version of the same library is already loaded. In | ||
| 622 | particular, at least 2 different versions of libpng will have to | ||
| 623 | be installed on your machine. When you install these libpng | ||
| 624 | versions, be sure to keep the header files and the pkg-config | ||
| 625 | files in sync, i.e. install both the 'bin' and 'dev' archives of | ||
| 626 | the same libpng version together. | ||
| 627 | |||
| 628 | To use librsvg at runtime, ensure that librsvg and its dependencies | ||
| 629 | are on your PATH, or in the same directory as the emacs.exe binary. | ||
| 630 | If you are downloading from the ezwinports site, you only need to | ||
| 631 | install a single archive, librsvg-X.Y.Z-w32-bin.zip, which includes | ||
| 632 | all the dependency DLLs. For the GTK project site, download the | ||
| 633 | 'bin' archives for each of the libraries mentioned above. | ||
| 634 | |||
| 635 | If you think you've got all the dependencies and SVG support is | ||
| 636 | still not working, check your PATH for other libraries that shadow | ||
| 637 | the ones you downloaded. Libraries of the same name from different | ||
| 638 | sources may not be compatible, this problem was encountered in the | ||
| 639 | past, e.g., with libcroco from gnome.org. | ||
| 640 | |||
| 641 | If you can see etc/images/splash.svg, then you have managed to get | ||
| 642 | SVG support working. Congratulations for making it through DLL hell | ||
| 643 | to this point. For some SVG images, you'll probably see error | ||
| 644 | messages from Glib about failed assertions, or warnings from Pango | ||
| 645 | about failure to load fonts (installing the missing fonts should fix | ||
| 646 | the latter kind of problems). Problems have been observed in some | ||
| 647 | images that contain text, they seem to be a problem in the Windows | ||
| 648 | port of Pango, or maybe a problem with the way Cairo or librsvg is | ||
| 649 | using it that doesn't show up on other platforms. However, Emacs | ||
| 650 | should not crash due to these issues. If you eventually find the | ||
| 651 | SVG support too unstable to your taste, you can rebuild Emacs | ||
| 652 | without it by specifying the --without-rsvg switch to the configure | ||
| 653 | script. | ||
| 654 | |||
| 655 | Binaries for the other image libraries can be found on the | ||
| 656 | ezwinports site or at the GnuWin32 project (the latter are generally | ||
| 657 | very old, so not recommended). Note specifically that, due to some | ||
| 658 | packaging snafus in the GnuWin32-supplied image libraries, you will | ||
| 659 | need to download _source_ packages for some of the libraries in | ||
| 660 | order to get the header files necessary for building Emacs with | ||
| 661 | image support. | ||
| 571 | 662 | ||
| 572 | * Optional GnuTLS support | 663 | * Optional GnuTLS support |
| 573 | 664 | ||
diff --git a/nt/README.W32 b/nt/README.W32 index 2b546428c6b..a397296b22b 100644 --- a/nt/README.W32 +++ b/nt/README.W32 | |||
| @@ -20,12 +20,8 @@ See the end of the file for license conditions. | |||
| 20 | 20 | ||
| 21 | * Preliminaries | 21 | * Preliminaries |
| 22 | 22 | ||
| 23 | Along with this file should be five subdirectories (bin, etc, info, | 23 | Along with this file should be four subdirectories (bin, libexec, |
| 24 | lisp, site-lisp). If you have downloaded the barebin | 24 | share, and var). |
| 25 | distribution, then it will contain only the bin directory and the | ||
| 26 | built in documentation in etc/DOC, the rest of the subdirectories | ||
| 27 | are in the src distribution, which the barebin distribution is | ||
| 28 | designed to be used with. | ||
| 29 | 25 | ||
| 30 | * Setting up Emacs | 26 | * Setting up Emacs |
| 31 | 27 | ||
| @@ -99,15 +95,18 @@ See the end of the file for license conditions. | |||
| 99 | + addpm.exe - A basic installer that creates Start Menu icons for Emacs. | 95 | + addpm.exe - A basic installer that creates Start Menu icons for Emacs. |
| 100 | Running this is optional. | 96 | Running this is optional. |
| 101 | 97 | ||
| 102 | + cmdproxy.exe - Used internally by Emacs to work around problems with | ||
| 103 | the native shells in various versions of Windows. | ||
| 104 | |||
| 105 | + ctags.exe, etags.exe - Tools for generating tag files. See the | 98 | + ctags.exe, etags.exe - Tools for generating tag files. See the |
| 106 | `Tags' node of the Emacs manual. | 99 | `Tags' node of the Emacs manual. |
| 107 | 100 | ||
| 108 | + ebrowse.exe - A tool for generating C++ browse information. See the | 101 | + ebrowse.exe - A tool for generating C++ browse information. See the |
| 109 | `Ebrowse' manual. | 102 | `Ebrowse' manual. |
| 110 | 103 | ||
| 104 | Several helper programs are in a version-specific subdirectory of | ||
| 105 | the libexec directory: | ||
| 106 | |||
| 107 | + cmdproxy.exe - Used internally by Emacs to work around problems with | ||
| 108 | the native shells in various versions of Windows. | ||
| 109 | |||
| 111 | + ddeclient.exe - A tool for interacting with DDE servers. To be | 110 | + ddeclient.exe - A tool for interacting with DDE servers. To be |
| 112 | invoked as "ddeclient SERVER [TOPIC]", where SERVER is the DDE | 111 | invoked as "ddeclient SERVER [TOPIC]", where SERVER is the DDE |
| 113 | server name, and sends each line of its standard input to the DDE | 112 | server name, and sends each line of its standard input to the DDE |
| @@ -122,12 +121,27 @@ See the end of the file for license conditions. | |||
| 122 | a mail spool or POP server to a local user mailbox. See the | 121 | a mail spool or POP server to a local user mailbox. See the |
| 123 | `Movemail' node of the Emacs manual. | 122 | `Movemail' node of the Emacs manual. |
| 124 | 123 | ||
| 124 | + profile.exe - A helper program that generates periodic events for | ||
| 125 | profiling Emacs Lisp code. | ||
| 126 | |||
| 127 | + update-game-score.exe - A utility for updating the score files of | ||
| 128 | Emacs games. | ||
| 129 | |||
| 125 | * Image support | 130 | * Image support |
| 126 | 131 | ||
| 127 | Emacs has built in support for XBM and PPM/PGM/PBM images, and the | 132 | Emacs has built in support for XBM and PPM/PGM/PBM images, and the |
| 128 | libXpm library is bundled, providing XPM support (required for color | 133 | libraries. These libraries are all available on the following sites: |
| 129 | toolbar icons and splash screen). Source for libXpm should be available | 134 | |
| 130 | on the same place as you got this binary distribution from. | 135 | 1. http://sourceforge.net/projects/ezwinports/files/ |
| 136 | -- leaner, more up-to-date builds, only for 32-bit Emacs | ||
| 137 | 2. http://www.gtk.org/download/win32.php | ||
| 138 | http://www.gtk.org/download/win64.php | ||
| 139 | -- GTK project site; offers much fatter builds, but includes 64-bit | ||
| 140 | DLLs | ||
| 141 | 3. GnuWin32 project -- very old builds, not recommended | ||
| 142 | |||
| 143 | Emacs will find these libraries if the directory they are installed | ||
| 144 | in is on the PATH. | ||
| 131 | 145 | ||
| 132 | Emacs can also support some other image formats with appropriate | 146 | Emacs can also support some other image formats with appropriate |
| 133 | libraries. These libraries are all available as part of GTK | 147 | libraries. These libraries are all available as part of GTK |
| @@ -136,7 +150,7 @@ See the end of the file for license conditions. | |||
| 136 | they are installed in is on the PATH. | 150 | they are installed in is on the PATH. |
| 137 | 151 | ||
| 138 | PNG: requires the PNG reference library 1.4 or later, which will | 152 | PNG: requires the PNG reference library 1.4 or later, which will |
| 139 | be named libpng14.dll or libpng14-14.dll. LibPNG requires zlib, | 153 | be named libpngNN.dll or libpngNN-NN.dll. LibPNG requires zlib, |
| 140 | which should come from the same source as you got libpng. | 154 | which should come from the same source as you got libpng. |
| 141 | Starting with Emacs 23.3, the precompiled Emacs binaries are | 155 | Starting with Emacs 23.3, the precompiled Emacs binaries are |
| 142 | built with libpng 1.4.x and later, and are incompatible with | 156 | built with libpng 1.4.x and later, and are incompatible with |
| @@ -151,7 +165,14 @@ See the end of the file for license conditions. | |||
| 151 | or libtiff.dll. | 165 | or libtiff.dll. |
| 152 | 166 | ||
| 153 | GIF: requires libungif or giflib 4.1 or later, which will be | 167 | GIF: requires libungif or giflib 4.1 or later, which will be |
| 154 | called giflib4.dll, libungif4.dll or libungif.dll. | 168 | called libgif-6.dll, giflib4.dll, libungif4.dll or libungif.dll. |
| 169 | |||
| 170 | SVG: requires librsvg 2.x whose DLL will be called | ||
| 171 | librsvg-2-2.dll. SVG also requires several dependency DLLs, | ||
| 172 | such as Pango, Cairo, and Glib, all of them found on the | ||
| 173 | above-mentioned sites. If you download from the ezwinports | ||
| 174 | site, you need only librsvg-2.nn.x-bin.zip, it comes with all | ||
| 175 | the other dependencies bundled. | ||
| 155 | 176 | ||
| 156 | If you have image support DLLs under different names, customize the | 177 | If you have image support DLLs under different names, customize the |
| 157 | value of `dynamic-library-alist'. | 178 | value of `dynamic-library-alist'. |
| @@ -168,8 +189,8 @@ See the end of the file for license conditions. | |||
| 168 | the relevant DLLs during startup; failure to do so is not an error, | 189 | the relevant DLLs during startup; failure to do so is not an error, |
| 169 | but GnuTLS won't be available to the running session. | 190 | but GnuTLS won't be available to the running session. |
| 170 | 191 | ||
| 171 | You can get pre-built binaries (including any required DLL and the | 192 | You can get pre-built binaries (including any dependency DLLs) at |
| 172 | header files) at http://sourceforge.net/projects/ezwinports/files/. | 193 | http://sourceforge.net/projects/ezwinports/files/. |
| 173 | 194 | ||
| 174 | * libxml2 support | 195 | * libxml2 support |
| 175 | 196 | ||