[GH-ISSUE #195] PCSX2 Shared Object dependencies missing (libGLU.so.1 & libaio.so.1) #62

Closed
opened 2026-10-15 12:48:34 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @JesseAye on GitHub (Oct 28, 2024).
Original GitHub issue: https://github.com/games-on-whales/gow/issues/195

Headless host system running Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-124-generic x86_64)
Running Wolf stable using Docker Compose and Nvidia (Container Toolkit)
Opening Moonlight on an in-network client device, pairing, and successfully launching in to RetroArch
Required to run the following commands in order to utilize the Sony - PlayStation 2 (LRPS2) core:

apt update
apt install libglu1 libaio1t64 -y
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1

No matter how many times I download/install the Sony - PlayStation 2 (LRPS2) core, I can go to Load Core, select Sony - PlayStation 2 (LRPS2), and the current core indicator remains at No Core. Selecting other cores, such as Nintendo - Gamecube / Wii (Dolphin) and Sony - Playstation (PCSX ReARMed) successfully updates the current core indicator accordingly, and I am able to successfully launch corresponding items from my library. Attempting to launch items from my library after selecting Sony - PlayStation 2 (LRPS2) results in a brief black screen, then return to normal RetroArch UI with a popup error Failed to open libretro core. Enabling logging to file with Verbosity level set to 2 (Warning) results in the following output to file:

[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.19.1
[INFO] Built: 1730073227
[INFO] =================================================
[ERROR] Couldn't find any cloud sync driver named ""
[INFO] Available cloud sync drivers are:
[INFO]  webdav
[INFO]  null
[WARN] Going to default to first cloud sync driver...
[ERROR] [MIDI]: snd_seq_open failed with error -2.
[ERROR] [MIDI]: Initialization failed.
[ERROR] Failed to open libretro core: "/home/retro/.config/retroarch/cores/pcsx2_libretro.so"
[ERROR] Error(s): libGLU.so.1: cannot open shared object file: No such file or directory

Executing ldd ~/.config/retroarch/cores/pcsx2_libretro.so results in the following output:

root@b950fc78aa52:~# ldd ~/.config/retroarch/cores/pcsx2_libretro.so
        linux-vdso.so.1 (0x00007ffdce9f0000)
        libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1242bd7000)
        libGLU.so.1 => not found
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1242bd2000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1242bb6000)
        libaio.so.1 => not found
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1236183000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f123609a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1242b87000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1242b82000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1235e88000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1242c68000)
        libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1235dd0000)
        libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1242b4d000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1235c93000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1242b24000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1242b1e000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1242b16000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1242afe000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f1242aef000)

To fix the dependencies, the following 3 commands are ran:

apt update
apt install libglu1 libaio1t64
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1

Resulting in the following output:

root@b950fc78aa52:~# apt update
Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:2 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]                                                 
Get:3 https://ppa.launchpadcontent.net/libretro/stable/ubuntu noble InRelease [17.8 kB]                         
Get:4 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [13.7 kB]
Get:5 https://ppa.launchpadcontent.net/libretro/stable/ubuntu noble/main amd64 Packages [1723 B]      
Get:6 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [491 kB]
Get:7 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:8 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [543 kB]
Get:9 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [717 kB]
Get:10 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]    
Get:11 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB]        
Get:12 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB]
Get:13 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB]
Get:14 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB]
Get:15 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [491 kB]
Get:16 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [920 kB]
Get:17 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [761 kB]
Get:18 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [18.2 kB]
Get:19 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [11.8 kB]
Fetched 26.2 MB in 3s (8206 kB/s)                           
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
25 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@b950fc78aa52:~# apt install libglu1 libaio1t64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libglu1-mesa' instead of 'libglu1'
The following additional packages will be installed:
  libopengl0
The following NEW packages will be installed:
  libaio1t64 libglu1-mesa libopengl0
