Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1419912

Summary: fix building against lz4 (with new versioning scheme)
Product: [Fedora] Fedora Reporter: Michal Sekletar <msekleta>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 24CC: adrian, alanh, amessina, ayurtsev, charles-henri, dinechin, extras-qa, johannbg, jsynacek, k2571822, k2683901, lnykryn, mike, msekleta, muadda, oliver.henshaw, ssahani, s, systemd-maint, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: systemd-229-18.fc24 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1404406 Environment:
Last Closed: 2017-02-09 20:50:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1404406    
Bug Blocks:    

Description Michal Sekletar 2017-02-07 11:52:28 UTC
+++ This bug was initially created as a clone of Bug #1404406 +++

Description of problem:

While building a locally patched version of systemd I noticed that new package builds drop the liblz4 dependency.

$ fedpkg mockbuild --no-cleanup-after --root /etc/mock/fedora-25-x86_64.cfg
$ rpm -qRp /path/to/systemd-231-10.fc25.local.1.x86_64.rpm | grep -i lz4
$ rpm -qRp https://kojipkgs.fedoraproject.org//packages/systemd/231/10.fc25/x86_64/systemd-231-10.fc25.x86_64.rpm | grep -i lz4
liblz4.so.1()(64bit)

From /var/lib/mock/fedora-25-x86_64/root/builddir/build/BUILD/systemd-231/config.log:
configure:18568: checking for LZ4
configure:18575: $PKG_CONFIG --exists --print-errors " liblz4 >= 125 "
Requested 'liblz4 >= 125' but version of lz4 is 1.7.3
You may find new versions of lz4 at http://www.lz4.org/
configure:18578: $? = 1
configure:18592: $PKG_CONFIG --exists --print-errors " liblz4 >= 125 "
Requested 'liblz4 >= 125' but version of lz4 is 1.7.3
You may find new versions of lz4 at http://www.lz4.org/
configure:18595: $? = 1
configure:18609: result: no
Requested 'liblz4 >= 125' but version of lz4 is 1.7.3

The cause is lz4 renumbering from r131 to  1.7.x, and these new packages have been pushed as F24/F25/EL7 updates. Cherry-picking https://github.com/systemd/systemd/commit/3d4cf7de48a74726694abbaa09f9804b845ff3ba (which is not in v231 or v232) fixes this. 

This is not a problem in systemd-231-10.fc25 itself but will crop up in any new builds that you make.

Version-Release number of selected component (if applicable):
systemd-231-10.fc25
lz4-1.7.3-1.fc25

--- Additional comment from Zbigniew Jędrzejewski-Szmek on 2016-12-13 22:48:17 CET ---

I discussed this with ignatenkobrain (who built that last lz4), and I'm going to backport the patch before the next build of systemd.

--- Additional comment from Anthony Messina on 2017-01-14 21:15:45 CET ---

systemd-231-11.fc25.x86_64 was build without LZ4 support creating a lot of "Journal file ... uses an unsupported feature, ignoring file."

https://kojipkgs.fedoraproject.org//packages/systemd/231/11.fc25/data/logs/x86_64/build.log

...
checking for LZ4... no
...


$ systemctl --version
systemd 231
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN

--- Additional comment from Jan Synacek on 2017-01-16 08:09:01 CET ---



--- Additional comment from Jan Synacek on 2017-01-16 08:21:13 CET ---

@zbyszek Any idea, if the error message could be improved to actually say what feature is missing? In its current state, the message is pretty much useless.

--- Additional comment from Jan Synacek on 2017-01-16 12:56:20 CET ---



--- Additional comment from Fedora Update System on 2017-01-16 14:23:14 CET ---

systemd-231-12.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-4e5bd2cfb9

--- Additional comment from Fedora Update System on 2017-01-16 23:24:15 CET ---

systemd-231-12.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-4e5bd2cfb9

--- Additional comment from Zbigniew Jędrzejewski-Szmek on 2017-01-17 05:04:17 CET ---

