halfempty: readd, doesn't work well on NetBSD yet.

This commit is contained in:
Thomas Klausner 2020-02-12 12:19:11 +01:00
parent 077f2af09c
commit 999b97501f
10 changed files with 181 additions and 5 deletions

View File

@ -1070,7 +1070,6 @@ SUBDIR+= ghc
SUBDIR+= ghc-core
SUBDIR+= ghc68
SUBDIR+= ghc710
SUBDIR+= glusterfs
SUBDIR+= ghmm
SUBDIR+= ghostpcl-urwfonts-ttf
SUBDIR+= ghostscript-cidfonts-ryumin
@ -1101,6 +1100,7 @@ SUBDIR+= glkterm
SUBDIR+= glm
SUBDIR+= globulation2
SUBDIR+= glulxe
SUBDIR+= glusterfs
SUBDIR+= gmap
SUBDIR+= gmetadom
SUBDIR+= gmic
@ -1286,10 +1286,10 @@ SUBDIR+= gtypist
SUBDIR+= gucharmap
SUBDIR+= guest-oslogin
SUBDIR+= guichan
SUBDIR+= guile30
SUBDIR+= guile-persist
SUBDIR+= guile-reader
SUBDIR+= guile-stis-parser
SUBDIR+= guile30
SUBDIR+= guitone
SUBDIR+= guix
SUBDIR+= gupnp-ui
@ -1306,6 +1306,7 @@ SUBDIR+= h8300-elf-binutils
SUBDIR+= h8300-elf-gcc
SUBDIR+= hackgen-ttf
SUBDIR+= haddock
SUBDIR+= halfempty
SUBDIR+= hammer
SUBDIR+= hanazono-ttf
SUBDIR+= harmony
@ -1721,6 +1722,8 @@ SUBDIR+= kdebugsettings
SUBDIR+= kdecoration
SUBDIR+= kdialog
SUBDIR+= kea
SUBDIR+= kea-git
SUBDIR+= keama-git
SUBDIR+= keditbookmarks
SUBDIR+= kfind
SUBDIR+= kgamma5
@ -1791,6 +1794,7 @@ SUBDIR+= ldc-git
SUBDIR+= lde
SUBDIR+= ldtp
SUBDIR+= leo
SUBDIR+= lf
SUBDIR+= lfe
SUBDIR+= lgogdownloader-git
SUBDIR+= lhapdf
@ -2190,6 +2194,7 @@ SUBDIR+= mingw-w64-headers
SUBDIR+= mingw-w64-libgcc
SUBDIR+= mini18n
SUBDIR+= minio
SUBDIR+= minizip
SUBDIR+= minizip192
SUBDIR+= minuit2
SUBDIR+= mipscope
@ -2310,6 +2315,8 @@ SUBDIR+= myfitter
SUBDIR+= mysql++
SUBDIR+= mysql-docs
SUBDIR+= mysql-proxy
SUBDIR+= mysql80-client
SUBDIR+= mysql80-server
SUBDIR+= mysqltcl
SUBDIR+= n2n
SUBDIR+= naev
@ -2432,7 +2439,6 @@ SUBDIR+= obnc-libstd
SUBDIR+= ocaml
SUBDIR+= ocaml-bin_prot
SUBDIR+= ocaml-biniou
SUBDIR+= ocaml-cairo
SUBDIR+= ocaml-camomile
SUBDIR+= ocaml-comparelib
SUBDIR+= ocaml-custom_printf
@ -2442,7 +2448,6 @@ SUBDIR+= ocaml-fieldslib
SUBDIR+= ocaml-gen
SUBDIR+= ocaml-gmetadom
SUBDIR+= ocaml-herelib
SUBDIR+= ocaml-lablgtk3
SUBDIR+= ocaml-obuild
SUBDIR+= ocaml-odoc
SUBDIR+= ocaml-ounit
@ -4267,6 +4272,7 @@ SUBDIR+= radare2-git
SUBDIR+= radiotray
SUBDIR+= rainbow
SUBDIR+= rakudo-star
SUBDIR+= range-v3
SUBDIR+= ranmacgen
SUBDIR+= rapidxml
SUBDIR+= rar4
@ -4323,6 +4329,7 @@ SUBDIR+= rootcheck
SUBDIR+= rootsh
SUBDIR+= rosegarden
SUBDIR+= rott
SUBDIR+= roundcube-plugin-carddav
SUBDIR+= roundcube-skin-mvision2
SUBDIR+= routersploit
SUBDIR+= roxterm
@ -4448,8 +4455,8 @@ SUBDIR+= scorched3d
SUBDIR+= scourge
SUBDIR+= scr2png
SUBDIR+= scratchpad
SUBDIR+= screengrab
SUBDIR+= scrc
SUBDIR+= screengrab
SUBDIR+= scribus
SUBDIR+= scsh-install-lib
SUBDIR+= scummvm-bass
@ -4460,6 +4467,11 @@ SUBDIR+= scythe
SUBDIR+= sdd
SUBDIR+= sdict-tools
SUBDIR+= sdif-git
SUBDIR+= sdl-hercules-crypto
SUBDIR+= sdl-hercules-decnumber
SUBDIR+= sdl-hercules-hyperion
SUBDIR+= sdl-hercules-softfloat
SUBDIR+= sdl-hercules-telnet
SUBDIR+= sds
SUBDIR+= seafile-client
SUBDIR+= seafile-gui
@ -4713,6 +4725,7 @@ SUBDIR+= tealdeer
SUBDIR+= teamspeak
SUBDIR+= teco
SUBDIR+= telegraf
SUBDIR+= telegram-desktop
SUBDIR+= telepathy-butterfly
SUBDIR+= telepathy-logger
SUBDIR+= tendra
@ -4989,6 +5002,7 @@ SUBDIR+= wkhtmltopdf
SUBDIR+= wl-git
SUBDIR+= wla-dx
SUBDIR+= wla-dx-git
SUBDIR+= wlroots
SUBDIR+= wmc2d
SUBDIR+= wmii-devel
SUBDIR+= wmname