0 upgraded, 3 newly installed, 0 to remove and 25 not upgraded.
Need to get 192 kB of archives.
After this operation, 641 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 libaio1t64 amd64 0.3.113-6build1 [7180 B]
Get:2 http://archive.ubuntu.com/ubuntu noble/main amd64 libopengl0 amd64 1.7.0-1build1 [32.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu noble/main amd64 libglu1-mesa amd64 9.0.2-1.1build1 [152 kB]
Fetched 192 kB in 1s (270 kB/s)      
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libaio1t64:amd64.
(Reading database ... 35809 files and directories currently installed.)
Preparing to unpack .../libaio1t64_0.3.113-6build1_amd64.deb ...
Unpacking libaio1t64:amd64 (0.3.113-6build1) ...
Selecting previously unselected package libopengl0:amd64.
Preparing to unpack .../libopengl0_1.7.0-1build1_amd64.deb ...
Unpacking libopengl0:amd64 (1.7.0-1build1) ...
Selecting previously unselected package libglu1-mesa:amd64.
Preparing to unpack .../libglu1-mesa_9.0.2-1.1build1_amd64.deb ...
Unpacking libglu1-mesa:amd64 (9.0.2-1.1build1) ...
Setting up libopengl0:amd64 (1.7.0-1build1) ...
Setting up libaio1t64:amd64 (0.3.113-6build1) ...
Setting up libglu1-mesa:amd64 (9.0.2-1.1build1) ...
Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
root@b950fc78aa52:~# ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
root@b950fc78aa52:~# 

Rechecking the dependencies of the shared object file shows requirements are satisfied:

root@b950fc78aa52:~# ldd ~/.config/retroarch/cores/pcsx2_libretro.so
        linux-vdso.so.1 (0x00007ffcce172000)
        libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1cc700d000)
        libGLU.so.1 => /lib/x86_64-linux-gnu/libGLU.so.1 (0x00007f1cc6fb4000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1cc6faf000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1cc6f93000)
        libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007f1cc6f8e000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1cba583000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1cba49a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1cc6f5f000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1cc6f5a000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1cba288000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1cc709e000)
        libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1cba1d0000)
        libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1cc6f25000)
        libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007f1cc6efa000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1cba093000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1cc6ed1000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1cba08d000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1cba085000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1cba06f000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f1cba060000)

I am then immediately able to Load the LRPS2 core with it being updated in the current core indicator, and I am now able to launch corresponding items from my library.

