Merge branch 'main' of feistymeow.org:feisty_meow
[feisty_meow.git] / readme.txt
index e34bb580ff2a0790526e34a3a335b79c3a4b707b..6ea6c7b2613f6be767ce363ffd2c2f61a5551c50 100644 (file)
 
-This is the "feisty meow (TM) concerns" codebase top folder.
+==============
 
-Feisty Meow (TM) Concerns codebase comprises some but probably not all of several projects that
-have come before.  These include the Twain.COM library scripts, the Yeti / YetiCode library
-scripts, the HOOPLE 1 and HOOPLE 2 C++ Codebases, the Fred Huffhines opensource LSL scripts,
-the CLAM build system, and a variety of other efforts.
+Quick Start Guide for the Feisty Meow Codebase
 
-Directories and files of interest here...
+Commands that can be typed in a console or terminal are prefixed with "$".
+(Do not include the dollar sign when copying and pasting commands.)
+Information that varies by platform is prefixed with a '|' character.
 
-scripts/
-    Stores the script files that we use a lot.  These are usually written in interpreted
-    languages, such as bash and perl.  These were the core of the YetiCode scripts library.
+This documentation assumes that the code is stored in the default location:
+  /opt/feistymeow.org/feistymeow
+If you have stored it elsewhere, then please adapt the commands accordingly.
 
-nucleus/
-    Source for the basic modules of the Feisty Meow (TM) codebase.  This includes generic
-    data structures, useful utilities, and the like.  This hierarchy, plus octopi and graphiq,
-    formed the major parts of hoople1 and hoople2.
+==============
 
-huffware/
-    The library of LSL scripts for osgrid and Second Life written by the avatar named Fred
-    Huffhines.  Fred Huffhines is a regular contributor and a well-loved member of our
-    development team.  He also happens to be a fictional sock-puppet for adventuring around
-    the grids, but a lot of code has been written in his name.  We are going to release the
-    full corpus of the Huffhines work over time.
+How to get the feisty meow codebase
 
-octopi/
-    Octopus design pattern and CROMP protocol reference implementations.  Assorted applications
-    based on these.
+These steps assume that you have the "git" tool available.
 
-database/
-    Some files considered critical to the operations of Feisty Meow Concerns Ltd.  This includes
-    the database of fortunes used by the Nechung Oracle Program.
+| On Microsoft Windows, install the Cygwin tools as documented here:
+| /opt/feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (local file) or
+| https://feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (web)
 
-doc/
-    Assorted documentation files for Feisty Meow and a code-scanning documentation generator
-    based on doxygen.
+Retrieve a clone of the feisty meow codebase:
+$ git clone git://feistymeow.org/feisty_meow
 
-examples/
-    Some files that show how to get work done with Feisty Meow or that show how to do certain
-    tasks in different scripting / programming languages.
+==============
 
-kona/
-    Our burgeoning Java libraries.  Not much to see here yet, but there is some code piling
-    up for these that we will try to release soon.
+How to load the feisty meow script environment
 
-production/
-    Machinery for getting releases out the door, including the generated files such as binaries
-    and build system tools.
+Prepare your host by installing the packages needed to bootstrap feisty meow.
+If this fails, then you may need the manual installation steps at the end of
+this file.
+$ bash /opt/feistymeow.org/feisty_meow/scripts/core/prep_feisty_host.sh
 
-graphiq/
-    GUI tools and components, somewhat busted or just absent right now.
+Set up the feisty_meow scripts; this is only needed once, when you first get
+the codebase.
+$ bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh
+
+Connect the feisty meow scripts to your login script (in ~/.bashrc).
+Note that this actually modifies ~/.bashrc.  This step is only needed once.
+$ bash /opt/feistymeow.org/feisty_meow/scripts/core/connect_feisty_meow.sh
+
+| For the root user, you can pass a flag '--root' to the connect_feisty_meow
+| script.  This will add an alias for 'feistyme' which loads the feisty meow
+| scripts on demand (instead of automatically upon login).
+
+Load the script environment into the current shell.  This can be done for
+any new shell.  This is idempotent, so it does no harm to run it again.
+Note that you should not need this step if you connected feisty meow to
+~/.bashrc above.
+$ source /opt/feistymeow.org/feisty_meow/scripts/core/launch_feisty_meow.sh
+
+When the feisty meow script environment loaded, many new aliases and
+functions are available for use.  These come from the $FEISTY_MEOW_SCRIPTS
+folder.
+There is a list of feisty meow script commands available at:
+https://feistymeow.org/feisty_meow/documentation/feisty_meow_command_reference.txt
+
+==============
+
+How to update the feisty meow codebase to the latest online version
+
+This assumes that a somewhat current version of feisty meow is already
+installed and the scripts are loaded (see above section for how to load).
+
+The command below retrieves the latest version of feisty meow codebase
+from the online repository and regenerates the scripts.
+
+$ rpuffer $FEISTY_MEOW_APEX ; regenerate
+
+==============
+
+How to build the feisty meow codebase
+
+Run the following command to build the feisty meow libraries and applications.
+$ produce_feisty_meow
+
+After the build is complete, the feisty meow applications can be found in
+the folder pointed at by the $FEISTY_MEOW_BINARIES environment variable.
+
+==============
+
+How to clean up the files generated by the build
+
+This command cleans out all the generated files:
+$ whack_build clean
+
+==============
+
+What are the feisty meow dependencies?
+
+The feisty meow scripts depend on these scripting languages and tools:
+  bash
+  perl (including Text::Diff and File::Which)
+  python
+  gnumake
+
+The feisty meow libraries and applications depend on these tools:
+  Gnu C++
+  RTMP streams (?still?  not sure.)
+  Curl
+  Open SSL
+
+The feisty meow "kona" library depends on these languages:
+  Java
+
+==============
+
+Bug reporting
+
+Report bugs at the feisty meow trac site:
+https://trac.feistymeow.org/projects/feistymeow/report
+Email fred@gruntose.com for authorization to write up new bug reports.
+
+There is also a github mirror of feisty meow at:
+https://github.com/fredhamster/feisty_meow
+The github repository will accept bug reports without an authorization process.
+
+==============
+
+More information is available at the official site: https://feistymeow.org
+
+==============
+
+Manual Installation Steps:
+
+How to install the feisty meow script dependencies...
+
+A couple of perl modules are required by some of the scripts (including the
+differ utility and the feisty meow customization system).  They can be
+installed with either apt or CPAN.
+
+Install using apt (on Ubuntu or Debian-based OS):
+$ sudo apt install libfile-which-perl libtext-diff-perl
+
+Install using yum (on Centos or similar distros):
+$ sudo yum install perl-File-Which perl-Text-Diff
+
+or Install using perl's CPAN:
+$ sudo cpan install Text::Diff File::Which
+
+or on Cygwin (MS-Windows), install with apt-cyg:
+$ apt-cyg install perl-File-Which perl-Text-Diff
+
+How to install the build dependencies for feisty meow...
+
+These dependencies are used for building the applications, tools and tests
+in the "nucleus", "octopi", "graphiq" and other C++ collections.
+
+| Ubuntu / Debian:
+| $ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
+
+| Centos / Redhat / Fedora:
+| $ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
+
+The "kona" collection depends on Java version 8 or better.
+
+| Ubuntu:
+| Set up the java PPA archive as described here:
+| https://launchpad.net/~webupd8team/+archive/ubuntu/java
+
+==============
 
-webby/
-    Source code specifically for web programming and building sites.  Mainly a few javascript
-    files we keep around.