Compare commits

..

391 commits

Author SHA1 Message Date
Osamu Aoki
76eaf70e3a release 2.132
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-11 13:47:26 +09:00
Osamu Aoki
a927ab1d22 Update d/copyright
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-11 13:44:50 +09:00
Osamu Aoki
b6d726b9b4 Add metainfo for debian.debian-reference-common
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-11 13:44:50 +09:00
Osamu Aoki
45c3dd9124 Revise debian-reference-common.desktop comment 2026-01-11 12:59:15 +09:00
Osamu Aoki
7abe41b53c Add metainfo supports as plug-ins
All debian-reference-<lang> packages are extension packages of
debian-reference-common.

Closes: #1110857
2026-01-11 12:59:15 +09:00
Remus-Gabriel Chelu
7ded7163a1
Translated using Weblate (Romanian)
Currently translated at 57.0% (3895 of 6833 strings)
2026-01-11 02:23:26 +01:00
Andika Triwidada
361ab8409d
Translated using Weblate (Indonesian)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-08 13:01:47 +01:00
Osamu Aoki
2535587240 release 2.131 (src+bin upload for NEW)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-06 10:41:07 +09:00
Osamu Aoki
59874f56f5 Fix typo
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-06 10:38:35 +09:00
Osamu Aoki
f6884dce80 release 2.130
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-06 08:34:27 +09:00
Osamu Aoki
78ddc1a7d1 Update translation status in Makefile
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-06 08:29:02 +09:00
Osamu Aoki
6d254ac7f5 normalize wrapping of line in PO files
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-06 08:21:35 +09:00
Daniel Nylander
44299fdea8
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-06 00:10:48 +01:00
Daniel Nylander
9dbbdccccc
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-05 20:37:33 +01:00
Daniel Nylander
82fc0e7657
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-05 13:30:49 +01:00
Daniel Nylander
e00aa6deb5
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-05 13:29:16 +01:00
Daniel Nylander
cfa895f466
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-05 13:01:21 +01:00
Daniel Nylander
dd9bb742cd
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-05 08:49:23 +01:00
Osamu Aoki
34a6c7f7ff no-sv.pdf: work around
somehow tex to PDF build breaks for sv

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-04 01:01:57 +09:00
Osamu Aoki
bcaf1b121d sv: package build support
wrap-and-sort -ast

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-04 01:00:52 +09:00
xiao sheng wen(肖盛文)
e8c852b442
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-03 11:55:10 +01:00
Daniel Nylander
6f60dfdff7
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-03 11:34:19 +01:00
xiao sheng wen(肖盛文)
f8b3706ec2
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.9% (6832 of 6833 strings)
2026-01-03 11:34:18 +01:00
Remus-Gabriel Chelu
841e5623e2
Translated using Weblate (Romanian)
Currently translated at 25.0% (1713 of 6833 strings)
2026-01-02 18:11:35 +01:00
Daniel Nylander
1ca06324fe
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-02 18:05:14 +01:00
Daniel Nylander
05acb7f931
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-02 18:01:28 +01:00
Daniel Nylander
193d817e52
Translated using Weblate (Swedish)
Currently translated at 100.0% (6833 of 6833 strings)
2026-01-02 18:00:40 +01:00
Daniel Nylander
f8494028bf
Translated using Weblate (Swedish)
Currently translated at 99.9% (6831 of 6833 strings)
2026-01-02 17:57:14 +01:00
Osamu Aoki
8767ab7e3b Add debian-reference-sv package
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-03 00:32:40 +09:00
Osamu Aoki
1124584be9 Merge remote-tracking branch 'weblate/latest' into latest
Resolved conflict

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-03 00:20:06 +09:00
Daniel Nylander
ba994cf6dc
Translated using Weblate (Swedish)
Currently translated at 100.0% (6847 of 6847 strings)
2026-01-02 15:59:21 +01:00
Osamu Aoki
626aebdd59 release 2.129
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 23:53:09 +09:00
Osamu Aoki
78560b8969 Fix duplicated ssh-agent(1)
Closes: #1100811

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 23:49:12 +09:00
Osamu Aoki
e097114eb9 Update mentioned packages in rawxml and po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 23:27:42 +09:00
Osamu Aoki
12092aa725 Fix weblate configuration
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 11:28:49 +09:00
Osamu Aoki
bae471a45c sv.po: fix trivial errors for HTML build
This fixes only trivial errors which were breaking HTML build.

Strings enclosed as in &...; should not be changed to enable
HTML build.  (trivial fixes)

Link in XML markup should not be translated.  (trivial fixes)

Also strings as in <literal>...</literal> should be kept too for
document consistency since they are references of file names or similar
on Debian system which should be the same across all system. (I didn't
fix these with this commit since these are non-trivial fixes).

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 09:43:05 +09:00
Osamu Aoki
fa54906167 Fix apt sources file extension
Closes: #1124494

All PO files updated on this change (unfuzzy)

Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 09:02:32 +09:00
Osamu Aoki
e5d94fe623 make po (normalize PO files)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2026-01-02 08:35:49 +09:00
Osamu Aoki
45fcedc92e Merge remote-tracking branch 'weblate/latest' into latest
Using following files from 'weblate/latest' branch to resolve conflicts:
	po/es.po
	po/pt-br.po
	po/sv.po
2026-01-02 08:32:16 +09:00
Osamu Aoki
de8d5a735f include ro in Makefile
normalize ro.po and de.po formatting

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-12-24 10:14:07 +09:00
Mateus Liberale Gomes
bd78629b99
Translated using Weblate (Portuguese (Brazil))
Currently translated at 79.4% (5443 of 6848 strings)
2025-12-13 22:00:19 +00:00
Remus-Gabriel Chelu
2496aa2d3f Initial romanian translation 2025-11-29 13:11:26 +01:00
Francisco Serrador
c8addb74a2
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2025-10-31 19:02:47 +00:00
Holger Wansing
d5c5dab128 Clean-up de.po 2025-10-10 22:28:30 +02:00
Holger Wansing
69c232243d Updated german translation 2025-10-10 22:22:08 +02:00
Holger Wansing
c7891b73eb Updated german translation 2025-10-05 23:40:14 +02:00
Holger Wansing
8bb4b823e1 Updated german translation 2025-10-05 08:28:03 +02:00
Daniel Nylander
a9d1bcdefe
Translated using Weblate (Swedish)
Currently translated at 100.0% (6848 of 6848 strings)
2025-09-18 18:02:02 +00:00
Osamu Aoki
608bcd15ce d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-08-28 14:13:26 +09:00
Osamu Aoki
0f3e1137ce Use NetworkManage
Closes: #1104896

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-08-28 13:11:11 +09:00
Osamu Aoki
df4453029e Update release to Trixie
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-08-28 13:04:48 +09:00
Osamu Aoki
5a1376020a ja.po: normalize formatting
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-08-28 12:52:48 +09:00
Osamu Aoki
ea89c450dd make po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-08-28 11:54:45 +09:00
Osamu Aoki
bfaaca91db Merge remote-tracking branch 'weblate/latest' into latest 2025-08-28 11:53:22 +09:00
Petri Hämäläinen
c54284fd99
Translated using Weblate (Finnish)
Currently translated at 2.4% (166 of 6848 strings)
2025-07-25 06:04:13 +00:00
Eisuke Kawashima
0de8c7a0cb
Translated using Weblate (Japanese)
Currently translated at 99.9% (6847 of 6848 strings)
2025-07-01 16:49:13 +02:00
Osamu Aoki
1b18a89dd7 Merge remote-tracking branch 'weblate/latest' into latest 2025-06-27 11:03:04 +09:00
Rodolfo Gigante
dbccfde0ec
Translated using Weblate (Portuguese)
Currently translated at 100.0% (6848 of 6848 strings)
2025-05-29 02:03:08 +02:00
Francisco Serrador
c6e7d294eb
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2025-05-12 13:01:47 +02:00
Osamu Aoki
5d6ccf4e1f Use correct syntax usermod
Closes: #1104496

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-05-01 23:59:28 +09:00
Osamu Aoki
28c2d5d26c d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-30 11:27:57 +09:00
Osamu Aoki
2c54071067 Fix maintscript regression
* Use pre-depends on debian-reference-common. Closes: #1100677

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-30 11:26:11 +09:00
Osamu Aoki
a4d0ba7354 Merge remote-tracking branch 'weblate/latest' into latest
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-30 11:20:04 +09:00
Francisco Serrador
2002d961a3
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2025-04-27 14:01:43 +00:00
Osamu Aoki
dd52809262 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-24 11:18:48 +09:00
Osamu Aoki
f3b1b0d3e3 Update PO
Fix trivial url link errors (pt, fr)

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-24 11:15:28 +09:00
Osamu Aoki
7fe504b576 Merge remote-tracking branch 'weblate/latest' into latest 2025-04-24 10:34:29 +09:00
Osamu Aoki
68800a35ea Improve PO file checker
Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-24 10:21:23 +09:00
Osamu Aoki
335a23012b Really fix undeclared file conflict while upgrading
Add maintscript to all binary packages and update versions specified for
maintscript and control:

      Closes: #1100677

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-24 10:13:01 +09:00
Francisco Serrador
7958865065
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2025-04-24 00:01:42 +02:00
Osamu Aoki
b6a1085647 Fix undeclared file conflict while upgrading
Update versions specified for maint-script and control:

  Closes: #1100677

