diff mbox series

[meta-filesystems,1/2] exfatprogs: add new recipe

Message ID 20230328064802.42713-1-cvubrugier@fastmail.fm
State Superseded
Headers show
Series [meta-filesystems,1/2] exfatprogs: add new recipe | expand

Commit Message

Christophe Vu-Brugier March 28, 2023, 6:48 a.m. UTC
From: Christophe Vu-Brugier <christophe.vu-brugier@seagate.com>

exfatprogs provides utilities to create, modify, and check exFAT file
systems on Linux. The developers of exfatprogs also maintain the Linux
kernel exFAT driver.

exfatprogs has replaced exfat-utils in Debian bookworm.

References:
 * https://github.com/exfatprogs/exfatprogs/
 * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002871

Signed-off-by: Christophe Vu-Brugier <christophe.vu-brugier@seagate.com>
---
 .../exfatprogs/exfatprogs_1.2.0.bb            | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb

Comments

Martin Jansa March 28, 2023, 6:57 a.m. UTC | #1
Do we need
RPROVIDES:${PN} = "exfat-utils"
as well?

It used to be necessary for automatic update from one package to its
replacement at least with opkg (I haven't tried on target migrations for
quite some time now).

On Tue, Mar 28, 2023 at 8:48 AM Christophe Vu-Brugier <
cvubrugier@fastmail.fm> wrote:

> From: Christophe Vu-Brugier <christophe.vu-brugier@seagate.com>
>
> exfatprogs provides utilities to create, modify, and check exFAT file
> systems on Linux. The developers of exfatprogs also maintain the Linux
> kernel exFAT driver.
>
> exfatprogs has replaced exfat-utils in Debian bookworm.
>
> References:
>  * https://github.com/exfatprogs/exfatprogs/
>  * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002871
>
> Signed-off-by: Christophe Vu-Brugier <christophe.vu-brugier@seagate.com>
> ---
>  .../exfatprogs/exfatprogs_1.2.0.bb            | 23 +++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100644 meta-filesystems/recipes-utils/exfatprogs/
> exfatprogs_1.2.0.bb
>
> diff --git a/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb
> b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb
> new file mode 100644
> index 000000000..0b26a215b
> --- /dev/null
> +++ b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb
> @@ -0,0 +1,23 @@
> +SUMMARY = "exFAT filesystem userspace utilities"
> +DESCRIPTION = "\
> +As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is \
> +created as an official userspace utilities that contain all of the
> standard \
> +utilities for creating and fixing and debugging exfat filesystem in linux
> \
> +system. The goal of exfatprogs is to provide high performance and quality
> \
> +at the level of exfat utilities in windows. And this software is licensed
> \
> +under the GNU General Public License Version 2."
> +HOMEPAGE = "https://github.com/${BPN}/${BPN}"
> +SECTION = "universe/otherosfs"
> +LICENSE = "GPL-2.0-only"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
> +
> +SRC_URI = "
> https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
> +SRC_URI[sha256sum] =
> "56d9a49465deafc367d428afc71c8098705a30ee19a3cdf3c5320650b8880742"
> +
> +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
> +UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
> +
> +inherit autotools
> +
> +RCONFLICTS:${PN} = "exfat-utils"
> +RREPLACES:${PN} = "exfat-utils"
> --
> 2.39.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#101798):
> https://lists.openembedded.org/g/openembedded-devel/message/101798
> Mute This Topic: https://lists.openembedded.org/mt/97900208/3617156
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> Martin.Jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Christophe Vu-Brugier March 28, 2023, 1:24 p.m. UTC | #2
Hi Martin,

Thank you for your code review.

Martin Jansa wrote :
> Do we need
> RPROVIDES:${PN} = "exfat-utils"
> as well?

I hesitated on this one.

While exfatprogs provides the same tools as exfat-utils, there are a few differences.
 1. In exfat-utils, `mkfs.exfat` is a symlink to `mkexfatfs` ; exfatprogs does not provide `mkexfatfs`.
 2. Some options have different names. For instance, exfat-utils uses "-n" to set the volume label whereas exfatprogs uses "-L" (like e2fsprogs, xfsprogs).

How do we convey the message that "exfatprogs replaces exfat-utils but is not 100% compatible"?

Also, I believe that exfatprogs is better than exfat-utils.
For instance, exfatprogs correctly format drives whose sector size is 4096 bytes whereas exfat-utils does not.

With best regards,

--
Christophe Vu-Brugier
Martin Jansa March 28, 2023, 4:10 p.m. UTC | #3
On Tue, Mar 28, 2023 at 3:25 PM Christophe Vu-Brugier <
cvubrugier@fastmail.fm> wrote:

> While exfatprogs provides the same tools as exfat-utils, there are a few
> differences.
>  1. In exfat-utils, `mkfs.exfat` is a symlink to `mkexfatfs` ; exfatprogs
> does not provide `mkexfatfs`.
>  2. Some options have different names. For instance, exfat-utils uses "-n"
> to set the volume label whereas exfatprogs uses "-L" (like e2fsprogs,
> xfsprogs).
>
> How do we convey the message that "exfatprogs replaces exfat-utils but is
> not 100% compatible"?
>
> Also, I believe that exfatprogs is better than exfat-utils.
> For instance, exfatprogs correctly format drives whose sector size is 4096
> bytes whereas exfat-utils does not.
>

In 2/2 you've removed exfat-utils so users of exfat-utils will have to deal
with this one way or another.

Otherwise existing images will stay "stuck" with some old version of
exfat-utils and package manager won't "update" them to exfatprogs.

So it might be tricky, but if you're confident enough to remove the recipe
and to set RREPLACES/RCONFLICTS in package, then I think RPROVIDES doesn't
make it more dangerous :) - probably less, because on target update on
older image will end with the same exfatprogs as freshly baked image.

Regards,
diff mbox series

Patch

diff --git a/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb
new file mode 100644
index 000000000..0b26a215b
--- /dev/null
+++ b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.0.bb
@@ -0,0 +1,23 @@ 
+SUMMARY = "exFAT filesystem userspace utilities"
+DESCRIPTION = "\
+As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is \
+created as an official userspace utilities that contain all of the standard \
+utilities for creating and fixing and debugging exfat filesystem in linux \
+system. The goal of exfatprogs is to provide high performance and quality \
+at the level of exfat utilities in windows. And this software is licensed \
+under the GNU General Public License Version 2."
+HOMEPAGE = "https://github.com/${BPN}/${BPN}"
+SECTION = "universe/otherosfs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "56d9a49465deafc367d428afc71c8098705a30ee19a3cdf3c5320650b8880742"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
+
+inherit autotools
+
+RCONFLICTS:${PN} = "exfat-utils"
+RREPLACES:${PN} = "exfat-utils"