net-misc/zsync: fix Modern C issues

Closes: https://bugs.gentoo.org/921150
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James 2025-03-01 06:52:22 +00:00
parent 4e6b960f0c
commit 223c1bbb32
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
2 changed files with 84 additions and 1 deletions

View File

@ -0,0 +1,82 @@
https://bugs.gentoo.org/921150
https://sources.debian.org/data/main/z/zsync/0.6.2-7/debian/patches/fix-build-with-gcc-14.patch
Description: Fix build with GCC-14
Author: Marcos Talau <talau@debian.org>
Bug-Debian: https://bugs.debian.org/1075710
Forwarded: https://github.com/cph6/zsync/issues/20
Last-Update: 2024-08-16
--- a/client.c
+++ b/client.c
@@ -392,7 +392,7 @@ int fetch_remaining_blocks_http(struct z
*/
int fetch_remaining_blocks(struct zsync_state *zs) {
int n, utype;
- const char *const *url = zsync_get_urls(zs, &n, &utype);
+ char **url = zsync_get_urls(zs, &n, &utype);
int *status; /* keep status for each URL - 0 means no error */
int ok_urls = n;
@@ -452,7 +452,7 @@ extern long global_offset;
int main(int argc, char **argv) {
struct zsync_state *zs;
char *temp_file = NULL;
- char **seedfiles = NULL;
+ void **seedfiles = NULL;
int nseedfiles = 0;
char *filename = NULL;
long long local_used;
--- a/libzsync/zmap.c
+++ b/libzsync/zmap.c
@@ -333,7 +333,7 @@ int zmap_search(const struct zmap* zm, l
* and in the order that it returned them, this condition is satisfied.
*/
void configure_zstream_for_zdata(const struct zmap *zm, z_stream * zs,
- long zoffset, long long *poutoffset) {
+ long zoffset, off_t *poutoffset) {
/* Find the zmap entry corresponding to this offset */
int i = zmap_search(zm, zoffset);
--- a/libzsync/zmap.h
+++ b/libzsync/zmap.h
@@ -29,7 +29,7 @@ struct zmap* zmap_make(const struct gzbl
void zmap_free(struct zmap*);
off_t* zmap_to_compressed_ranges(const struct zmap* zm, off_t* byterange, int nrange, int* num);
-void configure_zstream_for_zdata(const struct zmap* zm, struct z_stream_s* zs, long zoffset, long long* poutoffset);
+void configure_zstream_for_zdata(const struct zmap* zm, struct z_stream_s* zs, long zoffset, off_t* poutoffset);
/* gzip flag byte */
#define GZ_ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */
--- a/libzsync/zsync.c
+++ b/libzsync/zsync.c
@@ -436,7 +436,7 @@ void zsync_progress(const struct zsync_s
* Note that these URLs could be for encoded versions of the target; a 'type'
* is returned in *type which tells libzsync in later calls what version of the
* target is being retrieved. */
-const char *const *zsync_get_urls(struct zsync_state *zs, int *n, int *t) {
+char **zsync_get_urls(struct zsync_state *zs, int *n, int *t) {
if (zs->zmap && zs->nzurl) {
*n = zs->nzurl;
*t = 1;
@@ -768,7 +768,7 @@ char *zsync_end(struct zsync_state *zs)
*/
void zsync_configure_zstream_for_zdata(const struct zsync_state *zs,
struct z_stream_s *zstrm,
- long zoffset, long long *poutoffset) {
+ long zoffset, off_t *poutoffset) {
configure_zstream_for_zdata(zs->zmap, zstrm, zoffset, poutoffset);
{ /* Load in prev 32k sliding window for backreferences */
long long pos = *poutoffset;
--- a/libzsync/zsync.h
+++ b/libzsync/zsync.h
@@ -58,7 +58,7 @@ int zsync_submit_source_file(struct zsyn
* (the URL pointers are still referenced by the library, and are valid only until zsync_end).
*/
-const char * const * zsync_get_urls(struct zsync_state* zs, int* n, int* t);
+char ** zsync_get_urls(struct zsync_state* zs, int* n, int* t);
/* zsync_needed_byte_ranges - get the byte ranges needed from a URL.
* Returns the number of ranges in *num, and a malloc'd array (to be freed

View File

@ -1,4 +1,4 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -22,6 +22,7 @@ KEYWORDS="amd64 ~arm ppc ppc64 x86"
PATCHES=(
"${FILESDIR}"/${PN}-0.6.2-musl-off_t-fix.patch
"${FILESDIR}"/${PN}-0.6.2-c99.patch
)
src_prepare() {