Originally created by @JesseAye on GitHub (Oct 28, 2024). Original GitHub issue: https://github.com/games-on-whales/gow/issues/195 Headless host system running `Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-124-generic x86_64)` Running Wolf stable using Docker Compose and Nvidia (Container Toolkit) Opening Moonlight on an in-network client device, pairing, and successfully launching in to RetroArch Required to run the following commands in order to utilize the `Sony - PlayStation 2 (LRPS2)` core: ``` apt update apt install libglu1 libaio1t64 -y ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 ``` No matter how many times I download/install the `Sony - PlayStation 2 (LRPS2)` core, I can go to Load Core, select Sony - PlayStation 2 (LRPS2), and the current core indicator remains at No Core. Selecting other cores, such as `Nintendo - Gamecube / Wii (Dolphin)` and `Sony - Playstation (PCSX ReARMed)` successfully updates the current core indicator accordingly, and I am able to successfully launch corresponding items from my library. Attempting to launch items from my library after selecting Sony - PlayStation 2 (LRPS2) results in a brief black screen, then return to normal RetroArch UI with a popup error `Failed to open libretro core`. Enabling logging to file with Verbosity level set to 2 (Warning) results in the following output to file: ``` [INFO] === Build ======================================= [INFO] CPU Model Name: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 [INFO] Version: 1.19.1 [INFO] Built: 1730073227 [INFO] ================================================= [ERROR] Couldn't find any cloud sync driver named "" [INFO] Available cloud sync drivers are: [INFO] webdav [INFO] null [WARN] Going to default to first cloud sync driver... [ERROR] [MIDI]: snd_seq_open failed with error -2. [ERROR] [MIDI]: Initialization failed. [ERROR] Failed to open libretro core: "/home/retro/.config/retroarch/cores/pcsx2_libretro.so" [ERROR] Error(s): libGLU.so.1: cannot open shared object file: No such file or directory ``` Executing `ldd ~/.config/retroarch/cores/pcsx2_libretro.so` results in the following output: ``` root@b950fc78aa52:~# ldd ~/.config/retroarch/cores/pcsx2_libretro.so linux-vdso.so.1 (0x00007ffdce9f0000) libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1242bd7000) libGLU.so.1 => not found librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1242bd2000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1242bb6000) libaio.so.1 => not found libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1236183000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f123609a000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1242b87000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1242b82000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1235e88000) /lib64/ld-linux-x86-64.so.2 (0x00007f1242c68000) libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1235dd0000) libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1242b4d000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1235c93000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1242b24000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1242b1e000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1242b16000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1242afe000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f1242aef000) ``` To fix the dependencies, the following 3 commands are ran: ``` apt update apt install libglu1 libaio1t64 ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 ``` Resulting in the following output: ``` root@b950fc78aa52:~# apt update Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB] Get:2 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB] Get:3 https://ppa.launchpadcontent.net/libretro/stable/ubuntu noble InRelease [17.8 kB] Get:4 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [13.7 kB] Get:5 https://ppa.launchpadcontent.net/libretro/stable/ubuntu noble/main amd64 Packages [1723 B] Get:6 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [491 kB] Get:7 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Get:8 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [543 kB] Get:9 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [717 kB] Get:10 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] Get:11 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB] Get:12 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB] Get:13 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB] Get:14 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB] Get:15 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [491 kB] Get:16 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [920 kB] Get:17 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [761 kB] Get:18 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [18.2 kB] Get:19 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [11.8 kB] Fetched 26.2 MB in 3s (8206 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 25 packages can be upgraded. Run 'apt list --upgradable' to see them. ``` ``` root@b950fc78aa52:~# apt install libglu1 libaio1t64 Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'libglu1-mesa' instead of 'libglu1' The following additional packages will be installed: libopengl0 The following NEW packages will be installed: libaio1t64 libglu1-mesa libopengl0 0 upgraded, 3 newly installed, 0 to remove and 25 not upgraded. Need to get 192 kB of archives. After this operation, 641 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 libaio1t64 amd64 0.3.113-6build1 [7180 B] Get:2 http://archive.ubuntu.com/ubuntu noble/main amd64 libopengl0 amd64 1.7.0-1build1 [32.8 kB] Get:3 http://archive.ubuntu.com/ubuntu noble/main amd64 libglu1-mesa amd64 9.0.2-1.1build1 [152 kB] Fetched 192 kB in 1s (270 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libaio1t64:amd64. (Reading database ... 35809 files and directories currently installed.) Preparing to unpack .../libaio1t64_0.3.113-6build1_amd64.deb ... Unpacking libaio1t64:amd64 (0.3.113-6build1) ... Selecting previously unselected package libopengl0:amd64. Preparing to unpack .../libopengl0_1.7.0-1build1_amd64.deb ... Unpacking libopengl0:amd64 (1.7.0-1build1) ... Selecting previously unselected package libglu1-mesa:amd64. Preparing to unpack .../libglu1-mesa_9.0.2-1.1build1_amd64.deb ... Unpacking libglu1-mesa:amd64 (9.0.2-1.1build1) ... Setting up libopengl0:amd64 (1.7.0-1build1) ... Setting up libaio1t64:amd64 (0.3.113-6build1) ... Setting up libglu1-mesa:amd64 (9.0.2-1.1build1) ... Processing triggers for libc-bin (2.39-0ubuntu8.3) ... ``` ``` root@b950fc78aa52:~# ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 root@b950fc78aa52:~# ``` Rechecking the dependencies of the shared object file shows requirements are satisfied: ``` root@b950fc78aa52:~# ldd ~/.config/retroarch/cores/pcsx2_libretro.so linux-vdso.so.1 (0x00007ffcce172000) libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1cc700d000) libGLU.so.1 => /lib/x86_64-linux-gnu/libGLU.so.1 (0x00007f1cc6fb4000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1cc6faf000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1cc6f93000) libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007f1cc6f8e000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1cba583000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1cba49a000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1cc6f5f000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1cc6f5a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1cba288000) /lib64/ld-linux-x86-64.so.2 (0x00007f1cc709e000) libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1cba1d0000) libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1cc6f25000) libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007f1cc6efa000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1cba093000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1cc6ed1000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1cba08d000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1cba085000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1cba06f000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f1cba060000) ``` I am then immediately able to Load the LRPS2 core with it being updated in the current core indicator, and I am now able to launch corresponding items from my library.
Author
Owner

@ABeltramo commented on GitHub (Oct 28, 2024):

Thanks for the in-depth explanation, would you like to open up a PR in GOW to add these dependencies, here?

<!-- gh-comment-id:2442588006 --> @ABeltramo commented on GitHub (Oct 28, 2024): Thanks for the in-depth explanation, would you like to open up a PR in GOW to add these dependencies, [here](https://github.com/games-on-whales/gow/blob/06729508a85e8eb58ba811a2b023727e8d5bec30/images/retroarch/Dockerfile#L13)?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/gow#62
No description provided.