summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Kohler <bkohler@gentoo.org>2023-06-15 10:17:46 -0500
committerBen Kohler <bkohler@gentoo.org>2023-06-15 10:17:46 -0500
commit1afb1f2f7dfb2e4c1588fcb084f9879f3494f111 (patch)
treee825d73bdfbcba0bc74ab1aec1c6e63b7bb7c37f /sys-fs/fatcat
parentnet-misc/dropbox: add 176.4.5108 (diff)
downloadgentoo-1afb1f2f7dfb2e4c1588fcb084f9879f3494f111.tar.gz
gentoo-1afb1f2f7dfb2e4c1588fcb084f9879f3494f111.tar.bz2
gentoo-1afb1f2f7dfb2e4c1588fcb084f9879f3494f111.zip
sys-fs/fatcat: new musl fix, replace old musl fix too
We previously had 1 musl patch for getopt usage, I'm replacing that with one from an upstream PR [1], also adding a new patch from that upstream PR. [1] https://github.com/Gregwar/fatcat/pull/34 Closes: https://bugs.gentoo.org/908541 Signed-off-by: Ben Kohler <bkohler@gentoo.org>
Diffstat (limited to 'sys-fs/fatcat')
-rw-r--r--sys-fs/fatcat/fatcat-1.1.1.ebuild6
-rw-r--r--sys-fs/fatcat/files/fatcat-1.1.1-musl-1.2.4-fixes.patch107
-rw-r--r--sys-fs/fatcat/files/fatcat-include-getopt.patch11
3 files changed, 111 insertions, 13 deletions
diff --git a/sys-fs/fatcat/fatcat-1.1.1.ebuild b/sys-fs/fatcat/fatcat-1.1.1.ebuild
index 1cbdeace786e..ac61be67b09a 100644
--- a/sys-fs/fatcat/fatcat-1.1.1.ebuild
+++ b/sys-fs/fatcat/fatcat-1.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2018-2022 Gentoo Authors
+# Copyright 2018-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -17,7 +17,9 @@ IUSE=""
DEPEND="!elibc_glibc? ( sys-libs/argp-standalone )"
RDEPEND="${DEPEND}"
-PATCHES=( "${FILESDIR}"/fatcat-include-getopt.patch )
+PATCHES=(
+ "${FILESDIR}/fatcat-1.1.1-musl-1.2.4-fixes.patch"
+)
src_install() {
cmake_src_install
diff --git a/sys-fs/fatcat/files/fatcat-1.1.1-musl-1.2.4-fixes.patch b/sys-fs/fatcat/files/fatcat-1.1.1-musl-1.2.4-fixes.patch
new file mode 100644
index 000000000000..e01533fee306
--- /dev/null
+++ b/sys-fs/fatcat/files/fatcat-1.1.1-musl-1.2.4-fixes.patch
@@ -0,0 +1,107 @@
+From 12fdf46cb916b71ed8360250d50b9208684695c9 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Sun, 19 Jan 2020 16:03:21 +0000
+Subject: [PATCH 1/2] Use unistd.h not argp.h for all POSIX systems
+
+getopt(3) is found in unistd.h on all POSIX systems and we make no use
+of any of the GNU specific argp extensions. Include unistd.h directly to
+allow building with musl on linux, whilst retaining compatibility with
+glibc and other unices.
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ src/fatcat.cpp | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/src/fatcat.cpp b/src/fatcat.cpp
+index ce23ca0..b4427e4 100644
+--- a/src/fatcat.cpp
++++ b/src/fatcat.cpp
+@@ -1,14 +1,10 @@
+ #include <stdlib.h>
+-#include<string.h>
+-#ifdef __APPLE__
+-#include <unistd.h>
+-#else
++#include <string.h>
+ #ifdef __WIN__
+ #include <ctype.h>
+ #include "xgetopt/xgetopt.h"
+ #else
+-#include <argp.h>
+-#endif
++#include <unistd.h>
+ #endif
+
+ #include <stdio.h>
+
+From 29021747ac2e52a27013310a532439bfdf438c24 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Dec 2022 18:54:55 -0800
+Subject: [PATCH 2/2] Enable 64bit off_t
+
+Ensure that off_t is always 64-bit by specifying -D_LARGEFILE_SOURCE
+-D_FILE_OFFSET_BITS=64 this will ensure that normal lseek() function is
+same as lseek64
+
+This helps compiling on latest musl where lseek64 and friends are not
+available
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 2 ++
+ src/core/FatSystem.cpp | 4 ++--
+ src/core/FatSystem.h | 2 --
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6a2649..4cdd1fb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,6 +34,8 @@ IF(DEFINE_WIN)
+ add_definitions(-D__WIN__)
+ ENDIF(DEFINE_WIN)
+
++add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64)
++
+ include_directories("${CMAKE_SOURCE_DIR}/src")
+
+ add_executable(fatcat "src/fatcat.cpp" ${ALL_SOURCES})
+diff --git a/src/core/FatSystem.cpp b/src/core/FatSystem.cpp
+index 79cda8c..1f52e82 100644
+--- a/src/core/FatSystem.cpp
++++ b/src/core/FatSystem.cpp
+@@ -90,7 +90,7 @@ int FatSystem::readData(unsigned long long address, char *buffer, int size)
+ cerr << "! Trying to read outside the disk" << endl;
+ }
+
+- lseek64(fd, globalOffset+address, SEEK_SET);
++ lseek(fd, globalOffset+address, SEEK_SET);
+
+ int n;
+ int pos = 0;
+@@ -112,7 +112,7 @@ int FatSystem::writeData(unsigned long long address, const char *buffer, int siz
+ throw string("Trying to write data while write mode is disabled");
+ }
+
+- lseek64(fd, globalOffset+address, SEEK_SET);
++ lseek(fd, globalOffset+address, SEEK_SET);
+
+ int n;
+ int pos = 0;
+diff --git a/src/core/FatSystem.h b/src/core/FatSystem.h
+index cd3c914..f9f2ca3 100644
+--- a/src/core/FatSystem.h
++++ b/src/core/FatSystem.h
+@@ -11,11 +11,9 @@
+
+ #ifdef __APPLE__
+ #define O_LARGEFILE 0
+-#define lseek64 lseek
+ #endif
+ #ifdef __WIN__
+ #define O_LARGEFILE 0
+-#define lseek64 lseek
+ #endif
+ using namespace std;
+
diff --git a/sys-fs/fatcat/files/fatcat-include-getopt.patch b/sys-fs/fatcat/files/fatcat-include-getopt.patch
deleted file mode 100644
index a9c9094eceb3..000000000000
--- a/sys-fs/fatcat/files/fatcat-include-getopt.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur a/src/fatcat.cpp b/src/fatcat.cpp
---- a/src/fatcat.cpp 2020-04-05 11:12:55.773602065 -0500
-+++ b/src/fatcat.cpp 2020-04-05 11:13:14.112132604 -0500
-@@ -8,6 +8,7 @@
- #include "xgetopt/xgetopt.h"
- #else
- #include <argp.h>
-+#include <getopt.h>
- #endif
- #endif
-