3
halfempty/DESCR Normal file
View File

@ -0,0 +1,3 @@
Halfempty is a new testcase minimization tool, designed with
parallelization in mind. Halfempty was built to use strategies and
techniques that dramatically speed up the minimization process.

27
halfempty/Makefile Normal file
View File

@ -0,0 +1,27 @@
# $NetBSD: Makefile,v 1.3 2020/01/14 13:13:14 wiz Exp $
DISTNAME= halfempty-0.30
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GITHUB:=googleprojectzero/}
GITHUB_TAG= v${PKGVERSION_NOREV}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://github.com/googleprojectzero/halfempty/
COMMENT= Fast, parallel test case minimization tool
LICENSE= apache-2.0
USE_TOOLS+= gmake pkg-config
#TEST_TARGET= test
INSTALLATION_DIRS= bin share/doc/halfempty
#TEST_DEPENDS+= coreutils-[0-9]*:../../sysutils/coreutils
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/halfempty ${DESTDIR}${PREFIX}/bin
${INSTALL_DATA} ${WRKSRC}/README.md ${DESTDIR}${PREFIX}/share/doc/halfempty
.include "../../devel/glib2/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
# for putting shuf from coreutils in path
#PATH:=${PATH}:${PREFIX}/gnu/bin

3
halfempty/PLIST Normal file
View File

@ -0,0 +1,3 @@
@comment $NetBSD: PLIST,v 1.2 2020/01/12 13:22:29 wiz Exp $
bin/halfempty
share/doc/halfempty/README.md

11
halfempty/distinfo Normal file
View File

@ -0,0 +1,11 @@
$NetBSD: distinfo,v 1.2 2020/01/12 13:22:29 wiz Exp $
SHA1 (halfempty-0.30.tar.gz) = 488244faa408bb33331a30a0e482ad46d0968c85
RMD160 (halfempty-0.30.tar.gz) = e4f3b6840c973a116dc066b6bdc7040d848ff39e
SHA512 (halfempty-0.30.tar.gz) = 99a78723fd70f06f6059379062cb700e4f571ef476e48b5fa61a3afa2d2290536ad287cee8a62441d4528cb4849755daa36aef9989239bdb59510e562dc0bedd
Size (halfempty-0.30.tar.gz) = 1097760 bytes
SHA1 (patch-Makefile) = 604dcd52ffd6769ea3b6658126436267a48b7e0b
SHA1 (patch-bisect.c) = e78d35cb18ec1d59eff66ee31afac3f42753cdd5
SHA1 (patch-limits.c) = 3999440235ddff9b2d48b5f639d1fd22cb37f698
SHA1 (patch-proc.c) = 638b8b9b7c0f74b004cf19a40ef7acea1ca9be66
SHA1 (patch-util.c) = 9998ae7bf0c860f1c6483010f61a0fa35e2f0554

View File

