#+OPTIONS: ^:nil _:nil
Developer Notes, Dependencies

* description
** short summary: 80 chars
documents - structuring, publishing in multiple formats and search
** longer
 SiSU is a lightweight markup based, command line oriented, document
 structuring, publishing and search, static content tool for document
 collections.
 .
 With minimal preparation of a plain-text (UTF-8) file, using sisu markup syntax
 in your text editor of choice, SiSU can generate various document formats, most
 of which share a common object numbering system for locating content, including
 plain text, HTML, XHTML, XML, EPUB, OpenDocument text (ODF:ODT), LaTeX, PDF
 files, and populate an SQL database with objects (roughly paragraph-sized
 chunks) so searches may be performed and matches returned with that degree of
 granularity. Think of being able to finely match text in documents, using
 common object numbers, across different output formats and across languages if
 you have translations of the same document. For search, your criteria is met
 by these documents at these locations within each document (equally relevant
 across different output formats and languages). To be clear (if obvious) page
 numbers provide none of this functionality. Object numbering is particularly
 suitable for "published" works (finalized texts as opposed to works that are
 frequently changed or updated) for which it provides a fixed means of reference
 of content. Document outputs can also share provided semantic meta-data.
 .
 SiSU also provides concordance files, document content certificates and
 manifests of generated output and the means to make book indexes that make use
 of its object numbering.
 .
 Syntax highlighting and folding (outlining) files are provided for the Vim and
 Emacs editors.
 .
 Dependencies for various features are taken care of in sisu related packages.
 The package sisu-complete installs the whole of SiSU.
 .
 Additional document markup samples are provided in the package
 sisu-markup-samples which is found in the non-free archive. The licenses for
 the substantive content of the marked up documents provided is that provided
 by the author or original publisher.
 .
 SiSU uses utf-8 & parses left to right. Currently supported languages:
 am bg bn br ca cs cy da de el en eo es et eu fi fr ga gl he hi hr hy ia is it
 ja ko la lo lt lv ml mr nl nn no oc pl pt pt_BR ro ru sa se sk sl sq sr sv ta
 te th tk tr uk ur us vi zh (see XeTeX polyglossia & cjk)
 .
 SiSU works well under po4a translation management, for which an administrative
 sample Rakefile is provided with sisu_manual under markup-samples.

* Generic Dependencies
** source
git clone --depth 1 git://git.sisudoc.org/git/code/sisu.git --branch upstream
*** full source
git clone git://git.sisudoc.org/git/code/sisu.git --branch upstream

** an install method

$ qi setup --bin --lib --share --dryrun
$ sudo ./qi setup --bin --lib --share

$ qi setup --bin --lib --share --conf --data --dryrun
$ sudo ./qi setup --bin --lib --share --conf --data

$ qi setup --all --dryrun
$ sudo ./qi setup --all dryrun

** minimal
*** interpreter
ruby                 all, provides outputs text, html
*** compression tools
xz                   sisupod (sisu source)
zip unzip            epub & odt

*** images
imagemagick | graphicsmagick
ruby-rmagick ?

** special requirements

*** ruby requires
(checked for sisu 6.5.0 & 7.0.0)
require 'RMagick'         ao_images.rb
require 'base64'          xml_fictionbook2.rb
require 'cgi'             cgi_pgsql.rb
                          cgi_sqlite.rb
                          webrick.rb
require 'date'            se_date.rb
require 'dbi'             se_load.rb
require 'digest/md5'      shared_markup_alt.rb
require 'digest/sha2'     shared_markup_alt.rb
                          shared_markup_alt.rb
require 'fcgi'            cgi_pgsql.rb
                          cgi_sqlite.rb
                          webrick.rb
require 'fileutils'       dbi_discrete.rb
                          hub.rb
                          se.rb
                          se_cleanoutput.rb
                          se_createsite.rb
                          se_file_op.rb
                          se_file_op.rb
                          se_info_env.rb
                          se_info_env.rb
                          se_remotes.rb
                          src_kdissert_share.rb
