linux:ansi2html

ansi2html - Linux コンソールの ANSI カラー出力を HTML 変換

ansi2html dmesg

ソースコード: GitHub - kilobyte/colorized-logs: tools for logs with ANSI color
 pycontribs/ansi2html: Convert text with ansi color codes to HTML

ansi2html コマンドは Linux ターミナルのカラー出力を HTML へ変換する。

ansi2html コマンドは colorized-logs または python3-ansi2html パッケージに含まれています😊
pipetty コマンドなども必要な場合は colorized-logs パッケージをインストールする。

Fedora

$ dnf provides ansi2html

Last metadata expiration check: 6 days, 8:00:19 ago on 2021年03月24日 02時11分04秒.
colorized-logs-2.5-4.fc33.x86_64 : Tools for logs with ANSI color
Repo        : fedora
Matched from:
Filename    : /usr/bin/ansi2html

python3-ansi2html-1.5.1-10.fc33.noarch : Python module that converts text with ANSI color to HTML
Repo        : fedora
Matched from:
Filename    : /usr/bin/ansi2html

ここでは colorized-logs パッケージをインストールする。

$ sudo dnf install colorized-logs -y

Last metadata expiration check: 5:46:09 ago on 2021年03月30日 04時39分50秒.
Dependencies resolved.
====================================================================================================
 Package                     Architecture        Version                  Repository           Size
====================================================================================================
Installing:
 colorized-logs              x86_64              2.5-4.fc33               fedora               31 k

Transaction Summary
====================================================================================================
Install  1 Package

Total download size: 31 k
Installed size: 75 k
Downloading Packages:
colorized-logs-2.5-4.fc33.x86_64.rpm                                 87 kB/s |  31 kB     00:00
----------------------------------------------------------------------------------------------------
Total                                                                15 kB/s |  31 kB     00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                            1/1
  Installing       : colorized-logs-2.5-4.fc33.x86_64                                           1/1
  Running scriptlet: colorized-logs-2.5-4.fc33.x86_64                                           1/1
  Verifying        : colorized-logs-2.5-4.fc33.x86_64                                           1/1

Installed:
  colorized-logs-2.5-4.fc33.x86_64

Complete!

DietPi

$ apt-file search ansi2html

colorized-logs: /usr/bin/ansi2html
colorized-logs: /usr/share/man/man1/ansi2html.1.gz
gitlab: /usr/share/gitlab/lib/gitlab/ci/ansi2html.rb
gitlab: /usr/share/gitlab/spec/lib/gitlab/ci/ansi2html_spec.rb

$ sudo apt install colorized-logs -y

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  less
Suggested packages:
  colordiff colormake ccze colortail