Signed-off-by: Osamu Aoki <osamu@debian.org>
2025-04-17 21:43:48 +09:00
Rodolfo Gigante
fcb0ac612d
Translated using Weblate (Portuguese)
Currently translated at 100.0% (6848 of 6848 strings)
2025-04-03 13:05:14 +02:00
Rodolfo Gigante
1373172643
Translated using Weblate (Portuguese)
Currently translated at 100.0% (6848 of 6848 strings)
2025-04-03 01:30:16 +02:00
Rodolfo Gigante
5ddd1eb362
Translated using Weblate (Portuguese)
Currently translated at 92.2% (6316 of 6848 strings)
2025-04-02 01:29:35 +02:00
Rodolfo José dos Santos Gigante
f85e87c8c2
Translated using Weblate (Portuguese)
Currently translated at 88.5% (6063 of 6848 strings)
2025-04-01 13:05:07 +02:00
Rodolfo José dos Santos Gigante
bb18d5291c
Translated using Weblate (Portuguese)
Currently translated at 88.1% (6039 of 6848 strings)
2025-04-01 10:24:49 +02:00
Rodolfo José dos Santos Gigante
62e63f2f73
Translated using Weblate (Portuguese)
Currently translated at 82.6% (5662 of 6848 strings)
2025-03-29 16:01:52 +01:00
Rodolfo José dos Santos Gigante
e575fb0e88
Translated using Weblate (Portuguese)
Currently translated at 81.9% (5609 of 6848 strings)
2025-03-27 20:01:55 +01:00
Tanavit MINETEST
acb7fdc3b0
Translated using Weblate (French)
Currently translated at 100.0% (6848 of 6848 strings)
2025-02-27 08:47:55 +01:00
Hosted Weblate
64d3bcd689
Merge branch 'origin/latest' into Weblate. 2025-02-18 08:24:35 +01:00
Ricky Tigg
1c20ae0048
Translated using Weblate (Finnish)
Currently translated at 2.3% (161 of 6848 strings)
2025-02-13 09:01:59 +01:00
Jonathan Dowland
57c83af215 Correct description of purpose of 'sudo' group
the sudo group, at least in the stock sudoers, is _not_ used for password-less execution, but to permit executing any commands as root.
2025-02-02 16:59:22 +00:00
Tanavit MINETEST
5553919110
Translated using Weblate (French)
Currently translated at 100.0% (6848 of 6848 strings)
2024-12-19 11:00:23 +01:00
Cleverson Cândido
7513860ff3
Translated using Weblate (Portuguese)
Currently translated at 78.6% (5388 of 6848 strings)
2024-11-27 04:22:40 +01:00
Andika Triwidada
8ea5b60e3c
Translated using Weblate (Indonesian)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-26 12:18:04 +01:00
Andika Triwidada
3a8ec64c4a
Translated using Weblate (Indonesian)
Currently translated at 98.5% (6749 of 6848 strings)
2024-11-25 06:04:41 +01:00
xiao sheng wen(肖盛文)
038996dc35
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-24 01:35:00 +01:00
Osamu Aoki
d6ebb32de5 Activate reproducible build test
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:32:57 +09:00
Hosted Weblate
5ac58301c2
Merge branch 'origin/latest' into Weblate. 2024-11-23 09:18:28 +01:00
Osamu Aoki
1e4ca51506 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:17:33 +09:00
Osamu Aoki
6cd1454525 Update TTF used
Use free sans

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:17:21 +09:00
Osamu Aoki
0cc8610a3b Makefile: robust
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:17:21 +09:00
Osamu Aoki
a8a1ce1559 Add *.tex
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:17:21 +09:00
Osamu Aoki
1f84447eb8 reproducible build w/o faketime 2024-11-23 17:17:21 +09:00
Osamu Aoki
3a93686257 nopdf.tex (mod) 2024-11-23 17:17:21 +09:00
Osamu Aoki
3d7c8af14b po: remove obsolete
normalize po

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-23 17:17:21 +09:00
Andika Triwidada
8c25c88cb1 Translated using Weblate (Indonesian)
Currently translated at 97.6% (6685 of 6848 strings)
2024-11-23 17:17:21 +09:00
Andika Triwidada
a62096809b Translated using Weblate (Indonesian)
Currently translated at 97.0% (6648 of 6848 strings)
2024-11-23 17:17:21 +09:00
gallegonovato
85892e90cd Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-23 17:17:21 +09:00
eulalio
6ed85e3969 Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-23 17:17:21 +09:00
gallegonovato
c9c3bb4fd4 Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-23 17:17:21 +09:00
eulalio
45134cb75f Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-23 17:17:21 +09:00
Andika Triwidada
30f8a4124a
Translated using Weblate (Indonesian)
Currently translated at 97.6% (6685 of 6848 strings)
2024-11-19 04:00:20 +00:00
Andika Triwidada
0e3ec86476
Translated using Weblate (Indonesian)
Currently translated at 97.0% (6648 of 6848 strings)
2024-11-17 10:17:37 +01:00
gallegonovato
1c59a9e032
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-16 21:00:24 +01:00
eulalio
3a60958a91
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-16 21:00:23 +01:00
Beatrice Torracca
3bc8667d37 PO:it - Updated and fixed Italian translation 2024-11-16 12:08:58 +01:00
gallegonovato
00b800162f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-15 20:44:24 +01:00
eulalio
46a00368e9
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-11-15 20:44:24 +01:00
Hosted Weblate
0d07ae15fe
Merge branch 'origin/latest' into Weblate. 2024-11-15 03:53:19 +01:00
gallegonovato
deb3e9b829
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-15 03:53:18 +01:00
Osamu Aoki
74f4290932 po: update
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-15 11:51:43 +09:00
Osamu Aoki
55f612008d Minor updates (zh-cn inspired)
These are inspired by the zh-cn translation.

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-15 11:31:04 +09:00
Osamu Aoki
de960b8519 fr.po, it.po: unfuzzy
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-15 00:17:48 +09:00
Osamu Aoki
042192533b fr.po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-15 00:13:50 +09:00
Osamu Aoki
1b74c8bf45 po/zh-cn.po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 23:40:58 +09:00
Hosted Weblate
ff51d0d93c
Merge branch 'origin/latest' into Weblate. 2024-11-14 14:26:07 +01:00
Osamu Aoki
72a040d671 copy from weblate
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 22:25:34 +09:00
gallegonovato
6b4e52ab8f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-14 14:22:44 +01:00
Osamu Aoki
b9326c1ea8 po: unfuzzy
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 22:22:03 +09:00
Osamu Aoki
edbb56c704 make po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 22:03:44 +09:00
Osamu Aoki
c49b2cff53 ja.po: proofed by xmlpo -i
With some trivial English fixes with PO fixes

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 22:01:08 +09:00
Osamu Aoki
85fe52e69a Document xmlpo -i
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 19:50:39 +09:00
Hosted Weblate
c6b2038008
Merge branch 'origin/latest' into Weblate. 2024-11-14 08:54:16 +01:00
gallegonovato
a20f21f462
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-14 08:54:16 +01:00
Osamu Aoki
a61de8dbde pt.po: trivial fixes
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 16:53:40 +09:00
Osamu Aoki
a76fc6105a xmlpo
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-11-14 16:39:16 +09:00
eulalio
20097c35f1
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6848 strings)
2024-11-11 13:00:23 +00:00
eulalio
3a67470771
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-10 12:00:18 +01:00
eulalio
ea90362baf
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-07 17:06:13 +01:00
eulalio
0bfd6ab73e
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-05 20:00:27 +01:00
eulalio
00a160fe58
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-04 13:01:01 +00:00
eulalio
31e4abfb5f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-11-01 20:00:23 +01:00
eulalio
0d32c35eb8
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-30 18:08:17 +01:00
eulalio
b0d41e75ab
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-27 16:00:23 +01:00
eulalio
32beb8f749
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-25 21:16:25 +02:00
eulalio
56fa8be8ee
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-21 14:15:42 +02:00
eulalio
b34fe6ed2f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-19 16:04:32 +02:00
eulalio
5d753dafff
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-18 14:15:40 +02:00
Hosted Weblate
5752104e77
Merge branch 'origin/latest' into Weblate. 2024-10-17 04:38:19 +02:00
eulalio
a194141ac5
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-17 04:38:18 +02:00
eulalio
61d2efa439
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-15 16:16:23 +00:00
eulalio
c33a7bbcf7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-13 10:43:43 +02:00
Osamu Aoki
afde114004 Merge branch 'zeha-typos' into 'latest'
Fix two typos on a single line

See merge request debian/debian-reference!18
2024-10-08 08:36:02 +00:00
Osamu Aoki
334877c4e7 Skip reproducible build
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-10-08 17:28:03 +09:00
Osamu Aoki
93ca5ab342 Merge branch 'yyoshino-guest-latest-patch-28469' into 'latest'
Update ja.po

See merge request debian/debian-reference!16
2024-10-07 23:55:18 +00:00
Osamu Aoki
f9830ec14f Add d/salsa-ci.yml
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-10-08 08:51:58 +09:00
eulalio
24e5d5979c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-07 18:16:27 +02:00
eulalio
36c5717681
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-04 15:16:27 +00:00
eulalio
c053d9ab78
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-10-02 16:15:57 +00:00
eulalio
1c85928e4f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-30 18:16:24 +00:00
eulalio
7c19430f22
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-29 18:16:17 +02:00
eulalio
9b1ac9c602
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-27 16:16:16 +00:00
eulalio
6a3f44bc20
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-25 17:09:58 +02:00
eulalio
26bf8f108d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-25 10:46:58 +02:00
eulalio
1a69c8e3f4
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-22 15:40:53 +00:00
eulalio
4fcc464b4a
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-20 14:40:45 +02:00
eulalio
99413b8dae
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-18 19:43:05 +02:00
eulalio
e8a5735388
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-15 00:09:20 +02:00
eulalio
e229986a57
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-13 17:09:24 +02:00
eulalio
5332ba2126
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-12 15:09:26 +02:00
eulalio
2921540df0
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-10 17:09:16 +00:00
eulalio
8d4bd82395
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-08 12:09:11 +00:00
eulalio
ed3bb00099
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-05 19:09:16 +02:00
eulalio
d83c546fa7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-04 01:29:21 +02:00
eulalio
f8763d6b2a
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-09-02 18:31:58 +02:00
Chris Hofstaedtler
ba6f1339fe Fix two typos on a single line 2024-09-01 19:53:29 +02:00
eulalio
5e1419a7bf
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-29 14:09:22 +00:00
eulalio
0b94c78a40
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-27 19:09:18 +02:00
eulalio
853bf4054b
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-17 14:09:18 +02:00
eulalio
b07646ae31
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-13 21:09:20 +02:00
eulalio
7d58768694
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-10 21:09:10 +02:00
eulalio
9e2163ee25
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-08 20:09:21 +02:00
eulalio
966d241fb1
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-06 21:09:19 +02:00
eulalio
38ce8eee51
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-04 12:09:44 +00:00
eulalio
5cd52e4975
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-02 19:09:21 +00:00
eulalio
176c642b21
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-08-01 14:09:21 +02:00
eulalio
e72924f910
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-30 20:09:19 +02:00
gallegonovato
e5c91e5def
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-28 19:09:22 +00:00
eulalio
e7c8a4474e
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-28 19:09:21 +00:00
eulalio
4c54471e5e
Translated using Weblate (Spanish)
Currently translated at 99.9% (6845 of 6848 strings)
2024-07-27 20:42:54 +02:00
gallegonovato
5b5c014620
Translated using Weblate (Spanish)
Currently translated at 99.9% (6845 of 6848 strings)
2024-07-27 20:42:54 +02:00
eulalio
0f1ccbef55
Translated using Weblate (Spanish)
Currently translated at 99.9% (6845 of 6848 strings)
2024-07-26 20:09:18 +02:00
eulalio
df077c67e4
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-25 12:09:17 +02:00
eulalio
52d77f42a5
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-23 20:09:17 +02:00
eulalio
8119854657
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-22 11:09:18 +00:00
eulalio
ac853ef536
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-20 09:39:48 +02:00
Hosted Weblate
917265a2d5
Merge branch 'origin/latest' into Weblate. 2024-07-18 17:25:11 +02:00
xiao sheng wen(肖盛文)
9b42cdeec9 Merge branch 'raviksharma-latest-patch-98142' into 'latest'
fix typo 05_network_setup.rawxml

