Skip to content

Commit

Permalink
添加 8.4 源代码
Browse files Browse the repository at this point in the history
  • Loading branch information
martin2011qi committed Mar 16, 2019
0 parents commit 4dd9bc6
Show file tree
Hide file tree
Showing 2,170 changed files with 574,480 additions and 0 deletions.
47 changes: 47 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
LFS Book Conversion Tools Installation Instructions

After downloading the SVN source, there are some things that need to be set up
on your computer if you want to convert the XML source into something easier to
read (e.g. HTML, TXT, or PDF). If you are interested in this, then keep
reading. If you are only interested in editing the XML source for re-
submission to the lfs-book or lfs-dev mailing lists, then you do not need this
document. Instead, you need to read the LFS Editor's Manual. See the LFS
website at http://www.linuxfromscratch.org for more information.

-------------------------------------------------------------------------------

If you want to convert the XML to HTML, install the following:

* libxml2
- http://www.linuxfromscratch.org/blfs/view/svn/general/libxml2.html

* libxslt
- http://www.linuxfromscratch.org/blfs/view/svn/general/libxslt.html

* DocBook DTD
- http://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html

* DocBook XSL Stylesheets
- http://www.linuxfromscratch.org/blfs/view/svn/pst/docbook-xsl.html

* HTMLTidy
- http://www.linuxfromscratch.org/blfs/view/svn/general/tidy-html5.html

-------------------------------------------------------------------------------

If you want to convert the XML to TXT, install the above items, and then install
the following:

* lynx
- http://www.linuxfromscratch.org/blfs/view/svn/basicnet/lynx.html

-------------------------------------------------------------------------------

If you want to convert the XML to PDF, install the items listed above (except
lynx) and then install the following:

* JDK
- http://www.linuxfromscratch.org/blfs/view/svn/general/openjdk.html

* FOP and JAI
- http://www.linuxfromscratch.org/blfs/view/svn/pst/fop.html
210 changes: 210 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
#BASEDIR = ~/lfs-book
#SYSDDIR = ~/lfs-systemd
#DUMPDIR = ~/lfs-commands
RENDERTMP = $(HOME)/tmp
CHUNK_QUIET = 1
ROOT_ID =
SHELL = /bin/bash

ifdef V
Q =
else
Q = @
endif

ifndef REV
REV = sysv
endif

ifneq ($(REV), sysv)
ifneq ($(REV), systemd)
$(error REV must be 'sysv' (default) or 'systemd'.)
endif
endif

ifeq ($(REV), sysv)
BASEDIR ?= ~/lfs-book
PDF_OUTPUT ?= LFS-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-BOOK.html
DUMPDIR ?= ~/lfs-commands
else
BASEDIR ?= ~/lfs-systemd
PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html
DUMPDIR ?= ~/lfs-sysd-commands
endif

book: validate profile-html
@echo "Generating chunked XHTML files at $(BASEDIR)/ ..."
$(Q)xsltproc --nonet \
--stringparam chunk.quietly $(CHUNK_QUIET) \
--stringparam rootid "$(ROOT_ID)" \
--stringparam base.dir $(BASEDIR)/ \
stylesheets/lfs-chunked.xsl \
$(RENDERTMP)/lfs-html.xml

