dev-util/xdelta: new package

It's from Gentoo commit 91137d52c4f6307b512c6f447236bc75e8f8b3ec.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Mathieu Tortuyaux 2025-05-14 17:19:59 +02:00
parent ce43c81f6d
commit 047c57cb23
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
8 changed files with 500 additions and 0 deletions

View File

@ -0,0 +1,2 @@
DIST xdelta-1.1.4.tar.gz 423529 BLAKE2B b565f82ba0504118b74127096939e5699ea312be5c6c8a345abfcf0fb01b45e759abe595b33619b2714671e2f0307d603366a1f7a6b1fb5a786378716a51df6b SHA512 eef45f7977e9a7f490b881f33ab8a948cc5eff9300ea850cc30062905c8e883c104961f075f56f7ce8e385142c35de168aef1e0b8169bda66786ea4bee33168b
DIST xdelta3-3.0.11.tar.gz 683605 BLAKE2B bc33c9d6a3bb21bc52d72bba54f5e2b1058ea8d7cd7474aaf6dbdc27e165e0fbea644c584402f5bbc8ace7cd6a3aefae18588a659418f93eb041168545363bf4 SHA512 41c48e28f92ad50a737cf0acac150fe17d1132e9a652c482d751c8c4e745c6922d576a183eeabae343a1a238ed8c53353e537977628c86eb599ab3d1c01e7c52

View File

