From 9d557837bf3e8d44071f439ec2833141569a897a Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Thu, 20 Sep 2018 00:33:18 -0700 Subject: [PATCH] User manual: move plugin build hints to plugin READMEs. --- doc/user-manual/user.texinfo | 71 ++++++++++-------------------------- src/blowfish/README | 26 +++++++++++-- src/gdbm/README | 23 ++++++++++-- src/mcrypt/README | 17 +++++++-- src/pgsql/README | 16 ++++++-- src/x11-screen/README | 27 ++++++++------ src/x11/README | 25 +++++++++---- 7 files changed, 122 insertions(+), 83 deletions(-) diff --git a/doc/user-manual/user.texinfo b/doc/user-manual/user.texinfo index c211c07ee..cca9dd92c 100644 --- a/doc/user-manual/user.texinfo +++ b/doc/user-manual/user.texinfo @@ -240,58 +240,25 @@ Depending on configuration options and file-system permissions, you may need super-user privileges to do the installation step. @end enumerate -@emph{After} you have installed Scheme, you can install a few -dynamically loadable options. These are configured, built and -installed in the customary way. To install the @code{gdbm} -option: - -@smallexample -(cd gdbm && ./configure && make && make install) -@end smallexample - -The @code{make install} command will attempt to create a subdirectory -in the first directory on the host Scheme's library path. If that -directory is not writable by you, super-user privileges may be -required. - -You can put a writable directory at the front of your host Scheme's -library path by setting the @code{MITSCHEME_LIBRARY_PATH} environment -variable - -@smallexample -export MITSCHEME_LIBRARY_PATH=\ - ~/mit-scheme-plugins:/usr/local/lib/mit-scheme-x86-64 -@end smallexample - -or including the @code{--prepend-library} option on the command line. - -@smallexample -mit-scheme --prepend-library ~/mit-scheme-plugins -@end smallexample - -A few of the included options wrap popular Unix libraries. To compile -and link them you often need ``developers' packages'' installed first. -The following table lists the included options and an example -developers' package name (and shared library name). The package names -can vary quite a bit among Unix distributions; the library names less -so. Please see the @file{README} file in each option's subdirectory -for more information. - -@table @option -@item blowfish -libssl-dev (-lcrypto) -@item gdbm -libgdbm-dev (-lgdbm) -@item mcrypt -libmcrypt-dev (-lmcrypt) -@item postgresql -libpq-dev (-lpq) -@item X11 -libx11-dev (-lX11) -@end table - -After installing the software and any options, you can delete the -unpacked directory: +After you have installed Scheme you will want to install several +@dfn{plugins}. Scheme no longer uses dynamically loaded microcode +modules installed with Scheme. The micromodules have been converted +into plugins: new subsystems that use the C/FFI to dynamically load +the same code. Crucially at this point plugins can be built and +installed separately. + +To get all of the functionality previously available in version 9.2 +you will need to build and install all of the plugins included in the +@file{src} subdirectory: blowfish, gdbm, mcrypt, pgsql, x11 and +x11-screen. Without the x11-screen option installed Edwin will only +display on a terminal. + +These plugins are all configured, built and installed in the GNU +standard way. See the @file{README} file in each plugin's source +directory for complete details. + +After installing Scheme and your desired plugins, you can delete the +source directory: @example cd ../.. diff --git a/src/blowfish/README b/src/blowfish/README index 6e11566fc..2473363c5 100644 --- a/src/blowfish/README +++ b/src/blowfish/README @@ -1,10 +1,24 @@ The Blowfish option. -This plugin creates a (blowfish) package. It is built in the -customary GNU way: +This plugin creates a (blowfish) package. It is built in the GNU +standard way (below). It expects the blowfish library header file to +be available, but often headers are not installed with the library. +On Ubuntu, when using the OpenSSL library, the libssl-dev package must +be installed before running the configure script. Other options +include the libcrypto++-dev package or any library that provides the +blowfish header. (Some adjustment to the configure script may be +necessary.) + +The GNU standard way: ./configure [--with-openssl=directory]... - make all check install + make all + make check + make install + +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. To use: @@ -25,3 +39,9 @@ To import into a CREF package set, add this to your .pkg file: (import (blowfish) blowfish-set-key ...)) + +Please see the manual for API details. An Info version should have +been installed along with the plugin. If you have a texlive or +similar TeX environment installed, then HTML and PDF versions of the +manual can be created with the GNU standard targets install-html and +install-pdf. diff --git a/src/gdbm/README b/src/gdbm/README index 77a558320..68a907b59 100644 --- a/src/gdbm/README +++ b/src/gdbm/README @@ -1,10 +1,21 @@ The GDBM option. -This plugin creates a (gdbm) package. It is built in the customary -GNU way: +This plugin creates a (gdbm) package. It is built in the GNU standard +way (below). It expects the blowfish library header file to be +available, but often headers are not installed with the library. On +Ubuntu the libgdbm-dev package must be installed before running the +configure script. + +The GNU standard way: ./configure ... - make all check install + make all + make check + make install + +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. To use: @@ -25,3 +36,9 @@ To import into a CREF package set, add this to your .pkg file: (import (gdbm) gdbm-open ...)) + +Please see the manual for API details. An Info version should have +been installed along with the plugin. If you have a texlive or +similar TeX environment installed, then HTML and PDF versions of the +manual can be created with the GNU standard targets install-html and +install-pdf. diff --git a/src/mcrypt/README b/src/mcrypt/README index 2d80c008f..8716b4f0f 100644 --- a/src/mcrypt/README +++ b/src/mcrypt/README @@ -1,10 +1,21 @@ The Mcrypt option. -This plugin creates an (mcrypt) package. It is built in the customary -GNU way: +This plugin creates an (mcrypt) package. It is built in the GNU +standard way (below). It expects the mcrypt library header file to be +available, but often headers are not installed with the library. On +Ubuntu the libmcrypt-dev package must be installed before running the +configure script. + +The GNU standard way: ./configure ... - make all check install + make all + make check + make install + +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. To use: diff --git a/src/pgsql/README b/src/pgsql/README index e01f882f9..3a5b95948 100644 --- a/src/pgsql/README +++ b/src/pgsql/README @@ -1,10 +1,20 @@ The PostgreSQL option. -This plugin creates a (postgresql) package. It is built in the customary -GNU way: +This plugin creates a (postgresql) package. It is built in the GNU +standard way (below). It expects the pkg-config command to know about +libpq. On Ubuntu this means the pkg-config and libpq-dev packages +must be installed before running the configure script. + +The GNU standard way: ./configure ... - make all check install + make all + make check + make install + +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. To use: diff --git a/src/x11-screen/README b/src/x11-screen/README index 11c1288c3..1f9ae27a0 100644 --- a/src/x11-screen/README +++ b/src/x11-screen/README @@ -1,19 +1,22 @@ The X11-SCREEN option. -This plugin creates an (edwin screen x11-screen) package that -registers an Edwin display type named X11, an exact replacement for -the microcode module based X screen type. The plugin is built in the -customary GNU way, except that it must be installed prior to running -tests. +This option creates an (edwin screen x11-screen) package that is +autoloaded by Edwin's X display type. It is built in the GNU standard +way (below). It does not use the C/FFI but uses the X11 plugin's +Terminal API. + +The GNU standard way: ./configure ... - make all install check + make all + make check + make install -To load: +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. - (load-option 'x11-screen) +To use: -Loading this plugin re-assigns bindings in (edwin) and (edwin -x-commands); any existing Edwin screens will stop working. You must -load this option before starting Edwin. If the DISPLAY environment -variable is set, Edwin will create X11 screens. +This option is autoloaded by Edwin when the DISPLAY environment +variable is set. diff --git a/src/x11/README b/src/x11/README index f3540c933..a576b842d 100644 --- a/src/x11/README +++ b/src/x11/README @@ -1,20 +1,31 @@ The X11 option. -This plugin creates an (x11) package. It is built in the customary -GNU way: +This plugin creates an (x11) package. It is built in the GNU standard +way (below). It expects the pkg-config command to know about x11, and +for certain auxiliary headers to be available. On Ubuntu this means +the pkg-config, libx11-dev and x11proto-dev packages must be installed +before running the configure script. + +The GNU standard way: ./configure ... - make all check install + make all + make check + make install + +The last command will attempt to create a subdirectory in the first +directory on Scheme's library path. If that directory is not writable +by you, super-user privileges may be required. To use: (load-option 'x11) (import-x11) -The import-x11 procedure will modify the REPL's current environment by -adding bindings linked to the plugin's exports, which are not exported -to the global environment because they would conflict with the -deprecated exports from (runtime x-graphics). +Import-x11 will modify the REPL's current environment by adding +bindings linked to the plugin's exports. They are not exported to the +global environment because they would conflict with the deprecated +exports from (runtime x-graphics). To import into a CREF package set, add this to your .pkg file: -- 2.25.1