Commit Graph
5066 Commits
Author SHA1 Message Date
Martin Natano ee65b7b0c4 Replace logo and clean up packaging 2022-05-21 10:05:44 +02:00
Martin Natano f5682cfdac Bundle Club Fantastic song packs in full releases 2022-05-21 10:05:44 +02:00
Martin Natano b6cc8f90fc Align defaults with SL recommendations 2022-05-11 22:31:37 +02:00
Martin Natano b2e60fa48b Bundle Simply Love as the default theme 2022-05-11 21:59:06 +02:00
Martin Natano d54bc6857f Prevent access to /Save/Preferences.ini from lua
Directly writing to the file would circumvent preference protections,
compromising security.
2022-05-07 23:53:58 +02:00
Martin Natano b9ebbd32a9 Build universal binary on macOS 2022-05-02 21:23:48 +02:00
Martin Natano b039be360c Fix subdomain matching 2022-05-01 17:33:52 +02:00
Martin Natano f7d8408fc2 Add support for subdomain wildcards to HttpAllowHosts 2022-05-01 13:16:14 +02:00
Martin Natano 6cd4ac88c3 Fix error reporting when opening the download file fails 2022-05-01 10:42:28 +02:00
Martin Natano 07e8abf380 Generate downloads folder in portable mode 2022-05-01 10:27:30 +02:00
Martin Natano 9cf66ae643 Update ffmpeg 2.1.3 -> 5.0.1
Old ffmpeg has a lot of vulnerabilities that have been fixed in newer
versions, see https://www.cvedetails.com/vulnerability-list/vendor_id-3611/Ffmpeg.html.
2022-04-30 23:22:52 +02:00
Martin Natano 692310a0e4 Tweak defaults for the HTTP preferences
Connections to GrooveStats are now allowed by default.
2022-04-13 21:56:04 +02:00
Martin Natanoandteejusb 3ca3bb0773 Fix macOS build 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb 4c0aef69dd Remove legacy network code 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb 7f31fd59e8 Remove unused appveyor and travis files 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb dbef16945f Remove unused SDL dependency 2022-04-11 14:50:00 -07:00
Martin Natanoandteejusb 02008eb469 Rename to ITGmania
- executable name:
  - linux: itgmania
  - windows: ITGmania.exe
  - macOS: ITGmania.app
- config path:
  - linux: ~/.itgmania
  - windows; %AppData%\ITGmania
  - macOS: ~/Library/Application Support/ITGmania
2022-04-02 20:14:57 -07:00
Martin Natanoandteejusb a8b9c1da09 Replace some SM cmake macros with builtin functions 2022-03-31 12:06:18 -07:00
Martin Natanoandteejusb 1ab364c0fa Remove autotools infrastructure
Having one build system is enough.
2022-03-31 12:06:18 -07:00
Martin Natanoandteejusb e3347276b5 Build LoadingWindow_Gtk as an object module
CMake object modules have the advantage of allowing to set additional
compile flags for the involved files, but it's linked into the main
binary with the rest of the object files.

This removes GtkModule.so and the dynamic loading code that goes with
it.
2022-03-31 12:06:18 -07:00
Jose_Varelaandteejusb 1b27032a38 Add GaveUp() 2022-03-28 20:11:53 -07:00
Arthur Eubanksandteejusb b88e81a8f5 Don't re-sort sections when sorting by length
Re-sorting causes oddities like
https://github.com/Simply-Love/Simply-Love-SM5/issues/362
2022-03-28 20:11:53 -07:00
Charles Magahernandteejusb ab991981fd Move resource mounting to the right place
Fix from Club Fantastic, but adapted for RageFile changes.
2022-03-20 07:46:03 -07:00
Martin Natanoandteejusb 024f3ac96a Don't crash when reloading songs with players joined
This allows to call ScreenReloadSongs from SSM.
2022-03-19 08:18:58 -07:00
Martin Natanoandteejusb c99477f046 Only make parts of the initial filesystem writable
This prevents overwriting the program binary or other sentitive paths
like /Data/Static.ini from Lua.
2022-03-13 12:46:14 -07:00
Martin Natanoandteejusb 1036d20e11 Implement FILEMAN:Copy(string fromPath, string toPath)
Copies a file from `fromPath` to `toPath`. Returns `true` if the file
was copied successfully.
2022-03-13 12:37:11 -07:00
Martin Natanoandteejusb 67d1c78450 Implement FILEMAN:Unzip(string zipPath, string targetPath, int strip)
Unzip zip file at `zipPath` to `targetPath`.
`strip` is optional and defaults to `0`. If set to a number larger than
`0`, that many components are removed from the paths of the extracted
files. e.g. `a/b/c` is replaced with `b/c` when stripping one component
or just `c` when stripping two.
Returns whether all files were extracted successfully.
2022-03-13 11:46:28 -07:00
Martin Natanoandteejusb ca86f80743 Add support for onProgress and downloadFile to NETWORK:HttpRequest() 2022-03-13 11:31:49 -07:00
Martin Natanoandteejusb bb8fc0f4c2 Change access order for RageFS
Packages > Additional folders > User FS > Initial FS
2022-03-12 14:14:59 -08:00
Martin Natano 168877f6a8 Mount directories read-only where possible 2022-03-12 22:30:54 +01:00
Martin Natano d8b6d36a78 Allow to mark preferences as immutable or deprecated
- Deprecated: The option is read from the settings, but not written back
  when saving. This can be used for migrating options to a new name or
  format. (Not used yet.)