@ -0,0 +1,221 @@
Nicked from http://cvs.fedoraproject.org/viewvc/devel/xdelta/xdelta-1.1.4-glib2.patch
--- xdelta-1.1.4pre1/libedsio/edsio.c.glib2 2007-01-29 14:55:10.000000000 +0100
+++ xdelta-1.1.4pre1/libedsio/edsio.c 2007-01-29 14:56:52.000000000 +0100
@@ -179,9 +179,9 @@
}
}
- while (g_queue_get_size (queued) > 0)
+ while (g_queue_get_length (queued) > 0)
{
- DelayedEvent* de = g_queue_pop (queued);
+ DelayedEvent* de = g_queue_pop_head (queued);
for (i = 0; i < all_event_watchers->len; i += 1)
{
@@ -211,7 +211,7 @@
de->def = def;
de->msg = out->str;
- g_queue_push (queued, de);
+ g_queue_push_tail (queued, de);
g_ptr_array_add (free_strings, out);
}
@@ -1482,129 +1482,3 @@
g_free (source);
}
-/* Missing glib stuff
- */
-
-GQueue *
-g_queue_new (void)
-{
- GQueue *q = g_new (GQueue, 1);
-
- q->list = q->list_end = NULL;
- q->list_size = 0;
-
- return q;
-}
-
-
-void
-g_queue_free (GQueue *q)
-{
- if (q)
- {
- if (q->list)
- g_list_free (q->list);
- g_free (q);
- }
-}
-
-
-guint
-g_queue_get_size (GQueue *q)
-{
- return (q == NULL) ? 0 : q->list_size;
-}
-
-
-void
-g_queue_push_front (GQueue *q, gpointer data)
-{
- if (q)
- {
- q->list = g_list_prepend (q->list, data);
-
- if (q->list_end == NULL)
- q->list_end = q->list;
-
- q->list_size++;
- }
-}
-
-
-void
-g_queue_push_back (GQueue *q, gpointer data)
-{
- if (q)
- {
- q->list_end = g_list_append (q->list_end, data);
-
- if (! q->list)
- q->list = q->list_end;
- else
- q->list_end = q->list_end->next;
-
- q->list_size++;
- }
-}
-
-
-gpointer
-g_queue_pop_front (GQueue *q)
-{
- gpointer data = NULL;
-
- if ((q) && (q->list))
- {
- GList *node;
-
- node = q->list;
- data = node->data;
-
- if (! node->next)
- {
- q->list = q->list_end = NULL;
- q->list_size = 0;
- }
- else
- {
- q->list = node->next;
- q->list->prev = NULL;
- q->list_size--;
- }
-
- g_list_free_1 (node);
- }
-
- return data;
-}
-
-
-gpointer
-g_queue_pop_back (GQueue *q)
-{
- gpointer data = NULL;
-
- if ((q) && (q->list))
- {
- GList *node;
-
- node = q->list_end;
- data = node->data;
-
- if (! node->prev)
- {
- q->list = q->list_end = NULL;
- q->list_size = 0;
- }
- else
- {
- q->list_end = node->prev;
- q->list_end->next = NULL;
- q->list_size--;
- }
-
- g_list_free_1 (node);
- }
-
- return data;
-}
--- xdelta-1.1.4pre1/libedsio/edsio.h.glib2 2007-01-29 14:54:38.000000000 +0100
+++ xdelta-1.1.4pre1/libedsio/edsio.h 2007-01-29 14:55:00.000000000 +0100
@@ -481,49 +481,6 @@
#endif
-/* Missing glib stuff
- */
-
-typedef struct _GQueue GQueue;
-
-struct _GQueue
-{
- GList *list;
- GList *list_end;
- guint list_size;
-};
-
-/* Queues
- */
-
-GQueue * g_queue_new (void);
-void g_queue_free (GQueue *q);
-guint g_queue_get_size (GQueue *q);
-void g_queue_push_front (GQueue *q, gpointer data);
-void g_queue_push_back (GQueue *q, gpointer data);
-gpointer g_queue_pop_front (GQueue *q);
-gpointer g_queue_pop_back (GQueue *q);
-
-#define g_queue_empty(queue) \
- ((((GQueue *)(queue)) && ((GQueue *)(queue))->list) ? FALSE : TRUE)
-
-#define g_queue_peek_front(queue) \
- ((((GQueue *)(queue)) && ((GQueue *)(queue))->list) ? \
- ((GQueue *)(queue))->list->data : NULL)
-
-#define g_queue_peek_back(queue) \
- ((((GQueue *)(queue)) && ((GQueue *)(queue))->list_end) ? \
- ((GQueue *)(queue))->list_end->data : NULL)
-
-#define g_queue_index(queue,ptr) \
- ((((GQueue *)(queue)) && ((GQueue *)(queue))->list) ? \
- g_list_index (((GQueue *)(queue))->list, (ptr)) : -1)
-
-#define g_queue_push g_queue_push_back
-#define g_queue_pop g_queue_pop_front
-#define g_queue_peek g_queue_peek_front
-
-
#ifdef __cplusplus
}
#endif
--- xdelta-1.1.4pre1/configure.in.glib2 2007-01-29 14:58:06.000000000 +0100
+++ xdelta-1.1.4pre1/configure.in 2007-01-29 14:59:18.000000000 +0100
@@ -71,8 +71,8 @@
top_srcdir_absolute=`cd $srcdir; pwd`
AC_SUBST(top_srcdir_absolute)
-AM_PATH_GLIB(1.2.8,,
- AC_MSG_ERROR(Test for GLIB failed. Download it from ftp://ftp.gtk.org/pub/gtk/v1.2/))
+AM_PATH_GLIB_2_0(2.10.0,,
+ AC_MSG_ERROR(Test for GLIB2.0 failed. Download it from ftp://ftp.gtk.org/pub/gtk/v2.10/))
dnl AC_CHECK_LIB(z, gzsetparams, */
dnl AC_CHECK_HEADER(zlib.h,, */

View File

@ -0,0 +1,59 @@
https://bugs.gentoo.org/919228
--- a/test/xdeltatest.c
+++ b/test/xdeltatest.c
@@ -512,7 +512,7 @@ run_command (TestProfile *tp, int zlevel, int slevel, File* from, File* to, File
if (zlevel > 0 && starts_with (tp->name, "diff"))
{
Patch *patch = read_patch (out, & sbuf);
- gzFile *rewrite = gzopen (out->name, diff_gzargs);
+ gzFile rewrite = gzopen (out->name, diff_gzargs);
if (! rewrite) fail ();
diff --git a/xdelta-1.1.4/xdmain.c b/../../xdelta-1.1.4.new/xdmain.c
index b1abc74..9c27195 100755
--- a/xdmain.c
+++ b/xdmain.c
@@ -179,6 +179,7 @@ struct _XdFileHandle
guint narrow_high;
guint current_pos;
FILE* in;
+ gzFile zin;
gboolean (* in_read) (XdFileHandle* handle, void* buf, gint nbyte);
gboolean (* in_close) (XdFileHandle* handle);
gboolean in_compressed;
@@ -520,7 +521,7 @@ xd_gzwrite (XdFileHandle* fh, const void* buf, gint nbyte)
static gboolean
xd_gzread (XdFileHandle* fh, void* buf, gint nbyte)
{
- return gzread (fh->in, buf, nbyte) == nbyte;
+ return gzread (fh->zin, buf, nbyte) == nbyte;
}
static gboolean
@@ -532,7 +533,7 @@ xd_gzclose (XdFileHandle* fh)
static gboolean
xd_gzrclose (XdFileHandle* fh)
{
- return gzclose (fh->in) == Z_OK;
+ return gzclose (fh->zin) == Z_OK;
}
static void
@@ -1022,13 +1023,13 @@ xd_handle_narrow (XdFileHandle* fh, guint low, guint high, gboolean compressed)
}
g_assert (fh->fd >= 0);
- fh->in = gzdopen (dup (fh->fd), "rb");
+ fh->zin = gzdopen (dup (fh->fd), "rb");
fh->in_read = &xd_gzread;
fh->in_close = &xd_gzrclose;
fh->in_compressed = TRUE;
fh->current_pos = 0;
- if (! fh->in)
+ if (! fh->zin)
{
xd_error ("gzdopen failed: %s\n", g_strerror (errno));
return -1;

View File

@ -0,0 +1,11 @@
--- xdelta-1.1.3/xdelta.m4.aclocal 2004-10-20 00:20:47.875648144 +0200
+++ xdelta-1.1.3/xdelta.m4 2004-10-20 00:21:47.205628616 +0200
@@ -4,7 +4,7 @@
dnl AM_PATH_XDELTA([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for XDELTA, and define XDELTA_CFLAGS and XDELTA_LIBS, if "gmodule" or
dnl
-AC_DEFUN(AM_PATH_XDELTA,
+AC_DEFUN([AM_PATH_XDELTA],
[dnl
dnl Get the cflags and libraries from the xdelta-config script
dnl

View File

@ -0,0 +1,113 @@
Nicked from http://cvs.fedoraproject.org/viewvc/devel/xdelta/xdelta-1.1.3-pkgconfig.patch
--- /dev/null 2006-05-17 14:47:01.398050000 +0200
+++ xdelta-1.1.3/xdelta.pc.in 2006-05-30 16:00:55.000000000 +0200
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+pkgdatadir=@pkgdatadir@
+
+Name: xdelta
+Description: A binary file delta generator and an RCS replacement library.
+Version: @VERSION@
+Requires: glib-2.0
+Libs: -L${libdir} -lxdelta -ledsio
+Cflags: -I${includedir}
+
--- /dev/null 2006-05-17 14:47:01.398050000 +0200
+++ xdelta-1.1.3/xdelta-config 2006-05-30 16:04:22.000000000 +0200
@@ -0,0 +1,60 @@
+#!/bin/bash
+#
+# Simple wrapper around pkg-config to replace /usr/bin/<foo>-config scripts
+#
+# Copyright 2006 Red Hat, Inc.
+# Jeremy Katz <katzj@redhat.com>
+
+CFGPATH=$(basename $0)
+MODULE=${CFGPATH%-config}
+
+usage() {
+ pkg-config --help
+ exit 1
+}
+
+if [ $# -lt 1 ]; then
+ usage 1>&2
+fi
+
+ARGS=""
+
+while test $# -gt 0; do
+ case $1 in
+ --version)
+ ARGS="$ARGS --modversion"
+ ;;
+ --cflags)
+ ARGS="$ARGS --cflags"
+ ;;
+ --libs)
+ ARGS="$ARGS --libs"
+ ;;
+ --libdir*)
+ ARGS="$ARGS --libs-only-L"
+ ;;
+ --includedir*)
+ ARGS="$ARGS --cflags-only-I"
+ ;;
+ --prefix*)
+ ARGS="$ARGS --variable=prefix"
+ ;;
+ --exec-prefix*)
+ ARGS="$ARGS --variable=exec_prefix"
+ ;;
+ --module*)
+ if echo $1 | grep -q '=' ; then
+ MODULE=`echo $1 | sed 's/^--module=//'`
+ else
+ MODULE=$2
+ shift
+ fi
+ ;;
+ *)
+ usage 1>&2
+ ;;
+ esac
+ shift
+done
+
+pkg-config $ARGS $MODULE
--- xdelta-1.1.3/Makefile.am.pkgconfig 2006-05-30 16:00:55.000000000 +0200
+++ xdelta-1.1.3/Makefile.am 2006-05-30 16:00:55.000000000 +0200
@@ -27,6 +27,9 @@
m4datadir = $(datadir)/aclocal
m4data_DATA = xdelta.m4
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = xdelta.pc
+
## $Format: "libxdelta_la_LDFLAGS = -version-info $LibCurrent$:$LibRevision$:$LibAge$" $
libxdelta_la_LDFLAGS = -version-info 2:0:0
--- xdelta-1.1.3/configure.in.pkgconfig 2006-05-30 16:00:55.000000000 +0200
+++ xdelta-1.1.3/configure.in 2006-05-30 16:00:55.000000000 +0200
@@ -63,6 +63,8 @@
AC_HEADER_STDC
AC_PROG_MAKE_SET
+PKG_PROG_PKG_CONFIG
+
AC_CHECK_FUNCS(gettimeofday)
AC_HEADER_TIME
@@ -83,7 +85,7 @@
doc/Makefile
test/Makefile
djgpp/Makefile
- xdelta-config
+ xdelta.pc
libedsio/Makefile
libedsio/edsio-comp,

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mgorny@gentoo.org</email>
<name>Michał Górny</name>
</maintainer>
<upstream>
<remote-id type="google-code">xdelta</remote-id>
<remote-id type="github">jmacd/xdelta-devel</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,43 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools toolchain-funcs
DESCRIPTION="Computes changes between binary or text files and creates deltas"
HOMEPAGE="https://xdelta.googlecode.com/"
SRC_URI="https://${PN}.googlecode.com/files/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm64 ~hppa ppc ppc64 sparc x86"
RDEPEND=">=dev-libs/glib-2
>=sys-libs/zlib-1.1.4:="
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/${P}-m4.patch"
"${FILESDIR}/${P}-glib2.patch"
"${FILESDIR}/${P}-pkgconfig.patch"
"${FILESDIR}/${P}-gzip.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
tc-export CC
econf --disable-static
}
src_install() {
default
# no static archives
find "${ED}" -name '*.la' -delete || die
}

View File

@ -0,0 +1,39 @@
# Copyright 2002-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P=xdelta3-${PV}
DESCRIPTION="Computes changes between binary or text files and creates deltas"
HOMEPAGE="http://xdelta.org/"
SRC_URI="https://github.com/jmacd/xdelta-gpl/releases/download/v${PV}/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-2"
SLOT="3"
KEYWORDS="~alpha amd64 ~arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
IUSE="examples lzma"
RDEPEND="lzma? ( app-arch/xz-utils:= )"
DEPEND="${RDEPEND}"
src_configure() {
econf $(use_with lzma liblzma)
}
src_compile() {
# avoid building tests
emake xdelta3
}
src_test() {
emake xdelta3regtest
./xdelta3regtest || die
}
src_install() {
emake DESTDIR="${D}" install-binPROGRAMS install-man1
dodoc draft-korn-vcdiff.txt README.md
use examples && dodoc -r examples
}