@echo "Copying CSS code and images..."
$(Q)mkdir -p $(BASEDIR)/stylesheets
$(Q)cp stylesheets/lfs-xsl/*.css $(BASEDIR)/stylesheets
$(Q)pushd $(BASEDIR)/ > /dev/null; \
sed -i -e "s@../stylesheets@stylesheets@g" *.html; \
popd > /dev/null

$(Q)mkdir -p $(BASEDIR)/images
$(Q)cp images/*.png $(BASEDIR)/images

@echo "Running Tidy and obfuscate.sh..."
$(Q)for filename in `find $(BASEDIR) -name "*.html"`; do \
tidy -config tidy.conf $$filename; \
true; \
/bin/bash obfuscate.sh $$filename; \
sed -e "s@text/html@application/xhtml+xml@g" \
-e "s/\xa9/\©/ " \
-i $$filename; \
done;

$(Q)$(MAKE) --no-print-directory wget-list md5sums

pdf: validate
@echo "Generating profiled XML for PDF..."
$(Q)xsltproc --nonet \
--stringparam profile.condition pdf \
--output $(RENDERTMP)/lfs-pdf.xml \
stylesheets/lfs-xsl/profile.xsl \
$(RENDERTMP)/lfs-full.xml

@echo "Generating FO file..."
$(Q)xsltproc --nonet \
--stringparam rootid "$(ROOT_ID)" \
--output $(RENDERTMP)/lfs-pdf.fo \
stylesheets/lfs-pdf.xsl \
$(RENDERTMP)/lfs-pdf.xml

$(Q)sed -i -e 's/span="inherit"/span="all"/' $(RENDERTMP)/lfs-pdf.fo
$(Q)bash pdf-fixups.sh $(RENDERTMP)/lfs-pdf.fo

@echo "Generating PDF file..."
$(Q)mkdir -p $(RENDERTMP)/images
$(Q)cp images/*.png $(RENDERTMP)/images

$(Q)mkdir -p $(BASEDIR)

$(Q)fop -q $(RENDERTMP)/lfs-pdf.fo $(BASEDIR)/$(PDF_OUTPUT) 2>fop.log
@echo "$(BASEDIR)/$(PDF_OUTPUT) created"
@echo "fop.log created"

nochunks: validate profile-html
@echo "Generating non chunked XHTML file..."
$(Q)xsltproc --nonet \
--stringparam rootid "$(ROOT_ID)" \
--output $(BASEDIR)/$(NOCHUNKS_OUTPUT) \
stylesheets/lfs-nochunks.xsl \
$(RENDERTMP)/lfs-html2.xml

@echo "Running Tidy..."
$(Q)tidy -config tidy.conf $(BASEDIR)/$(NOCHUNKS_OUTPUT) || true

@echo "Running obfuscate.sh..."
$(Q)bash obfuscate.sh $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@text/html@application/xhtml+xml@g" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../wget-list@wget-list@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@../md5sums@md5sums@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)
$(Q)sed -i -e "s@\xa9@\©@" $(BASEDIR)/$(NOCHUNKS_OUTPUT)

@echo "Output at $(BASEDIR)/$(NOCHUNKS_OUTPUT)"

tmpdir:
@echo "Creating and cleaning $(RENDERTMP)"
$(Q)mkdir -p $(RENDERTMP)
$(Q)rm -f $(RENDERTMP)/lfs*.xml
$(Q)rm -f $(RENDERTMP)/*wget*
$(Q)rm -f $(RENDERTMP)/*md5sum*
$(Q)rm -f $(RENDERTMP)/*pdf.fo

validate: tmpdir
@echo "Processing bootscripts..."
$(Q)bash process-scripts.sh

@echo "Adjusting for revision $(REV)..."
$(Q)xsltproc --nonet \
--xinclude \
--output $(RENDERTMP)/lfs-html2.xml \
--stringparam profile.revision $(REV) \
stylesheets/lfs-xsl/profile.xsl \
index.xml

@echo "Validating the book..."
$(Q)xmllint --nonet \
--noent \
--postvalid \
-o $(RENDERTMP)/lfs-full.xml \
$(RENDERTMP)/lfs-html2.xml

$(Q)rm -f appendices/*.script
$(Q)./aux-file-data.sh $(RENDERTMP)/lfs-full.xml
@echo "Validation complete."

profile-html:
@echo "Generating profiled XML for XHTML..."
$(Q)xsltproc --nonet \
--stringparam profile.condition html \
--output $(RENDERTMP)/lfs-html.xml \
stylesheets/lfs-xsl/profile.xsl \
$(RENDERTMP)/lfs-full.xml

wget-list: $(BASEDIR)/wget-list
$(BASEDIR)/wget-list: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent
@echo "Generating consolidated wget list at $(BASEDIR)/wget-list ..."
$(Q)mkdir -p $(BASEDIR)

# $(Q)xsltproc --nonet --xinclude \
# --stringparam profile.revision $(REV) \
# --output $(RENDERTMP)/sysd-wget.xml \
# stylesheets/lfs-xsl/profile.xsl \
# chapter03/chapter03.xml

$(Q)xsltproc --xinclude --nonet \
--output $(BASEDIR)/wget-list \
stylesheets/wget-list.xsl \
chapter03/chapter03.xml

md5sums: $(BASEDIR)/md5sums
$(BASEDIR)/md5sums: stylesheets/wget-list.xsl chapter03/chapter03.xml \
packages.ent patches.ent
@echo "Generating consolidated md5sum file at $(BASEDIR)/md5sums ..."
$(Q)mkdir -p $(BASEDIR)

$(Q)xsltproc --nonet --xinclude \
--stringparam profile.revision $(REV) \
--output $(RENDERTMP)/sysv-md5sum.xml \
stylesheets/lfs-xsl/profile.xsl \
chapter03/chapter03.xml

$(Q)xsltproc --xinclude --nonet \
--output $(BASEDIR)/md5sums \
stylesheets/md5sum.xsl \
$(RENDERTMP)/sysv-md5sum.xml
$(Q)sed -i -e \
"s/BOOTSCRIPTS-MD5SUM/$(shell md5sum lfs-bootscripts*.tar.bz2 | cut -d' ' -f1)/" \
$(BASEDIR)/md5sums

#dump-commands: validate
# @echo "Dumping book commands..."
# $(Q)xsltproc --nonet \
# --output $(RENDERTMP)/lfs-html.xml \
# --stringparam profile.revision $(REV) \
# stylesheets/lfs-xsl/profile.xsl \
# $(RENDERTMP)/lfs-full.xml

# $(Q)rm -rf $(DUMPDIR)

# $(Q)xsltproc --output $(DUMPDIR)/ \
# stylesheets/dump-commands.xsl \
# $(RENDERTMP)/lfs-html.xml
# @echo "Dumping book commands complete in $(DUMPDIR)"

all: book nochunks pdf # dump-commands

.PHONY : all book dump-commands nochunks pdf profile-html tmpdir validate md5sums wget-list

31 changes: 31 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
LFS Book README

This document is meant to instruct the user on how to convert the book's XML
source to other formats (e.g. HTML, PDF, PS and TXT). First, if you have not
already done so, please read the INSTALL file for instructions on how to install
the required software. If you have already completed the steps outlined in the
INSTALL file, then continue reading for examples how to convert these files into
various other formats.

In all examples, setting the parameter REV=systemd is needed to build the
systemd version of the book.

XML to XHTML:
-------------
make BASEDIR=/path/to/output/location


XML to single file XHTML (nochunks):
------------------------------------
make BASEDIR=/path/to/output/location nochunks

XML to TXT
----------
Follow the instructions for nochunks and then run:
lynx -dump /path/to/nochunks >/path/to/output

XML to PDF:
-----------
make BASEDIR=/path/to/output/location pdf


Loading

0 comments on commit 4dd9bc6

Please sign in to comment.