See merge request debian/debian-reference!17
2024-07-18 15:20:00 +00:00
Ravi Kant Sharma
8f85cf409f fix typo 05_network_setup.rawxml 2024-07-18 11:07:34 +00:00
eulalio
78dafc7375
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-17 18:09:20 +02:00
eulalio
9315ab91e5
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-15 18:07:45 +02:00
eulalio
88f1508841
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-14 13:09:21 +02:00
eulalio
b2bcb73c47
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-12 02:24:07 +02:00
eulalio
22d932c26b
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-11 13:09:21 +02:00
eulalio
dc932a7878
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-09 16:09:31 +00:00
eulalio
74ea661234
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-08 13:09:21 +02:00
eulalio
b2cc103f06
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-07 01:19:46 +02:00
eulalio
686b4e73ae
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-05 20:09:32 +00:00
Osamu Aoki
ffbd7d3608 refine example 'tm
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-07-02 14:25:24 +09:00
Osamu Aoki
9f8928afac refine example
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-07-02 14:14:05 +09:00
eulalio
6c0a57a142
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-07-01 14:09:16 +02:00
Osamu Aoki
417fa3218e d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-30 13:06:50 +09:00
Osamu Aoki
bd974fc84a normalize po format
* make wrapx

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-30 13:01:20 +09:00
Osamu Aoki
531d113547 en: typo fix
Thanks Stephanie Styffe

All *.po has been updated

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-30 12:46:47 +09:00
eulalio
145edc2171
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-30 05:38:03 +02:00
eulalio
4f4bb1348e
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-26 09:09:13 +02:00
eulalio
883eed338a
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-24 10:04:51 +02:00
eulalio
48abe3ac1d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-23 13:09:18 +02:00
gallegonovato
565bbf7e32
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-21 14:09:16 +02:00
eulalio
ac1aea07b3
Translated using Weblate (Spanish)
Currently translated at 99.8% (6841 of 6848 strings)
2024-06-19 18:09:16 +02:00
Hosted Weblate
d763e98bb9
Merge branch 'origin/latest' into Weblate. 2024-06-18 12:03:38 +02:00
eulalio
515cdf2327
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-18 12:03:04 +02:00
xiao sheng wen
882c425586
add Comment[zh_TW] and Comment[zh_CN] in debian-reference-common.desktop
Signed-off-by: xiao sheng wen <atzlinux@sina.com>
2024-06-18 18:02:25 +08:00
eulalio
2abf776b15
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-16 18:57:03 +02:00
eulalio
4e9da67e39
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-15 17:09:12 +02:00
xiao sheng wen(肖盛文)
829cee530b
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-14 03:34:39 +02:00
eulalio
f29292e2cf
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-12 16:09:20 +00:00
eulalio
53d4093d6d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-11 17:09:12 +02:00
Osamu Aoki
ed1060ccfd po: all updated
normalized PO format
update for dropped URL link

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-10 18:39:43 +09:00
Osamu Aoki
d1afd79372 ch09: drop dead URL link
.vimrc are reordered and fine tuned

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-10 18:30:53 +09:00
Osamu Aoki
3d7c9a74f2 ch09: update vimrc examples
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-10 18:30:30 +09:00
eulalio
bee9ebe60c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-10 10:46:39 +02:00
eulalio
94420419c7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-09 12:09:24 +00:00
gallegonovato
a9465c0af2
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-07 20:11:44 +02:00
eulalio
9754918af9
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-06 19:24:35 +02:00
eulalio
438596f2c3
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-05 16:09:17 +00:00
eulalio
4c211c3e4d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-04 08:06:23 +02:00
Osamu Aoki
6d495d5a37 touch up .vimrc
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-06-04 07:18:33 +09:00
eulalio
112e5c7103
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-03 16:09:25 +00:00
eulalio
b429c1c0c6
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-06-01 06:40:55 +02:00
eulalio
3521004d3d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-31 05:10:18 +02:00
xiao sheng wen(肖盛文)
c2bb0e3a75
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-29 01:16:04 +02:00
eulalio
ae357c2c97
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-29 01:12:23 +02:00
Osamu Aoki
fe9b7095ee d/changelog
with trivial updates

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-05-28 16:37:05 +09:00
eulalio
6318044968
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-27 16:09:16 +00:00
eulalio
5ed5c0d927
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-26 12:39:55 +02:00
eulalio
31c582880f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-24 16:09:15 +02:00
eulalio
cb55c41e35
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-21 20:02:14 +02:00
eulalio
b4225af32c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-17 19:01:57 +02:00
eulalio
d85e19a2b6
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-16 11:01:57 +00:00
eulalio
547f27ad8c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-14 18:01:55 +02:00
eulalio
34c2ac844f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-12 18:01:07 +02:00
eulalio
028307328c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-10 18:55:18 +02:00
eulalio
456c474d87
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-08 19:07:16 +02:00
eulalio
d031a27d49
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-06 18:07:19 +02:00
eulalio
f65f6b8ec8
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-05 14:07:19 +02:00
eulalio
0057819210
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)
2024-05-03 14:07:19 +02:00
houzhou-wu
cc5619ae49
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6848 of 6848 strings)

Co-authored-by: houzhou-wu <houzhou_wu@foxmail.com>
2024-05-01 17:07:30 +02:00
eulalio
90a8b10247
Translated using Weblate (Spanish)
Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (6848 of 6848 strings)

Co-authored-by: eulalio <eulalio@disroot.org>
2024-05-01 17:07:29 +02:00
Andika Triwidada
1843d9a03e
Translated using Weblate (Indonesian)
Currently translated at 96.8% (6630 of 6848 strings)

