dtas 0.18.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/GIT-VERSION-FILE +1 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +13 -1
- data/INSTALL +3 -8
- data/NEWS +22 -0
- data/README +5 -5
- data/dtas.gemspec +2 -2
- data/dtas.sh +7 -0
- data/lib/dtas/mlib.rb +19 -7
- data/lib/dtas/partstats.rb +1 -2
- data/lib/dtas/source/av_ff_common.rb +1 -1
- data/lib/dtas/source/sox.rb +1 -1
- data/lib/dtas/splitfx.rb +3 -5
- data/lib/dtas/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a438c78c4e4d0f01c8eb39a7f1b485908aada064999fff95a4a0af5adb6250b8
|
4
|
+
data.tar.gz: fc98612cd6e13dcd16d2f7e0cfc46830c182b5812be0c1c4b82d063c1e7d8d2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5346176f2434ec3250a3cd890731cc239cfc1725df45d18c3c1ce3683ab7e512783aa28a94b5158eb0cdab33bb9a7c194c29495e26c8724120de8246211bb512
|
7
|
+
data.tar.gz: 8696a91edff35cc7b35f930d59d9d62be4835042ac9be6b7f3737395f719f4715c0f8e6af35ca00815d6efdf2d208fd42536b195f0dc661bf0738e890ed4b224
|
data/GIT-VERSION-FILE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION = 0.
|
1
|
+
VERSION = 0.19.0
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013-
|
1
|
+
# Copyright (C) 2013-2021 all contributors <dtas-all@nongnu.org>
|
2
2
|
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
|
3
3
|
all::
|
4
4
|
pkg = dtas
|
@@ -74,5 +74,17 @@ $(pkgtgz): .tgz-manifest
|
|
74
74
|
|
75
75
|
package: $(pkgtgz) $(pkggem)
|
76
76
|
|
77
|
+
# Install symlinks to ~/bin (which is hopefuly in PATH) which point to
|
78
|
+
# this source tree.
|
79
|
+
# prefix + bindir matches git.git Makefile:
|
80
|
+
prefix = $(HOME)
|
81
|
+
bindir = $(prefix)/bin
|
82
|
+
symlink-install :
|
83
|
+
mkdir -p $(bindir)
|
84
|
+
dtas=$(CURDIR)/dtas.sh && cd $(bindir) && \
|
85
|
+
for x in $(CURDIR)/bin/*; do \
|
86
|
+
ln -sf "$$dtas" $$(basename "$$x"); \
|
87
|
+
done
|
88
|
+
|
77
89
|
.PHONY: all .FORCE-GIT-VERSION-FILE test $(test_units) NEWS
|
78
90
|
.PHONY: check-warnings fix-perms
|
data/INSTALL
CHANGED
@@ -29,17 +29,12 @@ For future upgrades of dtas
|
|
29
29
|
|
30
30
|
Grab the latest tarball from our HTTPS site:
|
31
31
|
|
32
|
-
https://80x24.org/dtas/2021/dtas-0.
|
32
|
+
https://80x24.org/dtas/2021/dtas-0.19.0.tar.gz
|
33
33
|
|
34
|
-
$ tar zxvf dtas-0.
|
35
|
-
$ cd dtas-0.
|
34
|
+
$ tar zxvf dtas-0.19.0.tar.gz
|
35
|
+
$ cd dtas-0.19.0
|
36
36
|
$ sudo ruby setup.rb
|
37
37
|
|
38
|
-
GNU/Linux users may optionally install the "sleepy_penguin" RubyGem
|
39
|
-
for a tiny speed improvement over the default "fiddle" RubyGem.
|
40
|
-
|
41
|
-
* sleepy_penguin - https://yhbt.net/sleepy_penguin/
|
42
|
-
|
43
38
|
# CONTACT
|
44
39
|
|
45
40
|
Please do not hesitate to send plain-text mail to <dtas-all@nongnu.org>
|
data/NEWS
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
# 0.19.0 / 2021-09-05
|
2
|
+
|
3
|
+
dtas 0.19.0 - odd pathname fixes
|
4
|
+
|
5
|
+
|
6
|
+
Non-UTF-8-encoded pathnames now handled properly by dtas-mlib.
|
7
|
+
Shell-unfriendly filenames are handled properly if they require
|
8
|
+
ffmpeg (they were always handled properly when using sox).
|
9
|
+
|
10
|
+
Some minor URL and doc updates, too, and there's a new
|
11
|
+
"make symlink-install" target for users who lack permissions
|
12
|
+
to install RubyGems.
|
13
|
+
|
14
|
+
6 changes since v0.18.1 (2021-02-13):
|
15
|
+
|
16
|
+
mlib: pathnames may be blobs
|
17
|
+
README: replace NNTP URL with NNTPS
|
18
|
+
gemspec: allow building gem without setting VERSION
|
19
|
+
build: add "symlink-install" target
|
20
|
+
do not shell-quote filenames for environment
|
21
|
+
doc: use Tor v3 .onion URLs
|
22
|
+
|
1
23
|
# 0.18.1 / 2021-02-13
|
2
24
|
|
3
25
|
dtas 0.18.1
|
data/README
CHANGED
@@ -81,18 +81,18 @@ Mailing list archives available at <https://80x24.org/dtas-all/> or
|
|
81
81
|
|
82
82
|
No subscription is necessary to post to the mailing list.
|
83
83
|
You may also read via:
|
84
|
-
NNTP: <
|
85
|
-
<nntp://
|
84
|
+
NNTP: <nntps://news.public-inbox.org/inbox.comp.audio.dtas>
|
85
|
+
<nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas>
|
86
86
|
<nntp://news.gmane.io/gmane.comp.audio.dtas.general>
|
87
87
|
IMAP: <imaps://anon:mous@public-inbox.org/inbox.comp.audio.dtas.0>
|
88
|
-
<imap://anon:mous@
|
88
|
+
<imap://anon:mous@7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas.0>
|
89
89
|
Atom: <https://80x24.org/dtas-all/new.atom>
|
90
|
-
<http://
|
90
|
+
<http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/dtas-all/new.atom>
|
91
91
|
(.onion URLs require Tor: <https://www.torproject.org/>)
|
92
92
|
|
93
93
|
## Copyright
|
94
94
|
|
95
|
-
Copyright 2013-
|
95
|
+
Copyright 2013-2021 all contributors <dtas-all@nongnu.org>
|
96
96
|
License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
|
97
97
|
|
98
98
|
dtas is copyrighted Free Software by all contributors, see logs
|
data/dtas.gemspec
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# Copyright (C) 2013-
|
1
|
+
# Copyright (C) 2013-2021 all contributors <dtas-all@nongnu.org>
|
2
2
|
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
manifest = File.read('.gem-manifest').split(/\n/)
|
5
5
|
s.name = %q{dtas}
|
6
|
-
s.version = ENV["VERSION"].dup
|
6
|
+
s.version = (ENV["VERSION"] || '0.19.0').dup
|
7
7
|
s.authors = ["dtas hackers"]
|
8
8
|
s.summary = "duct tape audio suite for *nix"
|
9
9
|
s.description = File.read("README").split(/\n\n/)[1].strip
|
data/dtas.sh
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
#!/bin/sh -e
|
2
|
+
# symlink this file to a directory in PATH to run dtas (or anything in bin/*)
|
3
|
+
# without needing perms to install globally. Used by "make symlink-install"
|
4
|
+
p=$(realpath "$0" || readlink "$0") # neither is POSIX, but common
|
5
|
+
p=$(dirname "$p") c=$(basename "$0") # both are POSIX
|
6
|
+
exec ${RUBY-ruby} -I"$p"/lib "$p"/bin/"${c%.sh}" "$@"
|
7
|
+
: this script is too short to copyright
|
data/lib/dtas/mlib.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# Copyright (C) 2015-
|
2
|
+
# Copyright (C) 2015-2021 all contributors <dtas-all@nongnu.org>
|
3
3
|
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
|
4
4
|
# frozen_string_literal: true
|
5
5
|
#
|
@@ -129,9 +129,13 @@ class DTAS::Mlib # :nodoc:
|
|
129
129
|
comments.where(q).delete
|
130
130
|
tmp.each do |tid, val|
|
131
131
|
v = vals[val: val]
|
132
|
-
|
133
|
-
|
134
|
-
|
132
|
+
begin
|
133
|
+
q[:val_id] = v ? v[:id] : vals.insert(val: val)
|
134
|
+
q[:tag_id] = tid
|
135
|
+
comments.insert(q)
|
136
|
+
rescue => e
|
137
|
+
warn "E: #{e.message} (#{e.class}) q=#{q.inspect} val=#{val.inspect}"
|
138
|
+
end
|
135
139
|
end
|
136
140
|
end
|
137
141
|
end
|
@@ -214,12 +218,16 @@ class DTAS::Mlib # :nodoc:
|
|
214
218
|
end
|
215
219
|
end
|
216
220
|
|
221
|
+
def maybe_blob(path)
|
222
|
+
path.valid_encoding? ? path : Sequel.blob(path)
|
223
|
+
end
|
224
|
+
|
217
225
|
def scan_file(path, st, parent_id)
|
218
226
|
return if @suffixes !~ path || st.size == 0
|
219
227
|
|
220
228
|
# no-op if no change
|
221
229
|
unless @force
|
222
|
-
if node = @db[:nodes][name: path, parent_id: parent_id]
|
230
|
+
if node = @db[:nodes][name: maybe_blob(path), parent_id: parent_id]
|
223
231
|
return if st.ctime.to_i == node[:ctime] || node[:tlen] == DM_IGN
|
224
232
|
end
|
225
233
|
end
|
@@ -271,14 +279,16 @@ class DTAS::Mlib # :nodoc:
|
|
271
279
|
node_id = node.delete(:id)
|
272
280
|
@db[:nodes].where(id: node_id).update(node.merge(q))
|
273
281
|
node[:id] = node_id
|
282
|
+
rescue => e
|
283
|
+
warn "E: #{e.message} (#{e.class}) node=#{node.inspect}"
|
274
284
|
end
|
275
285
|
|
276
286
|
def node_lookup(parent_id, name)
|
277
|
-
@db[:nodes][name: name, parent_id: parent_id]
|
287
|
+
@db[:nodes][name: maybe_blob(name), parent_id: parent_id]
|
278
288
|
end
|
279
289
|
|
280
290
|
def node_ensure(parent_id, name, tlen, ctime = nil)
|
281
|
-
q = { name: name, parent_id: parent_id }
|
291
|
+
q = { name: maybe_blob(name), parent_id: parent_id }
|
282
292
|
if node = @db[:nodes][q]
|
283
293
|
node_update_maybe(node, tlen, ctime)
|
284
294
|
else
|
@@ -289,6 +299,8 @@ class DTAS::Mlib # :nodoc:
|
|
289
299
|
node[:id] = @db[:nodes].insert(node)
|
290
300
|
end
|
291
301
|
node
|
302
|
+
rescue => e
|
303
|
+
warn "E: #{e.message} (#{e.class}) q=#{q.inspect}"
|
292
304
|
end
|
293
305
|
|
294
306
|
def cd(path)
|
data/lib/dtas/partstats.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
# License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
|
4
4
|
# frozen_string_literal: true
|
5
5
|
require_relative '../dtas'
|
6
|
-
require_relative 'xs'
|
7
6
|
require_relative 'process'
|
8
7
|
require_relative 'sigevent'
|
9
8
|
|
@@ -56,7 +55,7 @@ class DTAS::PartStats # :nodoc:
|
|
56
55
|
rd, wr = IO.pipe
|
57
56
|
env = opts[:env]
|
58
57
|
env = env ? env.dup : {}
|
59
|
-
env["INFILE"] =
|
58
|
+
env["INFILE"] = @infile
|
60
59
|
env["TRIMFX"] = "trim #{trim_part.tbeg}s #{trim_part.tlen}s"
|
61
60
|
opts = { pgroup: true, close_others: true, err: wr }
|
62
61
|
pid = spawn(env, CMD, opts)
|
@@ -186,7 +186,7 @@ module DTAS::Source::AvFfCommon # :nodoc:
|
|
186
186
|
|
187
187
|
e["PROBE"] = @probe_harder ? @probe_harder.join(' ') : nil
|
188
188
|
# make sure these are visible to the source command...
|
189
|
-
e["INFILE"] =
|
189
|
+
e["INFILE"] = @infile
|
190
190
|
e["AMAP"] = amap
|
191
191
|
e["SSPOS"] = sspos
|
192
192
|
e["RGFX"] = rg_state.effect(self) || nil
|
data/lib/dtas/source/sox.rb
CHANGED
@@ -113,7 +113,7 @@ class DTAS::Source::Sox # :nodoc:
|
|
113
113
|
def src_spawn(player_format, rg_state, opts)
|
114
114
|
raise "BUG: #{self.inspect}#src_spawn called twice" if @to_io
|
115
115
|
e = @env.merge!(player_format.to_env)
|
116
|
-
e["INFILE"] =
|
116
|
+
e["INFILE"] = @infile
|
117
117
|
|
118
118
|
# make sure these are visible to the "current" command...
|
119
119
|
e["TRIMFX"] = trimfx
|
data/lib/dtas/splitfx.rb
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
require_relative '../dtas'
|
5
5
|
require_relative 'format'
|
6
6
|
require_relative 'process'
|
7
|
-
require_relative 'xs'
|
8
7
|
require 'tempfile'
|
9
8
|
|
10
9
|
# The backend for dtas-splitfx(1) command, but also supported by dtas-player
|
@@ -13,7 +12,6 @@ require 'tempfile'
|
|
13
12
|
class DTAS::SplitFX # :nodoc:
|
14
13
|
CMD = 'sox "$INFILE" $COMMENTS $OUTFMT $OUTDST $TRIMFX $FX $RATEFX $DITHERFX'
|
15
14
|
include DTAS::Process
|
16
|
-
include DTAS::XS
|
17
15
|
attr_reader :infile, :env, :command
|
18
16
|
|
19
17
|
# for --trim on the command-line
|
@@ -404,10 +402,10 @@ class DTAS::SplitFX # :nodoc:
|
|
404
402
|
end
|
405
403
|
|
406
404
|
def infile_env(env, infile)
|
407
|
-
env["INFILE"] =
|
405
|
+
env["INFILE"] = infile
|
408
406
|
dir, base = File.split(File.expand_path(infile))
|
409
|
-
env["INDIR"] =
|
410
|
-
env["INBASE"] =
|
407
|
+
env["INDIR"] = dir
|
408
|
+
env["INBASE"] = base
|
411
409
|
end
|
412
410
|
|
413
411
|
def expand_cmd(env, command) # for display purposes only
|
data/lib/dtas/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
DTAS::VERSION = '0.
|
1
|
+
DTAS::VERSION = '0.19.0'.freeze # :nodoc:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dtas hackers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |-
|
14
14
|
Free Software command-line tools for audio playback, mastering, and
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- dtas-linux.gemspec
|
87
87
|
- dtas-mpris.gemspec
|
88
88
|
- dtas.gemspec
|
89
|
+
- dtas.sh
|
89
90
|
- examples/README
|
90
91
|
- examples/splitfx.sample.yml
|
91
92
|
- examples/tfx.sample.yml
|
@@ -228,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
229
|
- !ruby/object:Gem::Version
|
229
230
|
version: '0'
|
230
231
|
requirements: []
|
231
|
-
rubygems_version: 3.
|
232
|
+
rubygems_version: 3.3.0.dev
|
232
233
|
signing_key:
|
233
234
|
specification_version: 4
|
234
235
|
summary: duct tape audio suite for *nix
|