Skip to content

Commit

Permalink
Merge branch 'devel'
Browse files Browse the repository at this point in the history
  • Loading branch information
jcorporation committed Sep 15, 2023
2 parents 2276b6e + 00a06fd commit 5ea972c
Show file tree
Hide file tree
Showing 211 changed files with 17,323 additions and 13,745 deletions.
1 change: 1 addition & 0 deletions .eslintrc-min.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"rules": {
"block-scoped-var": "error",
"camelcase": "error",
"default-case": "error",
"default-case-last": "error",
"eqeqeq": ["error", "always", {"null": "ignore"}],
"no-alert": "error",
Expand Down
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"rules": {
"block-scoped-var": "error",
"camelcase": "error",
"default-case": "error",
"default-case-last": "error",
"eqeqeq": ["error", "always", {
"null": "ignore"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
/htdocs/css/bootstrap.css
/htdocs/js/defines.js
/htdocs/js/bootstrap-native.js
/htdocs/js/defines.js
/htdocs/js/i18n.js
/htdocs/js/long-press-event.js
/htdocs/sw.js
Expand Down
50 changes: 48 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,52 @@ https://github.com/jcorporation/myMPD/

***

## myMPD v12.0.0 (2023-09-15)

This release improves hopefully the user experience by providing descriptive help texts, error messages and improved dialogs. Further the advanced search feature is now available for all reasonable views.

As in most recent releases, the source code has been cleaned up further. The most changes are made in the frontend code.

### Notes

- Some of the UI related settings are reset to default
- Old home icon links to some views are invalid

### API changes

This release changes some API methods.

- merge MYMPD_API_QUEUE_SEARCH_ADV and MYMPD_API_QUEUE_LIST into MYMPD_API_QUEUE_SEARCH
- rename MYMPD_API_PRESET_LOAD to MYMPD_API_PRESET_APPLY
- MYMPD_API_PLAYLIST_RM_ALL: parameters changed
- MYMPD_API_PLAYER_OUTPUT_GET: new
- MYMPD_API_PLAYER_OUTPUT_LIST: respond with fewer details

### Changelog

- Feat: move song fingerprint calculation in worker thread #1046
- Feat: display album tags in jukebox album list #1069
- Feat: add option for compact grids #1074
- Feat: add advanced search to more views #1048
- Feat: add more inline help text's #1072
- Feat: improve validation of form fields #1083
- Feat: add spinners to buttons
- Feat: display the number of channels #1085
- Feat: show source objects in action modals
- Feat: add enforce disc tag option #1086
- Feat: add bulgarian translation
- Upd: support multiple languages for webradioDB #1097
- Upd: some code enhancements #1045
- Upd: Bootstrap 5.3.1
- Upd: rework settings
- Upd: split JavaScript in separate files for views and modals
- Upd: dependencies sds, utest, utf8
- Fix: calculate correct position for jukebox list
- Fix: calculate correct position for playlist content list
- Fix: enable connection settings if myMPD can not connect to MPD #1102

***

## myMPD v11.0.5 (2023-08-31)

This is a small bug fix release.
Expand Down Expand Up @@ -1751,7 +1797,7 @@ This is a small maintenance release.

myMPD 6.2.0 adds more functionality to smart playlists and playlists generally. The publishing feature of myMPD was completely reworked and supports now webdav to manage pics, mpd music_directory and playlists. This feature is in the default config disabled and must be enabled in mympd.conf. Also the notification system was reworked and supports now the brand new HTML5 MediaSession API.

Please give the new tool mympd-config a chance. This tool parses your mpd.conf and generates a suitable mympd.conf. For details look at https://github.com/jcorporation/myMPD/wiki/mympd-config.
Please give the new tool mympd-config a chance. This tool parses your mpd.conf and generates a suitable mympd.conf.

### Changelog

Expand Down Expand Up @@ -1946,7 +1992,7 @@ This minor release supports now table and popup menu navigation through the keyb

### Changelog

- Feat: table navigation mode, see https://github.com/jcorporation/myMPD/wiki/Keyboard-Shortcuts for details
- Feat: table navigation mode
- Feat: support mpd fingerprint command #146
- Feat: display current song title in header bar
- Feat: new "update_lastplayed" event
Expand Down
77 changes: 45 additions & 32 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cmake_policy(SET CMP0003 NEW)
# myMPD is written in C
# supported compilers: gcc, clang
project(mympd
VERSION 11.0.5
VERSION 12.0.0
LANGUAGES C
)

Expand Down Expand Up @@ -53,12 +53,16 @@ option(MYMPD_DEBUG "Enables myMPD debug mode, default OFF, ON for Debug" "OFF")
option(MYMPD_EMBEDDED_ASSETS "Embed assets in binary, default ON, OFF for Debug" "ON")
option(MYMPD_ENABLE_FLAC "Enables flac support, default ON" "ON")
option(MYMPD_ENABLE_IPV6 "Enables IPv6, default ON" "ON")
option(MYMPD_ENABLE_LIBASAN "Enables build with libasan, default OFF" "OFF")
option(MYMPD_ENABLE_LIBID3TAG "Enables libid3tag support, default ON" "ON")
option(MYMPD_ENABLE_LUA "Enables lua support, default ON" "ON")
option(MYMPD_MANPAGES "Creates and installs manpages" "ON")
option(MYMPD_MINIMAL "Enables minimal myMPD build, disables all MYMPD_ENABLE_* flags" "OFF")
option(MYMPD_STRIP_BINARY "Enables stripping the binaries for Release, default ON" "ON")
option(MYMPD_STARTUP_SCRIPT "Installs the startup script, default ON" "ON")
# sanitizer options
option(MYMPD_ENABLE_ASAN "Enables build with address sanitizer, default OFF" "OFF")
option(MYMPD_ENABLE_TSAN "Enables build with thread sanitizer, default OFF" "OFF")
option(MYMPD_ENABLE_UBSAN "Enables build with undefined behavior sanitizer, default OFF" "OFF")

if(MYMPD_MINIMAL)
set(MYMPD_ENABLE_FLAC "OFF")
Expand Down Expand Up @@ -180,6 +184,9 @@ endif()

# translation files
if(MYMPD_EMBEDDED_ASSETS)
if(EXISTS "${PROJECT_BINARY_DIR}/htdocs/assets/i18n/bg-BG.json.gz")
set(I18N_bg_BG "ON")
endif()
if(EXISTS "${PROJECT_BINARY_DIR}/htdocs/assets/i18n/de-DE.json.gz")
set(I18N_de_DE "ON")
endif()
Expand Down Expand Up @@ -269,43 +276,45 @@ if(CMAKE_BUILD_TYPE MATCHES "(Release|Debug)")
endif()
endforeach()

if(NOT MYMPD_ENABLE_LIBASAN)
# incompatible with libasan
if(NOT MYMPD_ENABLE_ASAN AND NOT MYMPD_ENABLE_UBSAN)
# incompatible with address sanitizers
add_compile_options("-D_FORTIFY_SOURCE=2")
endif()
else()
# if CMAKE_BUILD_TYPE is neither Release nor Debug,
# do not alter compile options
endif()

# libasan memory checker
# https://github.com/google/sanitizers/wiki/AddressSanitizer#faq
if(MYMPD_ENABLE_LIBASAN)
message("Compiling with libasan")
set(LIBASAN_FLAGS
"-fsanitize=address"
"-fsanitize=alignment"
"-fsanitize=bool"
"-fsanitize=bounds"
"-fsanitize=bounds-strict"
"-fsanitize=enum"
"-fsanitize=float-cast-overflow"
"-fsanitize=float-divide-by-zero"
"-fsanitize=integer-divide-by-zero"
"-fsanitize=nonnull-attribute"
"-fsanitize=null"
"-fsanitize=object-size"
"-fsanitize=return"
"-fsanitize=returns-nonnull-attribute"
"-fsanitize=shift"
"-fsanitize=signed-integer-overflow"
"-fsanitize=undefined"
"-fsanitize=unreachable"
"-fsanitize=vla-bound"
"-fsanitize=vptr"
# sanitizers
set(ASAN_FLAGS
"-fsanitize=address"
"-fsanitize=leak"
)

set(UBSAN_FLAGS
"-fsanitize=undefined"
)

set(TSAN_FLAGS
"-fsanitize=thread"
)

if(MYMPD_ENABLE_ASAN)
message("Compiling with address sanitizer")
add_compile_options(
${ASAN_FLAGS}
"-fno-omit-frame-pointer"
)
elseif(MYMPD_ENABLE_UBSAN)
message("Compiling with undefined behavior sanitizer")
add_compile_options(
${UBSAN_FLAGS}
"-fno-omit-frame-pointer"
)
elseif(MYMPD_ENABLE_TSAN)
message("Compiling with thread sanitizer")
add_compile_options(
${LIBASAN_FLAGS}
${TSAN_FLAGS}
"-fno-omit-frame-pointer"
)
endif()
Expand Down Expand Up @@ -334,8 +343,12 @@ else()
endif()

# linker flags
if(MYMPD_ENABLE_LIBASAN)
add_link_options(${LIBASAN_FLAGS})
if(MYMPD_ENABLE_ASAN)
add_link_options(${ASAN_FLAGS})
elseif(MYMPD_ENABLE_UBSAN)
add_link_options(${UBSAN_FLAGS})
elseif(MYMPD_ENABLE_TSAN)
add_link_options(${TSAN_FLAGS})
endif()

if(CMAKE_BUILD_TYPE STREQUAL "Release")
Expand Down
Loading

0 comments on commit 5ea972c

Please sign in to comment.