Co-authored-by: Andika Triwidada <andika@gmail.com>
2024-05-01 17:07:27 +02:00
Osamu Aoki
e9ac2a4e52 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-11 09:09:53 +09:00
Osamu Aoki
93fcbd1e0d po: clean and normalize
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-11 09:09:53 +09:00
Osamu Aoki
f9cc6bc806 po: normalize
Fix trivial error in IT

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-11 08:02:37 +09:00
Osamu Aoki
74775066a2 Merge remote-tracking branch 'weblate/latest' into latest 2024-04-11 07:55:14 +09:00
Andika Triwidada
9b0bb75a8a
Translated using Weblate (Indonesian)
Currently translated at 96.7% (6629 of 6849 strings)
2024-04-11 00:54:21 +02:00
Osamu Aoki
e2ff9bc2a1 Simplify .vimrc
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-11 07:52:40 +09:00
eulalio
a1118315c9
Translated using Weblate (Spanish)
Currently translated at 100.0% (6849 of 6849 strings)
2024-04-09 20:02:00 +02:00
Osamu Aoki
0f713ed444 shfmt -s -w / black
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-10 00:34:48 +09:00
eulalio
a68b319e38
Translated using Weblate (Spanish)
Currently translated at 100.0% (6849 of 6849 strings)
2024-04-07 18:02:03 +02:00
eulalio
3d2e686aad
Translated using Weblate (Spanish)
Currently translated at 100.0% (6849 of 6849 strings)
2024-04-05 18:02:01 +02:00
Osamu Aoki
5b8e5a4da9 use /dev/loop0 for all examples
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-03 11:28:11 +09:00
Osamu Aoki
287766e69e Merge remote-tracking branch 'weblate/latest' into latest 2024-04-03 09:26:42 +09:00
eulalio
0520ca7676
Translated using Weblate (Spanish)
Currently translated at 100.0% (6849 of 6849 strings)
2024-04-03 02:25:57 +02:00
Osamu Aoki
edc467edee update disk.img handling examples
now with GPT (official Debian image)

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-03 09:23:49 +09:00
eulalio
5d2228af10
Translated using Weblate (Spanish)
Currently translated at 100.0% (6849 of 6849 strings)
2024-04-01 16:34:52 +02:00
Osamu Aoki
9bbd8002f7 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-01 18:35:33 +09:00
Osamu Aoki
44539b39ab de: update po (losetup)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-01 15:04:37 +09:00
Osamu Aoki
094aa0fabe po: normalize PO
make po; make wrapx

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-01 14:55:34 +09:00
Osamu Aoki
f3bf1a45f4 po: update all languages on losetup
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-01 14:54:39 +09:00
Osamu Aoki
03e0e40616 EN: Update losetup usage
Update loop device for post-3.2 kernel (released Y2012).
Linux 3.x series LTS was already over in 2020.

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-04-01 14:49:01 +09:00
eulalio
8699e821b7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-31 13:18:08 +02:00
eulalio
05c5fe3e28
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-29 18:01:59 +01:00
Allan Nordhøy
ce27e39b59
Translated using Weblate (Norwegian Bokmål)
Currently translated at 6.9% (474 of 6850 strings)
2024-03-28 07:27:35 +01:00
eulalio
6acfc087d6
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-28 07:27:33 +01:00
Osamu Aoki
157c478bfc d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-25 23:04:13 +09:00
Osamu Aoki
4b665ea43c Merge remote-tracking branch 'weblate/latest' into latest 2024-03-25 22:45:01 +09:00
eulalio
5c01643e84
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-24 19:01:59 +01:00
Beatrice Torracca
5185c9c428 [it-IT] Updated Italian translation 2024-03-24 15:12:36 +01:00
Osamu Aoki
9f81ae4465 Update pot
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-23 10:54:07 +09:00
Osamu Aoki
53f4c37c67 Parallel execution
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-23 10:54:07 +09:00
Osamu Aoki
cd4fa5ea11 Fix fr.add
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-23 10:54:07 +09:00
eulalio
18e9908916
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-23 02:53:12 +01:00
Guillonneau Jean-Paul
314cdf3ed0
Translated using Weblate (French)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-21 17:01:56 +01:00
eulalio
c20ad43118
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-21 17:01:54 +01:00
Osamu Aoki
c388252d4f d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-20 15:27:26 +09:00
Osamu Aoki
abb3d8642a pt-br: trivial fix
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-20 15:20:06 +09:00
Osamu Aoki
482dd255ff pt: trivial fix
normalize PO for es and fr
verify 100% for fr

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-20 15:09:06 +09:00
Osamu Aoki
65d771e277 fuzzy: raw and effective PO status
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-20 14:56:17 +09:00
eulalio
0fa57d90bc
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-20 04:11:27 +01:00
Guillonneau Jean-Paul
4b5494a7d0
Translated using Weblate (French)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-19 15:05:58 +01:00
eulalio
84a2c11b7c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-19 15:05:56 +01:00
Guillonneau Jean-Paul
5a091571d3
Translated using Weblate (French)
Currently translated at 98.9% (6775 of 6850 strings)
2024-03-18 14:42:40 +01:00
Osamu Aoki
d406f52881 fr: Fix build
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-18 15:31:13 +09:00
Guillonneau Jean-Paul
8e4e322c4f
Translated using Weblate (French)
Currently translated at 98.3% (6735 of 6850 strings)
2024-03-18 06:49:52 +01:00
Guillonneau Jean-Paul
6be59ba5af
Translated using Weblate (French)
Currently translated at 97.9% (6709 of 6850 strings)
2024-03-17 05:51:38 +01:00
eulalio
77eaaa8268
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-17 05:51:34 +01:00
Osamu Aoki
4653d66c44 zh-tw.po: remove URL with % (normalize po wrap)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-16 15:09:54 +09:00
Guillonneau Jean-Paul
4238ed487e
Translated using Weblate (French)
Currently translated at 97.6% (6686 of 6850 strings)
2024-03-16 01:55:38 +01:00
eulalio
bc0ceb6e3e
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-16 01:55:36 +01:00
Osamu Aoki
131cc301bb iCh12: Fix console session
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-15 15:32:24 +09:00
Andika Triwidada
1b1f53437e
Translated using Weblate (Indonesian)
Currently translated at 96.3% (6600 of 6850 strings)
2024-03-15 07:30:41 +01:00
SCC/楊志璿
f3932f0f59
Translated using Weblate (Chinese (Traditional))
Currently translated at 74.9% (5133 of 6850 strings)
2024-03-15 07:30:39 +01:00
Guillonneau Jean-Paul
463d025069
Translated using Weblate (French)
Currently translated at 97.3% (6666 of 6850 strings)
2024-03-15 07:30:37 +01:00
eulalio
96deed1153
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-15 07:30:35 +01:00
Osamu Aoki
0bd672722c d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-14 16:09:15 +09:00
Osamu Aoki
b260db7cfc Ch09: fzf script updated
No more need for completion

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-14 16:09:15 +09:00
Osamu Aoki
a4979149f0 make po, 100% ja, es, zh-cn
Normalize wrap

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-14 14:47:37 +09:00
xiao sheng wen(肖盛文)
774dcfe4c2
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-14 04:52:08 +01:00
gallegonovato
d330c43ef8
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-14 03:54:51 +01:00
eulalio
fcc85ce4f5
Translated using Weblate (Spanish)
Currently translated at 100.0% (6850 of 6850 strings)
2024-03-14 03:54:51 +01:00
Osamu Aoki
489495e5ab es: trivial fix
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-13 11:41:49 +09:00
eulalio
468febb832
Translated using Weblate (Spanish)
Currently translated at 99.9% (6849 of 6850 strings)
2024-03-13 03:37:03 +01:00
gallegonovato
635ca19992
Translated using Weblate (Spanish)
Currently translated at 99.9% (6849 of 6850 strings)
2024-03-12 01:19:59 +01:00
eulalio
f08483ee84
Translated using Weblate (Spanish)
Currently translated at 99.9% (6849 of 6850 strings)
2024-03-12 01:19:59 +01:00
eulalio
4153be4c3e
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-11 01:28:30 +01:00
eulalio
c0fa5b57db
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-10 12:20:50 +01:00
YOSHINO Yoshihito
12b00e3325 Update ja.po 2024-03-10 07:30:36 +00:00
eulalio
dcfdd38b8a
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-08 18:01:55 +01:00
eulalio
9d17b3b4b8
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-07 15:01:43 +01:00
eulalio
cf82e31a4d
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-05 15:01:43 +01:00
gallegonovato
be0be02350
Translated using Weblate (Spanish)
Currently translated at 99.9% (6847 of 6850 strings)
2024-03-05 15:01:42 +01:00
Osamu Aoki
5e582090fa Ch09: clipboard
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-04 13:45:58 +09:00
eulalio
b28bd68878
Translated using Weblate (Spanish)
Currently translated at 99.6% (6827 of 6850 strings)
2024-03-04 05:39:59 +01:00
Osamu Aoki
dce63f14a6 es: trivial fix
Names in the configuration file shouldn't be translated.

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 21:55:35 +09:00
Osamu Aoki
a27436f601 make po + ja=100%
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 21:09:44 +09:00
Osamu Aoki
8a4a3e0646 make entity EXPOSEMODE=yes
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 21:04:38 +09:00
Osamu Aoki
7b0af3f4f5 Ch09: placeholders
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 20:48:22 +09:00
Osamu Aoki
1daa2a3e4e Ch09: Incus
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 20:48:22 +09:00
Osamu Aoki
cf0f0133dd Ch09: rephrase and reorder
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 20:48:22 +09:00
Osamu Aoki
ba0c3bd0ba Ch07: user dirs
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 20:48:22 +09:00
Osamu Aoki
04173ee8ae Ch01: adduser/delusr/usermod/useradd/userdel
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-03-03 20:48:22 +09:00
eulalio
8460fed16d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6831 of 6831 strings)
2024-03-03 12:45:19 +01:00
eulalio
fc0f246499
Translated using Weblate (Spanish)
Currently translated at 100.0% (6831 of 6831 strings)
2024-03-02 18:01:42 +01:00
eulalio
1f0398ace5
Translated using Weblate (Spanish)
Currently translated at 100.0% (6831 of 6831 strings)
2024-03-01 17:00:10 +01:00
Osamu Aoki
7d1ed126b8 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-29 11:56:36 +09:00
Osamu Aoki
fd2e992a72 Better regex for TailingWhitespaces
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-29 11:56:36 +09:00
gallegonovato
abfb22776f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6831 of 6831 strings)
2024-02-28 16:01:12 +01:00
Osamu Aoki
e8527028c0 es: trivial unfuzzy
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-28 09:16:23 +09:00
eulalio
a38691049e
Translated using Weblate (Spanish)
Currently translated at 99.9% (6829 of 6831 strings)
2024-02-28 01:13:58 +01:00
Osamu Aoki
4d695d54e7 Fixed regression (tested)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 21:49:20 +09:00
Osamu Aoki
293842cb15 Fix regression <...>
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 21:11:03 +09:00
Osamu Aoki
cee7e8115f wrap-and-sort and remove extra spaces
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 20:19:31 +09:00
Osamu Aoki
f85a1fc32d nohlsearch with <ESC> like Lazyvim
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 20:07:09 +09:00
xiao sheng wen(肖盛文)
f43210ee44
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6831 of 6831 strings)
2024-02-27 08:24:19 +01:00
Osamu Aoki
a4174addac Trivial po fixes
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 15:07:37 +09:00
Osamu Aoki
c411e9265d disable buggy merge driver
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 15:05:00 +09:00
Osamu Aoki
62c4f7da88 make po
With trivial fixes

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 14:49:19 +09:00
Osamu Aoki
c59447f4f2 Ch09: Reorg vimrc
* Only 1 translation string addition.
* Now internal feature adjustments are complete
* Add comments for rationale

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 14:45:05 +09:00
Osamu Aoki
129a13e221 Ch11: Explanation w/o GUI
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-27 10:14:08 +09:00
eulalio
d9cfa64cc7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6830 of 6830 strings)
2024-02-27 02:11:48 +01:00
xiao sheng wen(肖盛文)
2d71230053
Merge branch 'weblate-latest' into latest 2024-02-26 17:08:20 +08:00
xiao sheng wen(肖盛文)
9ac26f9c47
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6830 of 6830 strings)
2024-02-26 10:07:45 +01:00
xiao sheng wen(肖盛文)
db7944e267
Ch11: fix typo, ps --> pdf
Signed-off-by: xiao sheng wen(肖盛文) <xsw@atzlinux.com>
2024-02-26 16:29:32 +08:00
gallegonovato
56b3dab27f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6830 of 6830 strings)
2024-02-26 03:33:41 +01:00
eulalio
902102cc07
Translated using Weblate (Spanish)
Currently translated at 100.0% (6830 of 6830 strings)
2024-02-26 03:33:41 +01:00
Osamu Aoki
b7970ee174 Ch09: Fix regression
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-26 07:11:03 +09:00
Osamu Aoki
1ae6628143 Ch09: remove duplicates
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-26 07:08:37 +09:00
Osamu Aoki
94cb1b027f d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 18:18:30 +09:00
Osamu Aoki
2145f06bce ja: 100% translated
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 17:58:49 +09:00
Osamu Aoki
f442cc5bc4 make po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 17:04:02 +09:00
Osamu Aoki
83c67f3376 Merge remote-tracking branch 'weblate/latest' into latest 2024-02-25 17:03:01 +09:00
Osamu Aoki
e0c6a5917c Cherry pick from weblate
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 17:02:23 +09:00
eulalio
c058189c9e
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-25 08:58:47 +01:00
Osamu Aoki
f16471137e make po
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:58:19 +09:00
Osamu Aoki
577aa7cb24 make entity EXPOSEMODE=yes
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:54:09 +09:00
Osamu Aoki
ee8a35809a Ch11: update listed packages
Add key metapackages to avoid deep chasing small packages
Drop POPCON=0 if they have no reference

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:46:58 +09:00
Osamu Aoki
29c099f2dd Ch11: PDF with GIMP
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:46:25 +09:00
Osamu Aoki
5c8deac83b Ch05: Add nftable (common text)
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:46:17 +09:00
Osamu Aoki
77d5d38491 README.md for English
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:30:41 +09:00
Osamu Aoki
59848ee389 Ch09: Move mapping to internal
* Correct XML tag escape

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 16:23:31 +09:00
Osamu Aoki
76c7e088c5 Add popular maps
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-25 14:57:33 +09:00
eulalio
41be2a16da
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-23 20:02:08 +01:00
Naga
0746bb539a
Translated using Weblate (French)
Currently translated at 97.8% (6663 of 6811 strings)
2024-02-21 18:02:04 +01:00
eulalio
247865764c
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-21 18:02:02 +01:00
eulalio
c5b0b9d073
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-20 14:02:02 +01:00
eulalio
e85a9bb80d
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-17 20:02:02 +01:00
eulalio
f20f7c6bf8
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-15 18:02:00 +01:00
eulalio
d052657567
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-13 19:02:06 +01:00
Osamu Aoki
1930672f48 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-12 11:36:34 +09:00
Osamu Aoki
4e6768c415 Fix dpkg unable to delete old directory
* Closes: Bug#1058960i
 * Add pt-br to metapackage
 * Update version requirement

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-12 11:35:01 +09:00
eulalio
6e632058d7
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-11 20:01:58 +01:00
Osamu Aoki
7322b35729 d/changelog
Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-10 22:39:34 +09:00
Osamu Aoki
0d0c4f887d Fix document path bug #1063590
Fix Bug#1063590