The following NEW packages will be installed:
  colorized-logs less
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 132 kB of archives.
After this operation, 302 kB of additional disk space will be used.
Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bullseye/main armhf less armhf 551-2 [117 kB]
Get:2 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bullseye/main armhf colorized-logs armhf 2.5-1 [14.9 kB]
Fetched 132 kB in 2s (59.0 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package less.
(Reading database ... 67623 files and directories currently installed.)
Preparing to unpack .../archives/less_551-2_armhf.deb ...
Unpacking less (551-2) ...
Selecting previously unselected package colorized-logs.
Preparing to unpack .../colorized-logs_2.5-1_armhf.deb ...
Unpacking colorized-logs (2.5-1) ...
Setting up less (551-2) ...
Setting up colorized-logs (2.5-1) ...
Processing triggers for mailcap (3.69) ...

$ dmesg --color=always | ansi2html > dmesg.html

[    0.000000] Linux version 5.4.91-microsoft-standard-WSL2 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP Mon Jan 25 18:39:31 UTC 2021
[    0.000000] Command line: initrd=\initrd.img panic=-1 nr_cpus=4 swiotlb=force pty.legacy_count=0
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000e0fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000001fffff] ACPI data
[    0.000000] BIOS-e820: [mem 0x0000000000200000-0x00000000f7ffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000002041fffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI not present or invalid.
[    0.000000] Hypervisor detected: Microsoft Hyper-V
[    0.000000] Hyper-V: features 0x2e7f, privilege high: 0x3b8030, hints 0x26c2c, misc 0xe0bed7b2
[    0.000000] Hyper-V Host Build:21322-10.0-1-0.1000
[    0.000000] Hyper-V: LAPIC Timer Frequency: 0x1e8480
[    0.000000] tsc: Marking TSC unstable due to running on Hyper-V
[    0.000000] Hyper-V: Using hypercall for remote TLB flush
[    0.000000] clocksource: hyperv_clocksource_tsc_page: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000002] tsc: Detected 2394.559 MHz processor
[    0.000012] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000014] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000016] last_pfn = 0x204200 max_arch_pfn = 0x400000000
[    0.000047] MTRR default type: uncachable
[    0.000047] MTRR fixed ranges disabled:
[    0.000049]   00000-FFFFF uncachable
[    0.000049] MTRR variable ranges disabled:
[    0.000049]   0 disabled
[    0.000050]   1 disabled
[    0.000050]   2 disabled
[    0.000050]   3 disabled
[    0.000051]   4 disabled
[    0.000051]   5 disabled
[    0.000051]   6 disabled
[    0.000052]   7 disabled
[    0.000052] Disabled
[    0.000053] x86/PAT: MTRRs disabled, skipping PAT initialization too.
[    0.000061] CPU MTRRs all blank - virtualized system.
[    0.000062] x86/PAT: Configuration [0-7]: WB  WT  UC- UC  WB  WT  UC- UC  
[    0.000063] last_pfn = 0xf8000 max_arch_pfn = 0x400000000
[    0.000565] RAMDISK: [mem 0x03035000-0x03043fff]
[    0.000570] ACPI: Early table checksum verification disabled
[    0.000585] ACPI: RSDP 0x00000000000E0000 000024 (v02 VRTUAL)
[    0.000588] ACPI: XSDT 0x0000000000100000 000044 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000593] ACPI: FACP 0x0000000000101000 000114 (v06 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000597] ACPI: DSDT 0x00000000001011B8 01E184 (v02 MSFTVM DSDT01   00000001 MSFT 05000000)
[    0.000600] ACPI: FACS 0x0000000000101114 000040
[    0.000603] ACPI: OEM0 0x0000000000101154 000064 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000605] ACPI: SRAT 0x000000000011F33C 0002F0 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000608] ACPI: APIC 0x000000000011F62C 000068 (v04 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000614] ACPI: Local APIC address 0xfee00000
[    0.000897] Zone ranges:
[    0.000898]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000900]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000901]   Normal   [mem 0x0000000100000000-0x00000002041fffff]
[    0.000901] Movable zone start for each node
[    0.000902] Early memory node ranges
[    0.000903]   node   0: [mem 0x0000000000001000-0x000000000009ffff]
[    0.000904]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000904]   node   0: [mem 0x0000000100000000-0x00000002041fffff]
[    0.001546] Zeroed struct page in unavailable ranges: 16225 pages
[    0.001548] Initmem setup node 0 [mem 0x0000000000001000-0x00000002041fffff]
[    0.001549] On node 0 totalpages: 2080927
[    0.001550]   DMA zone: 59 pages used for memmap
[    0.001551]   DMA zone: 22 pages reserved
[    0.001551]   DMA zone: 3743 pages, LIFO batch:0
[    0.001595]   DMA32 zone: 16320 pages used for memmap
[    0.001596]   DMA32 zone: 1011712 pages, LIFO batch:63
[    0.024987]   Normal zone: 16648 pages used for memmap
[    0.024988]   Normal zone: 1065472 pages, LIFO batch:63
[    0.026203] ACPI: Local APIC address 0xfee00000
[    0.026212] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
[    0.026816] IOAPIC[0]: apic_id 4, version 17, address 0xfec00000, GSI 0-23
[    0.026820] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.026823] ACPI: IRQ9 used by override.
[    0.026826] Using ACPI (MADT) for SMP configuration information
[    0.026836] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[    0.026849] [mem 0xf8000000-0xffffffff] available for PCI devices
[    0.026850] Booting paravirtualized kernel on Hyper-V
[    0.026852] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.158906] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:4 nr_node_ids:1
[    0.159312] percpu: Embedded 50 pages/cpu s167256 r8192 d29352 u524288
[    0.159316] pcpu-alloc: s167256 r8192 d29352 u524288 alloc=1*2097152
[    0.159317] pcpu-alloc: [0] 0 1 2 3 
[    0.159329] Built 1 zonelists, mobility grouping on.  Total pages: 2047878
[    0.159330] Kernel command line: initrd=\initrd.img panic=-1 nr_cpus=4 swiotlb=force pty.legacy_count=0
[    0.161456] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.162492] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.162553] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.185016] Memory: 4094392K/8323708K available (16390K kernel code, 1624K rwdata, 3180K rodata, 1572K init, 2216K bss, 243108K reserved, 0K cma-reserved)
[    0.185360] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.185366] Kernel/User page tables isolation: enabled
[    0.185378] ftrace: allocating 44895 entries in 176 pages
[    0.200924] rcu: Hierarchical RCU implementation.
[    0.200926] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.200926] 	All grace periods are expedited (rcu_expedited).
[    0.200927] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.200927] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.203376] Using NULL legacy PIC
[    0.203377] NR_IRQS: 16640, nr_irqs: 456, preallocated irqs: 0
[    0.203871] random: crng done (trusting CPU's manufacturer)
[    0.203891] Console: colour dummy device 80x25
[    0.203894] printk: console [tty0] enabled
[    0.203899] ACPI: Core revision 20190816
[    0.204020] Failed to register legacy timer interrupt
[    0.204021] APIC: Switch to symmetric I/O mode setup
[    0.204041] Hyper-V: Using IPI hypercalls
[    0.204041] Hyper-V: Using enlightened APIC (xapic mode)
[    0.204146] Calibrating delay loop (skipped), value calculated using timer frequency.. 4789.11 BogoMIPS (lpj=23945590)
[    0.204148] pid_max: default: 32768 minimum: 301
[    0.204159] LSM: Security Framework initializing
[    0.204177] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.204189] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.204403] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[    0.204404] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.204407] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.204408] Spectre V2 : Mitigation: Full generic retpoline
[    0.204409] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.204409] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.204410] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[    0.204411] Spectre V2 : User space: Mitigation: STIBP via seccomp and prctl
[    0.204412] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp
[    0.204415] SRBDS: Unknown: Dependent on hypervisor status
[    0.204416] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.204580] Freeing SMP alternatives memory: 48K
[    0.204663] smpboot: CPU0: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz (family: 0x6, model: 0x3a, stepping: 0x9)
[    0.204982] Performance Events: unsupported p6 CPU model 58 no PMU driver, software events only.
[    0.205006] rcu: Hierarchical SRCU implementation.
[    0.205063] smp: Bringing up secondary CPUs ...
[    0.205119] x86: Booting SMP configuration:
[    0.205120] .... node  #0, CPUs:      #1
[    0.205640] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.
[    0.205640]  #2 #3
[    0.205640] smp: Brought up 1 node, 4 CPUs
[    0.205640] smpboot: Max logical packages: 1
[    0.205640] smpboot: Total of 4 processors activated (19156.47 BogoMIPS)
[    0.226388] node 0 initialised, 996552 pages in 20ms
[    0.226470] devtmpfs: initialized
[    0.226470] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.226470] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.226470] xor: automatically using best checksumming function   avx       
[    0.226470] NET: Registered protocol family 16
[    0.226470] ACPI: bus type PCI registered
[    0.226470] PCI: Fatal: No config space access function found
[    0.227530] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.234294] raid6: Forced to use recovery algorithm intx1
[    0.234294] raid6: Forced gen() algo avx2x4
[    0.234294] ACPI: Added _OSI(Module Device)
[    0.234294] ACPI: Added _OSI(Processor Device)
[    0.234294] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.234294] ACPI: Added _OSI(Processor Aggregator Device)
[    0.234294] ACPI: Added _OSI(Linux-Dell-Video)
[    0.234294] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.234294] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
[    0.247360] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.248339] ACPI: Interpreter enabled
[    0.248339] ACPI: (supports S0 S5)
[    0.248339] ACPI: Using IOAPIC for interrupt routing
[    0.248339] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.248339] ACPI: Enabled 2 GPEs in block 00 to 0F
[    0.248339] iommu: Default domain type: Translated 
[    0.248339] SCSI subsystem initialized
[    0.248363] hv_vmbus: Vmbus version:5.0
[    0.248363] PCI: Using ACPI for IRQ routing
[    0.248363] PCI: System does not support PCI
[    0.248363] hv_vmbus: Unknown GUID: c376c1c3-d276-48d2-90a9-c04748072c60
[    0.248363] clocksource: Switched to clocksource hyperv_clocksource_tsc_page
[    0.359068] VFS: Disk quotas dquot_6.6.0
[    0.359078] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.359096] FS-Cache: Loaded
[    0.359120] pnp: PnP ACPI init
[    0.359314] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.359332] pnp: PnP ACPI: found 1 devices
[    0.367685] NET: Registered protocol family 2
[    0.367932] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.367945] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.368045] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.368607] TCP: Hash tables configured (established 65536 bind 65536)
[    0.368635] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.368655] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.368702] NET: Registered protocol family 1
[    0.369162] RPC: Registered named UNIX socket transport module.
[    0.369163] RPC: Registered udp transport module.
[    0.369164] RPC: Registered tcp transport module.
[    0.369165] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.369167] PCI: CLS 0 bytes, default 64
[    0.369204] Trying to unpack rootfs image as initramfs...
[    0.369336] Freeing initrd memory: 60K
[    0.369339] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.369340] software IO TLB: mapped [mem 0xf4000000-0xf8000000] (64MB)
[    0.369377] KVM: vmx: using Hyper-V Enlightened VMCS
[    0.372918] kvm: already loaded the other module
[    0.375220] Initialise system trusted keyrings
[    0.375372] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.376455] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.376687] NFS: Registering the id_resolver key type
[    0.376691] Key type id_resolver registered
[    0.376692] Key type id_legacy registered
[    0.376695] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.377635] Key type cifs.idmap registered
[    0.377721] fuse: init (API version 7.31)
[    0.377915] SGI XFS with ACLs, security attributes, realtime, scrub, repair, no debug enabled
[    0.378331] 9p: Installing v9fs 9p2000 file system support
[    0.378348] FS-Cache: Netfs '9p' registered for caching
[    0.378503] FS-Cache: Netfs 'ceph' registered for caching
[    0.378506] ceph: loaded (mds proto 32)
[    0.382334] NET: Registered protocol family 38
[    0.382337] Key type asymmetric registered
[    0.382337] Asymmetric key parser 'x509' registered
[    0.382349] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.382682] hv_vmbus: registering driver hv_pci
[    0.382959] ACPI: AC Adapter [AC1] (on-line)
[    0.383313] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.383877] Non-volatile memory driver v1.3
[    0.384079] battery: ACPI: Battery Slot [BAT1] (battery present)
[    0.386519] brd: module loaded
[    0.387580] loop: module loaded
[    0.387620] hv_vmbus: registering driver hv_storvsc
[    0.387676] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
[    0.388382] wireguard: WireGuard 1.0.0 loaded. See www.wireguard.com for information.
[    0.388383] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
[    0.388409] tun: Universal TUN/TAP device driver, 1.6
[    0.388519] PPP generic driver version 2.4.2
[    0.388651] PPP BSD Compression module registered
[    0.388653] PPP Deflate Compression module registered
[    0.388659] PPP MPPE Compression module registered
[    0.388661] NET: Registered protocol family 24
[    0.388669] hv_vmbus: registering driver hv_netvsc
[    0.388801] VFIO - User Level meta-driver version: 0.3
[    0.388969] hv_vmbus: registering driver hyperv_keyboard
[    0.389324] rtc_cmos 00:00: RTC can wake from S4
[    0.389718] scsi host0: storvsc_host_t
[    0.392400] rtc_cmos 00:00: registered as rtc0
[    0.392412] rtc_cmos 00:00: alarms up to one month, 114 bytes nvram
[    0.392814] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[    0.393034] device-mapper: raid: Loading target version 1.14.0
[    0.393143] hv_utils: Registering HyperV Utility Driver
[    0.393144] hv_vmbus: registering driver hv_utils
[    0.393195] hv_vmbus: registering driver hv_balloon
[    0.393211] dxgk:err: dxg_drv_init  Version: 5
[    0.393215] hv_vmbus: registering driver dxgkrnl
[    0.393242] drop_monitor: Initializing network drop monitor service
[    0.393259] Mirror/redirect action on
[    0.393349] hv_utils: cannot register PTP clock: 0
[    0.393541] IPVS: Registered protocols (TCP, UDP)
[    0.393562] IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
[    0.394059] IPVS: ipvs loaded.
[    0.394060] IPVS: [rr] scheduler registered.
[    0.394061] IPVS: [wrr] scheduler registered.
[    0.394062] IPVS: [sh] scheduler registered.
[    0.394112] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    0.395396] ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
[    0.395885] Initializing XFRM netlink socket
[    0.396015] NET: Registered protocol family 10
[    0.396428] hv_balloon: Using Dynamic Memory protocol version 2.0
[    0.397334] hv_utils: TimeSync IC version 4.0
[    0.397512] Segment Routing with IPv6
[    0.398610] hv_balloon: Cold memory discard enabled
[    0.398939] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.399091] NET: Registered protocol family 17
[    0.399122] Bridge firewalling registered
[    0.399131] 8021q: 802.1Q VLAN Support v1.8
[    0.399166] sctp: Hash tables configured (bind 256/256)
[    0.399258] 9pnet: Installing 9P2000 support
[    0.399273] Key type dns_resolver registered
[    0.399288] Key type ceph registered
[    0.399545] libceph: loaded (mon/osd proto 15/24)
[    0.399547] hv_vmbus: registering driver hv_sock
[    0.399682] NET: Registered protocol family 40
[    0.399711] IPI shorthand broadcast: enabled
[    0.399837] registered taskstats version 1
[    0.399845] Loading compiled-in X.509 certificates
[    0.400303] Btrfs loaded, crc32c=crc32c-generic
[    0.401452] rtc_cmos 00:00: setting system clock to 2021-03-19T21:06:27 UTC (1616187987)
[    0.401478] Unstable clock detected, switching default tracing clock to "global"
               If you want to keep using the local clock, then add:
                 "trace_clock=local"
               on the kernel command line