- Immutable: The option can not be changed from Lua. Used for
  security-relevant options that should not be changable by the theme or
  mod charts. Currently that's networking and some file system access
  options.
2022-03-12 22:19:19 +01:00
teejusbandGitHub eb0ab83d89 Merge pull request #19 from natano/netman-download-pr1
[Downloads 1/8] Merge /AdditionalSongs into /Songs, and /AdditionalCourses into /Courses
2022-03-12 12:15:47 -08:00
Martin Natano acb3ad727a Fix sort by length
The sort order is not remembered between songs when sorting by length.
This can be fixed by recognizing SORT_LENGTH as a sort order that can be
used for songs.

Reported by @aeubanks in https://github.com/Simply-Love/Simply-Love-SM5/issues/363
2022-03-12 19:13:11 +01:00
Martin Natano 0861ed45c7 Merge /AdditionalSongs into /Songs, and /AdditionalCourses into /Courses
Includes a backwards-compatibility mechanism to adapt paths when loading
Stats.xml.
2022-03-11 22:35:31 +01:00
Martin Natano afb3836367 Remove unsafe package library
package.loadlib() can be used to load a dynamic C library allowing
arbitrary code execution in mod charts and themes.

So far I haven't found any theme that depends on the library, so I think
removing it shouldn't break anything.
2022-03-04 21:27:55 +01:00
teejusbandGitHub 568f21b6b3 Merge pull request #17 from natano/itgm-update-jsoncpp
Update jsoncpp from version 0.5.0 to 1.9.5
2022-02-19 19:36:19 -08:00
Martin Natano e1b5664f21 Update jsoncpp from version 0.5.0 to 1.9.5
Aside from including a ton of bug fixes, this should fix an issue in the
CI pipeline when building with system libraries that was caused by a
minor incompatibility between 0.5.0 and less ancient versions.

Also, switch to the amalgamated source, because it makes it easier to
keep it up to date.
https://github.com/open-source-parsers/jsoncpp/wiki/Amalgamated-(Possibly-outdated)
2022-02-19 14:10:55 +01:00
Martin Natano 3216fdec1e Prevent access to the root file system via the memorycard mount points
Before any memorycard is used the mount point exposes "/". Let's
introduce a special value "(empty)" to allow a DIR mount to point to
nothing.
2022-02-19 11:20:01 +01:00
Martin Natano 7d8ff85018 Remove access to the root FS from lua
On linux / is mounted to /rootfs in RageFile, which allows access to the
_whole_ filesystem from lua. This means themes and mod files can
re-write user data and extract files via USB profiles.

/rootfs was only added for internal use by the alsa, oss and memory card
drivers, so it can be easily replaced with direct fstream file access.
2022-02-06 15:31:31 +01:00
teejusbandGitHub c7d7ab9ae0 Merge branch 'stepmania:5_1-new' into beta 2022-01-21 00:11:53 -08:00
teejusb 7b1db8b2fb Define ssize_t to be the same width of size_t
The size of size_t is defined by the architecture (32bit or 64bit). Since ssize_t is not part of the standard, unlike size_t, it might not be defined but it should always be the same size as size_t.
2022-01-17 22:31:44 -08:00
Martin Natano 3fab481611 fixup collect 2022-01-15 22:56:22 +01:00
Martin Natano bb826dc0b2 Allow cancellation of HTTP requests
`NETWORK::HttpRequest()` now returns a HttpRequestFuture with a
`Cancel()` method.
2022-01-15 22:56:22 +01:00
Martin Natano bc4a275510 Add parameter encoding helpers to NETWORK
This adds two more methods:
- `NETWORK:UrlEncode()`: Encode a single string value.
- `NETWORK:EncodeQueryParameters()`: Encode a table as query string.
2022-01-15 22:56:08 +01:00
Martin Natano dc49af3c59 Implement NetworkManager
For now there are two methods:

- `NETWORK:IsUrlAllowed()`: Check whether access to a certain URL is allowed.
- `NETWORK:HttpRequest()`: Perform an HTTP request.

By default access to the network is disabled for all target hosts. It
can be enabled by setting `HttpEnable=1` in the preferences. Individual
hosts have to be added to `HttpAllowHosts` as a comma separated list to
allow access.

See included docs for more details on usage.
2022-01-15 22:56:08 +01:00
teejusb a48a5b73ad Remove returned timing window table 2022-01-05 18:21:28 -08:00
teejusb 99ee1f2b84 Use bitset instead of map and adjust files accordingly. 2021-12-21 23:44:37 -08:00
Crystal SquirrelandGitHub 21bb1dbdd3 Merge pull request #2083 from natano/unbind-hyphen
Change the default binding for P2/back from hyphen to backslash
2021-12-16 11:31:20 +00:00
teejusb 2967165235 Logic fixes 2021-12-10 21:12:11 -08:00
teejusb c10d8e4eb5 Initial Implementation of disabling timing windows per player. 2021-12-10 00:27:21 -08:00