require 'find'            xml_odf_odt.rb
require 'net/http'        remote.rb
require 'open-uri'        ao_composite.rb
                          remote.rb
require 'pathname'        hub_options.rb
                          se_info_env.rb
require 'pg'              cgi_pgsql.rb
                          dbi.rb
                          se_db.rb
require 'pp'              ao_composite.rb
                          remote.rb
require 'profile'         hub.rb
require 'pstore'          dp.rb
                          html.rb
                          texpdf.rb
                          texpdf.rb
                          xhtml_epub2.rb
require 'rbconfig'        se_info_system.rb
                          se_version.rb
require 'rexml/document'  sst_from_xml.rb
                          rexml.rb
                          rexml.rb
require 'singleton'       se.rb
                          se_clear.rb
                          se_envcall.rb
                          se_hub_particulars.rb
                          se_info_env.rb
                          se_programs.rb
                          se_version.rb
                          se_version.rb
require 'socket'          se_remotes.rb
require 'sqlite3'         cgi_sqlite.rb
                          dbi.rb
                          dbi_discrete.rb
                          se_db.rb
require 'time'            webrick.rb
                          webrick.rb
require 'timeout'         src_po4a_shelf.rb
                          src_po4a_sst_ao_sst.rb
require 'uri'             ao_composite.rb
                          dp.rb
                          hub.rb
                          hub_loop_markup_files.rb
require 'webrick'         webrick.rb
require 'yaml'            se_get_init.rb
                          se_get_init.rb
                          se_get_init.rb
                          se_get_init.rb
                          se_version.rb
require 'zlib'            xml_odf_odt.rb
require @prog             se_load.rb
require termsheet         termsheet.rb

ao_hash_digest.rb        sha_ ? (require 'digest/sha2') : (require 'digest/md5')

*** pdf

texlive
texlive-cjk
texlive-fonts ?
texlive-latex ?

.sty (texpdf_format.rb)

alltt.sty
amssymb.sty
babel.sty
boites.sty
color.sty
endnotes.sty
fancyhdr.sty
fontspec.sty
footmisc.sty
graphicx.sty
inputenc.sty
listings.sty
longtable.sty
manyfoot.sty
multicol.sty
parskip.sty
polyglossia.sty
soul.sty
textcomp.sty
thumbpdf.sty
titlepic.sty
ucs.sty
ulem.sty
url.sty
xetex.sty
xltxtra.sty
xunicode.sty

*** sql db
**** sqlite3

sqlite3               sql db, search
ruby-sqlite3          ruby driver

**** postgresql

postgresql            sql db, search
ruby-pg               ruby driver

*** web serve & search

ruby-fcgi (fast-cgi)  search form
httpd                 web server
(along with sql db)

*** qr codes

qrencode              qr codes based on document metadata

*** misc

tree                  information on document structure

*** maintenance/installation
ruby-thor | rake

ruby-thor
rake

* Debian Dependencies

** source
git clone --depth 1 git://git.sisudoc.org/git/code/sisu.git --branch debian/sid

** debian/control (extract)

Package: sisu
Depends: ${misc:Depends}, ruby | ruby-interpreter, rsync, unzip, zip, xz-utils
Recommends:
 sisu-pdf, sisu-sqlite, sisu-postgresql, imagemagick | graphicsmagick, keychain,
 openssh-client | lsh-client, openssl, po4a, qrencode, rake, ruby-rmagick,
 ruby-thor, tidy, tree, vim-addon-manager
Suggests: sisu-markup-samples, lv, calibre, pinfo, poedit, texinfo, trang

Package: sisu-complete
Depends:
 ${misc:Depends}, sisu (= ${source:Version}), sisu-pdf (= ${source:Version}),
 sisu-postgresql (= ${source:Version}), sisu-sqlite (= ${source:Version}),
 imagemagick | graphicsmagick, openssl, qrencode, ruby-thor, tree