[    0.403529] Freeing unused kernel image memory: 1572K
[    0.423944] hv_pci a8492c6e-d071-4bc1-a290-ee2afbaf08e9: PCI VMBus probing: Using version 0x10002
[    0.424806] hv_pci a8492c6e-d071-4bc1-a290-ee2afbaf08e9: PCI host bridge to bus d071:00
[    0.425127] pci d071:00:00.0: [1414:008e] type 00 class 0x030200
[    0.432843] hv_vmbus: Unknown GUID: 6e382d18-3336-4f4b-acc4-2b7703d4df4a
[    0.432905] hv_vmbus: Unknown GUID: dde9cbc0-5060-4436-9448-ea1254a5d177
[    0.474332] Write protecting the kernel read-only data: 22528k
[    0.476631] Freeing unused kernel image memory: 1992K
[    0.477923] Freeing unused kernel image memory: 916K
[    0.478148] Run /init as init process
[    2.710822] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    3.093020] scsi 0:0:0:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
[    3.094631] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    3.109524] sd 0:0:0:0: [sda] 536870912 512-byte logical blocks: (275 GB/256 GiB)
[    3.109527] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    3.110039] sd 0:0:0:0: [sda] Write Protect is off
[    3.110042] sd 0:0:0:0: [sda] Mode Sense: 0f 00 00 00
[    3.111507] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.406889] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.510709] EXT4-fs (sda): mounted filesystem with ordered data mode. Opts: (null)
[    3.619610] hv_pci 30d1b8c5-2b62-4982-b88c-14def9bcd2c5: PCI VMBus probing: Using version 0x10002
[    3.761035] hv_pci 30d1b8c5-2b62-4982-b88c-14def9bcd2c5: PCI host bridge to bus 2b62:00
[    3.761038] pci_bus 2b62:00: root bus resource [mem 0xe00000000-0xe00002fff window]
[    3.761853] pci 2b62:00:00.0: [1af4:1049] type 00 class 0x010000
[    3.767071] pci 2b62:00:00.0: reg 0x10: [mem 0xe00000000-0xe00000fff 64bit]
[    3.768699] pci 2b62:00:00.0: reg 0x18: [mem 0xe00001000-0xe00001fff 64bit]
[    3.769695] pci 2b62:00:00.0: reg 0x20: [mem 0xe00002000-0xe00002fff 64bit]
[    3.777366] pci 2b62:00:00.0: BAR 0: assigned [mem 0xe00000000-0xe00000fff 64bit]
[    3.778372] pci 2b62:00:00.0: BAR 2: assigned [mem 0xe00001000-0xe00001fff 64bit]
[    3.779338] pci 2b62:00:00.0: BAR 4: assigned [mem 0xe00002000-0xe00002fff 64bit]
[    4.133206] Adding 2097152k swap on /swap/file.  Priority:-2 extents:1 across:2097152k 
[    5.364497] scsi 0:0:0:1: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
[    5.364939] sd 0:0:0:1: Attached scsi generic sg1 type 0
[    5.366239] sd 0:0:0:1: [sdb] 536870912 512-byte logical blocks: (275 GB/256 GiB)
[    5.366242] sd 0:0:0:1: [sdb] 4096-byte physical blocks
[    5.366432] sd 0:0:0:1: [sdb] Write Protect is off
[    5.366434] sd 0:0:0:1: [sdb] Mode Sense: 0f 00 00 00
[    5.366810] sd 0:0:0:1: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    5.370215] sd 0:0:0:1: [sdb] Attached SCSI disk
[    5.717026] EXT4-fs (sdb): recovery complete
[    5.719229] EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered
[    5.732089] FS-Cache: Duplicate cookie detected
[    5.732093] FS-Cache: O-cookie c=00000000c3d31845 [p=00000000b229a3bf fl=222 nc=0 na=1]
[    5.732094] FS-Cache: O-cookie d=00000000edcd1005 n=0000000073b35055
[    5.732094] FS-Cache: O-key=[10] '34323934393337383438'
[    5.732098] FS-Cache: N-cookie c=0000000029a08174 [p=00000000b229a3bf fl=2 nc=0 na=1]
[    5.732099] FS-Cache: N-cookie d=00000000edcd1005 n=000000006dd1ac16
[    5.732099] FS-Cache: N-key=[10] '34323934393337383438'
[    5.958511] hv_pci 0230a7c4-efca-47ea-9d15-b8d4162460a3: PCI VMBus probing: Using version 0x10002
[    6.031445] hv_pci 0230a7c4-efca-47ea-9d15-b8d4162460a3: PCI host bridge to bus efca:00
[    6.031447] pci_bus efca:00: root bus resource [mem 0xe00004000-0xe00006fff window]
[    6.032171] pci efca:00:00.0: [1af4:1049] type 00 class 0x010000
[    6.034328] pci efca:00:00.0: reg 0x10: [mem 0xe00004000-0xe00004fff 64bit]
[    6.035348] pci efca:00:00.0: reg 0x18: [mem 0xe00005000-0xe00005fff 64bit]
[    6.036289] pci efca:00:00.0: reg 0x20: [mem 0xe00006000-0xe00006fff 64bit]
[    6.042691] pci efca:00:00.0: BAR 0: assigned [mem 0xe00004000-0xe00004fff 64bit]
[    6.043397] pci efca:00:00.0: BAR 2: assigned [mem 0xe00005000-0xe00005fff 64bit]
[    6.044066] pci efca:00:00.0: BAR 4: assigned [mem 0xe00006000-0xe00006fff 64bit]
[    6.675294] cgroup: systemd (147) created nested cgroup for controller "memory" which has incomplete hierarchy support. Nested cgroups may change behavior in the future.
[    6.675295] cgroup: "memory" requires setting use_hierarchy to 1 on the root
[   49.193919] hv_balloon: Max. dynamic memory size: 8130 MB
[ 4076.736267] hv_utils: TimeSync IC version 4.0
[58651.616048] hv_utils: TimeSync IC version 4.0
[115801.510965] hv_utils: TimeSync IC version 4.0
[140567.612418] scsi 0:0:0:2: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
[140567.617345] sd 0:0:0:2: Attached scsi generic sg2 type 0
[140567.619640] sd 0:0:0:2: [sdc] 536870912 512-byte logical blocks: (275 GB/256 GiB)
[140567.619647] sd 0:0:0:2: [sdc] 4096-byte physical blocks
[140567.619962] sd 0:0:0:2: [sdc] Write Protect is off
[140567.619968] sd 0:0:0:2: [sdc] Mode Sense: 0f 00 00 00
[140567.620320] sd 0:0:0:2: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[140567.647215] sd 0:0:0:2: [sdc] Attached SCSI disk
[140567.682754] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered
[140677.565867] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered
[140678.605424] hv_pci ca92d1a4-4c1e-4052-b7b3-236b5f0ebb70: PCI VMBus probing: Using version 0x10002
[140678.683448] hv_pci ca92d1a4-4c1e-4052-b7b3-236b5f0ebb70: PCI host bridge to bus 4c1e:00
[140678.683452] pci_bus 4c1e:00: root bus resource [mem 0xe00008000-0xe0000afff window]
[140678.684819] pci 4c1e:00:00.0: [1af4:1049] type 00 class 0x010000
[140678.687984] pci 4c1e:00:00.0: reg 0x10: [mem 0xe00008000-0xe00008fff 64bit]
[140678.688961] pci 4c1e:00:00.0: reg 0x18: [mem 0xe00009000-0xe00009fff 64bit]
[140678.689934] pci 4c1e:00:00.0: reg 0x20: [mem 0xe0000a000-0xe0000afff 64bit]
[140678.696947] pci 4c1e:00:00.0: BAR 0: assigned [mem 0xe00008000-0xe00008fff 64bit]
[140678.697666] pci 4c1e:00:00.0: BAR 2: assigned [mem 0xe00009000-0xe00009fff 64bit]
[140678.698399] pci 4c1e:00:00.0: BAR 4: assigned [mem 0xe0000a000-0xe0000afff 64bit]
[142941.489967] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered
[142941.510843] FS-Cache: Duplicate cookie detected
[142941.511027] FS-Cache: O-cookie c=00000000af988317 [p=00000000b229a3bf fl=222 nc=0 na=1]
[142941.511028] FS-Cache: O-cookie d=00000000edcd1005 n=000000003b77323b
[142941.511029] FS-Cache: O-key=[10] '34333039323331343236'
[142941.511033] FS-Cache: N-cookie c=000000007c84384f [p=00000000b229a3bf fl=2 nc=0 na=1]
[142941.511034] FS-Cache: N-cookie d=00000000edcd1005 n=000000007fbdad8c
[142941.511034] FS-Cache: N-key=[10] '34333039323331343236'
[143185.728632] EXT4-fs (sdc): mounted filesystem with ordered data mode. Opts: discard,errors=remount-ro,data=ordered
[143185.743548] FS-Cache: Duplicate cookie detected
[143185.743551] FS-Cache: O-cookie c=000000007cde7055 [p=00000000b229a3bf fl=222 nc=0 na=1]
[143185.743552] FS-Cache: O-cookie d=00000000edcd1005 n=00000000d8434e4f
[143185.743552] FS-Cache: O-key=[10] '34333039323535383439'
[143185.743555] FS-Cache: N-cookie c=000000007715f8c4 [p=00000000b229a3bf fl=2 nc=0 na=1]
[143185.743556] FS-Cache: N-cookie d=00000000edcd1005 n=0000000024c33a1d
[143185.743556] FS-Cache: N-key=[10] '34333039323535383439'
[147066.976928] hv_utils: TimeSync IC version 4.0
[154251.435802] hv_utils: TimeSync IC version 4.0
[196908.591661] hv_utils: TimeSync IC version 4.0
[201032.525087] hv_utils: TimeSync IC version 4.0
[213253.770253] hv_utils: TimeSync IC version 4.0
[223539.354245] hv_utils: TimeSync IC version 4.0
[228883.357907] hv_utils: TimeSync IC version 4.0
[248253.626232] hv_utils: TimeSync IC version 4.0
[253800.553722] hv_utils: TimeSync IC version 4.0
[262850.318119] hv_utils: TimeSync IC version 4.0
[270326.754068] hv_utils: TimeSync IC version 4.0
[280212.389173] hv_utils: TimeSync IC version 4.0
[281569.923583] init: (110) ERROR: LogException:33: TELEMETRY: (null) No such file or directory @d:\os\src\onecore\VM\linux\mountutil\mountutilcpp.h:19 (MountEnum)

