Date | Commit message (Collapse) |
|
soxi or ffprobe may infinite loop on bad files, so be sure to
let these processes timeout properly.
|
|
There may not be an `infile' element in the `current' response.
Fixes: bf9787ac517fe19a ("deduplicate and freeze pathnames + metadata")
|
|
IO#close is idempotent since Ruby 2.3, so reduce our instruction
footprint to save some memory.
|
|
Since Ruby 2.3, it no longer checks FIONREAD, and we require
Ruby 2.3+ nowadays, so drop our IO.select-based workarounds.
|
|
We use DTAS.yaml_load to wrap all YAML.*load calls, but
we still need "require 'yaml'" for various .to_yaml calls.
|
|
This ought to save some memory for dtas-player and
dtas-readahead users with multiple instances of the same
track(s) on their track list.
|
|
Psych 4.x defaults to "nanny mode" to handle untrusted data.
This causes breakage with since YAML references (aliases)
emitted by dtas-player can't be handled by Psych clients under
Ruby 3.1. Since dtas is single user and is a shell designed to
run arbitrary code, favor the new YAML.unsafe_load API which
behaves like the old YAML.load in Ruby <= 3.0.
|
|
This allows us to jettison a bunch of compatibility code since
we've started using Etc.nprocessors and String#- (uminus) in
more places. The Ruby core team doesn't support <= 2.5, even.
|
|
Using the 'update-copyright' script from gnulib[1]:
git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \
UPDATE_COPYRIGHT_USE_INTERVALS=2 \
xargs /path/to/gnulib/build-aux/update-copyright
[1] https://git.savannah.gnu.org/git/gnulib.git
|
|
seek_to_cur_pos needs to return `nil', not `false' on
dead processes when monitoring processes for readahead.
|
|
A bunch of minor fixes and cleanups accumulating for the past
two years since the last release. It's tough to remember to
make releases when I'm always running the latest version from
git :x
Most notably, "io_splice" is no longer used for dtas-linux
users since "sleepy_penguin" includes all the functionality
we use. This is to reduce memory overhead from extra DSOs(*)
There's also some deprecation warning fixes for the
still-undocumented "dtas-mlib" command.
12 changes since v0.15.0 (2017-04-07):
pipeline: new module for running process pipelines
console: ensure time calculations are done in UTC
Rakefile: update path for uploads
player: support guessing encodings for comments
get rid of Windows-31J regexps
mlib: compatibility with Sequel 5.x
mlib: remove redundant tag massaging and encoding
mlib: use flock to get around SQLite busy errors
mlib: ignore files with nil times
dtas/watchable: check SystemCallError
mlib: fix unused variable warning
use sleepy_penguin 3.5+ for splice and tee support
(*) https://udrepper.livejournal.com/8790.html
|
|
Oops, a Perlism crept in :x
|
|
|
|
We may have hashes in the queue, too.
Followup-to: af91a075c10c ("readahead: handle queued commands properly")
|
|
HTTPS allows some level of security(*) and we've actually
supported it on 80x24.org for many months, now. So, point new
readers to it.
Moving away from hostname-based homepages will allow us to save
on subjectAltName space (and bandwith) when negotiating an HTTPS
connection. We'll also have an .onion mirror for Tor users,
soon, too; in case we can't afford to pay ICANN in the future.
(assuming TLS libraries don't have any more Heartblead-level
bugs in them, CAs aren't compromised, MITM HTTPS stripping
proxies don't get in your way, and your certificate bundle isn't
compromised).
|
|
We can't do much for readahead when it comes to dtas-player
running arbitrary commands.
|
|
We must not leave open files lingering when the player pauses,
as it could prevent remote filesystems from unmounting.
|
|
Both of these are optional, so stop trying them if we
do not detect them.
|
|
Using the 'update-copyright' script from gnulib[1]:
git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \
UPDATE_COPYRIGHT_USE_INTERVALS=2 \
xargs /path/to/gnulib/build-aux/update-copyright
[1] git://git.savannah.gnu.org/gnulib.git
|
|
While we're in the area, make a wording change from "GPLv3 or later"
to "GPL-3.0+", as the latter is favored by SPDX.org
|
|
Our spawn fix does not cover singleton dispatch from the
Process class; only bareword "function" calls.
|
|
Oops, files in bin/ should be executable.
|
|
When a player is paused with nothing player, we will not waste CPU
time polling for the player to become available. It is wasteful
of processing power and battery life.
|
|
This is dependent on Linux /proc/ (the "pos: " field
of /proc/$PID/fdinfo/$FD to be exact).
This was written to avoid seek latencies on a remote FUSE
filesystem with occasional packet loss.
|