summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README190
1 files changed, 190 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..10f5f1f
--- /dev/null
+++ b/README
@@ -0,0 +1,190 @@
+License
+-------
+
+Rarian is distributed under the GPL v2.0 (or later) license. Please see the
+COPYING file for full details.
+
+In addition, this package contains source code from the tinyxml project
+(www.sourceforge.net/projects/tinyxml). These files can be found in
+the util directory and have names beginning with "tiny". For their license
+terms, please refer to the indivual files.
+
+About Rarian
+-----------
+
+Rarian is designed to be a replacement for scrollkeeper. It is
+currently undergoing heavy development. As of writing, rarian can be
+installed in place of scrollkeeper and everything will work okay (as
+far as my testing indicates)
+
+The package consists of several things:
+
+* The librarian library
+ - This builds a list of available meta data files and allows access to these.
+
+* The rarian-sk-update script
+ - This is compatible with the scrollkeeper-update script that's required to
+ be run when installing new omf files. It converts the omf files into new-
+ style scrolls
+
+* The rarian-sk-migrate program
+ - Takes in a directory full of omf's, reads and parses them and spews out
+ an equivalent scroll file. You probably don't want to use this directly.
+ Instead, copy the omf directory to you're standard omf dir and run the
+ update script.
+
+* The rarian-example program
+ - Shows off what librarian is capable of. Prints a nice list of all
+ available documents found by the library.
+
+* Misc. rarian-sk-* scripts
+ - These emulate various functions of scrollkeeper as needed to
+ maintain backwards-compatibility.
+
+This package (the library part, at least) is based on the proposed Freedesktop
+Help System spec. The latest version of this spec can be found in the "help"
+subdirectory of this package.
+
+For major changes in 0.5 and above, please see the NEWS file.
+
+Major Changes in 0.4
+--------------------
+
+Lots of changes in this version. I'll try and list as many as I can:
+* Change most things to support the spec.
+ - Use $XDG_DATA_DIRS and $XDG_DATA_HOME to find scroll files
+ - Use $LANGUAGE to decide which language to use
+ - Scan recursively through subdirs to pick up scrolls
+ - Allow locale-specific files to reside in $DIR/LOCALE/LC. Prioritise them
+ - Handle document sections. Allow docs to have as many sections as they want
+ - Remove the rubbish config file stuff
+ - Rename lots of key types
+ - Add support for lots more key types
+ - Handle URI and file paths properly
+* Remove previous migration script
+* Replace with update script which tracks changes (in
+ $OUTPUT_DIR/.rarian-update-mtimes)
+* Remove limit of 1024 chars per line
+* make calls to init implicit in operations
+* Add example of a Mallard Meta Data file, defining several sections, which
+ are spread across 1 document file and 1 section file
+* Fix a boatload of memory leaks
+* Added TODO to see what needs done
+* Add copy of spec to compare against
+
+Major Changes in 0.3
+--------------------
+
+Only 1 really: Rarian can now be installed. If the right configure
+options are used. By default, it doesn't use the installation code
+stuff, it still relies on the uninstalled version. Look in the
+"Running it" section for how to get it installed etc. A config file
+is also generated which tells Rarian where to look for scrolls. It
+has a magic variable, HOME, which makes rarian look in the current
+user's home directory. Each path takes precedence over the older
+ones. If a scroll file is found in two paths, the one later in the
+config will replace the version found previously.
+
+Or better explanation:
+Config file specifies: /usr/share/rarian HOME/share/rarian
+Both have copies of beanstalk manual scroll. The only version that'll be
+reported is the one in HOME/share/rarian
+
+
+Major Changes in 0.2
+--------------------
+
+* Scrolls are now translated in-file
+* All scrolls in data/sk-import are handled in the library init (but not
+recursively)
+* Add support for series_id and type in the Scroll struct
+* New and improved migration script - faster, cope with translations. It works
+ on the assumption that all files of the form <entry>-<lang>.omf are
+ translations and any other <entry>s are from different docs.
+
+Running it
+----------
+
+In uninstalled (safe) mode
+--------------------------
+
+To try it out, run
+./configure && make
+from the command line, in the top-level directory. Then:
+chmod u+x utils/rarian-sk-update
+./util/rarian-sk-update -o /usr/share/omf -r ./data/sk-import
+
+will make a temporary migration of all scrollkeeper omf files in
+/usr/share/omf. The scrolls can be found in data/sk-import. If you're omf
+files are not stored in /usr/share/omf, you need to edit the -o option to the
+correct path.
+
+If this step fails for some reason, fix the problem (if possible), let me know
+what went wrong and re-run the script.
+
+Once that's done, you can run:
+./util/rarian-example
+to build the in-memory index and iterate through, printing out each manuals
+filename.
+
+You can change the language used by changing the LANGUAGE environment variable:
+LANGUAGE=es ./util/rarian-example
+will print out the Spanish manuals. If a document doesn't have a translation,
+the default is to fall back to the C locale and use that (the same as
+scrollkeeper works), hence you'll see a lot of English in that list.
+
+You can also specify multiple fallback languages by specifying them in $LANGUAGE
+using colon seperation:
+LANGUAGE=es:de:en_GB
+("C" locale will always be used as a final fallback).
+
+In installed (unsafe) mode
+--------------------------
+
+To get Rarian in an installed mode, the configure flag '--enable-installed' must
+be used. On top of this, there are the usual options (prefix etc.)
+that can be used. By default, when installed, it'll try converting the
+<prefix>/share/omf directory to scrolls stored in <prefix>/share/rarian. This
+can be changed using
+--with-convert-dir=/path/to/current/omfs
+
+All the programs / scripts get installed (rarian-example,
+rarian-sk-migrate and rarian-sk-update). To test, run the rarian-example with
+(or without) the LANGUAGE environmental variable set. The update script can
+also be used at any point using:
+rarian-sk-update
+Without any options, this will convert the covnert-dir specified during
+configuration. To convert a different directory, use
+rarian-sk-update -o <path/to/omfs>
+You can also regenerate all scroll files using the
+--clean-index
+parameter for the update script.
+To put the resulting scroll files in a different location (i.e. not
+<prefix>/share/help), use the parameter:
+-r <path/to/resultant/dir>
+
+Timings
+-------
+
+The following times are from my test-runs. They are all run with warm cache.
+I've not run them with cold cache for various reasons.
+
+Running update script to create a new, clean index:
+real 0m9.302s
+real 0m6.003s
+real 0m6.076s
+
+Running update script when nothing has changed:
+real 0m3.757s
+real 0m3.688s
+
+Running rarian-example:
+(between 0 and 6 languages specified in LANGUAGES)
+real 0m0.040s
+real 0m0.039s
+real 0m0.035s
+
+What's next?
+-----------
+
+Please see the TODO file.