Comments (4)
Indeed it's strange, did you modify something on your host?
Could you do the following tests?
ls -la /etc/timezone
exegol info <container_name>
docker inspect <container_name or id>
Thank you!
from exegol.
I don't think I modified anything on my host
MacBook Pro ~ $ ls -la /etc/timezone
ls: /etc/timezone: No such file or directory
MacBook Pro ~ $ ls -la /etc/localtime
lrwxr-xr-x 1 root wheel 38 Jun 22 11:31 /etc/localtime -> /var/db/timezone/zoneinfo/Europe/Paris
I deleted the container featured in the traceback above. However, I had another container laying around with the same issue, so here it is.
MacBook Pro ~ $ exegol info -vvv htb-forest
[*] Exegol is currently in version v4.0.5b1
[D] Pip installation: Off 🪓
[D] Git source installation: On ✔
[D] Host OS: Mac
[D] Arch: arm64
[D] Docker desktop: On ✔
[D] Shell type: Mac
[D] Last update check: 12/09/2022
[+] Exegol thanks Capgemini for supporting the project (dev contributors) 🙏
[+] Interested in joining Capgemini? https://www.capgemini.com/fr-fr/carrieres/offres-emploi/
[V] Listing user configurations
🧠 User configurations
┌───────────────────────────────────────────────────────────────────┐
│ Private workspace: /Users/charlie/.exegol/workspaces │
│ Exegol resources: /Users/charlie/Projects/Exegol/exegol-resources │
│ My resources: /Users/charlie/.exegol/my-resources │
│ Auto-check updates: On ✔ │
│ Auto-remove images: On ✔ │
│ Auto-update fs: Off 🪓 │
└───────────────────────────────────────────────────────────────────┘
[V] Listing git repositories
[D] Loading git at /Users/charlie/Projects/Exegol
[D] Repo path: /Users/charlie/Projects/Exegol/.git
[D] Git repository successfully loaded
[D] Loading git at /Users/charlie/Projects/Exegol
[D] Repo path: /Users/charlie/Projects/Exegol/.git
[D] Git repository successfully loaded
[V] Git wrapper init submodules
[D] Git submodule repository detected
[D] Loading git at /Users/charlie/Projects/Exegol/exegol-docker-build
[D] Repo path: /Users/charlie/Projects/Exegol/.git/modules/sources
[D] Git repository successfully loaded
[D] Git submodule repository detected
[D] Loading git at /Users/charlie/Projects/Exegol/exegol-resources
[D] Repo path: /Users/charlie/Projects/Exegol/.git/modules/exegol-resources
[D] Git repository successfully loaded
[D] Fetch flags : 4
[D] Fetch note :
[D] Fetch old commit : None
[D] Fetch remote path : dev
[D] HEAD UP TO DATE flag detected
[D] Fetch flags : 4
[D] Fetch note :
[D] Fetch old commit : None
[D] Fetch remote path : dev
[D] HEAD UP TO DATE flag detected
[D] Fetch flags : 4
[D] Fetch note :
[D] Fetch old commit : None
[D] Fetch remote path : main
[D] HEAD UP TO DATE flag detected
🐙 Project modules
┌───────────┬──────────────────┬────────────────┐
│ Name │ Status │ Current branch │
├───────────┼──────────────────┼────────────────┤
│ Wrapper │ Update available │ dev │
│ Images │ Update available │ dev │
│ Resources │ Update available │ main │
└───────────┴──────────────────┴────────────────┘
[D] Attribute not found in parameters: multicontainertag
[D] == Loading container : exegol-htb-forest
[D] Parsing envs : DISPLAY=host.docker.internal:0
[D] Adding env DISPLAY=host.docker.internal:0
[D] Parsing envs : _JAVA_AWT_WM_NONREPARENTING=1
[D] Adding env _JAVA_AWT_WM_NONREPARENTING=1
[D] Parsing envs : QT_X11_NO_MITSHM=1
[D] Adding env QT_X11_NO_MITSHM=1
[D] Parsing envs : PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] Adding env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] Capabilities : ['NET_ADMIN']
[D] Load devices : ['/dev/net/tun:/dev/net/tun:rwm']
[D] Parsing mount : {'Type': 'bind', 'Source': '/Users/charlie/.exegol/workspaces/htb-forest', 'Destination': '/workspace', 'Mode': '',
'RW': True, 'Propagation': 'rprivate'}
[D] Loading workspace volume source : /Users/charlie/.exegol/workspaces/htb-forest
[D] Private workspace detected
[D] Parsing mount : {'Type': 'bind', 'Source': '/etc/localtime', 'Destination': '/etc/localtime', 'Mode': '', 'RW': False,
'Propagation': 'rprivate'}
[D] Parsing mount : {'Type': 'bind', 'Source': '/Users/charlie/.exegol/my-resources', 'Destination': '/my-resources', 'Mode': '', 'RW':
True, 'Propagation': 'rprivate'}
[D] Parsing mount : {'Type': 'bind', 'Source': '/Users/charlie/Projects/Exegol/exegol-resources', 'Destination': '/opt/resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] Parsing mount : {'Type': 'bind', 'Source': '/tmp/.X11-unix', 'Destination': '/tmp/.X11-unix', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] Parsing mount : {'Type': 'bind', 'Source': '/Users/charlie/Downloads/lab_Shutdown.ovpn', 'Destination': '/vpn/config/client.ovpn',
'Mode': '', 'RW': False, 'Propagation': 'rprivate'}
[D] Loading VPN config: lab_Shutdown.ovpn
[D] Try to retrieve image version from labels
[D] └── local → (local) N/A
⭐ Container summary
┌──────────────────┬───────────────────────────────────────────────────────────────────────────┐
│ Name │ htb-forest │
│ Image │ local - v.local (Local image) │
├──────────────────┼───────────────────────────────────────────────────────────────────────────┤
│ GUI │ On ✔ │
│ Network │ bridge with VPN │
│ Timezone │ On ✔ │
│ Exegol resources │ On ✔ (/opt/resources) │
│ My resources │ On ✔ (/my-resources) │
│ Shell logging │ Off 🪓 │
│ VPN │ lab_Shutdown.ovpn │
│ Privileged │ Off ✔ │
│ Capabilities │ NET_ADMIN │
│ Workspace │ Dedicated (/workspace) │
│ Devices │ /dev/net/tun:/dev/net/tun:rwm │
│ Envs │ DISPLAY=host.docker.internal:0 │
│ │ _JAVA_AWT_WM_NONREPARENTING=1 │
│ │ QT_X11_NO_MITSHM=1 │
│ │ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin │
│ Volumes │ /Users/charlie/.exegol/workspaces/htb-forest ➡ /workspace │
│ │ /etc/localtime ➡ /etc/localtime (RO) │
│ │ /Users/charlie/.exegol/my-resources ➡ /my-resources │
│ │ /Users/charlie/Projects/Exegol/exegol-resources ➡ /opt/resources │
│ │ /tmp/.X11-unix ➡ /tmp/.X11-unix │
│ │ /Users/charlie/Downloads/lab_Shutdown.ovpn ➡ /vpn/config/client.ovpn (RO) │
│ Systctls │ net.ipv6.conf.all.disable_ipv6 = 0 │
└──────────────────┴───────────────────────────────────────────────────────────────────────────┘
MacBook Pro ~ $ docker inspect exegol-htb-forest
[
{
"Id": "8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee",
"Created": "2022-06-21T13:50:01.060898087Z",
"Path": "bash",
"Args": [
"-c",
"cd /vpn/config; openvpn --config /vpn/config/client.ovpn | tee /var/log/vpn.log; bash"
],
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 255,
"Error": "",
"StartedAt": "2022-06-21T18:17:00.181699213Z",
"FinishedAt": "2022-06-22T09:31:51.869414875Z"
},
"Image": "sha256:03ef9d8db3e8f24ece4c1106e84a672e7860869e24eb7b95675be9bff121d5dd",
"ResolvConfPath": "/var/lib/docker/containers/8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee/hostname",
"HostsPath": "/var/lib/docker/containers/8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee/hosts",
"LogPath": "/var/lib/docker/containers/8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee/8e78a51712a1da09eeb498d8adb43476eb4b0da272b84fb0e9acdd75fbf296ee-json.log",
"Name": "/exegol-htb-forest",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "bridge",
"PortBindings": null,
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": [
"NET_ADMIN"
],
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Sysctls": {
"net.ipv6.conf.all.disable_ipv6": "0"
},
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [
{
"PathOnHost": "/dev/net/tun",
"PathInContainer": "/dev/net/tun",
"CgroupPermissions": "rwm"
}
],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/.X11-unix",
"Target": "/tmp/.X11-unix"
},
{
"Type": "bind",
"Source": "/etc/localtime",
"Target": "/etc/localtime",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/Users/charlie/.exegol/my-resources",
"Target": "/my-resources"
},
{
"Type": "bind",
"Source": "/Users/charlie/Projects/Exegol/exegol-resources",
"Target": "/opt/resources"
},
{
"Type": "bind",
"Source": "/Users/charlie/Downloads/lab_Shutdown.ovpn",
"Target": "/vpn/config/client.ovpn",
"ReadOnly": true
},
{
"Type": "bind",
"Source": "/Users/charlie/.exegol/workspaces/htb-forest",
"Target": "/workspace"
}
],
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/eb03bc9d5de499e56042cb8e92b54bc67e7fe39de0c2b392b6ea1459c668f9cc-init/diff:/var/lib/docker/overlay2/a84699789ac3baa877c4e5e698eead0b6a94a5d706b77c375218ad56d4953d77/diff:/var/lib/docker/overlay2/cf49047d5ad00422b14dc900ac4e6985afe2bc652daf4bff8843f4310e74e916/diff:/var/lib/docker/overlay2/d86620f9e0b88d110e4a0b83b999f3226c4ec52f0244a8e269c593b84433b736/diff:/var/lib/docker/overlay2/d7cad6bba1be468d5aea25d545e0155eb7d8a38fac36cbe9dbf99fc72d65a61b/diff:/var/lib/docker/overlay2/b564cee377ab67208b503715289d9bd05154cbfef2c56ea9098550bad49cc323/diff:/var/lib/docker/overlay2/7f93be582dc4ee5312527e03073f1854485a8738dc14cd288189d411e70606dc/diff:/var/lib/docker/overlay2/e842c9279b24c02c69bbeb94e1a52ae875756675e16fe03b154aee8cce2b0bf6/diff:/var/lib/docker/overlay2/c4f978768d0dde55a945bce648370448c121d26b481b1b0ef88573dc3690cdc6/diff:/var/lib/docker/overlay2/6f0c42480dff9e30c5eacb308e62c08cfbed59f74d59960694122baf1de19319/diff:/var/lib/docker/overlay2/fe58721c2bc4c93d04d5e8e3b6c89a39666e248cd57f2b8caf11709cb02cd287/diff:/var/lib/docker/overlay2/d8e911c2747169d828e88abddeabc50c7d5f409b609f1356d13faf6837a944cb/diff:/var/lib/docker/overlay2/81d5a8b9dd903fc872c62b4b6b9d2ff1f6b99d5c3abdf3947bf6448c2104fdc4/diff:/var/lib/docker/overlay2/4a91db227070c348e1bd657c40b8b422a985edf37d14236717c39698baf6754a/diff:/var/lib/docker/overlay2/caa2791cea0d4cbc7df9b4783c13c2d2aa096502f7f50ff63e6850a7f723445e/diff:/var/lib/docker/overlay2/1186bacdfb1922232a03944b0dc9df5ba0675e702539d4a23c503055b1364675/diff:/var/lib/docker/overlay2/ef1a1b4306d289c3724c0d3dcab3c3dd604f15a7359674f4bc58cff6fd17c952/diff:/var/lib/docker/overlay2/cfa5bc12618374428589c26d113cdd216d2d0c586f1e13a373fa2922d2260e03/diff:/var/lib/docker/overlay2/9ae60df23848682773ea392286373ca7ba393df1e0e6c050feff683e2b6d7ab6/diff:/var/lib/docker/overlay2/af5e07ba29b6769b7f959cd0290de97aa57f1ed152fbad593af43791e0148864/diff:/var/lib/docker/overlay2/bd61af81ac350f1b567a046d0f8904e45a9e62a80dc8876118489cd916180f74/diff:/var/lib/docker/overlay2/1b93e5dacd54e5f7243dae23f6a276e18f7e126c10596685e83aff9b93d89ae9/diff:/var/lib/docker/overlay2/e041c62948fd1a42d529ba0f899b8d0984c957cf1297b5713035d8725eeae944/diff:/var/lib/docker/overlay2/af02f2c4f1f8928206561463f318abac5b644cf3a2efd737eb6798af4866fe91/diff:/var/lib/docker/overlay2/f918f20ea6126bdaed3e1edf08068203f585cc6795e2a0e568cd769820a381e3/diff:/var/lib/docker/overlay2/2625fea8ee2be6599d8ee6490582f268a188fa63fb1ae7bdd0d31d113561b213/diff:/var/lib/docker/overlay2/24e4c6246d6fff84906a134c9390b44d91930cfc3532c8fc17eee14ea1ce1c39/diff:/var/lib/docker/overlay2/7971a984c344820c508bb1bc0359a767edd55e58b1cdff7da83e935f58946276/diff",
"MergedDir": "/var/lib/docker/overlay2/eb03bc9d5de499e56042cb8e92b54bc67e7fe39de0c2b392b6ea1459c668f9cc/merged",
"UpperDir": "/var/lib/docker/overlay2/eb03bc9d5de499e56042cb8e92b54bc67e7fe39de0c2b392b6ea1459c668f9cc/diff",
"WorkDir": "/var/lib/docker/overlay2/eb03bc9d5de499e56042cb8e92b54bc67e7fe39de0c2b392b6ea1459c668f9cc/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/etc/localtime",
"Destination": "/etc/localtime",
"Mode": "",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Users/charlie/.exegol/my-resources",
"Destination": "/my-resources",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Users/charlie/Projects/Exegol/exegol-resources",
"Destination": "/opt/resources",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/tmp/.X11-unix",
"Destination": "/tmp/.X11-unix",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Users/charlie/Downloads/lab_Shutdown.ovpn",
"Destination": "/vpn/config/client.ovpn",
"Mode": "",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/Users/charlie/.exegol/workspaces/htb-forest",
"Destination": "/workspace",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "exegol-htb-forest",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": true,
"OpenStdin": true,
"StdinOnce": false,
"Env": [
"DISPLAY=host.docker.internal:0",
"_JAVA_AWT_WM_NONREPARENTING=1",
"QT_X11_NO_MITSHM=1",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"bash",
"-c",
"cd /vpn/config; openvpn --config /vpn/config/client.ovpn | tee /var/log/vpn.log; bash"
],
"Image": "nwodtuhs/exegol:local",
"Volumes": null,
"WorkingDir": "/workspace",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.exegol.app": "Exegol",
"org.exegol.build_date": "2022-05-29T20:28:35Z",
"org.exegol.src_repository": "https://github.com/ShutdownRepo/Exegol-images",
"org.exegol.tag": "arm64",
"org.exegol.version": "local"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9a4687d332daf71536e6721377ee9d563dc93b7e27d17d6aefb97c716f62083e",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/9a4687d332da",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "82601e4f35a06a113e74e26107db81c886bc9e05a58e3e7d02fe539f2b10e2ac",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "f604b27308c84d73bf4d01ace80b846147dea78641bdf748e9e85bbaa0d4dcfb",
"EndpointID": "82601e4f35a06a113e74e26107db81c886bc9e05a58e3e7d02fe539f2b10e2ac",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
}
}
]
from exegol.
It seems that your tzdata
(or equivalent) package has been updated since the creation of your container, leading to the modification of your /etc/localtime
file
The strange behavior is that /etc/localtime
is a symlink to /var/db/timezone/zoneinfo/Europe/Paris
and after the update the container seems to have kept the file previously targeted: /var/db/timezone/tz/2022a.1.0/zoneinfo/Europe/Paris
I don't know why docker desktop solved the symlink when creating the container..
If the need is blocking, just create a new symlink with the previous path to /etc/localtime
otherwise recreating the container is the best option.
It remains to be seen if this behavior occurs at each update of the package or if it was a unique change.
from exegol.
After investigation it is a behavior of docker desktop that does not correctly handle volumes that rely on symlink.
This bug should be reported to docker.
from exegol.
Related Issues (20)
- [BUG] update message incomplete HOT 1
- sub-modules of `exegol-resources` are missing HOT 5
- Installed image are not correctly reported with podman HOT 6
- [BUG] Desktop (beta) on a missing network interface leads to stacktrace on all wrapper commands HOT 4
- [BUG] Error with X11 folder bindind HOT 7
- Request to add a --run-script option for post install setup HOT 2
- WSL2 "Exec format error" when running 'cmd.exe' HOT 13
- Honour trusted certificates of host HOT 4
- [ERROR] The xhost command is not available on your host and can't access containers from previous install HOT 4
- Docker-desktop auth error HOT 3
- Can not setup workspace in mounted directory HOT 31
- TypeError on Custom network mode VPN HOT 1
- Incorrect port syntax : using vpn HOT 4
- Exegol routed through tor ? HOT 2
- xhost: unable to open display ":0" HOT 9
- Upgrade of Wrapper v4.3.1 -> v4.3.2 on MacOS occurs a CRITICAL ERROR HOT 3
- Error while exegol update execution HOT 4
- Unable to install images due to docker disk space error HOT 2
- [Feature] - Log session
- Remote Desktop feature dont work HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from exegol.