Date | Commit message (Collapse) |
|
This is useful for users relying on system Ruby and lack
permissions to install gems.
|
|
It's less DRY, but probably more familiar to people who can't
be bothered to use the Makefile.
|
|
Unencrypted NNTP still works, of course, but is subject
to snooping and MITM attacks.
|
|
POSIX filesystems do not enforce encodings, so we'll convert
non-UTF-8 filenames to blobs for SQLite instead of failing on
encoding errors. This should allow us to work on collections
which feature legacy encodings.
|
|
Mainly seek improvements to dtas-player. The fallback to use
charlock-holmes for strangely-encoded files is fixed.
7 changes since 0.18.0 (2020-02-03):
splitfx: reduce syscalls for writing comments file
splitfx: support --err-suffix option
player: fix +/- directional seeks while paused
README: update and add more URLs for archives
encoding: use CharlockHolmes properly on first run
dtas-console: gracefully handle seek failures
INSTALL: update dependencies for current Debian stable
|
|
Unfortunately, mp3gain is no longer in current versions and
using old Debian archives is required.
|
|
dtas-console doesn't need to quit when a user attempts to seek
an unseekable file, since the user often doesn't know it's
unseekable until a seek is attempted.
|
|
Ruby case/when is not like C with fall-through, so we can't
rely on fall-through behavior to use CharlockHolmes to detect
legacy encodings.
|
|
public-inbox.org now runs an anonymous IMAP server
(AUTH=ANONYMOUS is also supported). If we ever exceed 50000K
messages in our mail archives, new messages will appear in the
".1" mailbox.
Tor .onion URLs have always been supported, too.
news.gmane.org also moved to news.gmane.io a while back:
https://lars.ingebrigtsen.no/2020/01/15/news-gmane-org-is-now-news-gmane-io/
|
|
Using relative seek (Up/Dn/PgUp/PgDn) with dtas-console while
dtas-player is paused was causing non-sensical/confusing results
on unpause.
So clamp the minimum seek time to 0s the same way we clamp
during playback.
|
|
Write the contents of "stderr". This is useful for capturing the
per-track output of the sox(1) "stats" effect when combined with
parallel "--jobs".
|
|
We can flush when all comments are buffered to avoid a writev(2)
syscall on every comment.
|
|
fiddle is now supported for Linux users without a C compiler or
Ruby headers installed to take advantage of inotify(7)
functionality and efficiency improvements with splice(2) and
eventfd(7).
For non-RubyGems users, there's some setup.rb fixes thanks
to James Rowe.
Eric Wong (8):
doc: fixup leftover ftp://lists.gnu.org links
pipe: avoid loading sleepy_penguin
provide fiddle-based eventfd implementation
buffer: replace sleepy_penguin with fiddle
watchable: use fiddle for inotify support
doc: remove most recommendations for sleepy_penguin
INSTALL: s/bogomips.org/yhbt.net/
doc: update copyrights for 2020
James Rowe (2):
setup: update to use RbConfig
setup: fix duplicate variable warning
|
|
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
|
|
bogomips.org is expiring soon and I won't be able to afford
higher prices when renewing .orgs will become more expensive.
|
|
sleepy_penguin is still a hair faster than libffi+fiddle,
but most users probably won't notice. So stop documenting
it, but just don't introduce performance regressions for
existing users.
|
|
We have String#unpack at our disposal for working with "struct
inotify_event", so use it instead of depending on an extension
which requires a compiler and development headers to install.
|
|
Fiddle exists on all Ruby 1.9.2+ installations and seems
alright. Since splice is a Linux-only API, we don't need to
worry about the values of constants changing (and they're
architecture-independent).
|
|
sleepy_penguin requires a compiler and development headers to
install, so it could be a PITA to install for users on
distro-provided Ruby. Allow fiddle since it's part of the Ruby
standard library since 1.9.2 and users won't have to install
anything else.
|
|
The values of F_{GET,SET}PIPE_SZ are architecture-independent
and stable in Linux (unlike Ruby :P), so we won't need to bother
loading an extra .so here for two constants.
|
|
|
|
`Config` was removed years ago¹, and is not supported in any Ruby release
that dtas supports.
1. https://bugs.ruby-lang.org/issues/6809
|
|
Some of these URLs were missing a slash and were missed by
initial search-and-replace regexp :x.
Drop some trailing "\" from the Markdown days while we're at it,
plain-text is the only stable document format.
|
|
dtas-player automatically pauses on sink death (e.g. when an
external DAC is unplugged), thanks to Rene Maurer for the
feature suggestion.
zsh completions are also bundled in the examples/ directory
thanks to James Rowe.
There's also a couple of minor bugfixes and documentation
updates.
There's also kwarg warning fixes for Ruby 2.7.0dev. Future
components will probably use a more stable glue language
than Ruby, and we already have dtas-graph which is Perl5.
Eric Wong (11):
doc: remove inaccurate comment about "GNU-ism"
doc: update homepage to point to cgit /about/
dtas-graph: show inode number in hex, too
dtas-graph: add a short blurb about what it does
dtas-console: remove unused variables
dtas-console: pass kwargs as-is to String#encode
buffer/splice: pass kwargs as-is to tee/splice
player: automatically pause if last sink dies
readahead: avoid Array#compact and Array#max on `false'
doc: use new HTTPS address at lists.gnu.org
TODO: add a note about using a more stable glue language
James Rowe (2):
doc: trivial typo fixes
Add zsh completion support
|
|
Every Ruby release is a constant treadmill of minor
incompatibilities which require busywork and maintenance every
year.
It's been roughly a decade after the major 1.8 -> 1.9 breakages
which I was naive enough to believe was one time thing. Now
with Ruby 3.0 incompatibilities on the horizon, I've had enough.
Perl5 is the most logical language since most of my other
projects are Perl5, and we already have dtas-graph implemented
in it. But, implementing my own glue language for this isn't
out of the question, either...
|
|
lists.gnu.org is no longer accessible via FTP.
|
|
seek_to_cur_pos needs to return `nil', not `false' on
dead processes when monitoring processes for readahead.
|
|
This adds completion support for all the current commands, including
completion for sink and source names where they are used.
|
|
|
|
Attempting to play (and fail) every song in the queue or
tracklist is not ideal when a the USB/HDMI cable to the sound
device gets unplugged by accident.
When tee-ing to multiple sinks, we will still gracefully continue
if one goes dead and there are remaining sinks.
Suggested-by: Rene Maurer
Link: https://80x24.org/dtas-all/874l0kb9qm.fsf@loco10.cumparsita.ch/
|
|
Ruby 2.7.0dev will warn when hashes are passed and intended
for use as kwargs unless we expand the hash via "**TRY",
but "**" is Ruby 2.0+ syntax and I guess we still support
1.9.3 for the time being.
|
|
Ruby 2.7.0dev will warn when hashes are passed and intended
for use as kwargs unless we expand the hash via "**enc_opts",
but "**" is Ruby 2.0+ syntax and I guess we still support
1.9.3 for the time being.
|
|
"ruby -w" will warn on them
|
|
It's a pretty useful tool :)
|
|
This makes it easier to match up pipes to the contents of
/proc/$PID/fdinfo/$EVENTPOLL_FD (ep_show_fdinfo) for software
using epoll.
(I'm using this tool outside of dtas, too)
|
|
Having more clickable links is better and the cgit instance
looks good without CSS in w3m.
I've submitted patches to the cgit mailing list[1] to reduce
dependencies on css, and they're also available at
https://80x24.org/cgit.git in the meantime
[1] https://lists.zx2c4.com/mailman/listinfo/cgit
https://lists.zx2c4.com/pipermail/cgit/2019-January.txt.gz
|
|
touch(1posix) documents the presence of "-r"
|
|
Brown paper bag release to fix hanging at the end of a
track/playlist when using a single audio output with
Linux splice.
|
|
This fixes hanging when using a single audio output for
Linux users using splice.
|
|
This bumps version requirements for sleepy_penguin and
dtas to eliminate the "io_splice" dependency for Linux
users.
|
|
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
|
|
Eliminate loading of the io_splice RubyGem to reduce memory overhead.
Extra DSOs are wasteful and io_splice is being phased oiut for
sleepy_penguin, which encapsulates more Linux-specific functionality
anyways.
cf. https://udrepper.livejournal.com/8790.html
|
|
|
|
Sometimes files become unreadable.
|
|
It happens with some video files, apparently.
|
|
The SQLite busy waiting scheme isn't great for usability
and the busy timeout is done by sleep+backoff. I prefer
to say we only support filesystems with flock() for our
little DB.
|
|
Redundant since ("player: support guessing encodings for comments")
|
|
Apparently some degree of thread-safety is being enforced;
not sure I agree, but oh well...
|
|
Oops, a Perlism crept in :x
|
|
This can be helpful for end users and is close to what other
players use. We can fallback to Encoding.default_external by
default (typically UTF-8) and then again using `charlock_holmes'
if installed.
Note: path names remain binary, because that's how proper
filesystems operate.
|