Bug 251489 - misc/e2fsprogs-libuuid: libuuid merged in e2fsprogs is outdated relative to util-linux, lacks f.i. uuid_generate_time_safe
Summary: misc/e2fsprogs-libuuid: libuuid merged in e2fsprogs is outdated relative to u...
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Matthias Andree
URL: https://reviews.freebsd.org/D23312
Keywords:
Depends on: 221293 257070
Blocks:
  Show dependency treegraph
 
Reported: 2020-11-30 17:38 UTC by zazckx
Modified: 2024-12-29 12:21 UTC (History)
4 users (show)

See Also:
mandree: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zazckx 2020-11-30 17:38:38 UTC
The libuuid from e2fsprogs lacks lots of new functions.

from comparison of
new:
https://github.com/karelzak/util-linux/blob/master/libuuid/src/libuuid.sym
current:
https://github.com/tytso/e2fsprogs/blob/master/lib/uuid/uuid.h.in

we could know that the libuuid inside e2fsprogs have not been update for a long time. missing function list:

since util-linux 2.20
uuid_generate_time_safe

since util-linux.2.31
uuid_generate_md5
uuid_generate_sha1
uuid_get_template

since util-linux.2.36
uuid_parse_range

these functions might be critical for some packages(I have no idea how to find them out).

I was encountering this problem when installing Budgie Desktop, which depends on 'uuid_generate_time_safe'.
https://github.com/solus-project/budgie-desktop/blob/master/vapi/uuid.vapi#L10

related:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221293
https://reviews.freebsd.org/D23312
Comment 1 Matthias Andree freebsd_committer freebsd_triage 2020-11-30 20:34:13 UTC
OK, this (Budgie) is the first strong point someone makes why the update would be useful in practice and not just as an exercise.  I will dismiss the 

uuid_generate_md5
uuid_generate_sha1

functions as reasons or excuses, the other missing functions are valid reasons to look into updating.

I think we need to brush up https://reviews.freebsd.org/D23312 first, after so many months it may need some love, and it may also need an -exp run.
Comment 2 Yuri Victorovich freebsd_committer freebsd_triage 2020-11-30 20:52:08 UTC
util-linux is now a port: devel/util-linux
It provides libuuid.so
Comment 3 Matthias Andree freebsd_committer freebsd_triage 2020-11-30 21:00:39 UTC
OK, that's good, but we still have conflicts galore, picking those I see on my system (the last two are sort of expected).

Apparently only your dnf and libdnf (the Fedora Linux high-level package manager software) ports use it so far.

  - util-linux-2.36 [FreeBSD-latest] conflicts with getopt-1.1.6 [installed] on /usr/local/bin/getopt
  - util-linux-2.36 [FreeBSD-latest] conflicts with hardlink-0.3.0 [installed] on /usr/local/bin/hardlink
  - util-linux-2.36 [FreeBSD-latest] conflicts with e2fsprogs-libblkid-1.45.6_1 [installed] on /usr/local/include/blkid/blkid.h
  - util-linux-2.36 [FreeBSD-latest] conflicts with e2fsprogs-1.45.6_4 [installed] on /usr/local/man/man8/blkid.8.gz

So while util-linux would scratch the immediate itch, on my system installing it would purge 11 packages that lose e2fsprogs-libuuid, and a dry run of Tools/scripts/bump_revision.pl -l -n e2fsprogs-libuuid identifies 87 ports depending directly on e2fsprogs-libuuid.

Any early proposals to reconcile the differences?  

Else we still need to brush up https://reviews.freebsd.org/D23312 and I'll try to look into getting e2fsprogs ported to util-linux in December.
Comment 4 Matthias Andree freebsd_committer freebsd_triage 2020-11-30 21:04:37 UTC
I don't currently oversee if this list is exhaustive, or if util-linux competes with other packages, too.  How do we find out what other ports might conflict with util-linux efficiently, except the listed cal package?

For the known conflicts: 

