Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
ff58078
Welcome LMS 9.1.0!
michaelherger Nov 29, 2024
d736d89
Remove some more legacy, update another icon.
michaelherger Nov 30, 2024
e23f440
Merge branch 'public/9.0' into public/9.1
michaelherger Nov 30, 2024
f52abb0
Update README.md to reflect the name change in Docker Hub container
Nov 30, 2024
58f3efc
Merge pull request #1233 from terual/patch-2
michaelherger Nov 30, 2024
72d2bb2
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 1, 2024
5adb14a
Make Docker a first class citizen: move the `Custom.pm` from the `sli…
michaelherger Dec 2, 2024
332b5f1
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 3, 2024
30e02b6
Drop `images` and `videos` table. We no longer use them.
michaelherger Dec 3, 2024
19f1022
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 3, 2024
7d45e91
Fix triggering nightly builds.
michaelherger Dec 4, 2024
d2b6ca3
Add lib Protocol-WebSocket
expectingtofly Dec 4, 2024
d872ae3
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 4, 2024
0e6b212
Remove Windows 32-bit related and other legacy code.
michaelherger Nov 15, 2024
f92381b
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 5, 2024
c8d4ad7
Changelog update.
michaelherger Dec 6, 2024
f943e34
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 6, 2024
98d3fd2
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 7, 2024
541c8e5
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 9, 2024
21b38f2
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 9, 2024
7ac7139
Simplify build checker: don't run builds in parallel, but check multi…
michaelherger Dec 9, 2024
7b6065e
expectingtofly Dec 9, 2024
c6c6b4d
expectingtofly Dec 9, 2024
8a836b8
expectingtofly Dec 9, 2024
4ff3804
Merge branch 'LMS-Community:public/9.1' into WebSockets
expectingtofly Dec 9, 2024
6088d6d
expectingtofly Dec 9, 2024
cb6f5c1
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 9, 2024
2e5b6fc
JS uses `break` to exit a loop, not `last`...
michaelherger Dec 10, 2024
598aec6
Oh, and fix bash/Perl style comment in JS block of workflow...
michaelherger Dec 10, 2024
9c8211f
Use the raw Github link to the server repo file, as the web service w…
michaelherger Dec 10, 2024
5ab0b9a
Add more logging to the cron job. The raw GH download isn't parsed to…
michaelherger Dec 10, 2024
7e33b05
expectingtofly Dec 10, 2024
5bbea12
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 10, 2024
112373d
expectingtofly Dec 10, 2024
441b023
Merge branch 'LMS-Community:public/9.1' into WebSockets
expectingtofly Dec 10, 2024
cb30012
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 10, 2024
0cb42e8
expectingtofly Dec 10, 2024
3322d42
expectingtofly Dec 10, 2024
e567356
string fixes for work-genre prefs
darrell-k Dec 11, 2024
5c5b0b3
Merge pull request #1246 from darrell-k/work-genre-string-fixes
michaelherger Dec 11, 2024
67c287d
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 11, 2024
b1b2932
expectingtofly Dec 11, 2024
52cbcd2
expectingtofly Dec 11, 2024
4066604
Merge branch 'LMS-Community:public/9.1' into WebSockets
expectingtofly Dec 11, 2024
3400b9b
Merge remote-tracking branch 'expectingtofly/WebSockets' into WebSockets
expectingtofly Dec 11, 2024
5a46d7a
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 11, 2024
5314644
Moved Protocol::WebSocket to CPAN
expectingtofly Dec 12, 2024
e17bce7
Fix typo!
expectingtofly Dec 12, 2024
a0bfbfa
Renamed to SimpleWS and fixed example formatting
expectingtofly Dec 12, 2024
51fc2f9
Updated changelog
expectingtofly Dec 12, 2024
940e5c3
More appropriate logging description.
expectingtofly Dec 12, 2024
9533f8d
Correctly format logging description
expectingtofly Dec 12, 2024
3e45292
Merge pull request #1245 from expectingtofly/WebSockets
michaelherger Dec 13, 2024
6307ab5
Remove "async" from the WS logging options.
michaelherger Dec 13, 2024
ecd9460
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 13, 2024
8ab732c
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 14, 2024
6ef5795
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 14, 2024
39d8337
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 14, 2024
8d3161d
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 15, 2024
a0ca976
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 15, 2024
514ad3b
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 16, 2024
26231a5
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 18, 2024
120d451
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 18, 2024
75720b6
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 18, 2024
5d6692b
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 20, 2024
579e0b4
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 20, 2024
6d23ad3
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 21, 2024
5ef5599
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 21, 2024
3654af4
More cleanup of defunct picture/video scanning. The removed `images` …
michaelherger Dec 23, 2024
12a81f4
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 23, 2024
f8030f7
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 27, 2024
52df4a4
Use `Lyrion` as standard data path, not `Squeezebox`
michaelherger Dec 27, 2024
822daac
Changelog update
michaelherger Dec 27, 2024
3252eb5
Add missing changelog entry.
michaelherger Dec 28, 2024
e74bbcb
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 28, 2024
ec9bae2
Another changelog update...
michaelherger Dec 30, 2024
afec6b4
Merge branch 'public/9.0' into public/9.1
michaelherger Dec 30, 2024
5eaca15
Use a docker container's hostname as the library name - if it isn't a…
michaelherger Jan 1, 2025
68c1ef5
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 1, 2025
45903bd
Remove code dealing with Perl versions older than 5.10.
michaelherger Jan 1, 2025
1bbb4f4
Fixes to RE
mikecappella Jan 2, 2025
e30d010
Create .gitignore
mikecappella Jan 2, 2025
65b4561
Fix RE
mikecappella Jan 2, 2025
58d4847
Merge branch 'public/9.1' of https://github.com/mikecappella/slimserv…
mikecappella Jan 2, 2025
4762d10
remove .SkinManager.pm.swp
mikecappella Jan 2, 2025
9a214c4
remove .gitignore
mikecappella Jan 2, 2025
e688d25
Merge pull request #1276 from mikecappella/public/9.1
michaelherger Jan 2, 2025
399a895
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 3, 2025
81e516f
Incorrect logger being used
mikecappella Jan 3, 2025
564997b
Merge branch 'public/9.1' of github.com:mikecappella/slimserver into …
mikecappella Jan 4, 2025
a5b0ade
Merge pull request #1279 from mikecappella/public/9.1
michaelherger Jan 4, 2025
0851c16
We don't have `Slim::Utils::Network` initialized in the scanner. Don'…
michaelherger Jan 4, 2025
2c2bfe7
Persist update URL in prefs. This allows helpers to still get the upd…
michaelherger Jan 4, 2025
5db6b53
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 4, 2025
54dd7fb
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 5, 2025
c2cca14
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 7, 2025
f1c5c4c
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 7, 2025
d1ddfa3
Squeezebox.pm: fix method name for spdr protocol handler
sodface Jan 9, 2025
985354c
Fix #1288 Update `Carp::Assert` to latest v0.22
michaelherger Jan 9, 2025
339f8f5
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 9, 2025
d2c6ae7
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 9, 2025
b356791
Merge pull request #1287 from sodface/spdr-fix
michaelherger Jan 9, 2025
acd4db6
Changelog Update
michaelherger Jan 9, 2025
8ab3e5f
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 10, 2025
1be1948
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 11, 2025
7e369f8
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 13, 2025
cb5b8e4
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 13, 2025
ca548ee
Invalidate cached XML browser sub-feeds on quantity mismatch
maniac103 Jan 16, 2025
2e6c3db
Add SqueezeClient to list of clients supporting web links
maniac103 Jan 16, 2025
e251e67
Merge pull request #1301 from maniac103/weblink-ua
michaelherger Jan 16, 2025
6d93e51
Merge pull request #1300 from maniac103/xmlbrowser-cache-fix
michaelherger Jan 16, 2025
6dc2b5e
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 16, 2025
a2630ee
Upgrade `DBD::SQLite` to v1.75 for Perl 5.34
michaelherger Jan 20, 2025
ba0efae
Upgrade `DBD::SQLite` to v1.75 for Perl 5.32 (Linux x86_64, aarch64, …
michaelherger Jan 20, 2025
b96fe9c
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 20, 2025
636002d
Upgrade `DBD::SQLite` to v1.75 for Perl 5.36/5.38 (Linux x86_64, aarc…
michaelherger Jan 20, 2025
0f6000a
Merge branch 'sqlite' into public/9.1
michaelherger Jan 20, 2025
ef5b77d
Add signature to new `DBD::SQLite` binary for Mac
michaelherger Jan 21, 2025
00811bb
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 22, 2025
038684e
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 23, 2025
91e5719
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 23, 2025
c41b8ea
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 24, 2025
f3b965e
Remove some more MySB legacy: unused prefs, and an error handler whic…
michaelherger Jan 24, 2025
bdd7f7c
multiple tags
stavros-k Jan 29, 2025
6396cf0
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 30, 2025
3b39fa1
use full version on the tag
stavros-k Jan 30, 2025
677c372
undo extra tag for rc
stavros-k Jan 30, 2025
a910a27
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 31, 2025
4a99eaf
Merge branch 'public/9.0' into public/9.1
michaelherger Jan 31, 2025
5fa397d
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 1, 2025
481cf5c
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 2, 2025
d1f5210
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 4, 2025
2c8f7a6
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 4, 2025
ab195f6
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 8, 2025
829f125
Merge pull request #1312 from stavros-k/docker-tags
michaelherger Feb 8, 2025
ddc8c16
Changelog update
michaelherger Feb 8, 2025
1fe86f4
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 13, 2025
414b236
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 13, 2025
cc01829
Improve support for 3rd party player icons.
michaelherger Feb 19, 2025
03f82fb
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 19, 2025
7a60504
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 19, 2025
ca1256a
Update issue templates
michaelherger Feb 21, 2025
2dd7da2
add a note about the forum to the template selector
michaelherger Feb 21, 2025
bb1bd93
Tweak forum hint
michaelherger Feb 21, 2025
970c887
More tweaks to the bug report template
michaelherger Feb 21, 2025
3c93780
Prevent attempt to close invalid socket
SamInPgh Feb 21, 2025
fa697b5
Merge pull request #1335 from SamInPgh/public/9.0
michaelherger Feb 22, 2025
ec672de
Allow `GET`ting the `jsonrpc.js` handler with a `request` parameter
michaelherger Feb 22, 2025
a3a73c8
Add 'hasDigitalOut' to status query.
SamInPgh Feb 23, 2025
9c35732
Merge pull request #1336 from SamInPgh/public/9.0
michaelherger Feb 24, 2025
9054cce
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 24, 2025
b60c7fc
Merge branch 'public/9.0' into public/9.1
michaelherger Feb 27, 2025
9391fb9
Clean up Analytics information gathering
michaelherger Feb 28, 2025
dc10f66
Somewhat randomize the order in which we run builds on a schedule.
michaelherger Feb 28, 2025
99db6a9
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 5, 2025
57bd80e
Add an artist image scanner and web handler
michaelherger Mar 1, 2025
8300aea
Add method to register additional artwork folders
michaelherger Mar 3, 2025
cb6ca8f
Need to expose new columns in artist objects.
michaelherger Mar 4, 2025
510c9b9
Add portrait support to `status` and `albums` requests
michaelherger Mar 6, 2025
1112bc0
Don't try to look up an artist picture if we miss their ID.
michaelherger Mar 6, 2025
b6ef19e
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 6, 2025
2350567
Changelog update
michaelherger Mar 6, 2025
99cf77f
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 7, 2025
66ac2dd
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 9, 2025
be3d3c4
Merge branch 'public/9.1' into artist-artwork
michaelherger Mar 9, 2025
84b5eb9
Add helper method to parse dates into years in the various file formats.
michaelherger Mar 10, 2025
7550483
Remove MySQL support
michaelherger Mar 10, 2025
fee22c5
Parse CUE file dates down to just the year
jbylsma Mar 9, 2025
dc52f9a
Merge pull request #1347 from jbylsma/feature/cueYearParsing
michaelherger Mar 11, 2025
80ea4a8
Merge branch 'artist-artwork' into public/9.1
michaelherger Mar 12, 2025
e7bebde
Add a few missing pieces for the artist pictures
michaelherger Mar 12, 2025
f6522ec
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 13, 2025
6f054df
Add more info to artist picture lookup
michaelherger Mar 15, 2025
9d6a0cb
Tag release builds
michaelherger Mar 15, 2025
4d6c696
Remove the `test` prefix from the release tag name
michaelherger Mar 15, 2025
16af04a
Fix typo
michaelherger Mar 15, 2025
e271eb7
French translation update
Franck-Berry Mar 16, 2025
06a4588
Merge pull request #1352 from Franck-Berry/public/9.1
michaelherger Mar 16, 2025
814223a
Some tweaks to the artist picture lookup
michaelherger Mar 18, 2025
179716b
Add support for building pCP's .tcz file
michaelherger Mar 19, 2025
5ab9266
No need for dev tools when building for pCP
michaelherger Mar 19, 2025
939313b
Verify checksum (if provided) of downloaded LMS installers.
michaelherger Mar 20, 2025
fd86869
Use ORIGINALDATE tag with Flac
jbylsma Mar 21, 2025
a506363
Merge pull request #1356 from jbylsma/feature/flac-originaldate
michaelherger Mar 21, 2025
c8191b7
Update ConnectionManager.pm to add checks for Wav and Opus
BoringName15 Mar 22, 2025
f1d3df4
Merge pull request #1359 from BoringName15/Add-checks-for-Wav-and-Opus
michaelherger Mar 23, 2025
f22f331
Changelog update and minor cleanup
michaelherger Mar 23, 2025
d0fd674
Merge branch 'public/9.0' into public/9.1
michaelherger Mar 23, 2025
b0aa22c
Store the md5 hash to disk if update download succeeded.
michaelherger Mar 23, 2025
c686bfd
Update AVTransport.pm to move LMS event registration
BoringName15 Mar 25, 2025
b74dadc
Store item context in player queue playlist
darrell-k Mar 26, 2025
bf0f930
Fix: BUG 17980 - Allow item removal even if playlist has only 1 item
mw9 Mar 26, 2025
b9b801d
Merge pull request #1363 from mw9/feature/clear_playlist_with_one_item
michaelherger Mar 26, 2025
cfedd90
Don't fail build on s5cmd installation failure, but fall back to aws-cli
michaelherger Mar 24, 2025
44d9b8d
Changelog update and minor tweak to build workflow
michaelherger Mar 26, 2025
0890000
Merge pull request #1362 from BoringName15/Move-LMS-event-handler
michaelherger Mar 26, 2025
40fb04e
No need for Virtual Columns module
darrell-k Mar 27, 2025
2168714
Amendments after discussion
darrell-k Mar 27, 2025
5279f8c
Fixes for remote tracks
darrell-k Mar 28, 2025
f0a0b5b
Condition on /2/ tag
darrell-k Mar 29, 2025
b2f2ea6
Merge branch 'public/9.1' into playlist-control-changes
darrell-k Mar 29, 2025
c28f3c3
Final tweaks
darrell-k Mar 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Bug report
about: Report a bug report to improve the quality of LMS.
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is. If you're unsure about the nature of your request, please use [forums.lyrion.org](https://forums.lyrion.org) instead. You'll get better and faster responses there. Thanks!

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**System Information (please complete the following information):**
- OS on which you're running LMS: [e.g. pCP 10]
- Web skin used: [e.g. Material, Default]
- Browser [e.g. chrome, safari]
- LMS Version [e.g. 22]
- Player(s) involved

**Additional context**
Add any other context about the problem here. E.g. a `server.log` or `scanner.log` snippet (see Settings/Information in your LMS)
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Lyrion Community Forum
url: https://forums.lyrion.org
about: 👉🏼 Please ask and answer questions here. You'll get faster and better help.
20 changes: 15 additions & 5 deletions .github/actions/build/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ runs:
id: getversion
run: |
echo "::group::Get LMS version number"
MAJOR=$(grep "\$VERSION" server/slimserver.pl | head -n1 | cut -d"'" -f2 | cut -d. -f1)
MINOR=$(grep "\$VERSION" server/slimserver.pl | head -n1 | cut -d"'" -f2 | cut -d. -f2)
PATCH=$(grep "\$VERSION" server/slimserver.pl | head -n1 | cut -d"'" -f2 | cut -d. -f3)
MAJOR=$(grep "our \$VERSION" -m1 server/slimserver.pl | cut -d"'" -f2 | cut -d. -f1)
MINOR=$(grep "our \$VERSION" -m1 server/slimserver.pl | cut -d"'" -f2 | cut -d. -f2)
PATCH=$(grep "our \$VERSION" -m1 server/slimserver.pl | cut -d"'" -f2 | cut -d. -f3)

echo "LMS_VERSION=$MAJOR.$MINOR" >> $GITHUB_OUTPUT
echo "LMS_FULL_VERSION=$MAJOR.$MINOR.$PATCH" >> $GITHUB_OUTPUT
Expand All @@ -40,6 +40,14 @@ runs:
ref: ${{ steps.getversion.outputs.GIT_BRANCH }}


- name: Check out pCP platform code
if: ${{ startsWith(inputs.build-params, 'pcp') }}
uses: actions/checkout@v4
with:
repository: picoreplayer/lms-update-script
path: platforms/pcp


- name: Set up Docker environment
if: ${{ startsWith(inputs.build-params, 'docker') }}
id: dockersetup
Expand All @@ -49,9 +57,9 @@ runs:
if [ "${{ inputs.build-type }}" = "release" ]; then
echo "LMS_TAG=--tag=rc" >> $GITHUB_OUTPUT
elif [ "${{ steps.getversion.outputs.LMS_VERSION }}" = "9.1" ]; then
echo "LMS_TAG=--tag=dev" >> $GITHUB_OUTPUT
echo "LMS_TAG=--tag=dev,${{ steps.getversion.outputs.LMS_FULL_VERSION }}-dev" >> $GITHUB_OUTPUT
elif [ "${{ steps.getversion.outputs.LMS_VERSION }}" = "9.0" ]; then
echo "LMS_TAG=--tag=stable" >> $GITHUB_OUTPUT
echo "LMS_TAG=--tag=stable,${{ steps.getversion.outputs.LMS_FULL_VERSION }}-stable" >> $GITHUB_OUTPUT
else
echo "UNKNOWN DOCKER TARGET TAG"
exit 1
Expand Down Expand Up @@ -114,6 +122,8 @@ runs:

- name: Set-up s5cmd
if: ${{ !startsWith(inputs.build-params, 'docker') }}
# don't fail, as we can fall back to aws-cli
continue-on-error: true
uses: ./server/.github/actions/setup-s5cmd
# uses: peak/action-setup-s5cmd@main
with:
Expand Down
32 changes: 29 additions & 3 deletions .github/workflows/00_build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ on:

jobs:
mac:
name: Build LMS for Mac (MenuBar Item)
name: Build LMS for Mac
runs-on: macos-13
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
Expand Down Expand Up @@ -85,6 +85,7 @@ jobs:
- [tarball, ""]
- [tarball, "--encore"]
- [tarball, "--noCPAN"]
- [pcp, ""]

steps:
# we must check out here, as otherwise the build action is not available
Expand All @@ -95,10 +96,10 @@ jobs:
ref: ${{ inputs.branch }}

- name: Prepare build environment
if: ${{ matrix.flavour[0] != 'tarball' }}
if: ${{ matrix.flavour[0] != 'tarball' && matrix.flavour[0] != 'pcp' }}
run: |
sudo apt update
sudo apt install apt-transport-https debhelper devscripts
sudo apt install -y apt-transport-https debhelper devscripts

- name: Launch build process
uses: ./server/.github/actions/build
Expand Down Expand Up @@ -169,3 +170,28 @@ jobs:
- env:
GH_TOKEN: ${{ secrets.DEPLOYMENT_KEY }}
run: gh workflow run update-server-repository.yml -R https://github.com/LMS-Community/lms-server-repository

tagRelease:
name: Tag the current release
if: ${{ success() && inputs.build_type == 'release' && github.repository_owner == 'LMS-Community' }}
runs-on: ubuntu-latest
needs:
- updateRepoFile
permissions:
actions: write
contents: write
steps:
# no easy way to avoid another checkout?
- name: Check out LMS code
uses: actions/checkout@v4
with:
path: server
ref: ${{ inputs.branch }}
- name: Tag that thang
run: |
cd server
VERSION=$(grep "our \$VERSION" -m1 slimserver.pl | cut -d"'" -f2)
git config user.name "LMS Server Repository Updater"
git config user.email "[email protected]"
git tag -a -m -f "$VERSION"
git push origin refs/tags/$VERSION
33 changes: 16 additions & 17 deletions .github/workflows/00_cron.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Build LMS Scheduler
on:
workflow_dispatch:
schedule:
- cron: '40 2 * * *'
- cron: '40 2,3,4 * * *'

jobs:
check:
Expand All @@ -13,18 +13,23 @@ jobs:
- uses: actions/github-script@v7
with:
script: |
const repoStatus = await github.request('GET https://lms-community.github.io/lms-server-repository/servers.json');
const repoStatus = await github.request('GET https://raw.githubusercontent.com/LMS-Community/lms-server-repository/refs/heads/master/servers.json');

if (repoStatus.status !== 200) {
console.error("Fetching repo file failed?" + JSON.stringify(repoStatus, null, 2));
return false;
}

// get the oldest timestamp for each version from previous builds
const candidates = [];
Object.keys(repoStatus.data).forEach(version => {
const repoData = JSON.parse(repoStatus.data);

Object.keys(repoData).sort((a, b) => {
return 0.5 - Math.random();
}).forEach(version => {
const matches = version.match(/(\d+\.\d+)\.\d+/);
if (matches && matches.length == 2) {
const versionBuilds = repoStatus.data[version];
const versionBuilds = repoData[version];
candidates.push({
v: matches[1],
r: Object.keys(versionBuilds).reduce((accumulator, build) => {
Expand All @@ -35,16 +40,11 @@ jobs:
})
}
else {
delete repoStatus.data[version];
delete repoData[version];
}
});

const sleep = (s) => {
return new Promise(resolve => setTimeout(resolve, s * 1000));
}

// for each version see whether there's a more recent commit than the revision of the previous build
let buildsRunning = 0;
for (let i = 0; i < candidates.length; i++) {
const latestBuildTimestamp = candidates[i].r * 1000;

Expand All @@ -68,24 +68,23 @@ jobs:
if (needsBuild) {
console.log(`${candidates[i].v}: needs a build (${new Date(needsBuild.commit.committer.date).getTime()} > ${latestBuildTimestamp})`);

if (buildsRunning > 0) {
console.log('Delaying build as there is already a build running');
// wait about Xs per build
await sleep(buildsRunning * 90);
}

const workflowStatus = await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: '00_build.yaml',
ref: 'public/' + candidates[i].v,
inputs: {
branch: 'public/' + candidates[i].v,
build_type: 'nightly',
},
});

if (workflowStatus.status < 200 || workflowStatus.status > 204) {
console.log(workflowStatus);
}

buildsRunning++;
// we only want to run one build at a time - we'll re run the check in a bit
break;
}
else {
console.log(`${candidates[i].v}: is up to date (${candidates[i].r})`);
Expand Down
Binary file removed Bin/MSWin32-x86-multi-thread/faad.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/flac.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/grant.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/mac.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/mppdec.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/sls.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/socketwrapper.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/sox.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/wmadec.exe
Binary file not shown.
Binary file removed Bin/MSWin32-x86-multi-thread/wvunpack.exe
Binary file not shown.
158 changes: 158 additions & 0 deletions CPAN/Protocol/WebSocket.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
package Protocol::WebSocket;

use strict;
use warnings;

our $VERSION = '0.26';

use Protocol::WebSocket::Frame;
use Protocol::WebSocket::Handshake::Client;
use Protocol::WebSocket::Handshake::Server;
use Protocol::WebSocket::URL;

1;
__END__

=encoding UTF-8

=head1 NAME

Protocol::WebSocket - WebSocket protocol

=head1 SYNOPSIS

# Server side
my $hs = Protocol::WebSocket::Handshake::Server->new;

$hs->parse('some data from the client');

$hs->is_done; # tells us when handshake is done

my $frame = $hs->build_frame;

$frame->append('some data from the client');

while (defined(my $message = $frame->next)) {
if ($frame->is_close) {

# Send close frame back
send(
$hs->build_frame(
type => 'close',
version => $version
)->to_bytes
);

return;
}

# We got a message!
}

=head1 DESCRIPTION

Client/server WebSocket message and frame parser/constructor. This module does
not provide a WebSocket server or client, but is made for using in http servers
or clients to provide WebSocket support.

L<Protocol::WebSocket> supports the following WebSocket protocol versions:

draft-ietf-hybi-17 (latest)
draft-ietf-hybi-10
draft-ietf-hybi-00 (with HAProxy support)
draft-hixie-75

By default the latest version is used. The WebSocket version is detected
automatically on the server side. On the client side you have set a C<version>
attribute to an appropriate value.

L<Protocol::WebSocket> itself does not contain any code and cannot be used
directly. Instead the following modules should be used:

=head2 High-level modules

=head3 L<Protocol::WebSocket::Server>

Server helper class.

=head3 L<Protocol::WebSocket::Client>

Client helper class.

=head2 Low-level modules

=head3 L<Protocol::WebSocket::Handshake::Server>

Server handshake parser and constructor.

=head3 L<Protocol::WebSocket::Handshake::Client>

Client handshake parser and constructor.

=head3 L<Protocol::WebSocket::Frame>

WebSocket frame parser and constructor.

=head3 L<Protocol::WebSocket::Request>

Low level WebSocket request parser and constructor.

=head3 L<Protocol::WebSocket::Response>

Low level WebSocket response parser and constructor.

=head3 L<Protocol::WebSocket::URL>

Low level WebSocket url parser and constructor.

=head1 EXAMPLES

For examples on how to use L<Protocol::WebSocket> with various event loops see
C<examples/> directory in the distribution.

=head1 CREDITS

In order of appearance:

Paul "LeoNerd" Evans

Jon Gentle

Lee Aylward

Chia-liang Kao

Atomer Ju

Chuck Bredestege

Matthew Lien (BlueT)

Joao Orui

Toshio Ito (debug-ito)

Neil Bowers

Michal Špaček

Graham Ollis

Anton Petrusevich

Eric Wastl

Greg Kennedy

=head1 AUTHOR

Viacheslav Tykhanovskyi, C<[email protected]>.

=head1 COPYRIGHT

Copyright (C) 2010-2018, Viacheslav Tykhanovskyi.

This program is free software, you can redistribute it and/or modify it under
the same terms as Perl 5.10.

=cut
Loading