[286101.650493] hv_utils: TimeSync IC version 4.0
[288247.362168] hv_utils: TimeSync IC version 4.0
[298912.708070] hv_utils: TimeSync IC version 4.0

$ pipetty make -C build | ansi2html | tee build.html

make: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[1]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[  3%] Built target libhamcore
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[  6%] Built target hamcorebuilder
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[  7%] Built target hamcore-archive-build
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
Scanning dependencies of target cedar
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[  7%] Building C object src/Cedar/CMakeFiles/cedar.dir/Account.c.o
[  8%] Building C object src/Cedar/CMakeFiles/cedar.dir/Admin.c.o
[  9%] Building C object src/Cedar/CMakeFiles/cedar.dir/AzureClient.c.o
[ 10%] Building C object src/Cedar/CMakeFiles/cedar.dir/AzureServer.c.o
[ 11%] Building C object src/Cedar/CMakeFiles/cedar.dir/Bridge.c.o
[ 12%] Building C object src/Cedar/CMakeFiles/cedar.dir/BridgeUnix.c.o
[ 12%] Building C object src/Cedar/CMakeFiles/cedar.dir/BridgeWin32.c.o
[ 13%] Building C object src/Cedar/CMakeFiles/cedar.dir/CM.c.o
[ 14%] Building C object src/Cedar/CMakeFiles/cedar.dir/Cedar.c.o
[ 15%] Building C object src/Cedar/CMakeFiles/cedar.dir/CedarPch.c.o
[ 16%] Building C object src/Cedar/CMakeFiles/cedar.dir/Client.c.o
[ 17%] Building C object src/Cedar/CMakeFiles/cedar.dir/Command.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CheckThread1’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:278:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  278 |   InputToNull((void *)check_thread_global_1);
      |               ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CheckMemory’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:568:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  568 |    InputToNull((void *)(UINT)(((UCHAR *)pp[i])[j] = j % 256));
      |                ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘StrToPortList’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7855:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 7855 |   if (IsInList(o, (void *)n))
      |                   ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7861:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 7861 |   Add(o, (void *)n);
      |          ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsClusterSettingMember’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:7938:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 7938 |    t.Ports[i] = (UINT)LIST_DATA(ports, i);
      |                 ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘CmdEvalHostAndPort’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8010:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 8010 |  ret = ParseHostPort(tmp, NULL, NULL, (UINT)param);
      |                                       ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsWgkEnum’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10676:26: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
10676 |    key = CopyStrToUni(wgk->Key);
      |                       ~~~^~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10677:26: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
10677 |    hub = CopyStrToUni(wgk->Hub);
      |                       ~~~^~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:10678:27: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
10678 |    user = CopyStrToUni(wgk->User);
      |                        ~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c: In function ‘PsPortsUDPSet’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Command.c:22757:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
22757 |    t.Ports[i] = (UINT)LIST_DATA(ports, i);
      |                 ^