Ports requiring e2fsprogs-libuuid:
     1	audio/gsequencer
     2	audio/lash
     3	audio/libgig
     4	audio/linuxsampler
     5	benchmarks/flowgrind
     6	cad/horizon-eda
     7	chinese/fcitx
     8	databases/recutils
     9	deskutils/bijiben
    10	deskutils/gnote
    11	deskutils/nautilus-actions
    12	deskutils/simpleagenda
    13	devel/RStudio
    14	devel/appstream-glib
    15	devel/babeltrace
    16	devel/gearmand
    17	devel/gearmand-devel
    18	devel/ignition-common
    19	devel/libcrossguid
    20	devel/libdap
    21	devel/libewf
    22	devel/libsml
    23	devel/msitools
    24	devel/p5-UUID
    25	devel/pecl-uuid
    26	devel/pmdk
    27	devel/util-linux
    28	devel/xeus
    29	devel/xeus-cling
    30	games/moonlight-embedded
    31	lang/chez-scheme
    32	mail/cyrus-imapd32
    33	math/cadabra2
    34	misc/biblesync
    35	misc/e2fsprogs-libblkid
    36	misc/ignition-fuel-tools
    37	misc/xiphos
    38	multimedia/kodi
    39	multimedia/kodi-devel
    40	multimedia/ustreamer
    41	net-im/profanity
    42	net-im/telepathy-gabble
    43	net-mgmt/ccnet-server
    44	net-mgmt/netdata
    45	net-mgmt/seafile-client
    46	net-mgmt/seafile-gui
    47	net-mgmt/seafile-server
    48	net-p2p/libbt
    49	net/asterisk13
    50	net/asterisk16
    51	net/asterisk18
    52	net/freeswitch
    53	net/glusterfs
    54	net/gupnp
    55	net/mosquitto
    56	net/pacemaker1
    57	net/pacemaker2
    58	net/pjsip
    59	science/cdo
    60	science/qbox
    61	security/openvas8-libraries
    62	security/openvas9-libraries
    63	security/razorback-api
    64	security/snort3
    65	security/tpm2-tools
    66	sysutils/cluster-glue
    67	sysutils/e2fsprogs
    68	sysutils/fusefs-httpdirfs
    69	sysutils/fusefs-ntfs
    70	sysutils/gdisk
    71	sysutils/ltfs
    72	sysutils/passwordsafe
    73	sysutils/pesign
    74	sysutils/rsyslog8
    75	sysutils/syslog-ng
    76	sysutils/syslog-ng324
    77	sysutils/syslog-ng325
    78	sysutils/syslog-ng326
    79	sysutils/syslog-ng327
    80	sysutils/syslog-ng328
    81	sysutils/syslog-ng329
    82	sysutils/tracker
    83	textproc/zorba
    84	www/blastbeat
    85	www/davix
    86	www/libepc
    87	x11/gnome-terminal

e2fsprogs-libblkid is the easy part, only e2fsprogs uses it.

getopt is used by these ports:

     1	devel/compiz-bcop
     2	devel/gitflow
     3	math/eukleides
     4	net/ceph12
     5	net/ceph14
     6	net/pacemaker1
     7	net/pacemaker2
     8	sysutils/password-store
     9	sysutils/tartarus
    10	textproc/rarian
    11	textproc/xmlto
    12	textproc/yodl
    13	x11-fonts/fontpreview
Comment 5 Yuri Victorovich freebsd_committer freebsd_triage 2020-11-30 21:11:16 UTC
(In reply to Matthias Andree from comment #4)

lubuuid.so can be split out into a separate port. This would untangle lubuuid.so from the conflicts problem.
Comment 6 Yuri Victorovich freebsd_committer freebsd_triage 2020-11-30 21:12:36 UTC
OItherwise, I think linuuid.so that devel/util-linux provides is exactly what Linux systems use.
Comment 7 Conrad Meyer freebsd_committer freebsd_triage 2020-12-31 12:45:48 UTC
(In reply to Matthias Andree from comment #3)
util-linux port also conflicts with sysutils/flock, which is:
WWW            : https://www.kernel.org/pub/linux/utils/util-linux/
Comment        : Manage locks from shell scripts

Probably flock port can be dropped in favor of util-linux once the other conflicts are resolved?

Or we could change util-linux port to not distribute flock, getopt, and other conflicting binaries.  And potentially run-depend on other ports that are util-linux components.

As-is util-linux is not that useful if it cannot be installed.  Some GNOME components depend on our existing getopt, which does not appear to be the util-linux version (but may be compatible).
Comment 8 Matthias Andree freebsd_committer freebsd_triage 2022-01-29 11:58:13 UTC
I think this needs to be settled elsewhere, not in e2fsprogs-libuuid.
Once we have a viable util-linux package that does not conflict with five dozen other ports, we can look into making util-linux or spinoffs the main UUID provider.

As soon as that is in place and is about to conflict with e2fsprogs-libuuid, we can negotiate how to settle conflicts and move e2fsprogs-libuuid out of the way. 

Judging that the util-linux/libuuid feature/upgrade request has been open for five years, let's close this PR.
Comment 9 Matthias Andree freebsd_committer freebsd_triage 2024-12-29 11:50:02 UTC
reopen and add arrowd@ because there seems to be some action on the reviews.freebsd.org site (see URL above), but it's not currently looking as though it addressed our concerns #3 and #4 above, so my prior assessment seems to hold that this can not go in. 

Polishing the util-linux port isn't going to work unless it moves all binaries and libraries away.  No way this is going in in 2024, and we need to deal with all potential conflicts, reviewing util-linux implementations vs. standalone also WRT options and quality; other fallout, need to thoroughly run-time test.  I don't think this is going to land soonish.
Comment 10 Gleb Popov freebsd_committer freebsd_triage 2024-12-29 12:21:47 UTC
I read all the comments several times, but still don't get what's the problem.

The util-linux port is only used by editors/sciteco and sysutils/libdnf, from what I gather. It is basically useless until we have subpackages, because it pulls in a ton of stuff we don't need.