Signed-off-by: Osamu Aoki <osamu@debian.org>
2024-02-10 22:37:31 +09:00
eulalio
f4ad2876f8
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-10 14:01:59 +01:00
eulalio
42e3479702
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-08 17:01:51 +01:00
gallegonovato
e288979763
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-07 09:15:11 +01:00
eulalio
611cd03a06
Translated using Weblate (Spanish)
Currently translated at 99.9% (6808 of 6811 strings)
2024-02-06 21:01:54 +01:00
eulalio
663dfdd35f
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-05 18:01:47 +01:00
gallegonovato
d4047de532
Translated using Weblate (Spanish)
Currently translated at 100.0% (6811 of 6811 strings)
2024-02-05 18:01:47 +01:00
eulalio
295053c8dc
Translated using Weblate (Spanish)
Currently translated at 99.9% (6808 of 6811 strings)
2024-02-03 20:01:53 +01:00
78 changed files with 100664 additions and 51732 deletions

4
.gitattributes vendored
View file

@ -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
View file

@ -26,5 +26,6 @@ packages.stable.txt
packages.txt
pkg.lst
templates.pot
org.debian.debian-reference-*.metainfo.xml
tmp

View file

@ -1,3 +1,3 @@
[weblate]
url = https://hosted.weblate.org/api/
translation = debian-reference/
translation = debian-reference

166
Makefile
View file

