Git Product home page Git Product logo

illumos-docbooks's Introduction

illumos docbooks

This repository contains the original docbooks from Sun's last drop and contains the process of converting them to a format that will work well for illumos. Currently only a subset of the docbooks that once existed are here. Others will be added once someone cares enough about them and we make the process for working on them not quite so terrible.

To build them into something useful, you will need to install:

  • GNU make (gmake in pkgsrc)
  • Maven (apache-maven in pkgsrc)
  • dblatex (dblatex in pkgsrc)
  • epstopdf conversion tool (tex-epstopdf in pkgsrc)
  • texlive packages (texlive-collection-fontsrecommended, texlive-collection-latexrecommended, texlive-collection-latexextra in pkgsrc)
  • cyrillic fonts (tex-cyrillic in pkgsrc)

For example, in a SmartOS zone:

pkgin install \
    gmake apache-maven dblatex tex-epstopdf tex-cyrillic \
    texlive-collection-fontsrecommended \
    texlive-collection-latexrecommended \
    texlive-collection-latexextra

The build tools are based on the old Solbook build tools, which were licensed under a combo GPL/CDDL.

Building

The quick and easy way to build everything is to run:

make all

If you're on a system that doesn't have LaTeX packages available, you can build just the HTML files with:

make html

Repository Layout

  • raw/

    The currently maintained and updated docbooks. Each book is in its own top level directory.

  • src/

    The source files for generating websites and PDFs from the DocBook sources.

  • stage/

    Original docbooks from Sun that have not been updated.

Adding New Books

As a part of adding a new book, it should be moved from stage/ to raw/. Also, when you move it, please change the name to something that is a bit more obvious. dtrace is much better than DYNMCTRCGGD, and mdb than MODDEBUG. Once it is there, you must do the following things:

  • Add a license appendix that clearly states that this is under the PDL. Look at what the mdb or DTrace guides do.

  • Move all of the gif figures in figures/GenHTML-CachedGraphics/ to figures/. This will not be necessary at the time that issue #39 is completed. Until such a mystical time.

  • Comment out the index section until such time as bug #4 has been resolved.

  • Before you are done, add it as a check target in the Makefile.

And convert the sources from SolBook to Docbook 5:

  • Remove <highlights> tags, but leave their inner content

  • Convert all id's to xml:id's

  • Convert <olink> tags where remap="internal" to <xref> tags

  • Remove the <olink> tags around <citerefentry> tags

  • Convert <ulink> tags to <link> tags

  • Convert <chapterinfo> and <bookinfo> to just <info>

  • Add a <bibliorelation> tag that can be used when creating canonical links

  • Move <option> tags out of <command> tags/restructure

  • Along the way, as lines are touched, try to reformat

  • Assign <partintro> tags IDs, and update any references to the parent <part> to point at the <partintro> instead.

  • There are some other minor things that were not specific to SolBook, but were part of DocBook 4 and are gone in DocBook 5. Running the validator will find them for you. Consult the DocBook guide for tips on what to do:

    http://www.docbook.org/tdg5/en/html/ch01.html#introduction-whats-new

This should be enough to get the HTML5 version of the book built. To build the PDFs though, there are some other things that need to be fixed:

  • Convert all colspecs' colwidth attributes from inches to proportional measurements. For example, if there are two columns of widths "1.00in" and "4.00in", they should become "1*" and "4*" respectively, which says that the second column should be four times the width of the first column. If there are multiple tables next to each that are similar in number of columns and width, try to make them the same, so that they look better in the PDF.
  • On <colspec> tags for columns that contain paragraphs, add an align="justify" attribute.
  • On <tbody> tags for tables that contain multi-line text, add valign="top" to ensure that things don't get vertically center-aligned, which can make reading the table more confusing.
  • Make sure that the text inside <programlisting> and <screen> tags wrap before 75 characters since monospaced text will be wider in the PDF, and the only two options are the listings environment's poor wrapping with breaklines, or overflowing into (or past) the margins.
  • Check for long <example> contents, which get placed inside a float and will therefore overflow the bottom margin if too long.

Additional cleanup worth performing:

  • Remove the processing instructions (things like <?PubTbl ...?>) left over from the XML editors initially used to write the books (they don't get used for anything).

Adding the document to the check target should help you track many of these issues down.

Contributing

Treat this like you would illumos-gate with respect to bugs and the like. Currently the minor bug tracker is based on the github repository. Before you put back, you should run make check. Furthermore, if you change the xslt style, you must check most of the docbooks for regressions.

You can check your DocBook changes by running:

make check

License

All of the documentation is licensed under the Public Documentation License. See DOCLICENSE for details.

illumos-docbooks's People

Contributors

gwr avatar jclulow avatar melloc avatar mtelka avatar olafmersmann avatar rmustacc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

illumos-docbooks's Issues

verbose output for build.sh

On rare occasion it is useful to see the horrible wall of text that the xslt generation produces. We add a -v option which basically tells us to stop redirecting stdout.

Building with xsltproc would be nice

It would be nice if we could move away from the crazy java build tool that we have and instead move to something like xsltproc and use the makefile we currently have. This would also make it slightly easier to try and generate other targets like say a pdf or something that could be laid out for imposition. But that's fantasy future land.

Don't include broken indexes

Until index generation works correctly for the default output format we should not include it so as not to confuse people as to why there is an empty index.

Replacement for sun docs section

Currently there is commented out book sections that basically refer to sun docs, the sun community and mailing lists that couldn't care less about our feedback. However, some of us do actually care about that feedback! So we should replace this section with something useful, or just remove it entirely.

Update default style to be illumos

The current default style has an OpenIndiana logo. We should switch this out to be the illumos logo and update the styles as approrpiate.

image should be automatically generated from the eps files

Currently the master form of all the images in the gate are encapsulated post script files. It so happens that we have a copy of them translated into gif files. Rather we should make this translation happen every time so we don't have to keep checked in copies in the gate.

Index generation is busted

Currently the generated index is empty. Further all of the places that use a tag with '' are actually leaking it through. Rather than being consumed for the index, it's actually being dropped into the section.

figures don't display

Figures aren't displaying though links to them do exist. Presumably there is no xslt transformation defined for them. Sigh.

Want updates for MDB tab completion

Since mdb tab completion was integrated there are new module interfaces and other information that should be updated to the document to reflect its presence.

man section transformations are garbled

Currenly, the following XML:

<olink targetdoc="refman2" targetptr="write-2" remap="external">
<citerefentry><refentrytitle>write</refentrytitle><manvolnum>2</manvolnum>
</citerefentry></olink>

turns into 'write2' as opposed to 'write(2)'.

Want chapter on DTrace inside of a zone

Currently there is no good information on using DTrace inside of a zone. This includes everything from what is available inside of a zone to using the #pragma for USDT.

Documents with parts aren't built correctly

If a document has parts which contain several chapters several things don't work including:

  • Generation of the part introduction
  • Navlink generation and highlighting the currently active part

Strip out indexterm sections as workaround

Index generation is rather broken, see issue number four. As a side effect all the indexterm sections are being thrown out directly into the generated html in the

tags. This is rather problematic. For now, we're going to add some xslt to the default transform (Indiana) to strip out anything in there. This would break our index, if it worked. But it doesn't, which is why this happens.

Remove extra copy of jar

There's an extra copy of the docbook morphing jar that's outside of the dist folder which by this Java code's design pretty much guarantees that it won't work. Because of this, we're just going to get rid of it.

DTrace section names should be consistent

Currently most of the section names are named based on an increasing numerical id. Furthermore the index generation relies on these names for its hotlinks. Rather than using a numeric id which can shift, we should use a name based on the section title.

need tooling for automated checking

We currently don't have a good way to enforce xml cleanliness. Instead we should use the techniques from issue 30 in a Makefile target. The Makefile is the preferred option as the long term goal is to not need the original hacky Java source.

Get wdd into a sane state

This includes updating licensing information, verifying output formatting, and making the guide realize that Sun is dead.

dtrace(1M) usage renders incorrectly

The current dtrace(1M) usage is entirely borken. It looks like:

 dtrace3264 aACeFGHlqSvVwZ bbufsz ccmd Dname=def Ipath Lpath ooutput ppid sscript Uname xarg=val Xacst Pproviderpredicate action mprovider: modulepredicate action fprovider: module: funcpredicate action nprovider: module: func: namepredicate action iprobe-idpredicate action 

Get mdb into a sane state

This includes updating licensing information, verifying output formatting, and making the guide realize that Sun is dead.

Need updates for core DTrace functionality improvements

Since the book was last updated, DTrace has been updated with a lot of new things:

  • llquantize
  • vmregs
  • tracemem takes an optional size arguemnt
  • toupper/tolower support
  • lltostr taking an optional base argument
  • -x temporal
  • zone improvements (included the zone option)
  • print()

This ticket does not include new providers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.