@ -0,0 +1,29 @@
$NetBSD: patch-Makefile,v 1.2 2020/01/12 13:22:29 wiz Exp $
Use generic replacement functions for missing symbols on NetBSD.
https://github.com/googleprojectzero/halfempty/pull/11
--- Makefile.orig 2019-03-16 17:55:00.000000000 +0000
+++ Makefile
@@ -1,7 +1,7 @@
CC = gcc
-CFLAGS = -Wall -std=gnu99 -O2 -ggdb3 -march=native -fPIC -Wno-format-zero-length -Wno-unused-parameter
-LDFLAGS = -pie
-CPPFLAGS = -UNDEBUG -UG_DISABLE_ASSERT `getconf LFS_CFLAGS` `pkg-config --cflags glib-2.0` -D_GNU_SOURCE
+CFLAGS += -Wall -std=gnu99 -O2 -ggdb3 -march=native -fPIC -Wno-format-zero-length -Wno-unused-parameter
+LDFLAGS += -pie
+CPPFLAGS += -UNDEBUG -UG_DISABLE_ASSERT `getconf LFS_CFLAGS` `pkg-config --cflags glib-2.0` -D_GNU_SOURCE
LDLIBS = `pkg-config --libs glib-2.0`
EXTRA =
@@ -23,6 +23,10 @@ ifeq ($(findstring Microsoft,$(shell una
EXTRA = splice_generic.o sendfile_generic.o
endif
+ifeq ($(shell uname),NetBSD)
+ EXTRA = sendfile_generic.o splice_generic.o
+endif
+
halfempty: proc.o bisect.o util.o zero.o tree.o flags.o halfempty.o limits.o $(EXTRA)
util.o: monitor.h util.c

View File

@ -0,0 +1,25 @@
$NetBSD: patch-bisect.c,v 1.1 2020/01/09 12:12:17 wiz Exp $
%m is only allowed in syslog(3) like functions [-Wformat=]
https://github.com/googleprojectzero/halfempty/pull/11
--- bisect.c.orig 2019-03-16 17:55:00.000000000 +0000
+++ bisect.c
@@ -202,7 +202,7 @@ static task_t * strategy_bisect_data(GNo
source->fd,
0,
childstatus->offset) == false) {
- g_error("sendfile failed while trying to construct new file, %m");
+ g_error("sendfile failed while trying to construct new file, %s", strerror(errno));
goto nochildunlock;
}
@@ -215,7 +215,7 @@ static task_t * strategy_bisect_data(GNo
source->size
- childstatus->chunksize
- childstatus->offset) == false) {
- g_error("sendfile failed while trying to construct new file, %m");
+ g_error("sendfile failed while trying to construct new file, %s", strerror(errno));
goto nochildunlock;
}

View File

@ -0,0 +1,24 @@
$NetBSD: patch-limits.c,v 1.1 2020/01/09 12:12:17 wiz Exp $
%m is only allowed in syslog(3) like functions [-Wformat=]
https://github.com/googleprojectzero/halfempty/pull/11
--- limits.c.orig 2019-03-16 17:55:00.000000000 +0000
+++ limits.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/time.h>
@@ -127,7 +128,7 @@ static void __attribute__((constructor))
for (gint i = 0; i < RLIMIT_NLIMITS; i++) {
if (getrlimit(i, &kChildLimits[i]) != 0) {
- g_warning("failed to getrlimit for %u, %m", i);
+ g_warning("failed to getrlimit for %u, %s", i, strerror(errno));
}
g_debug("Configured rlimit %s => { %llu, %llu }",

View File

@ -0,0 +1,24 @@
$NetBSD: patch-proc.c,v 1.1 2020/01/09 12:12:17 wiz Exp $
warning: %m is only allowed in syslog(3) like functions [-Wformat=]
use more portable version of setpgrp()
https://github.com/googleprojectzero/halfempty/pull/11
--- proc.c.orig 2019-03-16 17:55:00.000000000 +0000
+++ proc.c
@@ -50,12 +50,12 @@ static void configure_child_limits(gpoin
// Some of these may fail, not sure what to do.
for (gint i = 0; i < RLIMIT_NLIMITS; i++) {
if (setrlimit(i, &kChildLimits[i]) == -1) {
- g_critical("a call to setrlimit for %u failed(), %m", i);
+ g_critical("a call to setrlimit for %u failed(), %s", i, strerror(errno));
}
}
// Make sure we create a new pgrp so that we can kill all subprocesses.
- setpgrp();
+ setpgid(0, 0);
#ifdef __linux__
// Try to cleanup if we get killed.

View File

@ -0,0 +1,16 @@
$NetBSD: patch-util.c,v 1.1 2020/01/09 12:12:17 wiz Exp $
%m is only allowed in syslog(3) like functions [-Wformat=]
https://github.com/googleprojectzero/halfempty/pull/11
--- util.c.orig 2019-03-16 17:55:00.000000000 +0000
+++ util.c
@@ -129,7 +129,7 @@ gboolean generate_dot_tree(GNode *root,
FILE *out = fopen(filename, "w");
if (!out) {
- g_warning("failed to open file `%s` to save dot file, %m", filename);
+ g_warning("failed to open file `%s` to save dot file, %s", filename, strerror(errno));
return false;
}