~alpine/aports

[alpine-aports] [PATCH] main/libbsd: update to version 0.7.0

Andrew Hills <ahills@ednos.net>
Details
Message ID
<1433426072-24416-1-git-send-email-ahills@ednos.net>
Sender timestamp
1433426072
DKIM signature
missing
Download raw message
Patch: +732 -89
References to funopen() were all removed, since libbsd's implementation
depends on glibc's fopencookie().
---
 main/libbsd/APKBUILD                               |  24 +-
 ...rce_setproctitle_into_.init_array_section.patch |  77 ---
 main/libbsd/remove-funopen.patch                   | 720 +++++++++++++++++++++
 3 files changed, 732 insertions(+), 89 deletions(-)
 delete mode 100644 main/libbsd/Revert_Force_setproctitle_into_.init_array_section.patch
 create mode 100644 main/libbsd/remove-funopen.patch

diff --git a/main/libbsd/APKBUILD b/main/libbsd/APKBUILD
index 0b63168..77ea82d 100644
--- a/main/libbsd/APKBUILD
+++ b/main/libbsd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: William Pitcock <nenolod@dereferenced.org>
pkgname=libbsd
pkgver=0.6.0
pkgrel=1
pkgver=0.7.0
pkgrel=0
pkgdesc="commonly-used BSD functions not implemented by all libcs"
url="http://libbsd.freedesktop.org/"
arch="x86 x86_64"
@@ -14,8 +14,8 @@ makedepends="$depends_dev autoconf automake libtool bsd-compat-headers
install=""
subpackages="$pkgname-dev $pkgname-doc"
source="http://libbsd.freedesktop.org/releases/libbsd-$pkgver.tar.xz
	Revert_Force_setproctitle_into_.init_array_section.patch
	musl-fix-headers.patch
	remove-funopen.patch
	"