@ -7,12 +7,34 @@
#======================================================================
# base file name excluding file extension
MANUAL := debian-reference
# 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
#
# 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 to skip generation of PDF files (not used now)
NOPDF :=
@ -22,29 +44,39 @@ LANGALL = en $(LANGPO)
# Change these to post-release state when Debian is under soft freeze
#
# current "stable" release name
RELEASE_NAME0L := bookworm
RELEASE_NAME0U := Bookworm
RELEASE_NAME0L := trixie
RELEASE_NAME0U := Trixie
# next "stable" / "testing" release name
RELEASE_NAME1L := trixie
RELEASE_NAME1U := Trixie
RELEASE_NAME1L := forky
RELEASE_NAME1U := Forky
# next next "stable" / next "testing" release name
RELEASE_NAME2L := forky
RELEASE_NAME2U := Forky
RELEASE_NAME2L := duke
RELEASE_NAME2U := Duke
# 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 := Bookworm (=<literal>stable</literal>)
RELEASE_DOC_2 := Trixie (=<literal>testing</literal>)
RELEASE_DOC_1 := Trixie (=<literal>stable</literal>)
RELEASE_DOC_2 := Forky (=<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
@ -52,7 +84,8 @@ BUILD_DIR := $(CURDIR)/build
DRAFTMODE := maybe
export DRAFTMODE
# define EXPOSEMODE to yes to expose program listings to make entity
# define EXPOSEMODE to yes to expose not-so-popular program listings in table list
# (This is used to hide marginal table list entry.)
EXPOSEMODE ?= no
ifeq "$(EXPOSEMODE)" "yes"
XML_COMMENT_START=
@ -96,15 +129,16 @@ PERL_HASH_SEED := 0
export PERL_HASH_SEE
# Program name and option
# stop using faketime
XLINT := xmllint --format
XPNO := xsltproc --novalid --nonet
XPINC := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) xsltproc --novalid --nonet --xinclude
XPINC := xsltproc --novalid --nonet --xinclude
MSGATTR := msgattrib
MSGCAT := msgcat
MSGUNIQ := msguniq --use-first
DBLATEX := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) /usr/bin/dblatex
DBLATEX := /usr/bin/dblatex
SED := sed
ZIP := /usr/bin/faketime @$(SOURCE_DATE_EPOCH) zip
ZIP := zip
# Source files
SRC_XML := $(wildcard $(DRAW)/*_*.rawxml)
@ -117,7 +151,9 @@ SEDF ?= $(DBIN)/replace0
# po4a/opencc translation
PO4A1 ?= $(DBIN)/po4a1
PO4A2 ?= $(DBIN)/po4a2
POFUZZY ?= $(DBIN)/pofuzzy
PO4ATMP ?= $(DBIN)/po4atmp
POFUZZY1 ?= $(DBIN)/pofuzzy1
POFUZZY2 ?= $(DBIN)/pofuzzy2
# Remote file source (related to Debian package archive URLs)
#DEBM := http://ftp.us.debian.org/debian/dists
@ -167,14 +203,20 @@ endef
.PHONY: all
# set LANGPO to limit language to speed up build
all: css html txt pdf
-cat fuzzy.log
@echo "PO status: fuzzy1 ======================"
-cat fuzzy1.log
@echo "PO status: fuzzy2 ======================"
-cat fuzzy2.log
#######################################################################
# $ make test # build html for all languages (for Translator)
#######################################################################
.PHONY: test
test: html css
-cat fuzzy.log
@echo "PO status: fuzzy1 ======================"
-cat fuzzy1.log
@echo "PO status: fuzzy2 ======================"
-cat fuzzy2.log
#######################################################################
# $ make entity # refresh remote.ent (Need remote access)
@ -465,22 +507,28 @@ $(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 fuzzy.log listng translation status
# Completion marker is fuzzy1.log and fuzzy2.log for translation status
POFILES = $(addsuffix .po, $(addprefix po/, $(LANGPO)))
fuzzy.log: $(POFILES) $(MANUAL).en.xml $(MANUAL).en.xmlt
fuzzy1.log: $(POFILES) $(MANUAL).en.xml $(MANUAL).en.xmlt
@$(call check-command, po4a)
@$(call check-command, msgcat, gettext)
$(PO4A1) $(LANGPO)
$(POFUZZY) $(LANGPO) >fuzzy.log
$(POFUZZY1) $(LANGPO) >fuzzy1.log
.PHONY: xml
xml: fuzzy.log
fuzzy2.log: fuzzy1.log
$(PO4ATMP) $(LANGPO)
$(POFUZZY2) $(LANGPO) >fuzzy2.log
cp -r po-tmp po-keep
$(PO4A2) $(LANGPO)
.PHONY: po
po: fuzzy.log
po: fuzzy1.log
.PHONY: xml
xml: fuzzy2.log
$(addsuffix .xml, $(addprefix $(MANUAL)., $(LANGPO))): xml
@ -536,6 +584,7 @@ $(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
@ -562,7 +611,54 @@ $(BUILD_DIR)/$(MANUAL).%.pdf: $(MANUAL).%.xml $(SRC_ENT)
--xsl-user=$(DXSL)/xetex_param.xsl \
--param=draft.mode=$(DRAFTMODE) \
--param=lingua=$* \
--output=$@ - || { echo "OMG!!!!!! XXX_CHECK_XXX ... Do not worry ..."; true ; }
--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
#######################################################################
# $ make tex # update all TeX source in $(BUILD_DIR)
@ -584,7 +680,13 @@ $(BUILD_DIR)/$(MANUAL).%.tex: $(MANUAL).%.xml $(SRC_ENT)
--xsl-user=$(DXSL)/xetex_param.xsl \
--param=draft.mode=$(DRAFTMODE) \
--param=lingua=$* \
--output=$@ - || { echo "OMG!!!!!! XXX_CHECK_XXX ... Do not worry ..."; true ; }
--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 }
#######################################################################
# $ make epub # update all epub in $(BUILD_DIR)
@ -620,7 +722,7 @@ distclean: clean
localclean:
# CLEAN
-rm -rf $(BUILD_DIR)
-rm -rf po-tmp
-rm -rf po-tmp po-keep
-rm -rf debian/tmp
-rm -f *.swp *~ *.tmp
-rm -f $(DPO)/*~ $(DPO)/*.mo $(DPO)/*.po.*
@ -637,7 +739,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
@ -734,6 +836,10 @@ 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)

View file

@ -164,6 +164,8 @@ 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
@ -172,6 +174,10 @@ 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.
@ -207,19 +213,43 @@ 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.
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
```
### Set up a local git repo with remotes `salsa` and `weblate`
@ -594,7 +624,7 @@ Then you see different error message.
$ make test LANGPO=de
...
mkdir -p /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/ \
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

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python3
# vim: set sts=4 expandtab:
# vim: set sw=4 sts=4 expandtab:
"""
colspec.py - set colspec in XML to correct values
@ -7,98 +7,101 @@ colspec.py - set colspec in XML to correct values
Copyright (C) 2009 Osamu Aoki, GPL
"""
import sys, os, re
import sys
import 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)

View file

@ -3,7 +3,7 @@
set -e # stop at first error
#set -x # debug
DR_DOC_ROOT="/usr/share/doc/debian-reference"
DR_DOC_ROOT="/usr/share/doc/debian-reference-common"
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

View file

@ -1,17 +1,17 @@
#! /bin/sh -e
# vim: set sts=4 expandtab:
# vim: set sw=2 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

View file

@ -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,23 +9,22 @@
#
LANGAGE=$1
MODE=$2
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
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
done

View file

@ -50,103 +50,90 @@ 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
@ -154,9 +141,8 @@ 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)
@ -165,7 +151,6 @@ 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}" &
@ -174,18 +159,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
@ -215,21 +200,18 @@ 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."

View file

@ -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}
DR_DOC_ROOT=${DR_DOC_ROOT:-/usr/share/doc/debian-reference-common}
README="/usr/share/doc/debian-reference-common/README"
# Echo Language name
@ -17,6 +17,8 @@ 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>";;

View file

@ -1,14 +1,14 @@
#! /bin/sh -e
# vim: set sw=4 sts=4 expandtab:
# vim: set sw=2 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

View file

@ -1,6 +1,5 @@
#! /bin/sh -e
# vim: set sts=4 expandtab:
# vim: set sw=2 expandtab:
# remove obsolete
mv "$1" "$1.orig"
msgattrib --no-obsolete -o "$1" "$1.orig"
msgattrib --no-obsolete -o "$1" "$1.orig"

View file

@ -7,13 +7,8 @@
#
# 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
@ -22,9 +17,6 @@ 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

View file

@ -7,55 +7,14 @@
#
# 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 Executable file
View file

@ -0,0 +1,72 @@
#!/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"

View file

@ -1,18 +0,0 @@
#! /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 Executable file
View file

@ -0,0 +1,17 @@
#! /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 Executable file
View file

@ -0,0 +1,17 @@
#! /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

View file

@ -6,40 +6,38 @@
# 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 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
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
done
#
#
# vim: set sts=2 ai expandtab:
# vim: set sw=2 ai expandtab:

View file

@ -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

View file

@ -14,32 +14,32 @@ packages=$1
bkups=$2
stablepackages=$3
oldstablepackages=$4
while read X ; do
while read -r X; do
#echo "process: $X" >&2
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
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 "<!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 sts=2 ai expandtab:
# vim: set sw=2 ai expandtab:

View file

@ -1,5 +1,5 @@
#! /bin/sh -e
# vim: set sw=4 sts=4 expandtab:
# vim: set sw=2 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"

View file

@ -1,5 +1,5 @@
#! /bin/sh -e
# vim: set sw=4 sts=4 expandtab:
# vim: set sw=2 expandtab:
# simple script to merge weblate po files
git checkout weblate-latest

224
bin/xmlpo Executable file
View file

@ -0,0 +1,224 @@
#!/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:

View file

@ -1,3 +1,4 @@
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 Normal file
View file

@ -0,0 +1,11 @@
<?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
View file

@ -1,3 +1,361 @@
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
View file

@ -2,31 +2,33 @@ 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,
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
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,
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
@ -34,22 +36,28 @@ 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-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-pt-br,
debian-reference-sv,
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
@ -59,16 +67,21 @@ 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-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-pt-br,
debian-reference-sv,
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
@ -78,8 +91,12 @@ Description: metapackage to install (all) translations of Debian Reference
Package: debian-reference-en
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -89,8 +106,10 @@ Description: Debian system administration guide, English original
Package: debian-reference-de
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${misc:Depends},
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
@ -100,8 +119,13 @@ Description: Debian system administration guide, German translation
Package: debian-reference-fr
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -111,8 +135,13 @@ Description: Debian system administration guide, French translation
Package: debian-reference-id
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -122,8 +151,13 @@ Description: Debian system administration guide, Indonesian translation
Package: debian-reference-it
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -133,8 +167,13 @@ Description: Debian system administration guide, Italian translation
Package: debian-reference-ja
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -144,8 +183,13 @@ Description: Debian system administration guide, Japanese translation
Package: debian-reference-pt
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -155,8 +199,13 @@ Description: Debian system administration guide, Portuguese translation
Package: debian-reference-pt-br
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -166,8 +215,13 @@ Description: Debian system administration guide, Portuguese (Brazil) translation
Package: debian-reference-zh-cn
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -177,8 +231,13 @@ Description: Debian system administration guide, Chinese (Simplified) translatio
Package: debian-reference-zh-tw
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
@ -188,11 +247,32 @@ Description: Debian system administration guide, Chinese (Traditional) translati
Package: debian-reference-es
Architecture: all
Depends: debian-reference-common (>= 2.51), ${misc:Depends}
Suggests: debian-reference-en, doc-base
Pre-Depends:
debian-reference-common (>= 2.127),
Depends:
${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
View file

@ -4,7 +4,7 @@ Upstream-Contact: Osamu Aoki <osamu@debian.org>
Source: https://salsa.debian.org/debian/debian-reference.git
Files: *
Copyright: 2007-2013 Osamu Aoki <osamu@debian.org>
Copyright: 2007-2026 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,3 +30,9 @@ 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]

View file

@ -3,5 +3,6 @@ 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/debian-reference-common.desktop usr/share/applications
debian/org.debian.debian-reference-common.desktop usr/share/applications
debian/org.debian.debian-reference-common.metainfo.xml usr/share/metainfo
debian/debian-reference.png usr/share/pixmaps

View file

@ -0,0 +1 @@
symlink_to_dir /usr/share/doc/debian-reference-common/docs ../../debian-reference 2.127~ debian-reference-common

View file

@ -1,2 +1,2 @@
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
usr/share/doc/debian-reference-common/docs usr/share/doc/debian-reference/docs

View file

@ -2,7 +2,7 @@
Type=Application
Version=1.0
Name=Debian Reference
Comment=Debian Reference Guide
Comment=Browser launcher for the local Debian Reference data
Name[en_CA]=Debian Reference
Name[en_GB]=Debian Reference
Name[fr_FR]=Guide de référence pour Debian

View file

@ -0,0 +1,37 @@
<?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
View file

@ -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
LANGPO := ja fr id it pt de zh-cn zh-tw es pt-br
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
# languages to skip generation of PDF files (not used now)
#NOPDF := zh-cn zh-tw
NOPDF :=
NOPDF := sv
## ----------------------------------------------------------------------
## Targets
@ -48,6 +48,8 @@ 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" ;; \
@ -55,6 +57,7 @@ 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 Normal file
View file

@ -0,0 +1,3 @@
---
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml

View file

@ -1,2 +1,4 @@
Tests: check-script
Depends: @
Tests:
check-script,
Depends:
@,

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -1,6 +1,6 @@
% -----------------------------------------
% -----------------------------------------
% LaTeX file: PDF not available PDF
% -----------------------------------------
% -----------------------------------------
%%<params>
%% document.language en
%%</params>
@ -21,10 +21,6 @@
\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}
@ -33,7 +29,7 @@
\usepackage{makeidx}
\usepackage[hyperlink]{docbook}
\renewcommand{\DBKreleaseinfo}{}
\title{PDF file not generated}
\title{Localized PDF file not generated}
\author{}
\hypersetup{%
pdfcreator={DBLaTeX-0.3.9-1},%
@ -50,6 +46,6 @@ pdfauthor={}}
\begin{document}
\mainmatter
This PDF file is not build due to tool chain issues.
The localized PDF file generation is disabled to avoid hitting tool chain issues.
\end{document}

4330
po/de.po

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

5024
po/es.po

File diff suppressed because it is too large Load diff

20276
po/fi.po

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
PO4A-HEADER:mode=after;position=aussi été mis à jour par les contributeurs;endboundary=</para>
PO4A-HEADER:mode=after;position=qui est mentionné ci-dessus. Il a aussi été mis à jour par les;endboundary=</para>
<para>Le document «&nbsp;Référence Debian (version 1)&nbsp;» a été traduit par Guillaume Erbs (gerbs chez free point fr) et al. </para>
<para>Le document «&nbsp;Référence Debian (version 2)&nbsp;» 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>

3910
po/fr.po

File diff suppressed because it is too large Load diff

3477
po/id.po

File diff suppressed because it is too large Load diff

2633
po/it.po

File diff suppressed because it is too large Load diff

2695
po/ja.po

File diff suppressed because it is too large Load diff

19170
po/ko.po

File diff suppressed because it is too large Load diff

1
po/ko.tex Normal file
View file

@ -0,0 +1 @@
\hyphenation{}

1560
po/nb.po

File diff suppressed because it is too large Load diff

1
po/nb.tex Normal file
View file

@ -0,0 +1 @@
\hyphenation{}

File diff suppressed because it is too large Load diff

10412
po/pt.po

File diff suppressed because it is too large Load diff

46503
po/ro.po Normal file

File diff suppressed because it is too large Load diff

18004
po/sv.po

File diff suppressed because it is too large Load diff

1
po/sv.tex Normal file
View file

@ -0,0 +1 @@
\hyphenation{}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -240,6 +240,7 @@ 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>
@ -522,7 +523,64 @@ $ 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>
<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>
<!--
* "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>
<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>
@ -589,7 +647,7 @@ $ ls -l foo bar
<tbody>
<row>
<entry> <literal>sudo</literal> </entry>
<entry> execute <literal>sudo</literal> without their password </entry>
<entry> execute any command with superuser privileges </entry>
</row>
<row>
<entry> <literal>lpadmin</literal> </entry>

View file

@ -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/*.source</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/*.sources</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 equivqlent source list in deb822-style as the following.</para>
<para>Alternatively, the equivalent source list in deb822-style is 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/*.source</literal>" files. </para> </listitem>
<listitem> <para> It's definition files are in "<literal>/etc/apt/sources.list.d/*.sources</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. 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 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>
<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 intensional 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 intentional 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> 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>
<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>
<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> 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>
<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>
<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> 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>
<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>
<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> 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>
<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>
<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> 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>
<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>
<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>

View file

@ -246,17 +246,19 @@ user2:$1$vXGZLVbS$ElyErNf/agUDsm1DehJMS/:13261:0:99999:7:::
<entry> Pluggable Authentication Modules (basic service) </entry>
</row>
<row>
<entry> <literal>libpam-ldap</literal> </entry>
<entry> <literal>libpam-ldapd</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>
@ -293,17 +295,19 @@ 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 (new fork of <literal>libnss-ldap</literal>) </entry>
<entry> NSS module for using LDAP as a naming service </entry>
</row>
</tbody>
</tgroup>
@ -387,26 +391,20 @@ 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-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>
<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>
<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-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 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 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>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>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>Similarly, you can set up alternative centralized systems with other methods.</para>
<itemizedlist>
<listitem>
@ -668,7 +666,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 "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>
<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>
</section>
<section id="_linux_security_features">
<title>Linux security features</title>

View file

@ -202,6 +202,7 @@
<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>
@ -209,6 +210,7 @@
<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>
@ -353,7 +355,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 foo netdev</screen>
<screen>$ sudo usermod -a -G netdev foo</screen>
</listitem>
<listitem>
<para> Keep configuration of "<literal>/etc/network/interfaces</literal>" as simple as in the following. </para>
@ -362,7 +364,7 @@ iface lo inet loopback</screen>
</listitem>
<listitem>
<para> Restart NM by the following. </para>
<screen>$ sudo systemctl restart network-manager</screen>
<screen>$ sudo systemctl restart NetworkManager</screen>
</listitem>
<listitem>
<para> Configure your network via GUI. </para>
@ -426,8 +428,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 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>
<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>
<screen>network:
version: 2
renderer: NetworkManager</screen>
@ -748,6 +750,12 @@ 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>

View file

@ -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-agent</literal>(1), and <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-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,12 +1046,19 @@ Identity added: /home/<emphasis>username</emphasis>/.ssh/id_rsa (/home/<emphasis
</thead>
<tbody>
<row>
<entry> <literal>netcat</literal> </entry>
<entry> <literal>netcat-traditional</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>

View file

@ -484,6 +484,13 @@
</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>
@ -941,6 +948,7 @@
<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>
@ -948,6 +956,7 @@
<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>

View file

@ -213,10 +213,6 @@ $ 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>
@ -238,47 +234,201 @@ 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>", "<ulink url="https://www.vi-improved.org/recommendations/">#vim Recommendations</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>", ... </para> </footnote>:
</para>
<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 " &lt;Tab&gt;-key always inserts blanks
set backspace=indent,eol,start " Back space through everything
set laststatus=2 " Always show status line
<!--
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
set statusline=%&lt;%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V
highlight RedundantSpaces ctermbg=red guibg=red " highlight tailer spaces red color</screen>
set listchars=eol:¶,tab:⇄\ ,extends:↦,precedes:↤,nbsp:␣
set viminfo=!,'100,&lt;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 &lt;C-H&gt; &lt;C-W&gt;h
nnoremap &lt;C-J&gt; &lt;C-W&gt;j
nnoremap &lt;C-K&gt; &lt;C-W&gt;k
silent! nnoremap &lt;C-L&gt; &lt;C-W&gt;l
""" Window resize
nnoremap &lt;C-LEFT&gt; &lt;CMD&gt;vertical resize -2&lt;CR&gt;
nnoremap &lt;C-DOWN&gt; &lt;CMD&gt;resize -2&lt;CR&gt;
nnoremap &lt;C-UP&gt; &lt;CMD&gt;resize +2&lt;CR&gt;
nnoremap &lt;C-RIGHT&gt; &lt;CMD&gt;vertical resize +2&lt;CR&gt;
""" Clear hlsearch with &lt;ESC&gt; (&lt;C-L&gt; is mapped as above)
nnoremap &lt;ESC&gt; &lt;CMD&gt;noh&lt;CR&gt;&lt;ESC&gt;
inoremap &lt;ESC&gt; &lt;CMD&gt;noh&lt;CR&gt;&lt;ESC&gt;
""" center after jump next
nnoremap n nzz
nnoremap N Nzz
""" fast "jk" to get out of INSERT mode (&lt;ESC&gt;)
inoremap jk &lt;CMD&gt;noh&lt;CR&gt;&lt;ESC&gt;
""" fast "&lt;ESC&gt;&lt;ESC&gt;" to get out of TERM mode (CTRL-\ CTRL-N)
tnoremap &lt;ESC&gt;&lt;ESC&gt; &lt;C-\&gt;&lt;C-N&gt;
""" fast "jk" to get out of TERM mode (CTRL-\ CTRL-N)
tnoremap jk &lt;C-\&gt;&lt;C-N&gt;
""" previous/next trouble/quickfix item
nnoremap [q &lt;CMD&gt;cprevious&lt;CR&gt;
nnoremap ]q &lt;CMD&gt;cnext&lt;CR&gt;
""" buffers
nnoremap &lt;S-H&gt; &lt;CMD&gt;bprevious&lt;CR&gt;
nnoremap &lt;S-L&gt; &lt;CMD&gt;bnext&lt;CR&gt;
nnoremap [b &lt;CMD&gt;bprevious&lt;CR&gt;
nnoremap ]b &lt;CMD&gt;bnext&lt;CR&gt;
""" Add undo break-points
inoremap , ,&lt;C-G&gt;u
inoremap . .&lt;C-G&gt;u
inoremap ; ;&lt;C-G&gt;u
""" save file
inoremap &lt;C-S&gt; &lt;CMD&gt;w&lt;CR&gt;&lt;ESC&gt;
xnoremap &lt;C-S&gt; &lt;CMD&gt;w&lt;CR&gt;&lt;ESC&gt;
nnoremap &lt;C-S&gt; &lt;CMD&gt;w&lt;CR&gt;&lt;ESC&gt;
snoremap &lt;C-S&gt; &lt;CMD&gt;w&lt;CR&gt;&lt;ESC&gt;
""" better indenting
vnoremap &lt; &lt;gv
vnoremap &gt; &gt;gv
""" terminal (Somehow under Linux, &lt;C-/&gt; becomes &lt;C-_&gt; in Vim)
nnoremap &lt;C-_&gt; &lt;CMD&gt;terminal&lt;CR&gt;
"nnoremap &lt;C-/&gt; &lt;CMD&gt;terminal&lt;CR&gt;
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if ! has('nvim')
""" Toggle paste mode with &lt;SPACE&gt;p for Vim (no need for Nvim)
set pastetoggle=&lt;leader&gt;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 &lt;C-U&gt; &lt;C-G&gt;u&lt;C-U&gt;
inoremap &lt;C-W&gt; &lt;C-G&gt;u&lt;C-W&gt;
""" &lt;C-L&gt; is re-purposed as above
""" execute the previous macro recorded with Q
nnoremap Q @@
""" repeat last substitute and *KEEP* flags
nnoremap &amp; :&amp;&amp;&lt;CR&gt;
""" search visual selected string for visual mode
xnoremap * y/\V&lt;C-R&gt;"&lt;CR&gt;
xnoremap # y?\V&lt;C-R&gt;"&lt;CR&gt;
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("'\"") &gt; 0 &amp;&amp; line ("'\"") &lt;= 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: &lt;Space&gt; and &lt;Tab&gt;
""" \%#\@&lt;! Matches with zero width if the cursor position does NOT match.
match TailingWhitespaces /\s\+\%#\@&lt;!$/</screen>
</section>
<section id="_customizing_vim_with_external_packages">
<title>Customizing vim with external packages</title>
<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>
<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.
-->
<screen>packadd! secure-modelines
packadd! winmanager
let mapleader = ' '
" Toggle paste mode with &lt;SPACE&gt;p for Vim (no need for Nvim)
set pastetoggle=&lt;leader&gt;p
" IDE-like UI for files and buffers with &lt;space&gt;w
nnoremap &lt;leader&gt;w :WMToggle&lt;CR&gt;
" Use safer keys &lt;C-?&gt; for moving to another window
nnoremap &lt;C-H&gt; &lt;C-W&gt;h
nnoremap &lt;C-J&gt; &lt;C-W&gt;j
nnoremap &lt;C-K&gt; &lt;C-W&gt;k
nnoremap &lt;C-L&gt; &lt;C-W&gt;l
" Record key MACRO with &lt;ESC&gt;qq ... &lt;ESC&gt;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>
nnoremap &lt;leader&gt;w :WMToggle&lt;CR&gt;</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>
<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>
@ -286,12 +436,6 @@ nnoremap Y y$</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>
@ -1828,12 +1972,14 @@ 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>
@ -2024,8 +2170,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 -v -f partition.img
Loop device is /dev/loop0
<screen># losetup --show -f partition.img
/dev/loop0
# mkdir -p /mnt/loop0
# mount -t auto /dev/loop0 /mnt/loop0
...hack...hack...hack
@ -2036,47 +2182,80 @@ Loop device is /dev/loop0
# mount -t auto -o loop partition.img /mnt/loop0
...hack...hack...hack
# umount partition.img</screen>
<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
<!--
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
# 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
Disk /dev/loop0: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x452b6464
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
Device Boot Start End Blocks Id System
/dev/loop0p1 1 600 4819468+ 83 Linux
/dev/loop0p2 601 652 417690 83 Linux
Partition table entries are not in disk order.
# mkdir -p /mnt/loop0p1
# mount -t ext4 /dev/loop0p1 /mnt/loop0p1
# mkdir -p /mnt/loop0p2
# mount -t ext4 /dev/loop0p2 /mnt/loop0p2
# 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)
...hack...hack...hack
# umount /dev/loop0p1
# umount /dev/loop0p2
# umount /dev/loop0p15
# 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
...
# mkdir -p /mnt/loop0p2
# mount -t ext4 /dev/mapper/loop0p2 /mnt/loop0p2
...
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)
...hack...hack...hack
# 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>
# umount /dev/mapper/loop0p1
# umount /dev/mapper/loop0p15
# kpartx -d disk.img</screen>
</section>
<section id="_cleaning_a_disk_image_file">
<title>Cleaning a disk image file</title>
@ -2091,10 +2270,11 @@ Disk identifier: 0x452b6464
# 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 -f -v disk.img
Loop device is /dev/loop3
# zerofree /dev/loop3
# cp --sparse=always disk.img new.img</screen>
<screen># losetup --show -f disk.img
/dev/loop0
# zerofree /dev/loop0
# cp --sparse=always disk.img new.img
# losetup -d /dev/loop0</screen>
</section>
<section id="_making_the_empty_disk_image_file">
<title>Making the empty disk image file</title>
@ -2102,11 +2282,11 @@ Loop device is /dev/loop3
<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 -f -v disk.img
Loop device is /dev/loop1
# mkfs.ext4 /dev/loop1
<screen># losetup --show -f disk.img
/dev/loop0
# mkfs.ext4 /dev/loop0
...hack...hack...hack
# losetup -d /dev/loop1
# losetup -d /dev/loop0
$ du --apparent-size -h disk.img
5.0G disk.img
$ du -h disk.img
@ -2873,11 +3053,17 @@ $ 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 </entry>
<entry> <ulink url="https://wiki.debian.org/LXD">LXD</ulink>: system container and virtual machine manager (for Debian 12 "Bookworm") </entry>
</row>
<row>
<entry> <literal>podman</literal> </entry>
@ -2909,12 +3095,14 @@ $ 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>
@ -3067,7 +3255,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>: <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><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>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
@ -3094,6 +3282,22 @@ $ 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>

View file

@ -737,12 +737,14 @@ 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>

View file

@ -759,6 +759,7 @@ 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>
@ -766,6 +767,7 @@ done</screen>
<entry> SGML/dsssl </entry>
<entry> converter from SGML and XML using DSSSL stylesheets </entry>
</row>
-->
</tbody>
</tgroup>
</table>
@ -1036,6 +1038,7 @@ 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>
@ -1068,13 +1071,20 @@ done</screen>
<entry> GPL Ghostscript PostScript/PDF interpreter - X display support </entry>
</row>
<row>
<entry> <literal>libpoppler102</literal> </entry>
<!--
libpoppler package name needs to be updated for every major releases
https://tracker.debian.org/pkg/poppler
-->
<entry> <literal>libpoppler147</literal> </entry>
<entry> @-@popcon1@-@ </entry>
<entry> @-@psize1@-@ </entry>
<entry> PDF rendering library forked from the xpdf PDF viewer </entry>
</row>
<row>
<entry> <literal>libpoppler-glib8</literal> </entry>
<!--
check name for libpoppler-glib8t64 package name https://tracker.debian.org/pkg/poppler
-->
<entry> <literal>libpoppler-glib8t64</literal> </entry>
<entry> @-@popcon1@-@ </entry>
<entry> @-@psize1@-@ </entry>
<entry> PDF rendering library (GLib-based shared library) </entry>
@ -1214,14 +1224,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> ps→svg </entry>
<entry> pdf→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> ps→ipe </entry>
<entry> pdf→ipe </entry>
<entry> converter from PDF to IPE's XML format </entry>
</row>
</tbody>
@ -1304,355 +1314,532 @@ $ 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>

View file

@ -727,7 +727,11 @@ fi</screen>
<entry> GNU C++ compiler </entry>
</row>
<row>
<entry> <literal>libstdc++-10-dev</literal> </entry>
<!--
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> @-@popcon1@-@ </entry>
<entry> @-@psize1@-@ </entry>
<entry> GNU Standard C++ Library v3 (development files) </entry>
@ -798,12 +802,14 @@ 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>
@ -977,7 +983,6 @@ $ 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

View file

@ -1,7 +1,7 @@
<!-- vim: set tw=78 sts=2 ai expandtab: -->
# Reminder to update the English RAWXML/* files
# Updating English contents of debian-reference
2024-02-02T00:45:26 UTC
2024-01-28T21:12:00 UTC
Osamu Aoki, <osamu at debian dot org>
@ -9,36 +9,7 @@ Osamu Aoki, <osamu at debian dot org>
Unfortunately, no.
## 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
## Reminders for contents
Let's ask ourselves several questions before adding any contents.
@ -54,22 +25,16 @@ 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 > 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)
* 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?)
* Is there any strong reason to add them?
* sysv to systemd transition -- mostly done
* UEFI transition -- mostly done
* sysv to systemd transition
* UEFI transition
* 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

File diff suppressed because it is too large Load diff

179
xslt/README.md Normal file
View file

@ -0,0 +1,179 @@
# 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

View file

@ -9,6 +9,11 @@
<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>
-->

View file

@ -3,192 +3,67 @@
<!-- vim: set sts=2 ai expandtab: -->
<!--############################################################################
XSLT Stylesheet DocBook -> LaTeX (XeTeX focused)
XSLT Stylesheet DocBook -> LaTeX using sans fonts
############################################################################ -->
<xsl:param name="xetex.font">
<!-- Set Western font: XeTeX default seems Latin Modern (LM) Family of Fonts -->
<!-- Depends: lmodern, tipa -->
<!-- Workaround to disable curved quotation mark in listing env -->
<xsl:text>\usepackage{listings}&#10;</xsl:text>
<xsl:text>\lstset{upquote=true,basicstyle=\ttfamily}&#10;</xsl:text>
<xsl:text>\defaultfontfeatures{}&#10;</xsl:text>
<!-- Nimbus: Original Adobe PostScript looks-alike -->
<!-- Origin: URW++ -->
<!-- Depends: gsfonts -->
<!-- Note: missing some odd codes, mono is thin -->
<!--
<!-- Western centric Adobe PostScript looks-alike: gsfonts: missing some odd codes, mono is thin
<xsl:text>\setmainfont{Nimbus Roman No9 L}&#10;</xsl:text>
<xsl:text>\setsansfont{Nimbus Sans L}&#10;</xsl:text>
<xsl:text>\setmonofont{Nimbus Mono L}&#10;</xsl:text>
-->
<!-- 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 -->
<!--
<!-- Western centric Bitstream Vera Fonts extended: DejaVu: too big and spaced
<xsl:text>\setmainfont{DejaVu Serif}&#10;</xsl:text>
<xsl:text>\setsansfont{DejaVu Sans}&#10;</xsl:text>
<xsl:text>\setmonofont{DejaVu Sans Mono}&#10;</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}&#10;</xsl:text>
<!-- Western centric MS (monotype) fonts looks-alike: Liberation : Best looking -->
<xsl:text>\setmainfont{Liberation Sans}&#10;</xsl:text>
<xsl:text>\setsansfont{Liberation Sans}&#10;</xsl:text>
<xsl:text>\setmonofont{Liberation Mono}&#10;</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}&#10;</xsl:text>
<xsl:text>\setsansfont{FreeSans}&#10;</xsl:text>
<xsl:text>\setmonofont{FreeMono}&#10;</xsl:text>
-->
<!-- Only non-latin chars seem to use \setCJK*font settings -->
<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
<xsl:choose>
<!-- TODO: perhaps use fonts-noto-cjk for all -->
<xsl:when test="$lingua = 'zh-cn'">
<!-- zh_CN centric: main=Serif CJK Arphic+文泉-->
<!-- Depends: fonts-arphic-gbsn00lp -->
<!-- Depends: fonts-wqy-zenhei -->
<!--
<xsl:text>\setCJKmainfont{AR PL SungtiL GB}&#10;</xsl:text>
<!-- zh_CN centric: fonts-wqy-zenhei -->
<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
<xsl:text>\setCJKmainfont{WenQuanYi Zen Hei}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{WenQuanYi Zen Hei}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{WenQuanYi Zen Hei Mono}&#10;</xsl:text>
-->
<!-- zh_CN centric: main=Sans CJK, Google Droid derivative-->
<!-- Depends: fonts-wqy-microhei -->
<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono}&#10;</xsl:text>
</xsl:when>
<xsl:when test="$lingua = 'zh-tw'">
<!-- zh_TW centric: main=Serif CJK Arphic+文泉 -->
<!-- Depends: fonts-arphic-bsmi00lp -->
<!-- Depends: fonts-wqy-zenhei -->
<!--
<xsl:text>\setCJKmainfont{AR PL Mingti2L Big5}&#10;</xsl:text>
<!-- zh_TW centric: fonts-wqy-zenhei -->
<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
<xsl:text>\setCJKmainfont{WenQuanYi Zen Hei}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{WenQuanYi Zen Hei}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{WenQuanYi Zen Hei Mono}&#10;</xsl:text>
-->
<!-- zh_TW centric: main=Sans CJK, Google Droid derivative-->
<!-- Depends: fonts-wqy-microhei -->
<xsl:text>\setCJKmainfont{WenQuanYi Micro Hei}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{WenQuanYi Micro Hei}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{WenQuanYi Micro Hei Mono}&#10;</xsl:text>
</xsl:when>
<xsl:when test="$lingua = 'ja'">
<!-- ja centric: fonts-vlgothic -->
<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
<xsl:text>\setCJKmainfont{VL PGothic}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{VL PGothic}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{VL Gothic}&#10;</xsl:text>
</xsl:when>
<xsl:when test="$lingua = 'ko'">
<!-- ko centric: -->
<!-- Depends: fonts-unfonts-core -->
<xsl:text>\setCJKmainfont{UnBatang}&#10;</xsl:text>
<!-- ko centric: fonts-unfonts-core -->
<xsl:text>\usepackage{xeCJK}&#10;</xsl:text>
<xsl:text>\setCJKmainfont{UnDotum}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{UnDotum}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{UnDotum}&#10;</xsl:text>
</xsl:when>
<xsl:otherwise>
<!-- 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}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{IPAPGothic}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{IPAGothic}&#10;</xsl:text>
-->
<!-- ja centric: Newer IPA, main=serif -->
<!-- Depends: fonts-ipaexfont -->
<!--
<xsl:text>\setCJKmainfont{IPAexMincho}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{IPAexGothic}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{IPAexGothic}&#10;</xsl:text>
-->
<!-- ja centric: main=sans -->
<!-- Depends: fonts-vlgothic -->
<xsl:text>\setCJKmainfont{VL PGothic}&#10;</xsl:text>
<xsl:text>\setCJKsansfont{VL PGothic}&#10;</xsl:text>
<xsl:text>\setCJKmonofont{VL Gothic}&#10;</xsl:text>
<!-- only western char -->
</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
-->