From 0b01c1ac7d47153853e1ec678d7eb52d245c6b82 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sun, 6 Mar 2022 02:46:37 +0000 Subject: sys-fs/mtools: add 4.0.38 Signed-off-by: Sam James --- sys-fs/mtools/Manifest | 1 + .../files/mtools-4.0.38-strtoi-definition.patch | 94 ++++++++++++++++++++++ sys-fs/mtools/mtools-4.0.38.ebuild | 61 ++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 sys-fs/mtools/files/mtools-4.0.38-strtoi-definition.patch create mode 100644 sys-fs/mtools/mtools-4.0.38.ebuild 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 +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 +--- + 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 +-#endif +- + #ifdef HAVE_STDLIB_H + # include + #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 +} -- cgit v1.2.3-65-gdbad