[ 17%] Building C object src/Cedar/CMakeFiles/cedar.dir/Connection.c.o
[ 18%] Building C object src/Cedar/CMakeFiles/cedar.dir/Console.c.o
[ 19%] Building C object src/Cedar/CMakeFiles/cedar.dir/DDNS.c.o
[ 20%] Building C object src/Cedar/CMakeFiles/cedar.dir/Database.c.o
[ 21%] Building C object src/Cedar/CMakeFiles/cedar.dir/EM.c.o
[ 22%] Building C object src/Cedar/CMakeFiles/cedar.dir/EtherLog.c.o
[ 22%] Building C object src/Cedar/CMakeFiles/cedar.dir/Hub.c.o
[ 23%] Building C object src/Cedar/CMakeFiles/cedar.dir/IPC.c.o
[ 24%] Building C object src/Cedar/CMakeFiles/cedar.dir/Layer3.c.o
[ 25%] Building C object src/Cedar/CMakeFiles/cedar.dir/Link.c.o
[ 26%] Building C object src/Cedar/CMakeFiles/cedar.dir/Listener.c.o
[ 27%] Building C object src/Cedar/CMakeFiles/cedar.dir/Logging.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Logging.c: In function ‘PacketLogParseProc’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Logging.c:1576:32: warning: taking address of packed member of ‘struct PKT’ may result in an unaligned pointer value [-Waddress-of-packed-member]
 1576 |     ICMPV6_HEADER_INFO *icmp = &p->ICMPv6HeaderPacketInfo;
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
[ 28%] Building C object src/Cedar/CMakeFiles/cedar.dir/NM.c.o
[ 28%] Building C object src/Cedar/CMakeFiles/cedar.dir/Nat.c.o
[ 29%] Building C object src/Cedar/CMakeFiles/cedar.dir/NativeStack.c.o
[ 30%] Building C object src/Cedar/CMakeFiles/cedar.dir/NullLan.c.o
[ 31%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoLog’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:20:29: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   20 |   proto_name = CopyStrToUni(session->Impl->Name());
      |                             ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoContainerCompare’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:72:28: warning: passing argument 1 of ‘StrCmpi’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   72 |  return StrCmpi(container_1->Name, container_2->Name);
      |                 ~~~~~~~~~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:39:19: note: expected ‘char *’ but argument is of type ‘const char *’
   39 | int StrCmpi(char *str1, char *str2);
      |             ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:72:47: warning: passing argument 2 of ‘StrCmpi’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   72 |  return StrCmpi(container_1->Name, container_2->Name);
      |                                    ~~~~~~~~~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:39:31: note: expected ‘char *’ but argument is of type ‘const char *’
   39 | int StrCmpi(char *str1, char *str2);
      |                         ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoSessionNew’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:407:26: warning: passing argument 2 of ‘CopyIP’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  407 |  CopyIP(&session->SrcIp, src_ip);
      |                          ^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1266:26: note: expected ‘IP *’ but argument is of type ‘const IP *’
 1266 | void CopyIP(IP *dst, IP *src);
      |                      ~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:409:26: warning: passing argument 2 of ‘CopyIP’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  409 |  CopyIP(&session->DstIp, dst_ip);
      |                          ^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1266:26: note: expected ‘IP *’ but argument is of type ‘const IP *’
 1266 | void CopyIP(IP *dst, IP *src);
      |                      ~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoSetListenIP’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:458:38: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  458 |  Copy(&proto->UdpListener->ListenIP, ip, sizeof(proto->UdpListener->ListenIP));
      |                                      ^~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c: In function ‘ProtoHandleConnection’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:513:19: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  513 |     if (StrCmp(tmp->Name, protocol) == 0)
      |                ~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char * const’
   38 | int StrCmp(char *str1, char *str2);
      |            ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:513:27: warning: passing argument 2 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  513 |     if (StrCmp(tmp->Name, protocol) == 0)
      |                           ^~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:30: note: expected ‘char *’ but argument is of type ‘const char *’
   38 | int StrCmp(char *str1, char *str2);
      |                        ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:558:38: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  558 |   proto_name = CopyStrToUni(container->Name);
      |                             ~~~~~~~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char * const’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:651:38: warning: passing argument 1 of ‘CopyStrToUni’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  651 |   wchar_t *proto_name = CopyStrToUni(impl->Name());
      |                                      ^~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:249,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Internat.h:69:29: note: expected ‘char *’ but argument is of type ‘const char *’
   69 | wchar_t *CopyStrToUni(char *str);
      |                       ~~~~~~^~~
[ 32%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_EtherIP.c.o
[ 33%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IKE.c.o
[ 33%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IPsec.c.o
[ 34%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_IkePacket.c.o
[ 35%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_L2TP.c.o
[ 36%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_OpenVPN.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c: In function ‘OvsIsPacketForMe’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c:90:43: warning: passing argument 1 of ‘OvsParsePacket’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   90 |   OPENVPN_PACKET *packet = OvsParsePacket(data, size);
      |                                           ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Cedar/Cedar.h:1040,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:19,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_OpenVPN.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Cedar/Proto_OpenVPN.h:233:39: note: expected ‘UCHAR *’ {aka ‘unsigned char *’} but argument is of type ‘const void *’
  233 | OPENVPN_PACKET *OvsParsePacket(UCHAR *data, UINT size);
      |                                ~~~~~~~^~~~
[ 37%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_PPP.c.o
[ 38%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_SSTP.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c: In function ‘NewSstpServer’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:1013:55: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1013 |  StrCpy(s->ClientHostName, sizeof(s->ClientHostName), hostname);
      |                                                       ^~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’
   30 | UINT StrCpy(char *dst, UINT size, char *src);
      |                                   ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:1014:59: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1014 |  StrCpy(s->ClientCipherName, sizeof(s->ClientCipherName), cipher);
      |                                                           ^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_SSTP.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’
   30 | UINT StrCpy(char *dst, UINT size, char *src);
      |                                   ~~~~~~^~~
[ 38%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_Win7.c.o
[ 39%] Building C object src/Cedar/CMakeFiles/cedar.dir/Proto_WireGuard.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsOptionStringValue’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:46:13: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   46 |  if (StrCmp(name, "PresharedKey") == 0 || StrCmp(name, "PrivateKey") == 0)
      |             ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char *’
   38 | int StrCmp(char *str1, char *str2);
      |            ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:46:50: warning: passing argument 1 of ‘StrCmp’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   46 |  if (StrCmp(name, "PresharedKey") == 0 || StrCmp(name, "PrivateKey") == 0)
      |                                                  ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:38:18: note: expected ‘char *’ but argument is of type ‘const char *’
   38 | int StrCmp(char *str1, char *str2);
      |            ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsProcessDatagrams’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:238:28: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  238 |    Copy(&session->IPLocal, &packet->DstIP, sizeof(session->IPLocal));
      |                            ^~~~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:239:29: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  239 |    Copy(&session->IPRemote, &packet->SrcIP, sizeof(session->IPRemote));
      |                             ^~~~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const IP *’
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsDetectMessageType’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:402:27: warning: passing argument 1 of ‘IsZero’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  402 |  if (IsZero(packet->Header.Reserved, sizeof(packet->Header.Reserved)) == false)
      |             ~~~~~~~~~~~~~~^~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:344:19: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’}
  344 | bool IsZero(void *data, UINT size);
      |             ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsMSS’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:425:12: warning: passing argument 1 of ‘IsIP4’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  425 |  if (IsIP4(&session->IPRemote))
      |            ^~~~~~~~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:270,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Network.h:1268:16: note: expected ‘IP *’ but argument is of type ‘const IP *’
 1268 | bool IsIP4(IP *ip);
      |            ~~~~^~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsIPCNew’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:465:53: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  465 |  StrCpy(param.ClientName, sizeof(param.ClientName), WgsName());
      |                                                     ^~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’
   30 | UINT StrCpy(char *dst, UINT size, char *src);
      |                                   ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsCreateTransportData’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:824:32: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  824 |  Copy(ret->EncapsulatedPacket, data, size);
      |                                ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const void *’
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsEncryptData’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:929:42: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  929 |  Copy(iv + sizeof(iv) - sizeof(counter), &counter, sizeof(counter));
      |                                          ^~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const UINT64 *’ {aka ‘const long unsigned int *’}
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsDecryptData’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:947:42: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  947 |  Copy(iv + sizeof(iv) - sizeof(counter), &counter, sizeof(counter));
      |                                          ^~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const UINT64 *’ {aka ‘const long unsigned int *’}
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsEphemeral’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1000:22: warning: passing argument 2 of ‘Copy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1000 |  Copy(ephemeral_dst, ephemeral_src, WG_KEY_SIZE);
      |                      ^~~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:243,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Memory.h:182:28: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’}
  182 | void Copy(void *dst, void *src, UINT size);
      |                      ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c: In function ‘WgsHKDF’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1011:15: warning: passing argument 2 of ‘SetMdKey’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1011 |  SetMdKey(md, chaining_key, WG_HASH_SIZE);
      |               ^~~~~~~~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:252,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Encrypt.h:433:29: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’}
  433 | bool SetMdKey(MD *md, void *key, UINT key_size);
      |                       ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1014:24: warning: passing argument 3 of ‘MdProcess’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1014 |  MdProcess(md, secret, data, data_size);
      |                        ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:252,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Proto_WireGuard.c:1:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Encrypt.h:434:42: note: expected ‘void *’ but argument is of type ‘const BYTE *’ {aka ‘const unsigned char *’}
  434 | UINT MdProcess(MD *md, void *dest, void *src, UINT size);
      |                                    ~~~~~~^~~
[ 40%] Building C object src/Cedar/CMakeFiles/cedar.dir/Protocol.c.o
[ 41%] Building C object src/Cedar/CMakeFiles/cedar.dir/Radius.c.o
[ 42%] Building C object src/Cedar/CMakeFiles/cedar.dir/Remote.c.o
[ 43%] Building C object src/Cedar/CMakeFiles/cedar.dir/SM.c.o
[ 43%] Building C object src/Cedar/CMakeFiles/cedar.dir/SW.c.o
[ 44%] Building C object src/Cedar/CMakeFiles/cedar.dir/Sam.c.o
[ 45%] Building C object src/Cedar/CMakeFiles/cedar.dir/SeLowUser.c.o
[ 46%] Building C object src/Cedar/CMakeFiles/cedar.dir/SecureInfo.c.o
[ 47%] Building C object src/Cedar/CMakeFiles/cedar.dir/SecureNAT.c.o
[ 48%] Building C object src/Cedar/CMakeFiles/cedar.dir/Server.c.o
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiLoadConfigurationCfg’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:2751:35: warning: passing argument 2 of ‘CfgGetFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2751 |      FOLDER *f = CfgGetFolder(f9, name);
      |                                   ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:98:44: note: expected ‘char *’ but argument is of type ‘const char *’
   98 | FOLDER *CfgGetFolder(FOLDER *parent, char *name);
      |                                      ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:2755:42: warning: passing argument 3 of ‘StrCpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2755 |       StrCpy(wgk->Key, sizeof(wgk->Key), name);
      |                                          ^~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:246,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Str.h:30:41: note: expected ‘char *’ but argument is of type ‘const char *’
   30 | UINT StrCpy(char *dst, UINT size, char *src);
      |                                   ~~~~~~^~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiLoadProtoCfg’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:6342:41: warning: passing argument 2 of ‘CfgGetFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 6342 |   FOLDER *ff = CfgGetFolder(f, container->Name);
      |                                ~~~~~~~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:98:44: note: expected ‘char *’ but argument is of type ‘const char * const’
   98 | FOLDER *CfgGetFolder(FOLDER *parent, char *name);
      |                                      ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiWriteProtoCfg’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:6396:44: warning: passing argument 2 of ‘CfgCreateFolder’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 6396 |   FOLDER *ff = CfgCreateFolder(f, container->Name);
      |                                   ~~~~~~~~~^~~~~~
In file included from /home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Mayaqua.h:264,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/CedarPch.h:18,
                 from /home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:8:
/home/tomoyan/work/SoftEtherVPN/src/./Mayaqua/Cfg.h:84:47: note: expected ‘char *’ but argument is of type ‘const char * const’
   84 | FOLDER *CfgCreateFolder(FOLDER *parent, char *name);
      |                                         ~~~~~~^~~~
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c: In function ‘SiCalledDeleteIpTable’:
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:7697:28: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 7697 |   if (IsInList(h->IpTable, (void *)key))
      |                            ^
/home/tomoyan/work/SoftEtherVPN/src/Cedar/Server.c:7699:24: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 7699 |    IP_TABLE_ENTRY *e = (IP_TABLE_ENTRY *)key;
      |                        ^
[ 49%] Building C object src/Cedar/CMakeFiles/cedar.dir/Session.c.o
[ 49%] Building C object src/Cedar/CMakeFiles/cedar.dir/UT.c.o
[ 50%] Building C object src/Cedar/CMakeFiles/cedar.dir/UdpAccel.c.o
[ 51%] Building C object src/Cedar/CMakeFiles/cedar.dir/VG.c.o
[ 52%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLan.c.o
[ 53%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLanUnix.c.o
[ 54%] Building C object src/Cedar/CMakeFiles/cedar.dir/VLanWin32.c.o
[ 54%] Building C object src/Cedar/CMakeFiles/cedar.dir/Virtual.c.o
[ 55%] Building C object src/Cedar/CMakeFiles/cedar.dir/WaterMark.c.o
[ 56%] Building C object src/Cedar/CMakeFiles/cedar.dir/WebUI.c.o
[ 57%] Building C object src/Cedar/CMakeFiles/cedar.dir/WinUi.c.o
[ 58%] Building C object src/Cedar/CMakeFiles/cedar.dir/Wpc.c.o
[ 59%] Building C object src/Cedar/CMakeFiles/cedar.dir/__/__/3rdparty/BLAKE2/sse/blake2s.c.o
[ 59%] Linking C shared library ../../libcedar.so
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 59%] Built target cedar
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 70%] Built target cpu_features
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 89%] Built target mayaqua
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 91%] Built target list_cpu_features
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 92%] Linking C executable ../../vpnserver
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 93%] Built target vpnserver
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 93%] Linking C executable ../../vpnclient
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 94%] Built target vpnclient
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 95%] Linking C executable ../../vpnbridge
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 96%] Built target vpnbridge
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 97%] Linking C executable ../../vpncmd
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 98%] Built target vpncmd
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make[2]: Entering directory '/home/tomoyan/work/SoftEtherVPN/build'
[ 99%] Linking C executable ../../vpntest
make[2]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
[100%] Built target vpntest
make[1]: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'
make: Leaving directory '/home/tomoyan/work/SoftEtherVPN/build'

