mirror of
https://salsa.debian.org/debian/debian-reference.git
synced 2026-01-17 07:21:17 +00:00
Compare commits
No commits in common. "latest" and "debian/2.113" have entirely different histories.
latest
...
debian/2.1
78 changed files with 51782 additions and 100714 deletions
4
.gitattributes
vendored
4
.gitattributes
vendored
|
|
@ -1,2 +1,2 @@
|
|||
#po/*.po merge=merge-po-files
|
||||
#po/debian-reference.pot merge=merge-po-files
|
||||
po/*.po merge=merge-po-files
|
||||
po/debian-reference.pot merge=merge-po-files
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -26,6 +26,5 @@ packages.stable.txt
|
|||
packages.txt
|
||||
pkg.lst
|
||||
templates.pot
|
||||
org.debian.debian-reference-*.metainfo.xml
|
||||
tmp
|
||||
|
||||
|
|
|
|||
2
.weblate
2
.weblate
|
|
@ -1,3 +1,3 @@
|
|||
[weblate]
|
||||
url = https://hosted.weblate.org/api/
|
||||
translation = debian-reference
|
||||
translation = debian-reference/
|
||||
|
|
|
|||
166
Makefile
166
Makefile
|
|
@ -7,34 +7,12 @@
|
|||
#======================================================================
|
||||
# base file name excluding file extension
|
||||
MANUAL := debian-reference
|
||||
#
|
||||
# build strategy depends on build environment (robust build)
|
||||
#STRATEGY := $(shell if [ "$$(lsb_release -s -r)" = "n/a" ]; then echo "unstable"; else echo "stable" ; fi)
|
||||
|
||||
# When texlive tool chain suffer problem, run "make prep" and commit "keep/"
|
||||
# directory in stable environment and build package in STRATEGY=unstable
|
||||
# environment
|
||||
STRATEGY := stable
|
||||
# When OK situation, uncomment to set as above
|
||||
|
||||
# "ja 100 % -- COMPLETED translation (must be more than 40%)
|
||||
# "fr 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "it 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "es 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "zh-cn 100 % -- COMPLETED translation (must be more than 40%)
|
||||
# "id 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "de 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "pt-br 79 % -- COMPLETED translation (must be more than 40%)
|
||||
# "pt 99 % -- COMPLETED translation (must be more than 40%)
|
||||
# "zh-tw 74 % -- COMPLETED translation (must be more than 40%)
|
||||
# "sv 100 % -- COMPLETED translation (must be more than 40%)
|
||||
# "ro 25 % -- COMPLETED translation (must be more than 40%)
|
||||
# "nb 6 % -- COMPLETED translation (must be more than 40%)
|
||||
|
||||
LANGPO := ja fr it es zh-cn id de pt-br pt zh-tw sv ro nb
|
||||
LANGPO_PREP := ja fr it es zh-cn id de pt-br pt zh-tw sv
|
||||
# ko fi are less than 10 strings -- skipped even for make
|
||||
#LANGPO := ja fr it es zh-cn id de pt-br pt zh-tw nb sv ko fi
|
||||
# languages translated with PO files
|
||||
# This can list more than debian/rules for translator to check the result
|
||||
# (unless enough translation (100 strings or more), don't include it here)
|
||||
LANGPO := ja fr it pt de zh-cn zh-tw es id nb sv pt-br
|
||||
# ko fi are less than 10 strings
|
||||
#LANGPO := ja fr it pt de zh-cn zh-tw es id nb sv pt-br ko fi
|
||||
# languages to skip generation of PDF files (not used now)
|
||||
|
||||
NOPDF :=
|
||||
|
|
@ -44,39 +22,29 @@ LANGALL = en $(LANGPO)
|
|||
# Change these to post-release state when Debian is under soft freeze
|
||||
#
|
||||
# current "stable" release name
|
||||
RELEASE_NAME0L := trixie
|
||||
RELEASE_NAME0U := Trixie
|
||||
RELEASE_NAME0L := bookworm
|
||||
RELEASE_NAME0U := Bookworm
|
||||
# next "stable" / "testing" release name
|
||||
RELEASE_NAME1L := forky
|
||||
RELEASE_NAME1U := Forky
|
||||
RELEASE_NAME1L := trixie
|
||||
RELEASE_NAME1U := Trixie
|
||||
# next next "stable" / next "testing" release name
|
||||
RELEASE_NAME2L := duke
|
||||
RELEASE_NAME2U := Duke
|
||||
RELEASE_NAME2L := forky
|
||||
RELEASE_NAME2U := Forky
|
||||
# release name considered outdated (Release_Date-EOL_for_LTS)
|
||||
RELEASE_NAMEXX := Jessie 8 (2015-2020)
|
||||
# release names when this document was last updated
|
||||
RELEASE_DOC_1 := Trixie (=<literal>stable</literal>)
|
||||
RELEASE_DOC_2 := Forky (=<literal>testing</literal>)
|
||||
RELEASE_DOC_1 := Bookworm (=<literal>stable</literal>)
|
||||
RELEASE_DOC_2 := Trixie (=<literal>testing</literal>)
|
||||
|
||||
# version in changelog
|
||||
DR_VERSION := $(shell dpkg-parsechangelog --show-field Version)
|
||||
|
||||
# set SOURCE_DATE_EPOCH if unset (when not called from debhelper)
|
||||
SOURCE_DATE_EPOCH ?= $(shell dpkg-parsechangelog -STimestamp)
|
||||
# Export for reproducible PDF build
|
||||
# 2020: https://tex.stackexchange.com/questions/568235/how-do-i-configure-pdflatex-to-output-binary-equivalent-pdfs-if-the-input-tex-fi
|
||||
# 2015: https://tex.stackexchange.com/questions/229605/reproducible-latex-builds-compile-to-a-file-which-always-hashes-to-the-same-va
|
||||
export SOURCE_DATE_EPOCH
|
||||
FORCE_SOURCE_DATE = 1
|
||||
export FORCE_SOURCE_DATE
|
||||
|
||||
# date in changelog
|
||||
SOURCE_DATE := $(shell date -u +'%F %T %Z' --date=@$(SOURCE_DATE_EPOCH))
|
||||
|
||||
# BUILD_DIR is not mean to be set to generic TMPDIR
|
||||
BUILD_DIR := $(CURDIR)/build
|
||||
# KEEP_DIR holds PDFs build in the stable environment
|
||||
KEEP_DIR := $(CURDIR)/keep
|
||||
|
||||
# Change $(DRAFTMODE) from "yes" to "maybe" when this document
|
||||
# should go into production mode
|
||||
|
|
@ -84,8 +52,7 @@ KEEP_DIR := $(CURDIR)/keep
|
|||
DRAFTMODE := maybe
|
||||
export DRAFTMODE
|
||||
|
||||
# define EXPOSEMODE to yes to expose not-so-popular program listings in table list
|
||||
# (This is used to hide marginal table list entry.)
|
||||
# define EXPOSEMODE to yes to expose program listings to make entity
|
||||
EXPOSEMODE ?= no
|
||||
ifeq "$(EXPOSEMODE)" "yes"
|
||||
XML_COMMENT_START=
|
||||
|
|
@ -129,16 +96,15 @@ PERL_HASH_SEED := 0
|
|||
export PERL_HASH_SEE
|
||||
|
||||
# Program name and option
|
||||
# stop using faketime
|
||||
XLINT := xmllint --format
|
||||
XPNO := xsltproc --novalid --nonet
|
||||
XPINC := xsltproc --novalid --nonet --xinclude
|
||||
XPINC := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) xsltproc --novalid --nonet --xinclude
|
||||
MSGATTR := msgattrib
|
||||
MSGCAT := msgcat
|
||||
MSGUNIQ := msguniq --use-first
|
||||
DBLATEX := /usr/bin/dblatex
|
||||
DBLATEX := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) /usr/bin/dblatex
|
||||
SED := sed
|
||||
ZIP := zip
|
||||
ZIP := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) zip
|
||||
|
||||
# Source files
|
||||
SRC_XML := $(wildcard $(DRAW)/*_*.rawxml)
|
||||
|
|
@ -151,9 +117,7 @@ SEDF ?= $(DBIN)/replace0
|
|||
# po4a/opencc translation
|
||||
PO4A1 ?= $(DBIN)/po4a1
|
||||
PO4A2 ?= $(DBIN)/po4a2
|
||||
PO4ATMP ?= $(DBIN)/po4atmp
|
||||
POFUZZY1 ?= $(DBIN)/pofuzzy1
|
||||
POFUZZY2 ?= $(DBIN)/pofuzzy2
|
||||
POFUZZY ?= $(DBIN)/pofuzzy
|
||||
|
||||
# Remote file source (related to Debian package archive URLs)
|
||||
#DEBM := http://ftp.us.debian.org/debian/dists
|
||||
|
|
@ -203,20 +167,14 @@ endef
|
|||
.PHONY: all
|
||||
# set LANGPO to limit language to speed up build
|
||||
all: css html txt pdf
|
||||
@echo "PO status: fuzzy1 ======================"
|
||||
-cat fuzzy1.log
|
||||
@echo "PO status: fuzzy2 ======================"
|
||||
-cat fuzzy2.log
|
||||
-cat fuzzy.log
|
||||
|
||||
#######################################################################
|
||||
# $ make test # build html for all languages (for Translator)
|
||||
#######################################################################
|
||||
.PHONY: test
|
||||
test: html css
|
||||
@echo "PO status: fuzzy1 ======================"
|
||||
-cat fuzzy1.log
|
||||
@echo "PO status: fuzzy2 ======================"
|
||||
-cat fuzzy2.log
|
||||
-cat fuzzy.log
|
||||
|
||||
#######################################################################
|
||||
# $ make entity # refresh remote.ent (Need remote access)
|
||||
|
|
@ -507,28 +465,22 @@ $(MANUAL).en.xmlt: $(DRAW)/$(MANUAL).rawxml $(DRAW)/header.rawxml
|
|||
#######################################################################
|
||||
# This phase of build now calls po4a twice via $(PO4A1) and $(PO4A2)
|
||||
# base XML files for all languages and update PO
|
||||
# Completion marker is fuzzy1.log and fuzzy2.log for translation status
|
||||
# Completion marker is fuzzy.log listng translation status
|
||||
|
||||
POFILES = $(addsuffix .po, $(addprefix po/, $(LANGPO)))
|
||||
|
||||
fuzzy1.log: $(POFILES) $(MANUAL).en.xml $(MANUAL).en.xmlt
|
||||
fuzzy.log: $(POFILES) $(MANUAL).en.xml $(MANUAL).en.xmlt
|
||||
@$(call check-command, po4a)
|
||||
@$(call check-command, msgcat, gettext)
|
||||
$(PO4A1) $(LANGPO)
|
||||
$(POFUZZY1) $(LANGPO) >fuzzy1.log
|
||||
$(POFUZZY) $(LANGPO) >fuzzy.log
|
||||
|
||||
.PHONY: xml
|
||||
fuzzy2.log: fuzzy1.log
|
||||
$(PO4ATMP) $(LANGPO)
|
||||
$(POFUZZY2) $(LANGPO) >fuzzy2.log
|
||||
cp -r po-tmp po-keep
|
||||
xml: fuzzy.log
|
||||
$(PO4A2) $(LANGPO)
|
||||
|
||||
.PHONY: po
|
||||
po: fuzzy1.log
|
||||
|
||||
.PHONY: xml
|
||||
xml: fuzzy2.log
|
||||
po: fuzzy.log
|
||||
|
||||
$(addsuffix .xml, $(addprefix $(MANUAL)., $(LANGPO))): xml
|
||||
|
||||
|
|
@ -584,7 +536,6 @@ $(BUILD_DIR)/$(MANUAL).%.txt.gz: $(MANUAL).%.xml $(SRC_ENT)
|
|||
.PHONY: pdf
|
||||
pdf: $(foreach LX, $(LANGALL), $(BUILD_DIR)/$(MANUAL).$(LX).pdf)
|
||||
|
||||
ifeq "$(STRATEGY)" "stable"
|
||||
nopdf: $(BUILD_DIR)/nopdf.pdf
|
||||
|
||||
$(BUILD_DIR)/nopdf.pdf: nopdf.tex
|
||||
|
|
@ -611,54 +562,7 @@ $(BUILD_DIR)/$(MANUAL).%.pdf: $(MANUAL).%.xml $(SRC_ENT)
|
|||
--xsl-user=$(DXSL)/xetex_param.xsl \
|
||||
--param=draft.mode=$(DRAFTMODE) \
|
||||
--param=lingua=$* \
|
||||
--output=$@ - || { \
|
||||
echo "Error message here may be ignored as long as PDF(language=$*) file is generated."; \
|
||||
if test -e $@ ; then \
|
||||
echo "PDF($@) build successfully"; true ; \
|
||||
else \
|
||||
echo "PDF($@) is missing"; false ; \
|
||||
fi ; }
|
||||
|
||||
$(KEEP_DIR)/$(MANUAL).%.pdf: $(BUILD_DIR)/$(MANUAL).%.pdf
|
||||
cp -f $(BUILD_DIR)/$(MANUAL).$*.pdf $(KEEP_DIR)/$(MANUAL).$*.pdf
|
||||
|
||||
.PHONY: copy
|
||||
copy:
|
||||
$(MAKE) $(foreach LX, $(LANGALL), $(KEEP_DIR)/$(MANUAL).$(LX).pdf)
|
||||
|
||||
.PHONY: prep
|
||||
prep:
|
||||
mkdir -p $(KEEP_DIR)
|
||||
git describe > $(KEEP_DIR)/git_id
|
||||
$(MAKE) copy "LANGPO=$(LANGPO_PREP)"
|
||||
|
||||
else # STRATEGY "unstable"
|
||||
|
||||
# dblatex.xsl provide work around for hidden URL links by appending them explicitly.
|
||||
$(BUILD_DIR)/$(MANUAL).%.pdf: $(MANUAL).%.xml $(SRC_ENT)
|
||||
@$(call check-command, dblatex, dblatex)
|
||||
@$(call check-command, xsltproc, xsltproc)
|
||||
-mkdir -p $(BUILD_DIR)
|
||||
@test -n "$(DBLATEX)" || { echo "ERROR: dblatex not found. Please install the dblatex package." ; false ; }
|
||||
export TEXINPUTS=".:"; \
|
||||
$(XPINC) $(DXSL)/dblatex.xsl $< | \
|
||||
$(DBLATEX) --style=native \
|
||||
--debug \
|
||||
--backend=xetex \
|
||||
--xsl-user=$(DXSL)/user_param.xsl \
|
||||
--xsl-user=$(DXSL)/xetex_param.xsl \
|
||||
--param=draft.mode=$(DRAFTMODE) \
|
||||
--param=lingua=$* \
|
||||
--output=$@ - || { \
|
||||
echo "Error message here may be ignored as long as PDF(language=$*) file is generated."; \
|
||||
if test -e $@ ; then \
|
||||
echo "PDF($@) build successfully"; true ; \
|
||||
elif git diff --quiet $(shell cat $(KEEP_DIR)/git_id)..HEAD po rawxml && test -e $(KEEP_DIR)/$(MANUAL).$*.pdf; then \
|
||||
cp -f $(KEEP_DIR)/$(MANUAL).$*.pdf $(BUILD_DIR)/$(MANUAL).$*.pdf ; true ;\
|
||||
else \
|
||||
echo "valid PDF($(KEEP_DIR)/$(MANUAL).$*.pdf) is missing"; false ; \
|
||||
fi ; }
|
||||
endif
|
||||
--output=$@ - || { echo "OMG!!!!!! XXX_CHECK_XXX ... Do not worry ..."; true ; }
|
||||
|
||||
#######################################################################
|
||||
# $ make tex # update all TeX source in $(BUILD_DIR)
|
||||
|
|
@ -680,13 +584,7 @@ $(BUILD_DIR)/$(MANUAL).%.tex: $(MANUAL).%.xml $(SRC_ENT)
|
|||
--xsl-user=$(DXSL)/xetex_param.xsl \
|
||||
--param=draft.mode=$(DRAFTMODE) \
|
||||
--param=lingua=$* \
|
||||
--output=$@ - || { \
|
||||
echo "Error message here may be ignored as long as PDF(language=$*) file is generated."; \
|
||||
if test -e $@ ; then \
|
||||
echo "tex source ($@) build successfully"; true ; \
|
||||
else \
|
||||
echo "tex source ($@) is missing"; false ; \
|
||||
fi }
|
||||
--output=$@ - || { echo "OMG!!!!!! XXX_CHECK_XXX ... Do not worry ..."; true ; }
|
||||
|
||||
#######################################################################
|
||||
# $ make epub # update all epub in $(BUILD_DIR)
|
||||
|
|
@ -722,7 +620,7 @@ distclean: clean
|
|||
localclean:
|
||||
# CLEAN
|
||||
-rm -rf $(BUILD_DIR)
|
||||
-rm -rf po-tmp po-keep
|
||||
-rm -rf po-tmp
|
||||
-rm -rf debian/tmp
|
||||
-rm -f *.swp *~ *.tmp
|
||||
-rm -f $(DPO)/*~ $(DPO)/*.mo $(DPO)/*.po.*
|
||||
|
|
@ -739,7 +637,7 @@ localclean:
|
|||
-rm -f $(DRAW)/headerurl.rawxml.urls
|
||||
-rm -f $(DRAW)/headerurl.rawxml.urlsbad
|
||||
-rm -f $(DRAW)/header.rawxml
|
||||
-rm -f fuzzy*.log
|
||||
-rm -f fuzzy.log
|
||||
-rm -f all-xml.stamp
|
||||
-rm -f po4a.cfg po4a-tmp.cfg
|
||||
|
||||
|
|
@ -836,10 +734,6 @@ check:
|
|||
for XX in $(foreach LX, $(LANGPO), $(DPO)/$(LX).po); do \
|
||||
$(MSGCAT) --no-wrap $$XX | grep -e '^msgstr "http.*%' || true ;\
|
||||
done
|
||||
# check for XML sanity in PO%
|
||||
for XX in $(foreach LX, $(LANGPO), $(DPO)/$(LX).po); do \
|
||||
$(DBIN)/xmlpo $$XX || true ;\
|
||||
done
|
||||
|
||||
stat:
|
||||
@$(call check-command, msgcat, gettext)
|
||||
|
|
|
|||
42
README.md
42
README.md
|
|
@ -164,8 +164,6 @@ Let's assume you are updating "fr":
|
|||
$ make wrap LANGPO=fr; make po LANGPO=fr # check fuzzy.log
|
||||
... hack-hack-hack
|
||||
$ make wrap LANGPO=fr; make po LANGPO=fr # check fuzzy.log
|
||||
$ make check LANGPO=fr
|
||||
... check sanity of PO file (optional)
|
||||
$ make test LANGPO=fr
|
||||
... check build/ for good HTML build
|
||||
$ git add po/fr.po
|
||||
|
|
@ -174,10 +172,6 @@ Let's assume you are updating "fr":
|
|||
$ gitk --all # check no remote updates
|
||||
$ git push origin latest
|
||||
```
|
||||
Here, `make check` is an optional step. This can help to identify the error
|
||||
location in the PO file easier than tracing errors in the test HTML build. If
|
||||
you intentionally add supplemental contents with extra XML tags, you can add a
|
||||
translator comment "`skip-tag-match`" for each such PO entry.
|
||||
|
||||
If merging is more complicated, you can create a local topic branch and work.
|
||||
You can use such a topic branch as a remote backup, too.
|
||||
|
|
@ -213,43 +207,19 @@ fuzzy translation data.
|
|||
This is a bit complicated since data on 2 remote services `salsa` and `weblate`
|
||||
may be altered simultaneously.
|
||||
|
||||
~~You need to merge data on 2 remote services and your local changes and update
|
||||
them with merged results.~~
|
||||
You need to merge data on 2 remote services and your local changes and update
|
||||
them with merged results.
|
||||
|
||||
~~For this, `bin/merge-po-files` is used to give best merge result now.~~
|
||||
For this, `bin/merge-po-files` is used to give best merge result now.
|
||||
|
||||
~~Please make sure to update your local repository by running the following:~~
|
||||
Please make sure to update your local repository by running the following:
|
||||
|
||||
<!--
|
||||
```sh
|
||||
$ git config merge.merge-po-files.driver "./bin/merge-po-files %A %O %B %P"
|
||||
```
|
||||
-->
|
||||
|
||||
(The proposed merge script seems to be non-functional at this moment)
|
||||
|
||||
Whenever you merge, it is best to run `make po` and commit updated po files
|
||||
just after the merge.
|
||||
|
||||
## Debugging PO file contents
|
||||
|
||||
Broken build problems for translation are non-trivial to debug by reading the
|
||||
build log or tracing the intermediary files. I made `bin/xmlpo` script to
|
||||
check sanity of PO files.
|
||||
|
||||
This not only finds invalid XML but also find unmatched XML tags which may be
|
||||
caused by careless unfuzzy.
|
||||
|
||||
```sh
|
||||
$ bin/xmlpo -i po4a/po/ja.po
|
||||
E: line=3087 **UNMATCHED XML TAG: fuzzy=False tags_msgid=Counter({'ulink': 33}) tags_msgstr=Counter({'ulink': 32})
|
||||
E: line=3349 **UNMATCHED XML TAG: fuzzy=False tags_msgid=Counter({'emphasis': 1}) tags_msgstr=Counter()
|
||||
E: line=3368 **UNMATCHED XML TAG: fuzzy=False tags_msgid=Counter({'emphasis': 4, 'ulink': 1}) tags_msgstr=Counter({'emphasis': 3, 'ulink': 1})
|
||||
E: line=6869 **UNMATCHED XML TAG: fuzzy=False tags_msgid=Counter({'literal': 3}) tags_msgstr=Counter({'literal': 2})
|
||||
E: line=7377 **UNMATCHED XML TAG: fuzzy=False tags_msgid=Counter({'literal': 3}) tags_msgstr=Counter({'literal': 2})
|
||||
...
|
||||
ERROR COUNT = 43
|
||||
```
|
||||
just after the merge.
|
||||
|
||||
### Set up a local git repo with remotes `salsa` and `weblate`
|
||||
|
||||
|
|
@ -624,7 +594,7 @@ Then you see different error message.
|
|||
$ make test LANGPO=de
|
||||
...
|
||||
mkdir -p /home/osamu/salsa/debian-reference/debian-reference/build
|
||||
xsltproc --novalid --nonet --xinclude --stringparam base.dir /home/osamu/salsa/debian-reference/debian-reference/build/ \
|
||||
/usr/bin/faketime @1702911181 xsltproc --novalid --nonet --xinclude --stringparam base.dir /home/osamu/salsa/debian-reference/debian-reference/build/ \
|
||||
--stringparam html.ext .de.html \
|
||||
xslt/style-html.xsl debian-reference.de.xml
|
||||
debian-reference.de.xml:1940: parser error : Premature end of data in tag section line 1917
|
||||
|
|
|
|||
101
bin/colspec.py
101
bin/colspec.py
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env python3
|
||||
# vim: set sw=4 sts=4 expandtab:
|
||||
# vim: set sts=4 expandtab:
|
||||
|
||||
"""
|
||||
colspec.py - set colspec in XML to correct values
|
||||
|
|
@ -7,101 +7,98 @@ colspec.py - set colspec in XML to correct values
|
|||
Copyright (C) 2009 Osamu Aoki, GPL
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
import sys, os, re
|
||||
|
||||
VERSION = "1.0.1"
|
||||
VERSION = '1.0.1'
|
||||
|
||||
if __name__ == "__main__":
|
||||
table_id = ""
|
||||
if __name__ == '__main__':
|
||||
|
||||
table_id = ''
|
||||
tgroup_cols = 0
|
||||
|
||||
for line in sys.stdin.readlines():
|
||||
line = line[0:-1]
|
||||
line=line[0:-1]
|
||||
if re.match('.*table id="', line):
|
||||
table_id = re.sub(r'.*table id="([^"]*)".*', r"\1", line)
|
||||
# print "table id =" + table_id
|
||||
elif re.match(".*<title>", line):
|
||||
title = re.sub(r".*<title>([^<]*)</title>.*", r"\1", line)
|
||||
# print "title =" + title
|
||||
table_id = re.sub(r'.*table id="([^"]*)".*',r'\1',line)
|
||||
# print "table id =" + table_id
|
||||
elif re.match('.*<title>', line):
|
||||
title = re.sub(r'.*<title>([^<]*)</title>.*',r'\1',line)
|
||||
# print "title =" + title
|
||||
elif re.match('.*tgroup cols="', line):
|
||||
tgroup_cols = int(re.sub(r'.*tgroup cols="([^"]*)".*', r"\1", line))
|
||||
# print "tgroup_cols =", tgroup_cols
|
||||
tgroup_cols = int(re.sub(r'.*tgroup cols="([^"]*)".*',r'\1',line))
|
||||
# print "tgroup_cols =", tgroup_cols
|
||||
cols = 0
|
||||
if tgroup_cols == 2:
|
||||
colwidth = (40, 60)
|
||||
colwidth = (40,60)
|
||||
elif tgroup_cols == 3:
|
||||
colwidth = (30, 30, 40)
|
||||
colwidth = (30,30,40)
|
||||
elif tgroup_cols == 4:
|
||||
colwidth = (20, 12, 6, 62)
|
||||
colwidth = (20,12,6,62)
|
||||
elif tgroup_cols == 5:
|
||||
colwidth = (20, 12, 6, 12, 50)
|
||||
colwidth = (20,12,6,12,50)
|
||||
elif tgroup_cols == 6:
|
||||
colwidth = (20, 12, 6, 12, 12, 38)
|
||||
colwidth = (20,12,6,12,12,38)
|
||||
elif tgroup_cols == 7:
|
||||
colwidth = (20, 12, 6, 12, 12, 12, 26)
|
||||
colwidth = (20,12,6,12,12,12,26)
|
||||
elif tgroup_cols == 8:
|
||||
colwidth = (20, 12, 6, 6, 6, 6, 6, 26)
|
||||
colwidth = (20,12,6,6,6,6,6,26)
|
||||
# List of exceptions
|
||||
if table_id == "thenumericmodefoinchmodbcommands":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listofnotablesysupsforfileaccess":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listofnotablesysommandexecutions":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listoftypesoftimestamps":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listofnotablesysupsforfileaccess":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listofnotablepinpinningtechnique":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listofkeyboardreigurationmethods":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "listoffilesystemalusagescenarios":
|
||||
colwidth = (20, 80)
|
||||
colwidth = (20,80)
|
||||
elif table_id == "thereplacementexpression":
|
||||
colwidth = (30, 70)
|
||||
colwidth = (30,70)
|
||||
elif table_id == "thekeybindingsofmc":
|
||||
colwidth = (30, 70)
|
||||
colwidth = (30,70)
|
||||
elif table_id == "listofkeywebsiteaspecificpackage":
|
||||
colwidth = (30, 70)
|
||||
colwidth = (30,70)
|
||||
elif table_id == "listofspecialdevicefiles":
|
||||
colwidth = (30, 20, 50)
|
||||
colwidth = (30,20,50)
|
||||
elif table_id == "listofdebianarchivearea":
|
||||
colwidth = (20, 20, 60)
|
||||
colwidth = (20,20,60)
|
||||
elif table_id == "listofviewsforaptitude":
|
||||
colwidth = (20, 20, 60)
|
||||
colwidth = (20,20,60)
|
||||
elif table_id == "listofrunlevelsationoftheirusage":
|
||||
colwidth = (20, 20, 60)
|
||||
colwidth = (20,20,60)
|
||||
elif table_id == "listofsshauthenttocolsandmethods":
|
||||
colwidth = (20, 40, 40)
|
||||
colwidth = (20,40,40)
|
||||
elif table_id == "listofterminologornetworkdevices":
|
||||
colwidth = (20, 20, 25, 35)
|
||||
colwidth = (20,20,25,35)
|
||||
elif table_id == "tableofkeywordsundicatefonttypes":
|
||||
colwidth = (25, 25, 25, 25)
|
||||
colwidth = (25,25,25,25)
|
||||
elif table_id == "listofinsecureanservicesandports":
|
||||
colwidth = (25, 25, 25, 25)
|
||||
colwidth = (25,25,25,25)
|
||||
elif table_id == "therelationshipbsuiteandcodename":
|
||||
colwidth = (25, 25, 25, 25)
|
||||
colwidth = (25,25,25,25)
|
||||
elif table_id == "theumaskvalueexamples":
|
||||
colwidth = (20, 25, 25, 30)
|
||||
colwidth = (20,25,25,30)
|
||||
elif table_id == "dimportantconfigilesforpam_unixi":
|
||||
colwidth = (20, 20, 10, 10, 40)
|
||||
colwidth = (20,20,10,10,40)
|
||||
elif table_id == "listoftoolstogeneratepassword":
|
||||
colwidth = (15, 15, 10, 15, 45)
|
||||
colwidth = (15,15,10,15,45)
|
||||
elif table_id == "listofnetworkaddressranges":
|
||||
colwidth = (10, 40, 30, 10, 10)
|
||||
colwidth = (10,40,30,10,10)
|
||||
|
||||
|
||||
if re.match('.*table pgwide="', line):
|
||||
print(re.sub(r'(.*table pgwide=)"0"(.*)', r'\1"1"\2', line))
|
||||
print(re.sub(r'(.*table pgwide=)"0"(.*)',r'\1"1"\2',line))
|
||||
elif re.match('.*colspec colwidth="', line):
|
||||
x = str(colwidth[cols])
|
||||
cols += 1
|
||||
print(
|
||||
re.sub(r'(.*colspec colwidth=").*', r"\1", line)
|
||||
+ str(x)
|
||||
+ "*"
|
||||
+ re.sub(r'.*colspec colwidth="[^"]*(".*)', r"\1", line)
|
||||
)
|
||||
print(re.sub(r'(.*colspec colwidth=").*',r'\1',line)+str(x)+"*"+re.sub(r'.*colspec colwidth="[^"]*(".*)',r'\1',line))
|
||||
else:
|
||||
print(line)
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
set -e # stop at first error
|
||||
#set -x # debug
|
||||
|
||||
DR_DOC_ROOT="/usr/share/doc/debian-reference-common"
|
||||
DR_DOC_ROOT="/usr/share/doc/debian-reference"
|
||||
if [ -d $DR_DOC_ROOT ] && [ -d $DR_DOC_ROOT/docs ] && [ -r $DR_DOC_ROOT/docs/index.html ]; then
|
||||
/usr/bin/sensible-browser $DR_DOC_ROOT/docs/index.html
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# vim: set sts=4 expandtab:
|
||||
PKG_GEN=$1
|
||||
PKG_VER=$(grep -e "^Package:" packages.txt |
|
||||
sed -e "s/Package: //" |
|
||||
grep -e "^${PKG_GEN}[-\.0-9]*[0-9]\$" |
|
||||
sort -n |
|
||||
tail -1)
|
||||
PKG_VER=$(grep -e "^Package:" packages.txt |\
|
||||
sed -e "s/Package: //" |\
|
||||
grep -e "^${PKG_GEN}[-\.0-9]*[0-9]\$"|\
|
||||
sort -n|\
|
||||
tail -1)
|
||||
if [ -n "${PKG_VER}" ]; then
|
||||
echo "s/@${PKG_GEN}@/${PKG_VER}/g"
|
||||
echo "s/@${PKG_GEN}@/${PKG_VER}/g"
|
||||
else
|
||||
echo "s/@${PKG_GEN}@/${PKG_GEN}*/g"
|
||||
echo "*** ${PKG_GEN} is missing ***" >&2
|
||||
grep -e "^Package:" packages.txt |
|
||||
sed -e "s/Package: //" |
|
||||
echo "s/@${PKG_GEN}@/${PKG_GEN}*/g"
|
||||
echo "*** ${PKG_GEN} is missing ***" >&2
|
||||
grep -e "^Package:" packages.txt |\
|
||||
sed -e "s/Package: //" |\
|
||||
grep -e "^${PKG_GEN}[-\.0-9]*[0-9]\$" <&2
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
#
|
||||
# interwiki LANGUAGE [MODE]
|
||||
#
|
||||
#
|
||||
# LANGUAGE = ja, fr, es, ...
|
||||
# MODE = PRINT, NO
|
||||
# PRINT means to print English URL if translation does not exist.
|
||||
|
|
@ -9,22 +9,23 @@
|
|||
#
|
||||
LANGAGE=$1
|
||||
MODE=$2
|
||||
while read -r X; do
|
||||
# normal translation
|
||||
Y=$(wget -O - "$X" 2>/dev/null | sed -n "s/^.*interwiki-${LANGAGE}\"><a href=\"\(.*\)\".*$/\1/p" | sed 's/%/\\x/')
|
||||
# just translate funky UTF-8 URLs
|
||||
#Y=$(wget -O - $X 2>/dev/null |sed -n "s/^.*interwiki-${LANGAGE}\"><a href=\"\(.*\)\".*$/\1/p" | sed -n 's/%/\\x/g')
|
||||
if [ -n "$Y" ]; then
|
||||
echo "# ----------------- translated"
|
||||
echo "msgid \"$X\""
|
||||
/usr/bin/printf '%b\n' "msgstr \"$Y\""
|
||||
echo ""
|
||||
echo "--- $X: translated." 1>&2
|
||||
elif [ "$MODE" = "PRINT" ]; then
|
||||
echo "# ################# no-translaton"
|
||||
echo "msgid \"$X\""
|
||||
echo "msgstr \"$X\""
|
||||
echo ""
|
||||
echo "### $X: no-translaton." 1>&2
|
||||
fi
|
||||
while read X ; do
|
||||
# normal translation
|
||||
Y=$(wget -O - $X 2>/dev/null |sed -n "s/^.*interwiki-${LANGAGE}\"><a href=\"\(.*\)\".*$/\1/p" | sed 's/%/\\x/')
|
||||
# just translate funky UTF-8 URLs
|
||||
#Y=$(wget -O - $X 2>/dev/null |sed -n "s/^.*interwiki-${LANGAGE}\"><a href=\"\(.*\)\".*$/\1/p" | sed -n 's/%/\\x/g')
|
||||
if [ -n "$Y" ]; then
|
||||
echo "# ----------------- translated"
|
||||
echo "msgid \"$X\""
|
||||
/usr/bin/printf '%b\n' "msgstr \"$Y\""
|
||||
echo ""
|
||||
echo "--- $X: translated." 1>&2
|
||||
elif [ "$MODE" = "PRINT" ]; then
|
||||
echo "# ################# no-translaton"
|
||||
echo "msgid \"$X\""
|
||||
echo "msgstr \"$X\""
|
||||
echo ""
|
||||
echo "### $X: no-translaton." 1>&2
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
|||
|
|
@ -50,90 +50,103 @@ OUTPUT="$LOCAL"
|
|||
# use names like "local" and "other" instead of e.g. "local.G2wZ.po".
|
||||
TEMP="$(mktemp -d /tmp/merge-po.XXXXXX)"
|
||||
|
||||
|
||||
# abort on any error and report the details if possible
|
||||
set -E
|
||||
set -e
|
||||
on_error() {
|
||||
local parent_lineno="$1"
|
||||
local message="$3"
|
||||
local code="$2"
|
||||
if [[ -n $message ]]; then
|
||||
printf "### $0: error near line %d: status %d: %s\n" "${parent_lineno}" "${code}" "${message}" 1>&2
|
||||
else
|
||||
printf "### $0: error near line %d: status %d\n" "${parent_lineno}" "${code}" 1>&2
|
||||
fi
|
||||
exit 255
|
||||
on_error()
|
||||
{
|
||||
local parent_lineno="$1"
|
||||
local message="$3"
|
||||
local code="$2"
|
||||
if [[ -n "$message" ]] ; then
|
||||
printf "### $0: error near line %d: status %d: %s\n" "${parent_lineno}" "${code}" "${message}" 1>&2
|
||||
else
|
||||
printf "### $0: error near line %d: status %d\n" "${parent_lineno}" "${code}" 1>&2
|
||||
fi
|
||||
exit 255
|
||||
}
|
||||
trap 'on_error ${LINENO} $?' ERR
|
||||
|
||||
|
||||
# Maybe print message(s) to stdout with timestamps
|
||||
function status() {
|
||||
if test "$VERBOSITY" -ge 3; then
|
||||
printf "%s %s\n" "$(date '+%Y-%m-%d %H:%M:%S.%3N')" "$@"
|
||||
fi
|
||||
function status()
|
||||
{
|
||||
if test "$VERBOSITY" -ge 3
|
||||
then
|
||||
printf "%s %s\n" "$(date '+%Y-%m-%d %H:%M:%S.%3N')" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Quietly take translations from $1 and apply those according to template $2
|
||||
# (and do not use fuzzy-matching, always generate output)
|
||||
# also supports all flags to msgmerge
|
||||
function apply_po_template() {
|
||||
msgmerge --force-po --quiet --no-fuzzy-matching "$@"
|
||||
function apply_po_template()
|
||||
{
|
||||
msgmerge --force-po --quiet --no-fuzzy-matching "$@"
|
||||
}
|
||||
|
||||
# Take stdin, remove the "graveyard strings" and emit the result to stdout
|
||||
function strip_graveyard() {
|
||||
msgattrib --no-obsolete
|
||||
function strip_graveyard()
|
||||
{
|
||||
msgattrib --no-obsolete
|
||||
}
|
||||
|
||||
# Take stdin, keep only confict lines and emit the result to stdout
|
||||
function only_conflicts() {
|
||||
msggrep --msgstr -F -e '#-#-#-#-#' -
|
||||
# alternative slightly worse implementation: msgattrib --only-fuzzy
|
||||
function only_conflicts()
|
||||
{
|
||||
msggrep --msgstr -F -e '#-#-#-#-#' -
|
||||
# alternative slightly worse implementation: msgattrib --only-fuzzy
|
||||
}
|
||||
|
||||
# Take stdin, discard confict lines and emit the result to stdout
|
||||
function without_conflicts() {
|
||||
msggrep -v --msgstr -F -e '#-#-#-#-#' -
|
||||
# alternative slightly worse implementation: msgattrib --no-fuzzy
|
||||
function without_conflicts()
|
||||
{
|
||||
msggrep -v --msgstr -F -e '#-#-#-#-#' -
|
||||
# alternative slightly worse implementation: msgattrib --no-fuzzy
|
||||
}
|
||||
|
||||
# Select messages from $1 that are also in $2 but whose contents have changed
|
||||
# and emit results to stdout
|
||||
function extract_changes() {
|
||||
# Extract conflicting changes and discard any changes to graveyard area only
|
||||
msgcat -o - "$1" "$2" |
|
||||
only_conflicts |
|
||||
apply_po_template -o - "$1" - |
|
||||
strip_graveyard
|
||||
function extract_changes()
|
||||
{
|
||||
# Extract conflicting changes and discard any changes to graveyard area only
|
||||
msgcat -o - "$1" "$2" \
|
||||
| only_conflicts \
|
||||
| apply_po_template -o - "$1" - \
|
||||
| strip_graveyard
|
||||
}
|
||||
|
||||
# Emit only the header of $1, supports flags of msggrep
|
||||
function extract_header() {
|
||||
# Unfortunately gettext really doesn't support extracting just header
|
||||
# so we have to get creative: extract only strings that originate
|
||||
# from file called "//" which should result to header only
|
||||
msggrep --force-po -N // "$@"
|
||||
function extract_header()
|
||||
{
|
||||
# Unfortunately gettext really doesn't support extracting just header
|
||||
# so we have to get creative: extract only strings that originate
|
||||
# from file called "//" which should result to header only
|
||||
msggrep --force-po -N // "$@"
|
||||
|
||||
# Logically msggrep --force-po -v -K -E -e '.' should return the header
|
||||
# only but msggrep seems be buggy with msgids with line feeds and output
|
||||
# those, too
|
||||
# Logically msggrep --force-po -v -K -E -e '.' should return the header
|
||||
# only but msggrep seems be buggy with msgids with line feeds and output
|
||||
# those, too
|
||||
}
|
||||
|
||||
# Take file in $1 and show conflicts with colors in the file to stdout
|
||||
function show_conflicts() {
|
||||
OUTPUT="$1"
|
||||
shift
|
||||
# Count number of lines to remove from the output and output conflict lines without the header
|
||||
CONFLICT_HEADER_LINES=$(cat "$OUTPUT" | msggrep --force-po --color=never --msgstr -F -e '#-#-#-#-#' - | extract_header - | wc -l)
|
||||
# tail wants line number of the first displayed line so we want +1 here:
|
||||
CONFLICTS=$(cat "$OUTPUT" | msggrep --force-po --color --msgstr -F -e '#-#-#-#-#' - | tail -n "+$((CONFLICT_HEADER_LINES + 1))")
|
||||
if test -n "$CONFLICTS"; then
|
||||
#echo "----------------------------"
|
||||
#echo "Conflicts after merge:"
|
||||
echo "----------------------------"
|
||||
printf "%s\n" "$CONFLICTS"
|
||||
echo "----------------------------"
|
||||
fi
|
||||
function show_conflicts()
|
||||
{
|
||||
OUTPUT="$1"
|
||||
shift
|
||||
# Count number of lines to remove from the output and output conflict lines without the header
|
||||
CONFLICT_HEADER_LINES=$(cat "$OUTPUT" | msggrep --force-po --color=never --msgstr -F -e '#-#-#-#-#' - | extract_header - | wc -l)
|
||||
# tail wants line number of the first displayed line so we want +1 here:
|
||||
CONFLICTS=$(cat "$OUTPUT" | msggrep --force-po --color --msgstr -F -e '#-#-#-#-#' - | tail -n "+$((CONFLICT_HEADER_LINES+1))")
|
||||
if test -n "$CONFLICTS"
|
||||
then
|
||||
#echo "----------------------------"
|
||||
#echo "Conflicts after merge:"
|
||||
echo "----------------------------"
|
||||
printf "%s\n" "$CONFLICTS"
|
||||
echo "----------------------------"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check that we have a sensible temporary directory
|
||||
|
|
@ -141,8 +154,9 @@ test -n "$TEMP" || exit 125
|
|||
test -d "$TEMP" || exit 126
|
||||
test -w "$TEMP" || exit 127
|
||||
|
||||
if test "$VERBOSITY" -ge 1; then
|
||||
printf "Using gettext .PO merge driver: %s ...\n" "$FILENAME"
|
||||
if test "$VERBOSITY" -ge 1
|
||||
then
|
||||
printf "Using gettext .PO merge driver: %s ...\n" "$FILENAME"
|
||||
fi
|
||||
|
||||
# Extract the PO header from the current branch (top of file until first empty line)
|
||||
|
|
@ -151,6 +165,7 @@ extract_header -o "${TEMP}/header" "$LOCAL"
|
|||
##########################################################################
|
||||
# Following parts can be run partially parallel and "wait" is used to syncronize processing
|
||||
|
||||
|
||||
# Clean input files and use logical filenames for possible conflict markers:
|
||||
status "Canonicalizing input files ..."
|
||||
msguniq --force-po -o "${TEMP}/base" --unique "${BASE}" &
|
||||
|
|
@ -159,18 +174,18 @@ msguniq --force-po -o "${TEMP}/other" --unique "${OTHER}" &
|
|||
wait
|
||||
|
||||
status "Computing local-changes, other-changes and unchanged ..."
|
||||
msgcat --force-po -o - "${TEMP}/base" "${TEMP}/local" "${TEMP}/other" | without_conflicts >"${TEMP}/unchanged" &
|
||||
extract_changes "${TEMP}/local" "${TEMP}/base" >"${TEMP}/local-changes" &
|
||||
extract_changes "${TEMP}/other" "${TEMP}/base" >"${TEMP}/other-changes" &
|
||||
msgcat --force-po -o - "${TEMP}/base" "${TEMP}/local" "${TEMP}/other" | without_conflicts > "${TEMP}/unchanged" &
|
||||
extract_changes "${TEMP}/local" "${TEMP}/base" > "${TEMP}/local-changes" &
|
||||
extract_changes "${TEMP}/other" "${TEMP}/base" > "${TEMP}/other-changes" &
|
||||
wait
|
||||
|
||||
# Messages changed on both local and other (conflicts):
|
||||
status "Computing conflicts ..."
|
||||
msgcat --force-po -o - "${TEMP}/other-changes" "${TEMP}/local-changes" | only_conflicts >"${TEMP}/conflicts"
|
||||
msgcat --force-po -o - "${TEMP}/other-changes" "${TEMP}/local-changes" | only_conflicts > "${TEMP}/conflicts"
|
||||
|
||||
# Messages changed on local, not on other; and vice-versa:
|
||||
status "Computing local-only and other-only changes ..."
|
||||
msgcat --force-po -o "${TEMP}/local-only" --unique "${TEMP}/local-changes" "${TEMP}/conflicts" &
|
||||
msgcat --force-po -o "${TEMP}/local-only" --unique "${TEMP}/local-changes" "${TEMP}/conflicts" &
|
||||
msgcat --force-po -o "${TEMP}/other-only" --unique "${TEMP}/other-changes" "${TEMP}/conflicts" &
|
||||
wait
|
||||
|
||||
|
|
@ -200,18 +215,21 @@ rmdir "${TEMP}"
|
|||
status "Checking for conflicts in the result ..."
|
||||
|
||||
# Check for conflicts in the final merge
|
||||
if grep -q '#-#-#-#-#' "$OUTPUT"; then
|
||||
if test "$VERBOSITY" -ge 1; then
|
||||
printf "### Conflict(s) detected ###\n"
|
||||
fi
|
||||
if grep -q '#-#-#-#-#' "$OUTPUT"
|
||||
then
|
||||
if test "$VERBOSITY" -ge 1
|
||||
then
|
||||
printf "### Conflict(s) detected ###\n"
|
||||
fi
|
||||
|
||||
if test "$VERBOSITY" -ge 2; then
|
||||
# Verbose diagnostics
|
||||
show_conflicts "$OUTPUT"
|
||||
fi
|
||||
if test "$VERBOSITY" -ge 2
|
||||
then
|
||||
# Verbose diagnostics
|
||||
show_conflicts "$OUTPUT"
|
||||
fi
|
||||
|
||||
status "Automatic merge failed, exiting with status 1."
|
||||
exit 1
|
||||
status "Automatic merge failed, exiting with status 1."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
status "Automatic merge completed successfully, exiting with status 0."
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# vim:set sw=2 et sts=2:
|
||||
TITLE="Debian Reference (version 2)"
|
||||
PACKAGE="debian-reference" # Yes this has been changed
|
||||
DR_DOC_ROOT=${DR_DOC_ROOT:-/usr/share/doc/debian-reference-common}
|
||||
DR_DOC_ROOT=${DR_DOC_ROOT:-/usr/share/doc/debian-reference}
|
||||
README="/usr/share/doc/debian-reference-common/README"
|
||||
|
||||
# Echo Language name
|
||||
|
|
@ -17,8 +17,6 @@ echolang () {
|
|||
"pl") echo "<dt><b>Polish</b></dt>";;
|
||||
"pt") echo "<dt><b>Portuguese (Portugal)</b></dt>";;
|
||||
"pt-br") echo "<dt><b>Portuguese (Brazil)</b></dt>";;
|
||||
"ro") echo "<dt><b>Romanian</b></dt>";;
|
||||
"sv") echo "<dt><b>Swedish</b></dt>";;
|
||||
"zh-tw") echo "<dt><b>Chinese (Traditional)</b></dt>";;
|
||||
"zh-cn") echo "<dt><b>Chinese (Simplified)</b></dt>";;
|
||||
"ja") echo "<dt><b>Japanese</b></dt>";;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# vim: set sw=4 sts=4 expandtab:
|
||||
# simple script to merge 2 or more PO files
|
||||
{
|
||||
msgcat --no-wrap "$1"
|
||||
while true; do
|
||||
shift
|
||||
if [ -z "$1" ]; then
|
||||
break
|
||||
else
|
||||
msgcat --no-wrap "$1" | sed -n -e '/^msgid "[^"]/,$p'
|
||||
fi
|
||||
done
|
||||
msgcat --no-wrap "$1"
|
||||
while true; do
|
||||
shift
|
||||
if [ -z "$1" ]; then
|
||||
break
|
||||
else
|
||||
msgcat --no-wrap "$1" |sed -n -e '/^msgid "[^"]/,$p'
|
||||
fi
|
||||
done
|
||||
} | msguniq --use-first
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# vim: set sts=4 expandtab:
|
||||
# remove obsolete
|
||||
mv "$1" "$1.orig"
|
||||
msgattrib --no-obsolete -o "$1" "$1.orig"
|
||||
msgattrib --no-obsolete -o "$1" "$1.orig"
|
||||
|
||||
|
|
|
|||
12
bin/po4a1
12
bin/po4a1
|
|
@ -7,8 +7,13 @@
|
|||
#
|
||||
# List of translation languges as arguments
|
||||
LANGPO="$*"
|
||||
# Directory holding po data based on debian-reference.en.xmlt (persistent)
|
||||
DPO="po"
|
||||
DBIN="bin"
|
||||
# The threshold should be 80 if translation is completed.
|
||||
MSGCAT="/usr/bin/msgcat"
|
||||
# current debian-reference package verison in Debian
|
||||
DVERSION=$(dpkg-parsechangelog -S Version)
|
||||
DVERSION=`dpkg-parsechangelog -S Version`
|
||||
|
||||
echo "I: build English source"
|
||||
make debian-reference.en.xml
|
||||
|
|
@ -17,6 +22,9 @@ make debian-reference.en.xmlt
|
|||
# since po/debian-reference.pot is commited to git repo, no need to do this any more.
|
||||
#touch -t 200001010000.00 po/debian-reference.pot
|
||||
# set up po4a.cfg for po
|
||||
sed -e "s/@LANGPO@/${LANGPO}/" -e "s/@DVERSION@/${DVERSION}/" po4a.cfg.in >po4a.cfg
|
||||
sed -e "s/@LANGPO@/${LANGPO}/" -e "s/@DVERSION@/${DVERSION}/" po4a.cfg.in > po4a.cfg
|
||||
echo "I: update po/*.po based on debian-reference.en.xmlt"
|
||||
po4a po4a.cfg
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
45
bin/po4a2
45
bin/po4a2
|
|
@ -7,14 +7,55 @@
|
|||
#
|
||||
# List of translation languges as arguments
|
||||
LANGPO="$*"
|
||||
# Directory holding po data based on debian-reference.en.xmlt (persistent)
|
||||
DPO="po"
|
||||
# Directory holding po data applied to debian-reference.en.xml (temporary)
|
||||
DPOTMP="po-tmp"
|
||||
DBIN="bin"
|
||||
# data directory for opencc
|
||||
DCC="/usr/share/opencc"
|
||||
# The threshold should be 80 if translation is completed.
|
||||
MSGCAT="/usr/bin/msgcat"
|
||||
# command to auto-translate between zh-cn <-> zh-tw
|
||||
OPENCC="/usr/bin/opencc"
|
||||
# current debian-reference package verison in Debian
|
||||
DVERSION=$(dpkg-parsechangelog -S Version)
|
||||
DVERSION=`dpkg-parsechangelog -S Version`
|
||||
|
||||
# Generate PO for zh-cn (use zh-tw as extra fallback data source with help of opencc)
|
||||
gen_po_zh_CN () {
|
||||
if [ -f ${OPENCC} ] ; then
|
||||
rm -f ${DPOTMP}/zh-cn.po
|
||||
${MSGCAT} --no-wrap ${DPO}/zh-tw.po | ${OPENCC} -c ${DCC}/tw2sp.json -o ${DPO}/zh-cn.po-opencc
|
||||
${MSGCAT} -o ${DPOTMP}/zh-cn.po --use-first ${DPO}/zh-cn.po ${DPO}/zh-cn.po-opencc
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate PO for zh-tw (use zh-cn as extra fallback data source with help of opencc)
|
||||
gen_po_zh_TW () {
|
||||
if [ -f ${OPENCC} ] ; then
|
||||
rm -f ${DPOTMP}/zh-tw.po
|
||||
${MSGCAT} --no-wrap ${DPO}/zh-cn.po | ${OPENCC} -c ${DCC}/s2twp.json -o ${DPO}/zh-tw.po-opencc
|
||||
${MSGCAT} -o ${DPOTMP}/zh-tw.po --use-first ${DPO}/zh-tw.po ${DPO}/zh-tw.po-opencc
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo "I: create po-tmp/* for debian-reference.en.xml"
|
||||
rm -rf po-tmp
|
||||
cp -r po po-tmp
|
||||
if echo ${LANGPO} | grep -q zh ; then
|
||||
echo "I: update po-tmp/zh-cn.po using opencc and po/zh-tw.po"
|
||||
gen_po_zh_CN
|
||||
echo "I: update po-tmp/zh-tw.po using opencc and po/zh-cn.po"
|
||||
gen_po_zh_TW
|
||||
fi
|
||||
# set up po4a-tmp.cfg for po-tmp
|
||||
sed -e "s/@LANGPO@/${LANGPO}/" -e "s/@DVERSION@/${DVERSION}/" po4a-tmp.cfg.in \
|
||||
>po4a-tmp.cfg
|
||||
> po4a-tmp.cfg
|
||||
echo "I: create empty pot in po-tmp/ with sure-to-be-older timestamp"
|
||||
touch -t 200001010000.00 po-tmp/debian-reference.pot
|
||||
echo "I: update po-tmp/*.po data and build all translations based on debian-reference.en.xml"
|
||||
po4a po4a-tmp.cfg
|
||||
#rm -rf po-tmp
|
||||
|
||||
|
||||
|
|
|
|||
72
bin/po4atmp
72
bin/po4atmp
|
|
@ -1,72 +0,0 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# This is a build script for all *.xml data used by Makefile
|
||||
# This is smart enough
|
||||
# * to skip po data for untranslated and
|
||||
# * to use fall back translation for zh-cn/zh-tw
|
||||
#
|
||||
# List of translation languges as arguments
|
||||
LANGPO="$*"
|
||||
# Directory holding po data based on debian-reference.en.xmlt (persistent)
|
||||
DPO="po"
|
||||
# Directory holding po data applied to debian-reference.en.xml (temporary)
|
||||
DPOTMP="po-tmp"
|
||||
DBIN="bin"
|
||||
# data directory for opencc
|
||||
DCC="/usr/share/opencc"
|
||||
# The threshold should be 80 if translation is completed.
|
||||
MSGCAT="/usr/bin/msgcat"
|
||||
# command to auto-translate between zh-cn <-> zh-tw
|
||||
OPENCC="/usr/bin/opencc"
|
||||
# current debian-reference package verison in Debian
|
||||
DVERSION=$(dpkg-parsechangelog -S Version)
|
||||
|
||||
# Generate PO for zh-cn (use zh-tw as extra fallback data source with help of opencc)
|
||||
gen_po_zh_CN() {
|
||||
if [ -f ${OPENCC} ]; then
|
||||
rm -f ${DPOTMP}/zh-cn.po
|
||||
${MSGCAT} --no-wrap ${DPO}/zh-tw.po | ${OPENCC} -c ${DCC}/tw2sp.json -o ${DPO}/zh-cn.po-opencc
|
||||
${MSGCAT} -o ${DPOTMP}/zh-cn.po --use-first ${DPO}/zh-cn.po ${DPO}/zh-cn.po-opencc
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate PO for zh-tw (use zh-cn as extra fallback data source with help of opencc)
|
||||
gen_po_zh_TW() {
|
||||
if [ -f ${OPENCC} ]; then
|
||||
rm -f ${DPOTMP}/zh-tw.po
|
||||
${MSGCAT} --no-wrap ${DPO}/zh-cn.po | ${OPENCC} -c ${DCC}/s2twp.json -o ${DPO}/zh-tw.po-opencc
|
||||
${MSGCAT} -o ${DPOTMP}/zh-tw.po --use-first ${DPO}/zh-tw.po ${DPO}/zh-tw.po-opencc
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate PO for pt (use pt-br as extra fallback data source)
|
||||
gen_po_pt() {
|
||||
rm -f ${DPOTMP}/pt.po
|
||||
${MSGCAT} -o ${DPOTMP}/pt.po --use-first ${DPO}/pt.po ${DPO}/pt-br.po
|
||||
}
|
||||
|
||||
# Generate PO for pt-br (use pt as extra fallback data source)
|
||||
gen_po_pt_br() {
|
||||
rm -f ${DPOTMP}/pt-br.po
|
||||
${MSGCAT} -o ${DPOTMP}/pt-br.po --use-first ${DPO}/pt-br.po ${DPO}/pt.po
|
||||
}
|
||||
|
||||
echo "I: create po-tmp/* for debian-reference.en.xml"
|
||||
rm -rf po-tmp
|
||||
cp -r po po-tmp
|
||||
if echo ${LANGPO} | grep -q zh; then
|
||||
echo "I: update po-tmp/zh-cn.po using opencc and po/zh-tw.po"
|
||||
gen_po_zh_CN &
|
||||
echo "I: update po-tmp/zh-tw.po using opencc and po/zh-cn.po"
|
||||
gen_po_zh_TW &
|
||||
fi
|
||||
if echo ${LANGPO} | grep -q pt; then
|
||||
echo "I: update po-tmp/pt.po with po/pt-br.po as fall back"
|
||||
gen_po_pt &
|
||||
echo "I: update po-tmp/pt-br.po with po/pt.po as fall back"
|
||||
gen_po_pt_br &
|
||||
fi
|
||||
# wait for all process to finish
|
||||
echo "I: waiting for all updates to finish ..."
|
||||
wait
|
||||
echo "I: finished all updates"
|
||||
18
bin/pofuzzy
Executable file
18
bin/pofuzzy
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sts=4 expandtab:
|
||||
# $1: es.po fr.po pt.po zh-cn.po zh-cn.po-best ...
|
||||
#
|
||||
MSGATTR="msgattrib"
|
||||
MSGCAT="msgcat --no-wrap -"
|
||||
#
|
||||
for f in "$@"; do
|
||||
TOTAL="$(${MSGATTR} --no-obsolete "po/$f" |grep ^msgid |sed 1d|wc -l)"
|
||||
UNTRANSLATED="$(${MSGATTR} --untranslated "po/$f" |grep ^msgid |sed 1d|wc -l)"
|
||||
FUZZY="$(${MSGATTR} --fuzzy "po/$f" |grep ^msgid |sed 1d|wc -l)"
|
||||
COMPLETED="$(( ( TOTAL - UNTRANSLATED - FUZZY ) * 100 / TOTAL ))"
|
||||
echo "$f $TOTAL strings -- TOTAL msgstr to translate"
|
||||
echo "$f $UNTRANSLATED strings -- EMPTY msgstr"
|
||||
echo "$f $FUZZY strings -- FUZZY msgstr"
|
||||
echo "$f $COMPLETED % -- COMPLETED translation (must be more than 40%)"
|
||||
echo
|
||||
done
|
||||
17
bin/pofuzzy1
17
bin/pofuzzy1
|
|
@ -1,17 +0,0 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# $1: es.po fr.po pt.po zh-cn.po zh-cn.po-best ...
|
||||
#
|
||||
MSGATTR="msgattrib"
|
||||
#
|
||||
for f in "$@"; do
|
||||
TOTAL="$(${MSGATTR} --no-obsolete "po/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
UNTRANSLATED="$(${MSGATTR} --untranslated "po/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
FUZZY="$(${MSGATTR} --fuzzy "po/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
COMPLETED="$(((TOTAL - UNTRANSLATED - FUZZY) * 100 / TOTAL))"
|
||||
echo "$f $TOTAL strings -- TOTAL msgstr to translate"
|
||||
echo "$f $UNTRANSLATED strings -- EMPTY msgstr"
|
||||
echo "$f $FUZZY strings -- FUZZY msgstr"
|
||||
echo "$f $COMPLETED % -- COMPLETED translation (must be more than 40%)"
|
||||
echo
|
||||
done
|
||||
17
bin/pofuzzy2
17
bin/pofuzzy2
|
|
@ -1,17 +0,0 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# $1: es.po fr.po pt.po zh-cn.po zh-cn.po-best ...
|
||||
#
|
||||
MSGATTR="msgattrib"
|
||||
#
|
||||
for f in "$@"; do
|
||||
TOTAL="$(${MSGATTR} --no-obsolete "po-tmp/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
UNTRANSLATED="$(${MSGATTR} --untranslated "po-tmp/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
FUZZY="$(${MSGATTR} --fuzzy "po-tmp/$f" | grep ^msgid | sed 1d | wc -l)"
|
||||
COMPLETED="$(((TOTAL - UNTRANSLATED - FUZZY) * 100 / TOTAL))"
|
||||
echo "$f $TOTAL strings -- TOTAL msgstr to translate"
|
||||
echo "$f $UNTRANSLATED strings -- EMPTY msgstr"
|
||||
echo "$f $FUZZY strings -- FUZZY msgstr"
|
||||
echo "$f $COMPLETED % -- COMPLETED translation (must be more than 40%)"
|
||||
echo
|
||||
done
|
||||
|
|
@ -6,38 +6,40 @@
|
|||
# You can redistribute it and/or modify it under the terms of
|
||||
# the GNU General Public License version 2 or later.
|
||||
#
|
||||
#
|
||||
set -e
|
||||
#set -x
|
||||
|
||||
calcpercent() {
|
||||
# now 0.1% as 1 (70 vote or so)
|
||||
# Currently 0.014% is 10 vote
|
||||
if [ "$1" = 0 ] || [ "$2" = 0 ] || [ "$#" = 1 ]; then
|
||||
echo 0
|
||||
else
|
||||
echo $((1000 * ${1} / ${2}))
|
||||
fi
|
||||
calcpercent()
|
||||
{
|
||||
# now 0.1% as 1 (70 vote or so)
|
||||
# Currently 0.014% is 10 vote
|
||||
if [ $1 = 0 ] || [ $2 = 0 ] || [ $# = 1 ]; then
|
||||
echo 0
|
||||
else
|
||||
echo $((1000*${1}/${2}))
|
||||
fi
|
||||
}
|
||||
|
||||
submission=$1
|
||||
|
||||
while read -r _ package vote old new nofile; do
|
||||
installed=$((vote + old + new + nofile))
|
||||
# echo "$package = V:$vote I:$installed"
|
||||
entityname=pop-$(echo "$package" |
|
||||
tr "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" "abcdefghijklmnopqrstuvwxyzabcdefghij" |
|
||||
tr -d " \!#\$%()=\-~^|\\/+*,.?;:@\`\"'&><")
|
||||
if [ $installed -lt 1 ]; then
|
||||
echo "<!ENTITY $entityname \"I:none\">"
|
||||
elif [ $((vote * 10)) -gt "$nofile" ]; then
|
||||
pvote=$(calcpercent "$vote" "$submission")
|
||||
pinst=$(calcpercent "$installed" "$submission")
|
||||
echo "<!ENTITY $entityname \"V:$pvote, I:$pinst\">"
|
||||
else
|
||||
pinst=$(calcpercent "$installed" "$submission")
|
||||
echo "<!ENTITY $entityname \"I:$pinst\">"
|
||||
fi
|
||||
while read dummy package vote old new nofile
|
||||
do
|
||||
installed=$(( $vote + $old + $new + $nofile ))
|
||||
# echo "$package = V:$vote I:$installed"
|
||||
entityname=pop-$(echo $package |tr "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" "abcdefghijklmnopqrstuvwxyzabcdefghij"| \
|
||||
tr -d " \!#\$%()=\-~^|\\/+*,.?;:@\`\"'&><")
|
||||
if [ $installed -lt 1 ]; then
|
||||
echo "<!ENTITY $entityname \"I:none\">"
|
||||
elif [ $(($vote*10)) -gt $nofile ]; then
|
||||
pvote=$(calcpercent $vote $submission)
|
||||
pinst=$(calcpercent $installed $submission)
|
||||
echo "<!ENTITY $entityname \"V:$pvote, I:$pinst\">"
|
||||
else
|
||||
pinst=$(calcpercent $installed $submission)
|
||||
echo "<!ENTITY $entityname \"I:$pinst\">"
|
||||
fi
|
||||
done
|
||||
#
|
||||
#
|
||||
# vim: set sw=2 ai expandtab:
|
||||
# vim: set sts=2 ai expandtab:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ make nowrap
|
|||
#sed -i -e 's,sysv-rc/README.policy-rc.d,init-system-helpers/README.policy-rc.d,g' rawxml/[019]*.rawxml po/*.po po/debian-reference.pot
|
||||
|
||||
# change path to /etc/systemd/ with vi
|
||||
vi '+argdo %s,<literal>\/etc\/init\.d\/<\/literal>,<literal>\/etc\/systemd\/<\/literal>,gec | update' '+q' rawxml/[019]*.rawxml po/*.po
|
||||
vi '+argdo %s,<literal>\/etc\/init\.d\/<\/literal>,<literal>\/etc\/systemd\/<\/literal>,gec | update' '+q' rawxml/[019]*.rawxml po/*.po
|
||||
make wrap
|
||||
|
||||
# If changes to msgid side is needed for typo fix, consider to use some thing along: sed -i -e '/^msgid/s,...,...,g' po/*.po
|
||||
|
|
|
|||
32
bin/sizeent
32
bin/sizeent
|
|
@ -14,32 +14,32 @@ packages=$1
|
|||
bkups=$2
|
||||
stablepackages=$3
|
||||
oldstablepackages=$4
|
||||
while read -r X; do
|
||||
while read X ; do
|
||||
#echo "process: $X" >&2
|
||||
printf "%s" "." >&2
|
||||
PKG=$(echo "$X" | tr "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" "abcdefghijklmnopqrstuvwxyzabcdefghij" |
|
||||
tr -d " \!#\$%()=\-~^|\\/+*,.?;:@\`\"'&><")
|
||||
if SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo "$X" | sed -e 's/\+/\\+/g')\$" "$packages"); then
|
||||
echo -n "." >&2
|
||||
PKG=$(echo $X |tr "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" "abcdefghijklmnopqrstuvwxyzabcdefghij"| \
|
||||
tr -d " \!#\$%()=\-~^|\\/+*,.?;:@\`\"'&><")
|
||||
if SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo $X|sed -e 's/\+/\\+/g')\$" $packages ) ; then
|
||||
echo "<!ENTITY size-${PKG} \"${SIZE}\">"
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo "$X" | sed -e 's/\+/\\+/g')\$" "$bkups"); then
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo $X|sed -e 's/\+/\\+/g')\$" $bkups ) ; then
|
||||
echo "<!ENTITY size-${PKG} \"${SIZE}(*)\">"
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo "$X" | sed -e 's/\+/\\+/g')\$" "$stablepackages"); then
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo $X|sed -e 's/\+/\\+/g')\$" $stablepackages ) ; then
|
||||
echo "<!ENTITY size-${PKG} \"${SIZE}\">"
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo "$X" | sed -e 's/\+/\\+/g')\$" "$oldstablepackages"); then
|
||||
elif SIZE=$(grep-dctrl -e -n --field=Package --show-field=Installed-Size \
|
||||
--pattern="^$(echo $X|sed -e 's/\+/\\+/g')\$" $oldstablepackages ) ; then
|
||||
echo "<!ENTITY size-${PKG} \"${SIZE}\">"
|
||||
else
|
||||
echo "<!ENTITY size-${PKG} \"NOT_FOUND\">"
|
||||
echo "" >&2
|
||||
echo "... ERROR ...: $X, probably a removed or non-amd64 package." >&2
|
||||
echo ".............: See https://tracker.debian.org/" >&2
|
||||
echo "" >&2
|
||||
echo "... ERROR ...: $X, probably a removed or non-amd64 package." >&2
|
||||
echo ".............: See https://tracker.debian.org/" >&2
|
||||
fi
|
||||
done
|
||||
|
||||
echo $0 done >&2
|
||||
#
|
||||
#
|
||||
# vim: set sw=2 ai expandtab:
|
||||
# vim: set sts=2 ai expandtab:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# vim: set sw=4 sts=4 expandtab:
|
||||
# simple script to merge weblate po files without creating tracking branch
|
||||
# See https://docs.weblate.org/en/latest/admin/continuous.html
|
||||
MAIN_BRANCH="latest"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh -e
|
||||
# vim: set sw=2 expandtab:
|
||||
# vim: set sw=4 sts=4 expandtab:
|
||||
# simple script to merge weblate po files
|
||||
|
||||
git checkout weblate-latest
|
||||
|
|
|
|||
224
bin/xmlpo
224
bin/xmlpo
|
|
@ -1,224 +0,0 @@
|
|||
#!/usr/bin/python3
|
||||
# vim:se tw=0 sts=4 ts=4 et ai:
|
||||
"""
|
||||
Copyright © 2024 Osamu Aoki
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
USA
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import collections
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
# You must install python3-polib package
|
||||
import polib
|
||||
|
||||
|
||||
#######################################################################
|
||||
# PO data XML analyzer class
|
||||
#######################################################################
|
||||
class XMLPOEntry:
|
||||
def __init__(self, **kwargs):
|
||||
self.linenum = kwargs.get("linenum", 0)
|
||||
self.tcomment = kwargs.get("tcomment", "")
|
||||
self.msgid = kwargs.get("msgid", "")
|
||||
self.msgstr = kwargs.get("msgstr", "")
|
||||
self.skip_fuzzy = kwargs.get("skip_fuzzy", True)
|
||||
self.skip_obsolete = kwargs.get("skip_obsolete", True)
|
||||
self.mask_entity = kwargs.get("mask_entity", True)
|
||||
self.mask_namespace = kwargs.get("mask_namespace", True)
|
||||
self.check_skip_tag_match = kwargs.get("check_skip_tag_match", True)
|
||||
self.xmsgid = self.msgid
|
||||
self.xmsgstr = self.msgstr
|
||||
if self.mask_entity:
|
||||
self.xmsgid = self.xmsgid.replace("&", "_")
|
||||
self.xmsgstr = self.xmsgstr.replace("&", "_")
|
||||
if self.mask_namespace:
|
||||
self.xmsgid = self.xmsgid.replace("xl:href=", "xl_href=")
|
||||
self.xmsgstr = self.xmsgstr.replace("xl:href=", "xl_href=")
|
||||
# msgid xml analyze
|
||||
self.xml_msgid_err = None
|
||||
xml_msgid = ET.fromstring("<msg></msg>")
|
||||
try:
|
||||
xml_msgid = ET.fromstring("<msg>" + self.xmsgid + "</msg>")
|
||||
except ET.ParseError as err:
|
||||
# look for error position
|
||||
col = max(err.position[1] - len("<msg>"), 0)
|
||||
self.xml_msgid_err = polib.escape(self.msgid[:col]) + '"<<< ERROR'
|
||||
except Exception as err:
|
||||
self.xml_msgid_err = "{} error: {}".format(type(err), err)
|
||||
self.xml_msgid_tags = collections.Counter(
|
||||
[element.tag for element in xml_msgid.iter()]
|
||||
)
|
||||
del self.xml_msgid_tags["msg"]
|
||||
# msgstr xml analyz
|
||||
self.xml_msgstr_err = None
|
||||
xml_msgstr = ET.fromstring("<msg></msg>")
|
||||
try:
|
||||
xml_msgstr = ET.fromstring("<msg>" + self.xmsgstr + "</msg>")
|
||||
except ET.ParseError as err:
|
||||
# look for error position
|
||||
col = max(err.position[1] - len("<msg>"), 0)
|
||||
self.xml_msgstr_err = polib.escape(self.msgstr[:col]) + '"<<< ERROR'
|
||||
except Exception as err:
|
||||
self.xml_msgstr_err = "{} error: {}".format(type(err), err)
|
||||
self.xml_msgstr_tags = collections.Counter(
|
||||
[element.tag for element in xml_msgstr.iter()]
|
||||
)
|
||||
del self.xml_msgstr_tags["msg"]
|
||||
return
|
||||
|
||||
def is_unmatched_xml(self):
|
||||
if self.msgstr == "":
|
||||
# ignore not-yet-translated data
|
||||
return False
|
||||
elif self.xml_msgid_err is not None:
|
||||
# ignore non-valid XML in msgid
|
||||
return False
|
||||
elif self.xml_msgstr_err is not None:
|
||||
# ignore non-valid XML in msgstr
|
||||
return False
|
||||
elif "skip-tag-match" in self.tcomment and self.check_skip_tag_match:
|
||||
# ignore data with "skip-tag-match" in its translator comment
|
||||
return False
|
||||
elif self.xml_msgid_tags == self.xml_msgstr_tags:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
#
|
||||
|
||||
def print_error(self):
|
||||
if self.xml_msgid_err is not None:
|
||||
print("E: msgid XML error at {}".format(self.linenum))
|
||||
print(" {}".format(self.xml_msgid_err))
|
||||
if self.xml_msgstr_err is not None:
|
||||
print("E: msgstr XML error at {}".format(self.linenum))
|
||||
print(" {}".format(self.xml_msgstr_err))
|
||||
if self.xml_msgid_err is not None or self.xml_msgstr_err is not None:
|
||||
print(' msgid "{}"'.format(polib.escape(self.msgid)))
|
||||
print(' msgstr "{}"'.format(polib.escape(self.msgstr)))
|
||||
print()
|
||||
|
||||
def print_unmatched_tags(self):
|
||||
# unmatchd tags
|
||||
if self.is_unmatched_xml() is True:
|
||||
print("W: unmatched XML tag at {}".format(self.linenum))
|
||||
print(" msgid_tags = {}".format(self.xml_msgid_tags))
|
||||
print(" msgstr_tags = {}".format(self.xml_msgstr_tags))
|
||||
print(' msgid "{}"'.format(polib.escape(self.msgid)))
|
||||
print(' msgstr "{}"'.format(polib.escape(self.msgstr)))
|
||||
print()
|
||||
return
|
||||
|
||||
|
||||
#######################################################################
|
||||
# main: parse command line parser
|
||||
#######################################################################
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="""\
|
||||
analyzer for po-file
|
||||
|
||||
copyright 2024 Osamu Aoki <osamu@debian.org>
|
||||
license: MIT
|
||||
"""
|
||||
)
|
||||
parser.add_argument(
|
||||
"-f",
|
||||
"--include-fuzzy",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="force to include fuzzy PO entries",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
"--include-obsolete",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="force to include obsolete PO entries",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-t",
|
||||
"--ignore-skip-tag-match",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="force to ignore skip-tag-match in translator comment",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-e",
|
||||
"--expose-entity",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="force to disable masking of '&' by '_' (expose entity)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-n",
|
||||
"--expose-namespace",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="force to disable masking of 'xl:href=' by 'xl_href=' (expose namespace)",
|
||||
)
|
||||
parser.add_argument("pofile", help="po file to be analyzed")
|
||||
#######################################################################
|
||||
# generate argument parser instance
|
||||
#######################################################################
|
||||
args = parser.parse_args()
|
||||
#######################################################################
|
||||
print("I: Process pofile='{}'".format(args.pofile))
|
||||
print()
|
||||
try:
|
||||
po = polib.pofile(args.pofile)
|
||||
except Exception as err:
|
||||
print("{} error: {} for PO file='{}'".format(type(err), err, args.pofile))
|
||||
sys.exit(1)
|
||||
error_count = 0
|
||||
warn_count = 0
|
||||
for entry in po:
|
||||
if entry.fuzzy and not args.include_fuzzy:
|
||||
continue
|
||||
if entry.obsolete and not args.include_obsolete:
|
||||
continue
|
||||
xmlentry = XMLPOEntry(
|
||||
linenum=entry.linenum,
|
||||
tcomment=entry.tcomment,
|
||||
fuzzy=entry.fuzzy,
|
||||
obsolete=entry.obsolete,
|
||||
msgid=entry.msgid,
|
||||
msgstr=entry.msgstr,
|
||||
mask_entity=not args.expose_entity,
|
||||
mask_namespace=not args.expose_namespace,
|
||||
check_skip_tag_match=not args.ignore_skip_tag_match,
|
||||
)
|
||||
xmlentry.print_error()
|
||||
xmlentry.print_unmatched_tags()
|
||||
if (
|
||||
xmlentry.xml_msgid_err is not None
|
||||
or xmlentry.xml_msgstr_err is not None
|
||||
):
|
||||
error_count += 1
|
||||
if xmlentry.is_unmatched_xml() is True:
|
||||
warn_count += 1
|
||||
print("E: XML markup error counts = {}".format(error_count))
|
||||
print("W: XML unmatched tag counts = {}".format(warn_count))
|
||||
sys.exit(error_count + warn_count)
|
||||
|
||||
|
||||
#######################################################################
|
||||
# Test code
|
||||
#######################################################################
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
# vim:set sw=4 sts=4:
|
||||
1
debian/all.install-in
vendored
1
debian/all.install-in
vendored
|
|
@ -1,4 +1,3 @@
|
|||
build/debian-reference.@@.txt.gz usr/share/doc/debian-reference-common/docs
|
||||
build/debian-reference.@@.pdf usr/share/doc/debian-reference-common/docs
|
||||
build/*.@@.html usr/share/doc/debian-reference-common/docs
|
||||
org.debian.debian-reference-@@.metainfo.xml usr/share/metainfo
|
||||
|
|
|
|||
11
debian/all.metainfo-in
vendored
11
debian/all.metainfo-in
vendored
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2026 Osamu Aoki <osamu@debian.org> -->
|
||||
<component type="addon">
|
||||
<id>org.debian.debian-reference-@@</id>
|
||||
<extends>debian-reference-common.desktop</extends>
|
||||
<name>Debian Reference (@LANG@)</name>
|
||||
<summary>Debian system administration guide, @LANG@ document</summary>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<url type="homepage">https://www.debian.org/doc/user-manuals#quick-reference</url>
|
||||
</component>
|
||||
358
debian/changelog
vendored
358
debian/changelog
vendored
|
|
@ -1,361 +1,3 @@
|
|||
debian-reference (2.132) unstable; urgency=medium
|
||||
|
||||
[ Andika Triwidada ]
|
||||
* Translated using Weblate (Indonesian)
|
||||
|
||||
[ Remus-Gabriel Chelu ]
|
||||
* Translated using Weblate (Romanian)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Add metainfo supports as plug-ins (Closes: #1110857)
|
||||
* Revise debian-reference-common.desktop comment
|
||||
* Add metainfo for debian.debian-reference-common
|
||||
* Update d/copyright
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Sun, 11 Jan 2026 13:45:44 +0900
|
||||
|
||||
debian-reference (2.131) unstable; urgency=medium
|
||||
|
||||
* Fix a entity name typo in id.po
|
||||
* Uploading with binary and source debs for NEW (sv)
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Tue, 06 Jan 2026 10:39:08 +0900
|
||||
|
||||
debian-reference (2.130) unstable; urgency=medium
|
||||
|
||||
[ Daniel Nylander ]
|
||||
* Translated using Weblate (Swedish) 100%
|
||||
|
||||
[ Remus-Gabriel Chelu ]
|
||||
* Translated using Weblate (Romanian)
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
* Translated using Weblate (Chinese (Simplified Han script))
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Add debian-reference-sv package
|
||||
* Skip PDF for sv (workaround for Texlive tool chain issue)
|
||||
* normalize wrapping of line in PO files
|
||||
* Update translation status in Makefile
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Tue, 06 Jan 2026 08:33:43 +0900
|
||||
|
||||
debian-reference (2.129) unstable; urgency=medium
|
||||
|
||||
[ Daniel Nylander ]
|
||||
* Translated using Weblate (Swedish)
|
||||
|
||||
[ Holger Wansing ]
|
||||
* Updated german translation
|
||||
* Clean-up de.po
|
||||
|
||||
[ Francisco Serrador ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Remus-Gabriel Chelu ]
|
||||
* Initial romanian translation
|
||||
|
||||
[ Mateus Liberale Gomes ]
|
||||
* Translated using Weblate (Portuguese (Brazil))
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* include ro in Makefile
|
||||
* make po (normalize PO files)
|
||||
* Fix apt sources file extension (Closes: #1124494)
|
||||
* sv.po: fix trivial errors for HTML build
|
||||
* Fix weblate configuration
|
||||
* Update mentioned packages in rawxml and po
|
||||
* Fix duplicated ssh-agent(1) (Closes: #1100811)
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Fri, 02 Jan 2026 23:52:05 +0900
|
||||
|
||||
debian-reference (2.128) unstable; urgency=medium
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Use correct syntax usermod (Closes: #1104496, #1105805)
|
||||
* Use NetworkManage (Closes: #1104896)
|
||||
* ja.po: normalize formatting
|
||||
* make po
|
||||
* Update release to Trixie
|
||||
|
||||
[ Francisco Serrador ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Rodolfo Gigante ]
|
||||
* Translated using Weblate (Portuguese)
|
||||
|
||||
[ Eisuke Kawashima ]
|
||||
* Translated using Weblate (Japanese)
|
||||
|
||||
[ Petri Hämäläinen ]
|
||||
* Translated using Weblate (Finnish)
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Thu, 28 Aug 2025 14:11:39 +0900
|
||||
|
||||
debian-reference (2.127) unstable; urgency=medium
|
||||
|
||||
* Fix maintscript regression in 2.126 by using pre-depends on
|
||||
debian-reference-common. Closes: #1100677
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Wed, 30 Apr 2025 11:27:20 +0900
|
||||
|
||||
debian-reference (2.126) unstable; urgency=medium
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
* Translated using Weblate (Chinese (Simplified Han script))
|
||||
|
||||
[ Andika Triwidada ]
|
||||
* Translated using Weblate (Indonesian)
|
||||
|
||||
[ Cleverson Cândido ]
|
||||
* Translated using Weblate (Portuguese)
|
||||
|
||||
[ Tanavit MINETEST ]
|
||||
* Translated using Weblate (French)
|
||||
|
||||
[ Jonathan Dowland ]
|
||||
* Correct description of purpose of 'sudo' group
|
||||
|
||||
[ Ricky Tigg ]
|
||||
* Translated using Weblate (Finnish)
|
||||
|
||||
[ Rodolfo José dos Santos Gigante ]
|
||||
* Translated using Weblate (Portuguese)
|
||||
|
||||
[ Rodolfo Gigante ]
|
||||
* Translated using Weblate (Portuguese)
|
||||
|
||||
[ Francisco Serrador ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Fix undeclared file conflict. Closes: #1100677
|
||||
* Improve PO file checker
|
||||
* Update PO/POT with trivial url link fixes (pt, fr)
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Thu, 24 Apr 2025 11:18:18 +0900
|
||||
|
||||
debian-reference (2.125) unstable; urgency=medium
|
||||
|
||||
[ Ravi Kant Sharma ]
|
||||
* fix typo 05_network_setup.rawxml
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ gallegonovato ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Chris Hofstaedtler ]
|
||||
* Fix two typos on a single line
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Refine example
|
||||
* Minor English updates (zh-cn inspired)
|
||||
* Add d/salsa-ci.yml
|
||||
* pt.po, fr.po, it.po, po/zh-cn.po: trivial fixes
|
||||
* Add xmlpo and update README.md
|
||||
* ja.po: proofed by xmlpo -i
|
||||
* "make po" and trim obsolete
|
||||
* Change font to all-Sans
|
||||
* Reproducible build
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Fri, 15 Nov 2024 22:32:55 +0900
|
||||
|
||||
debian-reference (2.124) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ gallegonovato ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
* Translated using Weblate (Chinese (Simplified))
|
||||
* add Comment[zh_TW] and Comment[zh_CN] in debian-reference-common.desktop
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* touch up .vimrc
|
||||
* ch09: update vimrc examples
|
||||
* ch09: drop dead URL link
|
||||
* en: typo fix
|
||||
* po: all updated
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Sun, 30 Jun 2024 13:06:30 +0900
|
||||
|
||||
debian-reference (2.123) unstable; urgency=medium
|
||||
|
||||
[ Andika Triwidada ]
|
||||
* Translated using Weblate (Indonesian)
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ houzhou-wu ]
|
||||
* Translated using Weblate (Chinese (Simplified))
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Update Makefile to not current status.
|
||||
* Trivial update of fi and ko removing junks.
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Tue, 28 May 2024 16:11:38 +0900
|
||||
|
||||
debian-reference (2.122) unstable; urgency=medium
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* update disk.img handling examples
|
||||
* Simplify .vimrc example
|
||||
* Reformat internal scripts: shfmt -s -w / black
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Andika Triwidada ]
|
||||
* Translated using Weblate (Indonesian)
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Thu, 11 Apr 2024 08:08:27 +0900
|
||||
|
||||
debian-reference (2.121) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* EN: Update losetup usage
|
||||
* po: update all languages on losetup
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Mon, 01 Apr 2024 18:24:03 +0900
|
||||
|
||||
debian-reference (2.120) unstable; urgency=medium
|
||||
|
||||
[ Beatrice Torracca ]
|
||||
* [it-IT] Updated Italian translation (100%)
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Guillonneau Jean-Paul ]
|
||||
* Translated using Weblate (French)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Fix fr.add
|
||||
* Parallel execution for build
|
||||
* Update pot
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Mon, 25 Mar 2024 23:02:56 +0900
|
||||
|
||||
debian-reference (2.119) unstable; urgency=medium
|
||||
|
||||
[ Guillonneau Jean-Paul ]
|
||||
* Translated using Weblate (French) 100%
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ SCC/楊志璿 ]
|
||||
* Translated using Weblate (Chinese (Traditional))
|
||||
|
||||
[ Andika Triwidada ]
|
||||
* Translated using Weblate (Indonesian)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Ch12: Fix console session
|
||||
* zh-tw, fr: remove URL with % to fix build
|
||||
* pt, pt-br: trivial URL fixes
|
||||
* Update build to use missing msgstr between pt/pt-br
|
||||
* fuzzy: raw and effective PO status
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Wed, 20 Mar 2024 15:21:55 +0900
|
||||
|
||||
debian-reference (2.118) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ gallegonovato ]
|
||||
* Translated using Weblate (Spanish) 100%
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
* Translated using Weblate (Chinese (Simplified)) 100%
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Ch01: adduser/delusr/usermod/useradd/userdel
|
||||
* Ch07: user dirs
|
||||
* Ch09: rephrase and reorder, Incus, clipboard
|
||||
* es: trivial fix
|
||||
* make entity EXPOSEMODE=yes
|
||||
* make po
|
||||
* ja 100%
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Thu, 14 Mar 2024 14:53:09 +0900
|
||||
|
||||
debian-reference (2.117) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ gallegonovato ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
* Ch11: fix typo, ps --> pdf , remove (GUI)
|
||||
* Translated using Weblate (Chinese (Simplified))
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Ch09: Reorganize and update vimrc (TailingWhitespaces, etc.)
|
||||
* nohlsearch with <ESC> like Lazyvim
|
||||
* disable buggy merge driver
|
||||
* Trivial po fixes
|
||||
* wrap-and-sort and remove extra spaces
|
||||
* make po
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Thu, 29 Feb 2024 09:08:53 +0900
|
||||
|
||||
debian-reference (2.116) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Naga ]
|
||||
* Translated using Weblate (French)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Ch09: Move mapping to internal and add popular maps
|
||||
* Ch05: Add nftable (common text)
|
||||
* Ch11: PDF with GIMP
|
||||
* Ch11: update listed packages
|
||||
* rawxml/README.md for English
|
||||
* make entity EXPOSEMODE=yes
|
||||
* make po
|
||||
* ja: 100% translated
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Sun, 25 Feb 2024 18:13:41 +0900
|
||||
|
||||
debian-reference (2.115) unstable; urgency=medium
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Fix dpkg unable to delete old directory. Closes: #1058960
|
||||
* Update debian-reference-common version requirement to 2.115
|
||||
* Add pt-br to metapackage.
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Mon, 12 Feb 2024 10:25:08 +0900
|
||||
|
||||
debian-reference (2.114) unstable; urgency=medium
|
||||
|
||||
[ gallegonovato ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ eulalio ]
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Osamu Aoki ]
|
||||
* Fix document path regression at 2.109. Closes: #1063590
|
||||
|
||||
-- Osamu Aoki <osamu@debian.org> Sat, 10 Feb 2024 22:34:46 +0900
|
||||
|
||||
debian-reference (2.113) unstable; urgency=medium
|
||||
|
||||
[ xiao sheng wen(肖盛文) ]
|
||||
|
|
|
|||
226
debian/control
vendored
226
debian/control
vendored
|
|
@ -2,33 +2,31 @@ Source: debian-reference
|
|||
Section: doc
|
||||
Priority: optional
|
||||
Maintainer: Osamu Aoki <osamu@debian.org>
|
||||
Build-Depends:
|
||||
debhelper-compat (= 13),
|
||||
Build-Depends-Indep:
|
||||
dblatex,
|
||||
docbook-xml,
|
||||
docbook-xsl,
|
||||
fonts-liberation2,
|
||||
fonts-vlgothic,
|
||||
fonts-wqy-zenhei,
|
||||
libxml2-utils,
|
||||
locales-all | locales,
|
||||
opencc,
|
||||
po4a,
|
||||
python3,
|
||||
texlive-lang-chinese,
|
||||
texlive-lang-english,
|
||||
texlive-lang-european,
|
||||
texlive-lang-french,
|
||||
texlive-lang-german,
|
||||
texlive-lang-italian,
|
||||
texlive-lang-japanese,
|
||||
texlive-lang-other,
|
||||
texlive-lang-portuguese,
|
||||
texlive-lang-spanish,
|
||||
texlive-xetex,
|
||||
w3m,
|
||||
xsltproc,
|
||||
Build-Depends: debhelper-compat (= 13)
|
||||
Build-Depends-Indep: dblatex,
|
||||
docbook-xml,
|
||||
docbook-xsl,
|
||||
faketime,
|
||||
fonts-liberation2,
|
||||
fonts-vlgothic,
|
||||
fonts-wqy-microhei,
|
||||
libxml2-utils,
|
||||
locales-all | locales,
|
||||
opencc,
|
||||
po4a,
|
||||
python3,
|
||||
texlive-lang-chinese,
|
||||
texlive-lang-english,
|
||||
texlive-lang-french,
|
||||
texlive-lang-german,
|
||||
texlive-lang-italian,
|
||||
texlive-lang-japanese,
|
||||
texlive-lang-other,
|
||||
texlive-lang-portuguese,
|
||||
texlive-lang-spanish,
|
||||
texlive-xetex,
|
||||
w3m,
|
||||
xsltproc
|
||||
Standards-Version: 4.6.2
|
||||
Vcs-Git: https://salsa.debian.org/debian/debian-reference.git -b latest
|
||||
Vcs-Browser: https://salsa.debian.org/debian/debian-reference
|
||||
|
|
@ -36,28 +34,22 @@ Homepage: https://www.debian.org/doc/user-manuals#quick-reference
|
|||
|
||||
Package: debian-reference-common
|
||||
Architecture: all
|
||||
Depends:
|
||||
sensible-utils,
|
||||
${misc:Depends},
|
||||
Recommends:
|
||||
w3m | www-browser,
|
||||
Suggests:
|
||||
calibre,
|
||||
debian-reference,
|
||||
debian-reference-de,
|
||||
debian-reference-en,
|
||||
debian-reference-es,
|
||||
debian-reference-fr,
|
||||
debian-reference-id,
|
||||
debian-reference-it,
|
||||
debian-reference-ja,
|
||||
debian-reference-pt,
|
||||
debian-reference-pt-br,
|
||||
debian-reference-sv,
|
||||
debian-reference-zh-cn,
|
||||
debian-reference-zh-tw,
|
||||
mc,
|
||||
vim,
|
||||
Depends: sensible-utils, ${misc:Depends}
|
||||
Recommends: w3m | www-browser
|
||||
Suggests: calibre,
|
||||
debian-reference,
|
||||
debian-reference-de,
|
||||
debian-reference-en,
|
||||
debian-reference-es,
|
||||
debian-reference-fr,
|
||||
debian-reference-id,
|
||||
debian-reference-it,
|
||||
debian-reference-ja,
|
||||
debian-reference-pt,
|
||||
debian-reference-zh-cn,
|
||||
debian-reference-zh-tw,
|
||||
mc,
|
||||
vim
|
||||
Description: Debian system administration guide, common files
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -67,21 +59,16 @@ Description: Debian system administration guide, common files
|
|||
|
||||
Package: debian-reference
|
||||
Architecture: all
|
||||
Depends:
|
||||
debian-reference-en,
|
||||
${misc:Depends},
|
||||
Recommends:
|
||||
debian-reference-de,
|
||||
debian-reference-es,
|
||||
debian-reference-fr,
|
||||
debian-reference-id,
|
||||
debian-reference-it,
|
||||
debian-reference-ja,
|
||||
debian-reference-pt,
|
||||
debian-reference-pt-br,
|
||||
debian-reference-sv,
|
||||
debian-reference-zh-cn,
|
||||
debian-reference-zh-tw,
|
||||
Depends: debian-reference-en, ${misc:Depends}
|
||||
Recommends: debian-reference-de,
|
||||
debian-reference-es,
|
||||
debian-reference-fr,
|
||||
debian-reference-id,
|
||||
debian-reference-it,
|
||||
debian-reference-ja,
|
||||
debian-reference-pt,
|
||||
debian-reference-zh-cn,
|
||||
debian-reference-zh-tw
|
||||
Description: metapackage to install (all) translations of Debian Reference
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -91,12 +78,8 @@ Description: metapackage to install (all) translations of Debian Reference
|
|||
|
||||
Package: debian-reference-en
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: doc-base
|
||||
Description: Debian system administration guide, English original
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -106,10 +89,8 @@ Description: Debian system administration guide, English original
|
|||
|
||||
Package: debian-reference-de
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, German translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -119,13 +100,8 @@ Description: Debian system administration guide, German translation
|
|||
|
||||
Package: debian-reference-fr
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, French translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -135,13 +111,8 @@ Description: Debian system administration guide, French translation
|
|||
|
||||
Package: debian-reference-id
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Indonesian translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -151,13 +122,8 @@ Description: Debian system administration guide, Indonesian translation
|
|||
|
||||
Package: debian-reference-it
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Italian translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -167,13 +133,8 @@ Description: Debian system administration guide, Italian translation
|
|||
|
||||
Package: debian-reference-ja
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Japanese translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -183,13 +144,8 @@ Description: Debian system administration guide, Japanese translation
|
|||
|
||||
Package: debian-reference-pt
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Portuguese translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -199,13 +155,8 @@ Description: Debian system administration guide, Portuguese translation
|
|||
|
||||
Package: debian-reference-pt-br
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Portuguese (Brazil) translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -215,13 +166,8 @@ Description: Debian system administration guide, Portuguese (Brazil) translation
|
|||
|
||||
Package: debian-reference-zh-cn
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Chinese (Simplified) translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -231,13 +177,8 @@ Description: Debian system administration guide, Chinese (Simplified) translatio
|
|||
|
||||
Package: debian-reference-zh-tw
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Chinese (Traditional) translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
|
|
@ -247,32 +188,11 @@ Description: Debian system administration guide, Chinese (Traditional) translati
|
|||
|
||||
Package: debian-reference-es
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
|
||||
Suggests: debian-reference-en, doc-base
|
||||
Description: Debian system administration guide, Spanish translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
administration through shell-command examples for non-developers.
|
||||
.
|
||||
The Spanish translation.
|
||||
|
||||
Package: debian-reference-sv
|
||||
Architecture: all
|
||||
Pre-Depends:
|
||||
debian-reference-common (>= 2.127),
|
||||
Depends:
|
||||
${misc:Depends},
|
||||
Suggests:
|
||||
debian-reference-en,
|
||||
doc-base,
|
||||
Description: Debian system administration guide, Swedish translation
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
administration through shell-command examples for non-developers.
|
||||
.
|
||||
The Swedish translation.
|
||||
|
|
|
|||
8
debian/copyright
vendored
8
debian/copyright
vendored
|
|
@ -4,7 +4,7 @@ Upstream-Contact: Osamu Aoki <osamu@debian.org>
|
|||
Source: https://salsa.debian.org/debian/debian-reference.git
|
||||
|
||||
Files: *
|
||||
Copyright: 2007-2026 Osamu Aoki <osamu@debian.org>
|
||||
Copyright: 2007-2013 Osamu Aoki <osamu@debian.org>
|
||||
License: GPL-2+
|
||||
This document may used under the terms the GNU General Public License
|
||||
version 2 or higher.
|
||||
|
|
@ -30,9 +30,3 @@ X-osamu: Translation licenses
|
|||
I have asked all contributors including translators to license their work
|
||||
under the same copyright as I did (GPL). List of translator names are
|
||||
not included here.
|
||||
|
||||
Files: *.metainfo.xml
|
||||
Copyright: 2026 Osamu Aoki <osamu@debian.org>
|
||||
License: CC0-1.0
|
||||
[See /usr/share/common-licenses/CC0-1.0 for text of CC0 1.0 Universal]
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Type=Application
|
||||
Version=1.0
|
||||
Name=Debian Reference
|
||||
Comment=Browser launcher for the local Debian Reference data
|
||||
Comment=Debian Reference Guide
|
||||
Name[en_CA]=Debian Reference
|
||||
Name[en_GB]=Debian Reference
|
||||
Name[fr_FR]=Guide de référence pour Debian
|
||||
3
debian/debian-reference-common.install
vendored
3
debian/debian-reference-common.install
vendored
|
|
@ -3,6 +3,5 @@ bin/mkindexhtml usr/share/debian-reference-common
|
|||
build/.htaccess usr/share/doc/debian-reference-common/docs
|
||||
build/debian-reference.css usr/share/doc/debian-reference-common/docs
|
||||
build/images/* usr/share/doc/debian-reference-common/docs/images
|
||||
debian/org.debian.debian-reference-common.desktop usr/share/applications
|
||||
debian/org.debian.debian-reference-common.metainfo.xml usr/share/metainfo
|
||||
debian/debian-reference-common.desktop usr/share/applications
|
||||
debian/debian-reference.png usr/share/pixmaps
|
||||
|
|
|
|||
1
debian/debian-reference-common.maintscript
vendored
1
debian/debian-reference-common.maintscript
vendored
|
|
@ -1 +0,0 @@
|
|||
symlink_to_dir /usr/share/doc/debian-reference-common/docs ../../debian-reference 2.127~ debian-reference-common
|
||||
2
debian/debian-reference.links
vendored
2
debian/debian-reference.links
vendored
|
|
@ -1,2 +1,2 @@
|
|||
usr/share/doc/debian-reference-common/README.md.gz usr/share/doc/debian-reference/README.md.gz
|
||||
usr/share/doc/debian-reference-common/docs usr/share/doc/debian-reference/docs
|
||||
usr/share/doc/debian-reference-common/README.md.gz usr/share/doc/debian-reference/README.md.gz
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2026 Osamu Aoki <osamu@debian.org> -->
|
||||
<component type="desktop-application">
|
||||
<id>org.debian.debian-reference-common</id>
|
||||
<name>Debian Reference</name>
|
||||
<name xml:lang="de">Debian-Referenz</name>
|
||||
<name xml:lang="en-CA">Debian Reference</name>
|
||||
<name xml:lang="en-GB">Debian Reference</name>
|
||||
<name xml:lang="es">Guía de referencia Debian</name>
|
||||
<name xml:lang="fi">Referência Debian</name>
|
||||
<name xml:lang="fr">Guide de référence pour Debian</name>
|
||||
<name xml:lang="it">La guida Debian</name>
|
||||
<name xml:lang="ja">Debian リファレンス</name>
|
||||
<name xml:lang="pl">Debian Reference</name>
|
||||
<name xml:lang="pt-BR">Referência Debian</name>
|
||||
<name xml:lang="ru">Справочник по Debian</name>
|
||||
<name xml:lang="zh-Hans-CN">Debian 参考手册</name>
|
||||
<name xml:lang="zh-Hant-TW">Debian 參考手冊</name>
|
||||
<summary>Browser launcher for the local Debian Reference data</summary>
|
||||
<description>
|
||||
<p>
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
administration through shell-command examples for non-developers.
|
||||
</p>
|
||||
<p>
|
||||
This is a browser launcher for the local Debian Reference data.
|
||||
</p>
|
||||
<p>
|
||||
You must install some add-ons to provide the original Debian Reference data in English or its translations.
|
||||
</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">org.debian.debian-reference-common.desktop</launchable>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<url type="homepage">https://www.debian.org/doc/user-manuals#quick-reference</url>
|
||||
</component>
|
||||
9
debian/rules
vendored
9
debian/rules
vendored
|
|
@ -16,11 +16,11 @@
|
|||
# (This should be updated with the maintainer approval)
|
||||
#
|
||||
MANUAL := debian-reference
|
||||
LANGALL := en ja fr id it pt de zh-cn zh-tw es pt-br sv
|
||||
LANGPO := ja fr id it pt de zh-cn zh-tw es pt-br sv
|
||||
LANGALL := en ja fr id it pt de zh-cn zh-tw es pt-br
|
||||
LANGPO := ja fr id it pt de zh-cn zh-tw es pt-br
|
||||
# languages to skip generation of PDF files (not used now)
|
||||
#NOPDF := zh-cn zh-tw
|
||||
NOPDF := sv
|
||||
NOPDF :=
|
||||
|
||||
## ----------------------------------------------------------------------
|
||||
## Targets
|
||||
|
|
@ -48,8 +48,6 @@ override_dh_auto_build:
|
|||
pl) LANGX="Polish" ;; \
|
||||
pt) LANGX="Portuguese (Portugal)" ;; \
|
||||
pt-br) LANGX="Portuguese (Brazil)" ;; \
|
||||
ro) LANGX="Romanian" ;; \
|
||||
sv) LANGX="Swedish" ;; \
|
||||
zh-tw) LANGX="Chinese (Traditional)" ;; \
|
||||
zh-cn) LANGX="Chinese (Simplified)" ;; \
|
||||
*) LANGX="$$x" ;; \
|
||||
|
|
@ -57,7 +55,6 @@ override_dh_auto_build:
|
|||
sed -e "s/@@/$$XX/g" < all.install-in >$(MANUAL)-$${XX}.install ; \
|
||||
sed -e "s/@@/$$XX/g" < all.links-in >$(MANUAL)-$${XX}.links ; \
|
||||
sed -e "s/@@/$$XX/g" -e "s/@LANG@/$$LANGX/g" < all.doc-base-in >$(MANUAL)-$${XX}.doc-base ; \
|
||||
sed -e "s/@@/$$XX/g" -e "s/@LANG@/$$LANGX/g" < all.metainfo-in >$(CURDIR)/org.debian.$(MANUAL)-$${XX}.metainfo.xml ; \
|
||||
done
|
||||
dh_auto_build $(BUILDOPT) -- \
|
||||
"LANGALL=$(LANGALL)" \
|
||||
|
|
|
|||
3
debian/salsa-ci.yml
vendored
3
debian/salsa-ci.yml
vendored
|
|
@ -1,3 +0,0 @@
|
|||
---
|
||||
include:
|
||||
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
|
||||
6
debian/tests/control
vendored
6
debian/tests/control
vendored
|
|
@ -1,4 +1,2 @@
|
|||
Tests:
|
||||
check-script,
|
||||
Depends:
|
||||
@,
|
||||
Tests: check-script
|
||||
Depends: @
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ of the debian-reference documentation package.
|
|||
The browser used to display the HTML files.
|
||||
|
||||
.SH AUTHOR
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
.PP
|
||||
This document may be used under the terms of the GNU General Public
|
||||
License version 2 or higher.
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ du paquet de documentation debian-reference.
|
|||
Le navigateur utilisé pour afficher les fichiers HTML.
|
||||
|
||||
.SH AUTHOR
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
.PP
|
||||
Ce document peut être utilisé selon les termes de la GNU General Public License
|
||||
version 2 ou supérieure.
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ del pacchetto contenente la documentazione della guida Debian.
|
|||
Il browser utilizzato per aprire i file HTML.
|
||||
|
||||
.SH AUTHOR
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
.PP
|
||||
Questo documento è utilizzabile secondo i termini della GNU General Public
|
||||
License versione 2 o maggiore.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ debian-reference \- poinstalacyjny przewodnik dla użytkownika
|
|||
.B debian-reference
|
||||
.SH OPIS
|
||||
To jest mały skrypt, który uruchamia twoją ulubioną przeglądarkę
|
||||
i wyświetla stronę ze spisem treści
|
||||
i wyświetla stronę ze spisem treści
|
||||
.I file:///usr/share/doc/debian-reference-common/html/index.html
|
||||
dokumentacji zawartej w pakiecie debian-reference.
|
||||
.SH ZMIENNE ŚRODOWISKOWE
|
||||
|
|
@ -16,7 +16,7 @@ dokumentacji zawartej w pakiecie debian-reference.
|
|||
Przeglądarka używana do wyświetlania plików HTML.
|
||||
|
||||
.SH AUTOR
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
Osamu Aoki (osamu@debian.org).
|
||||
.PP
|
||||
Ten dokument może być wykorzystywany zgodnie z postanowieniami GNU General
|
||||
Public License w wersji 2 lub wyższej.
|
||||
|
|
|
|||
12
nopdf.tex
12
nopdf.tex
|
|
@ -1,6 +1,6 @@
|
|||
% -----------------------------------------
|
||||
% -----------------------------------------
|
||||
% LaTeX file: PDF not available PDF
|
||||
% -----------------------------------------
|
||||
% -----------------------------------------
|
||||
%%<params>
|
||||
%% document.language en
|
||||
%%</params>
|
||||
|
|
@ -21,6 +21,10 @@
|
|||
\setmainfont{Liberation Serif}
|
||||
\setsansfont{Liberation Sans}
|
||||
\setmonofont{Liberation Mono}
|
||||
\usepackage{xeCJK}
|
||||
\setCJKmainfont{VL PGothic}
|
||||
\setCJKsansfont{VL PGothic}
|
||||
\setCJKmonofont{VL Gothic}
|
||||
\else
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[latin1]{inputenc}
|
||||
|
|
@ -29,7 +33,7 @@
|
|||
\usepackage{makeidx}
|
||||
\usepackage[hyperlink]{docbook}
|
||||
\renewcommand{\DBKreleaseinfo}{}
|
||||
\title{Localized PDF file not generated}
|
||||
\title{PDF file not generated}
|
||||
\author{}
|
||||
\hypersetup{%
|
||||
pdfcreator={DBLaTeX-0.3.9-1},%
|
||||
|
|
@ -46,6 +50,6 @@ pdfauthor={}}
|
|||
\begin{document}
|
||||
\mainmatter
|
||||
|
||||
The localized PDF file generation is disabled to avoid hitting tool chain issues.
|
||||
This PDF file is not build due to tool chain issues.
|
||||
|
||||
\end{document}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
PO4A-HEADER:mode=after;position=qui est mentionné ci-dessus. Il a aussi été mis à jour par les;endboundary=</para>
|
||||
PO4A-HEADER:mode=after;position=aussi été mis à jour par les contributeurs;endboundary=</para>
|
||||
|
||||
<para>Le document « Référence Debian (version 1) » a été traduit par Guillaume Erbs (gerbs chez free point fr) et al. </para>
|
||||
<para>Le document « Référence Debian (version 2) » a été traduit par Jean-Luc Coulon (f5ibh) (jean-luc.coulon chez wanadoo.fr) à partir de la version 1, et est maintenu avec l'aide de David Prévot (david chez tilapin point org) et la liste de contributeurs (debian-l10n-french chez lists point debian point org).</para>
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
\hyphenation{}
|
||||
|
|
@ -1 +0,0 @@
|
|||
\hyphenation{}
|
||||
2528
po/pt-br.po
2528
po/pt-br.po
File diff suppressed because it is too large
Load diff
|
|
@ -1 +0,0 @@
|
|||
\hyphenation{}
|
||||
2410
po/zh-cn.po
2410
po/zh-cn.po
File diff suppressed because it is too large
Load diff
2331
po/zh-tw.po
2331
po/zh-tw.po
File diff suppressed because it is too large
Load diff
|
|
@ -240,7 +240,6 @@ foo:~$</screen>
|
|||
<para>Answer all questions.</para>
|
||||
<para>This creates a new account named as <literal>fish</literal>. After your practice, you can remove this user account and its home directory by the following.</para>
|
||||
<screen># deluser --remove-home fish</screen>
|
||||
<para>On non-Debian and specialized Debian systems, above activities need to use lower level <literal>useradd</literal>(8) and <literal>userdel</literal>(8) utilities, instead.</para>
|
||||
</section>
|
||||
<section id="_sudo_configuration">
|
||||
<title>sudo configuration</title>
|
||||
|
|
@ -523,64 +522,7 @@ $ ls -l foo bar
|
|||
<section id="_permissions_for_groups_of_users_group">
|
||||
<title>Permissions for groups of users (group)</title>
|
||||
<warning> <para>Please make sure to save unsaved changes before doing reboot or similar actions.</para> </warning>
|
||||
<!--
|
||||
* "adduser" package is "Priority: important" and not "Priority: required"
|
||||
* I had trouble after "kill -TERM -1".
|
||||
* I had odd password prompt and WIFI was missing found by using
|
||||
$ iwconfig
|
||||
* My solution was to run:
|
||||
$ systemctl restart NetworkManager.service
|
||||
* For trouble shooting this kind of events, people also use:
|
||||
$ rfkill list
|
||||
$ lspci -nnk | grep -iA3 net
|
||||
* Interesting references
|
||||
https://github.com/id01/nm-applet-fix
|
||||
https://www.freedesktop.org/wiki/Software/urfkill/
|
||||
https://askubuntu.com/questions/425155/my-wireless-wifi-connection-does-not-work-what-information-is-needed-to-diagnos
|
||||
https://askubuntu.com/questions/1476184/i-have-a-wifi-connection-but-it-wont-show-up-in-gui
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=203709
|
||||
https://unix.stackexchange.com/questions/755576/cannot-connect-to-wi-fi-wireless-toggle-is-not-displayed
|
||||
https://stackoverflow.com/questions/32334870/how-to-do-a-true-rescan-of-pcie-bus
|
||||
-->
|
||||
<para>You can add a user <literal>penguin</literal> to a group <literal>bird</literal> in two steps:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para> Change group configuration using one of following:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Execute "<literal>sudo usermod -aG bird penguin</literal>". </para> </listitem>
|
||||
<listitem> <para> Execute "<literal>sudo adduser penguin bird</literal>". (only on typical Debian systems) </para></listitem>
|
||||
<listitem> <para> Execute "<literal>sudo vigr</literal>" for <literal>/etc/group</literal> and "<literal>sudo vigr -s</literal>" for <literal>/etc/gshadow</literal> to append <literal>penguin</literal> in the line for <literal>bird</literal>. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Apply configuration using one of following:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Cold reboot and login. (Best option) </para> </listitem>
|
||||
<listitem> <para> Execute "<literal>kill -TERM -1</literal>" and do some fix-up actions such as "<literal>systemctl restart NetworkManager.service</literal>".</para> </listitem>
|
||||
<listitem> <para> Logout via GUI menu and login. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>You can remove a user <literal>penguin</literal> from a group <literal>bird</literal> in two steps:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para> Change group configuration using one of following:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Execute "<literal>sudo usermod -rG bird penguin</literal>". </para> </listitem>
|
||||
<listitem> <para> Execute "<literal>sudo deluser penguin bird</literal>". (only on typical Debian systems) </para></listitem>
|
||||
<listitem> <para> Execute "<literal>sudo vigr</literal>" for <literal>/etc/group</literal> and "<literal>sudo vigr -s</literal>" for <literal>/etc/gshadow</literal> to remove <literal>penguin</literal> in the line for <literal>bird</literal>. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Apply configuration using one of following:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Cold reboot and login. (Best option) </para> </listitem>
|
||||
<listitem> <para> Execute "<literal>kill -TERM -1</literal>" and do some fix-up actions such as "<literal>systemctl restart NetworkManager.service</literal>".</para> </listitem>
|
||||
<listitem> <para> Logout via GUI menu is not an option for Gnome Desktop. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para> Any warm reboot attempts are fragile replacements of the real cold reboot under the modern desktop system.</para>
|
||||
<para>In order to make group permissions to be applied to a particular user, that user needs to be made a member of the group using "<literal>sudo vigr</literal>" for <literal>/etc/group</literal> and "<literal>sudo vigr -s</literal>" for <literal>/etc/gshadow</literal>. You need to login after reboot (or run "<literal>kill -TERM -1</literal>") <footnote> <para> Use of logout via GUI menu for here may not work well under the modern environment. </para> </footnote> to enable the new group configuration.</para>
|
||||
<note> <para>Alternatively, you may dynamically add users to groups during the authentication process by adding "<literal>auth optional pam_group.so</literal>" line to "<literal>/etc/pam.d/common-auth</literal>" and setting "<literal>/etc/security/group.conf</literal>". (See <xref linkend="_authentication"/>.)</para> </note>
|
||||
<para>The hardware devices are just another kind of file on the Debian system. If you have problems accessing devices such as CD-ROM and USB memory stick from a user account, you should make that user a member of the relevant group.</para>
|
||||
<para>Some notable system-provided groups allow their members to access particular files and devices without <literal>root</literal> privilege.</para>
|
||||
|
|
@ -647,7 +589,7 @@ $ ls -l foo bar
|
|||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>sudo</literal> </entry>
|
||||
<entry> execute any command with superuser privileges </entry>
|
||||
<entry> execute <literal>sudo</literal> without their password </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>lpadmin</literal> </entry>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<title>Debian package management</title>
|
||||
<note>
|
||||
<para>This chapter is written assuming the latest stable release is codename: <literal>@-@codename-stable@-@</literal>.</para>
|
||||
<para>The data source of the APT system is collectively refered as <emphasis role="strong">the source list</emphasis> in this document . This can be defined anywhere in the "<literal>/etc/apt/sources.list</literal>" file, "<literal>/etc/apt/sources.list.d/*.list</literal>" files, or "<literal>/etc/apt/sources.list.d/*.sources</literal>" files.</para>
|
||||
<para>The data source of the APT system is collectively refered as <emphasis role="strong">the source list</emphasis> in this document . This can be defined anywhere in the "<literal>/etc/apt/sources.list</literal>" file, "<literal>/etc/apt/sources.list.d/*.list</literal>" files, or "<literal>/etc/apt/sources.list.d/*.source</literal>" files.</para>
|
||||
</note>
|
||||
<section id="_debian_package_management_prerequisites">
|
||||
<title>Debian package management prerequisites</title>
|
||||
|
|
@ -194,7 +194,7 @@ deb-src http://deb.debian.org/debian/ @-@codename-stable@-@ main non-free-firmwa
|
|||
|
||||
deb http://security.debian.org/debian-security @-@codename-stable@-@-security main non-free-firmware contrib non-free
|
||||
deb-src http://security.debian.org/debian-security @-@codename-stable@-@-security main non-free-firmware contrib non-free</screen>
|
||||
<para>Alternatively, the equivalent source list in deb822-style is the following.</para>
|
||||
<para>Alternatively, the equivqlent source list in deb822-style as the following.</para>
|
||||
<screen>Types: deb deb-src
|
||||
URIs: http://deb.debian.org/debian/
|
||||
Suites: @-@codename-stable@-@
|
||||
|
|
@ -219,7 +219,7 @@ Components: main non-free-firmware contrib non-free</screen>
|
|||
</listitem>
|
||||
<listitem> <para> Deb822-style format </para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> It's definition files are in "<literal>/etc/apt/sources.list.d/*.sources</literal>" files. </para> </listitem>
|
||||
<listitem> <para> It's definition files are in "<literal>/etc/apt/sources.list.d/*.source</literal>" files. </para> </listitem>
|
||||
<listitem> <para> Each block of lines separated by a blank line defines the data source for the APT system. </para> </listitem>
|
||||
<listitem> <para> The "<literal>Types:</literal>" stanza defines the list of types such as "<literal>deb</literal>" and "<literal>deb-src</literal>". </para> </listitem>
|
||||
<listitem> <para> The "<literal>URIs:</literal>" stanza defines the list of root URIs of the Debian archive. </para> </listitem>
|
||||
|
|
@ -312,7 +312,7 @@ Components: main non-free-firmware contrib non-free</screen>
|
|||
<para>You should basically list only one of <literal>stable</literal>, <literal>testing</literal>, or <literal>unstable</literal> suites in the "<literal>deb</literal>" line. If you list any combination of <literal>stable</literal>, <literal>testing</literal>, and <literal>unstable</literal> suites in the "<literal>deb</literal>" line, APT programs slow down while only the latest archive is effective. Multiple listing makes sense for these when the "<literal>/etc/apt/preferences</literal>" file is used with clear objectives (see <xref linkend="_tweaking_candidate_version"/>).</para>
|
||||
</caution>
|
||||
<tip> <para>For the Debian system with the <literal>stable</literal> suite, it is a good idea to include the content with "<literal>http://security.debian.org/</literal>" in <emphasis role="strong">the source list</emphasis> to enable security updates as in the example above.</para> </tip>
|
||||
<note> <para>The security bugs for the <literal>stable</literal> archive are fixed by the Debian security team. This activity has been quite rigorous and reliable. Those for the <literal>testing</literal> archive may be fixed by the Debian testing security team. For <ulink url="https://lists.debian.org/debian-testing-security-announce/2008/12/msg00019.html">several</ulink> <ulink url="https://lists.debian.org/debian-testing-security-announce/2010/01/msg00000.html">reasons</ulink>, this activity is not as rigorous as that for <literal>stable</literal> and you may need to wait for the migration of fixed <literal>unstable</literal> packages to the <literal>testing</literal> archive. Those for the <literal>unstable</literal> archive are fixed by the individual maintainer. Actively maintained <literal>unstable</literal> packages are usually in a fairly good shape by leveraging latest upstream security fixes. See <ulink url="https://www.debian.org/security/faq">Debian security FAQ</ulink> for how Debian handles security bugs.</para> </note>
|
||||
<note> <para>The security bugs for the <literal>stable</literal> archive are fixed by the Debian security team. This activity has been quite rigorous and reliable. Those for the <literal>testing</literal> archive may be fixed by the Debian testing security team. For <ulink url="https://lists.debian.org/debian-testing-security-announce/2008/12/msg00019.html">several</ulink> <ulink url="https://lists.debian.org/debian-testing-security-announce/2010/01/msg00000.html">reasons</ulink>, this activity is not as rigorous as that for <literal>stable</literal> and you may need to wait for the migration of fixed <literal>unstable</literal> packages. Those for the <literal>unstable</literal> archive are fixed by the individual maintainer. Actively maintained <literal>unstable</literal> packages are usually in a fairly good shape by leveraging latest upstream security fixes. See <ulink url="https://www.debian.org/security/faq">Debian security FAQ</ulink> for how Debian handles security bugs.</para> </note>
|
||||
<table pgwide="0" frame="topbot" rowsep="1" colsep="1">
|
||||
<title>List of Debian archive area</title>
|
||||
<tgroup cols="3">
|
||||
|
|
@ -442,7 +442,7 @@ Components: main non-free-firmware contrib non-free</screen>
|
|||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<note> <para>The actual text of the 5th term in the current <ulink url="https://www.debian.org/social_contract">Debian Social Contract</ulink> 1.2 is slightly different from the above text. This editorial deviation is intentional one to make this user document consistent without changing the real content of the Social Contract.</para> </note>
|
||||
<note> <para>The actual text of the 5th term in the current <ulink url="https://www.debian.org/social_contract">Debian Social Contract</ulink> 1.2 is slightly different from the above text. This editorial deviation is intensional one to make this user document consistent without changing the real content of the Social Contract.</para> </note>
|
||||
<para>Users should be aware of the risks of using packages in the <literal>non-free</literal>, <literal>non-free-firmware</literal> and <literal>contrib</literal> areas:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> lack of freedom for such software packages </para> </listitem>
|
||||
|
|
@ -2045,7 +2045,7 @@ deb http://deb.debian.org/debian/ @-@codename-stable@-@-backports main non-free-
|
|||
</section>
|
||||
<section id="_tweaking_candidate_version">
|
||||
<title>Tweaking candidate version with <emphasis role="strong">apt-pinning</emphasis></title>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> technique by a novice user is sure call for major troubles. You must avoid using this technique except when you absolutely need it.</para> </warning>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> by a novice user is sure call for major troubles. You must avoid using <emphasis role="strong">apt-pinning</emphasis> except when you absolutely need it.</para> </warning>
|
||||
<para>Without the "<literal>/etc/apt/preferences</literal>" file, APT system choses the latest available version as the <emphasis role="strong">candidate version</emphasis> using the version string. This is the normal state and most recommended usage of APT system. All officially supported combinations of archives do not require the "<literal>/etc/apt/preferences</literal>" file since some archives which should not be used as the automatic source of upgrades are marked as <emphasis role="strong">NotAutomatic</emphasis> and dealt properly.</para>
|
||||
<tip> <para>The version string comparison rule can be verified with, e.g., "<literal>dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?</literal>" (see <literal>dpkg</literal>(1)).</para> </tip>
|
||||
<para>When you install packages from mixed source of archives (see <xref linkend="_packages_from_mixed_source_of_archives"/>) regularly, you can automate these complicated operations by creating the "<literal>/etc/apt/preferences</literal>" file with proper entries and tweaking the package selection rule for <emphasis role="strong">candidate version</emphasis> as described in <literal>apt_preferences</literal>(5). This is called <emphasis role="strong">apt-pinning</emphasis>.</para>
|
||||
|
|
@ -2111,7 +2111,7 @@ deb http://deb.debian.org/debian/ @-@codename-stable@-@-backports main non-free-
|
|||
</section>
|
||||
<section id="_blocking_packages_installed_by_recommends">
|
||||
<title>Blocking packages installed by "Recommends"</title>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> technique by a novice user is sure call for major troubles. You must avoid using this technique except when you absolutely need it.</para> </warning>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> by a novice user is sure call for major troubles. You must avoid using <emphasis role="strong">apt-pinning</emphasis> except when you absolutely need it.</para> </warning>
|
||||
<para>If you wish not to pull in particular packages automatically by "Recommends", you must create the "<literal>/etc/apt/preferences</literal>" file and explicitly list all those packages at the top of it as the following.</para>
|
||||
<screen>Package: <emphasis>package-1</emphasis>
|
||||
Pin: version *
|
||||
|
|
@ -2123,7 +2123,7 @@ Pin-Priority: -1</screen>
|
|||
</section>
|
||||
<section id="_tracking_literal_testing_literal_with_some_packages_from_literal_unstable_literal">
|
||||
<title>Tracking <literal>testing</literal> with some packages from <literal>unstable</literal></title>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> technique by a novice user is sure call for major troubles. You must avoid using this technique except when you absolutely need it.</para> </warning>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> by a novice user is sure call for major troubles. You must avoid using <emphasis role="strong">apt-pinning</emphasis> except when you absolutely need it.</para> </warning>
|
||||
<para>Here is an example of <emphasis role="strong">apt-pinning</emphasis> technique to include specific newer upstream version packages found in <literal>unstable</literal> regularly upgraded while tracking <literal>testing</literal>. You list all required archives in the "<literal>/etc/apt/sources.list</literal>" file as the following.</para>
|
||||
<screen>deb http://deb.debian.org/debian/ testing main contrib non-free
|
||||
deb http://deb.debian.org/debian/ unstable main contrib non-free
|
||||
|
|
@ -2158,7 +2158,7 @@ Pin-Priority: 700</screen>
|
|||
</section>
|
||||
<section id="_tracking_literal_unstable_literal_with_some_packages_from_literal_experimental_literal">
|
||||
<title>Tracking <literal>unstable</literal> with some packages from <literal>experimental</literal></title>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> technique by a novice user is sure call for major troubles. You must avoid using this technique except when you absolutely need it.</para> </warning>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> by a novice user is sure call for major troubles. You must avoid using <emphasis role="strong">apt-pinning</emphasis> except when you absolutely need it.</para> </warning>
|
||||
<para>Here is another example of <emphasis role="strong">apt-pinning</emphasis> technique to include specific newer upstream version packages found in <literal>experimental</literal> while tracking <literal>unstable</literal>. You list all required archives in the "<literal>/etc/apt/sources.list</literal>" file as the following.</para>
|
||||
<screen>deb http://deb.debian.org/debian/ unstable main contrib non-free
|
||||
deb http://deb.debian.org/debian/ experimental main contrib non-free
|
||||
|
|
@ -2167,7 +2167,7 @@ deb http://security.debian.org/ testing-security main contrib</screen>
|
|||
</section>
|
||||
<section id="_emergency_downgrading">
|
||||
<title>Emergency downgrading</title>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> technique by a novice user is sure call for major troubles. You must avoid using this technique except when you absolutely need it.</para> </warning>
|
||||
<warning> <para>Use of <emphasis role="strong">apt-pinning</emphasis> by a novice user is sure call for major troubles. You must avoid using <emphasis role="strong">apt-pinning</emphasis> except when you absolutely need it.</para> </warning>
|
||||
<caution> <para>Downgrading is not officially supported by the Debian by design. It should be done only as a part of emergency recovery process. Despite of this situation, it is known to work well in many incidents. For critical systems, you should backup all important data on the system after the recovery operation and re-install the new system from the scratch.</para> </caution>
|
||||
<para>You may be lucky to downgrade from newer archive to older archive to recover from broken system upgrade by manipulating <emphasis role="strong">candidate version</emphasis> (see <xref linkend="_tweaking_candidate_version"/>). This is lazy alternative to tedious actions of many "<literal>dpkg -i <emphasis>broken-package</emphasis>_<emphasis>old-version</emphasis>.deb</literal>" commands (see <xref linkend="_rescue_with_the_dpkg_command"/>).</para>
|
||||
<para>Search lines in the "<literal>/etc/apt/sources.list</literal>" file tracking <literal>unstable</literal> as the following.</para>
|
||||
|
|
|
|||
|
|
@ -246,19 +246,17 @@ user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
|
|||
<entry> Pluggable Authentication Modules (basic service) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libpam-ldapd</literal> </entry>
|
||||
<entry> <literal>libpam-ldap</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Pluggable Authentication Module allowing LDAP interfaces </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>libpam-cracklib</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Pluggable Authentication Module to enable cracklib support </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>libpam-systemd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -295,19 +293,17 @@ user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> NSS module for Multicast DNS name resolution </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>libnss-ldap</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> NSS module for using LDAP as a naming service </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>libnss-ldapd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> NSS module for using LDAP as a naming service </entry>
|
||||
<entry> NSS module for using LDAP as a naming service (new fork of <literal>libnss-ldap</literal>) </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
|
@ -391,20 +387,26 @@ user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
|
|||
<section id="_the_modern_centralized_system_management">
|
||||
<title>The modern centralized system management</title>
|
||||
<para>The modern centralized system management can be deployed using the centralized <ulink url="https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">Lightweight Directory Access Protocol (LDAP)</ulink> server to administer many Unix-like and non-Unix-like systems on the network. The open source implementation of the Lightweight Directory Access Protocol is <ulink url="https://www.openldap.org/">OpenLDAP Software</ulink>.</para>
|
||||
<para>The LDAP server provides the account information through the use of PAM and NSS with <literal>libpam-ldapd</literal> and <literal>libnss-ldapd</literal> packages for the Debian system. Several actions are required to enable this (I have not used this setup and the following is purely secondary information. Please read this in this context.).</para>
|
||||
<para>The LDAP server provides the account information through the use of PAM and NSS with <literal>libpam-ldap</literal> and <literal>libnss-ldap</literal> packages for the Debian system. Several actions are required to enable this (I have not used this setup and the following is purely secondary information. Please read this in this context.).</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> You set up a centralized LDAP server by running a program such as the stand-alone LDAP daemon, <literal>slapd</literal>(8). </para> </listitem>
|
||||
<listitem>
|
||||
<para> You change the PAM configuration files in the "<literal>/etc/pam.d/</literal>" directory to use "<literal>pam_ldap.so</literal>" instead of the default "<literal>pam_unix.so</literal>". </para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Debian uses "<literal>/etc/pam_ldap.conf</literal>" as the configuration file for <literal>libpam-ldap</literal> and "<literal>/etc/pam_ldap.secret</literal>" as the file to store the password of the root. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> You change the NSS configuration in the "<literal>/etc/nsswitch.conf</literal>" file to use "<literal>ldap</literal>" instead of the default ("<literal>compat</literal>" or "<literal>file</literal>"). </para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> Debian uses "<literal>/etc/libnss-ldap.conf</literal>" as the configuration file for <literal>libnss-ldap</literal>. </para> </listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem> <para> You must make <literal>libpam-ldapd</literal> to use <ulink url="https://en.wikipedia.org/wiki/Transport_Layer_Security">SSL (or TLS)</ulink> connection for the security of password. </para> </listitem>
|
||||
<listitem> <para> You may make <literal>libnss-ldapd</literal> to use <ulink url="https://en.wikipedia.org/wiki/Transport_Layer_Security">SSL (or TLS)</ulink> connection to ensure integrity of data at the cost of the LDAP network overhead. </para> </listitem>
|
||||
<listitem> <para> You must make <literal>libpam-ldap</literal> to use <ulink url="https://en.wikipedia.org/wiki/Transport_Layer_Security">SSL (or TLS)</ulink> connection for the security of password. </para> </listitem>
|
||||
<listitem> <para> You may make <literal>libnss-ldap</literal> to use <ulink url="https://en.wikipedia.org/wiki/Transport_Layer_Security">SSL (or TLS)</ulink> connection to ensure integrity of data at the cost of the LDAP network overhead. </para> </listitem>
|
||||
<listitem> <para> You should run <literal>nscd</literal>(8) locally to cache any LDAP search results in order to reduce the LDAP network traffic. </para> </listitem>
|
||||
</itemizedlist>
|
||||
<para>See documentations in <literal>nsswitch.conf</literal>(5), <literal>pam.conf</literal>(5), <literal>ldap.conf</literal>(5), and "<literal>/usr/share/doc/libpam-doc/html/</literal>" offered by the <literal>libpam-doc</literal> package and "<literal>info libc 'Name Service Switch'</literal>" offered by the <literal>glibc-doc</literal> package.</para>
|
||||
<para>See documentations in <literal>pam_ldap.conf</literal>(5) and "<literal>/usr/share/doc/libpam-doc/html/</literal>" offered by the <literal>libpam-doc</literal> package and "<literal>info libc 'Name Service Switch'</literal>" offered by the <literal>glibc-doc</literal> package.</para>
|
||||
<para>Similarly, you can set up alternative centralized systems with other methods.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -666,7 +668,7 @@ other::---
|
|||
</itemizedlist>
|
||||
<para>See <xref linkend="_system_management_operations"/>, <xref linkend="_configuration_files_accessed_by_pam_and_nss"/>, and <xref linkend="_netfilter_infrastructure"/>.</para>
|
||||
<tip> <para><ulink url="https://en.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call">Sun RPC</ulink> services need to be active for <ulink url="https://en.wikipedia.org/wiki/Network_File_System_(protocol)">NFS</ulink> and other RPC based programs.</para> </tip>
|
||||
<tip> <para>If you have problems with remote access in a recent Debian system, comment out offending configuration such as "<literal>ALL: PARANOID</literal>" in "<literal>/etc/hosts.deny</literal>" if it exists. (But you must be careful on security risks involved with this kind of action.)</para> </tip>
|
||||
<tip> <para>If you have problems with remote access in a recent Debian system, comment out offending configuration such as "ALL: PARANOID" in "<literal>/etc/hosts.deny</literal>" if it exists. (But you must be careful on security risks involved with this kind of action.)</para> </tip>
|
||||
</section>
|
||||
<section id="_linux_security_features">
|
||||
<title>Linux security features</title>
|
||||
|
|
|
|||
|
|
@ -202,7 +202,6 @@
|
|||
<entry> test::low-level </entry>
|
||||
<entry> produce a summarization of the connections from <literal>tcpdump</literal> output </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>snort</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -210,7 +209,6 @@
|
|||
<entry> test::low-level </entry>
|
||||
<entry> flexible network intrusion detection system (<ulink url="https://en.wikipedia.org/wiki/Snort_(software)">Snort</ulink>) </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>ntopng</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -355,7 +353,7 @@ ff02::2 ip6-allrouters
|
|||
<orderedlist>
|
||||
<listitem>
|
||||
<para> Make desktop user, e.g. <literal>foo</literal>, belong to group "<literal>netdev</literal>" by the following (Alternatively, do it automatically via <ulink url="https://en.wikipedia.org/wiki/D-Bus">D-bus</ulink> under modern desktop environments such as GNOME and KDE). </para>
|
||||
<screen>$ sudo usermod -a -G netdev foo</screen>
|
||||
<screen>$ sudo usermod -a -G foo netdev</screen>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Keep configuration of "<literal>/etc/network/interfaces</literal>" as simple as in the following. </para>
|
||||
|
|
@ -364,7 +362,7 @@ iface lo inet loopback</screen>
|
|||
</listitem>
|
||||
<listitem>
|
||||
<para> Restart NM by the following. </para>
|
||||
<screen>$ sudo systemctl restart NetworkManager</screen>
|
||||
<screen>$ sudo systemctl restart network-manager</screen>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para> Configure your network via GUI. </para>
|
||||
|
|
@ -428,8 +426,8 @@ Gateway=192.168.0.1</screen>
|
|||
via: 192.168.0.1</screen>
|
||||
</section>
|
||||
<section id="_the_modern_network_configuration_for_cloud_with_network_manager">
|
||||
<title>The modern network configuration for cloud with Network Manager</title>
|
||||
<para>The network client configuration using Network Manager infrastructure can be set up by creating a data source file "<literal>/etc/netplan/00-network-manager.yaml</literal>":</para>
|
||||
<title>The modern network configuration for cloud with Network Manger</title>
|
||||
<para>The network client configuration using Network Manger infrastructure can be set up by creating a data source file "<literal>/etc/netplan/00-network-manager.yaml</literal>":</para>
|
||||
<screen>network:
|
||||
version: 2
|
||||
renderer: NetworkManager</screen>
|
||||
|
|
@ -750,12 +748,6 @@ rtt min/avg/max/mdev = 191.332/191.332/191.332/0.000 ms</screen>
|
|||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>nftables</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> administration tools for packet filtering and NAT (<ulink url="https://en.wikipedia.org/wiki/Netfilter">Netfilter</ulink>) (successor to {ip,ip6,arp,eb}tables) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>iptables</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
|
|||
|
|
@ -696,7 +696,7 @@ $ sudo postmap hush:/etc/postfix/sasl_passwd</screen>
|
|||
<section id="_basics_of_ssh">
|
||||
<title>Basics of SSH</title>
|
||||
<para>The OpenSSH SSH daemon supports SSH protocol 2 only.</para>
|
||||
<para>Please read "<literal>/usr/share/doc/openssh-client/README.Debian.gz</literal>", <literal>ssh</literal>(1), <literal>sshd</literal>(8), <literal>ssh-keygen</literal>(1), <literal>ssh-add</literal>(1) and <literal>ssh-agent</literal>(1).</para>
|
||||
<para>Please read "<literal>/usr/share/doc/openssh-client/README.Debian.gz</literal>", <literal>ssh</literal>(1), <literal>sshd</literal>(8), <literal>ssh-agent</literal>(1), and <literal>ssh-keygen</literal>(1), <literal>ssh-add</literal>(1) and <literal>ssh-agent</literal>(1).</para>
|
||||
<warning>
|
||||
<para>"<literal>/etc/ssh/sshd_not_to_be_run</literal>" must not be present if one wishes to run the OpenSSH server.</para>
|
||||
<para>Don't enable rhost based authentication (<literal>HostbasedAuthentication</literal> in <literal>/etc/ssh/sshd_config</literal>). </para>
|
||||
|
|
@ -1046,19 +1046,12 @@ Identity added: /home/<emphasis>username</emphasis>/.ssh/id_rsa (/home/<emphasis
|
|||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>netcat-traditional</literal> </entry>
|
||||
<entry> <literal>netcat</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> <ulink url="https://en.wikipedia.org/wiki/TCP/IP">TCP/IP</ulink> </entry>
|
||||
<entry> TCP/IP swiss army knife </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>netcat-openbsd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> <ulink url="https://en.wikipedia.org/wiki/TCP/IP">TCP/IP</ulink> </entry>
|
||||
<entry> TCP/IP swiss army knife with support for IPv6, proxies, and Unix sockets</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>openssl</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
|
|||
|
|
@ -484,13 +484,6 @@
|
|||
</tgroup>
|
||||
</table>
|
||||
</section>
|
||||
<section id="_user_directories">
|
||||
<title>User directories</title>
|
||||
<para>Default names for user directories such as "<literal>~/Desktop</literal>", "<literal>~/Documents</literal>", ..., used by the Desktop environment depend on the locale used for the system installation. You can reset them to the English ones by:</para>
|
||||
<screen> $ LANGUAGE=C xdg-user-dirs-update --force </screen>
|
||||
<para>Then you manually move all the data to the newer directories. See <literal>xdg-user-dirs-update</literal>(1).</para>
|
||||
<para>You can also set them to any names by editing "<literal>~/.config/user-dirs.dirs</literal>". See <literal>user-dirs.dirs</literal>(5).</para>
|
||||
</section>
|
||||
<section id="_fonts">
|
||||
<title>Fonts</title>
|
||||
<para>Many useful scalable fonts are available for users on Debian. User's concern is how to avoid redundancy and how to configure parts of installed fonts to be disabled. Otherwise, useless font choices may clutter your GUI application menus.</para>
|
||||
|
|
@ -948,7 +941,6 @@
|
|||
<entry> <ulink url="https://en.wikipedia.org/wiki/Remote_Desktop_Protocol">RDP</ulink>, <ulink url="https://en.wikipedia.org/wiki/RFB_protocol">RFB (VNC)</ulink> </entry>
|
||||
<entry> <ulink url="https://apps.kde.org/krdc/">KRDC: KDE remote desktop client</ulink> </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>guacd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -956,7 +948,6 @@
|
|||
<entry> <ulink url="https://en.wikipedia.org/wiki/Remote_Desktop_Protocol">RDP</ulink>, <ulink url="https://en.wikipedia.org/wiki/RFB_protocol">RFB (VNC)</ulink>, <ulink url="https://en.wikipedia.org/wiki/Secure_Shell">SSH</ulink> / HTML5 </entry>
|
||||
<entry> <ulink url="https://guacamole.apache.org/">Apache Guacamole: clientless remote desktop gateway (HTML5)</ulink> </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>virt-viewer</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
|
|||
|
|
@ -213,6 +213,10 @@ $ vim cleanedfile</screen>
|
|||
<screen>FZF_KEYBINDINGS_PATH=/usr/share/doc/fzf/examples/key-bindings.bash
|
||||
if [ -f $FZF_KEYBINDINGS_PATH ]; then
|
||||
. $FZF_KEYBINDINGS_PATH
|
||||
fi
|
||||
FZF_COMPLETION_PATH=/usr/share/doc/fzf/examples/completion.bash
|
||||
if [ -f $FZF_COMPLETION_PATH ]; then
|
||||
. $FZF_COMPLETION_PATH
|
||||
fi</screen>
|
||||
<para>For example:</para>
|
||||
<itemizedlist>
|
||||
|
|
@ -234,201 +238,47 @@ fi</screen>
|
|||
<section id="_customizing_vim">
|
||||
<title>Customizing vim</title>
|
||||
<para> After you learn basics of <literal>vim</literal>(1) through <xref linkend="_using_vim"/>, please read Bram Moolenaar's "<ulink url="https://www.moolenaar.net/habits.html">Seven habits of effective text editing (2000)</ulink>" to understand how <literal>vim</literal> should be used. </para>
|
||||
<caution> <para>Don't try to change the default key bindings without very good reasons.</para> </caution>
|
||||
<section id="_customizing_vim_with internal_features">
|
||||
<title>Customizing vim with internal features</title>
|
||||
<para>The behavior of <literal>vim</literal> can be changed significantly by enabling its internal features through the <literal>Ex</literal>-mode commands such as "<literal>set ...</literal>" to set vim options.</para>
|
||||
<para>These <literal>Ex</literal>-mode commands can be included in user's vimrc file, traditional "<literal>~/.vimrc</literal>" or git-friendly "<literal>~/.vim/vimrc</literal>". Here is a very simple example
|
||||
<footnote> <para>More elaborate customization examples: "<ulink url="https://github.com/mhinz/vim-galore">Vim Galore</ulink>", "<ulink url="https://github.com/tpope/vim-sensible">sensible.vim</ulink>", ... </para> </footnote>:
|
||||
<footnote> <para>More elaborate customization examples: "<ulink url="https://github.com/mhinz/vim-galore">Vim Galore</ulink>", "<ulink url="https://github.com/tpope/vim-sensible">sensible.vim</ulink>", "<ulink url="https://www.vi-improved.org/recommendations/">#vim Recommendations</ulink>" ... </para> </footnote>:
|
||||
</para>
|
||||
<!--
|
||||
The following are meant to be edited by user to their taste of starting set values.
|
||||
See current https://github.com/osamuaoki/dot-vim and its rationale
|
||||
at https://osamuaoki.github.io/en/2023/03/05/vim-learn-7/
|
||||
-->
|
||||
<screen>""" Generic baseline Vim and Neovim configuration (~/.vimrc)
|
||||
""" - For NeoVim, use "nvim -u ~/.vimrc [filename]"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
let mapleader = ' ' " :h mapleader
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
set nocompatible " :h 'cp -- sensible (n)vim mode
|
||||
syntax on " :h :syn-on
|
||||
filetype plugin indent on " :h :filetype-overview
|
||||
set encoding=utf-8 " :h 'enc (default: latin1) -- sensible encoding
|
||||
""" current vim option value can be verified by :set encoding?
|
||||
set backspace=indent,eol,start " :h 'bs (default: nobs) -- sensible BS
|
||||
<screen>colorscheme murphy " from /usr/share/vim/vim??/colors/*.vim
|
||||
filetype plugin indent on " filetype aware behavior
|
||||
syntax enable " Syntax highlight
|
||||
set spelllang=en_us " Spell check language as en_us
|
||||
set spell " Enable spell check
|
||||
set autoindent " Copy indent from current line
|
||||
set smartindent " More than autoindent (Drop/Pop after {/})
|
||||
set nosmarttab " <Tab>-key always inserts blanks
|
||||
set backspace=indent,eol,start " Back space through everything
|
||||
set laststatus=2 " Always show status line
|
||||
set statusline=%<%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V
|
||||
set listchars=eol:¶,tab:⇄\ ,extends:↦,precedes:↤,nbsp:␣
|
||||
set viminfo=!,'100,<5000,s100,h " :h 'vi -- bigger copy buffer etc.
|
||||
""" Pick "colorscheme" from blue darkblue default delek desert elflord evening
|
||||
""" habamax industry koehler lunaperche morning murphy pablo peachpuff quiet ron
|
||||
""" shine slate torte zellner
|
||||
colorscheme industry
|
||||
""" don't pick "colorscheme" as "default" which may kill SpellUnderline settings
|
||||
set scrolloff=5 " :h 'scr -- show 5 lines around cursor
|
||||
set laststatus=2 " :h 'ls (default 1) k
|
||||
""" boolean options can be unset by prefixing "no"
|
||||
set ignorecase " :h 'ic
|
||||
set smartcase " :h 'scs
|
||||
set autoindent " :h 'ai
|
||||
set smartindent " :h 'si
|
||||
set nowrap " :h 'wrap
|
||||
"set list " :h 'list (default nolist)
|
||||
set noerrorbells " :h 'eb
|
||||
set novisualbell " :h 'vb
|
||||
set t_vb= " :h 't_vb -- termcap visual bell
|
||||
set spell " :h 'spell
|
||||
set spelllang=en_us,cjk " :h 'spl -- english spell, ignore CJK
|
||||
set clipboard=unnamedplus " :h 'cb -- cut/copy/paste with other app
|
||||
set hidden " :h 'hid
|
||||
set autowrite " :h 'aw
|
||||
set timeoutlen=300 " :h 'tm</screen>
|
||||
<para>The keymap of <literal>vim</literal> can be changed in user's vimrc file. E.g.:</para>
|
||||
<caution> <para>Don't try to change the default key bindings without very good reasons.</para> </caution>
|
||||
<!--
|
||||
These are taken from most popular settings
|
||||
"silent!" is needed to avoid error due to difference of Vim/Nvim
|
||||
I understand n and N remap may be avoided if scrolloff is big enough but I like it this way.
|
||||
How to cope with remapped <C-L>
|
||||
* Vim: <C-L> Clears and redraws the screen with "clear highlight"
|
||||
* Nvim <C-L> Clears and redraws the screen with "clear highlight" and "diff update"
|
||||
nnoremap <C-L> <Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>
|
||||
* Lazyvim uses: map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", ...)
|
||||
==> Remap <ESC> like Lazyvim (not exacly as Nvim <C-L> for now)
|
||||
nnoremap <ESC> <CMD>noh<CR><ESC>
|
||||
inoremap <ESC> <CMD>noh<CR><ESC>
|
||||
|
||||
ic/scs are set like LazyVim
|
||||
hidden/autowrite are matched with nvim defaults
|
||||
|
||||
Clipboard is for console vim and nvim.
|
||||
We can use shared clipboard with y/d/p (not just primary)
|
||||
-->
|
||||
<screen>""" Popular mappings (imitating LazyVim etc.)
|
||||
""" Window moves without using CTRL-W which is dangerous in INSERT mode
|
||||
nnoremap <C-H> <C-W>h
|
||||
nnoremap <C-J> <C-W>j
|
||||
nnoremap <C-K> <C-W>k
|
||||
silent! nnoremap <C-L> <C-W>l
|
||||
""" Window resize
|
||||
nnoremap <C-LEFT> <CMD>vertical resize -2<CR>
|
||||
nnoremap <C-DOWN> <CMD>resize -2<CR>
|
||||
nnoremap <C-UP> <CMD>resize +2<CR>
|
||||
nnoremap <C-RIGHT> <CMD>vertical resize +2<CR>
|
||||
""" Clear hlsearch with <ESC> (<C-L> is mapped as above)
|
||||
nnoremap <ESC> <CMD>noh<CR><ESC>
|
||||
inoremap <ESC> <CMD>noh<CR><ESC>
|
||||
""" center after jump next
|
||||
nnoremap n nzz
|
||||
nnoremap N Nzz
|
||||
""" fast "jk" to get out of INSERT mode (<ESC>)
|
||||
inoremap jk <CMD>noh<CR><ESC>
|
||||
""" fast "<ESC><ESC>" to get out of TERM mode (CTRL-\ CTRL-N)
|
||||
tnoremap <ESC><ESC> <C-\><C-N>
|
||||
""" fast "jk" to get out of TERM mode (CTRL-\ CTRL-N)
|
||||
tnoremap jk <C-\><C-N>
|
||||
""" previous/next trouble/quickfix item
|
||||
nnoremap [q <CMD>cprevious<CR>
|
||||
nnoremap ]q <CMD>cnext<CR>
|
||||
""" buffers
|
||||
nnoremap <S-H> <CMD>bprevious<CR>
|
||||
nnoremap <S-L> <CMD>bnext<CR>
|
||||
nnoremap [b <CMD>bprevious<CR>
|
||||
nnoremap ]b <CMD>bnext<CR>
|
||||
""" Add undo break-points
|
||||
inoremap , ,<C-G>u
|
||||
inoremap . .<C-G>u
|
||||
inoremap ; ;<C-G>u
|
||||
""" save file
|
||||
inoremap <C-S> <CMD>w<CR><ESC>
|
||||
xnoremap <C-S> <CMD>w<CR><ESC>
|
||||
nnoremap <C-S> <CMD>w<CR><ESC>
|
||||
snoremap <C-S> <CMD>w<CR><ESC>
|
||||
""" better indenting
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
""" terminal (Somehow under Linux, <C-/> becomes <C-_> in Vim)
|
||||
nnoremap <C-_> <CMD>terminal<CR>
|
||||
"nnoremap <C-/> <CMD>terminal<CR>
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
if ! has('nvim')
|
||||
""" Toggle paste mode with <SPACE>p for Vim (no need for Nvim)
|
||||
set pastetoggle=<leader>p
|
||||
""" nvim default mappings for Vim. See :h default-mappings in nvim
|
||||
""" copy to EOL (no delete) like D for d
|
||||
noremap Y y$
|
||||
""" sets a new undo point before deleting
|
||||
inoremap <C-U> <C-G>u<C-U>
|
||||
inoremap <C-W> <C-G>u<C-W>
|
||||
""" <C-L> is re-purposed as above
|
||||
""" execute the previous macro recorded with Q
|
||||
nnoremap Q @@
|
||||
""" repeat last substitute and *KEEP* flags
|
||||
nnoremap & :&&<CR>
|
||||
""" search visual selected string for visual mode
|
||||
xnoremap * y/\V<C-R>"<CR>
|
||||
xnoremap # y?\V<C-R>"<CR>
|
||||
endif</screen>
|
||||
<para>In order for the above keybindings to function properly, the terminal program needs to be configured to generate "ASCII DEL" for <literal>Backspace</literal>-key and "Escape sequence" for <literal>Delete</literal>-key.</para>
|
||||
<para>Other miscellaneous configuration can be changed in user's vimrc file. E.g.:</para>
|
||||
<!--
|
||||
I excluded ripgrep for :grep since this is non-essential
|
||||
* https://www.vi-improved.org/recommendations/ to rg
|
||||
|
||||
For TailingWhitespaces, regex idea is from
|
||||
* https://vim.fandom.com/wiki/Highlight_unwanted_spaces
|
||||
This tricky regex allows to avoid red while typing
|
||||
|
||||
I focus on Vim8 or newer so no autocmd used for TailingWhitespaces
|
||||
-->
|
||||
<screen>""" Use faster 'rg' (ripgrep package) for :grep
|
||||
if executable("rg")
|
||||
set grepprg=rg\ --vimgrep\ --smart-case
|
||||
set grepformat=%f:%l:%c:%m
|
||||
endif
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
""" Retain last cursor position :h '"
|
||||
augroup RetainLastCursorPosition
|
||||
autocmd!
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
|
||||
\ exe "normal! g'\"" |
|
||||
\ endif
|
||||
augroup END
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
""" Force to use underline for spell check results
|
||||
augroup SpellUnderline
|
||||
autocmd!
|
||||
autocmd ColorScheme * highlight SpellBad term=Underline gui=Undercurl
|
||||
autocmd ColorScheme * highlight SpellCap term=Underline gui=Undercurl
|
||||
autocmd ColorScheme * highlight SpellLocal term=Underline gui=Undercurl
|
||||
autocmd ColorScheme * highlight SpellRare term=Underline gui=Undercurl
|
||||
augroup END
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
""" highlight tailing spaces except when typing as red (set after colorscheme)
|
||||
highlight TailingWhitespaces ctermbg=red guibg=red
|
||||
""" \s\+ 1 or more whitespace character: <Space> and <Tab>
|
||||
""" \%#\@<! Matches with zero width if the cursor position does NOT match.
|
||||
match TailingWhitespaces /\s\+\%#\@<!$/</screen>
|
||||
highlight RedundantSpaces ctermbg=red guibg=red " highlight tailer spaces red color</screen>
|
||||
</section>
|
||||
<section id="_customizing_vim_with_external_packages">
|
||||
<title>Customizing vim with external packages</title>
|
||||
<para>Interesting external plugin packages can be found:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> <ulink url="https://www.vim.org/"> Vim - the ubiquitous text editor </ulink> -- The official upstream site of Vim and vim scripts </para> </listitem>
|
||||
<listitem> <para> <ulink url="https://vimawesome.com/"> VimAwsome </ulink> -- The listing of Vim plugins </para> </listitem>
|
||||
<listitem> <para> <ulink url="https://packages.debian.org/unstable/vim-scripts">vim-scripts</ulink> -- Debian package: a collection of vim scripts </para> </listitem>
|
||||
</itemizedlist>
|
||||
<para>Plugin packages in the <ulink url="https://packages.debian.org/unstable/vim-scripts">vim-scripts</ulink> package can be enabled using user's vimrc file. E.g.:</para>
|
||||
<!--
|
||||
I admit I don't use these now. But I need to keep these as an example.
|
||||
I know "set pastetoggle" is out of place but I wanted "leader" here.
|
||||
I don't want to discuss disabled secure-modeline feature in Debian's Vim package.
|
||||
-->
|
||||
<para>Simple customization to enable secure-modelines and classical IDE can be enabled by installing <ulink url="https://packages.debian.org/unstable/vim-scripts">vim-scripts</ulink> package and appending the following to user's vimrc file.</para>
|
||||
<screen>packadd! secure-modelines
|
||||
packadd! winmanager
|
||||
let mapleader = ' '
|
||||
" Toggle paste mode with <SPACE>p for Vim (no need for Nvim)
|
||||
set pastetoggle=<leader>p
|
||||
" IDE-like UI for files and buffers with <space>w
|
||||
nnoremap <leader>w :WMToggle<CR></screen>
|
||||
<para>The new native Vim package system works nicely with "<literal>git</literal>" and "<literal>git submodule</literal>". One such example configuration can be found at <ulink url="https://github.com/osamuaoki/dot-vim/tree/old">my git repository: dot-vim</ulink>. This does essentially:</para>
|
||||
nnoremap <leader>w :WMToggle<CR>
|
||||
" Use safer keys <C-?> for moving to another window
|
||||
nnoremap <C-H> <C-W>h
|
||||
nnoremap <C-J> <C-W>j
|
||||
nnoremap <C-K> <C-W>k
|
||||
nnoremap <C-L> <C-W>l
|
||||
" Record key MACRO with <ESC>qq ... <ESC>q and replay it with Q
|
||||
nnoremap Q @q
|
||||
" Y works like D without delete (default for Nvim)
|
||||
nnoremap Y y$</screen>
|
||||
<para>In order for the above keybindings to function properly, the terminal program needs to be configured to generate "ASCII DEL" for <literal>Backspace</literal>-key and "Escape sequence" for <literal>Delete</literal>-key.</para>
|
||||
<para>The new native Vim package system works nicely with "<literal>git</literal>" and "<literal>git submodule</literal>". One such example configuration can be found at <ulink url="https://github.com/osamuaoki/dot-vim">my git repository: dot-vim</ulink>. This does essentially:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para>By using "<literal>git</literal>" and "<literal>git submodule</literal>", latest external packages, such as "<literal><emphasis>name</emphasis></literal>", are placed into <literal>~/.vim/pack/*/opt/<emphasis>name</emphasis></literal> and similar.</para> </listitem>
|
||||
<listitem> <para>By adding <literal>:packadd! <emphasis>name</emphasis></literal> line to user's vimrc file, these packages are placed on <literal>runtimepath</literal>.</para> </listitem>
|
||||
|
|
@ -436,6 +286,12 @@ nnoremap <leader>w :WMToggle<CR></screen>
|
|||
<listitem> <para>At the end of its initialization, tags for the installed documents are updated with "<literal>helptags ALL</literal>".</para> </listitem>
|
||||
</itemizedlist>
|
||||
<para>For more, please start <literal>vim</literal> with "<literal>vim --startuptime vimstart.log</literal>" to check actual execution sequence and time spent for each step.</para>
|
||||
<para>Interesting external plugin packages can be found:</para>
|
||||
<itemizedlist>
|
||||
<listitem> <para> <ulink url="https://www.vim.org/"> Vim - the ubiquitous text editor </ulink> -- The official upstream site of Vim and vim scripts </para> </listitem>
|
||||
<listitem> <para> <ulink url="https://vimawesome.com/"> VimAwsome </ulink> -- The listing of Vim plugins </para> </listitem>
|
||||
<listitem> <para> <ulink url="https://packages.debian.org/unstable/vim-scripts">vim-scripts</ulink> -- Debian package: a collection of vim scripts </para> </listitem>
|
||||
</itemizedlist>
|
||||
<para>It is quite confusing to see too many ways<footnote><para> <ulink url="https://packages.debian.org/unstable/vim-pathogen">vim-pathogen</ulink> was popular. </para></footnote> to manage and load these external packages to <literal>vim</literal>. Checking the original information is the best cure.</para>
|
||||
<table>
|
||||
<title>Information on the initialization of <literal>vim</literal></title>
|
||||
|
|
@ -1972,14 +1828,12 @@ Swap: 4545576 4 4545572</screen>
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> read/write <ulink url="https://en.wikipedia.org/wiki/ExFAT">exFAT</ulink> filesystem (Microsoft) driver for FUSE. </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>exfat-utils</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> utilities for the <ulink url="https://en.wikipedia.org/wiki/ExFAT">exFAT</ulink> filesystem maintained by the exfat-fuse author. </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>xfsprogs</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -2170,8 +2024,8 @@ $ sudo rm -rf old-dir</screen>
|
|||
<section id="_mounting_the_disk_image_file">
|
||||
<title>Mounting the disk image file</title>
|
||||
<para>The disk image "<literal>partition.img</literal>" containing a single partition image can be mounted and unmounted by using the <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink> as follows.</para>
|
||||
<screen># losetup --show -f partition.img
|
||||
/dev/loop0
|
||||
<screen># losetup -v -f partition.img
|
||||
Loop device is /dev/loop0
|
||||
# mkdir -p /mnt/loop0
|
||||
# mount -t auto /dev/loop0 /mnt/loop0
|
||||
...hack...hack...hack
|
||||
|
|
@ -2182,80 +2036,47 @@ $ sudo rm -rf old-dir</screen>
|
|||
# mount -t auto -o loop partition.img /mnt/loop0
|
||||
...hack...hack...hack
|
||||
# umount partition.img</screen>
|
||||
<!--
|
||||
Post kernel version 3.2+ and util-linux 2.21+ support mounting multiple partitions. (After 2012-01).
|
||||
losetup and kpartx has changed behavior. So script outputs are updated in 2024-04-03.
|
||||
Disk image used below is the official cloud Debian image from https://cloud.debian.org/images/cloud/
|
||||
-->
|
||||
<para>Each partition of the disk image "<literal>disk.img</literal>" containing multiple partitions can be mounted by using the <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink>.</para>
|
||||
<screen># losetup --show -f -P disk.img
|
||||
/dev/loop0
|
||||
# ls -l /dev/loop0*
|
||||
brw-rw---- 1 root disk 7, 0 Apr 2 22:51 /dev/loop0
|
||||
brw-rw---- 1 root disk 259, 12 Apr 2 22:51 /dev/loop0p1
|
||||
brw-rw---- 1 root disk 259, 13 Apr 2 22:51 /dev/loop0p14
|
||||
brw-rw---- 1 root disk 259, 14 Apr 2 22:51 /dev/loop0p15
|
||||
<para>Each partition of the disk image "<literal>disk.img</literal>" containing multiple partitions can be mounted by using the <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink>. Since the loop device does not manage partitions by default, we need to reset it as follows.</para>
|
||||
<screen># modinfo -p loop # verify kernel capability
|
||||
max_part:Maximum number of partitions per loop device
|
||||
max_loop:Maximum number of loop devices
|
||||
# losetup -a # verify nothing using the loop device
|
||||
# rmmod loop
|
||||
# modprobe loop max_part=16</screen>
|
||||
<para>Now, the loop device can manage up to 16 partitions.</para>
|
||||
<screen># losetup -v -f disk.img
|
||||
Loop device is /dev/loop0
|
||||
# fdisk -l /dev/loop0
|
||||
Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors
|
||||
Units: sectors of 1 * 512 = 512 bytes
|
||||
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||
Disklabel type: gpt
|
||||
Disk identifier: 6A1D9E28-C48C-2144-91F7-968B3CBC9BD1
|
||||
|
||||
Device Start End Sectors Size Type
|
||||
/dev/loop0p1 262144 4192255 3930112 1.9G Linux root (x86-64)
|
||||
/dev/loop0p14 2048 8191 6144 3M BIOS boot
|
||||
/dev/loop0p15 8192 262143 253952 124M EFI System
|
||||
Disk /dev/loop0: 5368 MB, 5368709120 bytes
|
||||
255 heads, 63 sectors/track, 652 cylinders
|
||||
Units = cylinders of 16065 * 512 = 8225280 bytes
|
||||
Disk identifier: 0x452b6464
|
||||
|
||||
Partition table entries are not in disk order.
|
||||
Device Boot Start End Blocks Id System
|
||||
/dev/loop0p1 1 600 4819468+ 83 Linux
|
||||
/dev/loop0p2 601 652 417690 83 Linux
|
||||
# mkdir -p /mnt/loop0p1
|
||||
# mkdir -p /mnt/loop0p15
|
||||
# mount -t auto /dev/loop0p1 /mnt/loop0p1
|
||||
# mount -t auto /dev/loop0p15 /mnt/loop0p15
|
||||
# mount |grep loop
|
||||
/dev/loop0p1 on /mnt/loop0p1 type ext4 (rw,relatime)
|
||||
/dev/loop0p15 on /mnt/loop0p15 type vfat (rw,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
|
||||
# mount -t ext4 /dev/loop0p1 /mnt/loop0p1
|
||||
# mkdir -p /mnt/loop0p2
|
||||
# mount -t ext4 /dev/loop0p2 /mnt/loop0p2
|
||||
...hack...hack...hack
|
||||
# umount /dev/loop0p1
|
||||
# umount /dev/loop0p15
|
||||
# umount /dev/loop0p2
|
||||
# losetup -d /dev/loop0</screen>
|
||||
<para>Alternatively, similar effects can be done by using the <ulink url="https://en.wikipedia.org/wiki/Device_mapper">device mapper</ulink> devices created by <literal>kpartx</literal>(8) from the <literal>kpartx</literal> package as follows.</para>
|
||||
<screen># kpartx -a -v disk.img
|
||||
add map loop0p1 (253:0): 0 3930112 linear 7:0 262144
|
||||
add map loop0p14 (253:1): 0 6144 linear 7:0 2048
|
||||
add map loop0p15 (253:2): 0 253952 linear 7:0 8192
|
||||
# fdisk -l /dev/loop0
|
||||
Disk /dev/loop0: 2 GiB, 2147483648 bytes, 4194304 sectors
|
||||
Units: sectors of 1 * 512 = 512 bytes
|
||||
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||
Disklabel type: gpt
|
||||
Disk identifier: 6A1D9E28-C48C-2144-91F7-968B3CBC9BD1
|
||||
|
||||
Device Start End Sectors Size Type
|
||||
/dev/loop0p1 262144 4192255 3930112 1.9G Linux root (x86-64)
|
||||
/dev/loop0p14 2048 8191 6144 3M BIOS boot
|
||||
/dev/loop0p15 8192 262143 253952 124M EFI System
|
||||
|
||||
Partition table entries are not in disk order.
|
||||
# ls -l /dev/mapper/
|
||||
total 0
|
||||
crw------- 1 root root 10, 236 Apr 2 22:45 control
|
||||
lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p1 -> ../dm-0
|
||||
lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p14 -> ../dm-1
|
||||
lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p15 -> ../dm-2
|
||||
# mkdir -p /mnt/loop0p1
|
||||
# mkdir -p /mnt/loop0p15
|
||||
# mount -t auto /dev/mapper/loop0p1 /mnt/loop0p1
|
||||
# mount -t auto /dev/mapper/loop0p15 /mnt/loop0p15
|
||||
# mount |grep loop
|
||||
/dev/loop0p1 on /mnt/loop0p1 type ext4 (rw,relatime)
|
||||
/dev/loop0p15 on /mnt/loop0p15 type vfat (rw,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
|
||||
...
|
||||
# mkdir -p /mnt/loop0p2
|
||||
# mount -t ext4 /dev/mapper/loop0p2 /mnt/loop0p2
|
||||
...
|
||||
...hack...hack...hack
|
||||
# umount /dev/mapper/loop0p1
|
||||
# umount /dev/mapper/loop0p15
|
||||
# kpartx -d disk.img</screen>
|
||||
# umount /dev/mapper/loop0p2
|
||||
...
|
||||
# kpartx -d /mnt/loop0</screen>
|
||||
<note>
|
||||
<para>You can mount a single partition of such disk image with <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink> using offset to skip <ulink url="https://en.wikipedia.org/wiki/Master_boot_record">MBR</ulink> etc., too. But this is more error prone.</para>
|
||||
</note>
|
||||
</section>
|
||||
<section id="_cleaning_a_disk_image_file">
|
||||
<title>Cleaning a disk image file</title>
|
||||
|
|
@ -2270,11 +2091,10 @@ lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p15 -> ../dm-2
|
|||
# umount new.img
|
||||
# umount disk.img</screen>
|
||||
<para>If "<literal>disk.img</literal>" is in ext2, ext3 or ext4, you can also use <literal>zerofree</literal>(8) from the <literal>zerofree</literal> package as follows.</para>
|
||||
<screen># losetup --show -f disk.img
|
||||
/dev/loop0
|
||||
# zerofree /dev/loop0
|
||||
# cp --sparse=always disk.img new.img
|
||||
# losetup -d /dev/loop0</screen>
|
||||
<screen># losetup -f -v disk.img
|
||||
Loop device is /dev/loop3
|
||||
# zerofree /dev/loop3
|
||||
# cp --sparse=always disk.img new.img</screen>
|
||||
</section>
|
||||
<section id="_making_the_empty_disk_image_file">
|
||||
<title>Making the empty disk image file</title>
|
||||
|
|
@ -2282,11 +2102,11 @@ lrwxrwxrwx 1 root root 7 Apr 2 23:19 loop0p15 -> ../dm-2
|
|||
<screen>$ dd bs=1 count=0 if=/dev/zero of=disk.img seek=5G</screen>
|
||||
<para>Instead of using <literal>dd</literal>(1), specialized <literal>fallocate</literal>(8) may be used here.</para>
|
||||
<para>You can create an ext4 filesystem on this disk image "<literal>disk.img</literal>" using the <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink> as follows.</para>
|
||||
<screen># losetup --show -f disk.img
|
||||
/dev/loop0
|
||||
# mkfs.ext4 /dev/loop0
|
||||
<screen># losetup -f -v disk.img
|
||||
Loop device is /dev/loop1
|
||||
# mkfs.ext4 /dev/loop1
|
||||
...hack...hack...hack
|
||||
# losetup -d /dev/loop0
|
||||
# losetup -d /dev/loop1
|
||||
$ du --apparent-size -h disk.img
|
||||
5.0G disk.img
|
||||
$ du -h disk.img
|
||||
|
|
@ -3053,17 +2873,11 @@ $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686</screen>
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> programs for the <ulink url="https://en.wikipedia.org/wiki/Libvirt">libvirt</ulink> library </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>incus</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> <ulink url="https://wiki.debian.org/Incus">Incus</ulink>: system container and virtual machine manager (for Debian 13 "Trixie") </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>lxd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> <ulink url="https://wiki.debian.org/LXD">LXD</ulink>: system container and virtual machine manager (for Debian 12 "Bookworm") </entry>
|
||||
<entry> <ulink url="https://wiki.debian.org/LXD">LXD</ulink>: system container and virtual machine manager </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>podman</literal> </entry>
|
||||
|
|
@ -3095,14 +2909,12 @@ $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686</screen>
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry><ulink url="https://en.wikipedia.org/wiki/Bochs">Bochs</ulink>: IA-32 PC emulator </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>qemu</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> <ulink url="https://en.wikipedia.org/wiki/QEMU">QEMU</ulink>: fast generic processor emulator </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>qemu-system</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -3255,7 +3067,7 @@ $ fakeroot make -f debian/rules.gen binary-arch_i386_none_686</screen>
|
|||
<title>Mounting the virtual disk image file</title>
|
||||
<para>For the raw disk image file, see <xref linkend="_the_disk_image"/>.</para>
|
||||
<para>For other virtual disk image files, you can use <literal>qemu-nbd</literal>(8) to export them using <ulink url="https://en.wikipedia.org/wiki/Network_block_device">network block device</ulink> protocol and mount them using the <literal>nbd</literal> kernel module.</para>
|
||||
<para><literal>qemu-nbd</literal>(8) supports disk formats supported by <ulink url="https://en.wikipedia.org/wiki/QEMU">QEMU</ulink>: raw, <ulink url="https://en.wikipedia.org/wiki/Qcow">qcow2, qcow</ulink>, <ulink url="https://en.wikipedia.org/wiki/VMDK">vmdk</ulink>, <ulink url="https://en.wikipedia.org/wiki/VirtualBox#Virtual_Desktop_Image">vdi</ulink>, <ulink url="https://en.wikipedia.org/wiki/Bochs">bochs</ulink>, cow (user-mode Linux copy-on-write), <ulink url="https://en.wikipedia.org/wiki/Parallels_Workstation">parallels</ulink>, <ulink url="https://en.wikipedia.org/wiki/Apple_Disk_Image">dmg</ulink>, <ulink url="https://en.wikipedia.org/wiki/Cloop">cloop</ulink>, <ulink url="https://en.wikipedia.org/wiki/VHD_(file_format)">vpc</ulink>, vvfat (virtual VFAT), and host_device.</para>
|
||||
<para><literal>qemu-nbd</literal>(8) supports disk formats supported by <ulink url="https://en.wikipedia.org/wiki/QEMU">QEMU</ulink>: <ulink url="https://en.wikipedia.org/wiki/QEMU">QEMU</ulink> supports following disk formats: raw, <ulink url="https://en.wikipedia.org/wiki/Qcow">qcow2, qcow</ulink>, <ulink url="https://en.wikipedia.org/wiki/VMDK">vmdk</ulink>, <ulink url="https://en.wikipedia.org/wiki/VirtualBox#Virtual_Desktop_Image">vdi</ulink>, <ulink url="https://en.wikipedia.org/wiki/Bochs">bochs</ulink>, cow (user-mode Linux copy-on-write), <ulink url="https://en.wikipedia.org/wiki/Parallels_Workstation">parallels</ulink>, <ulink url="https://en.wikipedia.org/wiki/Apple_Disk_Image">dmg</ulink>, <ulink url="https://en.wikipedia.org/wiki/Cloop">cloop</ulink>, <ulink url="https://en.wikipedia.org/wiki/VHD_(file_format)">vpc</ulink>, vvfat (virtual VFAT), and host_device.</para>
|
||||
<para>The <ulink url="https://en.wikipedia.org/wiki/Network_block_device">network block device</ulink> can support partitions in the same way as the <ulink url="https://en.wikipedia.org/wiki/Loop_device">loop device</ulink> (see <xref linkend="_mounting_the_disk_image_file"/>). You can mount the first partition of "<literal>disk.img</literal>" as follows.</para>
|
||||
<screen># modprobe nbd max_part=16
|
||||
# qemu-nbd -v -c /dev/nbd0 disk.img
|
||||
|
|
@ -3282,22 +3094,6 @@ $ sudo sbuild-createchroot -v --include=eatmydata,ccache unstable /srv/chroot/un
|
|||
<tip> <para>The <literal>sbuild</literal> package helps to construct a chroot system and builds a package inside the chroot using <literal>schroot</literal> as its backend. It is an ideal system to check build-dependencies. See more on <ulink url="https://wiki.debian.org/sbuild">sbuild at Debian wiki</ulink> and <ulink url="https://www.debian.org/doc/manuals/debmake-doc/ch03.en.html#sbuild-setup">sbuild configuration example in "Guide for Debian Maintainers"</ulink>. </para> </tip>
|
||||
<tip> <para>The <literal>systemd-nspawn</literal>(1) command helps to run a command or OS in a light-weight container in similar ways to <literal>chroot</literal>. It is more powerful since it uses namespaces to fully virtualize the the process tree, IPC, hostname, domain name and, optionally, networking and user databases. See <ulink url="https://wiki.debian.org/nspawn">systemd-nspawn</ulink>. </para> </tip>
|
||||
</section>
|
||||
<!--
|
||||
OCI
|
||||
- Docker
|
||||
- Podman
|
||||
Cliché: https://osamuaoki.github.io/en/2024/02/14/podman-1/#typical-clich%C3%A9-for-dockerpodman
|
||||
- Kubertner
|
||||
-->
|
||||
<!--
|
||||
Incus (LXD replacement)
|
||||
- with Linux Container
|
||||
- with Vm (KVM, qemu)
|
||||
-->
|
||||
<!--
|
||||
Virt-manager/Gnome Box
|
||||
- with Vm (KVM, qemu)
|
||||
-->
|
||||
<section id="_multiple_desktop_systems">
|
||||
<title>Multiple desktop systems</title>
|
||||
<para>If you wish to try a new GUI Desktop environment of any OS, I recommend you to use <ulink url="https://en.wikipedia.org/wiki/QEMU">QEMU</ulink> or <ulink url="https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine">KVM</ulink> on a Debian <literal>stable</literal> system to run multiple desktop systems safely using <ulink url="https://en.wikipedia.org/wiki/Virtualization">virtualization</ulink>. These enable you to run any desktop applications including ones of Debian <literal>unstable</literal> and <literal>testing</literal> without usual risks associated with them and without rebooting.</para>
|
||||
|
|
|
|||
|
|
@ -737,14 +737,12 @@ Partitioning them with <literal>fdisk</literal>(8), <literal>cfdisk</literal>(8)
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> lightweight, extensible <emphasis role="strong">meta-backup</emphasis> system </entry>
|
||||
</row>
|
||||
<!-- Removed
|
||||
<row>
|
||||
<entry> <literal>flexbackup</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> (remote) incremental backup </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>slbackup</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
|
|||
|
|
@ -759,7 +759,6 @@ done</screen>
|
|||
<entry> xml/dsssl </entry>
|
||||
<entry> utilities for DocBook files including conversion to other formats (HTML, RTF, PS, man, PDF) with <literal>docbook2*</literal> commands with DSSSL </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>sgml2x</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -767,7 +766,6 @@ done</screen>
|
|||
<entry> SGML/dsssl </entry>
|
||||
<entry> converter from SGML and XML using DSSSL stylesheets </entry>
|
||||
</row>
|
||||
-->
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
|
@ -1038,7 +1036,6 @@ done</screen>
|
|||
<para>Printable data may also be expressed in the <ulink url="https://en.wikipedia.org/wiki/PDF">PDF</ulink> format on the recent Debian system.</para>
|
||||
<para>PDF files can displayed and its form entries may be filled using GUI viewer tools such as <ulink url="https://en.wikipedia.org/wiki/Evince">Evince</ulink> and <ulink url="https://en.wikipedia.org/wiki/Okular">Okular</ulink> (see <xref linkend="_gui_applications" />); and modern browsers such as <ulink url="https://en.wikipedia.org/wiki/Chromium_(web_browser)">Chromium</ulink>. </para>
|
||||
<para>PDF files can be edited using some graphics tools such as <ulink url="https://en.wikipedia.org/wiki/LibreOffice">LibreOffice</ulink>, <ulink url="https://en.wikipedia.org/wiki/Scribus">Scribus</ulink>, and <ulink url="https://en.wikipedia.org/wiki/Inkscape">Inkscape</ulink> (see <xref linkend="_graphic_data_tools" />). </para>
|
||||
<tip> <para>You can read a PDF file with <ulink url="https://en.wikipedia.org/wiki/GIMP">GIMP</ulink> and convert it into <ulink url="https://en.wikipedia.org/wiki/PNG">PNG</ulink> format using higher than 300 dpi resolution. This may be used as a background image for <ulink url="https://en.wikipedia.org/wiki/LibreOffice">LibreOffice</ulink> to produce a desirable altered printout with minimum efforts. </para> </tip>
|
||||
<section id="_ghostscript">
|
||||
<title>Ghostscript</title>
|
||||
<para>The core of printable data manipulation is the <ulink url="https://en.wikipedia.org/wiki/Ghostscript">Ghostscript</ulink> <ulink url="https://en.wikipedia.org/wiki/PostScript">PostScript (PS)</ulink> interpreter which generates raster image.</para>
|
||||
|
|
@ -1071,20 +1068,13 @@ done</screen>
|
|||
<entry> GPL Ghostscript PostScript/PDF interpreter - X display support </entry>
|
||||
</row>
|
||||
<row>
|
||||
<!--
|
||||
libpoppler package name needs to be updated for every major releases
|
||||
https://tracker.debian.org/pkg/poppler
|
||||
-->
|
||||
<entry> <literal>libpoppler147</literal> </entry>
|
||||
<entry> <literal>libpoppler102</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> PDF rendering library forked from the xpdf PDF viewer </entry>
|
||||
</row>
|
||||
<row>
|
||||
<!--
|
||||
check name for libpoppler-glib8t64 package name https://tracker.debian.org/pkg/poppler
|
||||
-->
|
||||
<entry> <literal>libpoppler-glib8t64</literal> </entry>
|
||||
<entry> <literal>libpoppler-glib8</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> PDF rendering library (GLib-based shared library) </entry>
|
||||
|
|
@ -1224,14 +1214,14 @@ $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo
|
|||
<entry> <literal>pdf2svg</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> pdf→svg </entry>
|
||||
<entry> ps→svg </entry>
|
||||
<entry> converter from PDF to <ulink url="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics">Scalable vector graphics</ulink> format </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>pdftoipe</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> pdf→ipe </entry>
|
||||
<entry> ps→ipe </entry>
|
||||
<entry> converter from PDF to IPE's XML format </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
|
|
@ -1314,532 +1304,355 @@ $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo
|
|||
</section>
|
||||
<section id="_graphic_data_tools">
|
||||
<title>Graphic data tools</title>
|
||||
<para>The following packages for the graphics data conversion, editing, and organization tools caught my eyes.</para>
|
||||
<table pgwide="0" frame="topbot" rowsep="1" colsep="1">
|
||||
<title>List of graphics data tools</title>
|
||||
<tgroup cols="5">
|
||||
<colspec colwidth="146pt" align="left"/>
|
||||
<colspec colwidth="76pt" align="left"/>
|
||||
<colspec colwidth="70pt" align="left"/>
|
||||
<colspec colwidth="124pt" align="left"/>
|
||||
<colspec colwidth="331pt" align="left"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry> package </entry>
|
||||
<entry> popcon </entry>
|
||||
<entry> size </entry>
|
||||
<entry> keyword </entry>
|
||||
<entry> description </entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>gimp</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> GNU Image Manipulation Program </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>imagemagick</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> image manipulation programs </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>graphicsmagick</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> image manipulation programs (fork of <literal>imagemagick</literal>) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>xsane</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> GTK-based X11 frontend for SANE (Scanner Access Now Easy) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>netpbm</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> graphics conversion tools </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libheif-examples</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> heif→jpeg(bitmap) </entry>
|
||||
<entry> convert <ulink url="https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format">High Efficiency Image File Format (HEIF)</ulink> to JPEG, PNG, or Y4M formats with <literal>heif-convert</literal>(1) command</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>icoutils</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png↔ico(bitmap) </entry>
|
||||
<entry> convert <ulink url="https://en.wikipedia.org/wiki/ICO_(icon_image_file_format)">MS Windows icons and cursors to and from PNG formats</ulink> (<ulink url="https://en.wikipedia.org/wiki/Favicon">favicon.ico</ulink>) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>scribus</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ps/pdf/SVG/… </entry>
|
||||
<entry><ulink url="https://en.wikipedia.org/wiki/Scribus">Scribus</ulink> DTP editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libreoffice-draw</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> LibreOffice office suite - drawing </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>inkscape</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry><ulink url="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG (Scalable Vector Graphics)</ulink> editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>dia</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> diagram editor (Gtk) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>xfig</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> Facility for Interactive Generation of figures under X11 </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>pstoedit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ps/pdf→image(vector) </entry>
|
||||
<entry> PostScript and PDF files to editable vector graphics converter (SVG) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libwmf-bin</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Windows/image(vector) </entry>
|
||||
<entry> Windows metafile (vector graphics data) conversion tools </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>fig2sxd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> fig→sxd(vector) </entry>
|
||||
<entry> convert XFig files to OpenOffice.org Draw format </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>unpaper</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→image </entry>
|
||||
<entry> post-processing tool for scanned pages for <ulink url="https://en.wikipedia.org/wiki/Optical_character_recognition">OCR</ulink> </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>tesseract-ocr</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free <ulink url="https://en.wikipedia.org/wiki/Optical_character_recognition">OCR</ulink> software based on the HP's commercial OCR engine </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>tesseract-ocr-eng</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> OCR engine data: tesseract-ocr language files for English text </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gocr</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free OCR software </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>ocrad</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free OCR software </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>eog</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> Eye of GNOME graphics viewer program </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gthumb</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer and browser (GNOME) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>geeqie</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer using GTK </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>shotwell</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital photo organizer (GNOME) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gtkam</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> application for retrieving media from digital cameras (GTK) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gphoto2</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> The gphoto2 digital camera command-line client </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gwenview</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer (KDE) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>kamera</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital camera support for KDE applications </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>digikam</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital photo management application for KDE </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exiv2</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> EXIF/IPTC metadata manipulation tool </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exiftran</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> transform digital camera jpeg images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>jhead</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> manipulate the non-image part of Exif compliant JPEG (digital camera photo) files </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exif</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> command-line utility to show EXIF information in JPEG files </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exiftags</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> utility to read Exif tags from a digital camera JPEG file </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exifprobe</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> read metadata from digital pictures </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>dcraw</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Raw)→ppm </entry>
|
||||
<entry> decode raw digital camera images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>findimagedupes</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→fingerprint </entry>
|
||||
<entry> find visually similar or duplicate images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>ale</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→image </entry>
|
||||
<entry> merge images to increase fidelity or create mosaics </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>imageindex</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif)→html </entry>
|
||||
<entry> generate static HTML galleries from images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>outguess</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> jpeg,png </entry>
|
||||
<entry> universal <ulink url="https://en.wikipedia.org/wiki/Steganography">Steganographic</ulink> tool </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>librecad</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> DXF </entry>
|
||||
<entry> CAD data editor (KDE) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>blender</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> blend, TIFF, VRML, … </entry>
|
||||
<entry> 3D content editor for animation etc </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>mm3d</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ms3d, obj, dxf, … </entry>
|
||||
<entry> OpenGL based 3D model editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>open-font-design-toolkit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf, ps, … </entry>
|
||||
<entry> metapackage for open font design </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>fontforge</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf, ps, … </entry>
|
||||
<entry> font editor for PS, TrueType and OpenType fonts </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>xgridfit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf </entry>
|
||||
<entry> program for <ulink url="https://en.wikipedia.org/wiki/Hinting">gridfitting and hinting</ulink> TrueType fonts </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
<tip> <para>Search more image tools using regex "<literal>~Gworks-with::image</literal>" in <literal>aptitude</literal>(8) (see <xref linkend="_search_method_options_with_aptitude"/>).</para> </tip>
|
||||
<para>Although GUI programs such as <literal>gimp</literal>(1) are very powerful, command line tools such as <literal>imagemagick</literal>(1) are quite useful for automating image manipulation via scripts.</para>
|
||||
<para>The de facto image file format of the digital camera is the <ulink url="https://en.wikipedia.org/wiki/Exchangeable_image_file_format">Exchangeable Image File Format</ulink> (EXIF) which is the <ulink url="https://en.wikipedia.org/wiki/JPEG">JPEG</ulink> image file format with additional metadata tags. It can hold information such as date, time, and camera settings.</para>
|
||||
<para><ulink url="https://en.wikipedia.org/wiki/Lempel-Ziv-Welch">The Lempel-Ziv-Welch (LZW) lossless data compression</ulink> patent has been expired. <ulink url="https://en.wikipedia.org/wiki/Graphics_Interchange_Format">Graphics Interchange Format (GIF)</ulink> utilities which use the LZW compression method are now freely available on the Debian system.</para>
|
||||
<tip> <para>Any digital camera or scanner with removable recording media works with Linux through <ulink url="https://en.wikipedia.org/wiki/USB_flash_drive">USB storage</ulink> readers since it follows the <ulink url="https://en.wikipedia.org/wiki/Design_rule_for_Camera_File_system">Design rule for Camera Filesystem</ulink> and uses <ulink url="https://en.wikipedia.org/wiki/File_Allocation_Table">FAT</ulink> filesystem. See <xref linkend="_removable_storage_device"/>.</para> </tip>
|
||||
<section id="_graphic_data_tools_meta">
|
||||
<title>Graphic data tools (metapackage)</title>
|
||||
<para>The following metapackages are good starting points for searching graphics data tools using <literal>aptitude</literal>(8). "<ulink url="https://qa.debian.org/developer.php?email=pkg-phototools-devel@lists.alioth.debian.org">Packages overview for Debian PhotoTools Maintainers</ulink>" can be another starting point.</para>
|
||||
<table pgwide="0" frame="topbot" rowsep="1" colsep="1">
|
||||
<title>List of graphics data tools (metapackage)</title>
|
||||
<tgroup cols="5">
|
||||
<colspec colwidth="146pt" align="left"/>
|
||||
<colspec colwidth="76pt" align="left"/>
|
||||
<colspec colwidth="70pt" align="left"/>
|
||||
<colspec colwidth="124pt" align="left"/>
|
||||
<colspec colwidth="331pt" align="left"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry> package </entry>
|
||||
<entry> popcon </entry>
|
||||
<entry> size </entry>
|
||||
<entry> keyword </entry>
|
||||
<entry> description </entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- missing in trixie, mayneed to reactivate for forky
|
||||
<row>
|
||||
<entry> <literal>design-desktop-graphics</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> svg, jpeg, … </entry>
|
||||
<entry> metapackage for graphics designers </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>education-graphics</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> svg, jpeg, … </entry>
|
||||
<entry> metapackage for teaching graphics and pictural art. </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>open-font-design-toolkit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf, ps, … </entry>
|
||||
<entry> metapackage for open font design </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
<tip> <para>Search more image tools using regex "<literal>~Gworks-with::image</literal>" in <literal>aptitude</literal>(8) (see <xref linkend="_search_method_options_with_aptitude"/>).</para> </tip>
|
||||
</section>
|
||||
<section id="_graphic_data_tools_gui">
|
||||
<title>Graphic data tools (GUI)</title>
|
||||
<para>The following packages for the GUI graphics data conversion, editing, and organization tools caught my eyes.</para>
|
||||
<table pgwide="0" frame="topbot" rowsep="1" colsep="1">
|
||||
<title>List of graphics data tools (GUI)</title>
|
||||
<tgroup cols="5">
|
||||
<colspec colwidth="146pt" align="left"/>
|
||||
<colspec colwidth="76pt" align="left"/>
|
||||
<colspec colwidth="70pt" align="left"/>
|
||||
<colspec colwidth="124pt" align="left"/>
|
||||
<colspec colwidth="331pt" align="left"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry> package </entry>
|
||||
<entry> popcon </entry>
|
||||
<entry> size </entry>
|
||||
<entry> keyword </entry>
|
||||
<entry> description </entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>gimp</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> GNU Image Manipulation Program </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>xsane</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> GTK-based X11 frontend for SANE (Scanner Access Now Easy) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>scribus</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ps/pdf/SVG/… </entry>
|
||||
<entry><ulink url="https://en.wikipedia.org/wiki/Scribus">Scribus</ulink> DTP editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libreoffice-draw</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> LibreOffice office suite - drawing </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>inkscape</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry><ulink url="https://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG (Scalable Vector Graphics)</ulink> editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>dia</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> diagram editor (Gtk) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>xfig</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(vector) </entry>
|
||||
<entry> Facility for Interactive Generation of figures under X11 </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gocr</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free OCR software </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>eog</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> Eye of GNOME graphics viewer program </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gthumb</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer and browser (GNOME) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>geeqie</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer using GTK </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>shotwell</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital photo organizer (GNOME) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>gwenview</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer (KDE) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>kamera</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital camera support for KDE applications </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>digikam</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> digital photo management application for KDE </entry>
|
||||
</row>
|
||||
<!-- POPCON I=13 RAW handling GUI, group-maintained -->
|
||||
<row>
|
||||
<entry> <literal>darktable</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> virtual lighttable and darkroom for photographers </entry>
|
||||
</row>
|
||||
<!-- POPCON I ~ 10, group-maintained -->
|
||||
<row>
|
||||
<entry> <literal>hugin</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> panorama photo stitcher </entry>
|
||||
</row>
|
||||
<!-- low POPCON I=4, photo meta data are available with other tools -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>gtkam</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> application for retrieving media from digital cameras (GTK) </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<!-- low POPCON I=1 -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>fotoxx</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> Edit photos and manage a large collection </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<!-- low POPCON I=0 -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>phototonic</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> image viewer and organizer </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<row>
|
||||
<entry> <literal>librecad</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> DXF, ... </entry>
|
||||
<entry> 2D CAD data editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>freecad</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> DXF, ... </entry>
|
||||
<entry> 3D CAD data editor </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>blender</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> blend, TIFF, VRML, … </entry>
|
||||
<entry> 3D content editor for animation etc </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>mm3d</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ms3d, obj, dxf, … </entry>
|
||||
<entry> OpenGL based 3D model editor </entry>
|
||||
</row>
|
||||
<!-- ref: open-font-design-toolkit -->
|
||||
<row>
|
||||
<entry> <literal>fontforge</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf, ps, … </entry>
|
||||
<entry> font editor for PS, TrueType and OpenType fonts </entry>
|
||||
</row>
|
||||
<!-- ref: open-font-design-toolkit -->
|
||||
<row>
|
||||
<entry> <literal>xgridfit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ttf </entry>
|
||||
<entry> program for <ulink url="https://en.wikipedia.org/wiki/Hinting">gridfitting and hinting</ulink> TrueType fonts </entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</section>
|
||||
<section id="_graphic_data_tools_cli">
|
||||
<title>Graphic data tools (CLI)</title>
|
||||
<para>The following packages for the CLI graphics data conversion, editing, and organization tools caught my eyes.</para>
|
||||
<table pgwide="0" frame="topbot" rowsep="1" colsep="1">
|
||||
<title>List of graphics data tools (CLI)</title>
|
||||
<tgroup cols="5">
|
||||
<colspec colwidth="146pt" align="left"/>
|
||||
<colspec colwidth="76pt" align="left"/>
|
||||
<colspec colwidth="70pt" align="left"/>
|
||||
<colspec colwidth="124pt" align="left"/>
|
||||
<colspec colwidth="331pt" align="left"/>
|
||||
<thead>
|
||||
<row>
|
||||
<entry> package </entry>
|
||||
<entry> popcon </entry>
|
||||
<entry> size </entry>
|
||||
<entry> keyword </entry>
|
||||
<entry> description </entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry> <literal>imagemagick</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> image manipulation programs </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>graphicsmagick</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> image manipulation programs (fork of <literal>imagemagick</literal>) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>netpbm</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(bitmap) </entry>
|
||||
<entry> graphics conversion tools </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libheif-examples</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> heif→jpeg(bitmap) </entry>
|
||||
<entry> convert <ulink url="https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format">High Efficiency Image File Format (HEIF)</ulink> to JPEG, PNG, or Y4M formats with <literal>heif-convert</literal>(1) command</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>icoutils</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png↔ico(bitmap) </entry>
|
||||
<entry> convert <ulink url="https://en.wikipedia.org/wiki/ICO_(icon_image_file_format)">MS Windows icons and cursors to and from PNG formats</ulink> (<ulink url="https://en.wikipedia.org/wiki/Favicon">favicon.ico</ulink>) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>pstoedit</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> ps/pdf→image(vector) </entry>
|
||||
<entry> PostScript and PDF files to editable vector graphics converter (SVG) </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>libwmf-bin</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Windows/image(vector) </entry>
|
||||
<entry> Windows metafile (vector graphics data) conversion tools </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>fig2sxd</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> fig→sxd(vector) </entry>
|
||||
<entry> convert XFig files to OpenOffice.org Draw format </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>unpaper</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→image </entry>
|
||||
<entry> post-processing tool for scanned pages for <ulink url="https://en.wikipedia.org/wiki/Optical_character_recognition">OCR</ulink> </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>tesseract-ocr</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free <ulink url="https://en.wikipedia.org/wiki/Optical_character_recognition">OCR</ulink> software based on the HP's commercial OCR engine </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>tesseract-ocr-eng</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> OCR engine data: tesseract-ocr language files for English text </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>ocrad</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→text </entry>
|
||||
<entry> free OCR software </entry>
|
||||
</row>
|
||||
<!-- highest POPCON -->
|
||||
<row>
|
||||
<entry> <literal>exif</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> command-line utility to show EXIF information in JPEG files </entry>
|
||||
</row>
|
||||
<!-- higher POPCON, GNOME -->
|
||||
<row>
|
||||
<entry> <literal>exiv2</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> EXIF/IPTC metadata manipulation tool </entry>
|
||||
</row>
|
||||
<!-- higher POPCON -->
|
||||
<row>
|
||||
<entry> <literal>exiftran</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> transform digital camera jpeg images </entry>
|
||||
</row>
|
||||
<!-- lower POPCON, similar functionality available in other package -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>gphoto2</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> The gphoto2 digital camera command-line client </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>jhead</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> manipulate the non-image part of Exif compliant JPEG (digital camera photo) files </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<row>
|
||||
<entry> <literal>exiftags</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> utility to read Exif tags from a digital camera JPEG file </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>exifprobe</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif) </entry>
|
||||
<entry> read metadata from digital pictures </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>dcraw</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Raw)→ppm </entry>
|
||||
<entry> decode raw digital camera images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>findimagedupes</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→fingerprint </entry>
|
||||
<entry> find visually similar or duplicate images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>ale</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image→image </entry>
|
||||
<entry> merge images to increase fidelity or create mosaics </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>imageindex</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> image(Exif)→html </entry>
|
||||
<entry> generate static HTML galleries from images </entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry> <literal>outguess</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> jpeg,png </entry>
|
||||
<entry> universal <ulink url="https://en.wikipedia.org/wiki/Steganography">Steganographic</ulink> tool </entry>
|
||||
</row>
|
||||
<!-- design-desktop-graphics depends on jpegoptim -->
|
||||
<row>
|
||||
<entry> <literal>jpegoptim</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> jpeg </entry>
|
||||
<entry> optimize <ulink url="https://en.wikipedia.org/wiki/JPEG">JPEG</ulink> files </entry>
|
||||
</row>
|
||||
<!-- design-desktop-graphics depends on optipng -->
|
||||
<row>
|
||||
<entry> <literal>optipng</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png </entry>
|
||||
<entry> optimize <ulink url="https://en.wikipedia.org/wiki/PNG">PNG</ulink> files, lossless compression </entry>
|
||||
</row>
|
||||
<!-- POPCON less than optipng, not metapackage reference -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>pngcrush</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png </entry>
|
||||
<entry> optimize <ulink url="https://en.wikipedia.org/wiki/PNG">PNG</ulink> files, lossless compression </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<!-- POPCON == non-zero, lossy ... different functionality -->
|
||||
<row>
|
||||
<entry> <literal>pngquant</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png </entry>
|
||||
<entry> optimize <ulink url="https://en.wikipedia.org/wiki/PNG">PNG</ulink> files, lossy compression </entry>
|
||||
</row>
|
||||
<!-- POPCON == zero, similar pngquant is more pupular -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>pngnq</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> png </entry>
|
||||
<entry> optimize <ulink url="https://en.wikipedia.org/wiki/PNG">PNG</ulink> files, lossy compression </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
<!-- DROP since low popcon and no reference by metapackage, all newer program GIF or SVG for animation No more LZW-issue -->
|
||||
@-@XML_COMMENT_START@-@
|
||||
<row>
|
||||
<entry> <literal>apngopt</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> apng </entry>
|
||||
<entry> optimize APNG (Animated Portable Network Graphics) animated images </entry>
|
||||
</row>
|
||||
@-@XML_COMMENT_END@-@
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</section>
|
||||
</section>
|
||||
<section id="_miscellaneous_data_conversion">
|
||||
<title>Miscellaneous data conversion</title>
|
||||
|
|
|
|||
|
|
@ -727,11 +727,7 @@ fi</screen>
|
|||
<entry> GNU C++ compiler </entry>
|
||||
</row>
|
||||
<row>
|
||||
<!--
|
||||
libstdc++-??-dev package name needs to be updated for every major releases
|
||||
https://tracker.debian.org/pkg/gcc-14 or any newer one matching gcc version
|
||||
-->
|
||||
<entry> <literal>libstdc++-14-dev</literal> </entry>
|
||||
<entry> <literal>libstdc++-10-dev</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> GNU Standard C++ Library v3 (development files) </entry>
|
||||
|
|
@ -802,14 +798,12 @@ fi</screen>
|
|||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Rust systems programming language </entry>
|
||||
</row>
|
||||
<!--
|
||||
<row>
|
||||
<entry> <literal>haskell-platform</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
<entry> @-@psize1@-@ </entry>
|
||||
<entry> Standard <ulink url="https://en.wikipedia.org/wiki/Haskell_(programming_language)">Haskell</ulink> libraries and tools </entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry> <literal>gfortran</literal> </entry>
|
||||
<entry> @-@popcon1@-@ </entry>
|
||||
|
|
@ -983,6 +977,7 @@ $ bison -d example.y
|
|||
$ flex example.l
|
||||
$ gcc -lfl example.tab.c lex.yy.c -o example
|
||||
$ ./example
|
||||
$ ./example
|
||||
1 + 2 * ( 3 + 1 ) =
|
||||
L: NUMBER = 1
|
||||
L: OP_ADD
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<!-- vim: set tw=78 sts=2 ai expandtab: -->
|
||||
# Updating English contents of debian-reference
|
||||
# Reminder to update the English RAWXML/* files
|
||||
|
||||
2024-01-28T21:12:00 UTC
|
||||
2024-02-02T00:45:26 UTC
|
||||
|
||||
Osamu Aoki, <osamu at debian dot org>
|
||||
|
||||
|
|
@ -9,7 +9,36 @@ Osamu Aoki, <osamu at debian dot org>
|
|||
|
||||
Unfortunately, no.
|
||||
|
||||
## Reminders for contents
|
||||
## Selection principles for the content
|
||||
|
||||
Debian Reference starts in with:
|
||||
|
||||
This Debian Reference is intended to provide a broad overview of the Debian
|
||||
system as a post-installation user's guide. It covers many aspects of system
|
||||
administration through shell-command examples for non-developers.
|
||||
|
||||
Also, in its appendix "A.1. The Debian maze", it states:
|
||||
|
||||
... There are also references called HOWTO and mini-HOWTO. They are easier to
|
||||
understand but tend to give too much detail and lose the big picture. I
|
||||
sometimes have a problem finding the right section in a long HOWTO when I need
|
||||
a few commands to invoke.
|
||||
|
||||
I hope this "Debian Reference" provides a good starting direction for people
|
||||
in the Debian maze.
|
||||
|
||||
These should be the guiding principles. Keywords are:
|
||||
|
||||
* a broad overview
|
||||
* shell-command examples
|
||||
* HOWTOs ... too much detail and lose the big picture
|
||||
* problem ... a long HOWTO
|
||||
* a good starting direction
|
||||
|
||||
Please note "Debian Reference" isn't trying to give too much detail nor long
|
||||
HOWTOs.
|
||||
|
||||
## Checklist questions
|
||||
|
||||
Let's ask ourselves several questions before adding any contents.
|
||||
|
||||
|
|
@ -25,16 +54,22 @@ Let's ask ourselves several questions before adding any contents.
|
|||
* Are they about actively maintained program? (No sourceforge.net upstream.)
|
||||
* Are they the best/better program offering the feature?
|
||||
* Are they about main stream program?
|
||||
* POPCON V>100 : popular and OK to add
|
||||
* POPCON I>5 : OK to add if you used or tested it and found useful
|
||||
* POPCON I<5 : Don't add unless you have strong arguments
|
||||
* Are they about main stream working environment? (GNOME?)
|
||||
* POPCON `V > 200` : popular and OK to add even if a similar package exists
|
||||
* POPCON `I > 5` : OK to add if you used or tested it and found useful
|
||||
* POPCON `I = 0` : Don't add unless you have strong arguments
|
||||
* Are they about main stream working environment? (#1 GNOME, #2 KDE)
|
||||
* Is there any strong reason to add them?
|
||||
* sysv to systemd transition
|
||||
* UEFI transition
|
||||
* sysv to systemd transition -- mostly done
|
||||
* UEFI transition -- mostly done
|
||||
* OAUTH2 support for SMTP/IMAP4 (future TODO)
|
||||
* lxd to incus transition (future TODO)
|
||||
* GNOME45 transition (future TODO)
|
||||
* Is there any outdated content to drop?
|
||||
* CVS, SVN to Git transition -- mostly done
|
||||
* Old mail (MTA, etc.) contents -- mostly done
|
||||
* Old unused Exif data tools -- next AR
|
||||
|
||||
Use quoted XML comment `<!-- XML comment strings -->` to annotate decisions.
|
||||
|
||||
## Reminders for commit
|
||||
|
||||
|
|
|
|||
2352
remote.ent
2352
remote.ent
File diff suppressed because it is too large
Load diff
179
xslt/README.md
179
xslt/README.md
|
|
@ -1,179 +0,0 @@
|
|||
# Font for CJK
|
||||
|
||||
## Asian font basics (Latex)
|
||||
|
||||
Use xeCJK only for CJK http://bugs.debian.org/666569
|
||||
|
||||
`latex-cjk-all` contains xeCJK.
|
||||
|
||||
If texlive tool chain in Debian/unstable fails to build PDF for CJK, activate NOPDF in debian/rules to work around.
|
||||
|
||||
## Note on TTF
|
||||
|
||||
In bookworm and later, `fc-list` doesn't pick up some fonts. Here are lists of actively locatable CJK fonts.
|
||||
|
||||
Some fonts has been moved to non-free (No more IPA non-P fonts)
|
||||
|
||||
ゴシック Gothic == Sans == 黒体 黑體
|
||||
明朝 Mincho == Serif == 宋体
|
||||
|
||||
## Accessible TTF fonts
|
||||
|
||||
### Japanese: fonts-vlgothic
|
||||
```
|
||||
/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf: VL PGothic,VL Pゴシック:style=regular
|
||||
/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf: VL Gothic,VL ゴシック:style=regular
|
||||
```
|
||||
|
||||
### Japanese: fonts-ipafont
|
||||
```
|
||||
/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf: IPAPGothic,IPA Pゴシック:style=Regular
|
||||
/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf: IPAPMincho,IPA P明朝:style=Regular
|
||||
```
|
||||
|
||||
### Chinese: fonts-wqy-zenhei
|
||||
```
|
||||
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
|
||||
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑:style=Regular
|
||||
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑:style=Regular
|
||||
```
|
||||
|
||||
### Chinese: fonts-arphic-uming
|
||||
```
|
||||
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing TW MBE:style=Light
|
||||
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing TW:style=Light
|
||||
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing CN:style=Light
|
||||
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing HK:style=Light
|
||||
```
|
||||
|
||||
### Korean: fonts-baekmuk
|
||||
```
|
||||
/usr/share/fonts/truetype/baekmuk/batang.ttf: Baekmuk Batang,백묵 바탕:style=Regular
|
||||
/usr/share/fonts/truetype/baekmuk/hline.ttf: Baekmuk Headline,백묵 헤드라인:style=Regular
|
||||
/usr/share/fonts/truetype/baekmuk/dotum.ttf: Baekmuk Dotum,백묵 돋움:style=Regular
|
||||
/usr/share/fonts/truetype/baekmuk/gulim.ttf: Baekmuk Gulim,백묵 굴림:style=Regular
|
||||
```
|
||||
|
||||
* batang.ttf: serif
|
||||
* dotum.ttf: sans-serif
|
||||
* gulim.ttf: sans-serif (rounded)
|
||||
* hline.ttf: headline
|
||||
|
||||
### Language non specific Noto font
|
||||
|
||||
fonts-noto-cjk (TTC packs JP, KR, SC, TC variants, fc only picks JP as below)
|
||||
|
||||
```
|
||||
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans CJK JP:style=Bold
|
||||
/usr/share/fonts/opentype/noto/NotoSansCJK-Bold.ttc: Noto Sans Mono CJK JP:style=Bold
|
||||
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans CJK JP:style=Regular
|
||||
/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: Noto Sans Mono CJK JP:style=Regular
|
||||
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK JP:style=Bold
|
||||
/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc: Noto Serif CJK JP:style=Regular
|
||||
```
|
||||
|
||||
Packge description (fontforge can read this)
|
||||
|
||||
* Noto Sans CJK JP
|
||||
* Noto Sans CJK KR
|
||||
* Noto Sans CJK SC
|
||||
* Noto Sans CJK TC
|
||||
* Noto Sans Mono CJK JP
|
||||
* Noto Sans Mono CJK KR
|
||||
* Noto Sans Mono CJK SC
|
||||
* Noto Sans Mono CJK TC
|
||||
* Noto Serif CJK JP
|
||||
* Noto Serif CJK KR
|
||||
* Noto Serif CJK SC
|
||||
* Noto Serif CJK TC
|
||||
|
||||
Sans:思源黑体, Sans Mono:思源等宽黑体, Serif:思源宋体
|
||||
|
||||
|
||||
## Note
|
||||
|
||||
### language config
|
||||
|
||||
All existing fonts are "12" means "Debian GNU/Linux 12 (bookworm) compatible" to build PDF.
|
||||
|
||||
* `xetex_param.xsl` -- active configuration all free sans
|
||||
|
||||
|
||||
## Font info (old)
|
||||
|
||||
### Sanserif (OLD list)
|
||||
|
||||
* simplified Chinese: 黑体 hēi tǐ
|
||||
* fonts-wqy-zenhei (zh_CN centric)
|
||||
* WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑
|
||||
* WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑
|
||||
* WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑
|
||||
* traditional Chinese: 黑體 hēi tǐ
|
||||
* Japanese: ゴシック kaku goshikku, gothic
|
||||
* fonts-ipafont-gothic (ja centric)
|
||||
* IPAPGothic,IPA Pゴシック
|
||||
* No more *** IPAGothic,IPAゴシック non-free ???
|
||||
* fonts-vlgothic (ja centric)
|
||||
* VL PGothic,VL Pゴシック:style=regular
|
||||
* VL Gothic,VL ゴシック:style=regular
|
||||
* Korean:
|
||||
* Baekmuk Dotum,백묵 돋움:style=Regular ... san-serif
|
||||
|
||||
### Serif (Old list)
|
||||
|
||||
* 中国大陆一般称:宋体;台湾香港一般称:明體
|
||||
* simplified Chinese: 宋体/(明体), Sòngtǐ
|
||||
* fonts-arphic-gbsn00lp (zh_CN centric)
|
||||
* AR PL SungtiL GB
|
||||
* traditional Chinese: (宋體)/明體, Sòngtǐ
|
||||
* fonts-arphic-bsmi00lp (zh_TW centric)
|
||||
* AR PL Mingti2L Big5
|
||||
* (Missing some character in output...)
|
||||
* fonts-arphic-uming (zh_TW centric)
|
||||
* AR PL UMing
|
||||
* = "AR PL Mingti2L Big5" and "AR PL SungtiL GB" + extra in Taiwan-style
|
||||
* (BUild failure happened thus not used)
|
||||
* Japanese: 明朝体, Minchōtai
|
||||
* fonts-ipafont-mincho (ja centric)
|
||||
* IPAPMincho,IPA P明朝:style=Regular
|
||||
* No more *** IPAMincho,IPA明朝: - non-free ???
|
||||
* Korean: Hangul: 명조체; Hanja: 明朝體; Revised Romanization: Myeongjoche
|
||||
* Baekmuk Batang,백묵 바탕:style=Regular ... serif
|
||||
|
||||
### Script etc.
|
||||
|
||||
* simplified Chinese: 楷书; kǎishū
|
||||
* fonts-arphic-gkai00mp (zh_CN centric)
|
||||
* AR PL KaitiM GB
|
||||
* traditional Chinese: 楷書; kǎishū
|
||||
* fonts-arphic-bkai00mp (zh_TW centric)
|
||||
* AR PL KaitiM Big5
|
||||
* fonts-arphic-ukai (zh generic)
|
||||
* AR PL UKai
|
||||
* = AR PL KaitiM Big5" + "AR PL KaitiM GB" + extra in Taiwan-style
|
||||
* Japanese: 楷書, kaisho (教科書体)
|
||||
* Korean:
|
||||
* fonts-baekmuk 1st most popular which contains 4 font families.
|
||||
* Baekmuk Batang,백묵 바탕:style=Regular ... serif
|
||||
* Baekmuk Dotum,백묵 돋움:style=Regular ... san-serif
|
||||
* Baekmuk Gulim,백묵 굴림:style=Regular ... san-serif (round)
|
||||
* Baekmuk Headline,백묵 헤드라인:style=Regular ... bold san-serif (best screen small)
|
||||
* fonts-unfonts-core 2nd popular and increasing
|
||||
made from the HLaTeX's PostScript fonts
|
||||
UnBatang, UnDotum, Ungraphic, Unpilgi, and UnGungseo
|
||||
* UnBatang ... serif
|
||||
* UnDotum ... san-serif
|
||||
* UnGungseo ... Kai/kaisho
|
||||
latex-cjk-xcjk uses UnBatang as example
|
||||
|
||||
* fonts-alee 3rd most popular many fonts by alee
|
||||
* fonts-nanum Myeongjo and Gothic Korean font families/screen font
|
||||
* fonts-nanum-coding Korean fixed width font family
|
||||
|
||||
### encoding names
|
||||
|
||||
This is largely obsoleted and replaced by UTF-8 on modern Linux systems.
|
||||
|
||||
* GB2312, GBK or GB18030: Simplified Chinese
|
||||
* Big5: Traditional Chinese
|
||||
|
||||
|
|
@ -9,11 +9,6 @@
|
|||
<xsl:param name="glossterm.auto.link">1</xsl:param>
|
||||
<xsl:param name="latex.encoding">utf8</xsl:param>
|
||||
|
||||
<!-- These parameters disable the list of collaborators and revisions.
|
||||
Together remove a useless page from the front matter. -->
|
||||
<xsl:param name='doc.collab.show'>0</xsl:param>
|
||||
<xsl:param name='latex.output.revhistory'>0</xsl:param>
|
||||
|
||||
<!--
|
||||
<xsl:param name="latex.unicode.use">1</xsl:param>
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -3,67 +3,192 @@
|
|||
<!-- vim: set sts=2 ai expandtab: -->
|
||||
|
||||
<!--############################################################################
|
||||
XSLT Stylesheet DocBook -> LaTeX using sans fonts
|
||||
XSLT Stylesheet DocBook -> LaTeX (XeTeX focused)
|
||||
############################################################################ -->
|
||||
|
||||
<xsl:param name="xetex.font">
|
||||
<!-- Workaround to disable curved quotation mark in listing env -->
|
||||
<xsl:text>\usepackage{listings} </xsl:text>
|
||||
<xsl:text>\lstset{upquote=true,basicstyle=\ttfamily} </xsl:text>
|
||||
<xsl:text>\defaultfontfeatures{} </xsl:text>
|
||||
<!-- Set Western font: XeTeX default seems Latin Modern (LM) Family of Fonts -->
|
||||
<!-- Depends: lmodern, tipa -->
|
||||
|
||||
<!-- Western centric Adobe PostScript looks-alike: gsfonts: missing some odd codes, mono is thin
|
||||
<!-- Nimbus: Original Adobe PostScript looks-alike -->
|
||||
<!-- Origin: URW++ -->
|
||||
<!-- Depends: gsfonts -->
|
||||
<!-- Note: missing some odd codes, mono is thin -->
|
||||
<!--
|
||||
<xsl:text>\setmainfont{Nimbus Roman No9 L} </xsl:text>
|
||||
<xsl:text>\setsansfont{Nimbus Sans L} </xsl:text>
|
||||
<xsl:text>\setmonofont{Nimbus Mono L} </xsl:text>
|
||||
-->
|
||||
|
||||
<!-- Western centric Bitstream Vera Fonts extended: DejaVu: too big and spaced
|
||||
<!-- DejaVu: Extended coverage Bitstream Vera Fonts -->
|
||||
<!-- Origin: GNOME, https://dejavu-fonts.github.io/ -->
|
||||
<!-- Depends: fonts-dejavu -->
|
||||
<!-- Note: mainly for computer screens, too big and spaced -->
|
||||
<!--
|
||||
<xsl:text>\setmainfont{DejaVu Serif} </xsl:text>
|
||||
<xsl:text>\setsansfont{DejaVu Sans} </xsl:text>
|
||||
<xsl:text>\setmonofont{DejaVu Sans Mono} </xsl:text>
|
||||
-->
|
||||
|
||||
<!-- Western centric MS (monotype) fonts looks-alike: Liberation : Best looking -->
|
||||
<xsl:text>\setmainfont{Liberation Sans} </xsl:text>
|
||||
<!-- Liberation: Extended coverage MS (monotype) fonts looks-alike -->
|
||||
<!-- Origin: Red Hat, https://pagure.io/liberation-fonts -->
|
||||
<!-- Depends: fonts-liberation2 -->
|
||||
<!-- License: SIL -->
|
||||
<!-- Note: Best looking -->
|
||||
<xsl:text>\setmainfont{Liberation Serif} </xsl:text>
|
||||
<xsl:text>\setsansfont{Liberation Sans} </xsl:text>
|
||||
<xsl:text>\setmonofont{Liberation Mono} </xsl:text>
|
||||
|
||||
<!-- GNU FreeFont: Extended coverage Adobe PostScript looks-alike -->
|
||||
<!-- Origin: GNU, https://www.gnu.org/software/freefont -->
|
||||
<!-- Depends: fonts-freefont-otf -->
|
||||
<!-- License: GPL3+ font_exception -->
|
||||
<!-- Note: Best looking -->
|
||||
<!--
|
||||
<xsl:text>\setmainfont{FreeSerif} </xsl:text>
|
||||
<xsl:text>\setsansfont{FreeSans} </xsl:text>
|
||||
<xsl:text>\setmonofont{FreeMono} </xsl:text>
|
||||
-->
|
||||
|
||||
<!-- Only non-latin chars seem to use \setCJK*font settings -->
|
||||
<xsl:text>\usepackage{xeCJK} </xsl:text>
|
||||
<xsl:choose>
|
||||
<!-- TODO: perhaps use fonts-noto-cjk for all -->
|
||||
<xsl:when test="$lingua = 'zh-cn'">
|
||||
<!-- zh_CN centric: fonts-wqy-zenhei -->
|
||||
<xsl:text>\usepackage{xeCJK} </xsl:text>
|
||||
<xsl:text>\setCJKmainfont{WenQuanYi Zen Hei} </xsl:text>
|
||||
<!-- zh_CN centric: main=Serif CJK Arphic+文泉-->
|
||||
<!-- Depends: fonts-arphic-gbsn00lp -->
|
||||
<!-- Depends: fonts-wqy-zenhei -->
|
||||
<!--
|
||||
<xsl:text>\setCJKmainfont{AR PL SungtiL GB} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{WenQuanYi Zen Hei} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{WenQuanYi Zen Hei Mono} </xsl:text>
|
||||
-->
|
||||
<!-- zh_CN centric: main=Sans CJK, Google Droid derivative-->
|
||||
<!-- Depends: fonts-wqy-microhei -->
|
||||
<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono} </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$lingua = 'zh-tw'">
|
||||
<!-- zh_TW centric: fonts-wqy-zenhei -->
|
||||
<xsl:text>\usepackage{xeCJK} </xsl:text>
|
||||
<xsl:text>\setCJKmainfont{WenQuanYi Zen Hei} </xsl:text>
|
||||
<!-- zh_TW centric: main=Serif CJK Arphic+文泉 -->
|
||||
<!-- Depends: fonts-arphic-bsmi00lp -->
|
||||
<!-- Depends: fonts-wqy-zenhei -->
|
||||
<!--
|
||||
<xsl:text>\setCJKmainfont{AR PL Mingti2L Big5} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{WenQuanYi Zen Hei} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{WenQuanYi Zen Hei Mono} </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$lingua = 'ja'">
|
||||
<!-- ja centric: fonts-vlgothic -->
|
||||
<xsl:text>\usepackage{xeCJK} </xsl:text>
|
||||
<xsl:text>\setCJKmainfont{VL PGothic} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{VL PGothic} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{VL Gothic} </xsl:text>
|
||||
-->
|
||||
<!-- zh_TW centric: main=Sans CJK, Google Droid derivative-->
|
||||
<!-- Depends: fonts-wqy-microhei -->
|
||||
<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono} </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$lingua = 'ko'">
|
||||
<!-- ko centric: fonts-unfonts-core -->
|
||||
<xsl:text>\usepackage{xeCJK} </xsl:text>
|
||||
<xsl:text>\setCJKmainfont{UnDotum} </xsl:text>
|
||||
<!-- ko centric: -->
|
||||
<!-- Depends: fonts-unfonts-core -->
|
||||
<xsl:text>\setCJKmainfont{UnBatang} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{UnDotum} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{UnDotum} </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- only western char -->
|
||||
<!-- This includes English etc. (English original text has my name in Japanese -->
|
||||
<!-- ja centric: Older IPA, main=serif -->
|
||||
<!-- Depends: fonts-ipafont -->
|
||||
<!--
|
||||
<xsl:text>\setCJKmainfont{IPAPMincho} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{IPAPGothic} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{IPAGothic} </xsl:text>
|
||||
-->
|
||||
<!-- ja centric: Newer IPA, main=serif -->
|
||||
<!-- Depends: fonts-ipaexfont -->
|
||||
<!--
|
||||
<xsl:text>\setCJKmainfont{IPAexMincho} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{IPAexGothic} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{IPAexGothic} </xsl:text>
|
||||
-->
|
||||
<!-- ja centric: main=sans -->
|
||||
<!-- Depends: fonts-vlgothic -->
|
||||
<xsl:text>\setCJKmainfont{VL PGothic} </xsl:text>
|
||||
<xsl:text>\setCJKsansfont{VL PGothic} </xsl:text>
|
||||
<xsl:text>\setCJKmonofont{VL Gothic} </xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:param>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
<!--
|
||||
= Asian font basics =
|
||||
|
||||
NOTE: This is slightly outdated
|
||||
|
||||
== Sanserif ==
|
||||
simplified Chinese: 黑体 hēi tǐ
|
||||
ttf-wqy-zenhei (zh_CN centric)
|
||||
WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑
|
||||
WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑
|
||||
WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑
|
||||
traditional Chinese: 黑體 hēi tǐ
|
||||
Japanese: ゴシック kaku goshikku, gothic
|
||||
otf-ipafont-gothic (ja centric)
|
||||
IPAGothic,IPAゴシック
|
||||
IPAPGothic,IPA Pゴシック
|
||||
|
||||
== Serif ==
|
||||
中国大陆一般称:宋体;台湾香港一般称:明體
|
||||
simplified Chinese: 宋体/(明体), Sòngtǐ
|
||||
ttf-arphic-gbsn00lp (zh_CN centric)
|
||||
AR PL SungtiL GB
|
||||
traditional Chinese: (宋體)/明體, Sòngtǐ
|
||||
ttf-arphic-bsmi00lp (zh_TW centric)
|
||||
AR PL Mingti2L Big5
|
||||
(Missing some character in output...)
|
||||
ttf-arphic-uming (zh_TW centric)
|
||||
AR PL UMing
|
||||
= "AR PL Mingti2L Big5" and "AR PL SungtiL GB" + extra in Taiwan-style
|
||||
(BUild failure happened thus not used)
|
||||
Japanese: 明朝体, Minchōtai
|
||||
otf-ipafont-mincho (ja centric)
|
||||
IPAMincho,IPA明朝:style=Regular
|
||||
IPAPMincho,IPA P明朝:style=Regular
|
||||
Korean: Hangul: 명조체; Hanja: 明朝體; Revised Romanization: Myeongjoche
|
||||
|
||||
== Script () ==
|
||||
simplified Chinese: 楷书; kǎishū
|
||||
ttf-arphic-gkai00mp (zh_CN centric)
|
||||
AR PL KaitiM GB
|
||||
traditional Chinese: 楷書; kǎishū
|
||||
ttf-arphic-bkai00mp (zh_TW centric)
|
||||
AR PL KaitiM Big5
|
||||
ttf-arphic-ukai (zh_TW centric)
|
||||
AR PL UKai
|
||||
= AR PL KaitiM Big5" + "AR PL KaitiM GB" + extra in Taiwan-style
|
||||
Japanese: 楷書, kaisho (教科書体)
|
||||
|
||||
Korean:
|
||||
ttf-baekmuk 1st most popular which contains 4 font families.
|
||||
latex-cjk-xcjk suggest this
|
||||
/usr/share/fonts/truetype/baekmuk/dotum.ttf
|
||||
/usr/share/fonts/truetype/baekmuk/hline.ttf
|
||||
/usr/share/fonts/truetype/baekmuk/gulim.ttf
|
||||
/usr/share/fonts/truetype/baekmuk/batang.ttf
|
||||
Baekmuk Batang,백묵 바탕:style=Regular ... serif
|
||||
Baekmuk Dotum,백묵 돋움:style=Regular ... san-serif medium (print?)
|
||||
Baekmuk Gulim,백묵 굴림:style=Regular ... san-serif thin (screen?)
|
||||
Baekmuk Headline,백묵 헤드라인:style=Regular ... bold san-serif (best screen small)
|
||||
ttf-unfonts-core 2nd popular and increasing
|
||||
made from the HLaTeX's PostScript fonts
|
||||
UnBatang, UnDotum, Ungraphic, Unpilgi, and UnGungseo
|
||||
UnBatang ... serif
|
||||
UnDotum ... san-serif
|
||||
UnGungseo ... Kai/kaisho
|
||||
latex-cjk-xcjk uses UnBatang as example
|
||||
ttf-alee 3rd most popular many fonts by alee
|
||||
ttf-nanum Myeongjo and Gothic Korean font families/screen font
|
||||
ttf-nanum-coding Korean fixed width font family
|
||||
|
||||
encoding names:
|
||||
* GB2312, GBK or GB18030: Simplified Chinese
|
||||
* Big5: Traditional Chinese
|
||||
-->
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue