Hi, an update of unpaper, it needs now libav which is part of ffmpeg.
I tooks diffs from pkgsrc who use ffmpeg and not libav directly. I can't comment those diff but it works for me on amd64. I removed README as it was useless anyway and new doc files are markdown-based so I did not include them. I'v tried my best ;) j. Index: Makefile =================================================================== RCS file: /cvs/ports/print/unpaper/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- Makefile 10 May 2014 07:42:47 -0000 1.4 +++ Makefile 8 Nov 2016 23:52:18 -0000 @@ -2,31 +2,29 @@ COMMENT= post-processing tool for scanned paper sheets -DISTNAME= unpaper-0.3 +DISTNAME= unpaper-6.1 CATEGORIES= print graphics -HOMEPAGE= http://unpaper.berlios.de/ +HOMEPAGE= https://github.com/Flameeyes/unpaper MAINTAINER= Antoine Jacoutot <ajacou...@openbsd.org> # GPLv2 PERMIT_PACKAGE_CDROM= Yes -WANTLIB += c m +WANTLIB += avcodec avformat avutil c m -MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=unpaper/} +MASTER_SITES= https://www.flameeyes.eu/files/ NO_TEST= Yes +EXTRACT_SUFX= .tar.xz -do-build: - cd ${WRKSRC} && \ - ${CC} ${CFLAGS} -lm -o unpaper src/unpaper.c +CONFIGURE_STYLE= gnu +LIB_DEPENDS= graphics/ffmpeg do-install: ${INSTALL_PROGRAM} ${WRKBUILD}/unpaper ${PREFIX}/bin - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/unpaper - ${INSTALL_DATA} ${WRKSRC}/README \ - ${PREFIX}/share/doc/unpaper + ${INSTALL_MAN} ${WRKBUILD}/unpaper.1 ${PREFIX}/man/man1/unpaper.1 .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/print/unpaper/distinfo,v retrieving revision 1.2 diff -u -p -r1.2 distinfo --- distinfo 18 Jan 2015 03:14:58 -0000 1.2 +++ distinfo 8 Nov 2016 23:52:18 -0000 @@ -1,2 +1,2 @@ -SHA256 (unpaper-0.3.tar.gz) = NDNmQECUK/djiUbiMn5cZBGcYA/eis6Rj0cQn6+95b4= -SIZE (unpaper-0.3.tar.gz) = 546488 +SHA256 (unpaper-6.1.tar.xz) = I3yE9dpUSz93CYJ/nxLDfDRs3wKbESj7RjP5uvpcuTA= +SIZE (unpaper-6.1.tar.xz) = 2655724 Index: patches/patch-file_c =================================================================== RCS file: patches/patch-file_c diff -N patches/patch-file_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-file_c 8 Nov 2016 23:52:18 -0000 @@ -0,0 +1,92 @@ +$OpenBSD$ + +From pkgsrc-wip + +--- file.c.orig Sun Oct 26 23:35:38 2014 ++++ file.c Tue Nov 8 20:13:38 2016 +@@ -105,7 +105,7 @@ void loadImage(const char *filename, AVFrame **image) + case AV_PIX_FMT_RGB24: + case AV_PIX_FMT_MONOBLACK: + case AV_PIX_FMT_MONOWHITE: +- *image = frame; ++ *image = av_frame_clone(frame); + break; + + case AV_PIX_FMT_PAL8: +@@ -123,6 +123,10 @@ void loadImage(const char *filename, AVFrame **image) + default: + errOutput("unable to open file %s: unsupported pixel format", filename); + } ++ ++ avcodec_close(avctx); ++ av_free(avctx); ++ avformat_close_input(&s); + } + + +@@ -134,13 +138,14 @@ void loadImage(const char *filename, AVFrame **image) + * @param type filetype of the image to save + * @return true on success, false on failure + */ +-void saveImage(char *filename, AVFrame *image, int outputPixFmt) { ++void saveImage(char *filename, AVFrame *input, int outputPixFmt) { + AVOutputFormat *fmt = NULL; + enum AVCodecID output_codec = -1; + AVCodec *codec; + AVFormatContext *out_ctx; + AVCodecContext *codec_ctx; + AVStream *video_st; ++ AVFrame *output = input; + int ret; + char errbuff[1024]; + +@@ -174,13 +179,11 @@ void saveImage(char *filename, AVFrame *image, int out + break; + } + +- if ( image->format != outputPixFmt ) { +- AVFrame *output; +- initImage(&output, image->width, image->height, ++ if ( input->format != outputPixFmt ) { ++ initImage(&output, input->width, input->height, + outputPixFmt, -1); +- copyImageArea(0, 0, image->width, image->height, +- image, 0, 0, output); +- image = output; ++ copyImageArea(0, 0, input->width, input->height, ++ input, 0, 0, output); + } + + codec = avcodec_find_encoder(output_codec); +@@ -194,9 +197,9 @@ void saveImage(char *filename, AVFrame *image, int out + } + + codec_ctx = video_st->codec; +- codec_ctx->width = image->width; +- codec_ctx->height = image->height; +- codec_ctx->pix_fmt = image->format; ++ codec_ctx->width = output->width; ++ codec_ctx->height = output->height; ++ codec_ctx->pix_fmt = output->format; + video_st->time_base.den = codec_ctx->time_base.den = 1; + video_st->time_base.num = codec_ctx->time_base.num = 1; + +@@ -221,7 +224,7 @@ void saveImage(char *filename, AVFrame *image, int out + av_init_packet(&pkt); + + /* encode the image */ +- ret = avcodec_encode_video2(video_st->codec, &pkt, image, &got_packet); ++ ret = avcodec_encode_video2(video_st->codec, &pkt, output, &got_packet); + + if (ret < 0) { + av_strerror(ret, errbuff, sizeof(errbuff)); +@@ -237,6 +240,9 @@ void saveImage(char *filename, AVFrame *image, int out + + avio_close(out_ctx->pb); + av_free(out_ctx); ++ ++ if ( output != input ) ++ av_frame_free(&output); + } + + /** Index: patches/patch-unpaper_c =================================================================== RCS file: patches/patch-unpaper_c diff -N patches/patch-unpaper_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-unpaper_c 8 Nov 2016 23:52:18 -0000 @@ -0,0 +1,15 @@ +$OpenBSD$ + +From pkgsrc-wip + +--- unpaper.c.orig Sun Oct 26 22:43:51 2014 ++++ unpaper.c Tue Nov 8 20:13:20 2016 +@@ -367,7 +367,7 @@ int main(int argc, char* argv[]) { + { NULL, no_argument, NULL, 0 } + }; + +- c = getopt_long_only(argc, argv, "hVl:S:x::n::M:s:z:p:m:W:B:w:b:Tt:qv", ++ c = getopt_long(argc, argv, "hVl:S:x::n::M:s:z:p:m:W:B:w:b:Tt:qv", + long_options, &option_index); + if (c == -1) + break; Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/print/unpaper/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 17 Jul 2010 07:59:37 -0000 1.1.1.1 +++ pkg/PLIST 8 Nov 2016 23:52:18 -0000 @@ -1,4 +1,3 @@ @comment $OpenBSD: PLIST,v 1.1.1.1 2010/07/17 07:59:37 ajacoutot Exp $ @bin bin/unpaper -share/doc/unpaper/ -share/doc/unpaper/README +@man man/man1/unpaper.1