$ ls -al --color=always | ansi2html > fedora_ls-al.html

total 73540
drwx------  7 tomoyan tomoyan     4096  6月  4 13:44 .
drwxr-xr-x  3 root    root        4096  3月 14 15:05 ..
-rw-------  1 tomoyan tomoyan     7005  6月  1 06:59 .bash_history
-rw-r--r--  1 tomoyan tomoyan       18  7月 27  2020 .bash_logout
-rw-r--r--  1 tomoyan tomoyan      141  7月 27  2020 .bash_profile
-rw-r--r--  1 tomoyan tomoyan      376  7月 27  2020 .bashrc
drwxr-xr-x  3 tomoyan tomoyan     4096  6月  4 13:44 .cache
drwx------  3 tomoyan tomoyan     4096  3月 31 14:15 .config
-rw-r--r--  1 tomoyan tomoyan        0  6月  4 13:48 fedora_ls-al.html
drwxr-xr-x  7 tomoyan tomoyan     4096  3月 14 15:22 genie
drwxr-xr-x 12 tomoyan tomoyan     4096  3月 19 04:01 openlitespeed
-rw-r--r--  1 tomoyan tomoyan 75249876  3月 17 03:57 openlitespeed-1.7.9.tgz
drwxr-xr-x  5 tomoyan tomoyan     4096  6月  4 13:44 py39def