_builddir="$srcdir"/libbsd-$pkgver
@@ -49,12 +49,12 @@ package() {
	rm -f "$pkgdir"/usr/lib/*.la
}

md5sums="f6c75f0a9818e323a589bcbd560a0eb4  libbsd-0.6.0.tar.xz
628a86066f8a1222c7ffee5aa3d488ef  Revert_Force_setproctitle_into_.init_array_section.patch
712fca9c718f8b0f4d664c214072d6b3  musl-fix-headers.patch"
sha256sums="9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62  libbsd-0.6.0.tar.xz
a4497defcc14d04e407130931ed89c6b9e5e79c684884291cc080c6e90c82777  Revert_Force_setproctitle_into_.init_array_section.patch
3082d5f47c6d895dc3546d517ba7d541602872f00d5b39852a0b28b3d74ce954  musl-fix-headers.patch"
sha512sums="d750ead28e76938ab8d9c5575c1c87bcf275754f9f82b19d647f522bfaf07e5a85dc47ed5faae093994e5456be806fdebb55eeeed74efff3c950dfb6142e2b5c  libbsd-0.6.0.tar.xz
52d3e69a2589dc299bcc5ca99bcf595d054be4c8b6b2ce4101d7657a54fecc4bc843b4439f0c9b582266559288220b342f926e700e7ae7e91bf29f0ae30d707f  Revert_Force_setproctitle_into_.init_array_section.patch
87a4337108776cf8ff05be5938b3c8a548a4dd5625ae8e4afbab54c4c06af287188a81213633540a82c07e90b028b616f30934b02e8ab7485efa0ae0afdf20ee  musl-fix-headers.patch"
md5sums="fcceb4e66fd448ca4ed42ba22a8babb0  libbsd-0.7.0.tar.xz
712fca9c718f8b0f4d664c214072d6b3  musl-fix-headers.patch
c3bbb840dfd7dd05c87ad4da80e6baf2  remove-funopen.patch"
sha256sums="0f3b0e17e5c34c038126e0a04351b11e23c6101a7d0ce3beeab29bb6415c10bb  libbsd-0.7.0.tar.xz
3082d5f47c6d895dc3546d517ba7d541602872f00d5b39852a0b28b3d74ce954  musl-fix-headers.patch
8933824671a528226568cfab9adbd9a30c970fa74718279d5735d49b521583c3  remove-funopen.patch"
sha512sums="2c4c8fb2ae7fb5e5aab90f7a59a679220922dfeeaf0d54f80976914fcd507171bb9359f0837c32499e63a0f3e9342c9dcd387a466b359d20e3790ddc8ca17cea  libbsd-0.7.0.tar.xz
87a4337108776cf8ff05be5938b3c8a548a4dd5625ae8e4afbab54c4c06af287188a81213633540a82c07e90b028b616f30934b02e8ab7485efa0ae0afdf20ee  musl-fix-headers.patch
41f51507086f357b8310ada33190a41d1eee02e21259cf101ab46bd18e25bd4aab8b56abee3d4e0f9576a7e224de61c8cf248a2f83a7feae1d9f22fff54d682c  remove-funopen.patch"
diff --git a/main/libbsd/Revert_Force_setproctitle_into_.init_array_section.patch b/main/libbsd/Revert_Force_setproctitle_into_.init_array_section.patch
deleted file mode 100644
index 5d5b215..0000000
--- a/main/libbsd/Revert_Force_setproctitle_into_.init_array_section.patch
@@ -1,77 +0,0 @@
diff -rupN a/configure.ac b/configure.ac
--- a/configure.ac	2013-07-14 13:34:07.000000000 +0200
+++ b/configure.ac	2013-11-12 10:27:39.986117039 +0100
@@ -60,51 +60,6 @@ AC_CHECK_DECL([F_CLOSEM],
               [#include <limits.h>
                #include <fcntl.h>])
 
-AC_CACHE_CHECK(
-	[for GNU .init_array section support],
-	[libbsd_cv_gnu_init_array_support],
-	[AC_RUN_IFELSE(
-		[AC_LANG_SOURCE(
-[[
-static int rc = 1;
-static void init(int argc) { if (argc == 1) rc = 0; }
-void (*init_func)(int argc) __attribute__((section(".init_array"))) = init;
-int main() { return rc; }
-]]
-		)],
-		[libbsd_cv_gnu_init_array_support=yes],
-		[libbsd_cv_gnu_init_array_support=no],
-		[AC_PREPROC_IFELSE(
-			[AC_LANG_SOURCE(
-[[
-/* Look for a known libc that supports .init_array with the GNU extension
- * to pass main() arguments to the init functions. */
-#include <stdlib.h>
-#if defined __GLIBC_PREREQ
-#  if __GLIBC_PREREQ(2, 4)
-/* glibc supports GNU .init_array since 2.4. */
-#  else
-#    error glibc does not support GNU .init_array
-#  endif
-#else
-/*
- * Basic SysV ABI .init_array support, init functions do not get arguments:
- * - Bionic since its inception.
- * - uClibc since 0.9.29.
- */
-#  error unknown whether libc supports GNU .init_array
-#endif
-]]
-			)],
-			[libbsd_cv_gnu_init_array_support=yes],
-			[libbsd_cv_gnu_init_array_support=no])
-		]
-	)]
-)
-if test "$libbsd_cv_gnu_init_array_support" = no; then
-	AC_MSG_ERROR([missing required GNU .init_array section support])
-fi
--
 # Checks for library functions.
 AC_MSG_CHECKING([for program_invocation_short_name])
 AC_LINK_IFELSE(
diff -rupN a/src/setproctitle.c b/src/setproctitle.c
--- a/src/setproctitle.c	2013-07-14 13:34:07.000000000 +0200
+++ b/src/setproctitle.c	2013-11-12 10:28:55.332787881 +0100
@@ -1,6 +1,6 @@
 /*
  * Copyright © 2010 William Ahern
- * Copyright © 2012-2013 Guillem Jover <guillem@hadrons.org>
+ * Copyright © 2012 Guillem Jover <guillem@hadrons.org>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -155,8 +155,8 @@ spt_copyargs(int argc, char *argv[])
 	return 0;
 }
 
-void
-setproctitle_init(int argc, char *argv[], char *envp[])
+static void
+spt_init(int argc, char *argv[], char *envp[])
 {
 	char *base, *end, *nul, *tmp;
 	int i, envc, error;
diff --git a/main/libbsd/remove-funopen.patch b/main/libbsd/remove-funopen.patch
new file mode 100644
index 0000000..d62877b
--- /dev/null
+++ b/main/libbsd/remove-funopen.patch
@@ -0,0 +1,720 @@
diff -urN libbsd-0.7.0/include/bsd/stdio.h libbsd-0.7.0-patch/include/bsd/stdio.h
--- libbsd-0.7.0/include/bsd/stdio.h	2013-10-21 03:42:04.000000000 +0000
+++ libbsd-0.7.0-patch/include/bsd/stdio.h	2015-06-04 13:32:20.978633262 +0000
@@ -46,23 +46,6 @@
 
 char *fgetln(FILE *fp, size_t *lenp);
 
-/*
- * Note: We diverge from the FreeBSD, OpenBSD and DragonFlyBSD declarations,
- * because seekfn() there wrongly uses fpos_t, assuming it's an integral
- * type, and any code using that on a system where fpos_t is a struct
- * (such as GNU-based systems or NetBSD) will fail to build. In which case,
- * as the code has to be modified anyway, we might just as well use the
- * correct declaration here.
- */
-FILE *funopen(const void *cookie,
-              int (*readfn)(void *cookie, char *buf, int size),
-              int (*writefn)(void *cookie, const char *buf, int size),
-              off_t (*seekfn)(void *cookie, off_t offset, int whence),
-              int (*closefn)(void *cookie));
-
-#define fropen(cookie, fn) funopen(cookie, fn, NULL, NULL, NULL)
-#define fwopen(cookie, fn) funopen(cookie, NULL, fn, NULL, NULL)
-
 int fpurge(FILE *fp);
 __END_DECLS
 
diff -urN libbsd-0.7.0/man/Makefile.am libbsd-0.7.0-patch/man/Makefile.am
--- libbsd-0.7.0/man/Makefile.am	2014-07-17 03:06:29.000000000 +0000
+++ libbsd-0.7.0-patch/man/Makefile.am	2015-06-04 13:32:43.038680202 +0000
@@ -28,7 +28,6 @@
 	flopen.3 \
 	fmtcheck.3 \
 	fparseln.3 \
-	funopen.3 \
 	getbsize.3 \
 	getmode.3 \
 	getpeereid.3 \
diff -urN libbsd-0.7.0/man/Makefile.in libbsd-0.7.0-patch/man/Makefile.in
--- libbsd-0.7.0/man/Makefile.in	2014-07-29 01:19:59.000000000 +0000
+++ libbsd-0.7.0-patch/man/Makefile.in	2015-06-04 13:32:45.925353009 +0000
@@ -282,7 +282,6 @@
 	flopen.3 \
 	fmtcheck.3 \
 	fparseln.3 \
-	funopen.3 \
 	getbsize.3 \
 	getmode.3 \
 	getpeereid.3 \
diff -urN libbsd-0.7.0/man/funopen.3 libbsd-0.7.0-patch/man/funopen.3
--- libbsd-0.7.0/man/funopen.3	2013-10-21 03:42:04.000000000 +0000
+++ libbsd-0.7.0-patch/man/funopen.3	1970-01-01 00:00:00.000000000 +0000
@@ -1,191 +0,0 @@
-.\" Copyright (c) 1990, 1991, 1993
-.\"	The Regents of the University of California.  All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" Chris Torek.
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"     @(#)funopen.3	8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd March 19, 2004
-.Dt FUNOPEN 3
-.Os
-.Sh NAME
-.Nm funopen ,
-.Nm fropen ,
-.Nm fwopen
-.Nd open a stream
-.Sh LIBRARY
-.ds str-Lb-libbsd Utility functions from BSD systems (libbsd, \-lbsd)
-.Lb libbsd
-.Sh SYNOPSIS
-.In bsd/stdio.h
-.Ft FILE *
-.Fn funopen "const void *cookie" "int (*readfn)(void *, char *, int)" "int (*writefn)(void *, const char *, int)" "off_t (*seekfn)(void *, off_t, int)" "int (*closefn)(void *)"
-.Ft FILE *
-.Fn fropen "void *cookie" "int (*readfn)(void *, char *, int)"
-.Ft FILE *
-.Fn fwopen "void *cookie" "int (*writefn)(void *, const char *, int)"
-.Sh DESCRIPTION
-The
-.Fn funopen
-function
-associates a stream with up to four
-.Dq Tn I/O No functions .
-Either
-.Fa readfn
-or
-.Fa writefn
-must be specified;
-the others can be given as an appropriately-typed
-.Dv NULL
-pointer.
-These
-.Tn I/O
-functions will be used to read, write, seek and
-close the new stream.
-.Pp
-In general, omitting a function means that any attempt to perform the
-associated operation on the resulting stream will fail.
-If the close function is omitted, closing the stream will flush
-any buffered output and then succeed.
-.Pp
-The calling conventions of
-.Fa readfn ,
-.Fa writefn ,
-.Fa seekfn
-and
-.Fa closefn
-must match those, respectively, of
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr lseek 2 ,
-and
-.Xr close 2
-with the single exception that they are passed the
-.Fa cookie
-argument specified to
-.Fn funopen
-in place of the traditional file descriptor argument.
-.Pp
-Read and write
-.Tn I/O
-functions are allowed to change the underlying buffer
-on fully buffered or line buffered streams by calling
-.Xr setvbuf 3 .
-They are also not required to completely fill or empty the buffer.
-They are not, however, allowed to change streams from unbuffered to buffered
-or to change the state of the line buffering flag.
-They must also be prepared to have read or write calls occur on buffers other
-than the one most recently specified.
-.Pp
-All user
-.Tn I/O
-functions can report an error by returning \-1.
-Additionally, all of the functions should set the external variable
-.Va errno
-appropriately if an error occurs.
-.Pp
-An error on
-.Fn closefn
-does not keep the stream open.
-.Pp
-As a convenience, the include file
-.In stdio.h
-defines the macros
-.Fn fropen
-and
-.Fn fwopen
-as calls to
-.Fn funopen
-with only a read or write function specified.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn funopen
-returns a
-.Dv FILE
-pointer.
-Otherwise,
-.Dv NULL
-is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fn funopen
-function
-was called without either a read or write function.
-The
-.Fn funopen
-function
-may also fail and set
-.Va errno
-for any of the errors
-specified for the routine
-.Xr malloc 3 .
-.El
-.Sh SEE ALSO
-.Xr fcntl 2 ,
-.Xr open 2 ,
-.Xr fclose 3 ,
-.Xr fopen 3 ,
-.Xr fseek 3 ,
-.Xr setbuf 3
-.Sh HISTORY
-The
-.Fn funopen
-functions first appeared in
-.Bx 4.4 .
-.Sh BUGS
-The
-.Fn funopen
-function
-may not be portable to systems other than
-.Bx .
-.Pp
-On
-.Fx ,
-.Ox
-and
-.Dx
-the
-.Fn funopen
-interface erroneously assumes that
-.Vt fpos_t
-is an integral type, and uses it in the
-.Fa seekfn
-hook; but because code using a
-.Fa seekfn
-hook will fail to build on systems where
-.Vt fpos_t
-is a struct, and it will need to be slightly fixed anyway, the
-implementation provided by libbsd (in the same way as
-.Nx )
-uses the correct
-.Vt off_t
-types.
diff -urN libbsd-0.7.0/src/Makefile.am libbsd-0.7.0-patch/src/Makefile.am
--- libbsd-0.7.0/src/Makefile.am	2014-07-20 00:08:02.000000000 +0000
+++ libbsd-0.7.0-patch/src/Makefile.am	2015-06-04 13:33:00.868718142 +0000
@@ -56,7 +56,6 @@
 	fmtcheck.c \
 	fparseln.c \
 	fpurge.c \
-	funopen.c \
 	getbsize.c \
 	getpeereid.c \
 	hash/md5.c \
diff -urN libbsd-0.7.0/src/Makefile.in libbsd-0.7.0-patch/src/Makefile.in
--- libbsd-0.7.0/src/Makefile.in	2014-07-29 01:19:59.000000000 +0000
+++ libbsd-0.7.0-patch/src/Makefile.in	2015-06-04 13:33:12.952077187 +0000
@@ -142,7 +142,7 @@
 am_libbsd_la_OBJECTS = arc4random.lo bsd_getopt.lo closefrom.lo \
 	dehumanize_number.lo err.lo expand_number.lo fgetln.lo \
 	fgetwln.lo flopen.lo fmtcheck.lo fparseln.lo fpurge.lo \
-	funopen.lo getbsize.lo getpeereid.lo hash/md5.lo hash/md5hl.lo \
+	getbsize.lo getpeereid.lo hash/md5.lo hash/md5hl.lo \
 	heapsort.lo humanize_number.lo inet_net_pton.lo merge.lo \
 	nlist.lo pidfile.lo progname.lo radixsort.lo readpassphrase.lo \
 	reallocarray.lo reallocf.lo setmode.lo setproctitle.lo \
@@ -376,7 +376,6 @@
 	fmtcheck.c \
 	fparseln.c \
 	fpurge.c \
-	funopen.c \
 	getbsize.c \
 	getpeereid.c \
 	hash/md5.c \
@@ -556,7 +555,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmtcheck.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fparseln.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fpurge.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funopen.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getbsize.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeereid.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/heapsort.Plo@am__quote@
diff -urN libbsd-0.7.0/src/funopen.c libbsd-0.7.0-patch/src/funopen.c
--- libbsd-0.7.0/src/funopen.c	2013-10-21 03:42:04.000000000 +0000
+++ libbsd-0.7.0-patch/src/funopen.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,142 +0,0 @@
-/*
- * Copyright © 2011, 2013 Guillem Jover
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef HAVE_FOPENCOOKIE
-struct funopen_cookie {
-	void *orig_cookie;
-
-	int (*readfn)(void *cookie, char *buf, int size);
-	int (*writefn)(void *cookie, const char *buf, int size);
-	off_t (*seekfn)(void *cookie, off_t offset, int whence);
-	int (*closefn)(void *cookie);
-};
-
-static ssize_t
-funopen_read(void *cookie, char *buf, size_t size)
-{
-	struct funopen_cookie *cookiewrap = cookie;
-
-	if (cookiewrap->readfn == NULL) {
-		errno = EBADF;
-		return -1;
-	}
-
-	return cookiewrap->readfn(cookiewrap->orig_cookie, buf, size);
-}
-
-static ssize_t
-funopen_write(void *cookie, const char *buf, size_t size)
-{
-	struct funopen_cookie *cookiewrap = cookie;
-
-	if (cookiewrap->writefn == NULL)
-		return EOF;
-
-	return cookiewrap->writefn(cookiewrap->orig_cookie, buf, size);
-}
-
-static int
-funopen_seek(void *cookie, off64_t *offset, int whence)
-{
-	struct funopen_cookie *cookiewrap = cookie;
-	off_t soff = *offset;
-
-	if (cookiewrap->seekfn == NULL) {
-		errno = ESPIPE;
-		return -1;
-	}
-
-	soff = cookiewrap->seekfn(cookiewrap->orig_cookie, soff, whence);
-	*offset = soff;
-
-	return *offset;
-}
-
-static int
-funopen_close(void *cookie)
-{
-	struct funopen_cookie *cookiewrap = cookie;
-	int rc;
-
-	if (cookiewrap->closefn == NULL)
-		return 0;
-
-	rc = cookiewrap->closefn(cookiewrap->orig_cookie);
-
-	free(cookiewrap);
-
-	return rc;
-}
-
-FILE *
-funopen(const void *cookie,
-        int (*readfn)(void *cookie, char *buf, int size),
-        int (*writefn)(void *cookie, const char *buf, int size),
-        off_t (*seekfn)(void *cookie, off_t offset, int whence),
-        int (*closefn)(void *cookie))
-{
-	struct funopen_cookie *cookiewrap;
-	cookie_io_functions_t funcswrap = {
-		.read = funopen_read,
-		.write = funopen_write,
-		.seek = funopen_seek,
-		.close = funopen_close,
-	};
-	const char *mode;
-
-	if (readfn) {
-		if (writefn == NULL)
-			mode = "r";
-		else
-			mode = "r+";
-	} else if (writefn) {
-		mode = "w";
-	} else {
-		errno = EINVAL;
-		return NULL;
-	}
-
-	cookiewrap = malloc(sizeof(*cookiewrap));
-	if (cookiewrap == NULL)
-		return NULL;
-
-	cookiewrap->orig_cookie = (void *)cookie;
-	cookiewrap->readfn = readfn;
-	cookiewrap->writefn = writefn;
-	cookiewrap->seekfn = seekfn;
-	cookiewrap->closefn = closefn;
-
-	return fopencookie(cookiewrap, mode, funcswrap);
-}
-#else
-#error "Function funopen() needs to be ported."
-#endif
diff -urN libbsd-0.7.0/src/libbsd.map libbsd-0.7.0-patch/src/libbsd.map
--- libbsd-0.7.0/src/libbsd.map	2014-07-17 03:11:17.000000000 +0000
+++ libbsd-0.7.0-patch/src/libbsd.map	2015-06-04 13:33:26.058771740 +0000
@@ -114,8 +114,6 @@
 LIBBSD_0.7 {
     getbsize;
 
-    funopen;
-
     reallocarray;
 
     sl_init;
diff -urN libbsd-0.7.0/test/Makefile.am libbsd-0.7.0-patch/test/Makefile.am
--- libbsd-0.7.0/test/Makefile.am	2014-07-20 00:06:41.000000000 +0000
+++ libbsd-0.7.0-patch/test/Makefile.am	2015-06-04 13:34:29.082239174 +0000
@@ -13,7 +13,6 @@
 	endian \
 	humanize \
 	fgetln \
-	funopen \
 	proctitle-init \
 	$(nil)
 
@@ -23,7 +22,6 @@
 
 humanize_LDFLAGS = $(top_builddir)/src/libbsd.la
 fgetln_LDFLAGS = $(top_builddir)/src/libbsd.la
-funopen_LDFLAGS = $(top_builddir)/src/libbsd.la
 proctitle_init_SOURCES = proctitle.c
 proctitle_init_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_USE_SETPROCTITLE_INIT=1
 proctitle_init_LDFLAGS = $(top_builddir)/src/libbsd.la
diff -urN libbsd-0.7.0/test/Makefile.in libbsd-0.7.0-patch/test/Makefile.in
--- libbsd-0.7.0/test/Makefile.in	2014-07-29 01:19:59.000000000 +0000
+++ libbsd-0.7.0-patch/test/Makefile.in	2015-06-04 13:34:16.542212491 +0000
@@ -78,7 +78,7 @@
 build_triplet = @build@
 host_triplet = @host@
 check_PROGRAMS = headers$(EXEEXT) overlay$(EXEEXT) endian$(EXEEXT) \
-	humanize$(EXEEXT) fgetln$(EXEEXT) funopen$(EXEEXT) \
+	humanize$(EXEEXT) fgetln$(EXEEXT) \
 	proctitle-init$(EXEEXT) $(am__EXEEXT_1)
 @BUILD_LIBBSD_CTOR_TRUE@am__append_1 = proctitle
 subdir = test
@@ -110,12 +110,6 @@
 fgetln_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(fgetln_LDFLAGS) $(LDFLAGS) -o $@
-funopen_SOURCES = funopen.c
-funopen_OBJECTS = funopen.$(OBJEXT)
-funopen_LDADD = $(LDADD)
-funopen_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(funopen_LDFLAGS) $(LDFLAGS) -o $@
 headers_SOURCES = headers.c
 headers_OBJECTS = headers.$(OBJEXT)
 headers_LDADD = $(LDADD)
@@ -175,9 +169,9 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = endian.c fgetln.c funopen.c headers.c humanize.c overlay.c \
+SOURCES = endian.c fgetln.c headers.c humanize.c overlay.c \
 	proctitle.c $(proctitle_init_SOURCES)
-DIST_SOURCES = endian.c fgetln.c funopen.c headers.c humanize.c \
+DIST_SOURCES = endian.c fgetln.c headers.c humanize.c \
 	overlay.c proctitle.c $(proctitle_init_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -532,7 +526,6 @@
 
 humanize_LDFLAGS = $(top_builddir)/src/libbsd.la
 fgetln_LDFLAGS = $(top_builddir)/src/libbsd.la
-funopen_LDFLAGS = $(top_builddir)/src/libbsd.la
 proctitle_init_SOURCES = proctitle.c
 proctitle_init_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_USE_SETPROCTITLE_INIT=1
 proctitle_init_LDFLAGS = $(top_builddir)/src/libbsd.la
@@ -595,10 +588,6 @@
 	@rm -f fgetln$(EXEEXT)
 	$(AM_V_CCLD)$(fgetln_LINK) $(fgetln_OBJECTS) $(fgetln_LDADD) $(LIBS)
 
-funopen$(EXEEXT): $(funopen_OBJECTS) $(funopen_DEPENDENCIES) $(EXTRA_funopen_DEPENDENCIES) 
-	@rm -f funopen$(EXEEXT)
-	$(AM_V_CCLD)$(funopen_LINK) $(funopen_OBJECTS) $(funopen_LDADD) $(LIBS)
-
 headers$(EXEEXT): $(headers_OBJECTS) $(headers_DEPENDENCIES) $(EXTRA_headers_DEPENDENCIES) 
 	@rm -f headers$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(headers_OBJECTS) $(headers_LDADD) $(LIBS)
@@ -627,7 +616,6 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/endian.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fgetln.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funopen.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/headers.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/humanize.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overlay.Po@am__quote@
@@ -905,13 +893,6 @@
 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-funopen.log: funopen$(EXEEXT)
-	@p='funopen$(EXEEXT)'; \
-	b='funopen'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
 proctitle-init.log: proctitle-init$(EXEEXT)
 	@p='proctitle-init$(EXEEXT)'; \
diff -urN libbsd-0.7.0/test/funopen.c libbsd-0.7.0-patch/test/funopen.c
--- libbsd-0.7.0/test/funopen.c	2013-10-21 03:42:04.000000000 +0000
+++ libbsd-0.7.0-patch/test/funopen.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,178 +0,0 @@
-/*
- * Copyright © 2013 Guillem Jover <guillem@hadrons.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-
-#define ARRAY_SIZE 100
-#define TEST_SIZE 50
-
-struct test_cookie {
-	char array[ARRAY_SIZE];
-	int index;
-};
-
-int
-test_readfn(void *cookie, char *buf, int size)
-{
-	struct test_cookie *tc = cookie;
-	int left_size = sizeof(tc->array) - tc->index;
-
-	if (left_size < 0)
-		size = 0;
-	else if (left_size < size)
-		size = left_size;
-
-	if (size > 0) {
-		memcpy(buf, tc->array + tc->index, size);
-		tc->index += size;
-	}
-
-	return size;
-}
-
-int
-test_writefn(void *cookie, const char *buf, int size)
-{
-	struct test_cookie *tc = cookie;
-	int left_size = sizeof(tc->array) - tc->index;
-
-	if (left_size < 0)
-		size = 0;
-	else if (left_size < size)
-		size = left_size;
-
-	if (size > 0) {
-		memcpy(tc->array + tc->index, buf, size);
-		tc->index += size;
-	}
-
-	return size;
-}
-
-off_t
-test_seekfn(void *cookie, off_t offset, int whence)
-{
-	struct test_cookie *tc = cookie;
-
-	switch (whence) {
-	case SEEK_SET:
-		tc->index = offset;
-		break;
-	case SEEK_CUR:
-		tc->index += offset;
-		break;
-	case SEEK_END:
-		tc->index = sizeof(tc->array) + offset;
-		break;
-	}
-
-	return tc->index;
-}
-
-int
-test_closefn(void *cookie)
-{
-	struct test_cookie *tc = cookie;
-
-	memset(tc->array, 0x7f, sizeof(tc->array));
-
-	return 0;
-}
-
-int
-main(int argc, char **argv)
-{
-	struct test_cookie tc;
-	char data[ARRAY_SIZE];
-	FILE *fp;
-	size_t i;
-
-	/* Test invalid hooks. */
-	fp = funopen(&tc, NULL, NULL, NULL, NULL);
-	assert(fp == NULL);
-	assert(errno == EINVAL);
-
-	/* Test read-only file. */
-	tc.index = 0;
-	for (i = 0; i < sizeof(tc.array); i++)
-		tc.array[i] = i;
-
-	fp = fropen(&tc, test_readfn);
-	assert(fp);
-
-	assert(fread(data, 1, TEST_SIZE, fp) == TEST_SIZE);
-	assert(memcmp(tc.array, data, TEST_SIZE) == 0);
-
-	assert(fwrite(data, 1, TEST_SIZE, fp) == 0);
-
-	assert(fclose(fp) == 0);
-
-	/* Test write-only file. */
-	memset(&tc, 0, sizeof(tc));
-
-	fp = fwopen(&tc, test_writefn);
-	assert(fp);
-
-	setvbuf(fp, NULL, _IONBF, 0);
-
-	assert(fwrite(data, 1, TEST_SIZE, fp) == TEST_SIZE);
-	assert(memcmp(tc.array, data, TEST_SIZE) == 0);
-
-	assert(fread(data, 1, TEST_SIZE, fp) == 0);
-
-	assert(fclose(fp) == 0);
-
-	/* Test seekable file. */
-	memset(&tc, 0, sizeof(tc));
-
-	fp = funopen(&tc, test_readfn, test_writefn, test_seekfn, NULL);
-	assert(fp);
-
-	setvbuf(fp, NULL, _IONBF, 0);
-
-	assert(fwrite(data, 1, TEST_SIZE, fp) == TEST_SIZE);
-	assert(fseek(fp, 0L, SEEK_SET) == 0);
-	assert(fwrite(data, 1, ARRAY_SIZE, fp) == ARRAY_SIZE);
-	assert(memcmp(tc.array, data, ARRAY_SIZE) == 0);
-
-	assert(fread(data, 1, TEST_SIZE, fp) == 0);
-
-	assert(fclose(fp) == 0);
-
-	/* Test close hook. */
-	memset(&tc, 0, sizeof(tc));
-
-	fp = funopen(&tc, test_readfn, test_writefn, NULL, test_closefn);
-	assert(fclose(fp) == 0);
-
-	for (i = 0; i < sizeof(tc.array); i++)
-		assert(tc.array[i] == 0x7f);
-
-	return 0;
-}
-- 
2.4.2



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)