Zbigniew Jędrzejewski-Szmek [Mon, 30 Jun 2014 13:41:01 +0000 (09:41 -0400)]
man: mention x-initrd.mount option in fstab options list
Zbigniew Jędrzejewski-Szmek [Mon, 30 Jun 2014 13:27:16 +0000 (09:27 -0400)]
man: mention that x-systemd.device-timeout is only for fstab
Reformat fstab options description. Now they are easier to read and
show up in systemd.directives(7).
Use a single sublist for both /etc/fstab and /etc/crypttab options.
Many of them can be used in both places. crypttab(5) is updated to use
the same docbook elements, so formatting is uniform.
Zbigniew Jędrzejewski-Szmek [Sat, 28 Jun 2014 17:21:01 +0000 (13:21 -0400)]
man: beef up systemd-fsck description
Zbigniew Jędrzejewski-Szmek [Mon, 30 Jun 2014 22:41:17 +0000 (18:41 -0400)]
cryptsetup: allow x-systemd.device-timeout
https://bugs.freedesktop.org/show_bug.cgi?id=54210
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2014 19:03:05 +0000 (15:03 -0400)]
fstab-generator: allow x-systemd.device-timeout for swap units
Zbigniew Jędrzejewski-Szmek [Fri, 27 Jun 2014 16:12:07 +0000 (12:12 -0400)]
Move x-systemd-device.timeout handling from core to fstab-generator
Instead of adjusting job timeouts in the core, let fstab-generator
write out a dropin snippet with the appropriate JobTimeout.
x-systemd-device.timeout option is removed from Options= line
in the generated unit.
The functions to write dropins are moved from core/unit.c to
shared/dropin.c, to make them available outside of core.
generator.c is moved to libsystemd-label, because it now uses
functions defined in dropin.c, which are in libsystemd-label.
Lennart Poettering [Mon, 30 Jun 2014 22:28:54 +0000 (00:28 +0200)]
man: reference $TMPDIR, not $TMP in file-hierarchy(7)
This what environ(7) and POSIX define, so that's what we should
reference.
Lennart Poettering [Mon, 30 Jun 2014 22:16:37 +0000 (00:16 +0200)]
update TODO
Lennart Poettering [Mon, 30 Jun 2014 22:16:17 +0000 (00:16 +0200)]
man: document systemd-update-done.service
Tom Gundersen [Mon, 30 Jun 2014 22:05:03 +0000 (00:05 +0200)]
man: file-hierarchy - minor fixes
Leave non-specified top-level dirs out of the spec, and minor cleanups.
Lennart Poettering [Mon, 30 Jun 2014 21:30:00 +0000 (23:30 +0200)]
man: document how to query $libdir for the primary architecture using pkg-config
Lennart Poettering [Mon, 30 Jun 2014 21:10:11 +0000 (23:10 +0200)]
pc: no longer expose exec_prefix in .pc file
There's little reason to export this, so let's drop it to minimize the
file a bit.
Lennart Poettering [Mon, 30 Jun 2014 21:09:42 +0000 (23:09 +0200)]
pc: expose more drop-in dirs in the .pc file
Lennart Poettering [Mon, 30 Jun 2014 21:04:26 +0000 (23:04 +0200)]
pc: export $libdir in the .pc file
This is useful for code that tries to figure out the primary arch's
$libdir on the local system, given that is different on the various
Linuxes.
Thomas Hindoe Paaboel Andersen [Mon, 30 Jun 2014 20:54:21 +0000 (22:54 +0200)]
man: file-hierarchy - typo fixes
Lennart Poettering [Mon, 30 Jun 2014 20:48:06 +0000 (22:48 +0200)]
man: deemphesize Fedora-specific "lib64", only mention the more generic $libdir
Lennart Poettering [Mon, 30 Jun 2014 19:44:49 +0000 (21:44 +0200)]
update TODO
Lennart Poettering [Mon, 30 Jun 2014 19:44:05 +0000 (21:44 +0200)]
units: skip mounting /tmp if it is a symlink
We shouldn't get confused if people have symlinked /tmp somewhere, so
let's simply skip the mount then.
Thomas Hindoe Paaboel Andersen [Mon, 30 Jun 2014 20:38:17 +0000 (22:38 +0200)]
man: daemon - typo fix
Lennart Poettering [Mon, 30 Jun 2014 17:53:10 +0000 (19:53 +0200)]
tmpfiles: explicitly set mode for /run/log
Lennart Poettering [Mon, 30 Jun 2014 17:52:44 +0000 (19:52 +0200)]
man: a couple of additions to file-hierarchy(7)
Lennart Poettering [Mon, 30 Jun 2014 17:06:18 +0000 (19:06 +0200)]
tmpfiles: don't do automatic cleanup in $XDG_RUNTIME_DIR
Now that logind will clean up all IPC resources of a user we should
really consider $XDG_RUNTIME_DIR as just another kind of IPC with the
same life-cycle logic as the other IPC resources. This should be safe
now to do since every user gets his own $XDG_RUNTIME_DIR tmpfs instance
with a fixed size limit, so that flooding of it will more effectively be
averted.
Lennart Poettering [Mon, 30 Jun 2014 17:06:11 +0000 (19:06 +0200)]
man: drop references to manual StandardError=syslog from daemon(7), we do this implicitly since ages
Lennart Poettering [Mon, 30 Jun 2014 17:05:17 +0000 (19:05 +0200)]
man: add a minimized, modernized description of the file system hierarchy systemd suggests
Lennart Poettering [Mon, 30 Jun 2014 14:22:12 +0000 (16:22 +0200)]
nspawn: block open_by_handle_at() and others via seccomp
Let's protect ourselves against the recently reported docker security
issue. Our man page makes clear that we do not make any security
promises anyway, but well, this one is easy to mitigate, so let's do it.
While we are at it block a couple of more syscalls that are no good in
containers, too.
Lennart Poettering [Mon, 30 Jun 2014 13:20:59 +0000 (15:20 +0200)]
nspawn: let's avoid using goto to wildly for non-cleanup purposes
Lennart Poettering [Mon, 30 Jun 2014 13:19:00 +0000 (15:19 +0200)]
nspawn: simplify exit condition check
Luke Shumaker [Mon, 30 Jun 2014 00:18:03 +0000 (20:18 -0400)]
nspawn: log a warning on failure from wait_for_terminate()
This is at the suggestion of Djalal Harouni on the mailing list, and
reflects the behavior of shared/util.c:wait_for_terminate_and_warn().
Luke Shumaker [Mon, 30 Jun 2014 00:18:02 +0000 (20:18 -0400)]
nspawn: Fix regression with exit status
Commit 113cea8 introduced a bug that caused the exit code of systemd-nspawn
to not reflect the exit code of the program executed in the container.
Luke Shumaker [Mon, 30 Jun 2014 00:18:01 +0000 (20:18 -0400)]
shared/util.c:wait_for_terminate_and_warn(): Add a comment on the return values
Tom Gundersen [Sun, 29 Jun 2014 21:58:18 +0000 (23:58 +0200)]
units: networkd - don't order wait-online.service before network.target
Reported by Michael Olbrich.
Tom Gundersen [Sun, 29 Jun 2014 21:47:13 +0000 (23:47 +0200)]
networkd: dhcp - use same metric for all DHCP-related routes
Lennart Poettering [Mon, 30 Jun 2014 10:41:26 +0000 (12:41 +0200)]
util: fix comment
Ronny Chevalier [Wed, 11 Jun 2014 19:20:52 +0000 (21:20 +0200)]
tests: add missing XDG_RUNTIME_DIR env variable
Otherwise the test fails because specifier_runtime() returns -ENOTSUP
when XDG_RUNTIME_DIR is not set.
Lennart Poettering [Sun, 29 Jun 2014 20:26:19 +0000 (22:26 +0200)]
sysusers: split up default sysusers snippet
This ways, distributions have an easier way to replace the OS specific
generic groups/users while keeping systemd's own.
Lennart Poettering [Sun, 29 Jun 2014 20:15:33 +0000 (22:15 +0200)]
util: refuse considering UID 0xFFFF and 0xFFFFFFFF valid
Lennart Poettering [Sun, 29 Jun 2014 20:15:01 +0000 (22:15 +0200)]
man: document the sysusers tool
Tom Gundersen [Sun, 29 Jun 2014 20:26:06 +0000 (22:26 +0200)]
network-internal: initialize _cleanup_ variable
Susant Sahani [Sun, 29 Jun 2014 19:39:08 +0000 (01:09 +0530)]
netowrkd:deserialize_dhcp_routes verify strndup ret
strndup need to be chcked
Tom Gundersen [Sun, 29 Jun 2014 14:59:33 +0000 (16:59 +0200)]
networkd: dhcp - update the lifetime of an existing address
The logic otherwise is that we leave anything preconfigured alone, but in the case of DHCP
we actually need to update it whenever the lease is renewed.
Tom Gundersen [Sun, 29 Jun 2014 14:42:43 +0000 (16:42 +0200)]
sd-dhcp-client: don't fail hard if UDP socket can not be bound
Even if we cannot renew the lease at T1, we will likely succeed at T2, so warn and ignore the failure.
This could happen if for whatever reason the received address is not yet configured, or it has
been lost.
Tom Gundersen [Sun, 29 Jun 2014 14:34:43 +0000 (16:34 +0200)]
networkd: improve DHCP error logging
Tom Gundersen [Sun, 29 Jun 2014 14:20:33 +0000 (16:20 +0200)]
units: local-fs.target - don't pull in default dependencies
Reported by Gerardo Exequiel Pozzi:
Looks like [commit
a4a878d0] also changes a unrelated file
(units/local-fs.target) [partially]reverting the commit
40f862e3 (filesystem targets: disable default dependencies)
The side effect, at least in my case is that the "nofail" option in both
"crypttab" and "fstab" has partial effect does the default timeout
instead of continue normal boot without timeout.
Tom Gundersen [Sat, 28 Jun 2014 14:21:58 +0000 (16:21 +0200)]
networkd: set static addresses immediately
Don't wait for IPv4LL nor DHCP to finish before setting statically configured addresses.
Eugene Yakubovich [Fri, 27 Jun 2014 22:00:06 +0000 (15:00 -0700)]
Add support for DHCP static route options
This adds support for DHCP options 33 and 121: Static Route and
Classless Static Route. To enable this feature, set UseRoutes=true
in .network file. Returned routes are added to the routing table.
Tom Gundersen [Sat, 28 Jun 2014 14:00:49 +0000 (16:00 +0200)]
networkd: merge DHCPv4 and DHCPv6 config
If there are v4 or v6 specific options we can keep those in separate sections,
but for the common options, we will use only one.
Moreovere only use DHCP=[yes/both|no/none|v4|v6] to enable or disable the clients.
Patrik Flykt [Thu, 26 Jun 2014 13:18:43 +0000 (16:18 +0300)]
sd-dhcp-client/networkd: set lifetimes for IPv4 addresses
Note that /proc/sys/net/ipv4/ip_dynaddr needs to be non-zero.
[tomegun: hook up DHCP renew events to increase the lifetime when necessary]
Tom Gundersen [Sun, 29 Jun 2014 11:11:44 +0000 (13:11 +0200)]
networkd/sd-dhcp-server: only start dhcp server when necessary
Jan Engelhardt [Fri, 27 Jun 2014 22:50:28 +0000 (00:50 +0200)]
doc: use expanded forms for written style
Jan Engelhardt [Fri, 27 Jun 2014 22:49:12 +0000 (00:49 +0200)]
doc: typographical improvements and choice of words
Jan Engelhardt [Fri, 27 Jun 2014 22:48:28 +0000 (00:48 +0200)]
doc: grammatical corrections
Zbigniew Jędrzejewski-Szmek [Sat, 28 Jun 2014 04:06:30 +0000 (00:06 -0400)]
units: remove RefuseManualStart from units which are always around
In a normal running system, non-passive targets and units used during
early bootup are always started. So refusing "manual start" for them
doesn't make any difference, because a "start" command doesn't cause
any action.
In early boot however, the administrator might want to start on
of those targets or services by hand. We shouldn't interfere with that.
Note: in case of systemd-tmpfiles-setup.service, really running the
unit after system is up would break the system. So e.g. restarting
should not be allowed. The unit has "RefuseManualStop=yes", which
prevents restart too.
Lennart Poettering [Fri, 27 Jun 2014 18:42:36 +0000 (20:42 +0200)]
man: split systemd.network(5) and related into various sections for better readability
Lennart Poettering [Fri, 27 Jun 2014 18:42:31 +0000 (20:42 +0200)]
update TODO
Lennart Poettering [Fri, 27 Jun 2014 18:42:06 +0000 (20:42 +0200)]
man: document automatic networkd IP range allocation
Tom Hirst [Wed, 25 Jun 2014 11:57:11 +0000 (11:57 +0000)]
rules: don't enable usb pm for Avocent devices
The Avocent KVM over IP devices doesn't work correctly with USB power
management enabled.
Kay Sievers [Fri, 27 Jun 2014 17:54:45 +0000 (19:54 +0200)]
libudev: queue - watch entire directory to allow the re-use of the watch descriptor
Lennart Poettering [Fri, 27 Jun 2014 17:56:11 +0000 (19:56 +0200)]
update TODO
Michał Bartoszkiewicz [Thu, 26 Jun 2014 20:11:35 +0000 (22:11 +0200)]
journald: make MaxFileSec really default to 1month
journald.conf(5) states that the default for MaxFileSec is one month,
but the code didn't respect that.
Lennart Poettering [Fri, 27 Jun 2014 17:51:14 +0000 (19:51 +0200)]
man: fix sd_watchdog_enabled() prototype in man page
https://bugs.freedesktop.org/show_bug.cgi?id=80597
Lennart Poettering [Fri, 27 Jun 2014 17:38:21 +0000 (19:38 +0200)]
update TODO
Lennart Poettering [Fri, 27 Jun 2014 17:32:14 +0000 (19:32 +0200)]
coredump: simplify compression logic a bit
This also make sure we remove the original coredump temporary file if we
successfully managed to compress the coredump.
Lennart Poettering [Fri, 27 Jun 2014 17:09:22 +0000 (19:09 +0200)]
coredump: replace Compression= setting by simpler Compress= boolean setting
Let's move things closer to journald's configuration settings, which
knows Compress= already, as a boolean. This makes things more uniform,
but also gives us more freedom to possibly swap out the used compression
algorithm one day.
Lennart Poettering [Fri, 27 Jun 2014 17:04:31 +0000 (19:04 +0200)]
coredump: don't expose the compression level as configuration option
This sounds overly low-level and implementation-detaily. Let's just
use the default level XZ suggests. This gives us more room to possibly
swap out the compression algorithm used, as the compression level range
will not leak into user configuration.
Lennart Poettering [Fri, 27 Jun 2014 16:59:30 +0000 (18:59 +0200)]
journald: invoking fstatvfs() is now redundant in the vacuuming code
Lennart Poettering [Fri, 27 Jun 2014 16:59:12 +0000 (18:59 +0200)]
coredump: don't be annoyed if another coredump hook removes our coredump while we work on it
Lennart Poettering [Fri, 27 Jun 2014 16:58:44 +0000 (18:58 +0200)]
coredump: fix how the compression level is verified
Lennart Poettering [Fri, 27 Jun 2014 16:58:23 +0000 (18:58 +0200)]
update TODO
Lennart Poettering [Fri, 27 Jun 2014 16:57:24 +0000 (18:57 +0200)]
coredump: add simple coredump vacuuming
When disk space taken up by coredumps grows beyond a configured limit
start removing the oldest coredump of the user with the most coredumps,
until we get below the limit again.
Lennart Poettering [Fri, 27 Jun 2014 16:34:37 +0000 (18:34 +0200)]
main: uid_to_name() might fail due to OOM, protect against that
Kay Sievers [Fri, 27 Jun 2014 15:42:44 +0000 (17:42 +0200)]
libudev: queue provide file descriptor to watch busy event queue
Kay Sievers [Fri, 27 Jun 2014 12:20:17 +0000 (14:20 +0200)]
libudev: fix udev_queue_get_queue_is_empty() logic
Thomas Hindoe Paaboel Andersen [Thu, 26 Jun 2014 22:17:22 +0000 (00:17 +0200)]
coredumpctl: fix potential deref of null pointer
Thomas Hindoe Paaboel Andersen [Thu, 26 Jun 2014 22:07:39 +0000 (00:07 +0200)]
coredump: make sure variable is set if uncompressed
reorder the code so the fstat is done before we can jump to
uncompressed
Thomas Hindoe Paaboel Andersen [Thu, 26 Jun 2014 21:16:24 +0000 (23:16 +0200)]
coredumpctl: remove unused variable
Thomas Hindoe Paaboel Andersen [Thu, 26 Jun 2014 21:13:12 +0000 (23:13 +0200)]
Patrik Flykt [Tue, 24 Jun 2014 13:24:50 +0000 (16:24 +0300)]
TODO: Add items for the DHCPv6 implementation
Patrik Flykt [Wed, 25 Jun 2014 13:54:30 +0000 (16:54 +0300)]
sd-dhcp6-client: Implement Rapid Commit
Add a Rapid Commit option to Solicit messages and expect a Reply to
be received instead of an Advertise. When receiving a DHCPv6 message
from the server in state Solicit, continue testing whether the
message is a Reply. Ease up the message type checking, it's not fatal
if the message is of a wrong type.
Add helper functions to set/get the rapid commit of a lease. See
RFC 3315, sections 17., 17.1.2., 17.1.4. and 18.1.8.
Patrik Flykt [Wed, 25 Jun 2014 11:06:02 +0000 (14:06 +0300)]
sd-dhcp6-client: Implement Renew and Rebind
Start sending Renew and Rebind DHCPv6 messages when respective timers T1
and T2 expire. Rebind messages do not include a Server ID option and the
Rebind procedure ends when the last IPv6 address valid lifetime expires,
whereafter the client restarts the address acquisition procedure by
Soliciting for available servers.
See RFC 3315, sections 18.1.3. and 18.1.4. for details.
Patrik Flykt [Wed, 25 Jun 2014 12:37:58 +0000 (15:37 +0300)]
sd-dhcp6-lease: Add helper function to compute remaining expiry time
Create a helper function to compute the remaining time in seconds from
time T2 to the IPv6 address with the longest lifetime. The computed
time is used as the Maximum Retransmission Duration in Rebinding state.
See RFC 3315, section 18.1.4. for details.
Patrik Flykt [Tue, 24 Jun 2014 13:20:32 +0000 (16:20 +0300)]
sd-dhcp6-client: Add Option Request Option support
Provide a function to request more options from the DHCPv6 server.
Provide a sensible default set at startup and add test basic test
cases for the intended usage.
Define DNS and NTP related option codes and add comments for the
unassigned codes.
Patrik Flykt [Wed, 25 Jun 2014 09:36:55 +0000 (12:36 +0300)]
networkd: Properly stop router solicitation and DHCPv6 client
When a link fails or looses carrier, always stop ongoing router
solicitation and any DHCPv6 client that may be running.
Patrik Flykt [Wed, 25 Jun 2014 09:33:48 +0000 (12:33 +0300)]
sd-icmp6-nd: Add function to stop ongoing ICMPv6 discovery
In some use cases stopping an ongoing ICMPv6 discovery is more
useful than always unreferencing the whole structure.
Patrik Flykt [Wed, 25 Jun 2014 07:36:56 +0000 (10:36 +0300)]
sd-dhcp6-client: return NULL from _unref() like the other sd-* libraries
In order to keep the refcounting working, a DONT_DESTROY macro similar
to the one in sd-bus has been added also to DHCPv6.
Michał Bartoszkiewicz [Thu, 26 Jun 2014 08:16:27 +0000 (10:16 +0200)]
timer: name the stamp file consistently
The stamp file for systemd --user timers was named stamp-foo.timer if
XDG_DATA_HOME was unset, but foo.timer otherwise.
Daniel Mack [Thu, 26 Jun 2014 08:35:52 +0000 (10:35 +0200)]
coredumpctl: fix HAVE_XZ check
Daniel Mack [Thu, 26 Jun 2014 08:31:23 +0000 (10:31 +0200)]
coredumpctl: fix build with !HAVE_XZ
Fixes the following build error:
CCLD coredumpctl
src/journal/coredumpctl.o: In function `save_core':
/src/systemd-master/src/journal/coredumpctl.c:656:
undefined reference to `decompress_stream'
collect2: error: ld returned 1 exit status
make[2]: *** [coredumpctl] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Uoti Urpala [Mon, 23 Jun 2014 13:50:03 +0000 (16:50 +0300)]
core/transaction: fix cycle break attempts outside transaction
Patch fixes some incorrect-looking code in transaction.c.
It could fix cases where Debian users with bad package configurations
had systemd go into an infinite loop printing messages about breaking an
ordering cycle, though I have not reproduced that problem myself.
transaction_verify_order_one() considers jobs/units outside current
transaction when checking whether ordering dependencies cause cycles.
It would also incorrectly try to break cycles at these jobs; this
cannot work, as the break action is to remove the job from the
transaction, which is a no-op if the job isn't part of the transaction
to begin with. The unit_matters_to_anchor() test also looks like it
would not work correctly for non-transaction jobs. Add a check to
verify that the unit is part of the transaction before considering a
job a candidate for deletion.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259
Filipe Brandenburger [Wed, 25 Jun 2014 06:06:47 +0000 (23:06 -0700)]
build-sys: include PolicyKit files as part of distribution
So that building from an archive works even if intltool is not present.
The README file already mentioned that intltool should only be required
when building from git.
Tested: Built it from the distribution archive on a host without intltool.
$ ./configure --enable-polkit
$ make
Filipe Brandenburger [Wed, 25 Jun 2014 06:06:46 +0000 (23:06 -0700)]
build-sys: disable NLS support if intltool is not found
IT_PROG_INTLTOOL makes configure fail if intltool is not present. If we can
not find intltool, then disable NLS (otherwise make in po/ fails since MSGFMT
will not be defined.)
Tested: Built it on a host without intltool.
$ ./configure --enable-nls
...
checking for intltool-merge... no
configure: error: --enable-nls requested but intltool not found
$ ./configure --disable-polkit
...
checking for intltool-merge... no
configure: WARNING: *** Disabling NLS support because intltool was not found
checking whether NLS is requested... no
...
$ make
https://bugs.freedesktop.org/show_bug.cgi?id=79692
Filipe Brandenburger [Wed, 25 Jun 2014 06:06:45 +0000 (23:06 -0700)]
build-sys: add explicit support for --disable-nls
In particular, disable intltool when --disable-nls is passed to configure.
Tested: Built it on a host without intltool or gettext.
$ ./configure --disable-nls --disable-polkit
$ make
Tom Hirst [Wed, 25 Jun 2014 11:45:45 +0000 (11:45 +0000)]
core: Don't require cgroups xattr support
Failure to mount cgroups with xattr should not be fatal
Michael Olbrich [Wed, 25 Jun 2014 12:43:57 +0000 (14:43 +0200)]
install: enable timesyncd by default
This treats it similarly to networkd, resolved and others and it matches
what 90-systemd.preset does.
Michał Bartoszkiewicz [Wed, 25 Jun 2014 12:54:48 +0000 (14:54 +0200)]
core: use correct format string for UIDs
Zbigniew Jędrzejewski-Szmek [Thu, 26 Jun 2014 05:02:48 +0000 (01:02 -0400)]
man: add coredump.conf(5)
Zbigniew Jędrzejewski-Szmek [Thu, 26 Jun 2014 03:38:49 +0000 (23:38 -0400)]
coredump+coredumpctl: add COREDUMP_FILENAME, use in coredumpctl
Zbigniew Jędrzejewski-Szmek [Thu, 26 Jun 2014 00:53:40 +0000 (20:53 -0400)]
coredump: make compression configurable
Add Compression={none,xz} and CompressionLevel=0-9 settings. Defaults
are xz/6.
Compression=filesystem may be added later.
I picked "xz" for the compression "type", since we might want to add
different compressors later on. XZ is fairly memory and CPU intensive, and
embedded users will likely want to use LZO or some other lightweight compression
mechanism.
Zbigniew Jędrzejewski-Szmek [Wed, 25 Jun 2014 05:03:03 +0000 (01:03 -0400)]
coredump: compress core files
Unfortunately the core is first written uncompressed, then compressed
by reading from disk and writing to the output file. This is ugly and
slow, but I don't see a way around, if we want to get the backtrace
without keeping everything in memory.
Zbigniew Jędrzejewski-Szmek [Wed, 25 Jun 2014 01:24:46 +0000 (21:24 -0400)]
journal/compress: add stream compression/decompression functions
Zbigniew Jędrzejewski-Szmek [Wed, 25 Jun 2014 01:24:09 +0000 (21:24 -0400)]
journal/compress: simplify compress_blob