summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-03-06 02:46:37 +0000
committerSam James <sam@gentoo.org>2022-03-06 04:34:28 +0000
commit0b01c1ac7d47153853e1ec678d7eb52d245c6b82 (patch)
tree4970bc958830a647edc3f893ff9db728b766bb8f /sys-fs
parentdev-util/cmake: add 3.23.0_rc2 (diff)
downloadgentoo-0b01c1ac7d47153853e1ec678d7eb52d245c6b82.tar.gz
gentoo-0b01c1ac7d47153853e1ec678d7eb52d245c6b82.tar.bz2
gentoo-0b01c1ac7d47153853e1ec678d7eb52d245c6b82.zip
sys-fs/mtools: add 4.0.38
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/mtools/Manifest1
-rw-r--r--sys-fs/mtools/files/mtools-4.0.38-strtoi-definition.patch94
-rw-r--r--sys-fs/mtools/mtools-4.0.38.ebuild61
3 files changed, 156 insertions, 0 deletions
diff --git a/sys-fs/mtools/Manifest b/sys-fs/mtools/Manifest
index 4d28b1eed9d4..4d7315e52f86 100644
--- a/sys-fs/mtools/Manifest
+++ b/sys-fs/mtools/Manifest
@@ -1,2 +1,3 @@
DIST mtools-4.0.35.tar.bz2 455988 BLAKE2B 9c1ac7f3ad3f9f13a572d0e1ea3c3a9d79bd08f0ae963c7357a19a687b74536cd8442eb167a9e50f7d22398c56736753b0d98bccdaa4c7d8427d1c09e1dd786c SHA512 ef563b3319285667993c82d819e08cb819a6bcd71c466fc252568996b4218cfb3731107ffcd6150ba33c0837e012e02057def41e2b011f751eaf550bfa366a10
DIST mtools-4.0.37.tar.bz2 441076 BLAKE2B a84ff9e532a1896706589dfe7e62b1e400baf0ab9b86cc3d4a09bd4a0a24d1e86f504b9005c98765f62d735d227d0a1d5ab78354c587c88e2d42a4146d127dc1 SHA512 5ff4da9050dd5d5c0929dd9977866086085bd8fef577f3c6ce2ed6fb958eec2304db612c0766e6be1a048819e29f62023cb0f0a9464a84ed7cc21de9561fadce
+DIST mtools-4.0.38.tar.bz2 440491 BLAKE2B 4d486b9bcbf31c9056ed6460d3d7ccb160f2d3d68e2b9a87590821251513a299ab321df825821722c41e13f608250eecad52e828c901ab956e471cd56871a50c SHA512 045e7dba159699c53abefd69e2065c116e2e360e7ec537df1e4d38309fb03587c600bb930363ecffef48cef1c8c118146691cf9a35c36abbb40e4546e532ce4a
diff --git a/sys-fs/mtools/files/mtools-4.0.38-strtoi-definition.patch b/sys-fs/mtools/files/mtools-4.0.38-strtoi-definition.patch
new file mode 100644
index 000000000000..637e9193f43f
--- /dev/null
+++ b/sys-fs/mtools/files/mtools-4.0.38-strtoi-definition.patch
@@ -0,0 +1,94 @@
+https://lists.gnu.org/archive/html/info-mtools/2022-03/msg00001.html
+
+From d36dea2ea7f246f28719dcb01b7a8ad7ad8ed1f6 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 6 Mar 2022 02:36:03 +0000
+Subject: [PATCH] Use own definition of strtoi
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Before this change, build resulted in implicit function declarations like:
+```
+* config.c:269:57: warning: implicit declaration of function ‘strtoi’; did you mean ‘strtoui’? [-Wimplicit-function-declaration]
+* floppyd_io.c:473:20: warning: implicit declaration of function ‘strtoi’; did you mean ‘strtoui’? [-Wimplicit-function-declaration]
+```
+
+The include(s) for inttypes.h are guarded by HAVE_INTTYPES_H
+(normal autoconf pattern) but we're not checking for inttypes.h
+in configure. But adding this doesn't solve the issue.
+
+If libbsd is installed, configure discovers the strtoi
+provided by libbsd although the included version may still
+end up being glibc's as the include path doesn't change
+(glibc has its own which doesn't feature strtoi).
+
+If trying to use libbsd's, we end up with a build failure:
+```
+config.c: In function ‘get_env_conf’:
+config.c:269:57: error: too few arguments to function ‘strtoi’
+ 269 | * ((int *)global_switches[i].address) = strtoi(s,0,0);
+ | ^~~~~~
+In file included from sysincludes.h:174,
+ from config.c:18:
+/usr/include/bsd/inttypes.h:43:10: note: declared here
+ 43 | intmax_t strtoi(const char *__restrict nptr, char **__restrict endptr,
+ | ^~~~~~
+```
+
+So, it seems best to just always use our own definition of strtoi,
+given our definition doesn't match libbsd's anyway. This avoids
+the build failure as well as the implicit declaration warnings.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ configure.in | 2 +-
+ mtools.h | 2 --
+ sysincludes.h | 4 ----
+ 3 files changed, 1 insertions(+), 7 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 72cf205..eb1c754 100644
+--- a/configure.in
++++ b/configure.in
+@@ -218,7 +218,7 @@ dnl Checks for library functions.
+ AC_TYPE_SIGNAL
+ AC_CHECK_FUNCS(strerror random srandom strchr strrchr lockf flock \
+ strcasecmp strncasecmp strnlen atexit on_exit getpass memmove \
+-strdup strndup strcspn strspn strtoul strtol strtoll strtoi strtoui \
++strdup strndup strcspn strspn strtoul strtol strtoll strtoui \
+ memcpy strpbrk memset setenv seteuid setresuid setpgrp \
+ tcsetattr tcflush basename fchdir media_oldaliases \
+ snprintf setlocale toupper_l strncasecmp_l \
+diff --git a/mtools.h b/mtools.h
+index b3fd3c8..190ddf8 100644
+--- a/mtools.h
++++ b/mtools.h
+@@ -188,9 +188,7 @@ off_t str_to_offset(char *str);
+ uint32_t parseSize(char *sizeStr);
+ unsigned int strtoui(const char *nptr, char **endptr, int base);
+ unsigned int atoui(const char *nptr);
+-#ifndef HAVE_STRTOI
+ int strtoi(const char *nptr, char **endptr, int base);
+-#endif
+ unsigned long atoul(const char *nptr);
+ uint8_t strtou8(const char *nptr, char **endptr, int base);
+ uint8_t atou8(const char *str);
+diff --git a/sysincludes.h b/sysincludes.h
+index 6dccded..0c17fb5 100644
+--- a/sysincludes.h
++++ b/sysincludes.h
+@@ -169,10 +169,6 @@ typedef unsigned char _Bool;
+ # define __bool_true_false_are_defined 1
+ #endif
+
+-#ifdef HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#endif
+-
+ #ifdef HAVE_STDLIB_H
+ # include <stdlib.h>
+ #endif
+--
+2.35.1
+
diff --git a/sys-fs/mtools/mtools-4.0.38.ebuild b/sys-fs/mtools/mtools-4.0.38.ebuild
new file mode 100644
index 000000000000..18ce60a45f39
--- /dev/null
+++ b/sys-fs/mtools/mtools-4.0.38.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Utilities to access MS-DOS disks from Unix without mounting them"
+HOMEPAGE="https://www.gnu.org/software/mtools/ https://savannah.gnu.org/projects/mtools"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+IUSE="X"
+
+RDEPEND="!elibc_glibc? ( virtual/libiconv )
+ X? (
+ x11-libs/libICE
+ x11-libs/libXau
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXt
+ )"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0.38-strtoi-definition.patch
+)
+
+src_prepare() {
+ default
+
+ # Only needed for strtoi patch
+ eautoreconf
+}
+
+src_configure() {
+ if ! use elibc_glibc && ! use elibc_musl ; then
+ # bug #447688
+ append-libs "-liconv"
+ fi
+
+ local myeconfargs=(
+ --sysconfdir="${EPREFIX}"/etc/mtools
+ $(use_with X x)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ local -a DOCS=( README* Release.notes )
+ default
+
+ insinto /etc/mtools
+ doins mtools.conf
+
+ # Default is fine
+ sed -i -e '/^SAMPLE FILE$/s:^:#:' "${ED}"/etc/mtools/mtools.conf || die
+}