(In reply to Jan Synacek from comment #4)
> @zbyszek Any idea, if the error message could be improved to actually say
> what feature is missing? In its current state, the message is pretty much
> useless.

It just compares versions. I don't think there's much to add to that.

--- Additional comment from Kinston Hughes on 2017-01-17 13:25:08 CET ---

(In reply to Zbigniew Jędrzejewski-Szmek from comment #8)
> (In reply to Jan Synacek from comment #4144)
> > @zbyszek Any idea, if the error message could be improved to actually say
> > what feature is missing? In its current state, the message is pretty much
> > useless.
> 
> It just compares versions. I don't think there's much to add to that.

How about the name of the feature flag it's incompat with?

--- Additional comment from Zbigniew Jędrzejewski-Szmek on 2017-01-17 14:17:42 CET ---

The detection is done by a set of m4 macros. One *could* make them better, but I don't think we should do that. Why? The part to detect lz4 and print a message if it is missing is already ~10 lines in configure.ac. If this was made to detect a proper error message, it'd likely be a few times that. Now consider that we have maybe 40 other libraries. If they were all detected in the same way, we could write one fancy function. But they are not, we'd need to write lots of macros. The only option that'd scale would be for the configuration system (i.e. autotools and pkg-config in this case) to provide better routines. This is not going to happen. We should just consider switching to something better, when something better exists. Meson certainly has a lot of potential, let's see how it develops.

--- Additional comment from Oliver Henshaw on 2017-01-17 15:21:15 CET ---

I think comment #4 was referring to the message ("...uses an unsupported feature") that systemd emits at runtime.

On the subject of missing features at build time, you would need something like functionality tests outside the build system (so that they don't get configured out when the dependency is not met.)

--- Additional comment from Zbigniew Jędrzejewski-Szmek on 2017-01-17 16:10:39 CET ---

(In reply to Oliver Henshaw from comment #11)
> I think comment #4 was referring to the message ("...uses an unsupported
> feature") that systemd emits at runtime.
Ah, OK. I guess we could do that.

> On the subject of missing features at build time, you would need something
> like functionality tests outside the build system (so that they don't get
> configured out when the dependency is not met.)
http://pkgs.fedoraproject.org/cgit/rpms/systemd.git/commit/?id=25bd358ef1484b59ede5ea247febc0dabf01e821

--- Additional comment from Fedora Update System on 2017-01-17 20:52:51 CET ---

systemd-231-12.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

--- Additional comment from Kinston Hughes on 2017-01-24 21:53:50 CET ---

(In reply to Kinston Hughes from comment #9)
> (In reply to Zbigniew Jędrzejewski-Szmek from comment #8149)
> > (In reply to Jan Synacek from comment #4144150)
> > > @zbyszek Any idea, if the error message could be improved to actually say
> > > what feature is missing? In its current state, the message is pretty much
> > > useless.
> > 
> > It just compares versions. I don't think there's much to add to that.
> 
> How about the name of the feature flag it's incompat with?

(In reply to Zbigniew Jędrzejewski-Szmek from comment #12)
> (In reply to Oliver Henshaw from comment #11164)
> > I think comment #4165 was referring to the message ("...uses an unsupported
> > feature") that systemd emits at runtime.
> Ah, OK. I guess we could do that.
 
Good, I've opened 1416201 for that.

--- Additional comment from Adrian Reber on 2017-02-06 12:30:44 CET ---

Can this change also be made available in Fedora 24. I cannot read my journal files in Fedora 24:

  journal uses an unsupported feature, ignoring file.

--- Additional comment from Mike Gerber on 2017-02-06 20:49:24 CET ---

Also breaks on Fedora 24.

Comment 1 Fedora Update System 2017-02-07 14:23:49 UTC
systemd-229-18.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-a938f8dd36

Comment 2 Fedora Update System 2017-02-08 02:48:27 UTC
systemd-229-18.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-a938f8dd36

Comment 3 Fedora Update System 2017-02-09 20:50:51 UTC
systemd-229-18.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.