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 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