Suggests: sisu-markup-samples

Package: sisu-pdf
Depends:
 ${misc:Depends}, sisu (= ${source:Version}),
 texlive-latex-base, texlive-fonts-recommended, texlive-generic-recommended,
 texlive-latex-recommended, texlive-latex-extra, texlive-math-extra,
 texlive-xetex, fonts-liberation, lmodern, latex-cjk-all, texlive-lang-cjk
Suggests: evince | pdf-viewer

Package: sisu-postgresql
Depends:
 ${misc:Depends}, sisu (= ${source:Version}),
 postgresql, ruby-pg, ruby-fcgi | libfcgi-ruby
Suggests: fcgiwrap, httpd, postgresql-contrib

Package: sisu-sqlite
Depends:
 ${misc:Depends}, sisu (= ${source:Version}),
 sqlite3, ruby-sqlite3, ruby-fcgi | libfcgi-ruby
Suggests: fcgiwrap, httpd

* Arch Linux Dependencies

** source

sisu-git

full clone is more than is needed, so is limiting the branch

git clone --branch upstream git://git.sisudoc.org/git/code/sisu.git

try get a shallow clone that contains the last tag for git describe source version info

git clone --depth 1 --branch upstream git://git.sisudoc.org/git/code/sisu.git
git clone --depth 1 --branch archlinux git://git.sisudoc.org/git/code/sisu.git

git clone --depth 1 --no-single-branch --branch upstream \
  git://git.sisudoc.org/git/code/sisu.git

*** git describe, source version
git describe --long --tags | sed 's/^sisu_//;s/\([^-]*-g\)/r\1/;s/-/./g'
git describe --long --tags | sed 's/^[a-z_-]\+//;s/\([^-]*-g\)/r\1/;s/-/./g'
git describe --long --tags | \
  sed 's/^[a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g'

needs more than a shallow clone of depth 1

** pacman install

sudo pacman -S ruby \
  zip unzip xy tree

sudo pacman -S ruby \
  texlive-core texlive-latexextra texlive-fontsextra texlive-langcjk

sudo pacman -S ruby \
  sqlite postgresql \
  fastcgi ruby-sqlite ruby-postgrsql

# issue with ruby-pg ruby-sqlite ruby-fcgi

** sort
*** interpreter
  ruby

*** compression tools (epub, odf:odt, sisupod)
  zip unzip
  xy

*** texlive (pdf)
sudo pacman -S texlive-core texlive-latexextra
sudo pacman -S texlive-core texlive-latexextra texlive-fontsextra texlive-langcjk

texlive-core       extra/texlive-core
texlive-fontsextra extra/texlive-fontsextra
texlive-langcjk    extra/texlive-langcjk

*** .sty (called from texpdf_format.rb)
alltt.sty          extra/texlive-core
amssymb.sty        extra/texlive-core
babel.sty          extra/texlive-core
boites.sty         extra/texlive-latexextra
color.sty          extra/texlive-core
endnotes.sty       extra/texlive-latexextra
fancyhdr.sty       extra/texlive-core
fontspec.sty       extra/texlive-core
footmisc.sty       extra/texlive-latexextra
graphicx.sty       extra/texlive-core
inputenc.sty       extra/texlive-core
listings.sty       extra/texlive-core
longtable.sty      extra/texlive-core
manyfoot.sty       extra/texlive-latexextra
multicol.sty       extra/texlive-core
parskip.sty        extra/texlive-core
polyglossia.sty    extra/texlive-core
soul.sty           extra/texlive-latexextra
textcomp.sty       extra/texlive-core
thumbpdf.sty       extra/texlive-core
titlepic.sty       extra/texlive-latexextra
ucs.sty            extra/texlive-latexextra
ulem.sty           extra/texlive-core
url.sty            extra/texlive-core
xetex.sty          ??
xltxtra.sty        extra/texlive-core
xunicode.sty       extra/texlive-core
