main/cramfs: fix build with gcc 14

This commit is contained in:
Natanael Copa 2024-08-07 13:44:01 +02:00
parent 48e0074ac1
commit 93dae9b18e
2 changed files with 35 additions and 5 deletions

View file

@ -1,23 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cramfs
pkgver=1.1
pkgrel=6
pkgrel=7
pkgdesc="Linux filesystem designed to be simple, small, and to compress things well"
arch="all"
url="https://sourceforge.net/projects/cramfs/"
license="GPL-2.0-or-later"
makedepends="zlib-dev linux-headers"
source="https://downloads.sourceforge.net/cramfs/cramfs-$pkgver.tar.gz
mkcramfs-include-sysmacros.patch"
mkcramfs-include-sysmacros.patch
gcc14.patch
"
options="!check"
build() {
make CFLAGS="$CFLAGS -D_GNU_SOURCE"
make
}
package() {
install -Dm755 -t "$pkgdir"/sbin mkcramfs cramfsck
}
sha512sums="6c18dbe32df57f7d132fb2a59a917ad381156ca1f720c1ad0997ca81c62e82fd43ebb0339c5a66d5b144a72ce5c7ae93596522fe2698259f2b68c31db26e3b63 cramfs-1.1.tar.gz
4cb3b50f76181775634a4cdf5d2d06ea90978f7059e0390e97f58c58896afee76e04e1df4e44f254285d7c80a76c3b053c36aa03b2e4cb3b9621c8aacd21368b mkcramfs-include-sysmacros.patch"
sha512sums="
6c18dbe32df57f7d132fb2a59a917ad381156ca1f720c1ad0997ca81c62e82fd43ebb0339c5a66d5b144a72ce5c7ae93596522fe2698259f2b68c31db26e3b63 cramfs-1.1.tar.gz
4cb3b50f76181775634a4cdf5d2d06ea90978f7059e0390e97f58c58896afee76e04e1df4e44f254285d7c80a76c3b053c36aa03b2e4cb3b9621c8aacd21368b mkcramfs-include-sysmacros.patch
be7acef82b7b7dda2a60b123cae3e8ff03ead5432f13ab0256258c436d33a1882283d2c80b4ddd87debf9577e6f8fa6d92c903e72b6d9fc53a33c770968379be gcc14.patch
"

25
main/cramfs/gcc14.patch Normal file
View file

@ -0,0 +1,25 @@
diff --git a/mkcramfs.c b/mkcramfs.c
index f9d12a2..a24e937 100644
--- a/mkcramfs.c
+++ b/mkcramfs.c
@@ -22,6 +22,7 @@
* If you change the disk format of cramfs, please update fs/cramfs/README.
*/
+#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/sysmacros.h>
#include <stdio.h>
@@ -218,10 +219,9 @@ static void eliminate_doubles(struct entry *root, struct entry *orig) {
* We define our own sorting function instead of using alphasort which
* uses strcoll and changes ordering based on locale information.
*/
-static int cramsort (const void *a, const void *b)
+static int cramsort (const struct dirent **a, const struct dirent **b)
{
- return strcmp ((*(const struct dirent **) a)->d_name,
- (*(const struct dirent **) b)->d_name);
+ return strcmp ((*a)->d_name, (*b)->d_name);
}
static unsigned int parse_directory(struct entry *root_entry, const char *name, struct entry **prev, loff_t *fslen_ub)