fedora_ls-al.html
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {background-color: black;}
pre {
	font-weight: normal;
	color: #bbb;
	white-space: -moz-pre-wrap;
	white-space: -o-pre-wrap;
	white-space: -pre-wrap;
	white-space: pre-wrap;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
b {font-weight: normal}
b.BOLD {color: #fff}
b.ITA {font-style: italic}
b.UND {text-decoration: underline}
b.STR {text-decoration: line-through}
b.UNDSTR {text-decoration: underline line-through}
b.BLK {color: #000000}
b.RED {color: #aa0000}
b.GRN {color: #00aa00}
b.YEL {color: #aa5500}
b.BLU {color: #0000aa}
b.MAG {color: #aa00aa}
b.CYN {color: #00aaaa}
b.WHI {color: #aaaaaa}
b.HIK {color: #555555}
b.HIR {color: #ff5555}
b.HIG {color: #55ff55}
b.HIY {color: #ffff55}
b.HIB {color: #5555ff}
b.HIM {color: #ff55ff}
b.HIC {color: #55ffff}
b.HIW {color: #ffffff}
b.BBLK {background-color: #000000}
b.BRED {background-color: #aa0000}
b.BGRN {background-color: #00aa00}
b.BYEL {background-color: #aa5500}
b.BBLU {background-color: #0000aa}
b.BMAG {background-color: #aa00aa}
b.BCYN {background-color: #00aaaa}
b.BWHI {background-color: #aaaaaa}
</style>
</head>
<spanody>
<pre>total 73540
drwx------  7 tomoyan tomoyan     4096  6月  4 13:44 <span class=HIB>.</span>
drwxr-xr-x  3 root    root        4096  3月 14 15:05 <span class=HIB>..</span>
-rw-------  1 tomoyan tomoyan     7005  6月  1 06:59 .bash_history
-rw-r--r--  1 tomoyan tomoyan       18  7月 27  2020 .bash_logout
-rw-r--r--  1 tomoyan tomoyan      141  7月 27  2020 .bash_profile
-rw-r--r--  1 tomoyan tomoyan      376  7月 27  2020 .bashrc
drwxr-xr-x  3 tomoyan tomoyan     4096  6月  4 13:44 <span class=HIB>.cache</span>
drwx------  3 tomoyan tomoyan     4096  3月 31 14:15 <span class=HIB>.config</span>
-rw-r--r--  1 tomoyan tomoyan        0  6月  4 13:48 fedora_ll.html
drwxr-xr-x  7 tomoyan tomoyan     4096  3月 14 15:22 <span class=HIB>genie</span>
drwxr-xr-x 12 tomoyan tomoyan     4096  3月 19 04:01 <span class=HIB>openlitespeed</span>
-rw-r--r--  1 tomoyan tomoyan 75249876  3月 17 03:57 <span class=HIR>openlitespeed-1.7.9.tgz</span>
drwxr-xr-x  5 tomoyan tomoyan     4096  6月  4 13:44 <span class=HIB>py39def</span>
</pre>
</body>
</html>

まずは、処理結果を普通にパイプするとエスケープカラーコードが失われるので、オプションに --color=always を指定してエスケープカラーコードが失われないようにする…🤔

$ ls -l --color=alway | cat

合計 12
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan    0  9月 18 15:34 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開

ls -l --color=always の処理結果を ansi2html にパイプで渡すと、HTML ファイルには書き込まれるが画面には何も出力されないので出力内容が確認できない😇

$ ls -l --color=alway | ansi2html > ls-l.html


tee コマンドは画面出力とファイル出力を行うので ansi2html の処理結果は画面で確認しつつファイル出力できるが…🤔
普通の出力結果で内容を確認したい😅

$ ls -l --color=always | ansi2html | tee ls-l.html

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {background-color: black;}
pre {
	font-weight: normal;
	color: #bbb;
	white-space: -moz-pre-wrap;
	white-space: -o-pre-wrap;
	white-space: -pre-wrap;
	white-space: pre-wrap;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
b {font-weight: normal}
b.BOLD {color: #fff}
b.ITA {font-style: italic}
b.UND {text-decoration: underline}
b.STR {text-decoration: line-through}
b.UNDSTR {text-decoration: underline line-through}
b.BLK {color: #000000}
b.RED {color: #aa0000}
b.GRN {color: #00aa00}
b.YEL {color: #aa5500}
b.BLU {color: #0000aa}
b.MAG {color: #aa00aa}
b.CYN {color: #00aaaa}
b.WHI {color: #aaaaaa}
b.HIK {color: #555555}
b.HIR {color: #ff5555}
b.HIG {color: #55ff55}
b.HIY {color: #ffff55}
b.HIB {color: #5555ff}
b.HIM {color: #ff55ff}
b.HIC {color: #55ffff}
b.HIW {color: #ffffff}
b.BBLK {background-color: #000000}
b.BRED {background-color: #aa0000}
b.BGRN {background-color: #00aa00}
b.BYEL {background-color: #aa5500}
b.BBLU {background-color: #0000aa}
b.BMAG {background-color: #aa00aa}
b.BCYN {background-color: #00aaaa}
b.BWHI {background-color: #aaaaaa}
</style>
</head>
<spanody>
<pre>合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  821 12:53 <span class=HIC>DataShare</span> -&gt; <span class="BLU BGRN">/var/samba/DataShare</span>
-rw-r--r--  1 tomoyan tomoyan 2645  918 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  818 14:32 <span class=HIG>exec_jupyterlab.sh</span>
-rw-r--r--  1 tomoyan tomoyan    0  918 16:23 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  918 15:19 <span class=HIB>my_projects</span>
drwxr-xr-x. 1 tomoyan tomoyan  198  917 14:05 <span class=HIB>pyJupyterLab</span>
drwxrwxr-x. 1 tomoyan tomoyan 1334  99 11:19 <span class=HIB>work</span>
drwxr-xr-x. 1 tomoyan tomoyan  644  910 11:32 <span class=HIB>ダウンロード</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>テンプレート</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>デスクトップ</span>
drwxr-xr-x. 1 tomoyan tomoyan   84  96 18:59 <span class=HIB>ドキュメント</span>
drwxr-xr-x. 1 tomoyan tomoyan   54  818 14:13 <span class=HIB>ビデオ</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>音楽</span>
drwxr-xr-x. 1 tomoyan tomoyan 3530  916 10:06 <span class=HIB>画像</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>公開</span>
</pre>
</body>
</html>

tee コマンドは標準出力と同時にファイル出力できる🤔
しかし、通常は標準出力はパイプで ansi2html コマンドに渡り、ファイル出力は画面では見られないので、結局そのままでは画面で処理内容を確認することは不可能です😢
ファイル出力を画面で確認できれば良いので、出力先を /dev/tty (現在の画面) に変更する…🤔 /dev/tty は画面をファイルとして扱える🤤
出力を二重化できるということは、標準出力をパイプして他の処理に吸い取られても、ファイル出力を現在の画面で確認できることを意味します🤔

$ ls -l --color=always | tee /dev/tty

合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rw-r--r--  1 tomoyan tomoyan 2645  9月 18 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan    0  9月 18 16:23 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開
合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rw-r--r--  1 tomoyan tomoyan 2645  9月 18 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan    0  9月 18 16:23 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開

stddata=$(ls -l --color=always | tee /dev/tty) を実行すると、標準出力を変数に格納しながら /dev/tty (現在の画面) で確認できる😍
そして、一旦変数に格納した標準出力の内容を echo "$stddata" | ansi2html > ls-l.htmlHTML ファイルへ出力します🤔
この方法で通常の画面出力で確認しながら、HTML ファイルへの出力も同時に行うことができる😻

$ stddata=$(ls -l --color=always | tee /dev/tty) && echo "$stddata" | ansi2html > ls-l.html

合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rw-r--r--  1 tomoyan tomoyan 2645  9月 18 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan    0  9月 18 16:23 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開

$ cat ls-l.html

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {background-color: black;}
pre {
	font-weight: normal;
	color: #bbb;
	white-space: -moz-pre-wrap;
	white-space: -o-pre-wrap;
	white-space: -pre-wrap;
	white-space: pre-wrap;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
b {font-weight: normal}
b.BOLD {color: #fff}
b.ITA {font-style: italic}
b.UND {text-decoration: underline}
b.STR {text-decoration: line-through}
b.UNDSTR {text-decoration: underline line-through}
b.BLK {color: #000000}
b.RED {color: #aa0000}
b.GRN {color: #00aa00}
b.YEL {color: #aa5500}
b.BLU {color: #0000aa}
b.MAG {color: #aa00aa}
b.CYN {color: #00aaaa}
b.WHI {color: #aaaaaa}
b.HIK {color: #555555}
b.HIR {color: #ff5555}
b.HIG {color: #55ff55}
b.HIY {color: #ffff55}
b.HIB {color: #5555ff}
b.HIM {color: #ff55ff}
b.HIC {color: #55ffff}
b.HIW {color: #ffffff}
b.BBLK {background-color: #000000}
b.BRED {background-color: #aa0000}
b.BGRN {background-color: #00aa00}
b.BYEL {background-color: #aa5500}
b.BBLU {background-color: #0000aa}
b.BMAG {background-color: #aa00aa}
b.BCYN {background-color: #00aaaa}
b.BWHI {background-color: #aaaaaa}
</style>
</head>
<spanody>
<pre>合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  821 12:53 <span class=HIC>DataShare</span> -&gt; <span class="BLU BGRN">/var/samba/DataShare</span>
-rw-r--r--  1 tomoyan tomoyan 2645  918 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  818 14:32 <span class=HIG>exec_jupyterlab.sh</span>
-rw-r--r--  1 tomoyan tomoyan    0  918 16:23 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  918 15:19 <span class=HIB>my_projects</span>
drwxr-xr-x. 1 tomoyan tomoyan  198  917 14:05 <span class=HIB>pyJupyterLab</span>
drwxrwxr-x. 1 tomoyan tomoyan 1334  99 11:19 <span class=HIB>work</span>
drwxr-xr-x. 1 tomoyan tomoyan  644  910 11:32 <span class=HIB>ダウンロード</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>テンプレート</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>デスクトップ</span>
drwxr-xr-x. 1 tomoyan tomoyan   84  96 18:59 <span class=HIB>ドキュメント</span>
drwxr-xr-x. 1 tomoyan tomoyan   54  818 14:13 <span class=HIB>ビデオ</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>音楽</span>
drwxr-xr-x. 1 tomoyan tomoyan 3530  916 10:06 <span class=HIB>画像</span>
drwxr-xr-x. 1 tomoyan tomoyan    0  818 08:54 <span class=HIB>公開</span>
</pre>
</body>
</html>

BOLD<b class=BOLD>BOLD</b>
ITA<b class=ITA>ITA</b>
UND<b class=UND>UND</b>
STR<b class=STR>STR</b>
UNDSTR<b class=UNDSTR>UNDSTR</b>
BLK<b class=BLK>BLK</b>
RED<b class=RED>RED</b>
GRN<b class=GRN>GRN</b>
YEL<b class=YEL>YEL</b>
BLU<b class=BLU>BLU</b>
custom
DiYE<b class=DiYE>DiYE</b>
BoHIK<b class=BoHIK>BoHIK</b>
MAG<b class=MAG>MAG</b>
CYN<b class=CYN>CYN</b>
WHI<b class=WHI>WHI</b>
HIK<b class=HIK>HIK</b>
HIR<b class=HIR>HIR</b>
HIG<b class=HIG>HIG</b>
HIY<b class=HIY>HIY</b>
HIB<b class=HIB>HIB</b>
HIM<b class=HIM>HIM</b>
HIC<b class=HIC>HIC</b>
HIW<b class=HIW>HIW</b>
BBLK<b class=BBLK>BBLK</b>
BRED<b class=BRED>BRED</b>
BGRN<b class=BGRN>BGRN</b>
BYEL<b class=BYEL>BYEL</b>
BBLU<b class=BBLU>BBLU</b>
BMAG<b class=BMAG>BMAG</b>
BCYN<b class=BCYN>BCYN</b>
BWHI<b class=BWHI>BWHI</b>


<b class=BSc>


<span class=BScBLU>


<b class=BScHGRY>


<b class=BScINDG>

※ ansi2html オリジナルカラーから当サイトテーマ用にアレンジしています🤔

<WRAP color_term>
<WRAP color_command><html><pre>
<b class=GRN>$</b> <b class=HIY>command</b> subcommand <b class=HIK>--options</b> <b class=DiYE>...</b>
</pre></html></WRAP>
 
<WRAP color_result><html><pre>
</pre></html></WRAP>
 
<WRAP color_result_long><html><pre>
</pre></html></WRAP>
 
<WRAP color_mincode><html><pre>
</pre></html></WRAP>
 
<WRAP color_mincode_long><html><pre>
</pre></html></WRAP>
</WRAP>

$ command subcommand --options ...


<WRAP color_term>
<WRAP color_command><html><pre>
(pyJupyterLab) <b class=GRN>$</b> <b class=HIY>pip</b> install jupyterlab-nvdashboard
</pre></html></WRAP>
 
<WRAP color_result><html><pre>
...
  Downloading https://www.piwheels.org/simple/bokeh/bokeh-2.4.3-py3-none-any.whl (18.5 MB)
     <b class=PipBAR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</b> <b class=GRN>18.5/18.5 MB</b> <b class=RED>130.2 kB/s</b> eta <b class=CYN>0:00:00</b>
</pre></html></WRAP>
</WRAP>

(pyJupyterLab) $ pip install jupyterlab-nvdashboard

...
  Downloading https://www.piwheels.org/simple/bokeh/bokeh-2.4.3-py3-none-any.whl (18.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.5/18.5 MB 130.2 kB/s eta 0:00:00

RedHat 系 Linux では bash の alias が以下のように登録されています。

$ alias

alias diff='diff --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'

通常の ls -l--color=auto と同じで、処理結果をパイプするとエスケープカラーコードが失われる🤔

$ ls -l | cat

合計 20
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rw-r--r--  1 tomoyan tomoyan 2645  9月 18 15:55 cat
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan 2341  9月 18 15:37 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開

--color=auto が指定されているとパイプやリダイレクト にエスケープカラーコードを出力しないので --color=always を指定し直す必要がある🤔
(alias が --color=auto である理由はパイプやリダイレクトで grep や sort されることを考慮していると思われる😅
man ls より

...
       --color[=WHEN]
              カラー出力をする。 WHEN には 'always' (デフォルト値)、 'never'、 'auto'  が指定でき
              る。詳細は下記を参照
...
       デフォルトまたは  --color=never  を指定した場合、ファイルの種類を判別するための カラー表示は無効となります。
       --color=auto を指定した場合、標準出力が端末に接続 されている場合のみカラーコードを出力します。LS_COLORS 環境
       変数によって動作 を設定できます。LS_COLORS を設定する場合は dircolors を使用してください。
...

--color=always を指定すると処理結果をパイプやリダイレクトしてもエスケープカラーコードが失われることはない😊

$ ls -l --color=always | cat

合計 16
lrwxrwxrwx  1 tomoyan tomoyan   20  8月 21 12:53 DataShare -> /var/samba/DataShare
-rwxrwxrwx. 1 tomoyan tomoyan   99  8月 18 14:32 exec_jupyterlab.sh
-rw-r--r--  1 tomoyan tomoyan 2341  9月 18 15:34 ls-l.html
drwxr-xr-x  1 tomoyan tomoyan  132  9月 18 15:19 my_projects
drwxr-xr-x. 1 tomoyan tomoyan  198  9月 17 14:05 pyJupyterLab
drwxrwxr-x. 1 tomoyan tomoyan 1334  9月  9 11:19 work
drwxr-xr-x. 1 tomoyan tomoyan  644  9月 10 11:32 ダウンロード
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 テンプレート
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 デスクトップ
drwxr-xr-x. 1 tomoyan tomoyan   84  9月  6 18:59 ドキュメント
drwxr-xr-x. 1 tomoyan tomoyan   54  8月 18 14:13 ビデオ
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 音楽
drwxr-xr-x. 1 tomoyan tomoyan 3530  9月 16 10:06 画像
drwxr-xr-x. 1 tomoyan tomoyan    0  8月 18 08:54 公開

  • linux/ansi2html.txt
  • 最終更新: 2023/09/09 15:38
  • by ともやん